答案:C
26、设已定义char s[]=”\\”Name\\\\Address\\”\\n”;,则字符串s所占的字节数是:( ) A、19 B、18 C、15 D、14 答案:C
27、设已定义char c[8]=”Tianjin”和int j,则下面的输出函数调用中错误的是:( )
A、printf(“%s”,c); B、for(j=0;j<8;j++) printf(“%c”,c[j]); C、puts(c); D、for(j=0;j<8;j++) puts(c[j]); 答案:D
28、设已定义char a[10]和 int j,则下面输入函数调用中错误的是:( )
A、scanf(“%s”,a); B、for(j=0;j<9;j++) scanf(“%c”,a[j]); C、gets(a); D、for(j=0;j<9;j++) scanf(“%c”,&a[j]); 答案:B
29、设已定义char x[8]和int j,为了给该数组赋值,下面语句中正确的是:( A、x[8]=”Turbo C”; B、x=” Turbo C”;
C、x[]=”Turbo C”; D、for(j=0;j<7;j++) x[i]=getchar(); 答案:D
30、有如下程序,
main()
{ int n[5]={0,0,0},j,k=2; for(j=0;j printf(“%d\\n”,n[k]); } 该程序的输出结果是:( ) A、不确定的值 B、2 C、1 D、0 答案:D 31. 在C语言中,一维数组的定义方式为:类型说明符 数组名( )。 A.[常量表达式] B.[整型表达式] C.[整型常量]或[整型表达式] D.[整型常量] 答案:A 32. 若有说明:int a[10];,则对a数组元素的正确引用是:( )。 A.a[10] B.a[3.5] C.a(5) D.a[10-10] 答案:D 33. 在C语言中,引用数组元素时,其数组下标的数据类型允许是:( )。 A.字符常量 B.浮点型常量 C.整型常量或整型表达式 D.任何类型的表达式 答案:C 34. 下列数组定义、初始化或赋值语句中,正确的是:( )。 A.int x[5]={1,2,3,4,5,6}; B.int n=8; int score[n]; C.int a[8]; a[8]=100; D.int x[]={1,2,3,4,5,6}; 答案:D 35. 合法的数组说明语句是:( )。 A.int a[]=“string”; B.char a[]={0,1,2,3,4,5}; C.char a =“string”; D.int a[5]={0,1,2,3,4,5}; 答案:B 36. 已知int a[][3]={1,2,3,4,5,6,7};,则数组a的第一维的大小是:( )。 A.2 B.3 C.4 D.无确定值 答案:B ) 37. 若有说明:int a[3][4];,则对a数组元素的非法引用是:( )。 A.a[0][2*1] B.a[1][3] C.a[4-2][0] D.a[0][4] 答案:D 38. 已有定义:char a[]=\,以下叙述中正确的是:( )。 A.数组a和数组b的长度相同 B.a数组长度小于b数组长度 C.a数组长度大于b数组长度 D.数组a和数组b等价 答案:C 39. 对两个数组a和b进行如下初始化: char a[]=“ABCDEF”; char b[]={?A?, ?B?, ?C?, ?D?, ?E?, ?F?}; 则以下叙述正确的是:( )。 A.数组a与数组b完全相同 B.数组a与数组b长度相同 C.数组a与数组b中都存放字符串 D.数组a比数组b长度长 答案:D 40. 有下面的程序段: char a[3],b[]=“China”; a=b; printf(“%s”,a); A.运行后将输出China B.运行后将输出Ch C.运行后将输出Chi D.编译出错 答案:D 41. 下面程序的运行结果是:( )。 char c[5]={?a?, ?b?, ?\\0?, ?c?, ?\\0?}; printf(“%s”,c); A.ab B.abc C.ab\\0 D.ab\\0c\\0 答案:A 42. 设有数组定义:char array[]=“china”;,则数组array所占的空间为:( )。 A.4个字节 B.5个字节 C.6个字节 D.7个字节 答案:C 43. 判断字符串s1是否大于字符串s2,应当使用:( )。 A.if(s1>s2) B.if(strcmp(s1,s2)) C.if(strcmp(s2,s1)>0) D.if(strcmp(s1,s2)>0) 答案:D 44. 若有说明:int a[][4]={0,0};,则下面不正确的叙述是:( )。 A.数组a的每个元素都可得到初值0 B.二维数组a的第一维大小为1 C.因为二维数组a中初值的个数不能被第二维大小的值整除,则第一维的大小等于所得商数再加1,故数组a的行数为1 D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值 答案:D 45. 下列语句中,不正确的是:( )。 A.char str[5]=\ B.char str[]={'h','e','l','l','o','\\0'}; C.char str[5]={\D.char str[100]=\ 答案:A 46. 下面错误的初始化语句是:( )。 A.char str[]=\B.char str[100]=\ C.char str[]={'h','e','l','l','o'}; D.char str[]={'hello'}; 答案:D 47. 定义了一维int型数组a[10]后,下面错误的引用是:( )。 A.a[0]=1; B.a[10]=2; C.a[0]=5*2; D.a[1]=a[2]*a[0]; 答案:B 48. 下面的二维数组初始化语句中,错误的是:( )。 A.float b[2][2]={0.1,0.2,0.3,0.4}; B.int a[][2]={{1,2},{3,4}}; C.int a[2][]= {{1,2},{3,4}}; D.float a[2][2]={0}; 答案:C 49. 引用数组元素时,数组下标可以是:( )。 A.整型常量 B.整型变量 C.整型表达式 D.以上均可 答案:D 50. 定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为:(A.24 B.25 C.18 D.17 答案:B 51. strlen(\的结果为:( )。 A.0 B.1 C.2 D.3 答案:B 52. 下面程序的运行结果是:( )。 main() { int a[][3]={1,2,3,4,5,6}; printf(\} A.3 B.4 C.5 D.6 答案:C 53. 下面程序的运行结果是:( )。 main() { char s1[20]=\ char s2[15]=\ printf(\} A.20 B.15 C.5 D.2 答案:D 54. 下面程序的运行结果是:( )。 main() { char s1[20]=\ 。 ) int i=0; while(s1[i++]!='\\0') printf(\} A.ABCDEF B.BDF C.ABCDE D.BCDE 答案:B 55. 下面程序的运行结果是:( )。 main() { int n[2]={0},i,j,k=2; for(i=0;i printf(\} A.不确定的值 B.3 C.2 D.1 答案:A 56. 下面程序的运行结果是:( )。 main() { int x[]={22,33,44,55,66,77,88}; int k,y=0; for (k=1;k<=4;k++) if (x[k]%2==1) y++; printf(\} A.0 B.1 C.2 D.3 答案:C 57. 下面程序的运行结果是:( )。 main() { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j A.14 B.19 C.20 D.21 答案:A 58. 下面程序的运行结果是:( )。 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.l2 答案:A 59. 下面程序的运行结果是:( )。 main() { char s[]=\ int i; i=0; while(s[i]!='\\0') { if(s[i]>='a'&&s[i]<='z') printf(\ i++; } } A.ab B.ab1c2d4e C.abcde D.a 答案:C 60. 下面程序的运行结果是:( )。 main() { int i=0,n=0; char s[10]=\ for(i=0;s[i]!='\\0';i++) if(s[i]<='9'&&s[i]>='0') n=n*10+(s[i]-'0'); else break; printf(\ } A.298h01 B.29801 C.01 D.298 答案:D 二、判断题: 1. ( F )在程序中可以对数值数组中的数据进行整体使用。 2. ( T )如果strcmp(s1,s2)的返回值为一个负数,则表明字符串s1一定小于字符串s2。 3. ( F )字符数组的输出不能一次性的整体输出。 4. ( T )用scanf函数输入的字符串不可以带空格。 5. 6. 7. 8. ( T )用gets函数输入的字符串可以带空格。 ( F )实现两个字符串的复制可以使用str1=str2;语句。 ( T )使用strcpy函数可以实现两个字符串的复制。 ( T )使用strcat函数可以实现两个字符串的连接。 9. ( F )使用strlen函数可以求出一个字符串的实际长度(包含‘\\0’字符)。 10. ( F )如有定义char a[]=”student”;则数组a的长度为7。 11. ( F )如有定义char a[20];则可以通过a=“I am a boy”;给a赋值。 12. ( T )如有定义int a[2][3];则数组a的最后一个元素为a[1][2]。 13. ( T )如有定义int a[3][4]={0}; 则数组a的所有元素初值均为0。 14. ( F )C语言中数组名实质上是数组的首地址,是一个变量地址,可对其进行赋值。 15. ( F )构成数组的各个元素可以有不同的数据类型。 16. ( F )若有说明:int a[10];,则可以a[10]引用数组a的第10个元素。