.
C语言习题(6)
第六章 数组
一.填空题
1. C语言数组的下标总是从 开始,不可以为负数;构成数组各个元素具有相同
的 。
2. 在C语言中,二维数组的元素在内存中的存放顺序是 。
3. 若有定义:double x[3][5],则x数组中行下标的下限为 ,列下标的上限
为 。
4. 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为 ,a[2][1]
得到的值为 。
5. 若有定义int a[][4]={1,2,3,4,5,6,7,8,9},则数组a第一维的大小为 。 6. 设char str[100]=”Hangzhou”;则数组str所在内存空间应为 字节。 7. 下列程序的输出结果是 。
char str[ ][10]={”abcd”,”1234”,”efgh”,”5678”}; int k=1;
printf(“%s”,str[k++]);
8. 欲将字符串S1复制到字符串S2中,其语句是 。
9. 如果在程序中调用了strcat函数,则需要预处理命令 ;如果调用了
gets函数,则需要预处理命令 。
10. 字符串是以 为结束标志的一维字符数组。有定义:char a[]=”China”;则a
数组的长度是 。
11. 数组在内存中占用一段连续的存储空间,该存储空间的首地址用 表示。 12. 调用strlen(“abcd\\0ef\\0g”)的返回值为 。 二.选择题
1. 在C语言中,引用数组元素时,其数组下标的数据类型允许是 。
A)整型常量 B)整型表达式
C)整型常量或整型表达式 C)任何类型的表达式 2. 以下对一维整型数组a的正确说明是 。
A)int a(10) ; B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n];
3. 若有定义:int a[10],则对数组a元素的正确引用是 。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]
4. 若有定义:int a[3][4],则对数组a元素的正确引用是 。
A)a[2][4] B)a[1,3] C)a(5) D)a[10-10][2] 5. 以下能对二维数组a进行正确初始化的语句是 。
A)int a[2][]={{1,0,1},{5,2,3}} ; B)int a[][3]={{1,2,3},{4,5,6}} ; C)int a[2][4]={{1,2,3},{4,5},{6}} ;
精选文档
.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
D)int a[1][4]={1,2,3,4,5} ;
以下不能对二维数组a进行正确初始化的语句是 。 A)int a[2][3]={0} ;
B)int a[][3]={{1,2},{0}} ;
C)int a[2][3]={{1,2},{3,4},{5,6}} ; D)int a[][3]={1,2,3,4,5,6} ; 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为 (。设a[0][0]的位置为0)
A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1 以下不正确的定义语句是 。 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’} ; 下面程序段的输出结果是 。 int k,a[3][3]={1,2,3,4,5,6,7,8,9};
for (k=0;k<3;k++) printf(“%d”,a[k][2-k]);
A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7 下面是对s的初始化,其中不正确的是 。
A)char s[5]={“abc”}; B)char s[5]={‘a’,’b’,’c’}; C)char s[5]=” ”; D)char s[5]=”abcdef”; 下面程序段的输出结果是 。
char c[5]={‘a’,’b’,’\\0’,’c’,’\\0’}; printf(“%s”,c);
A)’a’’b’ B)ab C)ab c D)abc 有两个字符数组a,b,则以下正确的输入语句是 。 A)gets(a,b); B)scanf(“%s%s”,a,b);
C)scanf(“%s%s”,&a,&b); D)gets(“a”),gets(“b”); 判断字符串a和b是否相等,应当使用 。 A)if (a= =b) B)if (a=b) C)if (strcpy(a,b)) D) if (strcmp(a,b)= =0) 判断字符串a是否大于b,应当使用 。 A)if (a>b) B)if (strcmp(a,b)) C)if (strcmp(b,a)>0) D)if (strcmp(a,b)>0) 下面叙述正确的是 。
A)两个字符串所包含的字符个数相同时,才能比较字符串 B)字符个数多的字符串比字符个数少的字符串大 C)字符串”STOP ”与”Stop”相等 D)字符串”That”小于字符串”The”
下面有关字符数组的描述中错误的是 。 A)字符数组可以存放字符串 B)字符串可以整体输入,输出
C)可以在赋值语句中通过赋值运算对字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较
精选文档
.
17. 若输入数据:abcd1234 efgh<回车>,以下程序的运行结果是 。
char s[13];
scanf(“%s”,s); printf(“%s\\n”,s);
A)abcd B)abcd1234 efgh C)abcd1234 D)abcd1234efgh
18. 函数strcmp(“Int”,”int”)的返回值为 。
A)0 B)正数 C)负数 D)”Intint” 19. 当执行下面的程序时,如果输入ABC,则输出结果是 。
char ss[10]=”1,2,3,4,5”;
gets(ss); strcat(ss,”6789”); printf(“%s\\n”,ss); A)ABC6789 B)ABC67 C)12345ABC6 D)ABC456789 20. 不能把字符串”Hello!”赋给数组b的语句是 。
A)char b[]={‘H’,’e’,’l’,’l’,’o’,’!’,’\\0’}; B)char b[]=”Hello!”;
C)char b[10]; b[10]=”Hello!”; D)char b[10]; strcpy(b,”Hello!”); 21. 对两个数组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长度长 22. 有以下程序
char a[]={“abcdefgh”}; int i,j;
i=sizeof(a); j=strlen(a); printf(“%d,%d\\n”,i,j);
程序运行后的输出结果是 。 A)9,9 B)8,9 C)1,8 D)9,8 三.程序阅读题
1. 下列程序的输出结果是 。
#include
{ char b []=\ b[5]=0;
printf (\ return 0; }
2. 写出下面程序的运行结果 。
#include
精选文档