第三章运算符与表达式ppt课件_第1页
第三章运算符与表达式ppt课件_第2页
第三章运算符与表达式ppt课件_第3页
第三章运算符与表达式ppt课件_第4页
第三章运算符与表达式ppt课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

.,1,第三章运算符和表达式,.,2,3.1运算符的有关知识1、运算符和表达式运算量:参加运算的对象称为运算量,运算对象包括:常量、变量、函数等。运算符:表示运算的符号称为运算符或操作符。运算符的目:要求有一个运算量的运算符称为单目运算符;要求有两个运算量的运算符称为双目运算符;要求有三个运算量的运算符称为三目运算符。表达式:用运算符把运算量连接起来的符合C语言语法规则的式子称为表达式。C语言的表达式主要有:算术表达式、关系表达式、逻辑表达式、赋值表达式、条件表达式、逗号表达式。,.,3,2、应注意的几个问题运算的优先级别:如果在一个运算量两侧的运算符的“优先级别”不同,则应先执行“优先级别”高的运算符。结合方向:如果在一个运算量两侧的运算符的“优先级别”相同,则按运算符的结合方向的顺序进行处理。结合方向包括:左结合,即按自左向右的顺序进行处理;右结合,即按自右向左的顺序进行处理。注:优先级和结合方向的区别:前者是针对”优先级别不同”的情况,后者是针对”优先级别相同”的情况。,例如:3+2*5,应先计算2*5(=10),再计算3+10(=13)。,例如:6/3*2,在运算量3的两侧有两个运算符/和*,它们的优先级别相同,如果按左结合进行处理,所得的结果为4;如果按右结合进行处理,所得的结果为1。,.,4,3.2算术运算1、双目算术运算运算符:+,-,*,/(除),%(模或求余)。优先级别:+,-是同级别的;*,/,%是同级别的,且高于+,的级别。结合方向:均为左结合。+,-,*运算的运算规则、运算量的类型与结果类型运算规则与数学中的运算规则相同;要求参加运算的两个运算量可以是整型数据,也可以是实型数据;如果两个运算量都是整型数据,则结果也是整型数据;如果两个运算量至少有一个是实型数据,则结果是double型数据。,.,5,/运算的运算规则、运算量的类型与结果类型要求参加运算的两个运算量可以是整型数据,也可以是实型数据;如果两个运算量都是整型数据,则结果也是整型数据,此时的除法运算称为整除;如果两个运算量至少有一个是实型数据,则结果是double型数据。a%b运算的运算规则、运算量的类型与结果类型对于模运算%,要求两个运算量a,b都是整型数据;运算规则是求a被b除所得的余数,结果的符号与被除数a的符号相同,运算结果还是整型数据。2、算术表达式:根据运算符的优先级别和结合方向,通过加括号最终化为用算术运算符连接起来的表达式。,例如:inta=5,b=2;则a/b=2(2.5),a*b=10,例如:floata=5.0,b=2.0;则a/b=2.5,a*b=10.0,例如:inta=5,b=-5,c=3,d=-3;则a%c=2,a%d=2,b%c=-2,b%d=-2,.,6,例2-1已知变量a是一个两位正整数,用C语言的表达式分别表示a的个位和十位。,解答:a的个位的C语言的表达式:a%10,a的十位的C语言的表达式:a/10。,做一做,课堂实践4已知变量a是一个三位正整数,用C语言的表达式分别表示a的个位、十位和百位。,解答:a的个位的C语言的表达式:a%10,a的十位的C语言的表达式:(a/10)%10,a的百位的C语言的表达式:(a/10)/10。,.,7,3.3赋值类运算1、赋值运算运算符:=一般形式:变量=表达式作用:把赋值号右边表达式值赋给赋值号左边的变量,即把表达式的值传送到变量的内存单元中。优先级别:仅高于逗号运算符。结合方向:右结合。赋值表达式:根据运算符的优先级别和结合方向,通过加括号最终化为用赋值号把变量和表达式连接起来的式子称为赋值表达式。赋值表达式:赋值表达式的值为赋值后赋值号左边变量的值。,例如:表达式b=a=a+5是赋值表达式,因为=的优先级别低于+,是右结合的,所以b=a=a+5相当于b=(a=(a+5),因此是赋值表达式。,.,8,2、复合的赋值运算复合的赋值运算符:自反加赋值:+=;自反减赋值;-=;自反乘赋值:*=;自反除赋值:/=;自反模赋值:%=。运算规则:a+=b等价于a=a+b;a-=b等价于a=a-b;a*=b等价于a=a*b;a/=b等价于a=a/b;a%=b等价于a=a%b。优先级别:与赋值运算符同级。结合方向:右结合。例2-2设有如下定义和语句inta=5,b=3,c;c=b*=a+2;表达式c=b*=a+2相当于c=(b=(b*(a+2),分析表达式c=b*=a+2执行前后各变量在内存中的变化情况:,5,a,3,b,?,c,表达式c=b*=a+2执行前,21,21,表达式c=b*=a+2执行后,.,9,3.4自加和自减运算运算符:+,-一般形式:后缀形式:变量+,变量前缀形式:+变量,-变量在运算符的一侧通常必须是变量,不能是常量或表达式。运算规则:后缀形式变量的值加(减)1,但表达式的值为变量增值前的值;前缀形式变量的值加(减)1,但表达式的值为变量增值后的值。可以用一句话概括为:后缀形式变量”先引用,后增减”,前缀形式变量”先增减,后引用”。优先级别:高于算术运算。结合方向:右结合。,当变量自增自减运算单独作为一条语句时,采取前缀或后缀形式变量值的结果一样(都是使变量加或减1),如:a+;等价+a;但,当它们出现在混合表达式中时,前缀后缀不同形式,结果值往往是有区别的.,.,10,例2-3指出以下程序段执行后各变量的值。例2-4设有定义inta=3,b,c=5;请将以下两条语句a-;b=a+c;写成一条语句。,例2-3指出以下程序段执行后各变量的值。inta=3,b,c;b=a+;c=+a;该程序段执行后各变量的值为:,a=5,b=3,c=5,例2-4设有定义inta=3,b,c=5;请将以下两条语句b=a+c;a-;写成一条语句。解答:写成一条语句为:b=a-+c;,做一做,课堂实践5设有定义inta=3,b,c=5;请将以下三条语句+a;b=a+c;+c;写成一条语句。,解答:写成一条语句为:b=+a+c+;。,.,11,3.5逗号运算逗号运算也是C语言所特有的运算,利用逗号运算可一次计算多个表达式的值。运算符:,(逗号)优先级别:优先级别最低。结合方向:左结合逗号表达式:用逗号运算符把两个表达式连接起来的式子,称为逗号表达式。逗号表达式的一般形式:表达式1,表达式2,表达式n运算过程及表达式的值:先求解表达式1,再计算表达式2.再计算表达n,最后,整个逗号表达式的值为表达式n的值。,例如:(a=3*5),(a*5),(a+5)该表达式执行完毕变量a的值为15,逗号表达式的值为20。,inta=1;printf(%dn,a,a*5,a+10);printf(%dn,(a,a*5,a+10);思考,输出结果:111,.,12,3.6各数值型数据的混合运算,整型(包括int,short,long)和实型(包括float,double)数据可以混合运算,另外字符型数据和整型数据可以通用,因此,整型、实型、字符型数据之间可以混合运算。例如:表达式10+a+1.5-8765.1234*b是合法的。在进行运算时,不同类型的数据先转换成同一类型,然后进行计算,转换的方法有两种:自动转换(隐式转换);强制转换(显示转换)。,.,13,1、自动(隐式)类型转换不同类型数据在混合运算时,系统自动进行一些数据类型转换,遵循的原则如下,总原则是:精度(空间)小的朝精度(空间)大的转换。,1)类型不同,先转换为同一类型,然后进行运算。2)转换按数据长度增加的方向进行,以保证精度不降低。3)图中横向向左的箭头表示必定的转换。即:所有实数都是以双精度double型进行运算的,即使表达式中仅包含float单精度型数据,也要都先转换成double型,再作运算。所有char型、short型参与运算时,都先转换成int型。4)赋值运算,如果赋值号“=”两边的数据类型不同,赋值号右边的类型转换为左边的类型。这种转换是截断型的转换,不会四舍五入。,.,14,2、强制(显式)类型转换C语言中,可以通过强制(显式)的方法把某种类型的数据转换为另一种类型,方法是:(数据类型)(表达式)例如:(double)x;/把x强制转为double类型(int)(9.0/4.0);/把9.0/4.0的结果转为int类型,结果为2(int)x+y;/把x变量转为int类型后与y相加。,例如:要将3.5*4.8转换为整型数据,应写成(int)(3.5*4.8),而不能写成(int)3.5*4.8,这是因为强制类型转换运算符的优先级别高于算术运算。,.,15,说明:1)将实数转换为整数时,系统采用的是截断方式,而不是四舍五入;,例如:a=(int)3.8执行后,a的值为3而不是4。(显式转换),例如:(隐式转换)floata=1.6;intb;b=a;printf(%d,b);执行后,b的值是1而不是2,.,16,说明:2)无论隐式转换,强制转换都是临时转换,不改变数据本身的类型和值。,voidmain()floatf=5.75;printf(int)f=%dn,(int)f);/*将f的结果强制转换为整型,输出*/printf(f=%fn,f);/*输出f的值*/结果:(int)f=5f=5.750000,.,17,补充:求长度运算长度运算用来求常量、变量或某种类型在内存中的存储长度。运算符:sizeof一般形式:sizeo

温馨提示

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

评论

0/150

提交评论