《实验四-答案--选择结构程序设计.doc》由会员分享,可在线阅读,更多相关《实验四-答案--选择结构程序设计.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除实验四 选择结构程序设计答案实验时间: 年 月 日【实验步骤】一、程序调试练习1、写出下列程序的运行结果:(1)ex4_1.c#include void main()char ch;printf(input a character:);ch=getchar();if(ch=A & ch=Z)ch=ch+32;printf(%cn,ch);具体要求:从键盘上输入a,分析程序运行的结果。从键盘上输入A,分析程序运行的结果。从键盘上输入5,分析程序运行的结果。程序运行结果:a a 5(2)ex4_2.c#include void main()int x
2、,y,z;printf(input x,y,z);scanf(%d,%d,%d,&x,&y,&z);if(xy)if(y0)z=0;elsez+;printf(z=%dn,z);具体要求:从键盘上给x、y、z分别输入2,-1,2,分析程序运行的结果。从键盘上给x、y、z分别输入3,5,2,分析程序运行的结果。从键盘上给x、y、z分别输入-5,-3,2,分析程序运行的结果。程序运行结果:z=2 z=3 z=0(3)ex4_3.c#include main()int x=1,a=0,b=0;switch(x)case 0:b+;case 1:a+;case 2:a+;b+;printf(a=%d,
3、b=%dn,a,b);程序运行结果:a=2,b=1(4)ex4_4.c#include void main()int x=1,y=0,a=0,b=0;switch(x)case 1: switch(y)case 0: a+; break;case 1: b+; break;case 2: a+;b+; break;case 3: a+; b+;printf(a=%d,b=%dn,a,b);具体要求:分析程序运行结果。在“case 3: a+; b+;”语句的下一行再加入如下一条语句,则运行结果有什么变化?default: a+; b+;程序运行结果:a=2,b=1在“case 3: a+; b
4、+;”语句的下一行再加入default: a+; b+;语句,则运行结果不变。(5)ex4_5.c#include void main()int a,b,n=0;printf(input a,b:);scanf(%d,%d,&a,&b);switch(a%3)case 0: n+; break;case 1: n+;switch(b%2)default: n+; case 0: n+; break;printf(n=%dn,n);具体要求:从键盘上给a、b分别输入15、9,分析程序运行的结果。从键盘上给a、b分别输入16、9,分析程序运行的结果。从键盘上给a、b分别输入16、4,分析程序运行的
5、结果。程序运行结果:n=1 n=3 n=2(6)ex4_6.c#include main()int a=1,b=0;switch(a) case 1:switch(b) case 0: printf(*0*n);break; case 1 :printf(*1*n);break; case 2 : printf(*2*n);break;运行结果:*0*2*(7)ex4_7.c#include main()int a,b;scanf(%d%d,&a,&b);switch(a%2)case 0:switch(b%2) case 0:printf(a,b are evenn);break; case
6、 1:printf(a is even,b is oddn);break;break;case 1:switch(b%2) case 0:printf(a is odd,b is evenn);break; case 1:printf(a,b are oddn);break;break;从键盘输入数据分别为48 72 36 27 17 24 37 93运行结果:48 72a,b are even36 27a is even, b is odd17 24a is odd, b is even37 93a,b are odd二、编程练习1、编程:铁路托运行李,假设每张车票可按每公斤0.5元托运50
7、公斤以内的行李,如果超过50公斤时,超过的部分每公斤加价0.3元,试编写一道计算行李托运费的程序。设托运行李重为W公斤,托运费为X元,要求如下:用if 语句实现分支。自变量w与函数值x均采用单精度实型。 自变量w值从键盘输入,且输入前要有提示信息。数据的输出格式采用以下形式: w=输入值,x=计算值分别以行李重30公斤,80公斤为自变量,运行该程序。记录运行结果; 源程序以ex4_8.c命名保存。答案/* 文件名:ex4_8.C */*程序功能:计算行李托运费*/#include main()float w,x;printf(输入行李的重量:);scanf(%f,&w);if(w50.0)x=
8、50.0*0.5+(w-50.0)*0.8;elsex=w*0.5;printf(行李重量w=%.2f公斤,托运费x=%.2f元n,w,x);运行结果:输入行李重量:30行李重量w=30.00公斤,托运费x=15.00元输入行李重量:80行李重量w=80.00公斤,托运费x=49.00元y=x2+x-6 (x0且x-3)x2+5x+6 (0x10且x2及x3)x2-x-1 其他2、编写程序,计算下列分段函数y的值。具体要求:(1)自变量x与函数值y均用单精度类型。(2)自变量x用scanf()函灵敏输入,且输入前要有提示信息。结果输出采用以下形式:X=具体值,y=具体值。(3)分别输入x=-5
9、.0,-3.0,1.0,2.0,2.5,3.0,5.0,运行该程序。源程序以ex4_9.c命名保存。答案/* 文件名:ex4_9.C */*程序功能:求分段函数的值*/#include main()float x,y;printf(输入实数x:n);scanf(%f,&x);if(x=0 & x10 & x!=2 & x!=3)y=x*x+5*x+6;elsey=x*x-x-1;printf(y=%fn,y);3、广州市个人所得税计算方法如下: 应纳税所得额 =工资薪金所得-2000 应纳税额 = 应纳税所得额税率-速算扣除数其税率等级如下表所示:级数全月应纳税所得额税率速算扣除数1不超过50
10、0元的部分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语句实现该功能。用键盘输入个人月收入,输入前要有提示信息。要能判断输入数据的合理性,对于不合理的数据应输出错误信息。 输出结果中应包含个人税
11、后月收入、应交的税金。分别输入个人月收入1600元,2500元, 3500元,4300元, 8200元, 38000元,500000元,76000元,97000元,204000元,-800元,运行该程序。记录结果。源程序以ex4_10.c命名保存。答案设salary表示个人工资薪金所得,real_salary表示税后月收入,ratal表示应纳税所得额,grade表示税率等级,tax表示应纳税额/* 文件名:ex4_10.c */#include main()int grade;float salary,real_salary,ratal,tax;printf(请输入个人工资薪金所得:n );s
12、canf(%f, &salary);if(salary0)printf(输入的数据错误n);ratal=0;tax=0;else if(salary=2000)ratal=0;tax=0;elseratal=salary-2000;if(ratal500 & ratal2000 & ratal5000 & ratal20000 & ratal40000 & ratal60000 & ratal80000 & ratal=100000)grade=8;switch (grade)case 1:tax=ratal*0.05-0;break;case 2:tax=ratal*0.1-25;break
13、;case 3:tax=ratal*0.15-125;break;case 4:tax=ratal*0.2-375;break;case 5:tax=ratal*0.25-1375;break;case 6:tax=ratal*0.3-3375;break; case 7:tax=ratal*0.35-6375;break; case 8:tax=ratal*0.4-10375;break; default: tax=ratal*0.45-15375;real_salary=salary-tax;printf(应纳税额: %.2f元n,tax);printf(税后月收入: %.2f元n,rea
14、l_salary);【实验小结】应知:1、选择结构的概念及其应用场合;2、if语句的语法格式及执行流程,if语句的嵌套;3、switch语句的语法格式及执行流程,switch语句的嵌套;4、选择结构的算法表示传统的流程图表示和N-S流程图表示;5、switch语句括号内的表达式与case语句中常量表达式的对应关系。应会:1、选择结构中条件的表示;2、使用if语句和if语句的嵌套编写选择结构程序;3、使用switch语句和switch语句的嵌套编写多分支选择结构程序。【实验思考】1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?答案选择结构的实现:用if语句、ifelse语句
15、、ifelse ifelse语句和switch语句。(1)If语句的格式是if(条件表达式)程序段if语句的特点是:通过判断条件表达式的值是true或false,来确定是否执行一段语句,或者决定执行哪段语句。If语句适合于只有两种选择的情况。(2)ifelse语句的格式是:if(条件表达式)程序段1else程序段2ifelse语句的特点是:如果if后面的判断条件的值为true,则执行程序段1,否则执行else后面的程序段2。ifelse语句也适合于只有两种选择的情况。(3)ifelse ifelse语句的格式是:if(条件表达式1)程序段1else if(条件表达式2)程序段2else if(
16、条件表达式n)程序段nElse程序段n+1ifelse ifelse语句的特点是使用else语句进行更多的条件判断,不同的条件对应不同的程序段。ifelse ifelse语句适合于有两个选择的情况。(4)switch语句switch语句的格式是:switch(表达式)case 取值1:程序段1;break;case 取值2:程序段2;break;case 取值n:程序段n;break;default:程序段n+1; break;Switch的特点是:首先计算机表达式的结果,并将此结果同case后面的值进行比较,然后根据比较结果来选择执行哪一段程序。Switch语句适合于有多个选择的情况。2、如
17、何设置选择结构中的判断条件?它在程序设计中的意义何在?答案一般用关系表达式或逻辑表达式来表示选择结构中的判断条件,也可以用任意类型的表达式(整型、实型、字符型等)。判断条件是程序运行时的入口。3、逻辑运算和关系运算的相同之处是什么?它们又有什么不同?相同之处是:关系运算和逻辑运算的结果都是逻辑值,即真和假。经常结合在一起用于判断程序的流程。不同之处:关系运算符的作用是确定两个数据之间是否存在某种比较关系,关系运算要求关系运算符连接的两个运算对象为同类型数据逻辑运算符的作用是确定两个对象之间是否存在某种逻辑关系,逻辑运算不要求逻辑运算符连接的两个运算对象为同类型数据4、if语句的使用形式有哪些?
18、答案If语句的使用有以下三种形式(1)if(条件表达式)程序段(2)if(条件表达式)程序段1else程序段2(3)if(条件表达式1)程序段1else if(条件表达式2)程序段2else if(条件表达式n)程序段nElse程序段n+15、switch语句括号内表达式的值可以有哪些类型?case语句中每个常量的类型是否可以和switch语句括号内表达式的值的类型不同?答案switch语句括号内表达式的值可以有整型、字符型或枚举类型。case语句中每个常量的类型必须和switch语句括号内表达式的值的类型相同6、每个case语句后的常量起什么作用,它们的值是否可以相同?答案每个case语句后的常量是switch的入口,它们的值必须互不相同。7、switch语句的执行流程是怎样的?答案首先计算switch后面“表达式”的值,当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组);当执行到break语句时,跳出switch语句,转向执行switch语句的下一条语句。8、switch语句的break起什么作用?答案当执行到break语句时,跳出switch语句,转向执行switch语句的下一条语句。【精品文档】第 10 页