printf(“%d\n”,n[k]);
}
该程序的输出结果是_____。
A)不确定的值B)2C)1D)0
6、执行下面的程序段后,变量k中的值为_____。
[A]
intk=3,s[2];
s[0]=k;k=s[1]*10;
A)不定值B)33C)30D)10
7、以下程序运行后,输出结果是_____.[B]
main()
{inty=18,i=0,j,a[8];
do
{a[i]=y%2;i++
y=y/2;
}while(y>=1)
for(j=i-1;j>=0;j--)printf("%d",a[j];
printf("\n");
}
A)10000B)10010C)00110D)10100
8、以下程序的输出结果是_____。
[B]
main()
{inti,k,a[10],p[3]:
K=5;
for(i=0;i<10;i++)a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)k+=p[i]*2;
printf("%d\n",k);
}
A)20B)21C)22D)23
9、阅读下列程序:
[D]
main()
{intn[3],i,j,k;
for(i=0;i〈3;i++〉n[i]=0;
k=2;
for(i=0;i〈k;i++〉
for(j=0;j〈k;j++〉n[j]=n[i]+1;
printf("%d\n",n[1]);
}
下述程序运行后输出结果是_____。
A)2B)1C)0D)310、有以下程序
main()
{intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=1;j<=i;j++)printf("%c",‘‘);
for(j=_____;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角
1234
678
1112
16则在程序下划线处应填入的是_____[B]
A)i-1C)i+1B)iD)4-i
11、以下能正确定义二维数组的是[B]
A)inta[][3];C)inta[][3]={};
B)inta[][3]={2*3};D)inta[2][3]={{1},{2},{3,4}}
12、以下能正确定义数组并正确赋初值的语句是[D]
A)intN=5,b[N][N];C)intc[2][]={{1,2},{3,4}};
B)inta[1][2]={{1},{3}};D)intd[3][2]={{1,2},{34}};
13、有以下程序
main()
{intm[][3]={1,4,7,2,5,8,3,6,9};
inti,j,k=2;
for(i=0;i<3;i++)
{printf("%d",m[k][i]);}
}
则执行后输出结果是[C]
A)456B)258C)369D)78914、有以下程序
main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0
for(i=0;i<4;i++)s+=aa[i][1];
printf("%d\n",s);
}
程序运行后的输出结果是[B]
A)11B)19D)2015、以下数组定义中不正确的是[D]
A)inta[2][3];C)intc[100][100]={0};
B)intb[][3]={0,1,2,3};D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};16、以下程序的输出结果是[A]
main()
{inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A)0650B)1470C)5430D)输出值不定
17、以下程序的输出结果是[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(“%dn”,s);
}
A)18B)19C)20D)2118、有以下程序
#include
main()
{charp[]={‘a‘,‘b‘,‘c‘},q[10]={‘a‘,‘b‘,‘c‘};
printf("%d%d\n",strlen(p),strlen(q));}
以下叙述中正确的是()[B]
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3D)由于p和q数组中都没有字符串结束符,故长度都不能确定
19、有定义语句:
intb;charc[10];,则正确的输入语句是_____[B]
A)scanf("%d%s",&b,&c);C)scanf("%d%s",b,c);
B)scanf("%d%s",&b,c);D)scanf("%d%s",b,&c);
20、以下能正确定义一维数组的选项是_____[B]
A)inta[5]={0,1,2,3,4,5};C)chara={‘A‘,‘B‘,‘C‘};
B)chara[]={0,1,2,3,4,5};D)inta[5]="0123";
21、已有定义:
chara[]="xyz",b[]={‘x‘,‘y‘,‘z‘};,以下叙述中正确的是_____[C]
A)数组a和b的长度相同C)a数组长度大于b数组长度
B)a数组长度小于b数组长度D)上述说法都不对
22、s12和s2已正确定义并分别指向两个字符串。
若要求:
当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是_____[D]
A)if(s1>s2)S;C)if(strcmp(s2,s1)>0)S;
B)if(strcmp(s1,s2))S;D)if(strcmp(s1,s2)>0)S;
23、以下程序的输出结果是[B]
main()
{charcf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",ch[1]);
}
A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"
24、以下程序的输出结果是[D]
main()
{charw[][10]={“ABCD”,”EFGH”,”IJKL”,”MNOP”},k;
for(k=1;k<3;k++)printf(“%s\n”,w[k]);}
A)ABCDC)EFG
FGHJK
KLO
B)ABCDD)EFGH
EFGIJKL
IJ
M
25、当执行下面的程序时,如果输入ABC,则输出结果是[A]
#include“stdio.h”
#include“string.h”
main()
{charss[10]="1,2,3,4,5";
gets(ss);strcat(ss,"6789");printf("%s\n",ss);
}
A)ABC6789B)ABC67C)12345ABC6D)ABC456789
26、设有数组定义:
chararray[]="China";则数组array所占的空间为[C]
A)4个字节B)5个字节C)6个字节D)7个字节
27、下列程序执行后的输出结果是[A]
main()
{chararr[2][4];
strcpy(arr,"you");strcpy(arr[1],"me");
arr[0][3]=‘&‘;
printf("%s\n",arr);
}
A)you&neB)youC)meD)err
28、下列描述中不正确的是[C]
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
29、给出以下定义:
charx[]="abcdefg";
chary[]={‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘};
则正确的叙述为[C]
A)数组X和数组Y等价C)数组X的长度大于数组Y的长度
B)数组x和数组Y的长度相同D)数组X的长度小于数组Y的长度
30、下述对C语言字符数组的描术中错误的是[C]
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较31、请读程序片段(字符串内没有空格):
printf("%d\n",strlen("ATS\n012\1\\"));
上面程序片段的输出结果是[C]
A)11B)10C)9D)8
32、设有
staticcharstr[]="Beijing";
则执行
printf("%d\n",strlen(strcpy(str,"China")));
后的输出结果为[A]
A)5B)7C)12D)14
33、判断字符串s1是否大于字符串s2,应当使用_____。
[D]
A.if(s1>s2)C.if(strcmp(s2,s1)>O)
B.if(strcmp(s1,s2))D.if(strcmp(s1,s2)>O)
34、下面程序段运行结果_____。
[D]
chara[3],b[]="China";
a=b;
printf(”%s”,a);
A.运行后将输出ChinaC.运行后将输出Chi
B.运行后将输出ChD.编译出错
35、在C语言中,引用数组元素时,其数组下标的数据类型允许是____。
[C]
A.整型常量C.整型常量或整型表达式
B.整型表达式D.任何类型的表达式
36、若有说明:
inta[l0];则对a效组元素的正确引用是_____。
[D]
A.a[10]B.a[3.5]C.a(5)D.a[10-10]
37、在C语言中.一维数组的定义方式为;类型说明符数组名_____。
[A]
A.[常量表达式]C.[整型常量]或[整型表达式]
B.[整型表达式]D.[整型常量]
38、以下能对一维数组a进行正确初始化的语句是_____。
[C]
A.inta[lO]=(0,0.0,0,0);C.inta[]={0};
B.inta[l0]={};D.inta[10]={10*1};
39、以下对二维数组a的正确说明是_____。
[C]
A.inta[3][];B.floata(3,4);C.doublea[1][4];D.floata(3)(4);
40、若有说明:
inta[3][4];则对a数组元素的正确引用是_____。
[C]
A.a[2][4]B.a[l,3]C.a[l+l][0]D.a
(2)
(1)
41、若有说明:
inta[3][4];则对a效组元素的非法引用是_____。
[D]
A.a[0][2*1]B.a[l][3]C.a[4-2][0]D.a[0][4]
42、若有说明:
inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是_____。
[B]
A.2B.3C.4D.无确定值43、以下程序段的结果是_____。
[A]
intk;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(k=0;k<3;k++)
printf{"%2d",a[k][2-k]);
A.357B.369C.159D147
44、若二维数组a有m列,则在a[i][j]前的元素个数为_____。
[B]
A.j*m+iB.i*m+jC.i*m+j-1D.i*m+j+1
45、若有说明:
inta[3][4]={0};则下面正确的叙述____。
[D]
A.只有元素a[0][0]可以得到初值
B.此说明语句不正确C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中各元素都可得到初值0
46、合法的数组定义是_____。
[D]
A.inta[]="string";C.chara="string";
B.inta[5]={0,1,2,3,4,5};D.chara[]={0,1,2,3,4,5};
47、若有定义和语句:
chars[10];
s="abcd";
printf("%s\n",s);
则结果是(以下μ代表空格)_____。
[D]
A.输出abcdC.输出abcdμμμμμ
B.输出aD.编译不通过
48、若有以下说明和语句,则输出结果是_____。
[B]
charsp[]="\t\v\\\0will\n";
printf("%d",strlen(sp));
A.1DB.3C.9D.字符串中有非法字符
49、若有以下说明和语句,则输出结果是_____。
[C]
charstr[]="\"c:
\\abc.dat\"";
printf("%s",str);
A.字符串中有非法字符C."c:
\abc.dat"
B.\"c:
\\abc.dat\"D."c:
\\abc.dat"
50、下列对C语言字符数组的描述中错误的是_____。
[C]
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
二、填空题
51、以下程序运行后的输出结果是【24】。
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
52、以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
请填空。
main()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【&a[i]】);
fro(i=0;i<20;i++)
{if(a>0)
{count++;
sum+=【a[i]】;
}
}
printf("sum=%d,count=%d\n",sum,count);
53、以下程序运行后的输出结果是【1 3 7 15】
main()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf(“%d”,n[i]);
}
}
54、下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。
请填空。
fun(intx,intb[])
{intk=0,r;
do
{r=x%【2】;
b[k++]=r;
x/=【2】;}while(x);}
55、下面程序的输出是【12】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]=i;
printf(‘%d\n",k);}
56、下面的findmax函数返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。
findmax(ints[],intt)
{intk,p;
for(p=0,k=p;pif(s[p]>s[k])【k=p】。
returnk;
}
57、以下程序运行后的输出结果是【123056009】
main()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("&d",a[i][j]);
printf("\n");
}
}
58、若有以下程序
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
执行后输出的结果是 【58】 。
59、阅读下列程序:
#include
main()
{inti,j,row,column,m;
staticintarray[3][3]={{100,200,300},
{28,72,-30},
{-850,2,6}
};
m=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;i++)
if(array[i][j]{m=array[i][j];row=i;column=j;}
printf("%d,%d,%d\n",m,row,column);
}
上述程序的输出结果是【-850,2,0】。
60、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。
例如,输入字符串:
abc123edf456gh,执行程序后输出:
123456。
请填空。
#include
#include
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!
=‘\0’;i++)
if(【s[i]>=‘0‘&&s[i]<=‘9‘】){d[j]=s[i];j++;}
d[j]=‘\0’;
puts(d);
}
61、以下程序的输出结果是【abc】。
main()
{chars[]="abcdef";
s[3]=‘\0‘;
printf("%s\n",s);
}
62、下列程序段的输出结果是【Hello】。
main()
{charb[]=”Hello,you”;
b[5]=0;
printf(“%s\