欢迎来到天天文库
浏览记录
ID:50158452
大小:1.71 MB
页数:92页
时间:2020-03-09
《程序设计基础 教学课件 作者 C语言 教学课件 作者 杨俊清_第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章选择程序设计4.1关系运算和逻辑运算4.2分支流程控制语句4.3选择语句的嵌套4.4选择结构程序设计举例习题4.1关系运算和逻辑运算关系运算是逻辑运算中比较简单的一种。所谓“关系运算”,实际上是“比较运算”。将两个值进行比较,判断其比较的结果是否符合给定的条件。例如,a>3是一个关系表达式,大于号(>)是一个关系运算符,如果a的值为5,则满足给定的“a>3”条件,因此关系表达式的值为“真”(即“条件满足”);如果a的值为2,不满足“a>3”条件,则称关系表达式的值为“假”。4.1.1关系运算符和关系表达式C语言提供6种关系运算符: ①<
2、(小于); ②<= (小于或等于); ③> (大于); ④>= (大于或等于); ⑤==(等于); ⑥!=(不等于)。关于优先次序:(1)前4种关系运算符(<,<=,>,>=)的优先级别相同,后2种的也相同。前4种高于后2种。例如,“>”优先于“==”,而“>”与“<”优先级相同。(2)关系运算符的优先级低于算术运算符。(3)关系运算符的优先级高于赋值运算符。 以上关系见图4-1。 用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式等)连接起来的式子,称为关系表达式。例如,下面都是
3、合法的关系表达式:a>b,a+b>b+c,(a=3)>(b=5),'a'<'b',(a>b)>(b=0”的值为“真”。C语言没有逻辑型数据(Pascal语言以True表示“真”,以False表示“假”。Pascal和FORTRAN等语言都有逻辑型变量和逻辑型常量),以1代表“真”,以“0”代表“假”。例如,a=3,b=2,c=1,则: 关系表达式“a>b”的值为“真”,表达式的值为1。 关系表达式(a>b)==c的值为“真
4、”(因为a>b的值为1,等于c的值),表达式的值为1。 关系表达式b+cb)AND(x>y)如果a>b且x>y,则上述逻辑表达式的值为“真”。 下面介绍C语言中的逻辑运算符和逻辑运算。C语言提供三种逻辑运算符: ①&&逻辑与(相当于其他语言中的AND); ②
5、
6、逻辑或(相当于其他语言中的OR); ③!逻辑非(相当于其他语
7、言中的NOT)。“&&”和“
8、
9、”是“双目(元)运算符”,它要求有两个运算量(操作数),如(a>b)&&(x>y),(a>b)
10、
11、(x>y)。“!”是“一目(元)运算符”,只要求有一个运算量,如!(a>b)。 逻辑运算举例如下:a&&b//若a、b为真,则a&&b为真a
12、
13、b//若a、b之一为真,则a
14、
15、b为真!a//若a为真,则!a为假 表4-1为逻辑运算的“真值表”。用它表示当a和b的值为不同组合时,各种逻辑运算所得到的值。表4-1逻辑运算的真值表1逻辑运算符的优先次序如下:(1) !(非)→&&(与)→(或),即“!”为三者中最高的。
16、(2)逻辑运算符中的“&&”和“
17、
18、”低于关系运算符,“!”高于算术运算符,见图4-2。图4-2优先次序图2例如:(a>b)&&(x>y)//可写成a>b&&x>y(a==b)
19、
20、(x==y)//可写成a==b
21、
22、x==y(!a)
23、
24、(a>b)//可写成!a
25、
26、a>b如前所述,逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”;但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”,即将一个非零的数值认作为“真”。例如:(1)若a=4,则!a的值为0。因为a的值为非0,被认作
27、“真”,对它进行“非”运算,得“假”,“假”以0代表。(2)若a=4,b=5,则a&&b的值为1。因为a和b均为非0,被认为是“真”,因此a&&b的值也为“真”,值为1。(3) a、b值同前,a
28、
29、b的值为1。(4) a、b值同前,!a
30、
31、b的值为1。(5) 4&&0
32、
33、2的值为1。通过这几个例子可以看出,由系统给出的逻辑运算结果不是0就是1,不可能是其他数值。而在逻辑表达式中作为参加逻辑运算的运算对象(操作数)可以是0(“假”)或任何非0的数值(按“真”对待)。如果在一个表达式中不同位置上出现数值,应区分哪些作为数值运算或关系运算的对象,哪些作为
34、逻辑运算的对象。例如:5>3&&8<4-!0表达式自左至右扫描求解。首先处理“5>3”(因为关系运算符优先于&&)。在关系
此文档下载收益归作者所有