大学C语言基础自学ppt课件--第5章

上传人:20****08 文档编号:241289313 上传时间:2024-06-15 格式:PPT 页数:31 大小:300.17KB
返回 下载 相关 举报
大学C语言基础自学ppt课件--第5章_第1页
第1页 / 共31页
大学C语言基础自学ppt课件--第5章_第2页
第2页 / 共31页
大学C语言基础自学ppt课件--第5章_第3页
第3页 / 共31页
点击查看更多>>
资源描述
1第五章第五章 选择结构程序设计选择结构程序设计内容提要:内容提要:逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 关系运算符和关系表达式关系运算符和关系表达式 ifif语句语句 switchswitch语句语句Ch5 选择结构程序设计选择结构程序设计内容提要:Ch5 选择结构程序设计2第五章第五章 选择结构程序设计选择结构程序设计一、逻辑运算符和表达式一、逻辑运算符和表达式 P52什么是逻辑运算什么是逻辑运算 逻辑运算用来判断一件事情是逻辑运算用来判断一件事情是“对对”的还是的还是“错错”的,或的,或者说是者说是“成立成立”还是还是“不成立不成立”,判断的结果是二值的。,判断的结果是二值的。什么是逻辑量什么是逻辑量 凡是参加逻辑运算的变量、常量都是逻辑量。凡是参加逻辑运算的变量、常量都是逻辑量。什么是逻辑值什么是逻辑值 逻辑量、逻辑表达式其最后的运算结果的值就是逻辑值逻辑量、逻辑表达式其最后的运算结果的值就是逻辑值。逻辑值只能是逻辑值只能是“0”“0”和和“1”“1”这二个数。这二个数。“1”“1”表示逻辑真(成表示逻辑真(成立);立);“0”“0”表示逻辑假(不成立)。表示逻辑假(不成立)。一、逻辑运算符和表达式 P523第五章第五章 选择结构程序设计选择结构程序设计ab!a!ba&ba|b真真假假真真假假假假假假真真真真一、逻辑运算符和表达式一、逻辑运算符和表达式 P52逻辑运算符逻辑运算符种类:种类:&(与)(与)|(或)(或)!(非非)逻辑运算真值表逻辑运算真值表C C语言中语言中,运算量运算量:0 0表示表示“假假”,非非0 0表示表示“真真”,”,运算结果运算结果:0 0表示表示“假假”,1 1表示表示“真真”,”,真真假假假假假假假假假假真真真真假假假假真真真真真真假假真真真真真真真真假假假假ab!a!ba&ba|b真假真假假假真真一、逻辑运算符和4第五章第五章 选择结构程序设计选择结构程序设计!(2)&(11)|(12)高高低低l优先级:优先级:l结合方向:结合方向:!:从右向左从右向左&:从左向右从左向右|:从左向右从左向右例例 a=4;b=5;!a a&b a|b !a|b a&0|2 53&2|83)&2|(8b)&(n=cd)/结果结果m=0,n=1含含&和和|表达式在编译时,即从左到右的运算中,表达式在编译时,即从左到右的运算中,结果一经确定就不向下运算下去。结果一经确定就不向下运算下去。(1)1)a&b&ca&b&c 只要只要a a为为假假,就不必判断,就不必判断b b和和c c的值,只有的值,只有a a为真时,为真时,才需要判断才需要判断b b的值,只有的值,只有a a和和b b都为真时,才需要判断都为真时,才需要判断c c的值。的值。(2)2)a|b|ca|b|c 只要只要a a为为真真,就不必判断,就不必判断b b和和c c的值,只有的值,只有a a为为 假,才判断假,才判断b b。a a和和b b都为假才判断都为假才判断c c短路特性:短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符行该运算符 P94P94例 a=1;b=2;c=3;d=4;m=1;n=1;/结6第五章第五章 选择结构程序设计选择结构程序设计例:若例:若A=5,B=0,A=5,B=0,求表达式求表达式!B2|5&A=5!B2|5&A=5的值。的值。!B2|5&A=5!B2|5&A=5 第一步:第一步:12|5&A=512|5&A=5 第二步:第二步:1|5&A=51|5&A=5 第三步:第三步:1|5&11|5&1 第四步:第四步:1|11|1 第五步:第五步:1 1例:若例:若A=3,B=4,C=5 A=3,B=4,C=5 写出下列逻辑表达式的值。写出下列逻辑表达式的值。(1)!(A+B)+C-1&B+C/2(1)!(A+B)+C-1&B+C/2(1)!(A+B)+C-1&B+C/2(1)!(A+B)+C-1&B+C/2 !(3+4)+C-1&B+C/2 0+C-1&B+C/2 0+C-1&B+2 4&6 1例:若A=5,B=0,求表达式!B2|5&A=5的7第五章第五章 选择结构程序设计选择结构程序设计两两字字符符之之间间不不能能加加空空格格二、关系运算符和表达式二、关系运算符和表达式 P51关系运算符关系运算符种种 类:类:=!=!=结合方向:自左向右结合方向:自左向右优先级别:优先级别:=!=优先级优先级6(高)(高)优先级优先级7(低)(低)关系表达式的值:是逻辑值关系表达式的值:是逻辑值“真真”或或“假假”,用,用1 1和和0 0表示表示例例 int a=3,b=2,c=1,d,f;ab ab=c b+cb f=abc/表达式值表达式值1/表达式值表达式值1/表达式值表达式值0/d=1/f=0算算术术运运算算符符 关关系系运运算算符符 赋赋值值运运算符算符高于高于高于高于两字符之间不能加空格二、关系运算符和表达式 P510 结果为结果为 A100 结果为结果为10说明:数值比较:数字的大小说明:数值比较:数字的大小说明:数值比较:数字的大小说明:数值比较:数字的大小 字符比较:字符比较:字符比较:字符比较:ASCASCASCASC的大小的大小的大小的大小 注意注意注意注意“=”=”=”=”与与与与“=”=”=”=”的区别的区别的区别的区别例 int i=1,j=7,a;2例 9第五章第五章 选择结构程序设计选择结构程序设计选择型程序设计选择型程序设计 P95P95ifif语句(条件选择语句)语句(条件选择语句)ifif语句的三种语句的三种 形式形式形式一:形式一:格式:格式:if(if(表达式表达式)语句语句1;1;语句语句2 2;执行过程:执行过程:l形式二:形式二:u格式:格式:if(if(表达式表达式)语句语句1 1;else else 语句语句2 2;语句语句3 3;u执行过程:执行过程:例:例:if(xy)max=x;else max=y;printf(%d,max);例:例:if(xy)printf(“%d”,x);printf(“%d”,y);表达式语句1非0=0语句2 表达式语句1语句2非0=0语句3后后续续语语句句选择型程序设计 P95形式二:例:if(xy)m10第五章第五章 选择结构程序设计选择结构程序设计形式三:形式三:格式:格式:if(if(表达式表达式1)1)语句语句1 1else if(else if(表达式表达式2)2)语句语句2 2else if(else if(表达式表达式3)3)语句语句3 3.else if(表达式表达式m)语句语句melse else 语句语句n n表达式表达式1语句语句1非非0=0表达式表达式2表达式表达式3语句语句n语句语句3语句语句2非非0非非0=0=0u执行过程:执行过程:形式三:if(表达式1)语句1表达式111第五章第五章 选择结构程序设计选择结构程序设计#include void main()float x,y;printf(enter x:);scanf(%f,&x);if(x=10)printf(not define x.n);else if (x=1)y=x+5;else if (x10 x102x2x1x101x10 x+5x+5x1x1#include y=3x-10 x10212第五章第五章 选择结构程序设计选择结构程序设计如:如:if(a=b&x=y)printf(“a=b,x=y”);if(3)printf(“OK”);if(a)printf(“%d”,a);l说明:说明:uifif后面的表达式类型任意后面的表达式类型任意u语句可以是复合语句语句可以是复合语句 例例 考虑下面程序的输出结果考虑下面程序的输出结果:#include void main()int x,y,t;scanf(%d,%d,&x,&y);if(xy)t=x;x=y;y=t;else x+;y+;printf(%d,%dn,x,y);如:if(a=b&x=y)printf(“a=13第五章第五章 选择结构程序设计选择结构程序设计vif语句嵌套语句嵌套:if(表达式表达式1)if(表达式表达式2)语句语句1 else 语句语句2else if(表达式表达式3)语句语句3 else 语句语句4 语句语句5内嵌内嵌if内嵌内嵌ifif(表达式表达式1)if(表达式表达式2)语句语句1 else 语句语句2 语句语句3内嵌内嵌ifif(表达式表达式1)if(表达式表达式2)语句语句1;else 语句语句2 语句语句3 内嵌内嵌ifif(表达式表达式1)语句语句1else if(表达式表达式2)语句语句2 else 语句语句3 语句语句4内嵌内嵌ifif语句嵌套:if(表达式1)内嵌if内嵌ifif(表达14第五章第五章 选择结构程序设计选择结构程序设计if else 配对原则配对原则:缺省缺省 时,时,else总是总是和它上面离它最近的未配对的和它上面离它最近的未配对的if配对配对if()if()if()else.else.else.if else 配对原则:缺省 时,else总是和15第五章第五章 选择结构程序设计选择结构程序设计例:例:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);修改:修改:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);实现实现if else 正确配对方法:加正确配对方法:加 例:if(a=b)修改:if(a=b)实现if 16第五章第五章 选择结构程序设计选择结构程序设计#include void main()int a=1,b=-1,c=3;if(ab)if (b0)c=0;else c+;else c=1;printf(%dn,c);1.写出程序的运行结果写出程序的运行结果2.若执行以下程序时从键若执行以下程序时从键盘上键入盘上键入5,则输出结果,则输出结果是什么是什么#include void main()int x;scanf(%d,&x);if (+x6)printf(%dn,x);else printf(“%dn,x+1);结果:结果:1结果:结果:7a=-2,结果:结果:0b=0,结果:结果:4#include 1.写出程序的运行结果217第五章第五章 选择结构程序设计选择结构程序设计#include void main()int a=4,b=3,c=5,t=0;if(ab)t=a;a=b;b=t;if (ac)t=a;a=c;c=t;printf(%d,%d,%dn,a,b,c);3.写出下列程序的运行结果写出下列程序的运行结果#include void main()int i=1,j=1,k=1;if (j+|k+)&i+)printf(“%d,%d,%dn”,i,j,k);#include void main()int x,y=5;if (x=y!=0)printf(“%d n”,x);else printf(“%d n”,x+2);结果:结果:5,0,3结果:结果:2,2,1结果:结果:1#include 3.写出下列程序的运行结18第五章第五章 选择结构程序设计选择结构程序设计例例 考虑下面程序输出结果考虑下面程序输出结果:#include stdio.h void main()int x=100,a=10,b=20;int v1=5,v2=0;if(ab)printf(“%d”,a);else printf(“%d”,b);printf(“%d”,ab?a:b);表达式表达式1取表达式取表达式2值值取表达式取表达式3值值非非0=0条件运算符可嵌套条件运算符可嵌套 如如 x0?1:xb?a:cd?c:d ab?a:(cd?c:d)表达式表达式1、表达式、表达式2、表达式、表达式3类型可不同,表达式值取较高类型可不同,表达式值取较高的类型的类型例例 x?a:b /x=0,表达式值为表达式值为b;x0,表达式值为表达式值为a xy?1:1.5 /xy ,值为值为1.0;xb)p20第五章第五章 选择结构程序设计选择结构程序设计读程序,写出程序完成的功能读程序,写出程序完成的功能#include#includevoid main()void main()int a,b,max;int a,b,max;printf(printf(请输入两个数请输入两个数请输入两个数请输入两个数a a和和和和b:);b:);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);max=ab?a:b;max=ab?a:b;printf(max=%dn,max);printf(max=%dn,max);找出找出a,ba,b两个两个数中的大数数中的大数printf(max=%dn,max=ab?a:b);printf(max=%dn,max=ab?a:b);printf(max=%dn,max=ab?a:b);printf(max=%dn,max=ab?a:b);printf(max=%dn,ab?a:b);printf(max=%dn,ab?a:b);printf(max=%dn,ab?a:b);printf(max=%dn,ab?a:b);读程序,写出程序完成的功能#include21第五章第五章 选择结构程序设计选择结构程序设计switchswitch语句(开关分支语句)语句(开关分支语句)v一般形式:一般形式:switch(表达式表达式)case E1:语句组语句组 1;break;case E2:语句组语句组 2;break;.case En:语句组语句组 n;break;default:语句组语句组;break;根据表达式的不同值,根据表达式的不同值,根据表达式的不同值,根据表达式的不同值,选择不同的程序分支,选择不同的程序分支,选择不同的程序分支,选择不同的程序分支,又称开关语句又称开关语句又称开关语句又称开关语句。允许任何类允许任何类型型可包含多个可可包含多个可执行语句,且执行语句,且不必加不必加 常量表达式常量表达式值必须互值必须互不相同,与表达式的不相同,与表达式的类型应一致类型应一致 default语句可语句可以省略不用。以省略不用。switch语句(开关分支语句)switch(表达式)根据22第五章第五章 选择结构程序设计选择结构程序设计switchswitch语句(开关分支语句)语句(开关分支语句)v执行过程执行过程1.1.计算表达式的值;计算表达式的值;2.2.若与若与 常量表达式常量表达式EiEi的值一致,则从语句的值一致,则从语句i i开始开始执行,直到遇到执行,直到遇到breakbreak语句语句或或switchswitch的的;3.3.若与若与 任何常量表达式值均不一致时则执行任何常量表达式值均不一致时则执行defaultdefault语句或后续语句语句或后续语句。switch语句(开关分支语句)1.计算表达式的值;23第五章第五章 选择结构程序设计选择结构程序设计在在“switch”switch”语句中,语句中,“case case 常量表达式常量表达式”只相只相当于一个语句标号,表达式的值和某标号相等则当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句转向该标号执行,但不能在执行完该标号的语句后自动跳出整个后自动跳出整个switch switch 语句,因此会继续执行所语句,因此会继续执行所有后面语句的情况有后面语句的情况。为此,语言提供了一种为此,语言提供了一种 breakbreak语句语句,其功能是,其功能是可以跳出它所在的可以跳出它所在的switchswitch语句。语句。说明:说明:P105在“switch”语句中,“case 常量表达式”只相当于一24第五章第五章 选择结构程序设计选择结构程序设计v说明:说明:l表达式可以是整型、字符型、枚举型表达式可以是整型、字符型、枚举型,为实型时自动取整为实型时自动取整lE1,E2,EnE1,E2,En是是常量表达式常量表达式,且值必须互不相同且值必须互不相同,与表达式,与表达式的类型应一致的类型应一致l必须用必须用breakbreak跳出跳出lcasecase后可包含多个可执行语句,且不必加后可包含多个可执行语句,且不必加 lswitchswitch可嵌套可嵌套l多个多个casecase可共用一组执行语句可共用一组执行语句如:如:case A:case B:case C:printf(“score60n”);break;.说明:如:25第五章第五章 选择结构程序设计选择结构程序设计例例 switch(score)case 5:printf(“Very good!”);case 4:printf(“Good!”);case 3:printf(“Pass!”);case 2:printf(“Fail!”);default :printf(“data error!”);score为为4时,输出:时,输出:Good!Pass!Fail!data error!score为为1时,输出:时,输出:data error!score为为5时,输出:时,输出:Very good!Good!Pass!Fail!data error!例 switch(score)score为4时,输出:26第五章第五章 选择结构程序设计选择结构程序设计例例 void main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;case 2:a+;b+;break;printf(a=%d,b=%dn,a,b);printf(a=%d,b=%dn,a,b);运行结果:运行结果:a=2,b=1a=2,b=1运行结果:运行结果:a=2,b=1运行结果:运行结果:a=2,b=2a=2,b=2例 void main()运行结果:运行结果:运行结果:27第五章第五章 选择结构程序设计选择结构程序设计思考:思考:思考:思考:编写程序实现下列功能:从键盘输入整数编写程序实现下列功能:从键盘输入整数编写程序实现下列功能:从键盘输入整数编写程序实现下列功能:从键盘输入整数x x,判断,判断,判断,判断x x是是是是否大于否大于否大于否大于1010,若是,继续判断,若是,继续判断,若是,继续判断,若是,继续判断x x是否大于是否大于是否大于是否大于100100,若大于,则输出,若大于,则输出,若大于,则输出,若大于,则输出 “xx100”100”;若;若;若;若x x不大于不大于不大于不大于1010,则输出,则输出,则输出,则输出“x=x10)if(x10)if(x100)printf(x100);if(x100)printf(x100);else printf(x=10);else printf(x10)if(x10)if(x100)printf(“x100”);if(x100)printf(“x100”);else printf(“x=10);else printf(“x=10);思考:编写程序实现下列功能:从键盘输入整数x,判断x是否大于28第五章第五章 选择结构程序设计选择结构程序设计P98 例5.1 例5.3 例5.4 例5.5 P98 例5.1 例5.3 例5.430第五章第五章 选择结构程序设计选择结构程序设计练习:练习:P111 5.3 作业:作业:5.5 5.6练习:P111 5.3 31第五章第五章 选择结构程序设计选择结构程序设计第五章 结束第五章 结束
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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