非常好的C语言章节习题集带答案 下载本文

{ int x=8;

for( ; x>0; x--)

{ if(x%3) {printf(\printf(\

A.7,4,2, B.8,7,5,2, C.9,7,6,4, D.8,5,4,2, 15.以下不会构成无限循环的语句或语句组是_______。

A.n=0; do{++n;}while(n<=0); B.n=0; while(1){n++;} C.n=10; while(n);{n--;} D.for(n=0,i=1; ;i++)n+=i; 16.以下程序的运行结果是_______。

#include \void main()

{ int k=0,m=0,i,j; for(i=0;i<2;i++)

{ for(j=0;j<3;j++) k++; k-=j; } m=i+j;

printf(\

A.k=0,m=3 B.k=0,m=5 C.k=1,m=3 D.k=1,m=5

17.若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体的执行次数是_______。

A.9 B.8 C.3 D.2 18.下述程序的输出结果是_______。

#include \void main() { int i=6;

while(i--) printf(\printf(\

A.531 B.420 C.654321 D.死循环 19.下述程序的输出结果是_______。

#include \void main()

{ int a=0,b=0,c=0,i; for(i=0;i<4;i++) switch(i)

{ case 0:a=i++; case 1:b=i++; case 2:c=i++; case 3:i++; }

printf(\

A.0,1,3,4 B.1,2,3,4 C.0,1,2,5 D.0,2,3,4 20.下面程序的运行结果是_______。

a=1;b=2; c=2; while(a

29

printf(\A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1 21.以下叙述中正确的是_______。

A.break语句只能用于switch语句体中

B.continue语句的作用是使程序的执行流程跳出包含它的所有循环 C.break 语句只能用在循环体内和switch语句体内

D.在循环体内使用break语句和continue语句的作用相同 22.以下程序运行后的输出结果是_______。 #include \void main() { int k=5,n=0; do { switch(k)

{ case 1: case 3: n+=1; break; default: n=0;k--;

case 2: case 4: n+=2;k--;break; } printf(\

A.2345 B.0235 C.02356 D.2356 23.下列程序的输出结果是_______。

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

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

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

A.1*1=1 1*2=2 1*3=3 B.1*1=1 1*2=2 1*3=3

2*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9 C.1*1=1 D.1*1=1

1*2=2 2*2=4 2*1=2 2*2=4

1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9

24.执行以下程序时输入1234567890<回车>,则其中while循环体将执行_______次。 #include \

void main()

{ char ch; while((ch=getchar())=='0') printf(\A.10 B.0 C.2 D.l 25.下列程序的输出结果是_______。

#include \void main() { int k=5;

while(-k) printf(\

30

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