C语言表达式和算术运算符资料课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言表达式和算术运算符资料课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 表达式 算术 运算 资料 课件
- 资源描述:
-
1、 第第3章章 表达式和运算符(表达式和运算符(3)3.5 运算符和表达式运算符和表达式u 3.5.1 运算符的种类、优先级和结合性运算符的种类、优先级和结合性u 3.5.2 算术运算符和算术表达式算术运算符和算术表达式u 3.5.3 赋值运算符和赋值表达式赋值运算符和赋值表达式u 3.5.4 增量运算符和增量表达式增量运算符和增量表达式u 3.5.8 逗号运算符和逗号表达式逗号运算符和逗号表达式3.5运算符和表达式运算符和表达式算术运算符算术运算符:+ - * / % 自增自减运算符自增自减运算符:+ -关系运算符关系运算符: = !=逻辑运算符逻辑运算符:!(逻辑非逻辑非), &( 逻辑与逻
2、辑与), |(逻辑或逻辑或);位运算符位运算符 : (按位取反按位取反), &(位与位与), |(位或位或), (异或异或), (右移右移);赋值运算符赋值运算符:= 及其扩展赋值运算符及其扩展赋值运算符条件运算符条件运算符:?:逗号运算符逗号运算符:,指针、地址运算符指针、地址运算符:* * &求字节数求字节数 :sizeof强制类型转换强制类型转换:(类型类型)成员运算符成员运算符:. -下标运算符下标运算符: 其它其它 :函数调用运算符:函数调用运算符( ) 等等运算符和表达式运算符和表达式优先级优先级是指表达式中包含是指表达式中包含多个运算符时,多个运算符时,先进行优先进行优先级高先级
3、高的运算符操作,然的运算符操作,然后进行优先级低的运算符后进行优先级低的运算符操作;操作;当表达式中包含的几个运当表达式中包含的几个运算符的算符的优先级全相同优先级全相同时,时,由由运算符的结合性运算符的结合性来决定来决定他们的运算顺序。他们的运算顺序。结合性结合性: 同一优先级,自同一优先级,自左向右,为左向右,为左结合性左结合性,反,反之为之为右结合性右结合性。初等运算符初等运算符( 、( )、 . 、- )单目运算符单目运算符算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符(不包括逻辑非运算不包括逻辑非运算符符!)赋值运算符赋值运算符逗号运算符逗号运算符3.5.2算术运算符和
4、算术表达式算术运算符和算术表达式 1 1、基本的算术运算符基本的算术运算符: : (加法运算符,或正值运算符。如(加法运算符,或正值运算符。如: :、)、) (减法运算符,或负值运算符。如(减法运算符,或负值运算符。如: :、)、)* * (乘法运算符。如(乘法运算符。如: :* *) (除法运算符。如(除法运算符。如: :) (模运算符,或称求余运算符,两侧均应为整型数据,(模运算符,或称求余运算符,两侧均应为整型数据,如如: :的值为)。的值为)。算术运算符算术运算符的优先级别:的优先级别: * *、/ /、% %优先于优先于 + + 、 ( (* *、/ /、% %不分不分) ) ,()
5、级别最高,()级别最高,单目运算符优先双目运算符单目运算符优先双目运算符 如如 2 4算术运算符和算术表达式算术运算符和算术表达式 2、算术表达式、算术表达式(1)表达式表达式由常量、变量、函数和运算符组成的式子称为表达式由常量、变量、函数和运算符组成的式子称为表达式例:计算圆面积的语句例:计算圆面积的语句 s=3.14159* *r* *r; 该语句中该语句中r,3.14159,3.14159* *r,3.14159* *r* *r, s=3.14159* *r* *r都是表达式都是表达式 * *是运算符,是运算符, 3.14159是常量,是常量,s是变量是变量(2)表达式的求值规则表达式的
6、求值规则,按照运算符的优先级和结,按照运算符的优先级和结合性的规定顺序进行。一个表达式有一个值及其类合性的规定顺序进行。一个表达式有一个值及其类型型算术运算符和算术表达式算术运算符和算术表达式(3)算术表达式)算术表达式 是由算数运算符和操作数组合成的式子,是由算数运算符和操作数组合成的式子,算术表算术表达式用于各类数值运算达式用于各类数值运算。除求余运算符除求余运算符%外,运算外,运算对象可以是整型,也可以是实型。对象可以是整型,也可以是实型。 如:如:(-b-sqrt(d)/(2.0* *a)n运算对象包括常量、变量、函数等。运算对象包括常量、变量、函数等。n一个常量、变量都可作为一个表达
7、式。一个常量、变量都可作为一个表达式。n例例: 以下是合法的算术表达式:以下是合法的算术表达式: a*b/c-1.5+ a 3* *x+1.0/y10* *sqrt(x) (x+y)%(x+b-c/d) 100 x算术运算符和算术表达式算术运算符和算术表达式说明:说明:1)“%”是求余运算。是求余运算。a%b计算计算a除以除以b以后的余数,也是以后的余数,也是a模模b的值。它要求的值。它要求两个运算对象都是整型两个运算对象都是整型量,其量,其结果也是整型结果也是整型量。量。当运算量为负数时,所得结果的符号与被除数(当运算量为负数时,所得结果的符号与被除数(a)相)相同。同。如:如:17%-3=
8、2 -19%4=-3 -15%-7=-1 5%1.5是非法的算术表达式是非法的算术表达式2)除法运算符)除法运算符“/”进行求商运算。对于不同类型的运算对象,进行求商运算。对于不同类型的运算对象,除法表达式计算结果的类型也会不同。除法表达式计算结果的类型也会不同。例:计算例:计算x/y如果如果x,y为整型,小数部分为整型,小数部分舍去舍去, ,没有四舍五入没有四舍五入如果如果x,y中有一个为实型量,则中有一个为实型量,则x,y都被化为都被化为double类型进类型进行计算,结果为行计算,结果为double算术运算符和算术表达式算术运算符和算术表达式运算实例:运算实例:x,y为整型量:为整型量:
9、5/2结果为结果为2,整型量,整型量 2/5结果为结果为0,整型量,整型量x,y其中一个为实型量其中一个为实型量5.0/2或或 5.0/2.0或或 5.0/2.0结果为结果为2.5,实型量实型量练习:练习:例如例如 (16/32+1)%6的值的值_. 计算方法:计算方法:16/3值为值为5,然后然后52+l值为值为9,最后最后9%6值为值为3。算术运算符和算术表达式算术运算符和算术表达式3)双目运算符两边的运算类型必须一致才能进行操)双目运算符两边的运算类型必须一致才能进行操作,所得结果类型与运算类型一致;作,所得结果类型与运算类型一致;如:如:1.0/2.0=0.5 1/2=04)如果)如果
10、类型不一致,系统将自动把两边转换成相同类型不一致,系统将自动把两边转换成相同类型后进行运算;类型后进行运算;如:如:1.0/2=0.5 1/2.0=0.5 整型转实型整型转实型 短整型转长整型短整型转长整型 有符号转无符号有符号转无符号5)C语言中语言中所有实数的运算均以双精度方式进行所有实数的运算均以双精度方式进行,若是单精度数,则在尾数部分补若是单精度数,则在尾数部分补0,使之转化为双,使之转化为双精度;精度;例:将数学式改写成算术表达式例:将数学式改写成算术表达式一般数学式一般数学式 算术表达式算术表达式a(b+c)+dac (a* *(b+c)+d)* *a* *c 3.14159*
11、*r* *r/2.0 x/(x+y)+1.0/x* *y算术运算符和算术表达式算术运算符和算术表达式基本运算符实例基本运算符实例基本运算符实例:基本运算符实例: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;printf(“c1=%dtc2=%dn”,c1,c2);标准库函数调用标准库函数调用对于某些数学运算,如求对于某些数学运算,如求平方根,指数,对数运算平方根,指数,对数运算,C语言中有标准库函数对其进行计算。语言中有标准库函数对其进行计算。调用格式:函数名
12、(参数,参数,调用格式:函数名(参数,参数,)其中函数名由系统提供,不同其中函数名由系统提供,不同C编译系统,提供的函数编译系统,提供的函数名不同,使用时需查阅相关手册。名不同,使用时需查阅相关手册。调用函数时,参数的类型必须与系统规定一致调用函数时,参数的类型必须与系统规定一致调用标准库函数之前,通常要调用标准库函数之前,通常要用预编译命令用预编译命令“#include math.h”将所需要的库函数信息包含到用将所需要的库函数信息包含到用户源文件中户源文件中使用数学库函数使用数学库函数在使用数学库函数以前,需使用编译命令在使用数学库函数以前,需使用编译命令#include “math.h”
13、例:计算例:计算x(2+xy)的值的值#include “math.h”main()double x,y; x=5.0;y=7.0; printf(“z=%fn”,x* *(2.0+pow(x,y);算术表达式中数据类型的转换算术表达式中数据类型的转换3、各类型数值数据的转换、各类型数值数据的转换 当表达式中的当表达式中的各类数值型数据参与混合运算各类数值型数据参与混合运算时,时,要进行类型转换要进行类型转换下面表达式合法:下面表达式合法:1+3.14159+0+A转换方式转换方式自动转换自动转换:数据类型自动由低级向高级转换。:数据类型自动由低级向高级转换。强制转换强制转换:将表达式的运算结
14、果:将表达式的运算结果强制转换成指定的强制转换成指定的数据类型数据类型。算术表达式中数据类型的转换算术表达式中数据类型的转换自动转换规则:自动转换规则:floatdoublelongunsignedintCharshort低低高高自动自动自动自动算术表达式中数据类型的转换算术表达式中数据类型的转换 练习:练习:1 1若有定义:若有定义:intint a; a; 则语句则语句a=(4 a=(4 * * 5)+ 4 % 5; 5)+ 4 % 5;运行后,运行后,a a的值为(的值为( )2 2设设doubledouble型变量型变量a,b,c,ea,b,c,e均有值均有值; ;对代数式对代数式(3
15、ae)/(bc)(3ae)/(bc),不正确的,不正确的C C语言表达式是(语言表达式是( )。)。 (A) a/b/c(A) a/b/c* *e e* *3 (B) 33 (B) 3* *a a* *e/b/ce/b/c (C) 3 (C) 3* *a a* *e/be/b* *c (D) ac (D) a* *e/c/be/c/b* *3 33. P3. P5959 3.3 3.4 3.3 3.43.5.3赋值运算符和赋值表达式赋值运算符和赋值表达式1、赋值运算符和赋值表达式、赋值运算符和赋值表达式赋值表达式的一般格式为:变量赋值表达式的一般格式为:变量=表达式表达式说明:说明: 1)赋值
16、运算符赋值运算符左边必须是变量左边必须是变量而不能是而不能是常量或常量或表达式表达式,右边是合法的右边是合法的c语言表达式;语言表达式; 例:例:j+3=j a* *b=c* *4 5=x x+1=y* *a+3 错误错误 2)赋值表达式的值是赋值号左边变量被赋值后赋值表达式的值是赋值号左边变量被赋值后的值;的值;正确的表示形式:正确的表示形式: x=10 x=y n=n+1 3)赋值语句可以连续进行赋值语句可以连续进行 a=b=7+1 等价于等价于a=(b=(c=0) 赋值运算符和赋值表达式赋值运算符和赋值表达式2、复合的赋值表达式、复合的赋值表达式算术运算符算术运算符“+-* */%”和赋
17、值运算符和赋值运算符”=“结合结合+=: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)%=:a%=b+3,等价于等价于a=a%(b+3) =,=,&=,=,|=赋值运算符和赋值表达式赋值运算符和赋值表达式注意:注意:1)复合运算符)复合运算符左边必须是变量左边必须是变量2)复合运算符右边的表达式计算完成后才参与复)复合运算符右边的表达式计算完成后才参与复合赋值运算合赋值运算3)复合运算符的结合性和优先级等同于简单赋值)复合运算符的结合
18、性和优先级等同于简单赋值运算符运算符”=”4)复合运算符)复合运算符常用于某个变量自身的变化常用于某个变量自身的变化,尤其,尤其是当左边的变量名很长时,使用复合运算符书写是当左边的变量名很长时,使用复合运算符书写更方便。书写时,两个运算符之间不能有空格。更方便。书写时,两个运算符之间不能有空格。5)语言规定可以使用种复合赋值运算符:)语言规定可以使用种复合赋值运算符:,*,| 赋值运算符和赋值表达式赋值运算符和赋值表达式3、赋值类型转换、赋值类型转换 如果赋值号两边的类型不一致,则将如果赋值号两边的类型不一致,则将赋值号右边赋值号右边表达式的值的类型转换成表达式的值的类型转换成赋值号左边变量的
展开阅读全文