第4章 运算符和表达式_第1页
第4章 运算符和表达式_第2页
第4章 运算符和表达式_第3页
第4章 运算符和表达式_第4页
第4章 运算符和表达式_第5页
已阅读5页,还剩29页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西安工业大学计算机学院西安工业大学计算机学院5/1/2022运算符和表达式运算符和表达式西安工业大学计算机学院西安工业大学计算机学院5/1/20223.4 运算符和表达式运算符和表达式C运运算算符符算术运算符:(算术运算符:(+ - + - * * / % + - / % + -)关系运算符:(关系运算符:( = != = !=)逻辑运算符:(!逻辑运算符:(! & |& |)位运算符位运算符 :(:( | & | &)赋值运算符:(赋值运算符:(= = 及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(, ,)指针运算符:(

2、指针运算符:(* * & &)求字节数:求字节数: (sizeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(. -. -)下标运算符:(下标运算符:()其它其它 : (( ) -( ) -)西安工业大学计算机学院西安工业大学计算机学院5/1/20223.4 运算符和表达式运算符和表达式运算符是告诉编译程序执行特定算术或逻辑操作的符号,运算符是告诉编译程序执行特定算术或逻辑操作的符号,C C语言提供了多种运算符,具有很强的运算能力。语言语言提供了多种运算符,具有很强的运算能力。语言的运算符可分为以下几类:的运算符可分为以下几类:u算术运

3、算符:用于各类数值运算。包括:算术运算符:用于各类数值运算。包括:、* *、/ /、% %、u关系运算符:用于比较运算。包括:关系运算符:用于比较运算。包括: 、 、 、! !u逻辑运算符:用于逻辑运算。包括:逻辑运算符:用于逻辑运算。包括:&、|、! !u位操作运算符:参与运算的量,按二进制位进行运算。位操作运算符:参与运算的量,按二进制位进行运算。包括:包括:& &、| |、 、 、西安工业大学计算机学院西安工业大学计算机学院5/1/20223.4 运算符和表达式运算符和表达式u赋值运算符:用于赋值运算,分为:赋值运算符:用于赋值运算,分为:、,、,* *,/ /,

4、% %、& &,| |, , * / % = + -结合方向:结合方向:左向右左向右运算结果:运算结果:数值型数值型2.2.算术表达式算术表达式1).1).用算术运算符和括号将运算对象用算术运算符和括号将运算对象( (也叫操作数也叫操作数) )连接起来的连接起来的符合语言语法规则的式子,称为算术表达式。符合语言语法规则的式子,称为算术表达式。 运算对象包括常量、变量和函数等。运算对象包括常量、变量和函数等。如如: 3.14: 3.14* *r r* *r r * *1.51.5aa西安工业大学计算机学院西安工业大学计算机学院5/1/20223.3.自增与自减自增与自减+i, -

5、i+i, -i:在使用在使用i i之前之前, ,先使先使i i的值加的值加1 1或减或减1 1i+, i-i+, i-:在使用在使用i i之后之后, ,使使i i的值加的值加1 1或减或减1 1注意注意: :1)1)自增自增、自减运算符只能用于变量自减运算符只能用于变量, ,不能用于常量或表达式不能用于常量或表达式. . 如如: 5+, -(x+y): 5+, -(x+y)2)+2)+、-的优先级别高于算术运算符的优先级别高于算术运算符, ,结合方向自右向左结合方向自右向左. . 如如: -i+ : -i+ 相当于相当于 -(i+) -(i+) i+j i+j 相当于相当于 (i+i+)+j+

6、j西安工业大学计算机学院西安工业大学计算机学院5/1/2022例例: #include void main( ) int i=0, j; j=+i; printf( i=%dtj=%dn, i, j); i=0; j=i+; printf( i=%dtj=%dn, i, j); 运行结果:运行结果:1 11 1 1 0 1 0西安工业大学计算机学院西安工业大学计算机学院5/1/2022例:例: int i = 3, j, k ; j = i + ; k = + i ; int i = 3, j ; j = ( i + ) + ( i + ) + ( i + ) ; int i = 3, j ;

7、 j = ( + i ) + ( + i ) + ( + i ) ;注意注意: :在程序中,尽量不要使用后两种容易引起歧义在程序中,尽量不要使用后两种容易引起歧义的写法,代码要尽可能简单易懂的写法,代码要尽可能简单易懂西安工业大学计算机学院西安工业大学计算机学院5/1/20222.4.2.4.2 2 赋值运算符与赋值表达式赋值运算符与赋值表达式1.1.简单赋值运算符简单赋值运算符 = =用法用法: : 变量变量 = = 表达式表达式 ; ;作用作用: :将表达式的值赋给变量将表达式的值赋给变量. .如如: a=6; : a=6; sum = a+b; sum = a+b; c=getchar(

8、); c=getchar();西安工业大学计算机学院西安工业大学计算机学院5/1/2022如如: a+=3 : a+=3 等价于等价于 a=a+3a=a+3 x x* *=y+4 =y+4 等价于等价于 x=xx=x* *(y+4)(y+4)2.2.复合赋值运算符:复合赋值运算符:在赋值运算符在赋值运算符 “= =” 之前加上其它之前加上其它运算符运算符, ,构成复合赋值运算符构成复合赋值运算符+=+=(加赋值)(加赋值) |=|=(按位或赋值)(按位或赋值) -=-=(减赋值)(减赋值) =(按位异或赋值)(按位异或赋值) * *= =(乘赋值)(乘赋值) =(右移位赋值)(右移位赋值) %

9、=%=(求余赋值)(求余赋值) &=&=(位与赋值)(位与赋值)西安工业大学计算机学院西安工业大学计算机学院5/1/20223.3.赋值表达式:由赋值运算符将一个变量和一个表达赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式式连接起来的式子称为赋值表达式. .运算规则运算规则优先级:优先级: 同等优先级,非常低同等优先级,非常低结合方向:结合方向:右向左右向左运算结果:运算结果:将变量值作为表达式的运算结果将变量值作为表达式的运算结果不同数据类型的赋值:不同数据类型的赋值:自动类型转换自动类型转换西安工业大学计算机学院西安工业大学计算机学院5/1/20

10、22计算过程计算过程:(1):(1)计算赋值运算符右边表达式的值计算赋值运算符右边表达式的值. . (2) (2)将计算结果赋给左边的变量将计算结果赋给左边的变量. . (3) (3)赋值表达式的值就是被赋值的变量的值赋值表达式的值就是被赋值的变量的值. .例例: :a=6a=6; a=(b=3);( a=(b=3);(右结合右结合) ) a=b=c=5; a=b=c=5; a=5+(c=6); a=5+(c=6);while(c=getchar()!= EOF)while(c=getchar()!= EOF)等价于等价于 a=a+(a-(aa=a+(a-(a* *a)?a)?结果是多少?结果

11、是多少?例例: :a=6a=6; a+=a-=a a+=a-=a* *a;a;西安工业大学计算机学院西安工业大学计算机学院5/1/2022 大于大于 = = 大于等于大于等于 小于小于 = bab, (abab) (bcb = = = 1 1或或0 0西安工业大学计算机学院西安工业大学计算机学院5/1/2022例例: :Given a=1,b=2,c=3, please evaluate the value of the following expression: a+b=3 cba c=a=b a+=b (ab)(bc !(ab)&!c|1 !(x=a)&(y=b)&

12、0 !(a+b)+c-1&b+c/2运算规则运算规则优先级:优先级: Not Not = And And = Or Or结合方向:结合方向:自左向右自左向右运算结果:运算结果:逻辑值真或假逻辑值真或假 = 1 1或或0 0西安工业大学计算机学院西安工业大学计算机学院5/1/2022注意注意: : 1 1)在给出逻辑运算结果时,)在给出逻辑运算结果时,1 1表示真,表示真,0 0表示假表示假 2) 2) 在判断一个量的值时,在判断一个量的值时,0 0表示假,表示假, 非非0 0表示真表示真 3) 3) 如果一个表达式中不同位置上出现数值,应区分该数值如果一个表达式中不同位置上出现数值,应

13、区分该数值参与何种运算参与何种运算 4) 4) 参与逻辑运算的数据对象可以是任何类型的数据,可以参与逻辑运算的数据对象可以是任何类型的数据,可以是实型、字符型或指针类型等是实型、字符型或指针类型等西安工业大学计算机学院西安工业大学计算机学院5/1/2022逻辑表达式的求解:逻辑表达式的求解:只有在必要时才求解下一个逻辑运算只有在必要时才求解下一个逻辑运算 例例1:a & b & c 只有只有a为真时,才求解为真时,才求解b的值,只有的值,只有a、b都为真时,才求解都为真时,才求解c 例例2:a | | b | | c 只有只有a为假时,才求解为假时,才求解b的值,只有的值,只有

