C语言数组选择题部分做了注释Word文档下载推荐.docx
《C语言数组选择题部分做了注释Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言数组选择题部分做了注释Word文档下载推荐.docx(26页珍藏版)》请在冰点文库上搜索。
abcdefghijkl"
);
D)charstr[10]={"
不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
只能用strcpy函数将一个字符串复制到另一个字符数组中去。
strcpy(字符数组1,字符串2)
字符数组1必须定义得足够大,以便容纳被复制的字符串。
字符数组1的长度不应小于字符串2的长度。
用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。
6、以下一维数组a的正确定义是________。
A)inta(10);
B)intn=10,a[n];
C)intn;
D)#defineSIZE10
scanf("
%d"
&
n);
inta[SIZE];
inta[n];
7、在执行语句:
inta[][3]={1,2,3,4,5,6};
后,
a[1][0]的值是________。
A)4B)1
C)2D)5
A
8、当接受用户输入的含有空格的字符串时,应使用________函数。
A)gets()B)getchar()
C)scanf()D)printf()
利用scanf函数输入字符串,系统把空格字符作为输入的字符串之间的分隔符.
9、在定义inta[5][6];
后,数组a中的第10个元素是________。
(设a[0][0]为第一个元素)
A)a[2][5]B)a[2][4]
C)a[1][3]D)a[1][5]
10、执行下面的程序段后,变量k中的值为__________。
intk=3,s[2];
s[0]=k;
k=s[1]*10;
A)不定值B)33
C)30D)10
s[1]没有赋值
11、下列程序执行后的输出结果是__________。
main()
{inta,b[5];
a=0;
b[0]=3;
printf("
%d,%d\n"
b[0],b[1]);
}
A)3,0B)30
C)0,3D)3,不定值
b[1])没有赋值
12、设有数组定义:
chararray[]="
China"
;
则strlen(array)
的值为________。
A)4B)5
C)6D)7
strlen(字符数组)
strlen是测试字符串长度的函数。
函数的值为字符串中的实际长度(不包括′\0′在内)。
13、下列程序执行后的输出结果是__________。
main()
{inti,j,a[3][3];
for(i=0;
i<
3;
i++)
for(j=0;
j<
=i;
j++)a[i][j]=i*j;
a[1][2],a[2][1]);
}
A)2,2B)不定值,2
C)2D)2,0
0未赋值未赋值
01未赋值
024
14、设有数组定义:
则数组array所占
的存储空间为________。
A)4个字节B)5个字节
C)6个字节D)7个字节
用字符串常量初始化字符数组。
当字符串存放在字符数组中时,系统会自动附加一个字符'
\0'
。
15、设有数组定义:
chararray[10]="
C)6个字节D)10个字节
如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符。
16、已知数组a的赋值情况如下所示,则执行语句a[2]++;
后a[1]和a[2]的值
分别是________。
a[0]a[1]a[2]a[3]a[4]
┌──┬──┬──┬──┬──┐
│10│20│30│40│50│
└──┴──┴──┴──┴──┘
A)20和30B)20和31
C)21和30D)21和31
17、以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。
main()
{inti,p=0,a[10];
10;
i++)scanf("
a[i]);
for(i=1;
if(a[i]<
a[p])_______________;
a[p],p);
A)i=pB)a[p]=a[i]
C)p=jD)p=i
18、以下程序的输出结果是________。
{inti,p=0,a[10]={1,5,9,0,-3,8,7,0,1,2};
a[p])p=i;
A)-3,4B)0,1
C)9,2D)2,9
19、有如下说明:
inta[10]={0,1,2,3,4,5,6,7,8,9};
则数值不为9的表达式是________。
A)a[10-1]B)a[8]
C)a[9]-0D)a[9]-a[0]
20、有如下程序
{intn[5]={0,0,0},i,k=3;
k;
i++)n[i]=i+1;
%d\n"
n[k]);
该程序的输出结果是________。
A)不确定的值B)4
C)2D)0
21、有如下程序
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
j++)s+=a[i][j];
s);
A)18B)19
C)20D)21
22、以下程序的输出结果是________。
{inti,x[9]={9,8,7,6,5,4,3,2,1};
4;
i+=2)printf("
%d"
x[i]);
A)52B)51
C)53D)97
23、以下程序的输出结果是________。
{inti,x[3][3]={9,8,7,6,5,4,3,2,1};
i+=1)printf("
%5d"
x[1][i]);
A)654B)963
C)951D)987
24、以下程序的功能是:
从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,当输入负数时结束。
划线处应分
别填入_________。
{floatx[1000],sum=0.0,ave,a;
intn=0,i;
Entermark:
\n"
%f"
a);
while(a>
=0.0&
&
n<
1000)
{sum+=______;
x[n]=a;
n++;
ave=________;
Output:
ave=%f\n"
ave);
n;
if(x[i]<
ave)printf("
%f\t"
A)a和sum/nB)x[n]和sum/n
C)a和sum/iD)a和sum/1000
25、下面程序的输出结果是________。
{inta[]={1,8,2,8,3,8,4,8,5,8};
a[4]+3,a[4+3]);
A)6,6B)8,8
C)6,8D)8,6
26、如有定义语句inta[]={1,8,2,8,3,8,4,8,5,8};
,
则数组a的大小是________。
A)10B)11
C)8D)不定
27、以下程序的输出结果是_________。
{inti,x[3][3]={1,2,3,4,5,6,7,8,9};
i++)
%d,"
x[i][2-i]);
A)1,5,9,B)1,4,7,
C)3,5,7,D)3,6,9,
28、以下程序的输出结果是________。
x[i][i]);
29、以下程序的输出结果是________。
{inta[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=0;
for(j=i;
A)26B)36
C)19D)22
30、下面程序的输出是________。
{inta[10]={1,2,3,4,5,6,7,8,9,10};
a[a[1]*a[2]]);
A)3B)4
C)7D)2
31、下面程序的输出是________。
{intaa[3][3]={{2},{4},{6}};
inti,p=aa[0][0];
2;
{if(i==0)
aa[i][i+1]=p+1;
else++p;
p);
}
A)23B)26
C)3D)36
32、以下程序的输出结果是________。
{inta[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}};
intj,s=0;
j++)
s+=a[j][j];
A)36B)26
C)22D)20
33、以下程序执行后的输出结果是________。
(设a[0][0]是数组a中的第1个元素)
#include<
stdio.h>
main()
{inta[4][5]={1,2,4,8,10,-1,-2,-4,-8,-10,3,5,7,9,11};
inti,j,n=9;
i=n/5;
j=n-i*5-1;
NO.%d:
%d,%dis%d\n"
n,i,j,a[i][j]);
A)第n个元素所在的行和列及其该元素的值
B)第n行的最大元素所在的行和列及其最大值
C)第i行的最大元素所在的行和列及其最大值
D)以上都不对
34、下面程序统计3个学生,每个学生4门课程的考试成绩,要求输出
每个学生的总成绩、每个学生的平均成绩、12个学生的总成绩。
正确的说法是________。
{intstu[3][4],i,j,t[3];
floatsum=0,a[3];
j++)scanf("
stu[i][j]);
{a[i]=0;
j++)
{sum+=stu[i][j];
t[i]+=stu[i][j];
%-6d"
stu[i][j]);
a[i]=t[i]/3;
%-6.2f\n"
a[i]);
average=%.2f\n"
sum/12.0);
A)数组a的每个元素中存放的是每个学生的总成绩
B)数组t的每个元素中存放的是每个学生的平均成绩
C)从键盘上输入成绩的顺序是按课程输入
D)从键盘上输入成绩的顺序是按学生输入
数组a的每个元素中存放的是每个学生的平均成绩
数组t的每个元素中存放的是每个学生的总成绩
35、下面程序的功能是________。
#include<
string.h>
{chara[]="
clanguage"
t;
inti,j,k;
k=strlen(a);
=k-1;
i+=1)
for(j=i+1;
i+=1)for(j=i+1;
j+=1)
if(a[i]>
a[j])
{t=a[i];
a[i]=a[j];
a[j]=t;
puts(a);
A)将字符数组a中的元素从小到大排序
B)将字符数组a中的元素从大到小排序
C)求字符数组a中的最大元素
D)将字符数组a中的最小元素
36、下面程序的运行以后的结果是________。
i+=1)错了?
A)clanguageB)alancuegg
C)egauganlcD)cgalgnaue
无限循环
改成main()
输出是aacegglnu
37、以下程序的功能是:
将无符号八进制数字构成的字符串转换为十进制整数。
例如,输入的字符串为:
556,则输出十进制整数366,划线处应填________。
{chars[6];
intn,j;
gets(s);
if(s[0]!
='
)n=s[0]-'
0'
j=1;
while(s[j++]!
)____________;
n);
A)n=n*8+s[j]B)n=n*8+s[j-1]-'
C)n=n*8+s[j]-'
D)n=n*8+s[j-1]-'
‘0’的ASCII值是048,
j=1
n=(s[0]-'
)*8+s[1]-‘0’
j=2
)*82+(s[1]-‘0’)*8+s[2]
38、有如下程序
{charch[2][5]={"
6937"
"
8254"
inti,j;
longs=0;
ch[i][j]>
'
s=10*s+ch[i][j]-'
%ld\n"
A)69825B)693825
C)6385D)69378254
39、有如下程序
{charch[80];
intj;
Enteranumeralstring\n"
gets(ch);
ch[j]>
s=10*s+ch[j]-'
如果运行时,从键盘上输入由数字组成的字符串,
该程序的功能是________。
A)测字符数组ch的长度
B)将数字字符串ch转换成十进制数
C)将字符数组中的小写字母转换成大写
D)将字符数组中的大写字母转换成小写
40、有如下程序
{charch[80]="
123abcdEFG*&
puts(ch);
if(ch[j]>
a'
ch[j]<
z'
)ch[j]=ch[j]-'
b'
+'
B'
C)将字符数组ch中的小写字母转换成大写
D)将字符数组ch中的大写字母转换成小写
ch[j]=ch[j]-'
-'
是-32
41、有如下程序
{charch[80]="
j++);
j);
42、以下程序的输出结果是________。
{chara[10]={'
1'
'
2'
3'
0,'
5'
6'
7'
8'
9'
%s\n"
a);
A)123B)1230
C)123056789D)1230567890
代表ASCII码为0的字符,ASCII为0的字符不是一个可显示的字符,而是一个“空操作符”,即它什么也不做。
用它来作为字符串结束标志不会产生附加的操作或增加有效字符,只起到供辨别的标志。
printf输出时遇到第一个“\0”字符结束输出。
43、以下程序的输出结果是________。
{intn[3][3],i,j;
j++)n[i][j]=i+j;
for(j=0;
j++)n[i+1][j+1]+=n[i][j];
n[i][j]);
A)14B)0
C)6D)值不确定
原数组
012
123
234
后数组
124
246
44、以下程序的输出结果是________。
{chars[]={"
12134211"
intv[4]={0,0,0,0},k,i;
for(k=0;
s[k];
k++)
{switch(s[k])
{case'
:
i=0;
break;
case'
i=1;
i=2;
4'
i=3;
v[i]++;
k<
k++)printf("
v[k]);
A)4211B)0008
C)4678D)8888
45、以下程序输出的结果是________。
{inta[]={1,2,3,4,5},i,j,s=0;
for(i=4;
i>
=0;
i--){s=s+a[i]*j;
j=j*10;
s=%d\n"
A)s=12345B)s=12345
C)s=54321D)s=54321
46、以下程序输出的