D) 可在程序的编译或运行阶段得到初值0
【7.28】以下各组中选项中,均能正确说明二维实型数组a的是 。
A) float a[3][4]; float a[][4];
float a[3][]={{1},{0}}; B) float a(3,4);
float a[3][4];
float a[][]={{0},{0}}; C) float a[3][4];
float a[][4]={{0},{0}};
auto float a[][4]={{0},{0},{0}} E) float a[3][4];
float a[3][]; float a[][4];
【7.29】在C语言中,二维数组元素在内存中的存放顺序是 。
A) 按行存放 B) 按列存放
C) 由用户自己定义 D) 由编译器决定 【7.30】对以下说明语句的正确理解是 。 int a[10]={6,7,8,9,10};
A) 将5个初值依次赋给a[1]至a[5] B) 将5个初值依次赋给a[0]至a[4] C) 将5个初值依次赋给a[6]至a[10]
D) 因为数组长度与初值的个数不相同,所以此语句不正确
【7.31】下列数组说明语句中错误的是 。
A) double x[5] = {2.0,4.0,6.0,8.0,10.0}; B) int y[5] = {0,1,3,5,7,9};
C) char c1[ ] = {‘1’,‘2’,‘3’,‘4’,‘5’}; D) char c2[ ] = {‘\\x10’, ‘\\xa’, ‘\\x8’};
【7.32】已知:int a[ ][3]={1,2,3,4,5,6,7};则数组a的第一维的大小是 。 A) 2 B) 3 C) 4 D)无确定值
【7.33】若二维数组a有m列,则在a[i][j]之前的元素各数为 。 A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1 【7.34】以下正确的语句是 。
A) int a[1][4]={1,2,3,4,5}; B) float x[3][ ]={{1},{2},{3}}; C) long b[2][3]={{1},{1,2},{1,2,3}}; D) double y[ ][3]={0};
【7.35】 下面是对外部变量s的初始化,其中错误的是 。
A) char s[5]={“abc”};
B) char s[5]={‘a’,‘b’,‘c’}; C) char s[5]=“”; D) char s[5]=”abcdef”;
【7.36】 已知:char a[20],b[20];则以下不正确的输入语句是 。
A) gets(a,b);
B) scanf(“%s%s”,a[ ],b[ ]); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”);
【7.37】有字符数组a[80]和b[80],则正确的输出语句是 。
A) puts(a,b);
B) printf(“%s,%s”,a[ ],b[ ]); C) putchar(a,b); D) puts(a),puts(b);
【7.38】若要求:如果字符串s1大于字符串s2则要执行if语句的语句1应当使用 。
A) if (s1>s2) B) if (strcmp(s1,s2)) C) if (strcmp(s2,s1)>0) D) if (strcmp(s1,s2)>0)
【7.39】下面描述正确的是 。
A) 两个字符串所包含的字符个数相同时,才能比较字符串 B) 字符个数多的字符串比字符少的字符串大 C) 字符串”STOP”与”STOP”相等 D) 字符串“That”小于字符串”The”
【7.40】下面程序的运行结果是 。
char c[5] = {‘a’,‘b’,‘\\0’,‘c’,‘\\0’}; printf(“%s”,c);
A)‘a’’b’ B) \\0
C) ab c D)以上三个答案均有错误
【7.41】下面程序段的运行结果是 (其中~ 表示空格)。
char a[7]=“abcdef”,b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]); A) ~ B) \\0 C) e D) f
【7.42】已知以下程序段,则 。
char a[3],b[ ]=”China”; a=b;
printf(“%s”,a);
A) 运行后将输出China B) 运行后将输出Ch C) 运行后将输出Chi 1.
D) 程序出错
【7.43】下面程序段的运行结果是 。 char c[ ]=”\\t\\v\\\\\\0will\\n”; printf(“%d”,strlen(c));
A) 14 B) 3
C) 9
D)字符串中有非法字符,输出值不确定
【7.44】若有以下程序段: int a[ ]={4,0,2,3,1}, i, j, t; for (i=1; i<5, i++) { t=a[i]; j=i-1;
while (j>=0 && t>a[j]) { a[j+1]=a[j]; j--;} a[j+1]=t;
}
则该程序段的功能是 。
A) 对数组a进行插入排序(升序) B) 对数组a进行插入排序(降序) C) 对数组a进行选择排序(升序) D) 对数组a进行选择排序(降序)
【7.45】下面程序 (程序每行前面的数字表示行号)。
1 main( ) 2 {
3 float a[10]; 4 int i;
5 for (i=0;i<3;i++) scanf(“%d”,&a[i]);
6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7. printf(“%f\\n”,a[0]; 8. }
A) 没有错误 B) 第3行有错误 C) 第五行有错误 D) 第7行有错误
【7.46】下面程序中有错误的行是 (程序每行前面的数字表示行号)。 1 main( )
2 { 3 int a[3];
4 int i;
5 canf(“%d”,&a);
6 for(i=0;i<3;i++) a[0]=a[0]+a[i]; 7 printf(“a[0]=%d”,a[0]; }
A) 3 B) 6 C) 7 D) 5
【7.47】下面程序 (程序每行前面的数字表示行号)。 1 main( ) 2 { 3 int a[3]; 4 int i;
5 for (i=0;i<3;i++) scanf(“%d”,&a[i]); 6 for (i=1;i<3;i++) a[0]=a[0]+a[i];
7 printf (“%d\\n”,a); 8 {
A) 没有错误 B) 第5行有错误 C) 第6行有错误 D) 第7行有错误
【7.48】下面程序 (程序每行前面的数字表示行号)。 1 main( ) 2 {
3 int a[3]={3*0}; 4 int i;
5 for (i=0;i<3;i++) scanf(“%d”,&a[i]); 6 for (i=0;i<3;i++) a[0]=a[0]+a[i]; 7 printf (“%d\\n”,a[0]); 8 }
A) 第3行有错误 B) 第7行有错误 C) 第5行有错误 D) 没有错误
7.2 阅读程序
【7.49】阅读下列程序,选择程序的运行结果。 int m[3][3] = { {1}, {2}, {3} }; int n[3][3] = { 1, 2, 3 }; main ( )
{ printf (“%d\\n”, m[1][0] + n[0][0] );
/* ① */
printf (“%d\\n”, m[0][1] + n[1][0] );