实验四-答案--选择结构程序设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验指导书-1-实验四选择结构程序设计答案实验时间:年月日【实验步骤】一、程序调试练习1、写出下列程序的运行结果:(1)ex4_1.c#includestdio.hvoidmain(){charch;printf(inputacharacter:);ch=getchar();if(ch='A'&&ch='Z')ch=ch+32;printf(%c\n,ch);}具体要求:①从键盘上输入a,分析程序运行的结果。②从键盘上输入A,分析程序运行的结果。③从键盘上输入5,分析程序运行的结果。程序运行结果:①a②a③5(2)ex4_2.c#includestdio.hvoidmain(){intx,y,z;printf(inputx,y,z);scanf(%d,%d,%d,&x,&y,&z);if(xy)if(y0)z=0;elsez++;printf(z=%d\n,z);}具体要求:①从键盘上给x、y、z分别输入2,-1,2,分析程序运行的结果。实验指导书-2-②从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。③从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。程序运行结果:①z=2②z=3③z=0(3)ex4_3.c#includestdio.hmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(a=%d,b=%d\n,a,b);}程序运行结果:a=2,b=1(4)ex4_4.c#includestdio.hvoidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(a=%d,b=%d\n,a,b);}具体要求:实验指导书-3-①分析程序运行结果。②在“case3:a++;b++;”语句的下一行再加入如下一条语句,则运行结果有什么变化?default:a++;b++;程序运行结果:a=2,b=1在“case3:a++;b++;”语句的下一行再加入default:a++;b++;语句,则运行结果不变。(5)ex4_5.c#includestdio.hvoidmain(){inta,b,n=0;printf(inputa,b:);scanf(%d,%d,&a,&b);switch(a%3){case0:n++;break;case1:n++;switch(b%2){default:n++;case0:n++;break;}}printf(n=%d\n,n);}具体要求:①从键盘上给a、b分别输入15、9,分析程序运行的结果。②从键盘上给a、b分别输入16、9,分析程序运行的结果。③从键盘上给a、b分别输入16、4,分析程序运行的结果。程序运行结果:①n=1②n=3③n=2(6)ex4_6.c#includestdio.hmain(){inta=1,b=0;实验指导书-4-switch(a){case1:switch(b){case0:printf(**0**\n);break;case1:printf(**1**\n);break;}case2:printf(**2**\n);break;}}运行结果:**0****2**(7)ex4_7.c#includestdio.hmain(){inta,b;scanf(%d%d,&a,&b);switch(a%2){case0:switch(b%2){case0:printf(a,bareeven\n);break;case1:printf(aiseven,bisodd\n);break;}break;case1:switch(b%2){case0:printf(aisodd,biseven\n);break;case1:printf(a,bareodd\n);break;}break;}}实验指导书-5-从键盘输入数据分别为①4872②3627③1724④3793运行结果:4872a,bareeven3627aiseven,bisodd1724aisodd,biseven3793a,bareodd二、编程练习1、编程:铁路托运行李,假设每张车票可按每公斤0.5元托运50公斤以内的行李,如果超过50公斤时,超过的部分每公斤加价0.3元,试编写一道计算行李托运费的程序。设托运行李重为W公斤,托运费为X元,要求如下:①用if语句实现分支。自变量w与函数值x均采用单精度实型。②自变量w值从键盘输入,且输入前要有提示信息。③数据的输出格式采用以下形式:w=输入值,x=计算值④分别以行李重30公斤,80公斤为自变量,运行该程序。记录运行结果;⑤源程序以ex4_8.c命名保存。答案/*文件名:ex4_8.C*//*程序功能:计算行李托运费*/#includestdio.hmain(){floatw,x;printf(输入行李的重量:);scanf(%f,&w);if(w50.0)x=50.0*0.5+(w-50.0)*0.8;elsex=w*0.5;printf(行李重量w=%.2f公斤,托运费x=%.2f元\n,w,x);}运行结果:输入行李重量:30实验指导书-6-行李重量w=30.00公斤,托运费x=15.00元输入行李重量:80行李重量w=80.00公斤,托运费x=49.00元2、编写程序,计算下列分段函数y的值。具体要求:(1)自变量x与函数值y均用单精度类型。(2)自变量x用scanf()函灵敏输入,且输入前要有提示信息。结果输出采用以下形式:X=具体值,y=具体值。(3)分别输入x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,运行该程序。源程序以ex4_9.c命名保存。答案/*文件名:ex4_9.C*//*程序功能:求分段函数的值*/#includestdio.hmain(){floatx,y;printf(输入实数x:\n);scanf(%f,&x);if(x0&&x!=-3)y=x*x+x-6;elseif(x=0&&x10&&x!=2&&x!=3)y=x*x+5*x+6;elsey=x*x-x-1;printf(y=%f\n,y);}3、广州市个人所得税计算方法如下:应纳税所得额=工资薪金所得-2000应纳税额=应纳税所得额×税率-速算扣除数其税率等级如下表所示:y=x2+x-6(x<0且x≠-3)x2+5x+6(0≤x<10且x≠2及x≠3)x2-x-1其他实验指导书-7-级数全月应纳税所得额税率速算扣除数1不超过500元的部分5%02超过500元至2000元的部分10%253超过2000元至5000元的部分15%1254超过5000元至20000元的部分20%3755超过20000元至40000元的部分25%13756超过40000元至60000元的部分30%33757超过60000元至80000元的部分35%63758超过80000元至100000元的部分40%103759超过100000元的部分45%15375编程计算个人应交纳的所得税,要求如下:①用switch语句实现该功能。②用键盘输入个人月收入,输入前要有提示信息。③要能判断输入数据的合理性,对于不合理的数据应输出错误信息。④输出结果中应包含个人税后月收入、应交的税金。⑤分别输入个人月收入1600元,2500元,3500元,4300元,8200元,38000元,500000元,76000元,97000元,204000元,-800元,运行该程序。记录结果。⑥源程序以ex4_10.c命名保存。答案设salary表示个人工资薪金所得,real_salary表示税后月收入,ratal表示应纳税所得额,grade表示税率等级,tax表示应纳税额/*文件名:ex4_10.c*/#includestdio.hmain(){intgrade;floatsalary,real_salary,ratal,tax;printf(请输入个人工资薪金所得:\n);scanf(%f,&salary);if(salary0){printf(输入的数据错误\n);ratal=0;tax=0;}elseif(salary=2000)实验指导书-8-{ratal=0;tax=0;}elseratal=salary-2000;if(ratal=500)grade=1;if(ratal500&&ratal=2000)grade=2;if(ratal2000&&ratal=5000)grade=3;if(ratal5000&&ratal=20000)grade=4;if(ratal20000&&ratal=40000)grade=5;if(ratal40000&&ratal=60000)grade=6;if(ratal60000&&ratal=80000)grade=7;if(ratal80000&&ratal=100000)grade=8;switch(grade){case1:tax=ratal*0.05-0;break;case2:tax=ratal*0.1-25;break;case3:tax=ratal*0.15-125;break;case4:tax=ratal*0.2-375;break;case5:tax=ratal*0.25-1375;break;case6:tax=ratal*0.3-3375;break;case7:tax=ratal*0.35-6375;break;case8:tax=ratal*0.4-10375;break;default:tax=ratal*0.45-15375;}real_salary=salary-tax;printf(应纳税额:%.2f元\n,tax);printf(税后月收入:%.2f元\n,real_salary);}实验指导书-9-【实验小结】应知:1、选择结构的概念及其应用场合;2、if语句的语法格式及执行流程,if语句的嵌套;3、switch语句的语法格式及执行流程,switch语句的嵌套;4、选择结构的算法表示——传统的流程图表示和N-S流程图表示;5、switch语句括号内的表达式与case语句中常量表达式的对应关系。应会:1、选择结构中条件的表示;2、使用if语句和if语句的嵌套编写选择结构程序;3、使用switch语句和switch语句的嵌套编写多分支选择结构程序。【实验思考】1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?答案选择结构的实现:用if语句、if…else…语句、if…elseif…else语句和switch语句。(1)If语句的格式是if(条件表达式){程序段}if语句的特点是:通过判断条件表达式的值是true或false,来确定是否执行一段语句,或者决定执行哪段语句。If语句适合于只有两种选择的情况。(2)if…else…语句的格式是:if(条件表达式){程序段1}else{程序段2}if…else…语句的特点是:如果if后面的判断条件的值为true,则执行程序段1,否则执行else后面的程序段2。if…else…语句也适合于只有两种选择的情况。实验指导书-10-(3)if…elseif…else语句的格式是:if(条件表达式1){程序段1}elseif(条件表达式2){程序段2}…elseif(条件表达式n){程序段n}Else{程序段n+1}if…elseif…else语句的特点是使用else语句进行更多的条件判断,不同的条件对应不同的程序段。if…elseif…else语句适合于有两个选择的情况。(4)switch语句switch语句的格式是:switch(表达式){case取值1:程序段1;break;cas

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功