c语言程序设计第四章.ppt
《c语言程序设计第四章.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计第四章.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 选择结构4.1 关系运算和逻辑运算 选择结构是程序基本控制结构之一。C语言中的选择结构包括三种条件语句:lif 语句语句lswitch语句语句l 条件表达式语句条件表达式语句4.1.1 C语言中的逻辑值语言中的逻辑值判断逻辑值:非判断逻辑值:非0值为真,值为真,0值为假。值为假。表达逻辑值:表达逻辑值:“1”为真,为真,“0”为假。为假。.1.2 关系运算符和关系表达式关系运算符和关系表达式.六个关系运算符六个关系运算符运算符运算符意义意义优先级优先级结合性结合性 小于小于10自左至右自左至右 大于大于10自左至右自左至右=大于等于大于等于10自左至右自左至右=等于等于9自左至右自左至
2、右!=不等于不等于9自左至右自左至右算术运算关系运算赋值运算2关系表达式关系表达式 关系表达式的值只有两个关系表达式的值只有两个:为真时值为1,为假值为0。例:表达式表达式 值值 2 0 0 3 2=4 0 1.0/3*3=1.0 0 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 a b !a !b a&b a b 真真 真真 假假 假假 真真 真真 真真 假假 假假 真真 假假 真真 假假 真真 真真 假假 假假 真真 假假 假假 真真 真真 假假 假假三种三种:&(与与),(或或)!(非非)其意义见真值表其意义见真值表4.1.3.1 C语言中的逻语言中的逻 辑运算符辑运算符a&b 当当a,
3、b均为均为1时时,才为才为1a b 当当a,b中有一个为中有一个为1时时,才为才为1!a 当当a为为1,!a为为0,反之为反之为1.由此看到由此看到:和和&为双目运算符为双目运算符.!为单目运算符。为单目运算符。逻辑运算符运算规则:逻辑运算符运算规则:&仅当两个操作对象均非仅当两个操作对象均非0结果为结果为1,否则结果为,否则结果为0。|仅当两个操作对象均为仅当两个操作对象均为0时结果为时结果为0,否则结果为,否则结果为1。!若操作对象值非若操作对象值非0,结果为,结果为0;对象值为对象值为0,结果为,结果为1。优先级定义优先级定义:2.&和和低于关系运算符。低于关系运算符。!高于算术运算符高
4、于算术运算符1.!(非非)优先于优先于&(与与).&优先于优先于即即:!&例例:!a&b xy&c (!a)&b)(xy)&c)1.逻辑表达式的值与关系表达式值一样,真为逻辑表达式的值与关系表达式值一样,真为1,假为假为0。例例:a=4 则则!a 值为值为0.此处只要此处只要a 0,为真为真.则则!a值值为为0.a=4,b=5 a&b为为1 前面已定义了逻辑表达式前面已定义了逻辑表达式,以下看一看逻辑表以下看一看逻辑表达式的值及具体的运算。达式的值及具体的运算。4&0 2 为为1.总之总之,在逻辑运算中在逻辑运算中,非非0值参加逻辑运算时被值参加逻辑运算时被看成看成1处理处理.a=4,b=5
5、a b为为1 a=4,b=5!a b为为1系统优化:系统优化:exp1|exp2 中中,若若exp1为为1,不再计算不再计算exp2,直接得直接得1。exp1&exp2中中,若若exp1为为0,不再计算不再计算exp2,直接得直接得0。2.一个逻辑表达式中的逻辑运算符并不是一定全部一个逻辑表达式中的逻辑运算符并不是一定全部执行执行.如如:a&b&c.则当则当a=0(假假)时时,b,c不需判断。不需判断。当当a=1,b=0,则不需判则不需判c.又又如如:a b c.当当a=1时时,b,c均不必判别。均不必判别。逻辑表达式举例逻辑表达式表达式值求值后a,b,c值A=a&ay)printf(%d,x
6、)形式形式1 if(表达式表达式)语句语句A其流程图其流程图:形式形式2 if(表达式表达式e)语句语句A else 语句语句B功能功能:表达式为非表达式为非0,执行语句执行语句A;表达式为表达式为0,执行语句执行语句B表达式表达式语句语句A语句语句B 0=0例例:if(xy)printf(%d,x);else printf(%d,y);注注1.表表达达式式e:可可以以是是关关系系表表达达式式,逻逻辑辑表表达达式式,或或任任何何类类型型表达式。其作用是控制整个语句的执行路线。表达式。其作用是控制整个语句的执行路线。2.语语句句S1和和语语句句S2可可以以是是任任何何类类型型的的单单个个语语句句
7、(包包括括空空语语句句和和复复合合语语句句)。单单个个语语句句必必须须加加“;”复复合合语语句句外面不用加外面不用加“;”。3.例如,以下语句是允许的例如,以下语句是允许的:if(x=0)y=x;s=x+y;else y=-x;s=0;复合语句复合语句复合语句复合语句3.整个整个if 语句,在语法上是一个语句。语句,在语法上是一个语句。一个语句一个语句例例4.1 分别用双目if语句和单目if语句求两个变量的最小值。解解1:用双目if语句,程序如下:#include void main()int x,y,min;printf(n Input x y:);scanf(%d%d,&x,&y);if(
8、xy)min=x;else min=y;printf(n min(%d,%d)=%d,x,y,min);如从键盘上输入:34 89则输出结果:min(34,89)=34解解2:用单目if语句,程序如下:#include void main()int x,y,min;printf(n Input x y:);scanf(%d%d,&x,&y);min=x;if(miny)min=y;printf(n min(%d,%d)=%d,x,y,min);解解3:进行变量交换进行变量交换#include void main()int x,y,t;printf(n Input x y:);scanf(%d%
9、d,&x,&y);if(xy)t=x;x=y;y=t;/或或t=x,x=y,y=t;printf(n min=%d,x);例例4.2.从键盘上输入一字符,判断它是否是英文字母,若是输出Y,否则输出 N。解解.#include#include void main()char c;printf(n Input a char:);c=getch();putchar(n);if(A=c&c=Z)|(a=c&c=z)putchar(Y);else putchar(N);getch();括号内不能写成:A=c=Z|a=cb)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b
10、=c;c=t;printf(%5.2f,%5.2f,%5.2f,a,b,c);运行情况如下:运行情况如下:3,7,1 1.00,3.00,7.00if语句的S1和S2可以是任何类型的语句。特别地,也可以是if语句(单目的或双目的)。当当语语句句S1和和(或或)语语句句S2又是又是if语句时,就构成了语句时,就构成了if语句的嵌套语句的嵌套。注注.嵌套式if语句中,每个else通常是同它前边最近的那个if相匹配。程序书写时注意层次关系,养成良好的习惯。if(e1)if(e2)else else 两层if 语句的嵌套4.2.2.if语句的嵌套语句的嵌套例例4.4 有一函数有一函数y=1 (x0)编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第四
限制150内