第七章 数组 下载本文

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] );