第3讲运算符和表达式精选PPT.ppt

上传人:石*** 文档编号:48772758 上传时间:2022-10-07 格式:PPT 页数:27 大小:1.30MB
返回 下载 相关 举报
第3讲运算符和表达式精选PPT.ppt_第1页
第1页 / 共27页
第3讲运算符和表达式精选PPT.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《第3讲运算符和表达式精选PPT.ppt》由会员分享,可在线阅读,更多相关《第3讲运算符和表达式精选PPT.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第3讲 运算符和表达式第1页,本讲稿共27页第第3 3讲讲 运算符和表达式运算符和表达式一、表达式一、表达式二、算术运算符和算术表达式二、算术运算符和算术表达式四、算术表达式中数据类型的转换四、算术表达式中数据类型的转换三、标准库函数调用三、标准库函数调用六、增量运算符与增量表达式六、增量运算符与增量表达式七、逗号运算符与逗号表达式七、逗号运算符与逗号表达式五、赋值运算五、赋值运算 第2页,本讲稿共27页一、表达式一、表达式 由常量、变量、函数和运算符组成的式子称为由常量、变量、函数和运算符组成的式子称为表达式。表达式。例:计算圆面积时用的例:计算圆面积时用的3.14159*r*r 表达式的求

2、值规则:表达式的求值规则:按照运算符的优先级和结按照运算符的优先级和结合性的规定顺序进行。合性的规定顺序进行。优先级优先级用来确定运算符的运算顺序用来确定运算符的运算顺序(例如:先乘例如:先乘除后加减除后加减)。而。而结合性结合性用来确定优先级相同的运算符用来确定优先级相同的运算符的运算顺序的运算顺序(例如:从左向右例如:从左向右)。例如:表达式例如:表达式1+2*31+2*3的结果为的结果为7 7,而不是,而不是9 9。表达式表达式1-2+31-2+3的结果为的结果为2 2,而不是,而不是-4-4。第3页,本讲稿共27页单目运算符:单目运算符:只需要一个运算对象的运算符。如只需要一个运算对象

3、的运算符。如-5-5中的负号。中的负号。双目运算符:双目运算符:需要两个运算对象的运算符。如加、减、乘、除。需要两个运算对象的运算符。如加、减、乘、除。表达式的值和类型:表达式的值和类型:一个表达式有一个值及其类型,它们等于计算表一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。达式所得结果的值和类型。例如:表达式例如:表达式2+52+5的类型为的类型为intint型;而型;而2.5+22.5+2的类型的类型为为floatfloat型。型。第4页,本讲稿共27页二、算术运算符和算术表达式二、算术运算符和算术表达式算术运算符用于各类数值运算。算术表达式中的运算算术运算符用于各类数

4、值运算。算术表达式中的运算对象都是算术量,即整型、实型或字符型。对象都是算术量,即整型、实型或字符型。下表为基本的算术运算符:下表为基本的算术运算符:运算符运算规则操作数数目优先级结合方向负号单目2右结合加法双目4左结合减法双目4左结合乘法双目3左结合除法双目3左结合求余或模双目3左结合第5页,本讲稿共27页1)其中单目运算符其中单目运算符负号负号的优先级最高,为的优先级最高,为2级。级。2)除法运算对于不同类型的运算对象,计算结果除法运算对于不同类型的运算对象,计算结果和结果的类型会不同。和结果的类型会不同。注意:注意:如果除法运算的两个运算量都为整型,计算结如果除法运算的两个运算量都为整型

5、,计算结果为整型;如果有一个计算运算量为实型,则计算果为整型;如果有一个计算运算量为实型,则计算结果为实型。结果为实型。例如:例如:5/2结果为结果为2,2/5结果为结果为0,运算结果的类,运算结果的类型为型为 int(整型整型)。5.0/2或或5/2.0或或5.0/2.0结果都为结果都为2.5,运算结果的类型为,运算结果的类型为float(实型实型)。第6页,本讲稿共27页 3)求余运算求余运算%要求两个运算对象都是要求两个运算对象都是整型量,整型量,其其结果也是整型。结果也是整型。a%b表示计算表示计算a除以除以b后的余数,结果与被除数的后的余数,结果与被除数的符号相同。例如:符号相同。例

