《c语言程序设计教学资料》第3章-运算符与表达式_第1页
《c语言程序设计教学资料》第3章-运算符与表达式_第2页
《c语言程序设计教学资料》第3章-运算符与表达式_第3页
《c语言程序设计教学资料》第3章-运算符与表达式_第4页
《c语言程序设计教学资料》第3章-运算符与表达式_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第三章运算符和表达式,常用运算符和表达式运算符的优先级和结合性,第三章运算符和表达式,内容提要:,常用运算符和表达式,运算符按性质分类:(1)算数运算符:+-*/%(2)关系运算符:=|printf(“m/2=%dn”,m/2);printf(“(float)(m/2)=%fn”,(float)(m/2);printf(“(float)m/2=%fn”,(float)m/2);,运行结果:m/2=2(float)(m/2)=2.000000(float)m/2=2.500000,类型转换,算术表达式和运算符的优先级与结合性用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式。,例:(-16/3*2+1)%6=,-3,算数运算符和表达式,使用标准数学函数时,程序开头必须加上编译预处理命令。#include,例:给出三角形的三边长,求三角形面积。,解题思路:假设给定的三个边符合构成三角形的条件关键是找到求三角形面积的公式公式为:,其中s=(a+b+c)/2,#include#include/调用数学函数加此行intmain()doublea,b,c,s,area;a=3.67;b=5.43;c=6.21;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);/函数printf(a=%ftb=%ft%fn,a,b,c);printf(area=%fn,area);return0;,实验P43面积:体积:,#include#include#definePI3.14159main()doubler,surf,volu;printf(“Inputr:”);scanf(“%lf”,运行结果:Inputr:.5.0surf=314.159000Volu=523.598333,#include#definePI3.14159main()doubler,surf,volu;printf(“Inputr:”);scanf(“%lf”,算数运算符和表达式,常见错误:(1)将*省略,或者写成。(2)使用或者限定表达式的运算顺序。只能用()(3)使用数学函数运算时,未将参数()括起来,且未注意其定义域要求参数的单位。(如:三角函数参数的单位是弧度,不是角度,开平方函数的参数不能小于0等),说明:(1)两个整数相除的结果仍为整数,舍去小数部分的值。(2)求余运算先定参与运算的两个操作数为整数。(3)运算符的两侧数据类型不同,先自动进行类型转换,使二者具有同一种类型,然后进行运算。,赋值运算符与表达式,赋值运算符含义是将一个数据赋给一个变量,三种赋值形式:,(1)简单赋值,变量名=表达式,a=c+d,赋值表达式左边必须是变量,而不能是常量或者表达式,右边是合法的C语言表达式。例:i+3=ia*b=c*85=x错误,赋值表达式中的“表达式”,又可以是一个赋值表达式,(2)多重赋值,变量1=变量2=变量n=表达式,等价于:变量1=(变量2=(=(变量n=表达式),a=b=7+1,赋值运算符与表达式,(3)复合赋值,变量复合赋值符表达式,等价于:变量=变量赋值符表达式,在赋值符“=”前加上某些运算符,可以构成复合赋值运算符,复合赋值运算符可以构成赋值表达式C语言规定可以使用10种复合赋值运算符,+=、-=、*=、/=、%/、=、|=、=、a+=a-=a*=a;,常见错误:没有将复合赋值运算符右侧的表达式作为一个整体参与运算,例:n*=m+1,n=n*m+1(错),n=n*(m+1)(对),增1和减1运算符,说明:,自增、自减运算符+-作用:使变量值加1或减1种类:前置+i,-i(在使用i之前,先使i的值加(减)1)后置i+,i-(先使用i值,再使i的值加(减)1),增1和减1结合方向:自右向左,增1和减1都是单目运算符,只需一个操作数,操作数只能是变量,不能是常量和表达式。如:5+,(a+b)+,增1和减1运算符,+或-作为前缀或后缀运算符使用时,对变量而言,结果是一样的,但对于表达式而言,结果不一样。,设a=5(1)b=+a(2)b=a-(3)b=-a(4)b=a+,a=6,b=6a=4,b=5a=4,b=4a=6,b=5,例j=3;k=+j;j=3;k=j+;a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/c=20,a=4,/c=15,a=4,例:若n=3,则执行完m=-n+后,m,n分别是多少,m=-(n+),例:j=+i-2,等价于:i=i+1;j=i-2;,j=i+-2,等价于:j=i-2;i=i+1;,增1和减1运算符,逗号运算符和逗号表达式,逗号运算符:,作用:连接两个表达式优先级:所有运算符中优先级最低结合方向:从左向右形式:表达式1,表达式2,表达式n,逗号表达式的值:等于表达式n的值求解过程:先求表达式1,再求表达式2,依次求下去,直到求出表达式n,整个逗号表达式的值就是表达式n的值,例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3),/a=15,表达式值60,/a=15,表达式值20,/赋值表达式,表达式值18,x=18,注意:并不是任何地方出现的逗号,都是逗号运算符。很多情况下,逗号仅用作分隔符。,逗号运算符和逗号表达式,关系运算符与表达式,关系运算:比较运算,比较两个操作数,看是否满足给定的关系。用于简单的条件判断。,关系运算符与表达式,例:(1)3.243-1,等价于:a=(1+2)(3-1),关系运算符与表达式,例:,00,2=32=3=5z=3+1=2+3-1=5+6*2,等价于z=(3+1)=(2+3-1)bc。,ab,逻辑运算符与表达式,逻辑运算也成布尔运算,用于复杂的条件判断,逻辑运算真值表(表征逻辑事件输入和输出之间全部可能状态的表格),(1)b=1;c=2;d=a+,运算结果:d=0,a=1,b=1,c=2,d=(a+),例:a=0;b=1;c=2;d=a+|b+|-c;,运算结果:d=1,a=1,b=2,c=2,d=(a+)|(b+)|(-c);,条件运算符与条件表达式,有两个符号:?:,它与三个操作数组成三元运算。,一般形式:?:,求值规则和表达式的值:,例:,intmax,a=5;b=3;,max=ab?a:b,优先级:逻辑条件赋值,结果:max=5,a=5,b=3,位运算符与表达式,位运算真值表,左移位xn,把x的每一位向右移n位,左边空位补零。,从一端移走的不移入另一端,移出的位信息丢失,运算量只能是整型或字符型的数据,不能为实型数据。,位运算符与表达式,“按位与”运算符()参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。即:000,010,100,111,例:35并不等于8,应该是按位与运算:,注意:如果参加ba;ab;,011()100111(ab的结果,a已变成7)()100011(ba的结果,b已变成3)()111100(ab的结果,a已变成4),“取反”运算符(),是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变1,将1变0。例如,025是对八进制数25(即二进制数00010101)按位求反。11101010,作用:加密处理,初始字节:00000101一次求反后:11111010二次求反后:00000101,左移运算符(),左移运算符是用来将一个数的各二进制位全部左移若干位。其右边空出的位用0填补,高位左移溢出则舍弃该高位。,例如:a=),右移运算符是a2表示将a的各二进制位右移2位0。,例:a2a=017时,a的值用二进制形式表示为00001111,舍弃低2位11:a2=00000011,右移一位相当于除以2右移n位相当于除以2n。,在右移时,需要注意符号位问题:对无符号数,右移时左边高位移入0;对于有符号的值,-如果原来符号位为0(该数为正),则左边也是移入0。-如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的系统移入1。移入0的称为“逻辑右移”,即简单右移;移入1的称为“算术右移”。,常用运算符优先级和结合性,用括号来控制运算顺序更方便直观减小出错概率,习题:,1.表达式!x|a=b等效于,2.设有语句inta=3;则执行了语句a+=a-=a*=a;后,变量a的值是,3.解逗号表达式x=a=3,6*a后,表达式值、x、a的值依次为4.如下所示,执行以下程序段后,变量a,b,c的值分别是intx=10,y=9;inta,b,c;a=(-x=y+)?-x:

温馨提示

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

评论

0/150

提交评论