昆明理工大学C语言程序设计课后习题答案 下载本文

printf(\

A.a=4,b=4B.a=4,b=5C.a=5,b=4 D.a=5,b=5

2.已知:int t=0; while(t=1) {...} ,则以下叙述正确的是______。 A.循环表达式的值为0 B.循环表达式的值为1

C.循环表达式不合法 D.以上说法都不对 3.设有以下程序段 ,则 _____。

int x=0,s=0; while(!x!=0)s+=++x; printf(\ while(!0!=0) while(1!=0)

while(1) 执行 s=s+(++x) s=1 A.运行程序段后输出0 B.运行程序段后输出1

C.程序段中的表达式是非法的 D.程序段执行无限次 4.以下程序的运行结果是______。

#include void main() {int y=9;

for( ; y>0;y--)

if(y%3==0) printf(\ A.741 B.963 C.852 D.875421

在循环中,能被3整除的数有9,6,3,输出前自减1,所以得8,5,2。 5.以下描述中正确的是______。

A.由于do-while的循环体只能有一条语句,所以循环体内不能使用复合语句 B.do-while由do开始,用while结束,在while(表达式)后面不能写分号 C.在do-while循环中,是先执行一次循环体,再进行判断 D.在do-while循环中,根据情况可以省略while 6.以下程序段的运行结果是______。

i=0; do printf(\ A.0,0 B.0,1 C.1,1 D.程序进入无限循环

7.若程序执行时的输入数据是2473<回车>,则下述程序的输出结果是______。

#include void main() { int cs;

while((cs=getchar())!='\\n') {switch(cs-'2') { case 0:

case 1: putchar(cs+4);

case 2: putchar(cs+4); break; case 3: putchar(cs+3);

default: putchar(cs+2); } } }

A.668977 B.668966 C.6677877 D.6688766

8.以下程序的输出结果是______。

#include \void main() { int a,i;a=0; for(i=1;i<5;i++) switch(i)

{ case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; }

printf(\A.31 B.13 C.10 D.20 9.以下程序的运行结果是______。

#include void main() { int i,j,m=55; for(i=1;i<=3;i++)

for(j=3;j<=i;j++)m=m%j; printf(\A.0 B.1 C.2 D.3

10.以下程序的运行结果是______。

#include void main() {int i;

for(i='a';i<'f';i++,i++)printf(\printf(\

A.ACEB.BDFC.ABD D.CDE 11.以下程序运行后的输出结果是______。

#include void main() {int k=5,n=0; do {switch(k)

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

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

}while(k>0 && n<5); }

A.235 B.0235 C.02356 D.2356 12.下面程序的输出结果是______。

#include void main()

{ int n=9; while(n>6){n--; printf(\

A.987 B.876 C.8765 D.9876 13.下述程序的输出结果是_______。

#include void main()

{ int x=0,y=0,i; for(i=1;;++i)

{ if(i%2==0) {x++;continue;} if(i%5==0) {y++;break;} }

printf (\

A.2,1 B.2,2 C.2,5 D.5,2 14.下述程序的输出结果是_______。

#include void main() { 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=5C.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

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(\

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 \