6、如:7%2的值为的值为1,10%-3的值为的值为1。可以利用求余运算来判断一个数能否被另一个数可以利用求余运算来判断一个数能否被另一个数整除。例如:如果整除。例如:如果x%y的值为的值为0,则表示,则表示x能被能被y整除。整除。还可以利用求余运算来进行数的分解。例如:如还可以利用求余运算来进行数的分解。例如:如果果x是一个三位整数,则是一个三位整数,则x%10即为即为x的个位数字。的个位数字。第7页,本讲稿共27页例:将数学式改写成算术表达式例:将数学式改写成算术表达式一般数学式一般数学式a(b+c)+dac算术表达式算术表达式(a*(b+c)+d)*a*c(a*(b+c)+d)*a*c将方括

7、号改成将方括号改成圆括号,圆括号,*不能省略不能省略x/(x+y)+1/(x*y)x/(x+y)+1/(x*y)其中不能出现分其中不能出现分数,除法运算时,圆括号不能省略数,除法运算时,圆括号不能省略3.14159*r*r/2.03.14159*r*r/2.0其中其中 为非字为非字母字符,要用实型常量代替母字符,要用实型常量代替第8页,本讲稿共27页例:基本算术运算的程序实例(写输出结果)例:基本算术运算的程序实例(写输出结果)main()int a,b,c1,c2;a=3;b=-7;c1=b/a;c2=b%a;printf(c1=%dtc2=%dn,c1,c2);c1=a/b;c2=a%b;

