选择(分支)结构程序设计.ppt

上传人:公**** 文档编号:568629219 上传时间:2024-07-25 格式:PPT 页数:83 大小:938KB
返回 下载 相关 举报
选择(分支)结构程序设计.ppt_第1页
第1页 / 共83页
选择(分支)结构程序设计.ppt_第2页
第2页 / 共83页
选择(分支)结构程序设计.ppt_第3页
第3页 / 共83页
选择(分支)结构程序设计.ppt_第4页
第4页 / 共83页
选择(分支)结构程序设计.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《选择(分支)结构程序设计.ppt》由会员分享,可在线阅读,更多相关《选择(分支)结构程序设计.ppt(83页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章选择结构程序设计选择结构程序设计教学目的与要求教学目的与要求:1熟练掌握熟练掌握ifelse的三种语法的三种语法2领会领会switch与与break语句的作用语句的作用教学内容教学内容:1关系运算符与关系表达式关系运算符与关系表达式2逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式3if语句语句4switch语句语句C语言程序设计语言程序设计例:例:银行存款的例子银行存款的例子 设银行定期存款年利率设银行定期存款年利率raterate 一年一年 3.8 3.8 二年二年 4.50 4.50 三年三年 5.22 5.22 五年及以上五年及以上 5.76 5.76 并已知存款期为并已知存款

2、期为n n年,存款本金为年,存款本金为capitalcapital元,元,编程计算编程计算n n年后本息之和年后本息之和depositdeposit.C语言程序设计语言程序设计例:用例:用C语言实现图示的分段函数。语言实现图示的分段函数。sin(x)/xx=0y=1x=01.分析问题(分析问题(建立数学模型,选择公式建立数学模型,选择公式),确定算法。确定算法。输入输入x;判断判断x值;值;根据根据x值,计算值,计算y值;值;输出输出y值。值。显然显然顺序结构不能实现,需用选择结构。顺序结构不能实现,需用选择结构。C语言程序设计语言程序设计2.写出算法描述写出算法描述C语言程序设计语言程序设计

3、3.编写程序:用计算机语言写出实现算法的程序。编写程序:用计算机语言写出实现算法的程序。#include#include.h#include#includevoid main( )void main( )float x,y;float x,y; printfprintf( (“Enter x:Enter x:”);); scanfscanf( (“%f%f”,&x);,&x); if(xif(x!=0.0)=0.0) y=sin(x)/x; y=sin(x)/x; else else y=1; y=1;printfprintf( (“x=%5.2fx=%5.2ftyty=%7.2fn=%7.2

4、fn”,x,y);,x,y); C语言程序设计语言程序设计3.编写程序:用计算机语言写出实现算法的程序。编写程序:用计算机语言写出实现算法的程序。#include#include.h#include#includevoid main( )void main( )float x,y;float x,y; printfprintf( (“Enter x:Enter x:”);); scanfscanf( (“%f%f”,&x);,&x); if(xif(x!=0.0)=0.0) y=sin(x)/x; y=sin(x)/x; else else y=1; y=1;printfprintf( (“x

5、=%5.2fx=%5.2ftyty=%7.2fn=%7.2fn”,x,y);,x,y); C语言程序设计语言程序设计4.输入(编辑)程序输入(编辑)程序,编译、连接、执行程序编译、连接、执行程序,输出输出结果(测试)结果(测试)C语言程序设计语言程序设计n选选择择结结构构是是三三种种基基本本结结构构(顺顺序序、选选择择、循循环环)之之一。一。n选选择择结结构构的的特特点点是是:程程序序的的流流程程是是由由多多条条支支路路构构成成的的,在在程程序序的的一一次次执执行行过过程程中中,根根据据不不同同的的情情况况,只只有有一一条条支支路路被被选选择择执执行行,而而其其它它支支路路上上的的语语句句被被

6、直直接接跳过。跳过。n在在C C语语言言中中,提提供供了了ifif语语句句和和switchswitch语语句句来来实实现现选选择择结构。结构。4.1关系运算符和关系表达式关系运算符和关系表达式411关系运算符及其优先次序关系运算符及其优先次序1.关系运算:是对两个量进行关系运算:是对两个量进行“比较运算比较运算”。2.关系运算符:关系运算符:4.1关系运算符和关系表达式关系运算符和关系表达式411关系运算符及其优先次序关系运算符及其优先次序3.关于优先级别:关于优先级别:n前前4种关系运算符的优先级别相同,后两种也种关系运算符的优先级别相同,后两种也相同。前相同。前4种高于后两种。种高于后两种

