D)数组x的长度小于数组y的长度,因为还存储了一个结束符 9、在int b[ ][3]={{1},{3,2},{4,5,6},{0}};中b[2][2]的值是( C )。 A)0 B)5 C)6 D)2 10、下列初始化正确的是( A )。
A)char s1[ ]="abcd" ; B)char s2[3]="zxy";
C)char * p=1000 ; D) char s4[2][3]={{"xyz"},{"mnp"}} ;
11、设有定义:char s[12]="string";则printf ("%d\\n",strlen(s));的输出是( A A)6 B)7 C)11 D)12
12、函数调用strcat(strcpy(str1,str2),str3)的功能是( A )。
A)将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后 B)将字符串str1复制到字符串str2中后再连接到字符串str3之后 C)将字符串str1复制到字符串str2中后再复制到字符串str3之后
D) 将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中 13、使用随机函数需要包含的头文件有( D )。 A) #include
14、若有说明int a[3][4]={0};下列叙述正确的是( D )。 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0
15、执行下面的程序段后,变量k的值为( C )。
int k=3,s[2]; s[0]=k; k=s[0]*10;
A)不定值 B)33 C)30 D)10 16、以下定义数组的语句中正确的是( D )。 A) int a(10) B) char str[] ;
C) int n=5; int a[4][n];
17
。 )
D) #define N 10 char str[N];
17、定义如下变量和数组: int k;
int a[3][3]={9,8,7,6,5,4,3,2,1}; 则下列语句的输出结果是( B )。 for(k=0;k<3;k++) printf(―%d‖,a[k][k]);
A) 7 5 3 B) 9 5 1 C) 9 6 3 D)7 4 1 18、下列描述正确的是( D )。
A)两个字符串所包含的字符个数相同时,才能比较字符串 B)字符个数多的字符串比字符个数少的字符串大 C)字符串“STOP”与“STOP ”相等 D)字符串“That‖与字符串“ThaT”不相等
19、若二维数组a有n 行n列,则副对角线元素是( )。(假设a[0][0]位于数组的第一个位置上,且i∈[0,n))
A)a[i][i] B)a[i][n-i] C)a[n-i][i] D)a[i][n-1-i] 20、对以下说明语句的正确理解是( B )。 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)因为数组长度与初值的个数不相同,所以此语句不正确 21、判断字符串a和b是否相等,应使用( D )。
A)if(a= =b) B) if(a=b) C)if(strcpy(a,b)) D) if(strcmp(a,b)= =0) 22、判断字符串s1的长度是否大于字符串s2的长度,应使用(C )。 A)if(s1>s2) B)if(strcmp(s1,s2)) C)if(strlen(s1)>strlen(s2)) D)if(strcat(s1)>strcat(s2)) 23、下列程序段的运行结果( B )。 char c[15]={'a','b','\\0','c','\\0'}; printf(―%s‖,c);
18
A)'a','b' B) ab C) abc D) a ,b *24、假设有两个字符数组a,b,则以下正确的输入语句是( C )。 A)puts(a,b); B) scanf(―%s%s‖,a,b); C)scanf(―%s%s‖,&a,&b); D)gets(―a‖);gets(―b‖);
25、若有说明int a[][3]={1,2,3,4,5,6,7,8,9};则a数组行数的大小为( B )。 A) 2 B) 3 C)4 D)无确定值
26. 若有定义double x[3][5]; 则x数组中行标的下限为( D ),列标的上限为( )。
A)1 3 B) 3 5 C)0 5 D)0 4 27、 若有说明a[3][4];则数组a中的各元素( B )。
A) 可在程序的运行阶段得到初始值0 B) 可在程序的编译阶段得到初始值0 C) 不能得到确定的初始值
D) 可在程序的编译或运行阶段得到初始值 28、若有下列程序段 char x[80]; scanf(―%s‖,x); printf(“%s”,x);
从键盘上输入字符串“zhang san”,则输出结果为( A )。 A)zhang B) zhangsan C) zhang san D)san
29、在C语言中,引用数组元素时,其数组下标的数据类型允许为( A ) A) 整型常量 B) 整型表达式 C) 整型常量或整型表达式 D) 任何类型的表达式 30、设有如下形式的字符数组定义: char str[]=‖welcome‖;
则执行下列语句后的输出结果( B )。
printf(―%d\\n‖,strlen(strcpy(str,“Hello”)));/*该题没有进行强制转换*/ A) 7 B) 5 C) 8 D)9
31、若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a共有( C )个元素。 A)8 B)5 C)3 D)15
19
32、设有如下定义:int a[100];则数组下标区间为:( A )。 A) 0~99 B) 1~99 C) 0~100 D)1~100
33、若有定义:int a[3][4],则对数组a中某元素的正确引用是( B )。 A)a[2][4] B)a[1][3] C)a(5) D)a[10-10] 34、以下对一维整型数组a的正确说明是( D )。 A)int a(10) ; B)int n=10,a[n]; C) int n; D)#define SIZE 10
scanf(―%d‖,&n); int a[SIZE]; nt a[n];
35、若要使用字符函数,需要引入的头文件是( A)。 A)string.h B)ctype.h C)stdlib.h D)stdio.h
二、判断题
( )1、在定义一维数组时,可以将该数组的长度省略 V ( )2、数组的下标从0开始。 V ( )3、数组的下标从1开始。 X ( )4、数组名代表数组的首地址。 V ( )5、在C语言中,数组元素在内存中的存放顺序是按顺序存放的。V ( )6、字符数组可以存放字符串。 V ( )7、字符串函数strupr(str),可将串中大写字母变成小写字母。 X ( )8、字符串函数strrev(str) ,可将str串字符颠倒过来。 V ( )9、字符串的结束符不是‘\\0‘ 。 X ( )10、可如此定义a数组:float a[3]={12.5,‘z‘,‖school‖}; X
( )11、数组边定义边赋值时,大括号内数据项的数目可以大于或等于数组的长度。 X
( )12、数组边定义边赋值时,大括号内数据项的数目可以小于或等于数组的长度。 V
( )13、字符串函数strcat(str1,str2)的作用是将字符串str2连接在字符串str1后。 V
20