《第三章运算符与表达式优秀课件.ppt》由会员分享,可在线阅读,更多相关《第三章运算符与表达式优秀课件.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章运算符与表达式第1页,本讲稿共31页l 主要内容主要内容3.1 算术运算符与算术表达式算术运算符与算术表达式3.2 赋值运算符与赋值表达式赋值运算符与赋值表达式3.3 逗号运算符和逗号表达式逗号运算符和逗号表达式3.4 关系运算符与关系表达式关系运算符与关系表达式3.5 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式3.6 其它运算符与其它表达式其它运算符与其它表达式第2页,本讲稿共31页l 本章要点本章要点第3页,本讲稿共31页 3.1 算术运算符和算术表达式算术运算符和算术表达式(1)(1)基本的算术运算符基本的算术运算符:(加法运算符,或正值运算符,如(加法运算符,或正值运算符,如:
2、、)、)(减法运算符,或负值运算符,如(减法运算符,或负值运算符,如:、)、)*(乘法运算符,如(乘法运算符,如:*)(除法运算符,如(除法运算符,如:)(模运算符,或称求余运算符,两侧均应为整型数据,(模运算符,或称求余运算符,两侧均应为整型数据,如如:的值为)。的值为)。第4页,本讲稿共31页(2)(2)算术运算符和表达式的优先级与结合性算术运算符和表达式的优先级与结合性:用算术运算符和括号将运算对象用算术运算符和括号将运算对象(也称操也称操作数)连接起来的、符合语法规则的式子,作数)连接起来的、符合语法规则的式子,称为算术表达式。运算对象包括常量、变量、称为算术表达式。运算对象包括常量、
3、变量、函数等。函数等。例如例如:*.5.5aa 是一个合法的表达式。是一个合法的表达式。第5页,本讲稿共31页语言规定了运算符的优先级和结合性。语言规定了运算符的优先级和结合性。在表达式求值时,先按运算符的优先级在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。别高低次序执行,例如先乘除后加减。规定了各种运算符的结合方向规定了各种运算符的结合方向(结合性结合性)算术运算符的结合方向为算术运算符的结合方向为“自左至右自左至右”,即先左后右,即先左后右。第6页,本讲稿共31页(3)(3)强制类型转换运算符强制类型转换运算符 可以利用强制类型转换运算符将一个表达可以利用强制类型转换
4、运算符将一个表达式转换成所需类型。式转换成所需类型。一般形式一般形式:(类型名)(表达式)(类型名)(表达式)例如:例如:(double)(double)将转换成将转换成doubledouble类型类型(int)(x+y)(int)(x+y)将将x+yx+y的值转换成整型的值转换成整型(float)(float)(5%35%3)将将5%35%3的值转换成的值转换成floatfloat型型第7页,本讲稿共31页例例3.1 强制类型转换。强制类型转换。#include#include mainmain()()float float;int int;3.63.6;(int)(int);printf(
5、x=%f printf(x=%f,i=%dni=%dn,x x,i);i);说明:说明:说明:说明:在强制类型转换时,得到一个所需类型的中间变在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。量,原来变量的类型未发生变化。运行结果:运行结果:x x3.6000003.600000,i=3i=3第8页,本讲稿共31页(4)(4)自增、自减运算符自增、自减运算符 作用是使变量的值增或减。作用是使变量的值增或减。如:如:,(在使用之前,先使的(在使用之前,先使的值加(减)值加(减),(在使用之后,使的值(在使用之后,使的值加(减)加(减)第9页,本讲稿共31页i+i+与与+i+
6、i的区别:的区别:是先执行后,再使用的值;是先执行后,再使用的值;是先使用的值后,再执行。是先使用的值后,再执行。例如:例如:i=3;i=3;;i i的值先变成的值先变成4,4,再赋给再赋给,j,j的值为。的值为。;先将先将i i的值的值3 3赋给赋给,的值为的值为,然后变为然后变为。第10页,本讲稿共31页注意:注意:(1)(1)自增运算符(),自减运算符(自增运算符(),自减运算符(),只能用于变量,而不能用于常量或表达),只能用于变量,而不能用于常量或表达式,式,(2)(2)和的结合方向是和的结合方向是“自右至左自右至左”。第11页,本讲稿共31页 3.2 赋值运算符和赋值表达式赋值运算
7、符和赋值表达式(1)(1)赋值运算符赋值运算符 赋值符号赋值符号“”就是赋值运算符,它的作用是将就是赋值运算符,它的作用是将一个数据赋给一个变量。如一个数据赋给一个变量。如“”的作用是执行一的作用是执行一次赋值操作(或称赋值运算)。把常量赋给变量。次赋值操作(或称赋值运算)。把常量赋给变量。也可以将一个表达式的值赋给一个变量。也可以将一个表达式的值赋给一个变量。(2)(2)类型转换类型转换 如果赋值运算符两侧的类型不一致,但都是数值型或字如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。符型时,在赋值时要进行类型转换。第12页,本讲稿共31页(3)(3)复合的赋值
8、运算符复合的赋值运算符 在在赋赋值值符符“”之之前前加加上上其其他他运运算算符符,可可以构成复合的运算符。以构成复合的运算符。例如例如:等价于等价于 *等价于等价于 *()()等价于等价于 以以“”为例来说明,为例来说明,它相当于使进行一次自加它相当于使进行一次自加()的操作。即先使加,()的操作。即先使加,再赋给。再赋给。第13页,本讲稿共31页为便于记忆,可以这样理解:为便于记忆,可以这样理解:a+=b(a+=b(其中其中a a为变量,为变量,b b为表达式为表达式)a+=b a+=b(将有下划线的(将有下划线的“a+”“a+”移到移到“=”“=”右侧)右侧)|_|_ a=a+b a=a+
9、b(在(在“=”“=”左侧补上变量名左侧补上变量名a a)第14页,本讲稿共31页注意注意:如果是包含若干项的表达式,则相当于它有如果是包含若干项的表达式,则相当于它有 括号。括号。如:如:x%=y+3 x%=y+3 x%=(y+3)x%=(y+3)|_|_ x=x%(y+3)(x=x%(y+3)(不要错写成不要错写成x=x%y+3)x=x%y+3)凡是二元(二目)运算凡是二元(二目)运算符,都可以与赋值符一符,都可以与赋值符一起组合成复合赋值符。起组合成复合赋值符。语言规定可以使用语言规定可以使用1010种复合赋值运算符:种复合赋值运算符:,*,|第15页,本讲稿共31页(4)(4)赋值表达
10、式赋值表达式 由赋值运算符将一个变量和一个表达式连由赋值运算符将一个变量和一个表达式连接起来的式子称为接起来的式子称为“赋值表达式赋值表达式”。一般形式为一般形式为:例如例如:“5”5”是一个赋值表达式是一个赋值表达式 第16页,本讲稿共31页对赋值表达式求解的过程是:对赋值表达式求解的过程是:求赋值运算符右侧的求赋值运算符右侧的“表达式表达式”的值的值;赋给赋值运算符左侧的变量。赋给赋值运算符左侧的变量。例如例如:赋值表达式赋值表达式“=3*5”=3*5”的值为的值为1515,执行,执行表达式后,变量表达式后,变量a a的值也是的值也是1515。注意注意:一个表达式应该有一个值一个表达式应该
11、有一个值。第17页,本讲稿共31页 赋值表达式中的赋值表达式中的“表达式表达式”,又可以是一,又可以是一个赋值表达式。个赋值表达式。例如例如:a=(b=5)a=(b=5)分析分析:括弧内的括弧内的“b=5”“b=5”是一个赋值表达式,是一个赋值表达式,它的值等于它的值等于5 5。执行表达式。执行表达式“a=(b=5)”“a=(b=5)”相当相当于执行于执行“b=5”“b=5”和和“a“ab”b”两个赋值表达式。两个赋值表达式。赋值运算符按照赋值运算符按照“自右向左自右向左”的结合顺序,的结合顺序,因此,因此,“(b“(b5)”5)”外面的括弧可以不要,即外面的括弧可以不要,即“a=(b=5)”
12、“a=(b=5)”和和“a=b=5”“a=b=5”等价。等价。第18页,本讲稿共31页赋值表达式也可以包含复合的赋值运算符。赋值表达式也可以包含复合的赋值运算符。如:如:a+=a-=a*aa+=a-=a*a分析分析:此赋值表达式的求解步骤如下此赋值表达式的求解步骤如下 先进行先进行“*”的运算,它相当的运算,它相当于于*,a a的值为的值为1212144144132132。再进行再进行“-132”-132”的运算,相当于的运算,相当于 =a+(-132)=a+(-132),a a的值为的值为-132-132-132-132-264-264。第19页,本讲稿共31页 3.3 逗号运算符和逗号表达
13、式逗号运算符和逗号表达式逗号运算符逗号运算符:将两个表达式连接起来将两个表达式连接起来,又称为又称为“顺序求值运算符顺序求值运算符”如:如:5 5,一般形式一般形式:表达式,表达式表达式,表达式求解过程:求解过程:先求解表达式,再求解表达式。整先求解表达式,再求解表达式。整个逗号表达式的值是表达式的值。个逗号表达式的值是表达式的值。逗号表达式逗号表达式 的的值为值为14第20页,本讲稿共31页例:例:逗号表达式逗号表达式*5*5,*分析分析:赋值运算符的优先级别高于逗号运算符,因赋值运算符的优先级别高于逗号运算符,因此应先求解此应先求解*5*5。的值为的值为5,然,然后求解后求解*,得,得。整
14、个逗号。整个逗号表达式的值为表达式的值为。一个逗号表达式又可以与另一个表达式组成一一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式。个新的逗号表达式。如如:(*,*),),a+5a+5 先计算出先计算出的值等于的值等于1515,再进行,再进行*的运算得的运算得6060(但(但值未变,仍为值未变,仍为1515),再进行),再进行+5+5得得2020,即整个表,即整个表达式的值为达式的值为2020。第21页,本讲稿共31页逗号表达式的一般形式可以扩展为逗号表达式的一般形式可以扩展为 表达式,表达式,表达式,表达式,表达式,表达式,表达式,表达式 它的值为表达式的值。它的值为表达式的值。逗号
15、运算符是所有运算符中级别最低的逗号运算符是所有运算符中级别最低的例例:(,(,*),*3*3赋值表达式,将赋值表达式,将一个逗号表达式一个逗号表达式的值赋给,的值赋给,的值等于的值等于 逗号表达式,包括一逗号表达式,包括一个赋值表达式和一个个赋值表达式和一个算术表达式,的值算术表达式,的值为,整个逗号表达为,整个逗号表达式的值为式的值为1818。第22页,本讲稿共31页3.4 关系运算符和关系表达式关系运算符和关系表达式1.1.关系运算符及其优先次序关系运算符及其优先次序 (小于小于)=(大于大于)=(=(大于或等于大于或等于)=(=(等于等于)!=(!=(不等于不等于)优先级相同(高)优先级
16、相同(高)优先级相同(低)优先级相同(低)说明:说明:关系运算符的优先级低于算术运算符关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符关系运算符的优先级高于赋值运算符第23页,本讲稿共31页2.关系表达式关系表达式用关系运算符将两个表达式(可以是算术表达式或关系表达用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称关系表达式。子,称关系表达式。例:例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值为的值为“真真”,表达式的值为,表达式的值为1。C C语言
17、中没有专用语言中没有专用的逻辑值,的逻辑值,1 1代表代表真,真,0 0代表假代表假第24页,本讲稿共31页3.5 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式1.逻辑运算符及其优先次序逻辑运算符及其优先次序(1)&(逻辑与逻辑与)相当于其他语言中的相当于其他语言中的ANDAND(2)|(逻辑或逻辑或)相当于其他语言中的相当于其他语言中的OROR(3)!(逻辑非逻辑非)相当于其他语言中的相当于其他语言中的NOTNOT例:例:a&b 若若a,b为真,则为真,则a&b为真。为真。a|b 若若a,b之一为真,则之一为真,则a|b为真。为真。!a 若若a为真,则为真,则!a为假。为假。优先次序:优先次
18、序:!&|逻辑运算符中的逻辑运算符中的“&”和和“|”低于关系运算符低于关系运算符,“!”高于算术运算符。高于算术运算符。第25页,本讲稿共31页2.逻辑表达式逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。逻辑表达式。逻辑表达式的值应该是一个逻辑量逻辑表达式的值应该是一个逻辑量“真真”或或“假假”。例:例:设设a=4,b=5:!a的值为的值为0 a&b的值为的值为1a|b的值为的值为1 !a|b的值为的值为14&0|2的值为的值为1任何非零的数值被认作任何非零的数值被认作“真真”第26页,本讲稿共31页1&0逻辑值为逻
19、辑值为083逻辑值为逻辑值为1表达式值为表达式值为0 0例:例:53&8b)?c:d(ab)?c:d (32)?1:0 (32)?1:0;结果为;结果为1 1第29页,本讲稿共31页作作业:1:P66-3.6,P67-3.9,3.10,P68-3.122:用条件运算编程找出:用条件运算编程找出25,28,3,56中最大中最大的数。(提交上机报告)的数。(提交上机报告)第30页,本讲稿共31页#include#include main()main()int a=25,b=28,c=3,d=56;int a=25,b=28,c=3,d=56;int max;int max;max=(ab)?a:b;max=(ab)?a:b;max=(maxc)?max:c;max=(maxc)?max:c;max=(maxd)?max:d;max=(maxd)?max:d;printf(“max=%dn”,max);printf(“max=%dn”,max);第31页,本讲稿共31页
限制150内