7、。n算术运算符、算术运算符、关系运算符、赋值运算符。关系运算符、赋值运算符。高高低低4.1关系运算符和关系表达式关系运算符和关系表达式4.1.1关系运算符及其优先次序关系运算符及其优先次序例:例:ca+b等价于等价于c(a+b);关系运算符的优先级低于算;关系运算符的优先级低于算术运算符术运算符ab=c等价于等价于(ab)=c;“”优先级高于优先级高于“=”a=bc等价于等价于a=(bc);“c等价于等价于a=(bc);关系运算符的优先级高于赋值;关系运算符的优先级高于赋值运算符。运算符。4.1关系运算符和关系表达式关系运算符和关系表达式4.1.2关系表达式关系表达式1.用关系运算符将两个表达

8、式(算术、关系、逻辑、用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式等)连接起来的有意义的表达式,称为关赋值表达式等)连接起来的有意义的表达式,称为关系表达式。系表达式。如:如:x!=0;a=A;a*a+b*ba+b;a=bc;a=bb&xy等价于等价于(ab)&(xy)a=b|x=y等价于等价于(a=b)|(x=y)!a|ab等价于等价于(!a)|(ab)4.2 4.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.2.2逻辑表达式逻辑表达式1.逻辑量:当一个量(可以是基本类型的常量或变量)逻辑量:当一个量(可以是基本类型的常量或变量)用作判断的时候,用作判断的时候,C编译系统认为

9、:编译系统认为:非非0真,真,0假假2.逻辑表达式:用逻辑运算符(逻辑与、逻辑或、逻逻辑表达式:用逻辑运算符(逻辑与、逻辑或、逻辑非)将关系表达式或逻辑量连接起来的有意义的表辑非)将关系表达式或逻辑量连接起来的有意义的表达式叫逻辑表达式。达式叫逻辑表达式。4.2 4.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.2.2逻辑表达式逻辑表达式3.逻辑表达式的值逻辑表达式的值:真(真(1),假(),假(0)。)。4.C语言编译系统在给出逻辑运算结果时,以语言编译系统在给出逻辑运算结果时,以1代表代表“真真”,以,以0代表代表“假假”,但在判断一个量是否为,但在判断一个量是否为“真真”时,以时,

