习题七
单项选择题
以下程序的输出结果是( )。
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 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
for(i=0;i<10;i++)printf(“%d\n”,arr[i]);}
2、以下程序的功能:输入30个人的年龄,统计18岁、19岁、……、25岁各有多少人。填空,使程序正确。
m