C语言第四章程序控制结构复习题_第1页
C语言第四章程序控制结构复习题_第2页
C语言第四章程序控制结构复习题_第3页
C语言第四章程序控制结构复习题_第4页
C语言第四章程序控制结构复习题_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

选择结构程序设计复习题

一.选择题

1.已有定义语句:intx=3,y=4,z=5;,则值为0的表达式是:()

a)x>y++b)x<=++yc)x!=y+z>y-zd)y%z>=y-z

2.已有定义语句:intx=3,y=0,z=0;,则值为0的表达式是:()

a)x&&yb)x||zc)x||z+2&&y-zd)!((x<y)&&!z||y)

3.x为奇数时值为“真”,x为偶数时值为“假”的表达式是:

()

a)!(x%2==l)b)x%2==0c)x%2d)!(x%2)

4.已有定义语句:inta=3,b=4;,则执行下述表达式后,变量b

的值是:()(a++==4)&&(b++==5)

a)3b)4c)5d)6

5.已有定义语句:inta=4,b=6;,则执行下述表达式后,变量b

的值是:()(a++==4)||(b++==6)

a)4b)5c)6d)7

6.已有定义语句:intx=6,y=4,z=5;,执行以下语句后,能正确

表示x,y,z值的选项是:()if(x<y)z=x;x=y;y=z;

a)x=4,y=5,z=6

b)x=4,y=6,z=6

c)x=4,y=5,z=5

d)x=5,y=6,z=4

7.以下程序的运行结果是:()

main()

{inti=0;

if(i==O)printf("**");

elseprintf('$');printf("*\n");

)

a)*b)$*c)**d)***

8.若变量a,b,c都为整型,且a=l、b=15>c=0,则表达式

a==b>c的值是()

a)0b)非零c)“真"d)1

9.a为0时,值为“真”的表达式是()

a)ab)!(++a)c)a=0d)a==0

10.若有定义和语句:inta=4,b=5,c=0d;d=!a&&!b||!c;,则d

的值是()

a)0b)1c)-1d)非0的数

11.以下选项不能正确判断a为偶数的表达式是()

a)a%2==0b)!a%2!=0

c)a/2*2-a==0d)!(a%2)

12.有以下程序:

main()

{inta=2,b=l,c=2;

if(b<a)

if(b<0)c=0,

c++;b++;

printf(ub=%d,c=%d\nw,b,c);

)

程序的输出结果是:()

a)b=l,c=2b)b=l,c=O

c)b=2,c=2d)b=l,c=l

13.有以下程序:

main()

{intn;

scanf(<<%d,,,&n);

if(n++<5)printf(w%X\n,,,n);

elseprintf(M%X\n,,,n—);

}

若执行程序时从键盘上输入9,则输出结果是:()

a)11b)Ac)9d)8

14.有以下程序:

main()

{intm=5;

if(++m>5)

if(m++>5)printf(u%d\nw,m+5);

elseprintf("%d\n",m--);

elseprintf(M%d\nw,—m);

程序的输出结果是:()

a)8b)5c)10d)12

15.有以下程序:

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<5.0)&&(!x))y=1.0/(x+2.0);

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf(w%f\nw,y);

}

程序的输出结果是:()

a)0.000000b)0.250000

c)0.500000d)1.000000

16.假设所有变量均已正确说明:

a=b=c=0;x=35;

if(!a)x—;

elseif(b);if(c)x=3;

elsex=4;

以上程序段运行后,x的值是:()

a)34b)35c)4d)3

17.当a=l、b=3、c=5>d=4时,执行下面一段程序:

if(a<b)

if(c<d)x=l;

else

if(a<c)

if(b<d)x=2;

elsex=3;

elsex=6;

elsex=7;

以上程序段运行后,x的值是:()

a)1b)2c)3d)6

18.执行以下程序:

main()

{ints,t,a,b;

scanf(M%d,%dw,&a,&b);

s=l;t=l;

if(a>0)s=s+l;

if(a>b)t=s+t;

elseif(a==b)t=5;

elset=2*s;

printf(4<t=%d\n",t);

要使输出结果为:t=4,给a和b输入的值应满足的条件是:()

a)a>bb)a<b<0c)0<a<bd)0>a>b