10、以0代表代表“假假”,以非,以非0代表代表“真真”(即认为一个(即认为一个非非0的数值是的数值是“真真”)。)。4.2 4.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.2.2逻辑表达式逻辑表达式例:例:若若a=4,则则!a值为值为0(假)。(假)。若若a=4,b=5,则则a&b值为值为1(真)(真),a|b值为值为1(真)(真),!a|b值值为为1(真)(真)4&0|2值为值为1(真)(真)c&d(真)值为(真)值为14.2 4.2 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.2.2逻辑表达式逻辑表达式例:计算:例:计算:53&2|8a)|(m=a22.x1+a并并yb3.的定义域

11、的定义域lfabs(x)2或或x2|x-2lx=1+a&y=2|x=0&x!=04.3if语句语句4.3.1if语句三种形式语句三种形式1.条件执行条件执行if(表达式表达式)语句语句if(p)A4.3if语句语句4.3.1if语句三种形式语句三种形式1.if(p)A例例:if(xy)printf(“%d”,x);例:例:if(xy)t=a;a=b;b=t;4.3if语句语句4.3.1if语句三种形式语句三种形式v复合语句:用一对花括号复合语句:用一对花括号包围起来的一条包围起来的一条和多条语句。和多条语句。复合语句的形式:复合语句的形式:语句语句1;语句语句2;语句语句3;4.3if语句语句

12、4.3.1if语句三种形式语句三种形式复合语句在选择结构,循环结构中经常用到。复合语句在选择结构,循环结构中经常用到。我们在逻辑上把复合语句看成是一条语句。我们在逻辑上把复合语句看成是一条语句。4.3if语句语句4.3.1if语句三种形式语句三种形式例:要求用户输入一个实数,然后求出这个实数例:要求用户输入一个实数,然后求出这个实数的绝对值。的绝对值。4.3if语句语句4.3.1if语句三种形式语句三种形式2.分支执行分支执行if(表达式表达式)语句语句1else语句语句2即即if(p)AelseB当当P为真时(非为真时(非0)执行执行A,否则执行否则执行B或后续语句。或后续语句。4.3if语

13、句语句4.3.1if语句三种形式语句三种形式2.分支执行分支执行例:例:if(a0)printf(“Aisapositiven”);elseprintf(“Aisnotapositiven”);vA和和B可以使单一语句,也可以是复合语句。可以使单一语句,也可以是复合语句。velse部分不能独立存在部分不能独立存在,前面一定有;和前面一定有;和if语句。语句。4.3if语句语句4.3.1if语句三种形式语句三种形式注意:注意:在在if和和else后面可以是单条语句,也可以是复合语后面可以是单条语句,也可以是复合语句,如果使用了复合语句,一定要用花括号括起来,句,如果使用了复合语句,一定要用花括号

14、括起来,语句块后面不要语句块后面不要“;”号。号。4.3if语句语句4.3.1if语句三种形式语句三种形式例如:例如:if(a+bc&b+ca&c+ab)s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“%f”,area);elseprintf(“itisnotatriangle”);4.3if语句语句4.3.1if语句三种形式语句三种形式在在C语言中,表达式语言中,表达式P的值是非的值是非0时,系统均按真时,系统均按真值处理。值处理。例例(1)if(a)printf(“ok!”);(2)x=-5;if(x)printf(“ok!”);(3

15、)y=0;if(y=0)printf(“ok!”);if(y)printf(“ok!”);4.3if语句语句4.3.1if语句三种形式语句三种形式else子句不能单独使用,必须是子句不能单独使用,必须是if语句的一部分,语句的一部分,与与if配对使用。配对使用。(缩排的格式缩排的格式)例:例:if(n6)if(n12)printf(“n大于大于6且小雨且小雨12n”);elseprintf(“n小于等于小于等于6n”);4.3if语句语句例:以下程序运行后的输出结果是例:以下程序运行后的输出结果是。main()inta=1,b=3,c=5;if(c=a+b)printf(yesn);elsep

16、rintf(non);yes4.3if语句语句4.3.1if语句三种形式语句三种形式例:比较例:比较a和和b的大小,并将大值赋给的大小,并将大值赋给max,并打印并打印出出max的值。的值。编程步骤:编程步骤:1.确定算法,画出流程图;确定算法,画出流程图;2.写出程序;写出程序;3.上机编译;上机编译;4.测试。测试。4.3if语句语句4.3.1 if4.3.1 if语句三种形式语句三种形式 #include #include (.h (注意程序的缩排注意程序的缩排) ) void main( ) void main( ) float a,b,max; float a,b,max; prin

17、tfprintf(please input a,b:);(please input a,b:); scanfscanf(%f%f,&a,&b);(%f%f,&a,&b); if(ab) if(ab) printfprintf(nanabn);bn); max=a; max=a; else else printfprintf(a=bn);(a=bn); max=b; max=b; printfprintf(“(“nmaxnmax=%fn,max);=%fn,max);4.3if语句语句4.3.1if语句三种形式语句三种形式例:从键盘上输入例:从键盘上输入a,b,c三个数,按从大到小输出。三个数,

18、按从大到小输出。(难点:交换数据算法难点:交换数据算法)4.3if语句语句4.3.1if语句三种形式语句三种形式#includevoidmain()inta,b,c,t;printf(“Entera,b,c:”);scanf(“%d%d%d”,&a,&b,&c);if(ab)/*t-临时变量临时变量*/t=a;a=b;b=t;/*交换交换a,b*/if(ac)t=a;a=c;c=t;if(b=90优秀优秀score=80良好良好score=70中等中等score=60及格及格score60不及格不及格4.3if语句语句4.3.1if语句三种形式语句三种形式#includevoidmain()f

