数组练习题及答案 联系客服

发布时间 : 星期四 文章数组练习题及答案更新完毕开始阅读34e87955f11dc281e53a580216fc700abb685264

第五章 数组练习题及答案

一、选择题

1、判断字符串a和b是否相等,应当使用( )

A、if(a==b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 2、以下正确的定义语句是( )

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}; 3、以下各组选项中,均能正确定义二维实型数组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]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}}; D、float a[3][4]; float a[3][ ]; float a[ ][4]; 4、下面程序的运行结果是( )

1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB

21—25 BBAAA 26—30 DBDDB

#include \ main()

{ char str[]=\ int k;

for(k=2;((c=str[k])!='\\0');k++) { switch(c) {case 'I':++k;break; case 'L':continue;

default:putchar(c);continue; } putchar('*');

} }

A、SSW* B、SW* C、SW*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入( ) char x[]=\ char y[]=\ int i=0;

1

while(x[i]!='\\0'&&y[i]!='\\0') if(x[i]==y[i]) printf(\《1》); else i++;

A、x[i++] B、y[++i] C、x[i] D、y[i] 6、有下面的程序段,则( ) char a[3],b[]=\ a=b;

printf(\

A、运行后将输出China B、运行后将输出Ch C、运行后将输出Chi D、编译出错 7、下面程序的运行结果是( ) main()

{ char ch[7]={\ int i,s=0;

for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)

s=10*s+ch[i]-'0'; printf(\ }

A、1 B、1256 C、12ab56 D、1 2 5 6

8、定义如下变量和数组:则下面语句的输出结果是( ) int k;

int a[3][3]={1,2,3,4,5,6,7,8,9,}; for(k=0;k<3;k++)

printf(\

A、3 5 7 B、3 6 9 C、1 5 9 D、1 4 7 9、下面程序段的运行结果是( ) char c[5]={'a','b','\\0','c','\\0'}; printf(\

A、'a''b' B、ab C、ab c D、abc 10、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( ) A、2 B、3 C、4 D、无确定值

2

11、下面程序的运行结果是( ) main() { int a[6],i; for(i=1;i<6;i++)

{ a[i]=9*(i-2+4*(i>3))%5; printf(\ } }

A、-4 0 4 0 4 B、-4 0 4 0 3 C、-4 0 4 4 3 D、-4 0 4 4 0 12、下面程序的运行结果是( ) main() {int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++) { for(j=1;j<6;j++) printf(\ printf(\ } }

A、1 1 1 1 1 B、0 0 0 0 1 C、1 0 0 0 0 D、1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 13、下述对C语言字符数组的描述中错误的是( ) A、字符数组可以存放字符串。

B、字符数组的字符串可以整体输入、输出。

C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值。 D、不可以用关系运算符对字符数组中的字符串进行比较。 14、判断字符串s1是否大于字符串s2,应当使用( )

A、if(s1>s2) B、if(strcmp(s1,s2)) C、if(strcmp(s2,s1)>0) D、if(strcmp(s1,s2)>0) 15、下面程序(每行程序前面的数字表示行号):( )

3

1 main() 2 {

3 int a[3]={3*0}; 4 int i;

5 for(i=0;i<3;i++) scanf(\ 6 for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7 printf(\ 8 }

A、第3行有错误 B、第7行有错误 C、第5行有错误 D、没有错误 16、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。横线处应填入( ) main()

{char s[80],c1,c2=' '; int i=0,num=0; gets(s); while(s[i]!='\\0') {c1=s[i]; if(i==0) c2=' '; else c2=s[i-1]; if(《1》) num++; i++; }

printf(\ }

A、c1==' '&&c2==' ' B、c1!=' '&&c2==' ' C、c1==' '&&c2!=' ' D、c1!=' '&&c2!=' ' 17、有字符数组a[80]和b[80],则正确的输出语句是( )

A、puts(a,b); B、printf(\ C、putchar(a,b); D、puts(a),puts(b); 18、下面描述正确的是( )

A、两个字符串所包含的字符个数相同时,才能比较字符串。 B、字符个数多的字符串比字符个数少的字符串大. C、字符串“STOP ”与“STOP”相等。 D、字符串“That”小于字符串“The”

19、有两个字符数组a、b,则以下正确的输入语句是( )

A、gets(a,b); B、scanf(\ C、scanf(\ D、gets(\

4