C语言学习知识数组选择题.doc
.1、以下定义语句中,错误的是_。A) int a=1,2; B) char a="test"C) char s10="test" D) int n=5,an;D2、以下对一维数组a进行正确初始化的是_。A) int a10=(0,0,0,0,0); B) int a10= ;C) int a =0; D) int a10= 10*2;C3、以下对二维数组a进行正确初始化的是_。A) int a23= 1,2,3,4,5,6 ; B) int a 3=1,2,3,4,5,6 ;C) int a2 =1,2,3,4,5,6; D) int a2 = 1,2,3,4;B4、在定义int a54; 之后,对a的引用正确的是_。A) a24 B) a1,3C) a43 D) a50C5、以下给字符数组str定义和赋值正确的是_。A) char str10; str="China!"B) char str ="China!"C) char str10; strcpy( str,"abcdefghijkl");D) char str10="abcdefghijkl"B6、以下一维数组a的正确定义是_ 。A) int a(10); B) int n=10,an;C) int n; D) #define SIZE 10 scanf("%d",&n); int aSIZE; int an;D7、在执行语句: int a 3=1,2,3,4,5,6; 后,a10的值是_。A) 4 B) 1C) 2 D) 5A8、当接受用户输入的含有空格的字符串时,应使用_函数。A) gets( ) B) getchar( )C) scanf( ) D) printf( )A9、在定义int a56;后,数组a中的第10个元素是_。(设a00为第一个元素)A) a25 B) a24C) a13 D) a15C10、执行下面的程序段后,变量k中的值为_。int k=3,s2;s0=k; k=s1*10;A) 不定值 B) 33C) 30 D) 10A11、下列程序执行后的输出结果是_。 main() int a,b5; a=0; b0=3; printf("%d,%dn",b0,b1); A) 3,0 B) 3 0C) 0,3 D) 3,不定值D12、设有数组定义:char array="China"则strlen(array)的值为_ 。A) 4 B) 5C) 6 D) 7B 13、下列程序执行后的输出结果是_。main() int i,j,a33; for(i=0;i<3;i+) for(j=0;j<=i;j+) aij=i*j; printf("%d,%dn",a12,a21); A) 2,2 B) 不定值,2C) 2 D) 2,0B14、设有数组定义:char array="China"则数组array所占的存储空间为_。A) 4个字节 B) 5个字节C) 6个字节 D) 7个字节C15、设有数组定义:char array10= "China"则数组array所占的存储空间为_。A) 4个字节 B) 5个字节C) 6个字节 D) 10个字节D16、已知数组a的赋值情况如下所示,则执行语句a2+;后a1和a2的值分别是_。 a0 a1 a2 a3 a4 10 20 30 40 50 A) 20和30 B) 20和31C) 21和30 D) 21和31B17、以下程序输出a数组中的最小值及其下标,在划线处应填入的是_。main( ) int i,p=0,a10; for(i=0;i<10;i+) scanf("%d",&ai); for(i=1;i<10;i+) if(ai<ap)_; printf("%d,%dn",ap,p); A) i=p B) ap=aiC) p=j D) p=iD18、以下程序的输出结果是_。main( ) int i,p=0,a10=1,5,9,0,-3,8,7,0,1,2; for(i=1;i<10;i+) if(ai<ap) p=i; printf("%d,%dn",ap,p); A) -3,4 B) 0,1C) 9,2 D) 2,9A19、有如下说明: int a10=0,1,2,3,4,5,6,7,8,9;则数值不为9的表达式是_。A) a10-1 B) a8C) a9-0 D) a9-a0B20、有如下程序 main() int n5=0,0,0,i,k=3; for(i=0;i<k;i+) ni=i+1; printf("%dn",nk); 该程序的输出结果是_。A) 不确定的值 B) 4C) 2 D) 0D21、有如下程序main() int a33=1,2,3,4,5,6,i,j,s=0; for(i=1;i<3;i+) for(j=0;j<=i;j+) s+=aij; printf("%dn",s); 该程序的输出结果是_。A) 18 B) 19C) 20 D) 21A 22、以下程序的输出结果是_。 main() int i,x9=9,8,7,6,5,4,3,2,1; for(i=0;i<4;i+=2) printf("%d ",xi); A) 5 2 B) 5 1C) 5 3 D) 9 7D23、以下程序的输出结果是_。 main() int i,x33=9,8,7,6,5,4,3,2,1; for(i=0;i<3;i+=1) printf("%5d",x1i); A) 6 5 4 B) 9 6 3C) 9 5 1 D) 9 8 7A 24、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,当输入负数时结束。划线处应分别填入_。main() float x1000,sum=0.0,ave,a; int n=0,i; printf("Enter mark:n"); scanf("%f",&a); while(a>=0.0 && n<1000) sum+=_; xn=a; n+; scanf("%f",&a); ave=_; printf("Output :n"); printf("ave=%fn",ave); for(i=0;i<n;i+) if(xi<ave) printf("%ft",xi); A) a和sum/n B) xn和sum/nC) a和sum/i D) a和sum/1000A 25、下面程序的输出结果是_。 main() int a=1,8,2,8,3,8,4,8,5,8; printf("%d,%dn",a4+3,a4+3); A) 6,6 B)8,8C) 6,8 D)8,6C26、如有定义语句int a=1,8,2,8,3,8,4,8,5,8; ,则数组a的大小是_。A) 10 B) 11C) 8 D) 不定A 27、以下程序的输出结果是_。 main() int i,x33=1,2,3,4,5,6,7,8,9; for(i=0;i<3;i+) printf("%d,",xi2-i); printf("n"); A) 1,5,9, B) 1,4,7,C) 3,5,7, D) 3,6,9,C28、以下程序的输出结果是_。 main() int i,x33=1,2,3,4,5,6,7,8,9; for(i=0;i<3;i+) printf("%d,",xii); printf("n"); A) 1,5,9, B) 1,4,7,C) 3,5,7, D) 3,6,9,A29、以下程序的输出结果是_。main() int a33=1,2,3,3,4,5,5,6,7,i,j,s=0; for(i=0;i<3;i+) for(j=i;j<3;j+) s+=aij; printf("%dn",s); A) 26 B) 36C) 19 D) 22D30、下面程序的输出是_。 main() int a10=1,2,3,4,5,6,7,8,9,10; printf("%dn",aa1*a2); A) 3 B) 4C) 7 D) 2C 31、下面程序的输出是_。main()int aa33=2,4,6; int i,p=aa00; for(i=0;i<2;i+) if(i=0) aaii+1=p+1; else +p; printf("%d",p); A) 23 B) 26C) 3 D) 36A32、以下程序的输出结果是_。 main() int a44=1,2,3,4,3,4,5,6,5,6,7,8,7,8,9,10; int j,s=0; for(j=0;j<4;j+) s+=ajj; printf("%dn",s); A) 36 B) 26C) 22 D) 20C33、以下程序执行后的输出结果是_ 。(设a00 是数组a中的第1个元素) #include <stdio.h> main( ) int a45=1,2,4,8,10,-1,-2,-4,-8,-10,3,5,7,9,11; int i,j,n=9; i=n/5; j=n-i*5-1; printf("NO. %d: %d,%d is %dn",n,i,j,aij); A) 第n个元素所在的行和列及其该元素的值B) 第n行的最大元素所在的行和列及其最大值C) 第i行的最大元素所在的行和列及其最大值D) 以上都不对A34、下面程序统计3个学生,每个学生4门课程的考试成绩,要求输出每个学生的总成绩、每个学生的平均成绩、12个学生的总成绩。正确的说法是_。main( ) int stu34,i,j,t3; float sum=0,a3; for(i=0;i<3;i+) for(j=0;j<4;j+) scanf("%d",&stuij); for(i=0;i<3;i+) ti=0; for(j=0;j<4;j+) sum+=stuij; ti+=stuij; printf("%-6d",stuij); ai=ti/4; printf("%-6.2fn",ai); printf("average = %.2fn",sum/12.0); A) 数组a的每个元素中存放的是每个学生的总成绩B) 数组t的每个元素中存放的是每个学生的平均成绩C) 从键盘上输入成绩的顺序是按课程输入D) 从键盘上输入成绩的顺序是按学生输入D35、下面程序的功能是_。#include <stdio.h>#include <string.h>main() char a="clanguage",t; int i,j,k; k=strlen(a); for(i=0;i<=k-1;i+=1) for(j=i+1;j<k;j+=1) if(ai>aj) t=ai;ai=aj;aj=t; puts(a); printf("n"); A) 将字符数组a中的元素从小到大排序B) 将字符数组a中的元素从大到小排序C) 求字符数组a中的最大元素D) 将字符数组a中的最小元素A36、下面程序的运行以后的结果是_。main() char a="clanguage",t; int i,j,k; k=strlen(a); for(i=0;i<=k-1;j+=1) for(j=i+1;j<k;j+=1) if(ai>aj) t=ai;ai=aj;aj=t; puts(a); printf("n"); A) clanguage B) alancueggC) egauganlc D) cgalgnaueB37、以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366,划线处应填_。#include <stdio.h>main() char s6; int n,j; gets(s); if(s0!=0) n=s0-0; j=1; while(sj+!=0) _; printf("%dn",n); A) n=n*8+sj B) n=n*8+sj-1-0C) n=n*8+sj-0 D) n=n*8+sj-1-0B 38、有如下程序main( ) char ch25="6937","8254" int i,j;long s=0; for(i=0;i<2;i+) for(j=0;chij>0;j+) s=10*s+chij-0; printf("%ldn",s); 该程序的输出结果是_。A) 69825 B) 693825C) 6385 D) 69378254D39、有如下程序main() char ch80; int j;long s=0; printf("Enter a numeral stringn"); gets(ch); for(j=0;chj>0;j+) s=10*s+chj-0; printf("%ldn",s); 如果运行时,从键盘上输入由数字组成的字符串,该程序的功能是_。A) 测字符数组ch的长度B) 将数字字符串ch转换成十进制数C) 将字符数组中的小写字母转换成大写D) 将字符数组中的大写字母转换成小写B40、有如下程序 main() char ch80="123abcdEFG*&" int j;long s=0; puts(ch); for(j=0;chj>0;j+) if(chj>=a&&chj<=z) chj=chj-b+B; puts(ch); 该程序的功能是_。A) 测字符数组ch的长度B) 将数字字符串ch转换成十进制数C) 将字符数组ch中的小写字母转换成大写D) 将字符数组ch中的大写字母转换成小写C 41、有如下程序main() char ch80="123abcdEFG*&" int j;long s=0; for(j=0;chj>0;j+) ; printf("%dn",j); 该程序的功能是_。A) 测字符数组ch的长度B) 将数字字符串ch转换成十进制数C) 将字符数组ch中的小写字母转换成大写D) 将字符数组ch中的大写字母转换成小写A42、以下程序的输出结果是_。main() char a10=1,2,3,0,5,6,7,8,9,0; printf("%sn",a); A) 123 B) 1230C) 123056789 D) 1230567890A 43、以下程序的输出结果是_。main() int n33,i,j; for(i=0;i<3;i+) for(j=0;j<3;j+) nij=i+j; for(i=0;i<2;i+) for( j=0;j<2;j+) ni+1j+1+=nij; printf("%dn",nij); A) 14 B) 0C) 6 D) 值不确定C 44、以下程序的输出结果是_。main() char s="12134211" int v4=0,0,0,0,k,i; for(k=0;sk;k+) switch(sk) case 1:i=0;break; case 2:i=1;break; case 3:i=2;break; case 4:i=3; vi+; for(k=0;k<4;k+) printf("%d ",vk); A) 4 2 1 1 B) 0 0 0 8C) 4 6 7 8 D) 8 8 8 8A45、以下程序输出的结果是_。#include <stdio.h>main( ) int a =1,2,3,4,5,i,j,s=0; j=1; for(i=4;i>=0;i-) s=s+ai*j; j=j*10; printf("s=%dn",s); A) s=12345 B) s=1 2 3 4 5C) s=54321 D) s=5 4 3 2 1A46、以下程序输出的结果是_。#include <stdio.h>main( ) int a =1,2,3,4,5,i,j,s=0; for(i=0;i<5;i+) s=s*10+ai; printf("s=%dn",s); A) s=12345 B) s=1 2 3 4 5C) s=54321 D) s=5 4 3 2 1A 47、以下程序运行,如果从键盘上输入 4<回车>,则输出结果是_ 。 #include <stdio.h>main( )int a20=1,2,3,4,5,-1,-2,-3,-4,-5,1,2,3,4,5,-1,-2,-3,-4,-5; int i,m,n,f=0; scanf("%d",&n); for(i=0;i<20;i+) if(ai=n) f=1;m=i; if(f!=0) printf("%d,%dn", n,m+1); else printf(" %d not found !n",n); A) 4,4 B) 4,14C) 4,5 D) 4,15B48、下面的程序运行后,输出结果是_。main( ) int i,j,a77,x=0; for(i=0;i<3;i+) for(j=0;j<3;j+) aij=3*j+i; for(i=2;i<7;i+) x+=aii; printf("%dn",x); A) 8 B) 不确定值C) 20 D) 0B 49、下面程序运行后,输出结果是_。#include <stdio.h>main( ) int a10=1,2,3,4,5,6,i,j; for(i=0;i+<3;) j=ai;ai=a5-i;a5-i=j; for(i=0;i<6;i+) printf("%d ",ai); A) 6 5 4 3 2 1 B) 1 2 3 4 5 6C) 1 5 4 3 2 6 D) 1 5 3 4 2 6D50、下面程序的功能是_。#include <stdio.h>main( ) int a54,i,j,max,row,col; for(i=0;i<5;i+) for(j=0;j<4;j+) scanf("%d",&aij); max=a40; row=4;col=0; for(i=4;i>=0;i-) for(j=0;j<4;j+) if(max<aij) max=aij;row=i;col=j; printf("max=%d,row=%d,col=%dn",max,row,col); A) 求二维数组中第4行中的最大元素及位置B) 求二维数组中的最大元素及位置C) 求二维数组中最小元素及位置D) 求二维数组中每一行的最大元素及位置B51、以下程序的输出结果是_。main() char p1="abcd",p2="efgh",str50="ABCDEFG" strcat(str,p1); strcat(str,p2); printf("%s",str); A) ABCDEFGefghabcd B) ABCDEFGefghC) abcdefgh D) ABCDEFGabcdefghD 52、以下程序的输出结果是_。 #include <stdio.h> #include <string.h> main() char str12=s,t,r,i,n,g; printf("%dn",strlen(str); A) 6 B) 7C) 11 D) 12A 53、设有如下定义语句: static char str="Beijing"则执行: printf("%dn",strlen(strcpy(str,"China");后的输出结果为_。A) 5 B) 7C) 12 D) 14A54、以下程序输出的结果是_ 。 #include <stdio.h> main( ) char str ="1a2b3c" int i; for(i=0;stri!=0;i+) if(stri<0 | stri>9) printf("%c",stri); printf("n"); A) 123456789 B) 1a2b3cC) abc D) 123C55、若有定义语句:char s100,d100; int j=0,i=0; ,且s中已赋字符串,请在划线处填_以实现将字符串s中的内容拷贝到字符串d中。(注意:不得使用逗号表达式) while(si) dj=_; j+; dj=0;A) si B) s+iC) si+ D) sjC 55、下面程序的功能是_。main() char s ="father" int i,j=0; for(i=1;i<6;i+) if(sj>si) j=i; printf("%c,%dn",sj,j+1); A) 输出字符数组s中ASCII码最大的字符及位置B) 输出字符数组s中ASCII码最小的字符及位置C) 输出字符数组s中ASCII码最大的字符及字符串的长度D) 输出字符数组s中ASCII码最小的字符及字符串的长度B