ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:27.80KB ,
资源ID:1935692      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1935692.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(逻辑运算和判断选取控制.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

逻辑运算和判断选取控制.docx

1、逻辑运算和判断选取控制第四章 逻辑运算和判断选取控制4 1 关系运算符和关系表达式关系运算 是逻辑运算中比较简单的一种。所谓 “关系运算 ”实际上是 “比较运 算”将两个值进行比较,判断比较的结果是否符合给定的条件。例如, a 3是一个关系表达式,大于号()是一个关系运算符,如果 a的值为5,则满足给定的a3”条件,因此关系表达式的值为 真”(即 条件满足”);如果a的值为2,不满足a3”条件,则称关系表达式的值为 假”4.1.1 关系运算符及其优先次序C 语言提供 6种关系运算符:(1) (小于)(2) (大于)(4) =(大于或等于)(5) = =(等于)(6) !=(不等于)关于优先次序

2、:1 .前4种关系运算符(, =)的优先级别相同,后两种也相同。前 4种高于后2种。例如, 优先于=”。而、”与2”优先级相同。2.关系运算符的优先级低于算术运算符。3. 关系运算符的优先级高于赋值运算符。 高 T 低算术运算符 关系运算符 赋值运算符例如: ca+b 等效于 c(a+b)ab!=c 等效于 (ab)!=ca=bc 等效于 a=( bb, a + b b+ c,( a= 3) ( b=5) , a v b,( a b)( b=0”的值为 真” C语言没有逻辑型数据(Pascal语言以True表示 真”,以False表示 假”。PASCA和FORTRAN 等语言都有逻辑型变量和逻

3、辑型常量) ,以1代表真”,以0”代表假”。例如,若a=3, b=2, c=1,则:ab 的值为 ”真”,表达式的值为 1。(ab) =c的值为 真”(因为ab的值为1,等于c的值),表达式的值为1。b + cb d 的值为 1。f = a bc f的值为0 (因为 运算符是自左至右的结合方向,先执行 a b,得值为1,再执行关系运算:“ c”得值0,赋给f42逻辑运算符和逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。下面介绍C语言中的逻辑运算符和逻辑运算。4.2.1逻辑运算符及其优先次序C 语言提供三种逻辑运算符:1 & 逻辑与(相当于其它语言中的 AND)2 | 逻辑或

4、(相当于其它语言中的 OR)3 ! 逻辑非(相当于其它语言中的 NOT)&和 | ”是 “双目(元)运算符 ”,它要求有两个运算量(操作数),如(ab) &xy), (ab) | ( xy)。 “! ”是“一目(元)运算符 ”,只要求有一个运算量,如!(a b)逻辑运算举例如下:a&b a|b!a若a,b为真,则a&b为真。若a,b之一为真,则a|b为真。 若a为真,则!a为假。下表为逻辑运算的的值。真值表”。用它表示当a和b的值为不冋组合时,各种逻辑运算所得到a b !a !b a&b a|bT T F F T TT FF TF F 在一个逻辑表达式中如果包含多个逻辑运算符,如! a&b|x

5、y&c优先次序: 高 t 低! t算术运算符t关系运算符t & t| t赋值运算符! a&b|xy&c (a b)&(xy) (a=b ) |(x=y) (!a) |( a b)( (!a ) &b)|(xy)&c)可写成: ab&xy 可写成: a=b|xy 可写成: ! a|a b4.2.2逻辑表达式如前所述,逻辑表达式的值应该是一个逻辑量 真”或假”。C语言编译系统在给出逻辑运算结果时,以数值 1代表“真”,以0代表“假”,但在判断一个量是否为 “真”时, 以0代表“假” ,以非0代 表“真”。即将一个非零的数值认作为 “真”。例如:1若a = 4,则! a的值为0。因为a的值为非0,被

6、认作 真”,对它进行 非”运算,得 假”,假” 以0代表。2若a=4,b=5,则a&t的值为1。因为a和b均为非0,被认为是 真”,因此a&t的值也为 真”, 值为1。3a、b值同前,a|b的值为1。4a、b值同前,! a|b的值为1。54&0|2的值为1。通过这几个例子可以看出,由系统给出的逻辑运算结果不是 0就是1,不可能是其它数值。而在逻辑表达式中作为参加逻辑运算的运算对象 (操作数)可以是 0(“假”)或任何非 0的数值(按“真” 对待)。如果在一个表达式中不同位置上出现数值, 应区分哪些是作为数值运算或关系运算的对象,哪些作为逻辑运算的对象,例如5 3&2|8 V 4-!0表达式自左

7、至右扫描求解。首先处理 53”(因为关系运算符优先于 &)。在关系运算符两侧的5和3作为数值参加关系运算, ” 53”的值为: 1。再进行 ”1&2”的运算,此时 1和2均是逻辑运算对 象,均作 “真”处理,因此结果为 1。再往下进行 “1|84-!0 ”的运算。根据优先次序,先进行 “!0” 运算得1,因此,要运算的表达式变成: “1|8 V 4-1”,即“1|83 ”,关系运算符 V”两侧的8和3作为数值参加比较,8b) & (n=cd)当a=1, b=2,c=3,d=4,m和n的原值为1时,由于 a b的值为0,m=0而n=cd不被执行,因此n 的值不是 0而仍保持原值 1 。这点请读者

8、注意。熟练掌握C语言的关系运算符和逻辑运算符后,可以巧妙地用一个逻辑表达式来表示 一个复杂的条件。例如,判别某一年year是否闰年。闰年的条件是符合下面二者之一:能被 4整除,但 不能被100整除。能被4整除,又能彼400整除。 可以用一个逻辑表达式来表示:year % 4= 0&year % 100 !=0|year % 400=0当year为某一整数值时,上述表达式值为真( 1),则year为闰年;否则为非闰年。可以加一个 “!”用来判别非闰年:!( year % 4= 0&year% 100 !=0|year % 400=0)若表达式值为真( 1), year 为非闰年。也可以用下面逻辑

9、表达式判别非闰年:( year%4! =0) | (year%100=0|year %400!=0)表达式为真,year为非闰年。请注意表达式中右面的括弧内的不同运算符(%,!, &、=)的运算优先次序。4 . 3 if语句if 语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操 作之一。4.3.1 if语句的三种形式C 语言提供了三种形式的 if 语句:1 if (表达式) 语句例如:if (xy) printf (” d” ,x ) 这种 if 语句的执行过程见图2if (表达式) 语句 1 else 语句2 例如: if(xy) printf (”d”,x

10、);else printf ( ” d”,y );见图. if(表达式 1)语句 1else if(表达式 2 )语句 2else if(表达式 3 )语句 3else if(表达式 m)语句 melse语句 n流程图例如。if ( number500) cost= 0. 15;else if( number 300)cost=0 .10:else if( number 100)cost=0. 075;else if( number 50)cost =0.05;elsecost=0;说明:三种形式的 if 语句中在 if 后面都有 “表达式 ”,一般为逻辑表达式或关系表达式。例如,if ( a

11、=b&.x=y ) printf ( ”a=b,x=y ”);系统对表达式的值进行判断, 若为 0,按“假” 处理,若为非 0,按“真 ”处理,执行指定的语句。 假如有以下语句: if ( 3 )printf( “ok. ”); 是合法的,执行结果输岀 ”ok”。因为表达式的值为3,按 真”处理。由此可见,表达式的 类型不限于逻辑表达式,可以是任意的数值类型(包括整型、实型、字符型、指针型数 据)。例如,下面的语句也是合法的:if ( a) printf ( ” d”, a);执行结果:输岀a的Ascii码97。2第二、第三种形式的讨语句中,在每个 else 前面有一分号,整个语句结束处有一分

12、 号。例如:if ( x 0) printf( “%f”,x);else printf( “%f”,-x);这是由于分号是 C语句中不可缺少的部分,这个分号是让语句中的内卧语句所要求 的。如果无此分号,则岀现语法错误。但应注意,不要误认为上面是两个语句( if 语句和 else 语句)。它们都属于同一个 if 语句。 else 子句不能作为语句单独使用,它必须是 if 语句的一 部分,与 if 配对使用。3在if和else后面可以只含一个内嵌的操作语句(如上例),也可以有多个操作语 句,此时用花括号 “ ”将几个语句括起来成为一个复合语句。如:if (abc&bca&cab)s=0. 5*(a + b+c);area=sqrt (s*(s-a)*(s-b)*(s-c) );printf (area =% 6.2f ”,area ) ;else printf ( ”it is not a trilateral ”);注意在 外面不需要再加分号。 因为 内是一个完整的复合语句, 不需另附加分号。例4

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1