19、loatscore;printf(“inputscore:”);scanf(“%f”,&score);if(score=90)printf(“Excellent!n”);elseif(score=80)printf(“Good!n”);elseif(score=70)printf(“Middle!n”);elseif(score=60)printf(“Pass!n”);elseprintf(“Fail!n”);4.3if语句语句4.3.1if语句三种形式语句三种形式例:模拟超市的优惠购物。根据顾客购物数以及例:模拟超市的优惠购物。根据顾客购物数以及所购商品单价计算顾客应付金额,计算中要进行优所

20、购商品单价计算顾客应付金额,计算中要进行优惠打折。具体打折规定是:惠打折。具体打折规定是:购物超过购物超过10件按件按8折优惠;折优惠;购物超过购物超过100件,按件,按7折优惠。折优惠。4.3if语句语句4.3.1if语句三种形式语句三种形式#includestdio.h#definerate11.0#definerate20.8#definerate30.7voidmain()intnum;floatprice,money;printf(pleaseinputmumandprince:);scanf(%d%f,&num,&price);if(num100)money=rate3*price

21、*num;elseif(num10)money=rate2*price*num;elsemoney=rate1*price*num;printf(moneyis%f,money);4.3if语句语句4.3.2 4.3.2 ifif语句的嵌套语句的嵌套 ifif语句的嵌套:语句的嵌套:ifif语句的语句的ifif块或块或elseelse块中,又块中,又包含一个包含一个ifif语句。语句。if()if()语句语句1;else语句语句2;elseif()语句语句3;else语句语句4;注意:应当注意注意:应当注意if与与else的配的配对关系。对关系。else总是与它总是与它上面上面的的最近最近的的

22、未配对未配对的的if配对。特别配对。特别是是if/else子句数目不一样时子句数目不一样时(if子句数量只会大于或等于子句数量只会大于或等于else子句数量)子句数量)4.3if语句语句4.3.2 4.3.2 ifif语句的嵌套语句的嵌套例:编一个程序,例:编一个程序,输入输入x,输出输出y。输入xyx-3?ny=x-1yn输出y。#include#includevoidmain()floatx,y;scanf(“f%”,&x);if(x-3)y=x-1;elseif(x=3)y=sqrt(9-x*x);elsey=log10(x);printf(/n“%f%f/n”,x,y);4.3if语句

23、语句4.3.2 4.3.2 ifif语句的嵌套语句的嵌套比较例:比较例:1.if(x)if(y)printf(1);elseprintf(“2”);2.if(x)if(y)printf(1);elseprintf(“2”);说明:通过加说明:通过加,可以改变,可以改变else的层位,从而改的层位,从而改变程序的执行流程。变程序的执行流程。4.3if语句语句4.3.2 4.3.2 ifif语句的嵌套语句的嵌套例:例:下面程序的运行结果是下面程序的运行结果是_.includeviodmain()inta=2,b=3,c=1;if(ab)if(ac)printf(“%dn”,a);elseprint

24、f(“%dn”,b);printf(“over!n”);over!4.3if语句语句4.3.2 4.3.2 ifif语句的嵌套语句的嵌套例:例:判定某年是否闰年。闰年:能被判定某年是否闰年。闰年:能被4整除,但整除,但不能被不能被100整除;或能被整除;或能被400整除。整除。注意:注意:leap是标志性是标志性变量,在变量,在C语言中经常用语言中经常用到。到。4.3if语句语句4.3.2 4.3.2 ifif语句的嵌套语句的嵌套includeviodmain()intyear,leap;printf(“Whichyear?”);scanf(“%d”,year);if(year%400=0)l

25、eap=1;elseif(year%4=0)if(year%100=0)leap=0;elseleap=1;elseleap=0;if(leap=1)printf(“%disaleapyear”,year);elseprintf(“%disnotaleapyear”);4.3if语句语句4.3.2 4.3.2 ifif语句的嵌套语句的嵌套或者程序写成:或者程序写成:includeviodmain()intyear,leap;printf(“Whichyear?”);scanf(“%d”,year);if(year%4=0)&(year%100!=0)|(year%400=0)leap=1;el

