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