《C++选择结构21道题(含答案解析).doc》由会员分享,可在线阅读,更多相关《C++选择结构21道题(含答案解析).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、/题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出选择01:整除请写一个程序:输入一个正整数值,请查这个值是否可以被17整除,如果可以输出1,否则输出0。输入 34 输出1输入 38 输出0测试输入15 输出0#includeusing namespace std;int main() int n; cinn; if(n%17=0) cout1endl; else cout0endl; return 0;选择02:利润提成编写一个程序,根据年利润提成,计算企业发放的年度奖金。利润低于或等于10万元的部分,奖金按10%提取;利润高于10万元,低于或等于20万元的部分,奖金按7.5%
2、提取;20万到40万之间的部分,可提成5%;40万到60万之间部分,可提成3%;60万到100万之间的部分,可提成1.5%;超过100万元的部分按1%提成。从键盘输入当月利润,求应发放奖金总数。输入9 输出0.9输入15 输出1.375输入30 输出2.25输入50 输出3.05输入80 输出3.65输入120 输出4.15测试:输入90 输出 3.8#include using namespace std;int main()int a;cina; if(a=10) cout0.1*aendl;else if(a=20)cout1+(a-10)*0.075endl;else if(a=40)
3、cout1.75+(a-20)*0.05endl;else if(a=60)cout2.75+(a-40)*0.03endl;else if(a=100)cout3.35+(a-60)*0.015endl;elsecout3.95+(a-100)*0.01endl;return 0;选择03:征税税务部门征收所的税,规定如下: 1)收入在1000元以内(含1000),免征; 2)收入在10003000元以内(含3000),纳税额为收入的3%; 3)收入超过30005000元以内(含5000),纳税为收入4%;4)当收入超过5000元时,纳税为收入6%。请根据以上关系,输入收入m,输出应缴纳的税
4、收tax。输入900 输出0输入2000 输出60输入4000 输出160输入6000 输出360测试:输入2500 输出75#includeusing namespace std;int main()double m;double tax;cinm;if(m=1000)tax=0;else if(m=3000)tax=m*0.03;else if(m5000)tax=m*0.06;couttaxendl;return 0;选择04:闰年编写一个程序,输入一个年份,判断该年份是否为闰年,是闰年输出yes否则输出no。输入:2000 输出:yes输入:2014 输出:no测试数据:输入:1000
5、输出:no#include using namespace std;int main()int a;cina; if(a%4=0&a%100!=0|a%400=0)coutyesendl;elsecoutnoendl;return 0;选择05:等级分 编写一个程序,输入一个正整数表示学生的学习成绩,若学习成绩小于0或大于100,输出illegal,否则若成绩在90100分之间,输出A,在60-89分之间的,输出B,60分以下的输出C。输入90 输出A输入70 输出B输入59 输出C输入120 输出illegal测试:输入90 输出A#includeusing namespace std;in
6、t main()int a;cina;if(a=90)coutA=60)coutB=0)coutCendl;elsecoutillegalendl;return 0;选择06:工资某公司的工资根据工作时间发放如下: 1)时间在4小时以内(含4小时),工资为50元; 2)时间在4-8小时(含8小时),在4小时50元的基础上,超出4小时的时间按每小时20元计算; 3)时间超过8小时,在前8小时的工资基础上超出时间按每小时30元计算;请根据以上关系,输入工作时间,输出应发的工资wage。输入3 输出50输入7输出110输入10输出190测试:输入12 输出250#includeusing names
7、pace std;int main()int n,wage;cinn;if(n=4)wage=50;else if(n=8)wage=50+(n-4)*20;elsewage=50+4*20+(n-8)*30;coutwageendl;return 0;选择07:天数根据历法,凡是1、3、5、7、8、10、12月,每月31天;凡是4、6、9、11月,每月30天;2月闰年29天,平年28天。闰年的判断方法是:1)如果年号能被400整除,此年为闰年;2)如果年号能被4整除但不能被100整除,此年为闰年;3)其他情况都不是闰年。编程输入年、月,输出该月的天数。输入2010 5输出31输入2010 2
8、输出28测试:输入2000 4输出30#includeusing namespace std;int main()int a,b;cinab;switch(b)case 1:case 3:case 5:case 7:case 8:case 10:case 12:cout31endl;break;case 4:case 6:case 9:case 11:cout30endl;break;default:if(a%400=0|a%4=0&a%100!=0)cout29endl;elsecout28endl;return 0;选择08:判断三角形输入三个整数,表示三角形的三个边长。当任意两边之和大于
9、第三边时,输出:合法三角形;否则,输出:非法三角形。输入:3 6 7 输出:合法三角形输入:3 6 10 输出:非法三角形#includeusing namespace std;int main()int a,b,c;cinabc;if(a+bc&b+ca&a+cb)coutYesendl;elsecoutNoendl;return 0;选择09:最大数请写一个程序,我们输入三个int类型的数,找出最大的数并输出。输入:2 3 4 输出:4测试数据:输入:10 30 20 输出:30#includeusing namespace std;int main()int a,b,c,t;cinabc
10、;if(ab)t=a;elset=b;if(tc)couttendl;elsecoutc0,则y=1;若x=0,则y=0;否则,y=-1。最后输出y。输入-5 输出-1输入0 输出0输入4 输出1测试:输入50 输出1#include using namespace std;int main() int x;cinx;if(x0)cout1endl;else if(x0)cout-1endl;elsecout0endl;return 0;选择11:对号入座有4种水果,单价分别是3.1元/公斤,2.50元/公斤,4.10元/公斤,10.20元/公斤,编号分别为1,2,3,4。要求从键盘中输入水果
11、的编号,输出该水果的单价。如果输入不正确的编号,显示单价为0。输入1 输出3.1输入2 输出2.5输入3 输出4.1输入4 输出10.2输入5 输出0测试:输入6输出0#include using namespace std;int main()int a;cina;switch(a)case 1:cout3.1endl;break;case 2:cout2.5endl;break;case 3:cout4.1endl;break;case 4:cout10.2endl;break;default :cout0endl;break;return 0;选择12:第几天编写一道程序,输入三个正整数
12、,表示某年某月某日,判断这一天是这一年的第几天?输入2013 7 12 输出193输入2012 5 15 输出136测试:输入2012 3 5 输出 65#includeusing namespace std;int main() int a,b,c,m; cinabc; switch(b) case 1:m=c;break; case 2:m=31+c;break; case 3: if(a%4=0&a%100!=0|a%400=0) m=31+29+c; else m=31+28+c;break; case 4: if(a%4=0&a%100!=0|a%400=0) m=31+29+31+
13、c; else m=31+28+31+c;break; case 5: if(a%4=0&a%100!=0|a%400=0) m=31+29+31+30+c; else m=31+28+31+30+c;break; case 6: if(a%4=0&a%100!=0|a%400=0) m=31+29+31+30+31+c; else m=31+28+31+30+31+c;break; case 7: if(a%4=0&a%100!=0|a%400=0) m=31+29+31+30+31+30+c; else m=31+28+31+30+31+30+c;break; case 8: if(a%4
14、=0&a%100!=0|a%400=0) m=31+29+31+30+31+30+31+c; else m=31+28+31+30+31+30+31+c;break; case 9: if(a%4=0&a%100!=0|a%400=0) m=31+29+31+30+31+30+31+31+c; else m=31+28+31+30+31+30+31+31+c;break; case 10: if(a%4=0&a%100!=0|a%400=0) m=31+29+31+30+31+30+31+31+30+c; else m=31+28+31+30+31+30+31+31+30+c;break; c
15、ase 11: if(a%4=0&a%100!=0|a%400=0) m=31+29+31+30+31+30+31+31+30+31+c; else m=31+28+31+30+31+30+31+31+30+31+c; case 12: if(a%4=0&a%100!=0|a%400=0) m=31+29+31+30+31+30+31+31+30+31+30+c; else m=31+28+31+30+31+30+31+31+30+31+30+c;break; coutmendl; return 0; 选择13:是否及格输入一个学生的数学成绩(正整数),如果它低于60,输出“Fail”,否则,
16、输出“Pass”。输入65 输出Pass输入50输出Fail测试:输入90输出Pass#includeusing namespace std;int main() int a; cina; if(a60) coutFailendl; else coutPassendl; return 0;选择14:最小值输入四个整数,输出其中的最小值。输入1 2 3 4 输出1输入2 1 4 3 输出1输入2 3 1 4 输出1输入3 2 4 1 输出1测试:输入13 12 14 11 输出11#include using namespace std;int main()int a,b,c,d;cinabcd
17、;if(ab&ac&ad)coutaendl;else if(ba&bd&bc)coutbendl;else if(ca&cb&cd)coutcendl;elsecoutdendl; return 0;选择15:回文数输入一个5位数,判断它是不是回文数。输入12321 输出YES输入12345输出NO测试:输入36563输出YES#include using namespace std;int main() int x,g,w,s,q; cinx; g=x%10; w=x/10000; s=x/10%10; q=x/1000%10; if(g=w&s=q) coutYESendl; else
18、coutNOendl; return 0;选择16:字母转换编写程序,要求输入一个字母,若为大写字母,将其转换成相应小写字母输出,否则,原样输出该字母。输入A 输出a输入g 输出g输入9 输出9测试:输入T输出t#include using namespace std; int main() char c; cinc; if(c=A&c=z) c=c+32; else c=c; coutcendl; return 0;选择17:体重编写一个程序,输入某人的身高(cm)以及体重(kg),按照以下标准对他(她)的体型做测试:(1)标准体重=身高-110;(2)超过标准体重5kg(不含5kg)的为“
19、过胖”;(3)低于标准体重5kg(不含5kg)的为“过瘦”(3)既不超过标准体重多于5kg,也不低于标准体重多于5kg的为“标准”输入175 75 输出 过胖输入175 60 输出 标准输入175 55 输出 过瘦测试:输入180 80输出 过胖#include using namespace std;int main()int a,b;cinab;if(ba-110+5)cout过胖endl;else if(ba-115)cout过瘦endl;elsecout标准endl;return 0;选择18:加法从键盘上输入2个加数,再输入答案,如果正确,显示“right”,否则显示“error”输
20、入3 5 8输出right输入3 5 9输出error测试输入13 15 28输出right#include using namespace std;int main()int a,b,c;cinabc;if(a+b=c)coutrightendl;elsecouterrorendl;return 0;选择19:网费编写一个程序来计算一个月的上网费用,计算方法如下:若上网时间10小时,网费为30元;若10小时上网时间50小时,网费每小时2.5元。要求输入该月上网小时数,显示该月总的上网费用。输入8输出30输入30输出90输入60输出150测试:输入50输出150#include using n
21、amespace std;int main()int a;cina;if(a=10)cout3010&a=50)cout3*aendl;elsecout2.5*aendl;return 0; 选择20:运费铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。输入行李重量,输出该行李的托运费。输入25输出3.75输入50输出7.5输入80输出15 测试:输入80输出15#includeusing namespace std;int main() int n; double m; cinn; if(n=50) m=n*0.15; el
22、se m=50*0.15+0.25*(n-50); coutmendl; return 0;选择21:方程求解输入一元二次方程的系数a,b,c,计算方程的实数解。有一个根时输出一个根;有两个根时按照从小到大的顺序输出两个根,两个根之间用空格分隔;无根时输出“无解”。输入:4 4 1 输出:-0.5输入:1 2 -3 输出:-3 1输入:1 2 3 输出:无解#include#includeusing namespace std;int main() double a,b,c,m; cinabc; m=b*b-4*a*c; if(m0) cout(-b-sqrt(m)/(2*a) (-b+sqrt(m)/(2*a)endl; if(m=0) cout-b/(2*a)endl; if(m0) cout无解endl; return 0;