选择结构习题一

更新时间:2024-04-27 20:02:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第五章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;

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

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

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

29. 下面程序根据以下函数关系,对输入的每个

x值,计算出y值,在( )填正确内容

x Y 2

30. 下面程序根据以下函数关系,对输入的每个

x值,计算出相应的y值.在( ) 填正确内容

x y x=a或x=-a 0 -a

scanf(“%d%d”,&x,&a); if( )y=0; else

if( )y=sqrt(a*a-x*x); else y=x; printf(“%f”,y);}

31. 以下程序的功能是计算一元二次方程

ax2

+bx+c=0的根,在( )填正确内容 #include “math.h” main( )

{float a,b,c,t,disc,twoa,term1,term2; printf(“enter a,b,c:”); scanf(“%f%f%f”,&a,&b,&c); if( ) if( )

printf(“no answer due to input error\\n”); else

printf(“the

single

root

is%f\\n”,-c/b); else{disc=b*b-4*a*c; twoa=2*a;

terml=-b/twoa; t=abs(disc); term2=sqrt(t)/twoa; if(3)

printf(“complex root\\n real part=%fimag part=%f\\n”, terml,term2); else

printf(“real

roots\\n

rootl=%froot2=%f\\n”,terml+term2,term1-term2);}}

32. 以下程序根据输入的三角形的三边判断是

否能组成三角形,若可以则输出它的面积和三角形的类型.在( )填正确内容. #include“math.h” main( ) {float a,b,c; float s,area;

scanf(“%f %f %f”,&a,&b,&c); if( ) {s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“%f”,area); if( ) printf(“等边三角形”); else if( ) printf(“等腰三角形”);

else if((a*a+b*b= =c*c)| |(a*a+c*c= =b*b)|

|(b*b+c*c= =a*a) ) printf(“直角三角形”); else printf(“一般三角形”);} else printf(“不能组成三角形”);} 33. 某邮局对邮寄包裹有如下规定:若包裹的长

宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei计算的资料:

重量(千克) 收费标准(元/公斤) wei<=10 0.80 10

{float len,wei,hei,wid,mon,r;

scanf(“%f %f %f %f”,&len,&wid,&hei,&wei);

if(len>1| |wid>1| |hei>1| |wei>30)

; else if(wei<10) r=0.8; else if(wei<=20) r=0.75; else if(wei<=30)

;

if(r= =-1)printf(“error\\n”):

else

{ ;printf(“%f”,mon);} }

34. 以下程序的功能是判断输入的年份是否是

闰年.请在[ ]内填入正确的内容. main( ) {int y,f;

scanf(“%d”,&y); if(y@0= =0) f=1;

else if( ) f=1; else ; if(f)printf(“%d is”,y); else printf(“%d is not”,y); printf(“a leap year\\n”);} 35. 有四个数a, b, c, d,要求按从大到小的顺

序输出.请在[ ]内填入正确内容 main( ) {int a,b,c,d,t;

scanf(“%d %d %d %d”,&a,&b,&c,&d); if(a

if ( ){t=c;c=d;d=t;} if(a

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

36. 以下程序的运行结果是__

main( ) {int a=2,b=3,c; c=a; if(a>b)c=1; else if(a= =b)c=0; else c=-1; printf(“%d\\n”,c);} 37. 在if后一对圆括号中表示a不

等于0的关系,则能正确表示这一关系的表达式为_______。 A.a<>0 B.!a C.a=0 D.a 38. 有以下程序

main()

{ int a=15,b=21,m=0; switch(a%3)

{ case 0:m++;break; case 1:m++; switch(b%2) { default:m++;

case 0:m++;break; } } printf(“%d\\n”,m);} 程序运行后的输出结果是______。 A.1 B. 2 C. 3 D.4 39. 以下程序的输出结果是_____。main()

{ int a=4,b=5,c=0,d; d=!a&&!b||!c; printf(\} A.1 B. 0 C. 非0的数 D.-1 40. 表达式“0?(0?3:2):(10?

1:0)”的值为 。

A.3 B.2 C.1 D.0 41. 若变量已正确定义,那么以下

语句段的输出结果是_______。 x=0;y=2;z=3; switch(x)

{ case 0: switch(y==2) { casa 1: printf(“*”);

break;

case 2: printf(“%”);

break;

}

case 1: switch(z)

{ case 1: printf(“$”);case 2: printf(“*”); break; default

printf(“#”); } }

A.%$ B.#* C.*# D.**$

42. 编制程序要求输入整数a和b,若a2

+b2

大于

100,则输出a2

+b2

百位以上数字,否则输出两数之和.

43. 试编程判断输入的正整数是否既是5又是7

的整倍数.若是,则输出yes,否则输出no 44. 编程序:根据以下函数关系,对输入的每个x

值,计算出相应的y值

x Y x<=0 0 0

3,5,7整除,并输出以下信息之一

(1)能同时被3,5,7整除

(2)能被其中两个数整除(要指出那两个数) (3)能被其中一个数整除(指出那一个) (4)不能被3,5,7任一个整除

顺序结构程序设计练习题

1. putchar函数可以向终端输出一个( )

A.整型变量表达式值 B.实型变量值 C.字符串 D.字符或字符变量值 2. 以下程序的输出结果是( ) (注:□代表空

格) main( )

本文来源:https://www.bwwdw.com/article/3xcg.html

Top