逻辑表达与流程控制优秀PPT.ppt

上传人:石*** 文档编号:82700009 上传时间:2023-03-26 格式:PPT 页数:47 大小:2.69MB
返回 下载 相关 举报
逻辑表达与流程控制优秀PPT.ppt_第1页
第1页 / 共47页
逻辑表达与流程控制优秀PPT.ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《逻辑表达与流程控制优秀PPT.ppt》由会员分享,可在线阅读,更多相关《逻辑表达与流程控制优秀PPT.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、逻辑表达与流程控制第一页,本课件共有47页1本章学习要点本章学习要点 关系运算关系运算逻辑运算逻辑运算if语句及语句及if语句的嵌套语句的嵌套switch语句语句 第二页,本课件共有47页5.1 关系运算关系运算x=15比较比较 x 和和 15 的大小的大小比较的结果:比较的结果:真真 假假当当 x 取值取值9.5时,时,x=15的结果是:?的结果是:?当当 x 取值取值21.3时,时,x=15的结果是:?的结果是:?关系运算符关系运算符x y x y x=y x!=y关系表达式:关系表达式:用用关系运算符关系运算符将将2个个表达式表达式连接起来的式子。连接起来的式子。如:如:x=1区分区分=

2、和和=第三页,本课件共有47页运用关系表达式运用关系表达式表示比较的数学式表示比较的数学式 C关系表达式关系表达式x10 x10 x10 x=10 x=10 x!=10 x=10用关系表达式描述条件用关系表达式描述条件判断判断 x 是否为负数是否为负数 x 0判断判断 x 是否不为零是否不为零 x!=0 第四页,本课件共有47页5.2 逻辑运算逻辑运算x=1 关系运算关系运算-1=x=-1 并且并且 x=-1&x 1)&(y1)(x1)|(y1)(x1)!(x1)即即 x=a)&(ch=a&ch=A&ch=Z)判断判断ch 是否为英文字母是否为英文字母 第九页,本课件共有47页条件的表示条件的

3、表示例例1 写出满足下列条件的写出满足下列条件的C表达式。表达式。ch 是空格或者回车。是空格或者回车。ch=|ch=nnumber是偶数。是偶数。number%2=0year 是闰年,即是闰年,即 year 能被能被 4 整除但不能被整除但不能被 100 整除,整除,或或 year 能被能被 400 整除。整除。(year%4=0&year%100!=0)|(year%400=0)第十页,本课件共有47页5.3 选择控制结构选择控制结构if语句语句 1 if语句的简单形式语句的简单形式 if(表达式表达式)语句语句 第十一页,本课件共有47页例例 2 打印出不及格的成绩打印出不及格的成绩 第

4、十二页,本课件共有47页例例3 输入一个整数,输出它的绝对值输入一个整数,输出它的绝对值分析:分析:当当number=0时,时,?第十三页,本课件共有47页#include int main(void)int number;printf(Enter a number:);scanf(%d,&number);if(number 0)number=-number;printf(The absolute value is%d.n,number);return 0;运行结果:运行结果:Enter a number:10 The absolute value is 10.运行结果:运行结果:Enter

5、a number:-300 The absolute value is 300.第十四页,本课件共有47页2.ifelse结构结构 if(表达式表达式)语句语句1else 语句语句2 第十五页,本课件共有47页解解 我们可以使用两种方法编程:我们可以使用两种方法编程:方法一:方法一:用两个简单的用两个简单的if语句实现:语句实现:main()float score;scanf(%f,&score);if(score=60.0)printf(score=%5.1f-Passn,score);例例 4 打印成绩打印成绩60分为分为“Pass”,否则为否则为“Fail”。第十六页,本课件共有47页方

6、法二:方法二:用用ifelse语句实现:语句实现:main()float score;scanf(%f,&score);if(score9)y=100;else y=200;用条件运算符改写程序段:用条件运算符改写程序段:x=10;y=x9?100:200;第十九页,本课件共有47页例例5 输入输入x的值,的值,当当x0时调用时调用sqrt(x),否,否 则则调用调用fabs(x)。#include#include main()float x,y;scanf(%f,&x);y=x0?sqrt(x):fabs(x);printf(x=%f,y=%fn,x,y);第二十页,本课件共有47页3 多分