19.以下程序的输出结果是:()

main()

{inta=5,b=4,c=6,d;

printf(4<%d\nw,d=a>b?(a>c?a:c):(b));

}

a)5b)4c)6d)不确定

20.若有定义语句:intx=3,y=2,z=l;则以下表达式的值是:

()z*=(x>y?++x:y++)

a)0b)1c)4d)3

21.有以下程序:

main()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;

printf(w%d\n,,,m);

程序的输出结果是:()

a)1b)2c)3d)4

22.以下while循环中,循环体执行的次数是:()

k=l;

while(―k)k=10;

a)10次b)无限次c)一次也不执行d)1次

23.有以下程序段,其中x为整型变量,以下选项中叙述正确

的是:()

x=0;

while(!x!=0)x++;

a)退出while循环后,x的值为0

b)退出while循环后,x的值为1

c)while的控制表达式是非法的

d)while循环执行无限次

24.有以下程序段,其中n为整型变量,执行后输出结果是:

()

n=20;

while(n-);printf(w%dw,n);

a)2b)10c)-1d)0

25.有以下程序段,其中t为整型变量,以下选项中叙述正确

的是:()

t=l;

while(-1)

{t";

if(t)break;}

a)循环一次也不执行

b)循环执行一次

c)循环控制表达式(-1)不合法

d)循环执行2次

26.有以下程序段,其中x为整型变量,以下选项中叙述正确

的是:()

x=-l;

do

{;}

while(x++);

printf(Mx=%dw,x);

a)该循环没有循环体,程序错误

b)输出x=l

c)输出x=0

d)输出x=-l

27.有以下程序段,其中x,y为整型变量,程序输出结果是:

()

for(x=0,y=0;(x<=l)&&(y=l);x++,y-);

printf(wx=%d,y=%dw,x,y);

a)x=2,y=0b)x=l,y=O

c)x=l,y=ld)x=O,y=O

28.有以下程序:

main()

{intx=O,y=O;

while(x<5&&++y)y—,x++;

printf("%d,%d”,y,x);

}

程序的输出结果是:()

a)0,5b)1,5c)0,4d)1,4

29.有以下程序:

main()

{intnum=0;

do

{num++;printf(M%d\nM,nuin);}

while(num<=2);

)

程序的输出结果是:()

a)1b)1c)1d)1

222

33

4

30.有以下程序:

main()

{intx=3;

do

{printf(w%dw,x-=2);}

while(!(—x));

}

程序的输出结果是:()

a)1b)30c)1-2d)死循环

31.有以下程序:

main()

{inty=10;

do{y-;}while(-y);

printfC44%d\nw,y-);

)

程序的输出结果是:()

a)1b)-1c)8d)0

32.有以下程序:

main()

{intx=3,y;

do

if(!y)printf("x”);

elseprintf("y");

}while(x);

}

程序的输出结果是:()

a)xyxb)yyxc)yxxd)yxy

33.有以下程序段,此处do-while循环的结束条件是:()

intn=0,p;

do{scanf(<4%dw,&p);n++;}while(p!=12345&&n<3);

a)p的值不等于12345并且n的值小于3

b)p的值等于12345并且n的值大于等于3

c)p的值不等于12345或者n的值小于3

d)p的值等于12345或者n的值大于等于3

34.有以下程序:

main()

{inta,b,t;

for(a=3,b=0;!a==b;a—,b++)

if(a>b){t=a;a=b;b=t;}

printf(<<%d,%d\n,,,a,b);

程序的输出结果是:()

a)4,1b)1,4c)4,-1d)-1,4

35.有以下程序:

main()

{intx=3,y=0;

do

{while(!y)y=-x;

}while(x—);

printf(4<%d,%d\n”,x,y);

}

程序的输出结果是:()

a)-1,3b)-1,-3c)0,0d)1,-3

36.有以下程序:

main()

{intm,n;

printf("Enterm,n:");scanf(t<%d%d,,,&m,&n);

while(m!=n)

{while(m>n)m-=n;

while(n>m)n-=m;}

printf(Mm=%d\n,,,m);

程序的输出结果是:()

a)m=3b)m=2c)m=ld)m=0

37.有以下程序:

main()