14、a、b都为假时,才求解都为假时,才求解c 举例:举例:int a = 1,b = 2,c = 3,d = 4,m = 1,n = 1; ( m = a b ) & ( n = c d )应用举例:判断某年是否闰年应用举例:判断某年是否闰年 闰年:闰年:y % 4 = 0 & y % 100 != 0 | | y % 400 = 0 非闰年:非闰年: ! ( y % 4 = 0 & y % 100 != 0 | | y % 400 = 0 ) 或:或: y % 4 != 0 | | y % 100 = 0 & y % 400 != 0西安工业大学计算机学院西安工业

15、大学计算机学院5/1/2022有有int a=3,b=4,c=5;则以下表达式的值是:;则以下表达式的值是:a|b+c&b=c !(a+b)+c-1&b+c/2 下列运算符中优先级最高的是下列运算符中优先级最高的是 ,最低的是,最低的是 。A)& B)+ C)! D)= E)=写出下面命题对应的逻辑表达式写出下面命题对应的逻辑表达式y是奇数是奇数x或或y中有一个小于中有一个小于z字符字符ch是小写字母是小写字母年号年号year是闰年是闰年若若a=0; b=0.5; x=0.3;则则 a=x0 结果为结果为 , A100 结果为结果为 。练习练习: :西安工业大学计算机学

