学院 学号 姓名 C语言程序设计测试(数组部分) 一、选择题(每空5分,共50分) (①下列能正确定义一维数组的选项是(B )。Y2005-4X25 2,2 下列叙述中正确的是(C)。Y2005-4X27 a和b的长度相同 度 数组长度 C)a数组长度大于b数组长度 D)上述说法都不对 (3)有下列程序: Y2006-4X34 main( 程序执行后的输出结果是(B)。 )369 D)751 若运行时输入:246<CR>,则输出结果为(B)。 A)200B)204C)240D)246 (5)有下列程序: Y2007-4X35 441432.86,5.7.37253.486,1.ikt 3+) 4盟aa水 程序运行后的输出结果是(B A)6,2,1,1 B)6.4,3,2 C)11,26.D)2,34,6, (6)有下列程序: Y2007-4X38 <string h (char p[20]a.'b.'cd),q[]="abc".r[]"abcde"; strca en(q)q 程序运行后的输出结果是( B)。 C)11D)7 2084 c)a[0][3]D)a[] #include <stdio.h> ints[121,2,3,4.4,3,21,11,2,3},c[50,i for(i=0:i<12;i++) c[s[i]]+ printf"%d"c) 程序的运行结果是(C)。 B)234 C)4332 D)1123 :inta2][3, 以下选项中对a数组元素正确引用的是(D)。Y2008-4X26 c0)有以1B¥28820oDa2 main() printf"%dn”,n
学院 学号 姓名 C 语言程序设计测试(数组部分) 一、选择题(每空 5 分,共 50 分) (1)下列能正确定义一维数组的选项是( B )。 Y2005-4 X25 A)int a[5]={0,1,2,3,4,5}; B)char a[ ]={0,1,2,3,4,5}; C)char a={'A', 'B', 'C'}; D)int a[5]="0123"; (2)已有定义: char a[ ]="xyz",b[ ]={'x', 'y', 'z'};,下列叙述中正确的是( C )。Y2005-4 X27 A)数组 a 和 b 的长度相同 B)a 数组长度小于 b 数组长度 C)a 数组长度大于 b 数组长度 D)上述说法都不对 (3)有下列程序: Y2006-4 X34 main( ) { int i,t[ ][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf("%d",t[2-i][i]); } 程序执行后的输出结果是( B )。 A)7 5 3 B)3 5 7 C)3 6 9 D)7 5 1 (4)有下列程序: Y2006-9 X36 main( ) { int x[3][2]={0},i; for(i=0;i<3;i++) scanf("%d",x[i]); printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]); } 若运行时输入:2 4 6 <CR>,则输出结果为( B )。 A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6 (5)有下列程序: Y2007-4 X35 main( ) { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t; for(i=0;i<3;i++) for(k=i+l;k<4;k++)if(a[i][i]<a[k][k]){t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;} for(i=0;i<4;i++)printf("%d,",a[0][i]); } 程序运行后的输出结果是( B )。 A)6,2,1,1, B)6,4,3,2, C)1,1,2,6, D)2,3,4,6, (6)有下列程序: Y2007-4 X38 # include <string.h> main( ) { char p[20]={'a','b','c','d'},q[ ]="abc", r[ ]="abcde"; strcat(p, r); strcpy(p+strlen(q), q); printf("%d\n", strlen(p)); } 程序运行后的输出结果是( B )。 A)9 B)6 C)11 D)7 (7)若有定义语句:int a[3][6];,按在内存中的存放顺序,a 数组的第 10 个元素是( B )。Y2007-9 X31 A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4] (8)有以下程序 Y2008-4 X31 #include <stdio.h> main() { int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf("%d",c[i]); printf("\n"); } 程序的运行结果是( C )。 A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D)1 1 2 3 (9)若有定义:int a[2][3];, 以下选项中对 a 数组元素正确引用的是( D )。 Y2008-4 X26 A)a[2][!1] B)a[2][3] C)a [0][3] D)a[1>2][!1] (10)有以下程序 Y2009-9 X20 #include <stdio.h> main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=’a’&&s[i]<=’z’) n++; printf(“%d\n”,n);
程序运行后的输出结果是(B) A)0B)2C)3D)5 二、填空题(每空5分,共50分) (1)设有定义语句:ita][3={0;,{12,则数组元素a1[2]的值是【0 】Y2007-4T13 (2)下列程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输 出。请填空。Y2007-4T14 main() int x[10],a[9]i; for(i=0;i<10;++)scanf("%d"&x[i]); for(【i=1 】;i<10:i+) ai-l]Fx+【x-l] 】 for(i=0;i<9;+)printf("%d "afil); printf(""): (3)有以下程序Y2009-9T13 #include <stdio.h> main() char a[20"How are you?b2] scanf(%s”,b printf(%s%sn”a,b) 程序运行时从键盘输入:How are you?<回车> 则输出结果为【How are you?How (4)下列程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数, num[1]中统计字母B的个数,其他依次类推。用#号结束输入,请填空。Y2007-9T13 #include <stdio.h #include <ctype.h> main() int num[26]=f0).i:char c: whilc(【c=getchar(0 】)1=#) if(isupper(c))num[c-'A']+=1 】;/体幸isupper()是否为大写判断函数/ for(=0,i<26,it+) printf("%c:%dn",i+A',num[i]); (5)下列程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数, 请填空。 Y2006-4T13 main() int ij; for(i-0:【i<10 】it+) {j=i*10+6 if【 j%3 】)continue, printf("%d"i): (6)下列程序的输出结果是【30 】。Y2006-4T8 main() inta[3][3]={1,2,9,{3,4,8},{5,6,7}},i,s=0: for(i=0:i<3:i+) s+=a[i][i]+a[i][3-i-1]: printf("%d\n",s): 1 (7)下列程序运行后的输出结果是【abcbcc】Y2005-4T15 #include <string.h> main() char ch[]="abc",x[3][4]:int i: for(i=0;i<3:i++)strcpy(x[i],ch); for(i=0:i<3:i++)printf("%s",&x[i][i]) printf("\n"):
} 程序运行后的输出结果是( B ) A)0 B)2 C)3 D)5 二、填空题(每空 5 分,共 50 分) (1)设有定义语句:int a[ ][3]={{0},{1}{2}};,则数组元素 a[1][2]的值是 【 0 】 Y2007-4 T13 (2)下列程序的功能是:求出数组 x 中各相邻两个元素的和依次存放到 a 数组中,然后输 出。请填空。Y2007-4 T14 main( ) { int x[10],a[9],i; for(i=0; i<10; i++) scanf("%d",&x[i]); for( 【 i=1 】 ; i<10; i++ ) a[i-1]=x[i]+ 【 x[i-1] 】 ;. for(i=0; i<9; i++) printf("%d ",a[i]); printf(""); } (3)有以下程序 Y2009-9 T13 #include <stdio.h> main() { char a[20]=”How are you?”,b[20]; scanf(“%s”,b); printf(“%s %s\n”,a,b); } 程序运行时从键盘输入:How are you?<回车> 则输出结果为 【 How are you? How 】 。 (4)下列程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母 A 的个数, num[1]中统计字母 B 的个数,其他依次类推。用#号结束输入,请填空。Y2007-9 T13 #include <stdio.h> #include <ctype.h> main( ) { int num[26]={0},i; char c; whilc(( 【 c=getchar() 】)! ='#') if(isupper(c)) num[c-'A']+ = 【 1 】; /** isupper ()是否为大写判断函数/ for(i=0;i<26;i++) printf("%c:%d\n",i+'A',num[i]); } (5)下列程序的功能是:输出 100 以内(不含 100)能被 3 整除且个位数为 6 的所有整数, 请填空。 Y2006-4 T13 main( ) ( int i,j; for(i=0; 【 i<10 】 ;i++) { j=i*10+6; if( 【 j%3 】 )continue; printf("%d",j); } } (6)下列程序的输出结果是 【 30 】 。Y2006-4 T8 main( ) { int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+ =a[i][i]+a[i][3-i-1]; printf("%d\n",s); } (7)下列程序运行后的输出结果是【 abcbcc 】 Y2005-4 T15 #include <string.h> main( ) { char ch[ ]="abc",x[3][4]; int i; for(i=0;i<3;i++) strcpy(x[i],ch); for(i=0;i<3;i++) printf("%s",&x[i][i]); printf("\n"); }