《运算与表达式》PPT课件.ppt

《运算与表达式》PPT课件.ppt

ID:51648148

大小:389.00 KB

页数:37页

时间:2020-03-27

《运算与表达式》PPT课件.ppt_第1页
《运算与表达式》PPT课件.ppt_第2页
《运算与表达式》PPT课件.ppt_第3页
《运算与表达式》PPT课件.ppt_第4页
《运算与表达式》PPT课件.ppt_第5页
资源描述:

《《运算与表达式》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章运算与表达式3.1算术运算3.1.1基本算术运算符单目基本算术运算符+正值运算符-负值运算符双目基本算术运算符+加法运算符-减法运算符*乘法运算符/除法运算符%模(求余)运算符3.1算术运算3.1.1基本算术运算符注意:如果两个操作对象是不同的类型。系统先把它们转成相同类型(这个转换并不会改变操作对象的值),然后再进行运算,运算结果值的类型也是转换后的类型。除法运算的两个操作对象如果是整型,则结果是去掉小数部分后的整型,如19/10的表达式值是1,如果操作对象是整型且符号不同,则不同编译器出来方法可能不同,大部分是按照绝对值进行计算,结果去除小数部分后再加上负号。求余运算如果操作对

2、象有负数,则先按照两操作对象的绝对值进行计算,然后表达式的值,即余数的值按照操作对象1的符号确定,如-13%7、-13%-7两个表达式值都是-6,13%-7、13%7表达式值都是6。3.1算术运算3.1.2优先级与结合性复合表达式由运算符、操作对象构成的有值的式子被称为表达式。操作对象本身也可以是一个表达式。含有两个或更多操作符的表达式称为复合表达式。例如:a+b/3*c-15%3复合表达式按运算符的优先级别高低次序计算基本算术运算符的优先级为一级:单目运算:+、-二级:双目运算:*、/、%三级:双目运算:+、-3.1.2优先级与结合性优先级相同按由运算符的结合性确定计算次序右结合一个运

3、算对象左右两边的运算符如果优先级相同时就先算右边的或有两个同级别的运算符就先算右边的一个。例如:单目运算符。左结合一个运算对象在左右两边的运算符如果优先级相同时就先算左边的或有两个同级别的运算符就先算左边的一个。例如:双目运算符。例如:10*2/5使用括号(2+10)*-2/5+((5+3)%4)*23.1算术运算3.1.3数据类型转换数据类型转换当表达式中出现不同类型数据的混合运算时,往往需要先进行数据类型的转换后才能运算,这种转换并不会改变原来变量的值和数据类型。隐式类型转换两个相同类型的数据(除short、char、float)直接可以运算,不需要类型转换。两个不同类型的数据运算时

4、,系统会自动地将低类型操作数转换为另一个高类型操作数的类型,然后再进行运算。short、char=>int->unsignedint->long->unsignedlong->float=>double->longdouble强制类型转换(类型名)(表达式)例如:(double)x例1,设inta=7;floatx=2.1,y=4.4;求表达式x+a%3*(int)(x+y)%2/4的值。#includevoidmain(){inta=7;floatx=2.1,y=4.4;printf("%d",a%3);printf("%d",(int)(x+y));prin

5、tf("%d",a%3*(int)(x+y));printf("%d",a%3*(int)(x+y)%2);printf("%d",a%3*(int)(x+y)%2/4);printf("%f",x+a%3*(int)(x+y)%2/4);}例2,设inta=2,b=3;floatx=4.1,y=2.4;求表达式(float)(a+b)/2+(int)x%(int)y的值。3.7赋值运算3.7.1赋值运算符和赋值表达式一般形式为:变量=表达式说明赋值运算符的优先级仅高于逗号运算符,赋值表达式的求解过程为:先计算赋值运算符右边的表达式的值,再将计算的值赋给运算符左边的变量。

6、赋值运算符具有计算和赋值的双重功能。赋值运算复合赋值运算在赋值运算符之前加上其它运算符可以构成复合赋值运算符一般形式如下:+=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……例如,已知x=3,y=2,求表达式x*=y+8的值。又如,已知m=2,y=2,求表达式y+=y-=m*=y的值。【例1】编写程序,实现从键盘上输入学生的三门课成绩,计算并输出其总成绩和平均成绩。#includevoidmain(){floata,b,c,sum,ave;/*输入部分*/printf("Ente

7、rthreefloat:");scanf("%f,%f,%f,",&a,&b,&c);/*计算与输出部分*/sum=a+b+c;ave=sum/3;printf("sum=%6.2fave=%6.2f",sum,ave);}应用举例【例2】输入一个字符,求它的前驱和后继字符。并输出这三个字符及其对应的ASCII码。一个字符的前驱字符是比该字符ASCII码值小1的字符。一个字符的后继字符是比该字符ASCII码值大1的字符。#i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。