A.1 B.2 C.4 D. 死循环 26.以下程序执行后的输出结果是________。
#include \void main() { int i;
for(i=1;i<=40;i++) { if(i++%5==0)
if(++i%8==0) printf(\ printf(\A.5 B.24 C.32 D.40
27.有以下程序,若运行时从键盘输入:18,11<回车>,则程序输出结果是_______ 。
#include \void main() { int a,b;
printf(\ while(a!=b)
{ while(a>b) a-=b; while(b>a) b-=a; }
printf(\A.1 1 B.1 2 C.1 3 D.1 4
28.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以
下正确的程序段是_______。
A.while((ch=getchar())!='N ')printf(\; B.while(ch=getchar()!='N ')printf(\;
C.while(ch=getchar()=='N ')printf(\; D.while((ch=getchar())=='N ')printf(\; 29.以下程序运行后的输出结果是_______。
#include \void main()
{ int y=10; while(y--);printf(\
A.y=0 B.y= -1 C.y=1 D.while构成无限循环 30.有以下程序段:
?? int n,t=1,s=0; scanf(\?? do{ s=s+t; t=t-2; }while (t!=n);
?为使此程序段不陷入死循环,从键盘输入的数据应该是_______。
?? A.任意正奇数 B.任意负偶数 C.任意正偶数 D.任意负奇数 31.以下程序运行后的输出结果是_______。
#include \void main() { int i,j,x=0;
31
for(i=0;i<2;i++) { x++;
for(j=0;j<=3;j++){ if(j%2)continue;x++; } x++; }
printf(\
A.x=4 B.x=8 C.x=6 D.x=12 32.设变量已正确定义,则以下能正确计算f=n!的程序段是_______。 A.f=0; B.f=1; for(i=1;i<=n;i++) for(i=1;i<=n;i--) f*=i;?? f*=i; C.f=1; D.f=1;
for(i=n;i>1;i++) for(i=n;i>=2;i--) f*=i; f*=i; 33.以下程序运行后的输出结果是_______。
#include \void main() { int k=5,n=0; while(k>0) { switch(k)
{ default : break; case 1 : n+=k; case 2 :
case 3 : n+=k; } k--; }
printf(\???
A.0 B.4 C.6 D.7 34.以下程序的输出结果是_______。
#include \void main() { int a=1,b;
for(b=1;b<=10;b++) {if(a>=8)break;
if(a%2==1){a+=5;continue; } a-=3; }
printf(\
A.3 B.4 C.5 D. 6 35.以下程序输出结果是_______。 ?#include \void main()
32
{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