C语言 第三章 运算符和表达式

上传人:1666****666 文档编号:45574582 上传时间:2021-12-07 格式:PPT 页数:22 大小:195.01KB
收藏 版权申诉 举报 下载
C语言 第三章 运算符和表达式_第1页
第1页 / 共22页
C语言 第三章 运算符和表达式_第2页
第2页 / 共22页
C语言 第三章 运算符和表达式_第3页
第3页 / 共22页
资源描述:

《C语言 第三章 运算符和表达式》由会员分享,可在线阅读,更多相关《C语言 第三章 运算符和表达式(22页珍藏版)》请在装配图网上搜索。

1、C程序设计实例教程 山东科技大学机电学院1第三章 运算符和表达式&掌握:算术、关系、逻辑等常见运算符掌握:算术、关系、逻辑等常见运算符& 掌握:各种运算符的优先级掌握:各种运算符的优先级& 掌握:各种表达式的组成及运算过程掌握:各种表达式的组成及运算过程& 重点:运算符的优先级及表达式分析计算重点:运算符的优先级及表达式分析计算& 难点:自增、自减运算符难点:自增、自减运算符C程序设计实例教程 山东科技大学机电学院23.1 算术运算符和算术表达式&算术运算符算术运算符 类型含义示例优先级结合方向+加5+84从左到右-减或取负6-7或-44为减号时从左到右,取负时从右到左*乘12*43从左到右/

2、除45/73从左到右%取余54%83从左到右+自增i+或+i2从右到左-自减j或-j2从右到左C程序设计实例教程 山东科技大学机电学院3&算术表达式算术表达式 定义定义:算术表达式是由算术运算符和括号将运算对象算术表达式是由算术运算符和括号将运算对象连接起来的式子连接起来的式子,其中运算对象可以是常量、变量、其中运算对象可以是常量、变量、函数、数组元素等内容。函数、数组元素等内容。 形式:形式:表达式表达式1 算术运算符算术运算符 表达式表达式2 【例【例3.1】若若a=5,b=3,c=2,x=1.5,则算术表达式,则算术表达式a*x*x+b*x+c的结果是多少?的结果是多少? C程序设计实例

3、教程 山东科技大学机电学院4注意:注意:(1)当运算符)当运算符“/”两侧的操作数为整型时,计算结果为整两侧的操作数为整型时,计算结果为整型,如型,如19/2=9。(2)运算符)运算符“%”两侧的操作数必须是基本整型、短整型两侧的操作数必须是基本整型、短整型或长整型数,而不能是浮点型数字。或长整型数,而不能是浮点型数字。(3)运算符)运算符“+”、“-”只能用于变量,而不能用于常量只能用于变量,而不能用于常量或表达式,如:或表达式,如:i+、-j均是正确的,而均是正确的,而+10、(、(a+b)+则是错误的。则是错误的。C程序设计实例教程 山东科技大学机电学院53.2 赋值运算符和赋值表达式&

4、赋值运算符赋值运算符 类型含义示例优先级结合方向=等于a=b+314从右到左+=加等于a+=b14从右到左-=减等于a-=214从右到左*=乘等于a*=314从右到左/=除等于a/=(a+3)14从右到左%=取余等于a%=b14从右到左=右移等于a=114从右到左=左移等于a=214从右到左&=按位与等于a&=b14从右到左=按位异或等于a=b14从右到左|=按位或等于a|=b14从右到左C程序设计实例教程 山东科技大学机电学院6&赋值表达式赋值表达式 定义定义: 赋值表达式是由赋值运算符和括号将运算对象赋值表达式是由赋值运算符和括号将运算对象连接起来的式子,其中运算对象可以是常量、变量、连接

5、起来的式子,其中运算对象可以是常量、变量、函数、数组元素等内容。函数、数组元素等内容。形式:形式: 变量名称变量名称 赋值运算符赋值运算符 表达式表达式【例【例3.1】若若a=5,b=3,c=2,x=1.5,则算术表达式,则算术表达式a*x*x+b*x+c的结果是多少?的结果是多少? C程序设计实例教程 山东科技大学机电学院7举例【例【例3.4】已知已知int a=5,b=3,x=10,计算如下表达式的值。,计算如下表达式的值。a=a*8 表达式值为表达式值为40,a=40b%=2 表达式值为表达式值为1,b=1x*=(a+b) 表达式值为表达式值为410,x=410a=b=c=5 表达式值为

6、表达式值为5,a,b,c值为值为5a=(b=5) b=5,a=5a=5+(c=6) 表达式值为表达式值为11,c=6,a=11a=(b=4)+(c=6) 表达式值为表达式值为10,a=10,b=4,c=6a=(b=10)/(c=2) 表达式值为表达式值为5,a=5,b=10,c=2C程序设计实例教程 山东科技大学机电学院8注意:注意:(1)对于简单赋值运算符和复合赋值运算符,等号左侧的)对于简单赋值运算符和复合赋值运算符,等号左侧的操作数只能为变量,而不能是常量或表达式,如操作数只能为变量,而不能是常量或表达式,如a=5是是正确的,而正确的,而10=3+2以及以及a+b=8都是错误的。都是错误

