
C语言习题七参考答案.doc
9页习题七一、 单项选择题1、 以下程序的输出结果是( )main(){int i,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i; /*a: 0 1 2 3 4 5 6 7 8 9 */for(i=0;i<3;i++)p[i]=a[i*(i+1)]; /*p:0 2 6 */for(i=0;i<3;i++)k+=p[i]*2; /* k=5+4+12=21 */printf(“%d\n”,k); }A)20 B)21 C)22 D)232、以下正确的数组定义语句是( )A)int y[1][4]={1,2,3,4,5}; B)float x[3][ ]={{1},{2},{3}};C)long s[2][3]={{1},{1,2},{1,2,3}}; D)double t[ ][3]={0};3、以下程序段的输出结果是( )main(){int m[3][3]={{1},{2},{3}}; m 1 0 0 n 1 2 3int n[3][3]={1,2,3}; 2 0 0 0 0 0printf(“%d\n”,m[1][0]+n[0][0]); 3 0 0 0 0 0printf(“%d\n”,m[0][1]+n[1][0]); }A)0 B)2 C)3 D)1 0 3 0 24、以下程序的输出结果是( )。
main(){int i,x[3][3]={1,2,3,4,5,6,7,8,9}; 1 2 3for(i=0;i<3;i++)printf(“%d,”x[i][2-i]); 4 5 6} 7 9 9A)1,5,9 B)1,4,7 C)3,5,7 D)3,6,95、对以下程序从第一列开始输入数据:2473↙,程序的输出结果是( )include “stdio.h”main(){char c;while((c=getchar())!=’\n’){switch (c-‘2’){case 0:case 1:putchar(c+4);case 2:putchar(c+4);break;case 3:putchar(c+3);default:putchar(c+2);}}} A)668977 B}668966 C}66778777 D)66887666、不能正确为字符数组输入数据的是( )A)char s[5];scanf(“%s”,&s); B)char s[5];scanf(“%s”,s);C)char s[5];scanf(“%s”,&s[0]); D)char s[5];gets(s);7、若有char a[80],b[80];则正确的是( )。
A)puts(a,b); B)printf(“%s,%s”a[ ],b[ ]);C)putchar(a,b); D)puts(a);puts(b);8、以下程序的输出是( )main(){char a[2][5]={“6937”,”8254”}; 6 9 3 7int i,j,s=0; 8 2 5 4for(i=0;i<2;i++)for(j=0;a[i][j]>'0'&&a[i][j]<='9';j+=2)s=10*s+a[i][j]-‘0’;printf(“s=%d\n”,s);}A)6385 B)69825 C)63825 D)6938251248…512二、 填空题1、以下程序的输出结果是________ 结果: main(){int arr[10],i,k;for(i=0;i<10;i++)arr[i]=1;for(i=0;i<10;i++)for(k=0;k
填空,使程序正确main(){int i,n,age,a[30]={0};for(i=0;i<30;i++){scanf(“%d”,&age);____________;}(a[age-18]++ 或a[age]++) printf(“age number\n”);for(________;i++)printf(“%5d %6d\n”,i,a[i]); (i=0;i<8或i=0;i<25) } 3、 下程序的功能:在给定数组中查找某个数,若找到,则输出该数在数组中的位置,否则输出“can not found!”填空,使程序正确main(){int i,n,a[8]={25,21,57,34,12,9,4,44};scabf(“%d”,&n);for(i=0;i<8;i++)if(n==a[i]){printf(“The index is %d\n”,i);__________;} (break)if(________)printf(“can not found!\n”);} (i>=8)4、 以下程序的功能:把两个按升序排列的数组合并成一个按升序排列的数组填空,使程序正确 main(){int i=0,j=0,k=0,a[3]={5,9,19},b[5]={12,24,26,37,48},c[10];while(i<3&&j<5)if(____________){c[k]=b[j];k++;j++;} (a[i]>b[j]) else {c[k]=a[i];k++;i++;}while(__________){c[k]=a[i];k++;i++;} (i<3)while(__________){c[k]=b[j];k++;j++;} (j<5)for(i=0;i 填空,使程序正确include ”stdio.h”main( ){ int j,k; char a[10][80],b[10];for ( j=0; j<10; j++ ) gets(a[j]);for ( j=0; j<10; j++ ){__________;( b[j]=a[j][0])for ( k=1; a[j][k]!=’\0’; k++ )if ( b[j]
main( ){int i,j,k=2; float a[40],s;for ( i=0; i<30; i++ ){a[i]=k;k+=2; } /* 产生a数组 */j=30; s=0;for ( i=0; i<30; i++ )/* 每5个数产生一个平均值依次放入a[j],j=30,31,...,35 */{s+=a[i]; /*for(i=30;i<35;i++) a[(i-30)*5+2]; */if ( (i+1)%5==0 ) { a[j++]=s/5; s=0; } }k=30; for ( i=0; i<30; i++ ) /* 输出a。
