C语言关系运算符和位运 算符

上传人:f****u 文档编号:115641756 上传时间:2019-11-14 格式:PPT 页数:42 大小:230.50KB
返回 下载 相关 举报
C语言关系运算符和位运 算符_第1页
第1页 / 共42页
C语言关系运算符和位运 算符_第2页
第2页 / 共42页
C语言关系运算符和位运 算符_第3页
第3页 / 共42页
C语言关系运算符和位运 算符_第4页
第4页 / 共42页
C语言关系运算符和位运 算符_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《C语言关系运算符和位运 算符》由会员分享,可在线阅读,更多相关《C语言关系运算符和位运 算符(42页珍藏版)》请在金锄头文库上搜索。

1、1 第3章 关系运算符和位运算符 2 本节主要内容介绍 u 3.5.5 关系运算符和关系表达式 u 3.5.6 逻辑运算符和逻辑表达式 u 3.5.7 条件运算符和条件表达式 u 3.5.9 位运算符 u 3.5.10 求字节运算符 3 3.5.5关系运算符和关系表达式 1.关系运算符及其优先次序 1. = (大于或等于) 5. = (等于) 6. != (不等于) 优先级相同(高) 优先级相同(低) 说明: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赋值运算符 4 关系运算符和关系表达式 如如: ca+b : ca+b ab!=c ab!=c a=bc 建议:使用建议:使用(

2、)( )能使关系更清晰!能使关系更清晰! c(a+b) c(a+b) (ab)!=c(ab)!=c a=(bc) 5 2.关系表达式 用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式,字符表达式) 接起来的式子,称关系表达式 例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值为“真”,表达式的值为1。 a=3,b=2,c=1 则关系表达式“(ab)=c”的值为1 C语言中没有专用 的逻辑值,1代表 真,0代表假 关系运算符和关系表达式 6 关系运算符和关系表达式 例例 intint i=1, j=7,a; i=1, j=7,a; a=i+(j%4!

3、=0); a=i+(j%4!=0); 则则 a a的值为的值为 例例 intint a=3,b=2,c=1,d,f; a=3,b=2,c=1,d,f; ab ab (ab)=c (ab)=c b+cb f=abc f=abc (a=5)(bb)(b 0 a 0 结果为结果为 A 100 A 100 结果为结果为 例例 若若a=0; b=0.5; x=0.3;a=0; b=0.5; x=0.3; 则则 a a=90 | grade0 能被400整除 (year%4=0执行表达式 (m=59)后,n的值是( ) A)1 B)2 C)3 D)4 4、已有定义语句:int m=0,n=3;执行表达式

4、(m=53)|(n=7=100) 则表达式 !a|b 的值为( )。 (A) 0 (B) 1 (C) 2 (D) 3 7设整型变量x为7,使整型变量y不为2的表达式是( ) 。 (A) y=x%3 (B) y = x/3 (C) y =(+x)/3 (D) y=8-(-x) 18 3.5.7条件运算符和条件表达式 C语言提供了一个简单的条件赋值语句或条件表达式。 l一般形式 表达式1?表达式2: 表达式3 l功能: 先判表达式1, 若非0,则值为表达式2的值,否则为表 达式3的值。 n条件运算符的优先级高于赋值运算符,但低于关系运算 符和逻辑运算符。例如: a=1; b=2; c = ab?p

5、rintf(“%d“,a):printf(“%d“,b) n表达式2、表达式3的类型可以不同,此时条件表达 式值取二者中较高的类型。 如: xy?1:1.5 /若xy, 则值为1.0; 若xb)?a:b; printf(“max=%fn“,max); 21 条件运算符和条件表达式 例:输入一个字符,判别它是否大写字母,如果是,将它转换 成小写字母;如果不是,不转换。然后输出最后得到的字 符。 程序: #include void main() char ch; scanf(“%c“, ch=(ch=A printf(“%cn“,ch); 运行结果: 输入:A 输出:a 22 n应用运算符和表达式

