运算符与表达式优秀课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2 算术运算符与表达式
3.2.1 算术运算符
3.2.2 算术表达式
用算术运算符和括号将运算对象(即操作 数)连接起来的、符合C语言语法规则的表 达式,称为算术表达式。
1. 整数算术运算
参加算术运算的两个操作数都是整数,那么 这个表达式就称为整数表达式,该操作称 为整数算术运算,其结果总是一个整数值。
示例 3-4
判断两个数是否相等
判断两个整数是否相等,可以直接用关系 运算符==。
判定两个实数是否相等时,由于计算机存 储上出现的误差,会出现错误的结果,
1.0/3.0*3.0 == 1.0 为“假”,即0 fabs ( 1.0/3.0 *3.0 – 1.0) <1 e -5 fabs是求绝对值函数。只要1.0/3.0 *3.0与1.0
【例3-1】自增自减运算符示例
3.4 赋值运算符与表达式
3.4.1 赋值运算符与赋值表达式 1. 赋值运算符
符号“=”就是赋值运算符,它是将一个 数赋给一个变量 。
a=5 设a=3, b=a+2
2. 赋值表达式 由赋值运算符将一个变量和一个表达式连
接起来的式子就称为“赋值表达式”。其 一般形式如下: <变量>=<表达式>
自减运算符:--
自增自减运算符都是单目运算符,需要使用变量 作为它们的操作数,其表达式格式为:
++变量名 --变量名
变量名++
变量名- -
其中,运算符在变量名前面,称为前缀;运算符 在变量名后面,称为后缀。
++i与- -i是指在使用i之前,先把i的值加1或减1。
i++与i- -则是指在使用i之后,再把i的值加1或减1。
3. 小括号的用途 C语言中小括号也作为一个特殊的运算符来
处理,并且它的优先级别是最高的,所以 在一些比较长或复杂的表达式中,可以恰 当的使用小括号规定运算的先后次序。
【示例】设a=8,b=2,c=16,d=8
(a+b)*(c-d)的值为80 a+b*c-d的值为32 a/(c/d)的值为4 a/c/d的值为0
以上类型转换是由系统自动进行的。
【例3-2】赋值运算符示例
main()
{
int a=2;
/*定义并初始化整型变量a*/
double e=5.123; /*定义并初始化双精度变量e*/
float f=4.2;
/*定义并初始化单精度变量f*/
float c=e/a;
/*定义并初始化单精度变量c*/
int b=(int)f%a;
/*对f进行强制类型转换*/
printf("%d,%f\n",b,c); /*输出变量b和c的值*/
}
3.4.2 复合赋值运算符
3.5 关系运算符与表达式
3.5.1 关系运算符
3.5.2 关系表达式
用关系运算符连接起来的两个表达式称为 关系表达式。其中,关系运算符两侧的表 达式可以是算术表达式、逻辑表达式、赋 值表达式和字符表达式等。
运算符与表达式优秀 课件
3.1 C语言运算符概述
运算符是一种符号,它告诉计算机执行某 些数学或逻辑操作。 在程序中,运算符用于数据和变量的操作。
3.1 C语言运算符概述
C语言的运算符:
算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算 符、逗号运算符等
表达式就是操作数和运算符的组成系列, 最终推导出一个值。
么这个表达式就称为实数表达式,该操作 称为实数算术运算,其结果总是一个实数 值。
6.0/7.0=0.857143
1.0/3.0=0.333333 【注意】 实数不能进行%(求余)运算
3. 混合算术运算
如果表达式中既有实数,又有整数,则称 此表达式为混合算术表达式,其结果是一 个实数。
15/10.0=1.5 而15/10=1
(double )a
将a转换成double类型
(int)(x+y)
将x+y的值转换成整型
(float)(5%3) 将5%3的值转换成float型
【注意】要转换的表达式应该用括号括起来,如 果写成
(int)x+y,则是将x装换成整型,然后与y相加。
3.3 自增运算符与表达式
自增运算符:++
a>b,a+b>c-d,(a=3)<=(b=5),'a'>='b', (a>b)= =(b>c)
关系表达式的值是一个逻辑值,即“真” 或“假”。在C语言中没有逻辑类型的数据, 所以用整数“1”表示逻辑“真”,用整 数“0”表示逻辑“假”。
关系表达式的值
假设num1=3,num2=4,num3=5,则: num1>num2的值=0。 (num1>num2)!=num3的值=1。 num1<num2<num3的值=1。 (num1<num2)+num3的值=6。
【示例】假设变量a=14,b=4,则
a-b=10
a+b=18
a*b=56
Leabharlann Baidua/b=3(小数部分被截除)
a%b=2(余数)
对于取模运算,结果的符号总与第一个操 作数(被除数)的符号相同:
-14%3=-2 -14%-3=-2 14%-3=2
2. 实数算术运算 参加算术运算的两个操作数都是实数,那
3.2.4 表达式中的类型转换 如果一个运算符两侧的数据类型不同 ,可
以进行
隐式类型转换(系统自动进行) 显式类型转换(强制类型转换)
隐式类型转换
int i , x ; float f; double d; long int l ; 进行x=l/i+i*f-d的运算
显式类型转换(强制类型转换) 强制类型转换运算符的一般形式: (类型名)(表达式)
3.2.3 运算符的优先级与结合性
1. 优先级 在表达式求值时,先按运算符的优先级别 高低次序执行,例如先乘除后加减。 a-b*c,相当于 a-(b*c)。 2. 结合性 如果一个运算对象两侧的运算符的优先级 别相同,如a-b+c,按规定的“自左向右”处 理。
C规定了各种运算符的优先级和结合性,可 参见附录II。
a=2
a=b=c=3
3. 赋值运算时的类型转换
将实型数据赋给整型变量时,需要舍弃该 实数的小数部分。例如:int a = 1.23 ; 变量a 得到的值为1,小数部分被舍弃。
将整型数据赋给单、双精度变量时,数值 不变,但是将以浮点数的形式存储到变量 之中。例如:float b=10 ; 则需要将10转换为 10.00000,再存储到b中。