版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022年3月30日星期三第五讲 运算符和表达式讲师讲师:程浩学习目标1.熟练应用各种算术运算符的优先级和结合性n2.熟练应用各关系运算符的优先级和关系表达式值的判定n3.熟练应用各逻辑运算符的优先级和逻辑表达式值的判定n4.熟练应用赋值运算符的结合性和优先级n5.熟练应用自增/减运算符的作用、自增/减运算的前置方式和后置方式的区别n6.理解逗号表达式的作用及其值的计算7.了解C语言的常用运算符的优先级 学习重点:n算术运算符的优先级和结合性n关系运算符的优先级和关系表达式值的判定n逻辑运算符的优先级和逻辑表达式值的判定学习难点:n自增/减运算符的作用、自增/减运算的前置方式和后置方式的区别一
2、、算术运算符及算术表达式(1)n算术运算符算术运算符+ :加法运算符。如:加法运算符。如1+2的结果为的结果为3。- :减法运算符,或负值运算符。如:减法运算符,或负值运算符。如5-3、-2的结果的结果 分别为分别为2和和-2。* :乘法运算符。如:乘法运算符。如2*3的结果为的结果为6。/ :除法运算符。如:除法运算符。如4/2的结果为的结果为2。% :模运算符,或称取余运算符,要求:模运算符,或称取余运算符,要求%两侧均为整两侧均为整型数据。如型数据。如 8%3的结果为的结果为2。n注意注意运算的数据都是整型数据时,结果为整型,如果有实运算的数据都是整型数据时,结果为整型,如果有实数,则结
3、果为数,则结果为double型。型。模运算符要求运算符两侧必须为整型数据,如果不是模运算符要求运算符两侧必须为整型数据,如果不是整型数据可以采用强制类型转换。例如整型数据可以采用强制类型转换。例如x为为float型,型, (int)x%2一、算术运算符及算术表达式(2)n算术表达式算术表达式用用算术运算符算术运算符将数据对象连接起来的式子,称为将数据对象连接起来的式子,称为算术算术表达式表达式。表达式的运算按照运算符的结合性和优先级。表达式的运算按照运算符的结合性和优先级来进行。来进行。C规定了运算符的结合方向,即规定了运算符的结合方向,即结合性结合性。算术运算符的。算术运算符的结合性是结合性
4、是从左往右从左往右算。例如表达式算。例如表达式2+3+4,先算先算2+3C语言规定负值运算符优先级语言规定负值运算符优先级高于高于乘、除、模运算符,乘、除、模运算符,乘、除、模运算符优先级乘、除、模运算符优先级高于高于加、减运算符,当表达加、减运算符,当表达式中优先级相同时,按照运算符的结合性。式中优先级相同时,按照运算符的结合性。n例如例如:3+4*3/-2,计算次序:,计算次序:-、*、/、+。n如果需要先计算优先级低的可以使用小括号如果需要先计算优先级低的可以使用小括号“()()”,小括号的优先级最高,小括号的优先级最高。一、算术运算符及算术表达式(3)n例题例题程序程序L5_1.C功能
5、:计算功能:计算a+3*-2/(int)(a+b)-12的结果,其中的结果,其中a=1.7,b=2.4。#include void main() float a=1.7,b=2.4,s;s= a+3*-2/(int)(a+b)-12printf(result is %fn,s);二、关系运算符及关系表达式(1)n关系运算符关系运算符4。= :小于等于运算符。如:小于等于运算符。如3 :大于运算符。如:大于运算符。如xy。= :大于等于运算符。如:大于等于运算符。如x=0。= :等于运算符。如:等于运算符。如a= =b。!= :不等于运算符。如:不等于运算符。如y!=1。n两个数据在进行值的比较
6、,其结果不是两个数据在进行值的比较,其结果不是“真真”就是就是“假假”。n在在C语言中,任何语言中,任何非非0值为值为“真真”,0值为值为“假假”。关。关系运算的结果系运算的结果仅产生两个值仅产生两个值:1表示表示“真真”,0表示表示“假假”。 二、关系运算符及关系表达式(2)n关系运算符结合性与优先级关系运算符结合性与优先级关系运算符的结合性为关系运算符的结合性为“自左至右自左至右”。 例如例如543,计算时先算,计算时先算54,条件成立结果为,条件成立结果为1,再与再与3比较,即比较,即13,条件不成立,所以最终结果为,条件不成立,所以最终结果为0。关系运算符中关系运算符中、=的优先级相等
7、,的优先级相等,= =、!=优先级相等,且前者优先级相等,且前者高于高于后者。后者。 例如例如1= =43,“”的优先级高于的优先级高于“= =”,所以,所以43结果为结果为1,1= =1结果为结果为1。关系运算符的级别关系运算符的级别小于小于算术运算符。例如算术运算符。例如2+35-1,运算次序为运算次序为+、。二、关系运算符及关系表达式(3)n用关系运算符将两个数据或表达式连接起来的式子,用关系运算符将两个数据或表达式连接起来的式子,称为称为关系表达式关系表达式。关系表达式的值为。关系表达式的值为1或或0。n例例5.2 阅读程序,写出结果并演算。阅读程序,写出结果并演算。#include
8、void main() int a=5,b=4,c=3; int s,t; if (abc) s=a; else s=0; t=(a-cc+2= =0); printf(s=%d,t=%dn,s,t); n举一反三举一反三 :计算:计算2+4= =6*(2!=1)的结果。的结果。三、逻辑运算符及逻辑表达式(1)n逻辑运算符逻辑运算符逻辑运算表示两个数据或表达式之间的逻辑关系。逻辑运算表示两个数据或表达式之间的逻辑关系。C语言提供的语言提供的逻辑运算符逻辑运算符有三种:逻辑与运算符有三种:逻辑与运算符“&”、逻辑或运算符、逻辑或运算符“”、逻辑非运算符、逻辑非运算符“!”。逻辑运算的结果
9、也只有两个:逻辑运算的结果也只有两个:“真真”为为1和和“假假”为为0。n逻辑与逻辑与,即,即&:为便于理解,可以写为:为便于理解,可以写为“条件条件1&条件条件2”,则逻辑与运算结果为则逻辑与运算结果为“只有当条件只有当条件1成立成立并且并且条件条件2也成立也成立时,时,逻辑与逻辑与成立,结果为成立,结果为“真真”即值即值1,其余情况结果为,其余情况结果为“假假”即值即值0”。所以条件。所以条件1或条件或条件2只要有一个不成立,逻只要有一个不成立,逻辑与的结果都为辑与的结果都为“假假”。如。如(x3)&(x3) (x3),则,则x取值不是大于取值不是大于3的,即的,即
10、x小于等于小于等于3时,结果为时,结果为1,否则结果为,否则结果为0。三、逻辑运算符及逻辑表达式(3)n逻辑运算符#include void main()printf(%d,%d,%d,%dn,(43)&(51),(41),(43)&(51),(43)&(53) (51),(41),(43) (51),(43) (53),!(43); 运行结果 :1,0,0,01,1,1,00,1三、逻辑运算符及逻辑表达式(4)n逻辑运算符结合性与优先级逻辑运算符结合性与优先级逻辑运算符逻辑运算符“!”的结合性为的结合性为“自右至左自右至左”、“&”和和“”的结合性为的结合性为
11、“自左至右自左至右”。逻辑运算符的优先级为逻辑运算符的优先级为“!”高于高于“&”高于高于“”。例如表。例如表达式达式!(35)&(41),则,则!的运算结果为假、的运算结果为假、&的的运算结果为假,最终运算结果为假,最终的结果为假,即该表达式的值为的结果为假,即该表达式的值为0。“!”的优先级的优先级高于高于算术运算符,算术运算符,“&”和和“”的优先级的优先级低于低于关系运算符。例如:关系运算符。例如:3+1626)(2b!=0&!(a= =0)等价于等价于(ab)!=0)&(!(a= =0),如果如果a=4,b=3,结果为,结果为1。三、逻
12、辑运算符及逻辑表达式(4)n逻辑表达式逻辑表达式逻辑表达式的值为逻辑表达式的值为1或或0。由于。由于C语言编译系统在判断一个量为语言编译系统在判断一个量为“真真”、“假假”时,时,以以0为为“假假”,以非,以非0为为“真真”。所以逻辑运。所以逻辑运算符也可以直接连接数据,如算符也可以直接连接数据,如!4的结果为的结果为0、3&0的结果为的结果为0。例例5.3 阅读程序,写出结果并演算。阅读程序,写出结果并演算。 #include void main() int a=5,b=4,c=3; int s,t; if (ab&ac) s=a; else s=0; t=!(a-c12&a
13、mp;0); printf(s=%d,t=%dn,s,t); 举一反三举一反三 :计算:计算20&(3-2*4)的结果。的结果。4为非0,即为真!4!(真)假0三、逻辑运算符及逻辑表达式(5)n熟练掌握熟练掌握C语言的关系运算符和逻辑运算符,可以自语言的关系运算符和逻辑运算符,可以自如地描述各种复杂的条件。如地描述各种复杂的条件。n例如要判断某一年例如要判断某一年year是否是闰年,需要满足下列条是否是闰年,需要满足下列条件之一:件之一:该年可以被该年可以被4整除,但不能被整除,但不能被100整除。整除。该年可以被该年可以被400整除。整除。 则可以用逻辑表达式表示为:则可以用逻辑表达
14、式表示为: (year%4= =0&year%100!=0) (year%400= =0) 上述表达式成立则为闰年,否则为非闰年。上述表达式成立则为闰年,否则为非闰年。n试编程实现:输入一个年份,判断是否是闰年试编程实现:输入一个年份,判断是否是闰年。四、赋值运算符及赋值表达式(1)nC语言中最常见的赋值运算符是语言中最常见的赋值运算符是“=”,其作,其作用是将赋值运算符右边的表达式赋予左边用是将赋值运算符右边的表达式赋予左边的变量的变量 变量变量=表达式表达式n例如:例如:x=4。n赋值运算符的结合性为赋值运算符的结合性为从右至左从右至左,其优先,其优先级级低于低于算术运算符、关系运
15、算符和逻辑运算术运算符、关系运算符和逻辑运算符。算符。n例如例如 i=j=2+3;2+3;j=5;i=j四、赋值运算符及赋值表达式(2)n复合赋值运算算术运算符“+ * / %”和赋值运算符“=”的结合+=:加赋值运算符。如a+=3+1,等价于 a=a+(3+1)。-=:减赋值运算符。如a-=3+1,等价于 a=a-(3+1)。*=:乘赋值运算符。如a*=3+1,等价于 a=a*(3+1)。/=:除赋值运算符。如a/=3+1,等价于 a=a/(3+1)%=:取余赋值运算符.如a%=3+1,等价于a=a%(3+1)。复合赋值运算符的作用是先将复合运算符右边表达式的结果与左边的变量进行算术运算,然
16、后再将最终结果赋予左边的变量复合运算要注意:一是复合运算符左边必须是变量;二是复合运算符右边的表达式计算完成后才参与复合赋值运算。复合赋值运算符的结合性和优先级等同于简单的赋值运算符“=”。四、赋值运算符及赋值表达式(2)#include void main() int a=10,b=10; printf(“%dt”,a+=a- =a*a); printf(“%d ”,b+=b- =b*=b); n运行结果 :-180 0n复合运算符常用于某个变量自身的变化,尤其当左边的变量名很长时,使用复合运算符书写更方便。n举一反三 :计算a=3时,表达式a*=4+(a%=2)的结果。a*a=100a=a
17、-100=-90a=a+a=-180b=b*b=100b=b-b=0b=b+b=0五、自增运算符与自减运算符(1)n自增和自减运算符主要用于给一个变量加1或减1。n自增和自减运算符及其功能如下:+:自增运算符。如a+,+a,都等价于a=a+1。 -: 自减运算符。如a-,-a,都等价于a=a-1。n自增和自减运算符是单目运算符,可以放到变量前面(前置方式)或者后面(后置方式),这两种方式同样实现了变量的自增或自减运算。但是结果是不同的。n前置运算时变量先做自增或自减运算,再将变化后的变量值参加表达式中的其它运算。后置运算时变量在参加表达式中的其它运算之后,再做自增或自减运算。五、自增运算符与自
18、减运算符(2)n当a=10时,x=a+的结果是x=10,a=11。而x=+a的结果是x=11,a=11。n当a=10时,x=a-的结果是x=10,a=9。而x=-a的结果是x=9,a=9。n所以一个变量的前置自增(减)运算和后置自增(减)运算仅表明该变量使用其值参加运算与其值自身变化之间的先后关系,即前置运算是变量先变化后使用,而后置运算是先使用后变化。n此外需要说明的是变量的自增或自减运算与该变量在表达式中的运算顺序无关x=a;a=a+1a=a+1x=a;五、自增运算符与自减运算符(3)#include void main() int a1,a2,a3,a4,b1,b2,b3,b4; a1=
19、a2=a3=a4=10; b1=(a1+)+(a1+)+(a1+); b2=(+a2)+(+a2)+(+a2); b3=(a3-)+(a3-)+(a3-); b4=(-a4)+(-a4)+(-a4);printf(a1=%d,a2=%d,b1=%d,b2=%dn,a1,a2,b1,b2);printf(a3=%d,a4=%d,b3=%d,b4=%dn,a3,a4,b3,b4);n运行结果 :a1=13,a2=13,b1=30,b2=39 a3=7,a4=7,b3=30,b2=21b1=a1+a1+a1;a1=a1+1;a1=a1+1a1=a1+1a2=a2+1;a2=a2+1a2=a2+1b2
20、=a2+a2+a2;六、逗号运算符及逗号表达式(1)n逗号运算符主要用于连接表达式。: a=a+1,b=3*4;n用逗号运算符连接起来的表达式称为逗号表达式n表达式1,表达式2, ,表达式nn逗号表达式的运算过程是:先算表达式1,再算表达式2,依次算到表达式n。n整个逗号表达式的值是最后一个表达式的值。逗号表达式的结合性从左至右.它的优先级是最低的。nb=(a=4,3*4,a*2) 等价于 a=4; 3*4; b=a*2;六、逗号运算符及逗号表达式(2)#include void main() int a=3,b=4,c=1,max,t; if (ab,ac) max=a; else max=0; t=(a+3,b+1,+c); printf(max=%d,t=%dn,max,t);运行结果 :max=3,t=2举一反三举一反三
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 毕业实习生自我鉴定
- 银行安全生产会议
- 在医院的实习报告范文集合七篇
- 感恩主题演讲稿锦集5篇
- 幼儿园防空防灾安全教育
- 防止金融诈骗讲座
- 学生会成员工作总结
- 2022年大学生积极分子思想汇报
- 教学设计方案范文集锦7篇
- 捐资助学倡议书范文汇编10篇
- 黑龙江龙江森工集团招聘笔试题
- 大班美术教案:拉手小人教案及教学反思
- 《Python Web 企业级项目开发教程(Django 版)》课后答案
- 铜及铜合金物理冶金基础-相图、紫铜
- 智慧酒店无人酒店综合服务解决方案
- 考研英语一新题型历年真题(2005-2012)
- 健身房会籍顾问基础培训资料
- 9脊柱与四肢、神经系统检查总结
- 秀场内外-走进服装表演艺术智慧树知到答案章节测试2023年武汉纺织大学
- 【高分复习笔记】王建《现代自然地理学》(第2版)笔记和课后习题详解
- TSGD0012023年压力管道安全技术监察规程-工业管道(高清晰版)
评论
0/150
提交评论