7、支结构与嵌套的多分支结构与嵌套的 if 语句和语句和switch语句语句多分支结构有多种形式多分支结构有多种形式实现方法实现方法:n嵌套的嵌套的 if 语句语句 else if 语句语句嵌套的嵌套的 if-else语句语句nswitch语句语句 第二十一页,本课件共有47页(1)嵌套的)嵌套的 if 语句语句if(表达式表达式)语句语句1else 语句语句2 if 语句语句 if 语句语句o else if 语句语句o 嵌套的嵌套的 if-else语句语句 第二十二页,本课件共有47页if(表达式表达式1)语句语句1else if(表达式表达式2)语句语句2else if(表达式表达式n-1)

8、语句语句n-1else 语句语句n假假表达式表达式1表达式表达式2语句语句1语句语句2语句语句n-1语句语句n真 表达式表达式n-1假假真真 假假假假真 第二十三页,本课件共有47页嵌套的嵌套的 if else 语句语句if(表达式表达式1)if(表达式表达式2)语句语句1else 语句语句2 elseif(表达式表达式3)语句语句3 else 语句语句4 表达式表达式1表达式表达式3语句语句4真真 假假表达式表达式2语句语句3语句语句1语句语句2真真 真真 假假假假 第二十四页,本课件共有47页if(x 1)y=x+1;else if(x 2)y=x+2;else y=x+3;if(x 2)

9、if(x 1)y=x+1;else y=x+2;else y=x+3;x2 x1y=x+1y=x+2真真 假假真真 y=x+3假假假假 x1 x=90)printf(Very Goodn);else if(score=80)printf(Goodn);else if(score=60)printf(Passn);else printf(Failn);第二十九页,本课件共有47页main()float score;scanf(%f,&score);if(score=80)if(score=90)printf(Very Goodn);else printf(Goodn);else if(score

10、=60)printf(Passn);else printf(Failn);方法二:方法二:if嵌套结构来实现嵌套结构来实现 第三十页,本课件共有47页 main()float score;scanf(%f,&score);if(score=60)printf(Passn);else if(score=80)printf(Goodn);else printf(Very Goodn);分析改写成以下形式:分析改写成以下形式:第三十一页,本课件共有47页(2)switch语句语句 处理多分支选择问题,处理多分支选择问题,3种情况种情况1)在在switch语句的每个语句段中都使用语句的每个语句段中都使

11、用break语句语句switch(表达式表达式)case 常量表达式常量表达式1:语句段:语句段1;break;case 常量表达式常量表达式2:语句段:语句段2;break;.case 常量表达式常量表达式n:语句段:语句段n;break;default:语语句句段段n+1;break;第三十二页,本课件共有47页 假假设设自自动动售售货货机机出出售售4 4种种商商品品,薯薯片片(crisps)(crisps)、爆爆米米花花(popcorn)(popcorn)、巧巧克克力力(chocolate)(chocolate)和和可可乐乐(cola)(cola),售售价价分分别别是是每每份份3.03.

12、0、2.52.5、4.04.0和和3.53.5元元。在在屏屏幕幕上上显显示示以以下下菜菜单单,用用户户可可以以连连续续查查询询商商品品的的价价格格,当当查查询询次次数数超超过过5 5次次时时,自自动动退退出出查查询询;不不到到5 5次次时时,用用户户可可以以选选择择退退出出。当当用用户户输输入入编编号号1-4,1-4,显显示示相相应应商商品品的的价价格格;输输入入0 0,退退出出查查询询;输入其他编号,显示价格为输入其他编号,显示价格为0 0。1 Select crisps1 Select crisps2 Select popcorn 2 Select popcorn 3 Select cho

13、colate3 Select chocolate4 Select cola 4 Select cola 0 Exit0 Exit例例7 查询自动售货机中商品的价格查询自动售货机中商品的价格 第三十三页,本课件共有47页表达式的值表达式的值=常量表达式常量表达式 2 的值的值表表达达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式的值表达式的值=常量表达式常量表达式 1 的值的值表达式的值表达式的值=常量表达式常量表达式 n 的值的值其他其他breakbreakbreakbreakswitch(choice)case 1:price=3.0;break;case 2:pri

14、ce=2.5;break;case 3:price=4.0;break;case 4:price=3.5;break;default:price=0.0;break;第三十四页,本课件共有47页#include int main(void)int choice,i;double price;for(i=1;i=5;i+)printf(1 Select crisps n);printf(2 Select popcorn n);printf(3 Select chocolate n);printf(4 Select cola n);printf(0 exit n);printf(Enter cho

15、ice:);scanf(%d,&choice);if(choice=0)break;switch(choice)case 1:price=3.0;break;case 2:price=2.5;break;case 3:price=4.0;break;case 4:price=3.5;break;default:price=0.0;break;printf(price=%0.1fn,price);printf(Thanks n);1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice:1

