练习题6及参考答案
1. 单项选择题
(1)以下关于数组的描述正确的是。
A. 数组的大小是固定的,但可以有不同类型的数组元素
B. 数组的大小是可变的,但所有数组元素的类型必须相同
C. 数组的大小是固定的,所有数组元素的类型必须相同
D. 数组的大小是可变的,可以有不同类型的数组元素
【答】C
(2)下述关于字符数组的描述中错误的是。
A. 字符数组可以存放字符串
B. 字符数组中的字符串可以整体输入和输出
C. 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D. 不可以用关系运算符对字符数组中的字符串进行比较
【答】B
(3)不能把字符串"Hello!"赋给数组b的语句是。
A. char b[10]={'H','e','l','l','o','!'};
B. char b[10];b="Hello!";
C. char b[10];strcpy(b,"Hello!");
D. char b[10]="Hello!"; 【答】B
(4)若有以下定义:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
则数值为4的表达式是。
A. a[g-c]
B. a[4]
C. a['d'-'c']
D. a['d'-c]
【答】D
(5)以下合法的数组定义是。
A. int a[]="string";
B. int a[5]={0,1,2,3,4,5};
C. char a="string";
D. char a[]={0,1,2,3,4,5};
【答】D
(6)以下错误的字符串赋值或赋初值方式是。
A. char *str;str="string";
B. char str[7]={'s','t','r','i','n','g'};
C. char str[10];str="string";
D. char str1[]="string",str2[]="12345678";stcpy(str2,strl);
【答】C
(7)若有以下定义和语句,则输出结果是。
char *sp="\"D:\\ANI.WSP\"";
printf("%s",sp);
A. 字符串中有非法字符,输出值不定
B. \"D:\\ANI.WSP\"
C. "D:\ANI.WSP"
D. "D:\\ANI.WSP"
(8)若有以下定义和语句,则输出结果是。
char s[12]="a book!";
printf("%d",strlen(s));
A. 12
B. 8
C.
7 D. 6
【答】C
(9)以下一维数组a的正确定义是。
A. int a(10);
B. int n=10,a[n];
C. int n;
D. #define SIZE
10
scanf("%d",&n); int a[SIZE];
int a[n];
【答】D
(10)以下正确的定义语句是。
A. int A['a'];
B. int A[3,4];
C. int A[][3];
D. int A[10];
【答】D
(11)以下对一维数组a进行正确初始化的是。
A. int a[10]=(0,0,0,0);
B. int a[10]={};
C. int a[]={0};
D. int a[10]={10*2};
【答】C
(12)以下对二维数组a进行正确初始化的是。
A. int a[2][3]={{1,2},{3,4},{5,6}};
B. int a[][3]={1,2,3,4,5,6};
C. int a[2][]={1,2,3,4,5,6};
D. int a[2][]={{1,2},{3,4}}; 【答】B
(13)以下给字符数组a定义和赋值正确的是。
A. char str[10];str={"China"};
B. char str[]={"China"};
C. char str[10];strcpy(str,"abcdefghijklmn");
D. char str[10]={"abcdefghijklmn"};
【答】B
(14)在执行static int a[][3]={{1,2},{3,4}};语句后,a[1][3]的值是。
A. 3
B. 4
C.
0 D. 2
【答】C
(15)在定义int a[3][6];后,第10个元素是。
A. a[2][4]
B. a[1][3]
C. a[3][1]
D. a[4][2]
【答】B
(16)在定义int a[3][4][2];后,第10个元素是。
A. a[2][1][2]
B. a[1][0][1]
C. a[2][0][1]
D. a[2][2][1]
(17)以下程序的运行结果是。
#include
#include
main()
{
char a[80]="AB",b[80]="LMNP";
int i=0;
strcat(a,b);
while (a[i++]!='\0') b[i]=a[i];
puts(b);
}
A. LB
B. ABLMNP
C. AB
D. LBLMNP
【答】D
(18)以下程序的运行结果是。
#include
main()
{
char str[]="SSSWLIA",c;
int k;
for (k=2;(c=str[k])!='\0';k++)
{
switch(c)
{
case 'I':++k;break;
case 'L':continue;
default:putchar(c);continue;
}
putchar('*');
}
}
A. SSW*
B. SW*
C. SW*A
D. SW
【答】B
(19)以下程序的运行结果是。
#include
main()
{
char a[]="morning",t;
int i,j=0;
for (i=1;i<7;i++)