8、printf(c1=%dtc2=%dn,c1,c2);程序运行输出:程序运行输出:c1=-2 c2=-1c1=0 c2=3第9页,本讲稿共27页三、标准库函数调用三、标准库函数调用(补充补充)对于某些数学运算,如求平方根,指数、对数对于某些数学运算,如求平方根,指数、对数运算,运算,C C语言中有标准库函数对其进行计算。语言中有标准库函数对其进行计算。调用函数格式:调用函数格式:函数名(参数,参数,函数名(参数,参数,)其中函数名由系统提供,不同其中函数名由系统提供,不同C C的编译系统,提的编译系统,提供的函数名不同,使用时需查阅相关手册。供的函数名不同,使用时需查阅相关手册。调用函数时,参

9、数的类型必须与系统规定一致。调用函数时,参数的类型必须与系统规定一致。第10页,本讲稿共27页 调用标准库函数时,要用预编译命令调用标准库函数时,要用预编译命令#include将将所需要的库函数信息包含到用户源文件中。可以参考所需要的库函数信息包含到用户源文件中。可以参考教材上的附录教材上的附录3。例如,如果在程序中需要使用数学库函数,则使例如,如果在程序中需要使用数学库函数,则使用编译命令用编译命令#include 例:例:已知直角三角形的直角边长为已知直角三角形的直角边长为5和和12,计算斜边。,计算斜边。#include#include main()double x,y,z;x=5.0;

10、y=12.0;z=sqrt(x*x+y*y);printf(z=%fn,z);第11页,本讲稿共27页五、自增五、自增(+)和自减和自减(-)运算运算 功能:功能:+使变量的值增使变量的值增 1;-使变量的值减使变量的值减 1。两种格式:两种格式:前缀形式,例如:前缀形式,例如:+i和和-i 后缀形式,例如:后缀形式,例如:i+和和i-自增和自减都是单目运算自增和自减都是单目运算(只需要一个运算量,只需要一个运算量,并且必须是变量并且必须是变量),运算优先级为,运算优先级为2级。级。两种格式的区别:两种格式的区别:前缀形式,前缀形式,先自增先自增(减减),后使用,后使用后缀形式,后缀形式,先使

11、用,后自增先使用,后自增(减减)第12页,本讲稿共27页#include stdio.hmain()int a,b,c,d;a=b=c=d=10;a+;+b;printf(a=%d,b=%dn,a,b);c-;-d;printf(c=%d,d=%dn,c,d);程序的执行结果:程序的执行结果:a=11,b=11c=9,d=9例:写出下面程序的执行结果。例:写出下面程序的执行结果。第13页,本讲稿共27页例:写出执行结果。例:写出执行结果。#include stdio.hmain()int x,y;t=3;printf(t=%dn,t);x=t+;printf(x=%d,t=%dn,x,t);t

12、=3;printf(t=%dn,t);y=+t;printf(y=%d,t=%dn,y,t);程序结果:程序结果:t=3x=3,t=4t=3y=4,t=4第14页,本讲稿共27页#include stdio.hmain()int a,b,x,y;a=b=10;x=a+;y=+b;printf(a=%d,b=%d,x=%d,y=%dn,a,b,x,y);x=a-;y=-b;printf(a=%d,b=%d,x=%d,y=%dn,a,b,x,y);程序的执行结果:程序的执行结果:a=11,b=11,x=10,y=11 a=10,b=10,x=11,y=10例:写出下面程序的执行结果例:写出下面程序

13、的执行结果(前缀和后缀的区别前缀和后缀的区别)第15页,本讲稿共27页例:写出执行结果例:写出执行结果(提示:自增的优先级高于算术运算提示:自增的优先级高于算术运算)#include stdio.hmain()int i,j,k;i=1;j=1;k=i+j;printf(k=%d,i=%d,j=%dn,k,i,j);程序运行结果:程序运行结果:k=2,i=2,j=1 k=2,i=2,j=1说明:说明:表达式表达式 i+j i+j 等价于等价于(i+)+j(i+)+j第16页,本讲稿共27页六、逗号运算符与逗号表达式六、逗号运算符与逗号表达式逗号运算符:逗号运算符:也称顺序求值运算符,优先级最低

14、也称顺序求值运算符,优先级最低(15级级)。逗号表达式:逗号表达式:由逗号连接起来的两个或两个以上的表达式。由逗号连接起来的两个或两个以上的表达式。格式:格式:表达式表达式1,表达式,表达式2,表,表达式达式n例如:例如:x=5,y=10,z=x+y逗号表达式的计算过程:逗号表达式的计算过程:先求表达式先求表达式1的值,再求表达式的值,再求表达式2的值,的值,直至求出表达式直至求出表达式n的值。整个表达式的值为表达式的值。整个表达式的值为表达式n的的值。值。第17页,本讲稿共27页 1)x=0,y=100 2)x=5*8,6+9 3)x=1,y=99,z=(x+y)*5 4)x=(i=10,j

15、=5,i*j)5)x=i=10,j=5,i*j先后给先后给x,y的赋值,表达式的值为的赋值,表达式的值为100先把先把x赋值为赋值为40,表达式的值为,表达式的值为15给给x,y赋值后,计算赋值后,计算z的值,表达的值,表达式的值为式的值为500等价于赋值语句等价于赋值语句x50先给先给x,i赋值,再给赋值,再给j赋值,计算赋值,计算i*j,表达式的值为表达式的值为50例如:例如:第18页,本讲稿共27页七、赋值运算七、赋值运算1 1、简单赋值运算:、简单赋值运算:=格式:格式:变量变量=表达式表达式说明:说明:1)赋值运算符左边必须是变量。赋值运算符左边必须是变量。2)赋值表达式的计算次序为

16、从右向左。赋值表达式的计算次序为从右向左。例:执行例:执行x=y=5+7后,后,x和和y的值都是的值都是12。例:例:a=b=c=0,该表达式等价于,该表达式等价于a=(b=(c=0)例:例:j+3=jj+3=ja*b=c*4a*b=c*4左边的语句是错误的,赋值语左边的语句是错误的,赋值语句左边只能是变量句左边只能是变量第19页,本讲稿共27页3 3)如果两边的类型不一致,则先将右边表达式)如果两边的类型不一致,则先将右边表达式的值自动转换成左边变量的类型,再赋值。的值自动转换成左边变量的类型,再赋值。#include stdio.hmain()double x;int z;x=5.6;z=

