C06第4章 逻辑运算与选择结构程序(1).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章逻辑运算和选择结构程序 “用户输入的数是否为三位的正整数?” “变量a是否为正数?” 这类问题的答案只有两个:“是”或者“否”。 先假设一个“结论”,如“变量a是正数”或者“变量a不是正数”,然后根据事实对结论进行判断从而得到一个或为真或为假的值。 对结论进行判断,并得出一个或为真或为假的值的过程也是一种运算即逻辑运算。 “真”和“假”的编码 C语言中用“0”表示“假”,不为“0”的所有值都被认为是“真”。 被认为是“假”的“0”可能是整数0,浮点数0也可能是ASCII码为0的字符。 C语言中表示逻辑值的变量可以是任意的基本数据类型 。int i=3; float f=0.0; char ca=‘a’,cb=‘\0’; C语言中非0为“真”,但是“真”被认为是1。a = (3 2)时 a的值为1。 语句printf(%d,%d\n, a = (3 2), 3 2); 4.1关系操作符和关系表达式 C语言提供了6种关系操作符:(小于)、= (小于等于)、 (大于)、 = (大于等于)、 = = (等于)、!=(不等于)。 关系操作符进行的运算是“比较运算”,根据比较情况得出真或假的结果,是一种简单的逻辑运算。 4.1关系操作符和关系表达式 用关系操作符将两个表达式连接而成的式子就是关系表达式。a (b + c)、(a = = b) c、 a = = ( b c) 、(a = b) (c + d)等都是合法的关系表达式。6种关系操作符中前4种的优先级相同,后2种也相同,并且前4种高于后2种。 关系操作符的优先级低于算术运算符(先求值再关系运算)高于赋值操作符(赋值操作符的优先级仅比逗号操作符的优先级高)。 例4.1 关系表达式求值 (1)A Z (2) 3 -5u 0 字符型数据在比较大小时通常被看作整型,字符型数据的大小由其ASCII码的值决定。 3 -5u中-5u为无符号数,故3 -5u的类型也为无符号数。3 -5u不可能等于0,因此大于0,即3 -5u 0的值为1即真。 -5u即-5先用补码表示再被看做无符号数,两个正数相加的结果当然不会小于0)。 能用printf函数输出值的方式判断结果是否大于0吗?printf(“?”,3-5u); 例4.1 关系表达式求值 (3) a % 2 != 0 (4) 99 x 1000 x为2523 (3)当a为奇数时,a % 2值为1,表达式a % 2 != 0的值也为1即真,当a为偶数时,a % 2值为0,表达式a % 2 != 0的值也为0即假,显然关系表达式a % 2 != 0用于判断变量a是否为奇数。 (4) 操作符是左结合,故表达式99 x 1000等价于(99 x) 1000, x为2523时,子表达式99 x为真即值为1,原表达式变为1 1000,它的值为1即真,因此99 x 1000的值为1即真。 4.2.1 逻辑操作符 对于代数式99 x 1000,只有99 x和x 1000同时为真时它的值才为真。C语言中的逻辑与操作符可以反映这种关系,即C语言中表达式(x 99) (x 1000)与代数式99 x 1000等价。 逻辑运算符的操作数是逻辑量,而逻辑量只有真和假两个值,因此常用穷举法来说明逻辑操作符的运算规则,即所谓的真值表。 表4-1为逻辑与的真值表 代数式99 x 1000 与 逻辑表达式(x 99) (x 1000) 当代数式99 x 1000成立时, x 99为真且x 1000也为真,由真值表可知此时逻辑表达式(x 99) (x 1000)的值为真为1。 表4-1为逻辑与的真值表 当代数式99 x 1000不成立时,则x 99和x 1000至少有一个为假,由真值表可知此时逻辑表达式(x 99) (x 1000)的值也为假为0。 反之亦然! 逻辑或操作符|| 逻辑或操作符||表示“或者”的关系。 a和b只要有一个为真时a || b的值就为真为1,只有a和b同时为假时,a || b的值才为假为0。 例4-2 用C表达式表示结论“变量a的绝对值大于5”。 分析:当|a| 5时有a 5或者a -5, 因此相应的C表达式为(a 5) || (a -5),当然也可用fabs(a) 5表示。 C语言中还有一个称为逻辑非!的逻辑操作符。逻辑非!是一个单目操作符。当a为真(非0)时,!a的值为假(0);当a为假(0)时,!a的值为真(1)。 如与“变量a的绝对值不大于5”相应的表达式可以写成 !((a5)|| (a -5)), 当然也可写作(a = 5) (a = -5)。 逻辑操作符的优先级 逻

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档