{inti,s=l;

for(i=l;i<=50;i++)

if(!(i%5)&&!(i%3))s+=i;

printf(4<%d\n?,,s);

)

程序的输出结果是:()

a)409b)277c)1d)91

38.有以下程序:

main()

{intx=0,y=0,i;

for(i=l;;++i)

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

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

}

printf(u%d,%d,,,x,y);

)

程序的输出结果是:()

a)2,1b)2,2c)2,5d)5,2

39.有以下程序:

main()

{inti=O,a=O;

while(i<30)

{for(;;)

{if((i%10)==0)break;

elsei­;}

i+=ll;a+=i;

}

prmtf(4<%d\nw,a);

}

程序的输出结果是:()

a)66b)63c)33d)32

40.有以下程序:

main()

{inta,b;

for(a=l,b=l;a<=100;a++)

{if(b>=10)break;

if(b%3==l)

{b+=3;continue;}

printf("%d\n”,a);

程序的输出结果是:()

a)101b)6c)5d)4

41.有以下程序:

main()

{inti=0;

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

switch(i%5)

{case0:printf(w*w);

case1:printf("#");break;

default:printf(<<!^^);break;

case2:

)

}

程序的输出结果是:()

a)*#b)!&c)!*#d)*#*

二.填空题

1.设y是int型变量,请写出当y是奇数时值为1的关系表达

式y%2或y%2==0或y%2!=0.

2.表示“整数x的绝对值大于5”时值为“真”的C语言表达

式是x>5||x<-5.

3.若x为int类型,请以最简单的形式写出与!x等价的C语言

表达式x==0.

4.设x,y,z,t均为int型变量,则执行下述语句后,x的值是_4_,

y的值是_3_,z的值是_4_,t的值是

x=y=z=3;t=(++x||++y)&&++z;

5.若有定义语句:inta=l,b=2,c=3,d=4;,则执行下述表达式后,

表达式的值是___,a的值是_1_,b的值是_2__,c

的值是__2_,d的值是_5_。

(a*=a<b)&&(c-=b<=d++);

6.以下程序的运行结果是

main()

{inta=O,b=O,c;

if(a>b)c=l;

elseif(a=b)c=0;

elsec="l;

printf(4<%dXn^jC);

}

7.若有定义:inta=5,b=4,c=9;,以下语句的执行结果是

###a=6.b=3.c=9。

a++<=5&&b—<=2&&c++

?printf(w***a=%d,b=%d,c=%d\n,,,a,b,c):

printf(w###a=%d,b=%d,c=%d\nM,a,b,c);

8.若从键盘上输入3和4,执行以下程序后的输出结果是

_36—.

main()

{inta=O,b=O,s=O;

scanf(M%d%d,,,&a,&b);

if(a<b)s=b*a,s*=a;

printf(4<%d\nM,s);

)

9.若从键盘上输入58,则以下程序的输出结果是_585858_.

main()

{inta;

scanf(M%d”,&a);printf(“%d”,a);

if(a<50)printf(w%d,,,a);

if(a>40)printf(u%d,,,a);

if(a>30)printf(<<%d,,,a);

)

10.以下程序的运行结果是_!#—.

main()

{inta=0,b=4,c=5;

switch(a==0)

{case1:switch(b<0)

{case1:printf("@”);break;

case0:printf(<<!w);break;

case0:switch(c==5)

{case0:printf("*");break;

case1:prmtf(M#w);break;

default:printf(<<%?,);

}break;

default:printf(w&M);

}

}

11.要求使以下程序段输出10个整数,请填空。

for(i=0;i<=_18_;printf(t<%d\n,,,i+=2));

12.执行下面程序段后,k的值是0o

r=l;n=203;k=l;

do{k*=n%10*r;n/=10;r++;}while(n);

13.下面程序的输出结果是—12510o

main()

{inti,x=10;

for(i=l;i<=x;i++)

if(x%i==0)printf(w%dw,i);

}

14.下面程序的输出结果是无定值______、

main()

{inti,sum;

for(i=l;i<6;i++)sum+=i;

printf(4<%d”,sum);

}

15.下面程序的输出结果是_20_。

main()

{inti,sum=O;

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

{if((i%2)!=0)continue;

sum+=i;}

printf(w%d\n,,,sum);

}

16.下面程序的输出结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论