26、seleap=0;if(leap=1)printf(“%disaleapyear”,year);elseprintf(“%disnotaleapyear”);4.3if语句语句4.3.2 4.3.2 ifif语句的嵌套语句的嵌套例:判断某人是否属于肥胖体型。根据身高与体例:判断某人是否属于肥胖体型。根据身高与体重因素,医务工作者经广泛的调查分析给出了以下重因素,医务工作者经广泛的调查分析给出了以下“体指数体指数”对肥胖程度的划分:对肥胖程度的划分:体指数体指数t体重体重w/(身高身高h)(w单位为千克,单位为千克,h单位为米单位为米)当当t=27时,为时,为肥胖。肥胖。编程从键盘输入你的身高和

27、体重,根据给定公式编程从键盘输入你的身高和体重,根据给定公式计算体指数,然后判断你的体重属于何种类型。计算体指数,然后判断你的体重属于何种类型。 4.3if语句语句 4.3.2 4.3.2 ifif语句的嵌套语句的嵌套#includevoidmain()floath,w,t;printf(Pleaseenterh,w:);scanf(%f,%f,&h,&w);t=w/(h*h);if(t18)printf(t=%ftLowerweight!n,t);elseif(t25)printf(t=%ftStandardweight!n,t);elseif(tb?a:b;说明:说明:(1)条件运算符的执

28、行顺序:先求解表达式条件运算符的执行顺序:先求解表达式1,若,若为非为非0(真)则求解表达式(真)则求解表达式2,表达式,表达式2的值就是整的值就是整个条件表达式的值。若表达式个条件表达式的值。若表达式1的值为的值为0(假),则(假),则求解表达式求解表达式3,此时表达式,此时表达式3的值就是整个条件表达的值就是整个条件表达式的值。式的值。4.3if语句语句4.3.3条件运算符(?:)条件运算符(?:)说明:说明:(2)条件运算符的优先级高于赋值运算符,低于关系条件运算符的优先级高于赋值运算符,低于关系运算符和算术运算符。运算符和算术运算符。例如:例如:max=ab?a:b等价于:等价于:ma

29、x=(ab)?a:b)(3)条件运算符的结合性条件运算符的结合性“自右向左自右向左”。例如:例如:ab?a:cd?c:d。先考虑优先级、再考虑结合性:上面表达式先考虑优先级、再考虑结合性:上面表达式等价与等价与(ab)?a:(cd)?c:d)。4.3if语句语句4.3.3条件运算符(?:)条件运算符(?:)说明:说明:(4)表达式表达式2和表达式和表达式3不仅可以是数值表达式,还不仅可以是数值表达式,还可以是赋值表达式,函数表达式。可以是赋值表达式,函数表达式。例如:例如:ab?(a=100):(b=100);ab?prinf(“%d”,a):prinf(“%d”,b);(5)表达式表达式1,

30、表达式,表达式2,表达式,表达式3的类型都可以不同。的类型都可以不同。条件表达式值的类型是表达式条件表达式值的类型是表达式2,表达式,表达式3中类型较高中类型较高的类型。的类型。例如:例如:xy?1:1.5整个表达式类型为实型。整个表达式类型为实型。4.3if语句语句4.3.3条件运算符(?:)条件运算符(?:)例例从键盘输入你和你朋友的年龄,编程判断谁从键盘输入你和你朋友的年龄,编程判断谁的年龄最大,并打印最大者的年龄。的年龄最大,并打印最大者的年龄。4.3if语句语句4.3.3条件运算符(?:)条件运算符(?:)#includevoidmain()intyourage,hisage,max

31、;printf(Pleaseenteryourage:);scanf(%d,&yourage);printf(Pleaseenteryourfriendsage:);scanf(%d,&hisage);if(hisage=yourage)printf(hisageisequaltoyourage.);elsemax=(hisageyourage)?hisage:yourage;printf(theolderageis%dn,max);4.3if语句语句4.3.3条件运算符(?:)条件运算符(?:)例例:输入一个字符,如果是大写字母,转换为小写,输入一个字符,如果是大写字母,转换为小写,如果不是

