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

付费下载

下载本文档

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

文档简介

运算符和表达式运算符和操作数运算符可分为:一元运算符,有一个操作数二元运算符,有左右两个操作数三元运算符,有三个操作数操作数可以是:变量a+6常量有值的函数表达式运算符和操作数的有效组合在程序执行的过程中,变量 的实际值和表达式中出现的 常量一起使用.操作数运算符2

*

y

+

5算术表达式在C中,可以用算术运算符、数字和字符操作数来表示数学表达式示例++i

%

75

+

(c

=

3

+8)a

*

(b

+

c/d)+22根据运算符不同,表达式也分为:算术表达式逻辑表达式关系表达式等等……下面我们介绍其它几类运算符及其表达式运算符类型转换位算术条件间的并且,或者,否:&&

||

!将数字按二进制的位进行计算:&

|

~

^把一个数据强制转换成另一类型:

(类型)表达式赋值关系逻辑+

-

*

/

%

++

--给变量一个值:=

+=

-=

*=测试两个量之间的关系:>

<

>=

<=

==

!=/=复合赋值运行1、赋值运算符(一)赋值符号“=”通用的形式:变量名=表达式例如:a=1,b=3.5,d=‘a’,a=(a+3)%2

等注意:赋值符号两侧的数据类型应保持一致。若两侧的类型不一致,类型要进行转换。将同一个值赋给多个变量的操作叫做多重赋值但是,不能像下面的语句中那样赋值:a=b=c=10int

a=int

b=int

c=10赋值运算符(二复合赋值运算符)复合的赋值运算符在赋值符“=”之前加上其它算术运算符,可以构成复合的运算符,如:a+=3x*=y+8x%=3等价于a=a+3等价于x=x*(y+8)等价于x=x%32、关系运算符运算符关系运算>大于>=大于等于<小于<=小于等于==等于!=不等于用于测试两个量之间的关系(比较判断的条件)用关系运算符计算的表达式称为关系表达式,表达式计算的结果是逻辑值:True(1)或False(0)例如:

a>b7>92+3+a<b*5a==14b!=a*4age>=60比较运算符(续上)比较运算符优先级(从高到低):<,<=,>,>=•

==,!=三类运算符的优先级(从高到低):算术运算符关系运算符赋值运算符用关系运算符(比较运算符)将两个表达式连接起来的式子,称为关系表达式9.写出float

x

与“零值”比较的if语句。(学员动手做)关系表达式c>a+ba>b!=c等价于c>(a+b)等价于(a>b)!=ca==b<c

等价于a==(b<c)a=b>c

等价于a=(b>c)另外如下:A+b>b+c、’a’>’b’、(a>b)>(b<c)这些都是关系表达式3、逻辑运算符逻辑运算符用于对包含关系运算符的表达式进行合并或取非

0

1示例:if

((a>10)&&

(a<20))使用逻辑运算符的表达式,返回0表示假,返回1表示真.运算符逻辑运算&&与(并且)||或(或者)!非(不是)逻辑与运算符(&&)条件1条件2条件1

&&

条件2FalseFalseFalseFalseTrueFalseTrueFalseFalseTrueTrueTrue例如:要判断一个年y是否是闰年的一个标准是,能被4整除但不能被100整除,怎么表示?(学员动手做)逻辑或运算符(||)或者,两个条件有一个为真,结果即为真条件1条件2条件1

||条件2FalseFalseFalseFalseTrueTrueTrueFalseTrueTrueTrueTrue表示一个年是否是闰年:能被4整除但不能被100整除的,或者能被400整除的是闰年,怎么表示?(学员动手做)逻辑非运算符(!)把判断的结果取反.只有一个操作数.条件!条件TrueFalseFalseTrue例如:a>5若要表示a不大于5:!(a>5)逻辑运算符用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式,逻辑运算符两侧可以是任何类型的数据例如:4&&6可以将逻辑表达式的运算结果赋给整型变量或字符型变量.例如:a=b<3

||

b>9逻辑运算符优先级优先级运算符1非!2与&&3或||优先级:、&&和||的优先级低于关系运算符和算术运算符!的优先级高于算术运算符,例如:5>3&&2||8<4-!0的最后结果是多少?(学员动手做)若a=3,b=4,c=2,则下列表达式的结果是?a=!b

||

a+c>b

&&

b+c>a练习1(学员动手做):根据要求写出相应的表达式:–若给定三个边a,b,c,判断是否能构成三角形的表达式–表示年y不在100—9999范围内练习1

答案:根据要求写出相应的表达式:若给定三个边a,b,c,判断是否能构成三角形的表达式(a+b>c)

&&

(a+c>b) &&

(

b+c>a)表示年y不在100—9999范围内Y<100||Y>9999!((y>=100)

&&(y<=9999))4、位运算符(一)将数字转换成等价的二进制形式后再计算数据(按位表示法)运算符描述按位与

(x&y)如果两个操作数的相应位均为1,则该位的结果值为1按位或

(x

|

y)如果两个操作数的相应位有一个为1,则该位的结果值为1按位取反

(~x)将操作数按位取反(0到1和1到0)按位异或

(x^y)如果参加运算的两个操作数的相应位相同,则结果为0,异号则为1位运算符(二)示例操作数位操作位表达式数字10

&151010

&

111110101010

|151010

|

111111111510

^

151010

^

111101015~

10~101011110101-11注意:位运算要注意这种类型的数据时占几位位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字类型转换运算符的操作数属于不同的数据类型,运算时通常会将这些操作数转换为同一类型char—int—long—float—doublechar

ch;int

i;floatf;double

d;result=(ch/i)+(f*d)-(f+i);int

double

floatdoubledouble5、强制类型转换通过使用转换也可以将一个表达式强制转换成某一种类型。转换的通用语法是:(type)表达式type

任意有效的C数据类型示例:经过赋值运算后,(int)f返回的整型值重新转换为浮点数,f本身的值不变。Int

x;floatf;f

=

3.14159;x=(int)f;练习2:若a是int,b是float

,c是char\下列表达式计算的结果是什么类型?a+c+b*2运算符之间的优先级(一)当公式中含有多种类型的运算符时,必须确立不同类型运算符之间的优先级顺序。一般来说,算术、比较、逻辑运算符的优先级符合下表优先级运算符类型1算术2比较3逻辑修改优先级括号()的优先级最高。使用括号()可修改运算符的优先级。用括号括起来的优先级较低的运算符具有最高的优先级,最先执行。在括号嵌套

(

(

(

)

)

)

的情况下,最里层的最先执行。包含多个括号的表达式从左向右进行计算。不同类型运算符间的优先级从高到低,同一行是同一等级()、[]、.、->!、++、--、-*、/、%+、-<<、>>>、<、>=、<===、!=&^|&&||=、+=、-=、/=、*=等补充1:字符型常量数据c

温馨提示

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

最新文档

评论

0/150

提交评论