C语言练习3数组参考答案.docx
《C语言练习3数组参考答案.docx》由会员分享,可在线阅读,更多相关《C语言练习3数组参考答案.docx(20页珍藏版)》请在冰豆网上搜索。
C语言练习3数组参考答案
C语言(数组)
一、选择题
1.设有程序:
main()
{inti,a[11];
printf("给数组赋值:
\n");
for(i=0;i<=10;i++)
scanf("%d",());
......
printf("输出数组:
\n");
for(i=0;i<=10;i++)
printf("%d,",());
}
则在程序中的两个园括号中分别应填入:
C
A)&a[i]和&a[i]
B)a[i]和&a[i]
C)&a[i]和a[i]
D)a[i]和a[i]
2.设已定义:
inta[15];则数组a占用的内存单元数是(C).
A)15B)16C)30D)32
3.阅读程序:
main()
{inta[2]={0},i,j,k=2;
for(i=0;ifor(j=0;jprintf("%d\n",a[k]);
}
以上程序的输出结果是(D).
A)1B)3C)2D)不确定的值
4.阅读程序:
f(intb[],intn)
{inti,r=1;
for(i=0;i<=n;i++)r=r*b[i];
returnr;
}
main()
{intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf("%d\n",x);
}
以上程序的输出结果是(D).
A)720B)6C)24D)120
5.以下定义语句中,错误的是(B).
A)inta[]={6,7,8};
B)intn=5,a[n];
C)chara[]="string";
D)chara[5]={'0','1','2','3','4'};
6.以下描述中正确的是(D).
A)数组名后面的常量表达式用一对圆括弧括起来
B)数组下标从1开始
C)数组下标的数据类型可以是整型或实型
D)数组名的规定与变量名相同
7.若定义数组并初始化chara[10]={'0','1','2','3','4','5','6','7','8','9'};指出以下错误语句(AB).
A)scanf("%c",a[0]);
B)scanf("%s",&a);
C)printf("%c",a[3]);
D)printf("%s",a);
8.若定义数组inta[10],其最后一个数组元素为(C).
A)a[0]
B)a[1]
C)a[9]
D)a[10]
9.若定义数组并初始化inta[10]={1,2,3,4},以下语句哪一个不成立(B)?
A)a[8]的值为0
B)a[1]的值为1
C)a[3]的值为4
D)a[9]的值为0
10.指出以下错误语句(A).
A)intn=10,a[n];
B)intn,a[10];
C)inta[10]={1,2,3};
D)inta[10]={1,2,3,4,5,6,7,8,9,10};
11.请读程序:
main()
{intn[2],i,j,k;
for(i=0;i<2;i++)n[i]=0;
k=2;
for(i=0;ifor(j=0;jprintf("%d\n",n[k]);
}
上面程序的输出结果是(A).
A)不确定的值B)3C)2D)1
12.若有以下的定义和语句:
intstr[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='e',
则数值为2的表达式是(C).
A)str['g'-c]B)str[2]C)str['d'-'c']D)str['d'-c]
13.设有数组定义:
inta[5];则下列给数组元素赋值错误的是(B).
A)a[3]=93;
B)scanf("%c",a[3]);
C)a[3]=getchar();
D)a[3]='a'+3;
14.以下数组定义中错误的是(D).
A)#defineN30
inta[N+30];
B)#defineN30
inta[N];C)inta[30];
D)inta[N];
15.在定义一个一维数组时,不能用来表示数组长度的是(D).
A)常量B)符号常量C)常量表达式D)已被赋值的变量
16.若float型变量占用4个字节,有定义floata[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是(D).
A)12B)20C)40D)80
17.设已定义:
intx[2][4]={1,2,3,4,5,6,7,8};则元素x[1][1]的正确初值是(A).
A)6B)5C)7D)1
18.设有定义:
inta[][3]={{1,2,3},{4,5,6},{7,8,9}};则a[1][2]的初值为(C).
A)2B)4C)6D)8
19.设有:
inta[4][5];则数组a占用的内存字节数是(C).
A)12B)24C)40D)20
20.以下数组定义中,不正确的是(B).
A)intb[3][4];
B)intc[3][]={{1,2},{1,2,3},{4,5,6,7}};
C)intb[200][100]={0};
D)intc[][3]={{1,2,3},{4,5,6}};
21.定义数组:
intx[2][3];则数组x的维数是
(2).
A)1B)2C)3D)6
22.若定义数组并初始化intb[2][3]={1,2,3,4,5,6},以下语句哪一个成立(C)?
A)表达式b[1][2]的值为1
B)表达式b[1][2]的值为4
C)表达式b[1][2]的值为6
D)表达式b[1][2]的值为2
23.若定义数组并初始化inta[2][3]={{1,2,3},{4,5,6}};
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf("%d",a[i][j]);语句的结果是哪一个(C)?
A)1,2,3,4,5,6
B)123456
C)123456
24.若定义数组并初始化inta[2][3]={{1,2,3},{4,5,6}};以下语句哪一个不成立(B)?
A)a数组中有6个元素
B)a[2][3]是a数组的最后一个元素的引用
C)a数组中每个元素都为整数
D)a数组是整型数组
25.定义如下变量和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是(C).
for(i=0;i<3;i++)printf("%d",x[i][2-i]);
A)159B)147C)357D)369
26.如有以下定义:
doubles[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是(C).
A)s[1][3]B)s[0][3]C)s[0][2]D)s[1][2]
27.以下程序的输出结果是(A).
main()
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("%d",s);
}
A)18B)19C)20D)21
28.若已有charb[10][50];则该二维字符数组在内存所占字节数为(D).
A)10B)50C)60D)500
29.设有:
chara[10];下列语句那个是正确的(D)?
A)scanf("%s",a[0]);
B)scanf("%s",&a);
C)printf("%s",a[0])
D)printf("%s",a)
30.阅读程序:
main()
{chara[10];
inti;
for(i=1;i<=5;i++)
scanf("%c",&a[i]);
printf("%c",a[0]);
}
设从键盘输入字符串:
abcde,则程序的输出结果是(C).
A)aB)空格C)不确定D)0
31.合法的数组定义是(D).
A)inta[]="string";
B)inta[5]={0,1,2,3,4,5};
C)chara="string";
D)chara[]={'0','1','2','3'};
32.设有数组定义:
charstring[]="China";则数组string所占的空间为(B).
A)5个字节
B)6个字节
C)7个字节
D)10个字节
33.定义字符数组c:
charc[]={"clanguage"};数组c在内存中所占字节数是(C).
A)9 B)10 C)11 D)12
34.指出以下错误语句(C).
A)chara[10]={'0','1','2','3','4','5','6','7','8','9'};
B)chara[10]={'0','1','2','3'};
C)chara[2]={"1","2"};
D)chara[2]={'a’,'b’};
35.若定义数组并初始化chara[10]={"hello"},该数组的元素个数是(A).
A)10
B)5
C)6
D)7
36.若定义数组并初始化chara[10]={"HELLO"},该数组的元素中a[2]是(A).
A)'L'
B)'E'
C)'H'
D)'O'
37.若定义数组并初始化intb[10]={1,2,3,4},以下哪几个语句成立(ACD)?
A)b[8]的值为0
B)b[1]的值为1
C)b[3]的值为整数
D)b[10]不是b数组中的元素
38.若定义数组inta[10];指出下列错误语句:
ABCD
A)a数组共有10个元素,其引用方法是:
a[1],a[2]...a[10];
B)a数组是整型数组,其元素自动初始化为0;
C)a数组最后一个元素的引用方法是a[10];
D)a数组第一个元素的引用方法是a[1];
二、判断题
1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。
错
2.数组是C语言的一种构造数据类型,其元素的类型可以是整型、实型、字符型甚至结构类型。
对
3.设需定义一个有15个元素的数组a,并对其前5个元素赋初值,可用如下语句实现:
inta[]={1,2,3,4,5};错
4.数组定义时,只允许使用常量表达式定义数组的大小,其值必须是正整数,而不能用变量来定义数组长度。
对
5.C语言数组的下标从0开始,下标必须是整数型的常量或变量。
对
6.数组是数目固定、类型相同的若干变量