32、不转换。最后输出。如果不是不转换。最后输出。#includevoidmain()charch;scanf(“%c”,&ch);ch=(ch=A&ch=Z)?(ch+32):ch;printf(“%c”,ch);4.3if语句语句4.3.3条件运算符(?:)条件运算符(?:)例例:输入一个字符,如果是大写字母,转换为小输入一个字符,如果是大写字母,转换为小写,如果不是不转换。最后输出。写,如果不是不转换。最后输出。考虑:编程通过键盘输入一个字符,判断该字考虑:编程通过键盘输入一个字符,判断该字符是数字字符符是数字字符(digitcharacter)、字母字母(englishcharacter)、

33、空格空格(spacecharacter)还是其他字符还是其他字符(othercharacter)。4.4switch语句语句多分支可以使用嵌套的多分支可以使用嵌套的if语句处理,但如果分语句处理,但如果分支较多,嵌套的支较多,嵌套的if语句层数多,程序冗长,降低可语句层数多,程序冗长,降低可读性。读性。C语言中语言中switch语句亦称多分支选择语句,它比语句亦称多分支选择语句,它比用嵌套的用嵌套的if语句实现多路分支问题,其程序结构清语句实现多路分支问题,其程序结构清晰、易读。晰、易读。4.4switch语句语句1.switch语句一般形式:语句一般形式:switch(表达式表达式e)cas

34、e常量表达式常量表达式C1:语句语句1case常量表达式常量表达式C2:语句语句2case常量表达式常量表达式Cn:语句语句ndefault:语句语句n+14.4switch语句语句说明:说明:(1)switch括括号号后后面面的的表表达达式式e,允允许许为为任任何何类类型型,例如整型、字符型、枚举型例如整型、字符型、枚举型。(2)常常量量表表达达式式Ci必必须须与与表表达达式式e类类型型一一致致(整整型和字符型可以通用)。型和字符型可以通用)。 4.4switch语句语句2.执行过程执行过程(1 1)计算计算“表达式表达式e”的值。的值。 (2)(2)当当“表表达达式式e”e”的的值值与与某

35、某casecase后后的的 “常常量量表表达式达式 Ci Ci”的值一致时,就执行此的值一致时,就执行此casecase后面的语句后面的语句i i。直直到到 遇到遇到breakbreak语句和语句和switchswitch语句的语句的 “” “”。 (3 3)如果)如果“表达式表达式e”e”的值与所有常量表达式均的值与所有常量表达式均不不 一致一致,就执行就执行defaultdefault后面的语句后面的语句( (如果没有如果没有 default default就执行跳出就执行跳出switch,switch,执行执行switchswitch语句后面语句后面 的语句的语句) )。 4.4swit

36、ch语句语句注意:注意:(1)常常量量表表达达式式Ci仅仅起起语语句句标标号号的的作作用用,不不做做求求值值判断。判断。(2)常量表达式)常量表达式Ci的值必须是唯一的,没有先的值必须是唯一的,没有先后后次序。次序。(3)多个多个case可以共用一组执行语句。(注意可以共用一组执行语句。(注意break使用的位置)使用的位置)(4)case后面如果有多条语句,不必用后面如果有多条语句,不必用括起来。括起来。4.4switch语句语句只只有有switch语语句句和和break语语句句配配合合起起来来,才才能能形形成真正意义上的多分支。成真正意义上的多分支。4.4switch语句语句例:设有声明语

37、句例:设有声明语句inta=1,b=0;则执行以下语句后则执行以下语句后输出为输出为_.switch(a)case1:switch(b)case0:printf(*0*);break;case1:printf(*1*);break;case2:printf(*2*);break;*0*2*4.4switch语句语句问题:本题中没有问题:本题中没有break语句,执行结果会怎么样?如语句,执行结果会怎么样?如何解决这个问题?何解决这个问题?#includevoidmain()floatscore;printf(“pleaseinputthescore:”);scanf(“%f”,&score);

38、switch(int)score/10)case10:case9:printf(“excellent!n”);case8:printf(“good!n”);case7:printf(“middle!n”);case6:printf(“pass!n”);default:printf(“fail!n”);4.5应用程序举例应用程序举例例:物流公司对用户计算运费,收费标准随距离变例:物流公司对用户计算运费,收费标准随距离变化如下:化如下:s250km不折扣;不折扣;250kms500km%2;500kms1000km%5;1000kms2000km%8;2000kms3000km%103000kms

