第四章:选择结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(r==-1) printf(“error\n”); else { 【3】; printf(“%f”,mon); }
}
26. 某服装店经营套服,也单件出售。若买的不少于50套,每套 80元;不足50套的每套90元;只买上衣每件60元;只买裤子 每条45。以下程序的功能是读入所买上衣c和裤子t的件数, 计算应付款m。请在【】内填入正确内容。 main() { int c,t,m; printf(“input the number of coat and trousers you want buy:\n”); scanf(“%d %d”,&c,&t);Biblioteka Baiduif(【1】) if(c>=50) m=c*80; else m=c*90; else if(【2】) if(t>=50) m=t*80+(c-t)*60; else m=t*90+(c-t)*60; else if(【3】) m=c*80+(t-c)*45; else m=c*90+(t-c)*45; printf(“%d”,m); } 27. 以下程序的功能是判断输入的年份是否是闰年。请在【】内 填入正确内容。 main() { int y,f; scanf(“%d”,&y); if(y%400==0) f=1; else if(【1】) f=1;
为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下 为‘E’。 9. 有一函数
请编程序计算y的值(x的值由键盘输入)。 10. 编写一个程序,功能是从键盘输入一个整数,判断它是否二 位数,如果是,就打印它,然后结束程序,否则继续要求输 入数。 11. 编写一个程序,功能是从键盘输入三个整数,打印出其中最 大的一个值。 12. 从键盘读入一个数,判断它的正负。是正数,则输出"+", 是负数,则输出"-" 13. 铁路托运行李规定:行李重不超过50公斤的,托运费按每公 斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。 编一程序完成自动计费工作。 14. 打印某年某月有多少天。(提示:A、闰年的计算方法:年 数能被4整除,并且不能被100整除;或者能被400整除的整 数年份。B、利用MOD运算可以判断一个数能否被另一个数整 除) 15. 某超市为了促销,规定:购物不足50元的按原价付款,超过 50不足100的按九折付款,超过100元的,超过部分按八折付 款。编一程序完成超市的自动计费的工作。 16. 编写一个程序,功能是从键盘输入1—12中的某一个数字, 由电脑打印出其对应的月份的英语名称。 17. 编程实现:输入一个整数,判断它能否被3,5,7整除,并 输出以下信息之一: (1)能同时被3,5,7整除; (2)能被其中两数(要指出哪两个)整除; (3)能被其中一个数(要指出哪一个)整除;
(4)不能被3,5,7任一个整除。 18. 编程实现以下功能:读入两个运算数(data1和data2)及一 个运算符(op),计算表达式data1 op data2的值,其中op 可为+,-,*,/(用switch语句实现)。 19. 20. 以下程序对输入的一个小写字母,将字母循环后移5个位置 后输出。如‘a’变成‘f’,‘w’变成‘b’。请在【】内 填入正确内容。 #include “stdio.h” main() { char c; c=getchar(); if(c>=‘a’&&c<=‘u’) 【1】; else if(c>=‘v’&&c<=‘z’) 【2】; putchar(c); } 21. 输入一个字符,如果它是一个大写字母,则把它变成小写字 母;如果它是一个小写字母,则把它变成大写字母;其它字 符不变。请在【】内填入正确内容。 main() { char ch; scanf(“%c”,&ch); if(【1】) ch=ch+32; else if(ch>=‘a’&&ch<=‘z’) 【2】; printf(“%c”,ch); } 22. 以下程序的功能是计算一元二次方程 入正确内容。 #include “math.h” main() { 的根。请在【】内填
20<wei<=30 0.70 请在程序的【】内填入正确内容。 main() { 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) 【1】; else if(wei<10) r=0.8; else if(wei<=20) r=0.75; else if(wei<=30) 【2】;
4. 输入一个字符,判断它如果是小写字母输出其对应大写字 母;如果是大写字母输出其对应小写字母;如果是数字输出 数字本身;如果是空格,输出“space”;如果不是上述情 况,输出“other”。 5. 有三个数a、b、c,由键盘输入,输出其中最大的数。 6. 输入一个数,判断它能否被 3或者被 5整除, 如至少能被这两 个数中的一个整除则将此数打印出来,否则不打印,编出程 序。 7. 读入1到7之间的某个数,输出表示一星期中相应的某一天的单 词:Monday、 Tuesday等等,用switch语句做。 8. 给出一百分制成绩,要求输出成绩等 级‘A’,‘B’,‘C’,‘D’,‘E’,90分以上为‘A’,80~89分
if(【1】) { s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“%f”,area); if(【2】) printf(“等边三角形”); else if(【3】) 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(“不能组成三角形”); } 25. 某邮局对邮寄包裹有如下规定:若包裹的长宽高任一尺寸超 过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每 件收手续费0.2元,再加上根据下表按重量wei计算的邮资: 重量(千克) 收费标准 (元) wei<10 10<wei<=20 0.80 0.75
n+=31; case 8: n+=31; case 7: n+=30; case 6: n+=31; case 5: n+=30; case 4: n+=31; case 3: if(year%4==0&&year%100!=0||year%400==0) n+=29; //闰年2月是29天 else n+=28; //非闰年2月是28天。 case 2: n+=31; } printf("%d年%d月%d日是%d年的第%d天。 \n",year,month,day,year,n); }
1. 从键盘输入两个变量的值,输出较大值。(变成三个变量, 输出较大值) 2. 两个变量按大小顺序输出。(变成三个变量,四个变量按顺 序输出) 有四个数a,b,c,d,要求按从大到小的顺序输出。请在【】 内填入正确内容。 main() { int a,b,c,d; scanf(“%d %d %d %d”,&a,&b,&c,&d); if(a<b) { t=a; a=b; b=t; } if(【1】) { t=c; c=d; d=t; } if(a<c) { t=a; a=c; c=t; } if(【2】) { t=b; b=c; c=t; } if(b<d) { t=b; b=d; d=t; } if(c<d) { t=c; c=d; d=t; } printf(“%d %d %d %d\n”,a,b,c,d); } 3. 写一程序求y值 (x值由键盘输入)。
float a,b,c,t,disc,twoa,term1,term2; printf(“enter a,b,c:”); scanf(“%f %f %f”,&a,&b,&c); if(【1】) if(【2】) 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; term1=-b/twoa; t=abs(disc); term2=sqrt(t)/twoa; if() printf(“complex root\n real part=%f imag part=%f\n”, term1,term2); else printf(“real roots\n root1=%f root2=%f\n”, term1+term2,term1-term2); } } 23. 编程输入三个数据,判断这三个数据作为边长能否构成一个 三角形。不可以则输出“DATA WRONG”,可以则计算出三角 形边长之和并输出。 24. 以下程序根据输入的三角形的三边判断是否能组成三角形, 若可以则输出它的面积和三角形的类型。请在【】内填入正 确内容。 #include “math.h” main() { float a,b,c; float s,area; scanf(“%f %f %f”,&a,&b,&c);
else 【2】; if(f) printf(“%d is”,y); else printf(“%d is not”,y); printf(“a leap year\n”); } 28. 以下程序段针对输入的截止日期(年:yend,月:mend,日 dend:)和出生日期(yman,mman,dman),计算出实际年 龄。请在【】内填入正确内容。 设有:int yend,mend,dend,yman,mman,dman,age; age=yend-yman; if(mend【1】mman) age--; else if(mend【2】mman&&dend【3】dman) age--; 29. 使用分支语句设计一个程序,要求输入年月日以后,算出这 天是这一年的第几天。运行时输入情况如下: 请输入日期(例如:2005 2 28):2005 2 28 2005年2月28日是2005年的第59天。 提示:注意闰年,四年一润、百年不润、四百年又一润。使用 switch语句的时候要注意其break特性,尽量设计出较简洁的代 码。 参考程序: #include <stdio.h> void main() { int year,month,day,n; printf("请输入日期(例如:2005 2 28):"); scanf("%d%d%d",&year,&month,&day); n=day; switch(month) { case 12: //如果是12月,要将前11个月的天数加起来,没有 break语句,会顺序执行 n+=30; case 11: //如果是11月,要将前10个月的天数加起来 n+=31; case 10: //如果是10月,要将前9个月的天数加起来 n+=30; case 9: