第04章 选择结构.docx
- 文档编号:9854287
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:22
- 大小:21.01KB
第04章 选择结构.docx
《第04章 选择结构.docx》由会员分享,可在线阅读,更多相关《第04章 选择结构.docx(22页珍藏版)》请在冰豆网上搜索。
第04章选择结构
一、选择题
1.以下不正确的if语句形式是______。
A)if(x>y&&x!
=y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf(“%d”,&x)elsescanf(“%d”,&y);
D)if(x 2.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是______。 if(x>y)z=x;x=y;y=z; A)x=10,y=20,z=30B)x=20,y=30,z=30 C)x=20,y=30,z=10D)x=20,y=30,z=20 3.以下if语句语法正确的是______。 A)if(x>0) printf(“%f”,x); elseprintf(“%f”,-x); B)if(x>0) {x=x+y;printf(“%f”,x);} C)if(x>0) {x=x+y;printf(“%f”,x);}; elesprintf(“%f”,-x); D)if(x>0) {x=x+y;printf(“%f”,x)} elseprintf(“%f”,-x); 4.请阅读以下程序: main() { inta=5,b=0,c=0; if(a=b+c)printf(“***\n”); elseprintf(“$$$\n”); } 以上程序______。 A)有语法错误不能通过编译B)可以通过编译但不能通过连接 C)输出***D)输出$$$ 5.以下程序的运行结果是______。 main() { intm=5; if(m++>5)printf(“%d\n”,m); elseprintf(“%d\n”,m--); } A)4B)5C)6D)7 6.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是______。 if(a if(c else if(a if(b elsex=3; elsex=6; elsex=7; A)1B)2C)3D)6 7.有一个函数关系见下表: 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; B)elsey=x-1;y=x-1; if(x! =0) if(x>0)y=x+1; elsey=x; C)if(x<=0) if(x<0)y=x-1; elsey=x; D)elsey=x+1;y=x; if(x<=0) if(x<0)y=x-1; elsey=x+1; 8.以下程序的输出结果是______。 main() { inta=100,x=10,y=10,ok1=5,ok2=0; if(x if(y! =10) if(! ok1) a=1; else if(ok2)a=10; a=-1; printf(“%d\n”,a); } A)1B)0C)–1D)值不确定 9.以下程序的输出结果是______。 main() { intx=2,y=-1,z=2; if(x if(y<0)z=0; elsez+=1; printf(“%d\n”,z); } 10.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定: else子句总量与______配对。 A)缩排位置相同的ifB)其之前的最近的if C)其之后最近的ifD)同一行上的if 11.以下不正确的语句为______。 A)if(x>y); B)if(x=y)&&(x! =0)x+=y; C)if(x! =y)scanf(“%d”,&x);elsescanf(“%d”,&y); D)if(x 12.请阅读以下程序: #include“stdio.h” main() { floata,b; scanf(“%f”,&a); if(a<0.0)b=0.0; elseif((a<0.5)&&(a! =2.0))b=1.0/(a+2.0); elseif(a<10.0)b=1.0/x; elseb=10.0; prinf(“%f\n”,y); } 若运行时输入2.0<回车>,则上面程序的输出结果是______。 A)0.000000B)0.500000C)1.000000D)0.250000 二、程序阅读题 13.请阅读以下程序: main() { intt,h,m; scanf(“%d”,&t); h=(t/100)%12; if(h==0)h=12; printf(“%d: ”,h); m=t%100; if(m<10)printf(“0”); printf(“%d”,m); if(t<1200||t==2400) printf(“AM”); elseprintf(“PM”); } 若运行时输入: 1605<回车>时,程序的运行结果是______。 14.若运行是输入: 5999<回车>,则以下程序的运行结果(保留小数点后一位)是______。 main() { intx; floaty; 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); } 15.以下程序实现输出x,y,z三个数中的最大者。 请在_____内填入正确内容。 main() { intx=4,y=6,z=7; int__1__; if(__2__)u=x; elseu=y; if(__3___)v=u; elsev=z; printf(“v=%d”,v); } 16.以下程序实现: 输入三个整数,按从大到小的顺序进行输出。 请在_____内填入正确的内容。 main() { intx,y,z,c; scanf(“%d%d%d”,&x,&y,&z); if(__1__) {c=y;y=z;z=c;} if(__2__) {c=x;x=z;z=c}; if(__3__) {c=x;x=y;y=c;} printf(“%d,%d,%d”,x,y,z); } 17.以下程序对输入的两个整数,按从大到小顺序输出。 请在_____填入正确内容。 main() { intx,y,z; scanf(“%d,%d”,&x,&y); if(__1__) {z=x;__2__} printf(“%d,%d”,x,y); } 18.以下程序对输入的一个小写字母,将字母循环后移5人位置输出。 如’a’变成’f’,’w’变成’b’。 请在_____内填入正确内容。 #include“stdio.h” main() { charc; c=getchar(); if(c>=’a’&&c<=’u’)__1__; elseif(c>=’v’&&c<=’z’)__2__; putchar(c); } 19.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。 请在_____内填入正确内容。 main() { charch; scanf(“%c”,&ch); if(_____)ch=ch+32; elseif(ch>=’a’&&ch<=’z’)_____; printf(“%c”,ch); } 20.以下程序的运行结果是_____。 main() { inta,b,c; ints,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; } elseif(c>0)w=a-b; elset=c; printf(“%d%d%d”,s,w,t); } 21.以下程序的运行结果是_____。 main() { inta,b,c,d,x; a=c=0; b=1; d=20; if(a)d=d-10; elseif(! b) if(! c)x=15 elsex=25; printf(“%d\n”,d); 22.以下程序的运行结果是_____。 #include“stdio.h” voidmain(void) { intx,y=1,z; if(y! =0)x=5; printf(“\t%d\n”,x); if(y==0)x=4; elsex=5; printf(“\t%d\n”,x); x=1; if(y<0) if(y>0)x=4; elsex=5; printf(“\t%d\n”,x); } 23.以下程序的运行结果是_____。 #include“stdio.h” voidmain(void) { intx,y=-2,z=0; if((z=y<0)x=4; elseif(y==0)x=5; elsex=6; printf(“\t%d\t%d\n”,x,z); if(z=(y==0)) x=5; x=4; printf(“\t%d\t%d\n”,x,z); if(x=z=y)x=4; printf(“\t%d\t%d\n”,x,z); } 24.请阅读的程序。 main() { ints,t,a,b; scanf(“%d,%d”,&a,&b); s=1; t=1; if(a>0)s=s+1; if(a>b)t=s+t; elseif(a==b)t=5; elset=2*s; printf(“s=%d,t=%d”,s,t); } 为了使输出结果t=4,输入量a和b应满足的条件是_____。 25.请阅读的程序。 main() { ints,t,a,b; scanf(“%d,%d”,&a,&b); s=1; t=1; if(a>0)s=s+1; if(a>b)t=s+t; elseif(a==b)t=5; elset=2*s; printf(“s=%d,t=%d”,s,t); } 为了使输出结果s=1,t=5,输入量a和b应满足的条件是_____。 26.以下程序的功能是计算一元二次方程ax2+bx+c=0的根。 请在_____内填入正确的内容。 #include“math.h” main() { floata,b,c,t,disc,twoa,term1,term2; printf(“entera,b,c: ”); scanf(“%f%f%f”,&a,&b,&c); if(__1__) if(__2__)printf(“noanswerduetoinputerror\n”); elseprintf(“thesinglerootis%f\n”,-c/b); else { disc=b*b-4*a*c; twoa=2a; term1=-b/twoa; t=abs(disc); term2=sqrt(t)/twoa; if(__3__) printf(“complexroot\nrealpart=%fimagpart=%f\n”,term1,term2); elseprintf(“realroots\nroot1=%froot2=%f\n”,term1+term2,term1-term2); } } 27.以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。 请在_____内填入正确的内容。 #include“stdio.h” main() { floata,b,c; floats,area; scanf(“%f%f%f”,&a,&b,&c); if(__1__)/*a+b>c&&|a+c>b&&b+c>a*/ { s=(a+b+c)/2; arae=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“%f”,area); if(__2__)/*a==b&&b==c&&a==c*/ printf(“等边三角形”); elseif(__3__) printf(“等腰三角形”);/*a==b||a==c||b==c*/ elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)) printf(“直角三角形”); elseprintf(“一般三角形”); } elseprintf(“不能组成三角形”); } 28.某邮局对邮寄包裹有如下规定: 若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收手续费0.2元,再上根据下表按重量wei计算的邮资: 重量(千克) 收费歀(元) wei<10 0.80 10 0.75 20 0.7 请在程序的_____内填入正确内容。 main() { floatlen,wei,hei,wid,mon,r; scanf(“%f%f%%f”,&len,&wid,&hei,&wei); if(len>1||wid>1||hei>1||wei>30)__1__; elseif(wei<10)r=0.8; elseif(wei<=20)r=0.75; elseif(wei<=30)__2__; if(r==-1)printf(“error\n”); else { __3__;printf(“%f”,mon); } } 29.某服装店经营套服,也单件出售。 若买的不少于50套,每套80元;不足50套的每套90元;只买上衣每件60元;只买裤子每条45元。 以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款m。 请在_____内填正确内容。 main() { intc,t,m; printf(“inputthenumberofcoatandtrousersyourwantbuy: \n”); scanf(“%d%d”,&c,&t); if(__1__) if(c>=50)m=c*m; elsem=c*90; else if(__2__) if(t>=50)m=t*80+(c-t)*60; elsem=t*90+(c-t)*60; elseif(__3__)m=c*80+(t-c)*45; elsem=c*90+(t-c)*45; printf(“%d”,m;) } 30.以下程序的功能是判断输入的年份是否是闰年。 请在_____内填入正确内容。 main() { inty,f; scanf(“%d”,&y); if(y%400==0)f=1; elseif(__1__)f=1; else__2__; if(f)printf(“%dis”,y); elseprintf(“%disnot”,y); printf(“aleapyear\n”); } 31.以下程序针对输入截止日期(年: year,月: mend,日: dend)和出生日期(yman,mman,dman),计算出实际年龄。 请在_____内填入正确内容。 设有: intyend,mend,dend,mman,dman,age; age=yend-yman; if(mend__1_),age--; elseif(mend__2__mman&&dend__3__dman) age--; 32.有四个数a,b,c,d,要求按从大到小的顺序输出。 请在_____内填入正确内容。 main() { inta,b,c,d,t; scanf(“%d%d%d%d”,&a,&b,&c,&d); if(a if(__1__){t=c;c=d;d=t;} if(a if(__2___){t=b;b=c;c=t} if(b if(c printf(“%d%d%d%d\n”,a,b,c,d); } 33.以下程序的运行结果是_____。 main() { inta=2,b=3,c; c=a; if(a>b)c=1; elseif(a==b)c=0; elsec=-1; printf(“%d\n”,c); } 34.当运行时输入: 1992<回车>,则以下程序的运行结果是_____。 main() { inty,t; scanf(“%d”,&y); t=((y%4==0&&y%100! =0)||y%400==0)? 1: 0; if(t)printf(“%dis”,y); elseprintf(“%disnot”,y); printf(“aleapyear”); } 35.若运行时输入: 35/<回车>,则以下程序的运行结果是_____。 main() { floatx,y; charo; doubler; scanf(“%f%f%c”,&x,&y,&o); switch(o) { case‘+’: r=x+y;break; case‘-’: r=x-y;break; case‘*’: r=x*y;break; case‘/’: r=x/y;break; } printf(“%f”,r); } 36.设有程序片段: switch(grade) { case‘A’: printf(“85-100\n”); case‘B: printf(“70-84\n”); case‘C’: printf(“60-69\n”); case‘D’: printf(“<60\n”); default: printf(“error! \n”); } 若grade的值为’C’,则输出结果是______。 37.以下程序的运行结果是______。 intx=1,y=0; switch(x) { case1: switch(y) { case0: printf(“**1**\n”);break; case1: printf(“**2**\n”);break; } case2: printf(“**3**\n”); } 38.以下程序的运行结果是______。 main() { inta=2,b=7,c=5; switch(a>0) { case1: switch(b<0) { case1: printf(“@”);break; casa2: printf(“! ”);break; } case0: switch(c==5) { case0: printf(“*”);break; case1: printf(“#”);break; default: printf(“#”);break; } default: printf(“&”); } printf(“\n”); } 39.请读程序: #include { intx=1,y=0,a=0,b=0; switch(x) { case1: switch(y) { case0: a++;break; case1: b++;break; } case2: a++;b++;break; } printf(“a=%d,b=%d”,a,b); } 40.以下程序用以计算y年m1月d1日与同年的m2月d2日之间的天数(m2>=m1),并打印计算结果。 若m1=m2且d1=d2则计算1天。 在闰年中,2月有29天。 闰年的年号由以下方式确定: 该年号能被能被4整除但不能被100整除,或者该年号能被400整除则是闰年。 例如: 输入1997,2,27,3,10<回车>时,输出为12天。 表明从1997年2月27日到3月10日共有12天。 请在______内填入正确内容。 main() { inty,m1,d1,m2,d2; inti,d; scanf(“%d%d%d,%d,%d”,&y,&m1,&d1,&m2,&d2); y=(y%4==0___1___y%100! =0___2___y%40==0)? 1: 0; d=0-d1; for(i=m1;i switch(i) { case1: case3: case5: case7: case8: case10: casae12: d+=31; break; case2: d=d+28+y; break; case4: case6: case9: case11: ______; } printf(“%d”,d+d2+1); } 答案: 一、选择题 题号 1 2 3 4 5 6 7 8 9 10 11 12 C B B D C B C C B B B B 二、程序阅读题 题号 13 14 15 16 17 4: 05PM 3636.4 1)uv2)x>y3)u>z 1)y 3)x 1)x 2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第04章 选择结构 04 选择 结构
![提示](https://static.bdocx.com/images/bang_tan.gif)