C语言第三章运算符和表达式ppt课件.ppt
C程序设计实例教程 山东科技大学机电学院,1,第三章 运算符和表达式,掌握:算术、关系、逻辑等常见运算符 掌握:各种运算符的优先级 掌握:各种表达式的组成及运算过程 重点:运算符的优先级及表达式分析计算 难点:自增、自减运算符,C程序设计实例教程 山东科技大学机电学院,2,3.1 算术运算符和算术表达式,算术运算符,C程序设计实例教程 山东科技大学机电学院,3,算术表达式 定义:算术表达式是由算术运算符和括号将运算对象连接起来的式子,其中运算对象可以是常量、变量、函数、数组元素等内容。形式:表达式1 算术运算符 表达式2【例3.1】若a=5,b=3,c=2,x=1.5,则算术表达式a*x*x+b*x+c的结果是多少?,C程序设计实例教程 山东科技大学机电学院,4,注意:(1)当运算符“/”两侧的操作数为整型时,计算结果为整型,如19/2=9。(2)运算符“%”两侧的操作数必须是基本整型、短整型或长整型数,而不能是浮点型数字。(3)运算符“+”、“-”只能用于变量,而不能用于常量或表达式,如:i+、-j均是正确的,而+10、(a+b)+则是错误的。,C程序设计实例教程 山东科技大学机电学院,5,3.2 赋值运算符和赋值表达式,赋值运算符,C程序设计实例教程 山东科技大学机电学院,6,赋值表达式 定义:赋值表达式是由赋值运算符和括号将运算对象连接起来的式子,其中运算对象可以是常量、变量、函数、数组元素等内容。形式:变量名称 赋值运算符 表达式【例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 表达式值为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=2,C程序设计实例教程 山东科技大学机电学院,8,注意:(1)对于简单赋值运算符和复合赋值运算符,等号左侧的操作数只能为变量,而不能是常量或表达式,如a=5是正确的,而10=3+2以及a+b=8都是错误的。(2)赋值运算符具有右结合性,因此a=b=c=10是正确的,等价于a=(b=(c=10)。(3)当等号“=”两侧的类型不同时,将要进行数值类型的转换,C程序设计实例教程 山东科技大学机电学院,9,赋值语句 在赋值表达式的基础上添加“;”就构成了赋值语句。如x=(a=4)+8;计算时先计算右侧括号中的内容,然后与8相加,并将结果赋给变量x。【例3.5】已知华氏温度与摄氏温度之间的转换公式为C=5/9*(F-32),编写程序将输入的华氏温度转换为摄氏温度输出#include stdio.hvoid main()int f;float c;scanf(%d,/*输出结果*/,C程序设计实例教程 山东科技大学机电学院,10,3.3 关系运算符和关系表达式,关系运算符 C语言提供了6种关系运算符,C程序设计实例教程 山东科技大学机电学院,11,关系表达式定义:关系表达式是由关系运算符和括号将运算对象连接起来的式子,其中运算对象可以是常量、变量、函数、数组元素等内容。一般组成形式:表达式1 关系运算符 表达式2 注意:关系表达式的结果是1或0,前者对应于关系成立,后者对应于关系不成立。如:531 关系不成立,表达式的值为0(3+7)!=(2+8)关系不成立,表达式的值为0,C程序设计实例教程 山东科技大学机电学院,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还可以是常量、变量的形式,也可以是赋值表达式、逻辑表达式、关系表达式等表达式嵌套的形式。(2)关系表达式的值为0或1。,C程序设计实例教程 山东科技大学机电学院,13,3.4 逻辑运算符和逻辑表达式,逻辑运算符,其中逻辑与运算符&和逻辑或运算符|均为双目运算符,具有左结合性。非运算符!为单目运算符,具有右结合性。,C程序设计实例教程 山东科技大学机电学院,14,逻辑运算的值为“真”和“假”两种,用“1”和“0”来表示。逻辑运算表,例如由于5和3均为非“0”,因此5&3的值为“真”,即为1。,C程序设计实例教程 山东科技大学机电学院,15,逻辑表达式 定义:逻辑表达式是由逻辑运算符和括号将运算对象连接起来的式子。其中运算对象可以是常量、变量、函数的形式,也可以是关系表达式、算术表达式等表达式嵌套的形式,逻辑表达式的结果为1或0。逻辑表达式的一般形式为 表达式1 逻辑运算符 表达式2,C程序设计实例教程 山东科技大学机电学院,16,【例3.7】判断某年的天数。分析:判断某年的天数,实际是判断该年是闰年还是平年,而闰年的判断条件是:该年能被4整除,但不能被100整除,或者能被400整除。很显然,前面两个条件是并列的关系,用逻辑与运算符连接,而与后者的关系是或的关系,因此可以用逻辑或运算符来连接前后两个表达式。,C程序设计实例教程 山东科技大学机电学院,17,注意:(1)在逻辑运算值时,以“1”代表“真”,“0”代表“假”;但在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。如3,C程序设计实例教程 山东科技大学机电学院,18,3.5 条件运算符和条件表达式,条件运算符:C语言提供了1种条件运算符,其中该运算符是三目运算符,具有右结合性。,C程序设计实例教程 山东科技大学机电学院,19,条件表达式 定义:条件表达式是由条件运算符和有关表达式、变量或常量等组成的式子。条件表达式的一般形式为:表达式1?表达式2:表达式3其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。,注意:(1)条件运算符中“?”和“”是一对运算符,不能分开单独使用;(2)条件运算符的结合方向是自右至左。因此ab?a:cd?c:d应理解为ab?a:(cd?c:d)。,C程序设计实例教程 山东科技大学机电学院,20,3.6 逗号运算符和逗号表达式,逗号运算符:C语言提供了1种逗号运算符,C程序设计实例教程 山东科技大学机电学院,21,逗号表达式定义:逗号表达式是由逗号运算符和有关变量、常量、表达式等组成的式子。逗号表达式的一般形式为:表达式1,表达式2,表达式3求解的顺序:是自左向右进行,先求解表达式1的值,然后求解表达式2的值,依次类推,整个逗号表达式的值是最后一个表达式的值。,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)通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。,