




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于运算符与表达式第1页,讲稿共46页,2023年5月2日,星期三3.1C语言运算符概述运算符是一种符号,它告诉计算机执行某些数学或逻辑操作。在程序中,运算符用于数据和变量的操作。
第2页,讲稿共46页,2023年5月2日,星期三3.1C语言运算符概述C语言的运算符:算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符、逗号运算符等表达式就是操作数和运算符的组成系列,最终推导出一个值。第3页,讲稿共46页,2023年5月2日,星期三3.2算术运算符与表达式
3.2.1算术运算符第4页,讲稿共46页,2023年5月2日,星期三3.2.2算术表达式用算术运算符和括号将运算对象(即操作数)连接起来的、符合C语言语法规则的表达式,称为算术表达式。1.整数算术运算
参加算术运算的两个操作数都是整数,那么这个表达式就称为整数表达式,该操作称为整数算术运算,其结果总是一个整数值。第5页,讲稿共46页,2023年5月2日,星期三【示例】假设变量a=14,b=4,则a-b=10 a+b=18 a*b=56 a/b=3(小数部分被截除)a%b=2(余数)对于取模运算,结果的符号总与第一个操作数(被除数)的符号相同:-14%3=-2 -14%-3=-2 14%-3=2第6页,讲稿共46页,2023年5月2日,星期三2.实数算术运算
参加算术运算的两个操作数都是实数,那么这个表达式就称为实数表达式,该操作称为实数算术运算,其结果总是一个实数值。6.0/7.0=0.8571431.0/3.0=0.333333【注意】实数不能进行%(求余)运算第7页,讲稿共46页,2023年5月2日,星期三3.混合算术运算如果表达式中既有实数,又有整数,则称此表达式为混合算术表达式,其结果是一个实数。15/10.0=1.5而15/10=1第8页,讲稿共46页,2023年5月2日,星期三3.2.3运算符的优先级与结合性1.优先级在表达式求值时,先按运算符的优先级别高低次序执行,例如先乘除后加减。a-b*c,相当于a-(b*c)。2.结合性如果一个运算对象两侧的运算符的优先级别相同,如a-b+c,按规定的“自左向右”处理。C规定了各种运算符的优先级和结合性,可参见附录II。第9页,讲稿共46页,2023年5月2日,星期三3.小括号的用途C语言中小括号也作为一个特殊的运算符来处理,并且它的优先级别是最高的,所以在一些比较长或复杂的表达式中,可以恰当的使用小括号规定运算的先后次序。【示例】设a=8,b=2,c=16,d=8(a+b)*(c-d)的值为80a+b*c-d的值为32a/(c/d)的值为4a/c/d的值为0第10页,讲稿共46页,2023年5月2日,星期三3.2.4表达式中的类型转换如果一个运算符两侧的数据类型不同,可以进行隐式类型转换(系统自动进行)显式类型转换(强制类型转换)第11页,讲稿共46页,2023年5月2日,星期三隐式类型转换inti,x;floatf;doubled;longintl;进行x=l/i+i*f-d的运算第12页,讲稿共46页,2023年5月2日,星期三显式类型转换(强制类型转换)强制类型转换运算符的一般形式:(类型名)(表达式)(double)a 将a转换成double类型(int)(x+y) 将x+y的值转换成整型(float)(5%3) 将5%3的值转换成float型【注意】要转换的表达式应该用括号括起来,如果写成(int)x+y,则是将x装换成整型,然后与y相加。第13页,讲稿共46页,2023年5月2日,星期三3.3自增运算符与表达式
自增运算符:++自减运算符:--自增自减运算符都是单目运算符,需要使用变量作为它们的操作数,其表达式格式为:++变量名--变量名 变量名++ 变量名--其中,运算符在变量名前面,称为前缀;运算符在变量名后面,称为后缀。++i与--i是指在使用i之前,先把i的值加1或减1。i++与i--则是指在使用i之后,再把i的值加1或减1。第14页,讲稿共46页,2023年5月2日,星期三【例3-1】自增自减运算符示例
第15页,讲稿共46页,2023年5月2日,星期三3.4赋值运算符与表达式
3.4.1赋值运算符与赋值表达式
1.赋值运算符符号“=”就是赋值运算符,它是将一个数赋给一个变量。
a=5设a=3,b=a+2第16页,讲稿共46页,2023年5月2日,星期三2.赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子就称为“赋值表达式”。其一般形式如下:<变量>=<表达式>
a=2a=b=c=3第17页,讲稿共46页,2023年5月2日,星期三3.赋值运算时的类型转换将实型数据赋给整型变量时,需要舍弃该实数的小数部分。例如:inta=1.23;变量a得到的值为1,小数部分被舍弃。将整型数据赋给单、双精度变量时,数值不变,但是将以浮点数的形式存储到变量之中。例如:floatb=10;则需要将10转换为10.00000,再存储到b中。以上类型转换是由系统自动进行的。第18页,讲稿共46页,2023年5月2日,星期三【例3-2】赋值运算符示例main(){inta=2; /*定义并初始化整型变量a*/doublee=5.123; /*定义并初始化双精度变量e*/floatf=4.2; /*定义并初始化单精度变量f*/floatc=e/a; /*定义并初始化单精度变量c*/intb=(int)f%a; /*对f进行强制类型转换*/printf("%d,%f\n",b,c);/*输出变量b和c的值*/}第19页,讲稿共46页,2023年5月2日,星期三3.4.2复合赋值运算符第20页,讲稿共46页,2023年5月2日,星期三3.5关系运算符与表达式
3.5.1关系运算符第21页,讲稿共46页,2023年5月2日,星期三3.5.2关系表达式用关系运算符连接起来的两个表达式称为关系表达式。其中,关系运算符两侧的表达式可以是算术表达式、逻辑表达式、赋值表达式和字符表达式等。a>b,a+b>c-d,(a=3)<=(b=5),'a'>='b',(a>b)==(b>c)关系表达式的值是一个逻辑值,即“真”或“假”。在C语言中没有逻辑类型的数据,所以用整数“1”表示逻辑“真”,用整数“0”表示逻辑“假”。第22页,讲稿共46页,2023年5月2日,星期三关系表达式的值假设num1=3,num2=4,num3=5,则:num1>num2的值=0。(num1>num2)!=num3的值=1。num1<num2<num3的值=1。(num1<num2)+num3的值=6。示例3-4第23页,讲稿共46页,2023年5月2日,星期三判断两个数是否相等
判断两个整数是否相等,可以直接用关系运算符==。判定两个实数是否相等时,由于计算机存储上出现的误差,会出现错误的结果,
1.0/3.0*3.0==1.0为“假”,即0fabs(1.0/3.0*3.0–1.0)<1e-5fabs是求绝对值函数。只要1.0/3.0*3.0与1.0之间的差小于10-5(或一个其它的很小的数),就认为1.0/3.0*3.0与1.0相等。第24页,讲稿共46页,2023年5月2日,星期三3.6条件运算符与表达式
条件运算符是“?:”,它是一个三目运算符,要求有三个操作数。条件表达式形式:表达式1?表达式2:表达式3第25页,讲稿共46页,2023年5月2日,星期三【例3-5】条件运算符:计算a+|b|第26页,讲稿共46页,2023年5月2日,星期三第27页,讲稿共46页,2023年5月2日,星期三3.7逻辑运算符与表达式
3.7.1逻辑运算符&& 逻辑与|| 逻辑或! 逻辑非第28页,讲稿共46页,2023年5月2日,星期三C语言在给出逻辑结果的时候,以数值1代表“真”,以数值0代表“假”;但在判断一个量是否为“真”时,以0代表“假”,非0代表“真”。故C语言逻辑运算的真值表可改为表3.5所示。第29页,讲稿共46页,2023年5月2日,星期三【例3-6】逻辑运算符inta=4,b=5,x=2,y=1;(a>b)&&(x>y)(a>b)||(x>y)!a第30页,讲稿共46页,2023年5月2日,星期三3.7.2逻辑表达式
用逻辑运算符将表达式连接起来,构成的表达式称为逻辑表达式判断某一年份year是否闰年的逻辑表达式为:(year%4==0)&&(year%100!=0)||(year%400==0)第31页,讲稿共46页,2023年5月2日,星期三逻辑表达式应用:判别x是否属于[a,b]数学上判别x是否在区间[a,b]中时,习惯上写成a≤x≤bC语言中为了判别x是否在[a,b]范围内,应写成:a<=x&&x<=b第32页,讲稿共46页,2023年5月2日,星期三在ASCII码表中26个大写字母的取值为区间[65,90];26个小写字母的取值为区间[97,122];练习:判别某个字符变量ch是否为大写字母的C语言表达式每个大写字母的ASCII码值加32就是其对应小写字母的ASCII码值,这一点常常被利用进行大小写字母之间的转换。第33页,讲稿共46页,2023年5月2日,星期三【例3-7】逻辑表达式运用:大写字母转换为小写字母第34页,讲稿共46页,2023年5月2日,星期三第35页,讲稿共46页,2023年5月2日,星期三逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以是其它任何类型的数据,如实型、字符型等。对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再判定或求解第二操作数。即:0&&a=0。对于逻辑或运算,如果第一个操作数被判定为“真”,系统不再判定或求解第二操作数。即:1||a=1。假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x、y的值分别是多少?第36页,讲稿共46页,2023年5月2日,星期三【例3-8】写出描述点A(x,y)落在图3.11中阴影部分(不压线)的C语言逻辑表达式。第37页,讲稿共46页,2023年5月2日,星期三3.8逗号运算符与表达式
逗号运算符的作用是将两个表达式连接起来。一般形式如下:表达式1,表达式2它的求解过程为:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值。a=3,b=4的值为4。第38页,讲稿共46页,2023年5月2日,星期三【例3-9】读取一个三位数字的整数,显示这3个数字之和。
第39页,讲稿共46页,2023年5月2日,星期三第40页,讲稿共46页,2023年5月2日,星期三【例3-10】销售人员的工资
某电器销售公司对其销售人员的薪资由基本工资、奖金和提成三部分组成,并且制定如下奖惩政策:基本工资
1500.00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 集训服务合同协议书
- 停车场转租合同协议书
- 酒店居住安全协议书
- 解除拆迁补偿协议书
- 非婚抚养孩子协议书
- 邯郸学院就业协议书
- 转让食堂摊位协议书
- 闲置校舍转让协议书
- 茶桌转让合同协议书
- 订单木耳采购协议书
- 《2025年CSCO肾癌诊疗指南》解读课件
- 村干部测试试题及答案
- 《新能源汽车发展历程》课件
- 2025年四川省成都市青羊区中考二诊化学试题(原卷版+解析版)
- 预收货款协议合同
- 北京开放大学2025年《企业统计》形考作业3答案
- 2025年大数据分析师职业技能测试卷:数据仓库设计与数据建模实战试题汇编
- 2025届福州教育学院附属中学高考语文四模试卷含解析
- 2025年南京市七下期中英语试卷 (试卷版)
- 国有企业双重目标导向与双轨治理机制的研究进展及前景展望
- 浙江省宁波市2024学年第二学期高考与选考模拟考试化学试卷及答案(宁波二模)
评论
0/150
提交评论