选择结构习题一 下载本文

第五章if语句练习题

1. .已知int x=10,y=20,z=30;以下语句执行

后x,y,z的值是____ ____ _ if(x>y) z=x;x=y;y=z;

2. 以下if语句语法正确的是________

A.if(x>0) printf(“%f”,x) else printf(“%f”,-x); B.if(x>0)

{x=x+y;printf(“%f’,x);} else printf(“%f”,-x); C.if(x>0)

{x=x+y;printf(“%f”,x);} else printf(“%f”,-x); D.if(x>0)

{x=x+y;printf(“%f,x);} else printf(“%f”,-x); 3. 请阅读以下程序:

main( )

{int a=5,b=0,c=0;

if(a=b+c)printf(“* * *\\n”); else

printf(“$ $ $\\n”);}以上程序______ A.有语法错不能通过编译 B.可以通过编译但不能通过连接

C.输出* * * D.输出$ $ $ 4. 以下程序的运行结果是______

main( ) {int m=5;

if(m++>5)printf(“%d\\n”,m); else printf(“%d\\n”,m--);} A. 4 B. 5 C. 6 D. 7

5. 当a=1,b=3,c=5,d=4时,执行完下面一段程

序后x的值是______ if(a

if(b

A. 1 B. 2 C. 3 D. 6 6. 有一个函数关系见下表: x y= x<0 x-1 x=0 x x>0 x+1 下面程序段中能正确表示上面关系的是( ) A. y=x+1; if(x>=0)

if(x==0)y=x; else y=x-1; B. y=x-1;

if(x!=0)

if(x>0)y=x+1; else y=x;

C. if(x<=0)

if(x<0)y=x-1; else y=x; else y=x+1; D.y=x; if(x<=0)

if(x<0)y=x-1; else y=x+1;

7. 以下程序的输出结果是______ main( )

{int a=100,x=10,y=20,okl=5,ok2=0; if(x

if(!ok1)

a=1; else if(ok2) a=10; a=-1;

printf(“%d\\n”,a);}

A.1 B.0 C.-1 D.值不确定

8. 以下程序输出结果是_______ main( )

{int x=2,y=-1,z=2; if(x

if(y<0) z=0; else z+=1; printf(“%d\\n”,z); A.3 B.2 C.1 D.0 9. 以下不正确的语句为______ A.if(x>y);

B.if(x=y)&&(x! =0) x+=y; C,if(x! =y)scanf(“%d”,&x); else scanf(“%d”,&y); D.if(x main( ) {float a, b; scanf(“%f”,&a); if(a<0.0)b=0.0;

else if((a<0.5)&&(a!=2.0))b=1.0/(a+2.0); else if(a<10.0)b=1.0/a; else b=10.0; printf(“%f\\n”,b);}

若运行时输入2.0<回车>,则上面程序的输出结果是_____

A.0.000000 B.0.500000 C.1.000000 D.0.250000

11. 若运行时输入:16<回车>,则以下程序的运

行结果是( ) #include main( ) {int year;

printf(“Input you year:”); scanf(“%d”,&year); if(year>=18)

printf(“you$4.5yuan/xiaoshi”); else printf(“your$3.0yuan/xiaoshi”);} 12. 若运行时输入:2<回车>,则以下程序的运行

结果是( ) #include main( ) {char class; scanf(“%c”,&class);

if(class==’1’)printf(“1st

class postage is 19p”); else

printf(“2nd class postage is 14p”);} 13. 若运行时输入:4.4<回车>,则以下程序的运

行结果是( ) #include main( )

{float costprice,sellingprice; printf(“enter cost price $:”); scanf(“%f”,&costprice); if(costprice>=5)

{sellingprice=costprice+costprice*0.25; printf(“selling

price(0.25)$%6.2f”,sellingprice);} else

{sellingprice=costprice+costprice*0.30; printf(“selling

price(0.30)$%6.2f”,sellingprice);}} 14. 以下程序的运行结果是( ) main( )

{ if(2*2= =5<2*2= =4) printf(“T”); else printf(“F”);} 15. 请阅读以下程序: main( ) {int t,h,m; scanf(“%d”,&t); h=(t/100); if(h= =0)h=12; printf(“%d:”,h); m=t0;

if(m<10)printf(“0”); printf(“%d”,m); if(t<1200||t= =2400)

printf(“AM”); else printf(“PM”);}

若运行时输入:1605<回车>时,程序的运行结果是( )

16. 以下程序实现:输入圆的半径r和运行标志

m,按照运行标志进行指定计算.请在( )内填入正确的内容. 标志 运算 a 面积 c 周长 b 二者均计算 #define pi 3.14159 main( ) {char m; float r,c,a;

printf(“input mark a c or b&&r\\n”); scanf(“%c%f”,&m,&r); if( )

{a=pi*r*r;printf(“area is %f”,a);} if( )

{c=2*pi*r;printf(“circle is %f”,c);} if( )

{a=pi*r*r;c=2*pi*r;printf(“area&&circle are%f%f”,a,c);}}

17. 若运行时输入:5999<回车>,则以下程序的

运行结果(保留小数后一位)是( )

main( ) {int x; float y;

scanf(“%d”,&x);

if(x>=0&&x<=2999)y=18+0.12*x; if(x>=3000&&x<=5999)y=36+0.6*x; if(x>=6000&&x<=10000)y=54+0.3*x; printf(“%6.1f”,y);}

18. 以下程序实现输出x,y,z三个数中的最大

者.请在( )添入正确内容. main( )

{int x=4,y=6,z=7; int ( )

if( )u=x; else u=y;

if( )v=u; else v=z;

printf(“v=%d”,v);}

19. 以下程序实现:输入三个整数,按从大到小

的顺序进行输出.请在( )内填入正确内容 main( ) {int x,y,z,c;

scanf(“%d%d%d”,&x,&y,&z); if( ) {c=y;y=z;z=c;}

if( )

{c=x;x=z;z=c;} if( ) {c=x;x=y;y=c;}

printf(“%d,%d,%d”,x,y,z);}

20. 以下程序对输入的两个整数,按从大到小顺

main ( ) {char ch; scanf(“%c”,&ch);

if( )ch=ch+32;

else if(ch>=’a’&&ch<=’z’) else if(! b) if(! c)x=15; else x=25;

printf(“%d\\n”,d);}

25. 以下程序的运行结果是( ) if(z=(y= =0)) x=5; x=4;

printf(“\\t%d\\t%d\\n”,x,z); if(x=z=y)x=4;

序输出.请在( )内填正确内容. main ( ) {int x,y,z;

scanf(“%d,%d,”,&x,&y); if( ) {z=x; } printf(“%d,%d”,x,y);}

21. 以下程序对输入的一个小写字母,将字母循

环后移5个位置后输出.如’a’变成’f’,’w’变成’b’.请在( )填入正确内容

#include “stdio.h” main( ) {char c;

c= ;

if(c>=’a’&&c<=’u’) else if(c>=’v’&&c<=’z’) putchar(c);}

22. 输入一个字符,如果它是一个大写字母,则

把它变成小写,如果是小写,则变成大写,其他字符不变,请在( )填正确内容

printf(“%c”,ch);}

23. 以下程序的运行结果是( ) main( ) {int a,b,c; int s,w,t; s=w=t=0; a=-1,b=3,c=3; if(c>0)s=a+b; if(a<=0) {if(b>0) if(c<=0)w=a-b;} else if(c>0)w=a-b; else t=c;

printf(“%d%d%d”,s,w,t);} 24. 以下程序的运行结果是( ) main( ) {int a,b,c,d,x; a=c=0; b=1; d=20; if(a)d=d-10;

#include main( ) {int x,y=1,z; if(y!=0)x=5;

printf(“\\t%d\\n”,x); if(y= =0)x=4; else x=5;

printf(“\\t%d\\n”,x); x=1; if(y<0) if(y>0)x=4; else x=5;

printf(“\\t%d\\n”,x);} 26. 以下程序的运行结果是( ) #include main( ) {int x,y=-2,z=0; if((z=y)<0)x=4; else if(y= =0)x=5; else x=6;

printf(“\\t%d\\t%d\\n”,x,z);

printf(“\\t%d\\t%d\\n”,x,z);} 27. 阅读下面程序: main ( ) {int s,t,a,b;

scanf(“%d,%d”,&a,&b); s=1; t=1;

if(a>0)s=s+1; if(a>b)t=s+t; else if(a= =b)t=5; else t=2*s;

printf(“s=%d,t=%d”,s,t);}

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

28. 请阅读下面程序: main( ) {int s ,t,a,b;

scanf(“%d,%d”,&a,&b); s=1; t=1;

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