17、x;printf(z=%dn,z);执行结果:执行结果:z=5例:写出下面程序的执行结果。例:写出下面程序的执行结果。第20页,本讲稿共27页2、复合赋值运算、复合赋值运算 算术运算符算术运算符+、-、*、/、%和赋值运算符和赋值运算符=结合起结合起来,形成复合赋值运算符来,形成复合赋值运算符+=、-=、*=、/=、%=。例如:例如:+=加赋值运算符。加赋值运算符。a+=b+3,等价于,等价于 a=a+(b+3)-=:如如a-=b+3,等价于,等价于 a=a-(b+3)*=:如如a*=b+3,等价于,等价于 a=a*(b+3)/=:如如a/=b+3,等价于,等价于 a=a/(b+3)%=:如:

18、如a%=b+3,等价于,等价于 a=a%(b+3)第21页,本讲稿共27页#include void main()int a,b,c;a=3;b=4;c=5;b+=a+3;c*=a+3;printf(a=%dn,a);printf(b=%dn,b);printf(c=%dn,c);例:写出下面程序的执行结果。例:写出下面程序的执行结果。(复合赋值运算复合赋值运算)执行结果:执行结果:a=3 b=10 c=30第22页,本讲稿共27页#include void main()int a;a=9;a+=a-=a+a;printf(a=%dn,a);例:写出下面程序的执行结果。例:写出下面程序的执行结

19、果。(赋值运算的计算次序赋值运算的计算次序)执行结果:执行结果:a=-18第23页,本讲稿共27页例:赋值语句程序实例例:赋值语句程序实例(写出程序的执行结果写出程序的执行结果)main()int a,b,c;a=b=c=5;printf(a=%d,b=%d,c=%dn,a,b,c);a=(b=4)+(c=6);printf(a=%d,b=%d,c=%dn,a,b,c);a+=b+c;printf(a=%d,b=%d,c=%dn,a,b,c);a+=a-=a*=a;printf(a=%dn,a);程序运行结果:程序运行结果:a=5,b=5,c=5a=10,b=4,c=6a=20,b=4,c=6

20、a=0第24页,本讲稿共27页八、数据类型转换八、数据类型转换 当表达式中的不同类型的数据参与混合运算时,当表达式中的不同类型的数据参与混合运算时,要进行类型转换。要进行类型转换。类型转换的两种方式:类型转换的两种方式:自动转换自动转换:数据类型自动由低级向高级转换。数据类型自动由低级向高级转换。强制转换:强制转换:将表达式的运算结果强制转换成指定将表达式的运算结果强制转换成指定的数据类型。的数据类型。例如,在计算下面的表达式时,会进行类型转换例如,在计算下面的表达式时,会进行类型转换 1+3.14159+1+3.14159+A A第25页,本讲稿共27页floatdoublelongunsi

21、gnedintcharshort自动转换规则:自动转换规则:例如例如:计算计算2+3.52+3.5先将先将2 2转换成转换成2.02.0,再,再计算计算2.0+3.52.0+3.5,得到的结果,得到的结果为为5.55.5。第26页,本讲稿共27页强制转换格式:强制转换格式:(新的数据类型新的数据类型)()(表达式表达式)说明:说明:强制转换得到的是中间结果,原变量的类型强制转换得到的是中间结果,原变量的类型不变和值不变。不变和值不变。#include stdio.hmain()double x;int z;x=5.5;z=(int)x;printf(x=%fn,x);printf(z=%dn,z);程序的执行结程序的执行结果:果:x=5.500000 z=5例:写出下面程序的执行结果。例:写出下面程序的执行结果。第27页,本讲稿共27页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