《运算符与表达式讲稿.ppt》由会员分享,可在线阅读,更多相关《运算符与表达式讲稿.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关于运算符与表达式关于运算符与表达式第一页,讲稿共四十六页哦3.1 C语言运算符概述语言运算符概述n n运运算算符符是是一一种种符符号号,它它告告诉诉计计算算机机执执行行某某些数学或逻辑操作。些数学或逻辑操作。n n在程序中,运算符用于数据和变量的操作。在程序中,运算符用于数据和变量的操作。第二页,讲稿共四十六页哦3.1 C语言运算符概述语言运算符概述n nC语言的运算符:算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符、逗算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符、逗号运算符等号运算符等n n表达式就是操作数和运算符的组成系列,最终推导出一个值。第三页,讲稿共四十六
2、页哦3.2 算术运算符与表达式算术运算符与表达式 n n3.2.1 算术运算符算术运算符第四页,讲稿共四十六页哦n n3.2.2 算术表达式 n n用算术运算符和括号将运算对象(即操作数)连接起来的、符合C语言语法规则的表达式,称为算术表达式。n n1.整数算术运算整数算术运算 参加算术运算的两个操作数都是整数,那么这个表达式就称为整数表达式,该操作称为整数算术运算,其结果总是一个整数值。第五页,讲稿共四十六页哦n n【示例】假设变量a=14,b=4,则n n a-b=10a+b=18a*b=56a/b=3(小小数部分被截除数部分被截除)n na%b=2(余数)n n对于取模运算,结果的符号总
3、与第一个操作数(被除数)的符号相同:n n-14%3=-2-14%-3=-2 14%-3=2第六页,讲稿共四十六页哦n n2.实数算术运算实数算术运算 n n参加算术运算的两个操作数都是实数,那么这个表达式就称为实数表达式,该操作称为实数算术运算,其结果总是一个实数值。n n6.0/7.0=0.857143n n1.0/3.0=0.333333n n【注意】实数不能进行%(求余)运算第七页,讲稿共四十六页哦n n3.混合算术运算混合算术运算n n如果表达式中既有实数,又有整数,则称此表达式为混合算术表达式,其结果是一个实数。15/10.0=1.515/10.0=1.5而而15/10=115/1
4、0=1第八页,讲稿共四十六页哦n n3.2.3 运算符的优先级与结合性运算符的优先级与结合性n n1.优先级优先级n n在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。n na-b*c,相当于 a-(b*c)。n n2.结合性结合性n n如果一个运算对象两侧的运算符的优先级别相同,如a-b+c,按规定的“自左向右”处理。n nC规定了各种运算符的优先级和结合性,可参见附录II。第九页,讲稿共四十六页哦n n3.小括号的用途小括号的用途n nC语言中小括号也作为一个特殊的运算符来处理,并且它的优先级别是最高的,所以在一些比较长或复杂的表达式中,可以恰当的使用小括号规定运算的先
5、后次序。n n【示例】设a=8,b=2,c=16,d=8(a+b)*(c-d)(a+b)*(c-d)的值为的值为8080a+b*c-da+b*c-d的值为的值为3232a/(c/d)a/(c/d)的值为的值为4 4a/c/da/c/d的值为的值为0 0第十页,讲稿共四十六页哦n n3.2.4 表达式中的类型转换n n如果一个运算符两侧的数据类型不同,可以进行n n隐式类型转换(系统自动进行)隐式类型转换(系统自动进行)n n显式类型转换(强制类型转换)显式类型转换(强制类型转换)第十一页,讲稿共四十六页哦n n隐式类型转换n nint i,x;float f;double d;n nlong
6、int l;n n进行x=l/i+i*f-d的运算第十二页,讲稿共四十六页哦n n显式类型转换(强制类型转换)显式类型转换(强制类型转换)n n强制类型转换运算符的一般形式:强制类型转换运算符的一般形式:n n(类型名)(表达式)(类型名)(表达式)n n(double double)a a将将a a转换成转换成doubledouble类型类型n n(intint)()(x+yx+y)将将x+yx+y的值转换成整型的值转换成整型n n(floatfloat)()(5%35%3)将将5%35%3的值转换成的值转换成floatfloat型型n n【注意注意】要转换的表达式应该用括号括起来,如果写要
7、转换的表达式应该用括号括起来,如果写成成n n(intint)x+yx+y,则是将,则是将x x装换成整型,然后与装换成整型,然后与y y相加。相加。第十三页,讲稿共四十六页哦3.3 自增运算符与表达式自增运算符与表达式 n n自增运算符:自增运算符:+n n自减运算符:自减运算符:-n n自增自减运算符都是单目运算符,需要使用变量作为它们自增自减运算符都是单目运算符,需要使用变量作为它们的操作数,其表达式格式为:的操作数,其表达式格式为:n n+变量名变量名 -变量名变量名n n变量名变量名+变量名变量名-n n其中,运算符在变量名前面,称为前缀;运算符在变量名其中,运算符在变量名前面,称为
8、前缀;运算符在变量名后面,称为后缀。后面,称为后缀。n n+i+i与与-i-i是指在使用是指在使用i i之前,先把之前,先把i i的值加的值加1 1或减或减1 1。n ni+i+与与i-i-则是指在使用则是指在使用i i之后,再把之后,再把i i的值加的值加1 1或减或减1 1。第十四页,讲稿共四十六页哦【例例3-1】自增自减运算符示例自增自减运算符示例 第十五页,讲稿共四十六页哦3.4 赋值运算符与表达式赋值运算符与表达式 n n3.4.1 赋值运算符与赋值表达式 n n1.赋值运算符赋值运算符 符号符号“=”就是赋值运算符,它是将一个数赋给就是赋值运算符,它是将一个数赋给一个变量一个变量。
9、a=5 设a=3,b=a+2 第十六页,讲稿共四十六页哦n n2.赋值表达式赋值表达式n n由赋值运算符将一个变量和一个表达式连接起来的式子就称为“赋值表达式”。其一般形式如下:n n=n n a=2 n na=b=c=3第十七页,讲稿共四十六页哦n n3.赋值运算时的类型转换赋值运算时的类型转换n n将实型数据赋给整型变量时,需要舍弃该实数的小数部分。例如:int a=1.23;变量a得到的值为1,小数部分被舍弃。n n将整型数据赋给单、双精度变量时,数值不变,但是将以浮点数的形式存储到变量之中。例如:float b=10;则需要将10转换为10.00000,再存储到b中。n n以上类型转换
10、是由系统自动进行的。第十八页,讲稿共四十六页哦【例例3-2】赋值运算符示例赋值运算符示例n nmain()main()n n n n int a=2;int a=2;/*/*定义并初始化整型变量定义并初始化整型变量a*/a*/n n double e=5.123;double e=5.123;/*/*定义并初始化双精度变量定义并初始化双精度变量e*/e*/n n float f=4.2;float f=4.2;/*/*定义并初始化单精度变量定义并初始化单精度变量f*/f*/n n float c=e/a;float c=e/a;/*/*定义并初始化单精度变量定义并初始化单精度变量c*/c*/n
11、 n int b=(int)f%a;int b=(int)f%a;/*/*对对f f进行强制类型转换进行强制类型转换*/n n printf(%d,%fn,b,c);/*printf(%d,%fn,b,c);/*输出变量输出变量b b和和c c的值的值*/n n 第十九页,讲稿共四十六页哦n n3.4.2 复合赋值运算符 第二十页,讲稿共四十六页哦3.5 关系运算符与表达式关系运算符与表达式 n n3.5.1 关系运算符 第二十一页,讲稿共四十六页哦n n3.5.2 关系表达式 n n用关系运算符连接起来的两个表达式称为关系表达式。其中,关系运算符两侧的表达式可以是算术表达式、逻辑表达式、赋值
12、表达式和字符表达式等。n nab,a+bc-d,(a=3)=b,(ab)=(bc)n n关系表达式的值是一个逻辑值,即“真”或“假”。在C语言中没有逻辑类型的数据,所以用整数“”表示逻辑“真”,用整数“”表示逻辑“假”。第二十二页,讲稿共四十六页哦关系表达式的值关系表达式的值n n假设num1=3,num2=4,num3=5,则:n nnum1num2的值=0。n n(num1num2)!=num3的值=1。n nnum1num2num3的值=1。n n(num1num2)+num3的值=6。n n示例 3-4第二十三页,讲稿共四十六页哦判断两个数是否相等判断两个数是否相等 n n判断两个整数
13、是否相等,可以直接用关系运算符=。n n判定两个实数判定两个实数是否相等时,由于计算机存储上是否相等时,由于计算机存储上出现的误差,会出现错误的结果,出现的误差,会出现错误的结果,n n1.0/3.0*3.0=1.0 为“假”,即0n nfabs(1.0/3.0*3.0 1.0)b)&(xy)n n(ab)|(xy)n n!a 第三十页,讲稿共四十六页哦n n3.7.2 逻辑表达式 n n用逻辑运算符将表达式连接起来,构成的表达式称为逻辑表达式 n n判断某一年份year是否闰年的逻辑表达式为:n n(year%4=0)&(year%100!=0)|(year%400=0)第三十一页,讲稿共四
14、十六页哦逻辑表达式应用:判别逻辑表达式应用:判别x是否属于是否属于a,bn n数学上判别x是否在区间 a,b 中时,习惯上写成axb n nC语言中为了判别x是否在a,b 范围内,应写成:n na=x&xn2)&(y=n3n4)”(x=n1n2)&(y=n3n4)”后,后,x x、y y的值分别是多少?的值分别是多少?第三十六页,讲稿共四十六页哦n n【例3-8】写出描述点A(x,y)落在图3.11中阴影部分(不压线)的C语言逻辑表达式。第三十七页,讲稿共四十六页哦3.8 逗号运算符与表达式逗号运算符与表达式 n n逗号运算符的作用是将两个表达式连接起来。一般形式如下:n n表达式1,表达式2
15、n n它的求解过程为:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值。n na=3,b=4的值为4。第三十八页,讲稿共四十六页哦【例例3-9】读取一个三位数字的整数,显示这读取一个三位数字的整数,显示这3个个数字之和。数字之和。第三十九页,讲稿共四十六页哦第四十页,讲稿共四十六页哦【例例3-10】销售人员的工资销售人员的工资 n n某电器销售公司对其销售人员的薪资由基本工资、奖金和提成三部分组成,并且制定如下奖惩政策:n n基本工资基本工资1500.00n n每售出一台空调的奖金奖金200.00n n每月总销售的提成提成 月总销售额*2%n n销售数量和销售单价需要从键盘输入第四十一页,讲稿共四十六页哦n n总工资=基本工资+(数量奖金)+(数量单价)佣金率第四十二页,讲稿共四十六页哦第四十三页,讲稿共四十六页哦第四十四页,讲稿共四十六页哦第四十五页,讲稿共四十六页哦2022/10/17感感谢谢大大家家观观看看第四十六页,讲稿共四十六页哦