7、的。(2)赋值运算符具有右结合性,因此)赋值运算符具有右结合性,因此a=b=c=10是正确的,是正确的,等价于等价于a=(b=(c=10)。(3)当等号)当等号“=”两侧的类型不同时,将要进行数值类型的两侧的类型不同时,将要进行数值类型的转换转换 C程序设计实例教程 山东科技大学机电学院9&赋值语句赋值语句 在赋值表达式的基础上添加在赋值表达式的基础上添加“;”就构成了赋值语句。如就构成了赋值语句。如x=(a=4)+8;计算时先计算右侧括号中的内容,然后与计算时先计算右侧括号中的内容,然后与8相加,并将结果赋给变量相加,并将结果赋给变量x。【例【例3.5】已知华氏温度与摄氏温度之间的转换公式为

8、已知华氏温度与摄氏温度之间的转换公式为C=5/9*(F-32),编写程序,编写程序将输入的华氏温度转换为摄氏温度输出将输入的华氏温度转换为摄氏温度输出 #include stdio.hvoid main() int f; float c; scanf(%d,&f); /*输入华氏温度输入华氏温度*/ c=5/9*(f-32); printf(c=%fn,c); /*输出结果输出结果*/C程序设计实例教程 山东科技大学机电学院103.3 关系运算符和关系表达式&关系运算符关系运算符 C语言提供了语言提供了6种关系运算符种关系运算符 类型含义示例优先级结合方向小于586从左到右=小于等于a大于ab

9、+16从左到右=大于等于5=8-26从左到右!=不等于a!=37从左到右=是否等于a=57从左到右C程序设计实例教程 山东科技大学机电学院11&关系表达式关系表达式定义定义:关系表达式是由关系运算符和括号将运算对象连接起来的关系表达式是由关系运算符和括号将运算对象连接起来的式子,其中运算对象可以是常量、变量、函数、数组元素等内式子,其中运算对象可以是常量、变量、函数、数组元素等内容。容。 一般组成形式一般组成形式:表达式表达式1 关系运算符关系运算符 表达式表达式2 注意注意:关系表达式的结果是关系表达式的结果是1或或0,前者对应于关系成立,后者对应于关,前者对应于关系成立,后者对应于关系不成

10、立。如:系不成立。如:531 关系不成立,表达式的值为关系不成立,表达式的值为0(3+7)!=(2+8) 关系不成立,表达式的值为关系不成立,表达式的值为0C程序设计实例教程 山东科技大学机电学院12【例【例3.6】若有若有int a=3,b=2,c=1,d,f;则则 ab /表达式值表达式值1 (ab)=c /表达式值表达式值1 b+cb /d=1 f=abc /f=0注意:注意:(1)表达式)表达式1和表达式和表达式2还可以是常量、变量的形式,也可以是还可以是常量、变量的形式,也可以是赋值表达式、逻辑表达式、关系表达式等表达式嵌套的形式。赋值表达式、逻辑表达式、关系表达式等表达式嵌套的形式

11、。(2)关系表达式的值为)关系表达式的值为0或或1。C程序设计实例教程 山东科技大学机电学院133.4 逻辑运算符和逻辑表达式&逻辑运算符逻辑运算符类型含义示例优先级结合方向!取反!a2从右到左&逻辑与(53)&12%711从左到右|逻辑或y/4 | (x+3)=512从左到右其中逻辑与运算符其中逻辑与运算符&和逻辑或运算符和逻辑或运算符|均为双目运算符,均为双目运算符,具有左结合性。非运算符具有左结合性。非运算符!为单目运算符,具有右结合性。为单目运算符,具有右结合性。C程序设计实例教程 山东科技大学机电学院14逻辑运算的值为逻辑运算的值为“真真”和和“假假”两种,用两种,用“1”和和“0”

12、来表示。来表示。 逻辑运算表逻辑运算表ab!a!ba & ba | b真真假假真真真假假真假真假真真假假真假假真真假假例如由于5和3均为非“0”,因此5&3的值为“真”,即为1。C程序设计实例教程 山东科技大学机电学院15&逻辑表达式逻辑表达式 定义定义:逻辑表达式是由逻辑运算符和括号将运算对象逻辑表达式是由逻辑运算符和括号将运算对象连接起来的式子。连接起来的式子。其中运算对象可以是常量、变量、其中运算对象可以是常量、变量、函数的形式,也可以是关系表达式、算术表达式等表函数的形式,也可以是关系表达式、算术表达式等表达式嵌套的形式,逻辑表达式的结果为达式嵌套的形式,逻辑表达式的结果为1或或0。逻

