C语言习题(6) 下载本文

内容发布更新时间 : 2024/6/3 22:07:26星期一 下面是文章的全部内容请认真阅读。

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 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 int main ( )

{ char b []=\b[5]=0;

printf (\return 0; }

2. 写出下面程序的运行结果 。

#include int main ( ) { int i,f[10]; f[0]=f[1]=1;

D)ABC456789