C语言程序设计习题集 下载本文

{int i;

for(i=0;i<3;i++) switch(i)

{ case 0:printf(\ case 2:printf(\ default:printf(\

A.022111 B.021021 C.000122 D.012 36.以下程序输出结果是_______。 #include \void main() { int i=0,s=0; for( ; ; )

{ if(i==3||i==5) continue; if(i==6) break; i++; s+=i; }; printf(\

A.10 B.13 C.21 D.程序进入死循环

37.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是_______。 A.for(i=1,p=1;i<=5;i++) p*=i; B.for(i=1;i<=5;i++){ p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i; i++;} D.i=1;p=1;do{p*=i;i++;}while(i<=5); 38.以下程序执行后的输出结果是_______。

#include \void main()

{ int x=0,y=5,z=3;

while(z-->0&&++x<5) y=y-1; printf(\

A.3,2,0 B.3,2,-1 C.4,3,-1 D.5,-2,-5 39.以下程序执行后的输出结果是_______。

#include \void main() { int i,n=0;

for(i=2;i<5;i++)

{ do{ if(i%3) continue; n++; }while(!i); n++; }

printf(\A.n=5 B.n=2 C.n=3 D.n=4

40.下面程序的功能是输出以下形式的金字塔图。在下划线处应填入的是_______。

* *** *****

33

******* #include \void main( ) { int i,j;

for(i=1;i<=4;i++)

{ for(j=1;j<=4-i;j++) printf(\

for(j=1;j<=_______;j++) printf(\ printf(\} A.i B.2*i-1

四、习题答案

(一)、是非题

1.B 2.B 3.A 4.A 5.A 6.A 7.A 8.A 9.A 10.B 11.A 12.B 13.A 14.B 15.B 16.A 17.A 18.B 19.A 20.B (二)、选择题

1.B 2.B 3.B 4.C 5.C 11.A 12.B 13.A 14.D 15.A 21.C 22.A 23.B 24.B 25.D 31.B 32.D 33.D 34.B 35.C

C.2*i+1 6.B 7.A 8.A 16.B 17.C 18.B 26.C 27.A 28.A 36.D 37.B 38.B 34

D.i+2

9.B 10.A 19.C 20.A 29.B 30.D 39.D 40.B

第5章 数组

二、习题

(一)、是非题

1.数组名代表数组的首地址。

A.对 B.错

2.字符型数组可以用来存储字符串,因此可以用字符串初始化数组,例如:char str[]=\

Programming\。 A.对 B.错

3.函数strcpy(str1,str2)是将字符串 str2 连接到字符串 str1之后。

A.对 B.错 4.一个数组可以存储不同类型的数据。

A.对 B.错

5.数组在定义时可以不指定数组的长度,可根据程序中实际使用的元素个数决定。

A.对 B.错

6.在 C 语言中,只有当两个字符串所包含的字符个数相同时,才能比较大小。例如,字符串“That”与“The”就不能进行大小比较。 A.对 B.错

7.若有定义:int a[10];,使用数组元素时,下标的最小值是1,最大值是10。

A.对 B.错

8.在 C 语言中引用数组元素时,其数组的下标可以是任何类型的表达式。

A.对 B.错

9.任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占用存储空间。 A.对 B.错

10.一维数组的元素实质上就是一个变量,代表内存中的一个存储单元。

A.对 B.错

11.若有说明:int a[3][4]={0};,则只有元素a[0][0]可得到初值0。

A.对 B.错

12.若有说明:int a[][3]={1,2,3,4,5,6,7};,则a数组第一维的大小不能确定。

A.对 B.错

13.若一维数组在定义时进行了初始化,则可以省略数组长度,系统会根据初始值个数确定该数组长度。 A.对 B.错

14.数组初始化时,若初始值的个数少于数组定义的长度,C语言会自动将剩余的元素初始化为初始化列表中最后一个初始值。

35

A.对 B.错

15.可以对字符型数组进行整体输入、输出。

A.对 B.错 16.可以对实型数组进行整体输入、输出。

A.对 B.错

17.设有定义:double a[4][5];,则数组a中元素的个数是9。

A.对 B.错

18.设有定义:int a[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}};,则表达式a[1][2]+a[2][3]的值9。 A.对 B.错

19.设有定义:char s[]={\,则执行printf(\后输出的值是6。

A.对 B.错

20.设有两个整型数组a和b,可以通过a=b,将数组b整体赋值给数组a。

A.对 B.错 (二)、选择题

1.设有两字符串“Good”、“Morning”分别存放在字符数组 str1[10]、str2[10]中,下面语句中能把“Morning”连接到“Good”之后的是______。 A.strcpy(str1,str2); B.strcpy(str1, \C.strcat(str1, \ D.strcat(\2.以下对一维整型数组 a 定义正确的是______。

A.int a(10); B.int n=10,a[n];

C.int n;scanf(\ D.#define SIZE 10 int a[SIZE];

3.下列字符串赋值语句中,不能正确把字符串“Hello World”赋给数组的语句是______。

A.char a1[]={'H','e ','l','l','o',' ','W','o','r','l','d','\\0'}; B.char a2[15]; strcpy(a2,\C.char a3[15]; a3=\D.char a4[10]={ \

4.用 scanf 函数输入一个字符串到数组 str 中,下面正确的语句是______。

A.scanf(\ B.scanf(\C.scanf(\ D.scanf(\5.以下能对二维数组 a 进行正确说明和初始化的语句是______。

A.int a()(3)={ (1,2,3),(2,4,6)}; B.int a[2][]={{3,2,1},{5,6,7}}; C.int a[][3]={{3,2,1},{5,6,7}}; D.int a(2)()={(1,2,3),(2,4,6)}; 6.判断字符串 a 和 b 是否相等,应当使用______。

A.if(a==b) B.if(a=b) C.if(strcat(a,b)) D.if(strcmp(a,b)) 7.有字符数组 a[80]和 b[80],则正确的输出语句是______。

A.puts(a,b); B.puts(a);puts(b); C.printf(\ D.putchar(a,b); 8.下面程序的运行结果是______。

36