6、应注意 运算符功能 运算符与运算对象的关系 n要求运算对象的个数 n要求运算对象的类型 运算符的优先级 运算的结合方向 运算结果的类型 混合运算中的类型转换 条件运算符和条件表达式 23 3.5.9位运算符 概念 l 位运算是指按二进制位进行的运算。因为在系 统软件中,常要处理二进制位的问题。 l 例如:将一个存储单元中的各二进制位左移或 右移一位,两个数按位相加等。 l 语言提供位运算的功能,与其他高级语言( 如PASCAL)相比,具有很大的优越性。 24 位运算符 语言提供的位运算符有: 运算符 含义 运算符 含义 按位与 取反 | 按位或 ) 右移运算符是a2表示将a的各二进制位右移2位

7、,移到右 端的低位被舍弃,右移时,对于正整数和无符号整数,高位 (左端)补0; 对于负数,高位(左端)补1(补码表示法最高 位1表示负数)。例如: char a=41, b; b=a3; 用二进制来表示, a的值为 0010 1001 (十进制数41) 执行语句b=a3;之后b 的值为 0000 0101 (十进 制数5=41/2/2/2,注意是整数除),运算后a的值并没有改 变仍为41)。右移时,每右移1位,相当于除以 2(整数除) 。 35 7. 位运算赋值运算符 它们是: =, 2, b|=c 相当于 b=b|c 8. 位运算优先关系 例如:语句 a=10 执行后a的值为8。“=b|bc

8、 的值为( )。 4int a, b; 则表达式 (a=2, b=5, a*2, + b, a+b) 的值 是_。 5int m=5, n=3; 则表达式 (m+1, n+1, (-m)+(n-) 的 值是_。 39 课 堂 练 习 6若有定义:int a,b; double x,则以下不符合C语言语法 的表达式是( )。 (A) x%(-3) (B) a+=-2 (C) a=b=2 (D) x=a+b 7若有定义:int b=7; float a=2.5, c=4.7; 则表达式 a+(b/2*(int)(a+c)/2)%4 的值是( )。 (A) 2.5 (B) 3.5 (C) 4.5 (

9、D) 5.58 8已定义 char c = A ; 则正确的赋值表达式是( )。 (A) c=028 (B) c=(c+)%4 (C) c+1=66 (D) c+=127- 40 课 堂 练 习 9定义:int x=4,y=2,z=0; 则表达式 (x-y=y)| (y=z) 的值是( )。 (A) 1 (B) 0 (C) 2 (D) 4 10下面叙述正确的是( )。 (A) 强制类型转换运算的优先级高于算术运算 (B) 若a和b是整型变量, (a+b)+是合法的 (C) A* B 是不合法的 (D) “A“+ “B“是合法的 11若a为奇数时,表达式为“真“, a为偶数时, 表达式“假 “。

10、则不能满足要求的表达式是( )。 (A) a%2=1 (B) !(a%2=0) (C) !(a%2) (D) a%2 41 课 堂 练 习 12判定逻辑值为“真“的最准确叙述是( )。 (A) 1 (B) 大于0的数 (C) 非0的整数 (D) 非0的数 13下面叙述中,错误的是( )。 (A) 算术运算对象不包含函数 (B) %(模运算符)的运算对象只能为整型量 (C) 算术运算符的结合方向是“自左至右“ 42 课 堂 练 习 14已定义 double k=3.6; 则正确的赋值表达式是( )。 (A) k=double(-3.6) (B) k%3 (C) k=k*(-1.0)=-3.6 (D) k+=k-=(k=1.2)*(k=3) 15设已定义 float a=2.0,b=3.0; 使a值为5.0的表达式是 ( )。 (A) a+= b (B) a*=b+2.0 (C) a/=b+2.0 (D) a-=b+2.0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号