C语言习题七参考答案 下载本文

内容发布更新时间 : 2025/1/10 5:47:25星期一 下面是文章的全部内容请认真阅读。

习题七 单项选择题

以下程序的输出结果是()。 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)23 2、以下正确的数组定义语句是()。

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 3 int n[3][3]={1,2,3}; 2 0 0 0 0 0 printf(“%d\\n”,m*1+*0++n*0+*0+); 3 0 0 0 0 0 printf(“%d\\n”,m*0+*1++n*1+*0+); }

A)0 B)2 C)3 D)1 0 3 0 2 4、以下程序的输出结果是()。 main()

{int i,x[3][3]={1,2,3,4,5,6,7,8,9}; 1 2 3 for(i=0;i<3;i++)printf(“%d,”x*i+*2-i]); 4 5 6

} 7 9 9 A)1,5,9 B)1,4,7 C)3,5,7 D)3,6,9

5、对以下程序从第一列开始输入数据: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)6688766 6、不能正确为字符数组输入数据的是( )。

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 7

int i,j,s=0; 8 2 5 4 for(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)693825 填空题

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

2、以下程序的功能:输入30个人的年龄,统计18岁、19岁、??、25岁各有多少人。填空,使程序正确。 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(“] m\\n”,i,a[i]); (i=0;i<8或i=0;i<25) }

下程序的功能:在给定数组中查找某个数,若找到,则输出该数在数组中的位置,否则输出“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)

以下程序的功能:把两个按升序排列的数组合并成一个按升序排列的数组。填空,使程序正确。 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

5、 以下程序的功能:输入10个字符串,找出每个字符串中的最大字符,并依次存入一个一维数组中,然后输出该一维数组。填空,使程序正确。 #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]

for ( j=0; j<10; j++ ) printf(”%d %c\\n”,j,b*j+); }

6、 以下程序的功能:删除字符串中所有的’C’字符。填空使程序正确。 main( )

{ int j,k; char a[80],m; gets(a);

for(j=k=0;a[j]!=’\\0’;j++)

if(a[j]!=’c’&& a[j]!=’C’)____________; ( a[k++]=a[j]);a[k]=’\\0’; printf(”%s\\n”,a); }

编程题

1、编写程序,求4x4矩阵的两条对角线元素值的和。 解1 #define N 4 main( )

{ int i,j,s=0,a[N][N];

for ( i=0; i

for ( i=0; i

if ( i==j || i+j==N-1 ) s+=a*i+*j+; printf(“s=%d\\n”,s); }