13、辑表达式的一般形式为逻辑表达式的一般形式为 表达式表达式1 逻辑运算符逻辑运算符 表达式表达式2C程序设计实例教程 山东科技大学机电学院16【例【例3.7】判断某年的天数。判断某年的天数。分析:分析:判断某年的天数,实际是判断该年是闰年还判断某年的天数,实际是判断该年是闰年还是平年,而闰年的判断条件是:该年能被是平年,而闰年的判断条件是:该年能被4整除,但整除,但不能被不能被100整除,或者能被整除,或者能被400整除。很显然,前面整除。很显然,前面两个条件是并列的关系,用逻辑与运算符连接,而两个条件是并列的关系,用逻辑与运算符连接,而与后者的关系是或的关系,因此可以用逻辑或运算与后者的关系是

14、或的关系,因此可以用逻辑或运算符来连接前后两个表达式。符来连接前后两个表达式。 C程序设计实例教程 山东科技大学机电学院17注意:注意:(1)在逻辑运算值时,以)在逻辑运算值时,以“1”代表代表“真真”,“0”代表代表“假假”;但在判;但在判断一个量是为断一个量是为“真真”还是为还是为“假假”时,以时,以“0”代表代表“假假”,以非,以非“0”的数值作为的数值作为“真真”。如。如3 & 0.5,结果为,结果为1。(2)在逻辑与)在逻辑与&和逻辑和逻辑|运算中,存在一种短路效应。运算中,存在一种短路效应。【例【例3.8】以下程序的输出结果是什么?以下程序的输出结果是什么?#include std

15、io.hvoid main() int i=1,j=2,k=3; float x=200,y=0.85; printf(%d,%dn,i=5&c&(j=8),x+y|i+j+k); C程序设计实例教程 山东科技大学机电学院183.5 条件运算符和条件表达式&条件运算符条件运算符 :C语言提供了语言提供了1种条件运算符种条件运算符 类型含义示例优先级结合方向? :取反ab?a:b13从右到左其中其中 该运算符是三目运算符,具有右结合性。该运算符是三目运算符,具有右结合性。C程序设计实例教程 山东科技大学机电学院19&条件表达式条件表达式 定义:条件表达式是由条件运算符和有关表达式、变定义:条件表

16、达式是由条件运算符和有关表达式、变量或常量等组成的式子。量或常量等组成的式子。 条件表达式的一般形式为:条件表达式的一般形式为: 表达式表达式1? 表达式表达式2: 表达式表达式3其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。注意:注意:(1)条件运算符中“?”和“ ”是一对运算符,不能分开单独使用;(2)条件运算符的结合方向是自右至左。因此ab?a:cd?c:d应理解为ab?a:(cd?c:d)。C程序设计实例教程 山东科技大学机电学院203.6 逗号运算符和逗号表达式&逗号运算符逗号运算符 :C语言提供了语言提供了1种逗

17、号运算符种逗号运算符 类型含义示例优先级结合方向,逗号ab,c!=0,x15从左到右C程序设计实例教程 山东科技大学机电学院21&逗号表达式逗号表达式定义:逗号表达式是由逗号运算符和有关变量、常定义:逗号表达式是由逗号运算符和有关变量、常量、表达式等组成的式子。量、表达式等组成的式子。 逗号表达式的一般形式为:逗号表达式的一般形式为: 表达式表达式1,表达式,表达式2, 表达式表达式3求解的顺序:求解的顺序:是自左向右进行,先求解表达式是自左向右进行,先求解表达式1的值,然后求解表达式的值,然后求解表达式2的的值,依次类推,整个逗号表达式的值是最后一个表达式值,依次类推,整个逗号表达式的值是最

18、后一个表达式的值。的值。 C程序设计实例教程 山东科技大学机电学院22【例【例3.9】计算如下逗号表达式的值。计算如下逗号表达式的值。a=3*5,a*4 /a=15,表达式值表达式值60a=3*5,a*4,a+5 /a=15,表达式值表达式值20 x=(a=3,6*3) /赋值表达式,表达式值赋值表达式,表达式值18,x=18x=a=3,6*a /逗号表达式逗号表达式,表达式值表达式值18,x=3注意:注意:(1)并不是所有出现逗号的地方都是逗号表达式,如在变量说)并不是所有出现逗号的地方都是逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。明中,函数参数表中逗号只是用作各变量之间的间隔符。(2)逗号表达式中各个表达式也可以是逗号表达式的形式,即)逗号表达式中各个表达式也可以是逗号表达式的形式,即(表达式(表达式1,表达式,表达式2),表达式),表达式3,构成表达式嵌套的形式。,构成表达式嵌套的形式。(3)通常是要分别求逗号表达式内各表达式的值,并不一定要)通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。求整个逗号表达式的值。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!