16、院西安工业大学计算机学院5/1/20222.4.2.4.5 5 逗号运算符与逗号表达式逗号运算符与逗号表达式1 1、逗号运算符:用于连接多个表达式、逗号运算符:用于连接多个表达式 , ,求解过程求解过程: :1)1)求解表达式求解表达式1 1 2) 2)再求解表达式再求解表达式2,2,表达式表达式i i 3) 3)整个逗号表达式的值是表达式整个逗号表达式的值是表达式i i的值的值. .逗号运算符是所有运算符中级别最低的逗号运算符是所有运算符中级别最低的. .2 2、逗号表达式:、逗号表达式:型如以下形式型如以下形式表达式表达式1,1,表达式表达式2,2, ,表达式表达式i i例例: :a=(3

17、a=(3* *5,a5,a* *4),a+64),a+6 x=(a=3,6 x=(a=3,6* *3)3) x=a=3,6 x=a=3,6* *a a西安工业大学计算机学院西安工业大学计算机学院5/1/20222.4.2.4.6 6 条件运算符与条件表达式条件运算符与条件表达式1 1、条件运算符:、条件运算符:? :唯一的三目运算符:唯一的三目运算符求解过程求解过程: :1)1)求解求解expr1expr1的值的值 2) 2)若若expr1expr1为非为非0 0,则返回,则返回expr2expr2的值的值 3) 3)若若expr1expr1为为0 0,则返回,则返回expr3expr3的值的

18、值2 2、条件表达式:、条件表达式:型如以下形式型如以下形式expr1 ? expr2 : expr3expr1 ? expr2 : expr3expr1取expr2值取expr3值非0=0可以看出,条件表达可以看出,条件表达式的作用相当于执行式的作用相当于执行了分支判断,但又不了分支判断,但又不能完全取代选择结构能完全取代选择结构西安工业大学计算机学院西安工业大学计算机学院5/1/2022例例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a & cb) printf(“%d”,a); else printf(“%d”,b);printf(“%d”,ab?a

19、:b);西安工业大学计算机学院西安工业大学计算机学院5/1/20222.4.2.4.7 7 位运算符与表达式位运算符与表达式位运算符:位运算符:按位逻辑与按位逻辑与& 按位逻辑或按位逻辑或 | 按位取反按位取反 按位异或按位异或 左移左移 操作举例:操作举例:char a = 0 x56,b=0 x3b;a&b : 00010010a | b : 01111111a b : 01101101 a : 10101001a : 01010110a2 : 00001110b : 00111011“异或异或”操作:参加运算的两个二进制位的值不同则操作:参加运算的两个二进制位的值不同则结

20、果为结果为1,否则结果为,否则结果为0a : 01010110b : 001110117 6 5 4 3 2 1 0a : 01010110b : 001110117 6 5 4 3 2 1 0a : 01010110b : 001110117 6 5 4 3 2 1 0西安工业大学计算机学院西安工业大学计算机学院5/1/20221.1.整数除得整数整数除得整数 2/3=02/3=0;2.2.合法的表达式;合法的表达式;3.3.表达式中数据类型的转换表达式中数据类型的转换; ;4.4.自增,自减;自增,自减;5.5.同优先级,按从右向左结合同优先级,按从右向左结合 i+ i+ -(i+) -(

21、i+);西安工业大学计算机学院西安工业大学计算机学院5/1/2022数据类型,运算符与表达式举例数据类型,运算符与表达式举例 例 1 书写下列算式的表达式。 (1) v=1/2at2(2) d=abc(3) (4)aacbbx2421xxxytancossin西安工业大学计算机学院西安工业大学计算机学院5/1/2022 解 (1) v=0.5*a*t*t (2) d=(a=b)&(b=c) (3) x1=(-b+sqrt(b*b-4*a*c)/(2*a) 表达式中的sqrt是求平方根函数,在程序中出现, 在程序首部加上: include (4) y=(sin(x)+cos(x)/tan(x) 表达式中的三个函数是三角函数, x的单位是弧

温馨提示

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

评论

0/150

提交评论