39、%15;计费按照运输距离计费按照运输距离s货物重量货物重量w进行,设每公里每进行,设每公里每吨货物基本运费为吨货物基本运费为p,考虑折扣考虑折扣d时,总运费计算公式时,总运费计算公式为为f=p*w*s*(1-d);4.5应用程序举例应用程序举例例:物流公司对用户计算运费,收费标准随距离变例:物流公司对用户计算运费,收费标准随距离变化如下:化如下:分析:分析:int(s/250)0:d=0;1:d=0.02;2、3:d=0.05;411:d=0.10;其它其它d=1.5;4.5应用程序举例应用程序举例#includevoidmain()floatf,w,p,s,d;printf(“inputun

40、itprice,space,weight:”);scanf(“%f%f%f”,p,s,w);switch(int)s/250)case0:d=0;break;case1:d=0.02;break;case2:case3:d=0.05;break;case4:case5:case6:case7:d=0.08;break;case8:case9:case10:case11:d=0.1;break;default:d=0.154.5应用程序举例应用程序举例例例:读读入入一一个个年年份份和和月月份份,打打印印出出该该月月有有多多少少天天(考虑闰年),用(考虑闰年),用switch语句编程。语句编程。#

41、includevoidmain()intyear,month;printf(Inputyear,month:);scanf(%d,%d,&year,&month);switch(month)case1:case3:case5:case7:case8:case10:case12:printf(31daysn);break;4.5应用程序举例应用程序举例case2:if(year%4=0&year%100!=0)|(year%400=0)printf(29daysn);elseprintf(28daysn);break;case4:case6:case9:case11:printf(30daysn

42、);break;default:printf(Inputerror!n);4.5应用程序举例应用程序举例 例:编程计算一个简单的计算器程序,完成两个数例:编程计算一个简单的计算器程序,完成两个数的的 加、减、乘、除。加、减、乘、除。分析分析(1 1)输入输入 操作数操作数1 1 运算符运算符 操作数操作数2 2。 (2 2)switchswitch表达式:运算符。表达式:运算符。 (3 3)常量)常量+,-,*,/.+,-,*,/. 4.5应用程序举例应用程序举例#includevoidmain()intdata1,data2;charop;printf(Pleaseentertheexpre

43、ssion:);scanf(%d%c%d,&data1,&op,&data2);/*输入数据时不能有空格输入数据时不能有空格*/switch(op)switch(op)4.5应用程序举例应用程序举例case+:printf(%d+%d=%dn,data1,data2,data1+data2);break;case-:printf(%d-%d=%dn,data1,data2,data1-data2);break;case*:printf(%d*%d=%dn,data1,data2,data1*data2);break;case/:if(0=data2)printf(Divisionbyzero!

44、n);elseprintf(%d/%d=%dn,data1,data2,data1/data2);break;default:printf(Unknownoperator!n);4.5应用程序举例应用程序举例作业作业(200903)17.一下是一下是if语句的基本形式语句的基本形式:if(表达式表达式)语句语句其中其中表达式表达式A)必须是逻辑表达式必须是逻辑表达式B)必须是关系表达式必须是关系表达式C)必须是逻辑表达式或关系表达式必须是逻辑表达式或关系表达式D)可以是任意合法的表达式可以是任意合法的表达式4.5应用程序举例应用程序举例18.有以下程序有以下程序#includemain()in

45、tx;scanf(%d,&x);if(x=3);elseif(x!=10)printf(%dn,x);程序运行时程序运行时,输入的值在哪个范围才会有输出结果输入的值在哪个范围才会有输出结果A)不等于不等于10的整数的整数B)大于大于3且不等于且不等于10的整数的整数C)大于大于3或等于或等于10的整数的整数D)小于小于3的整数的整数4.5应用程序举例应用程序举例19.有以下程序有以下程序#includemain()inta=1,b=2,c=3,d=0;if(a=1&b+=2)if(b!=2|c-!=3)printf(%d,%d,%dn,a,b,c);elseprintf(%d,%d,%dn,a,b,c);elseprintf(%d,%d,%dn,a,b,c);程序运行后输出结果是程序运行后输出结果是A)1,2,3B)1,3,2C)1,3,3D)3,2,1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号