16、price=3.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice:7price=0.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice:0Thanks 第三十五页,本课件共有47页 2)在switch中不使用breakswitch(表达式表达式)case 常量表达式常量表达式1:语句段:语句段1;case 常量表达式常量表达式2:语句段:语句段2;.case 常量

17、表达式常量表达式n:语句段:语句段n;default:语语句段句段n+1;第三十六页,本课件共有47页switch(choice)case 1:price=3.0;case 2:price=2.5;case 3:price=4.0;case 4:price=3.5;default:price=0.0;表达式的值表达式的值=常量表达式常量表达式 2 的值的值表表达达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式表达式的值的值=常量表达式常量表达式 1 的值的值表达式的值表达式的值=常量表达式常量表达式 n 的值的值其他其他 第三十七页,本课件共有47页3)在在switch

18、的某些语句段中使用的某些语句段中使用breakswitch(choice)case 1:price=3.0;break;case 2:price=2.5;case 3:price=4.0;break;case 4:price=3.5;default:price=0.0;第三十八页,本课件共有47页 用用switch语语句句输输出出学学生生的的分分数数等等级级。设设分分数数大大于于等等于于90分分者者为为A等等,70分分90分分为为B等等(含含70),60分分70分分为为C等等(含含60),60分以下为分以下为D等,分数为浮点数。等,分数为浮点数。编程思路:编程思路:switch后后的的表表达达

19、式式必必须须是是有有类类型型而而且且求求出出的的结结果果应应当当是是一一个个个个离离散散的的值值,而而不不是是一一个个数数值值范范围围。应应该该想想办办法法把把一一个个范范围围转转换换成成一一个个确确定定的的值值,这这是是使使用用switch语句的关键。语句的关键。我我们们可可以以把把分分数数除除以以10再再取取整整,即即可可变变成成离离散散的的数值,就可以用数值,就可以用switch语句解决了。语句解决了。例例8 设计下面程序设计下面程序 第三十九页,本课件共有47页#include main()int i;float score;printf(Input a score:);scanf(%

20、f,&score);i=score/10;switch(i)case 10:case 9:printf(A);break;case 8:case 7:printf(B);break;case 6:printf(C);break;default:printf(D);return 0;第四十页,本课件共有47页例例9:输入两个整数:输入两个整数a和和b,按从小到大,按从小到大的顺序输出。的顺序输出。算法设计:算法设计:scanf(“%d%d”,&a,&b);如果如果ab,则,则a和和b交换值;交换值;printf(“%d%d”,a,b);5.3 程序举例程序举例 第四十一页,本课件共有47页#in

21、cludemain()int a,b,t;printf(请输入两个整数:请输入两个整数:);scanf(%d%d,&a,&b);if(ab)t=a;a=b;b=t;printf(%d%d,a,b);第四十二页,本课件共有47页例例10:输入三个整数:输入三个整数a,b,c,按从小到大的,按从小到大的顺序输出。顺序输出。算法设计:算法设计:scanf(“%d%d%d”,&a,&b,&c);如果如果ab,则,则a和和b交换值;交换值;如果如果ac,则,则a和和c交换值;交换值;如果如果bc,则,则b和和c交换值;交换值;printf(“%d%d%d”,a,b,c);第四十三页,本课件共有47页#i

22、ncludemain()int a,b,c,t;printf(请输入三个整数:请输入三个整数:);scanf(%d%d%d,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(%d%d%d,a,b,c);第四十四页,本课件共有47页 例例11 编编写写一一个个可可由由用用户户键键入入简简单单表表达达式式的的程序,形式如下:程序,形式如下:number operator number 要要求求:该该程程序序要要计计算算该该表表达达式式并并以以两两位位小小数数显显示示结结果果。识识别别的的运运算算符符oper

23、ator为为加加、减减、乘乘、除。除。例如:例如:输入:输入:3.1+4.8 输出:输出:7.9 第四十五页,本课件共有47页#include int main(void)char oper;double value1,value2;printf(Type in an expression:);scanf(%lf%c%lf,&value1,&oper,&value2);switch(oper)case +:printf(=%.2fn,value1+value2);break;case -:printf(=%.2fn,value1-value2);break;case *:printf(=%.2fn,value1*value2);break;case /:printf(=%.2fn,value1/value2);break;default:printf(Unknown operatorn);break;return 0;第四十六页,本课件共有47页作业 p111页:页:3-7题题 第四十七页,本课件共有47页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