




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.4 C语言运算符和表达式C运算符算术运算符:(+ - * / % + -)赋值运算符:(= 及其扩展)关系运算符:( = !=)逻辑运算符:(! & |)位运算符 ( & | )条件运算符:(?)逗号运算符:(,)强制类型转换:(类型) C语言的表达式是由操作数和运算符组成的序列。根据所用运算符的不同,表达式也有多种类型。C语言的运算符有很多,按操作功能,可分为以下几类:2.4 C语言运算符和表达式C算术运算符:(+ - * 学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型学习运算符应注意:2.4.1算术运算符和表达式1.基本算术运算符:
2、 +(加)、-(减)、*(乘)、/(除)、(取余)结合方向:从左向右优先级: - -* / % - + - (2) (3) (4)说明:“-”可为单目运算符时,负号运算符,右结合性两整数相除,结果为整数,只要有一个操作数是实型,运 算结果就是实型;%要求两侧均为整型数据 例 5/2 = -5/2.0 =例 5%2 = -5%2 = 5%-2 = 1%10 = 5.5%2 =例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 5%-2 = 1 1%10 = 1 5.5%2 ()%结果的符号与被除数的符号一致2.4.1算术运算符和表达式例 5%2 = 12.算术表
3、达式、运算符的优先级与结合性用算术运算符和运算对象(也称操作数,如常量、变量、函数等)连接起来的有意义的式子叫算术表达式。 例如: 3 + 4 % 2 /*操作数是三个常量*/ 3.1 * (a + 2)/3 /*操作数有常量和变量*/ 2*pow(3,2) /*操作数有常量和函数*/ 2.算术表达式、运算符的优先级与结合性3.自增、自减运算符+ -作用:使变量值加1或减1种类:前置 +i, -i(先执行i+1或i-1,再使用i值)后置 i+,i-(先使用i值,再执行i+1或i-1)说明:1.+i 和 i+ 都是i本身的值加12.注意 +i 、i+,i的区别 。3.自增、自减运算符+ -说明:
4、 a=3;b=5; 1. c=(a+)*b; 2. c=(+a)*b; /c=15,a=4/c=20,a=4 i=3; i+ 与 i 3 4 +i 与 i 4 4 a=3;b=5;/c=15,a=4/c=20,a=4说明:+ -不能用于常量和表达式,如5+,(a+b)+是错误的+ -结合方向: 自右向左优先级:- + - -* / % -+ - (2) (3) (4)例:int i=2,j; j=-i+; 问j,i的值分别为多少? 例 int i=2,j; j=-i+; -i+ -(i+) j=-2,i=3 不同类型的数值混合运算时,运算结果的类型如何确定?说明:例:int i=2,j;例 不
5、同类型的数值混合运算时, 混合运算类型自动转换 double float long int char说明:必定的转换运算对象类型不同时转换float a=2.0 ;int b=6,c=3;判断下列运算结果的数据类型。 1.c-F 2. a*b/c+aint double 混合运算类型自动转换 double 课堂练习2在C语言中,要求运算数必须是整型的运算符是( )。 A B/ C D!4已知整型变量x = 7,y =2,表达式x/y的值是( )。 A0 B1 C3 D不确定的值5已知x = 023,表达式+x的值是( )。 A17 B18 C20 D24课堂练习2在C语言中,要求运算数必须是整
6、型的运算符是( 14用十进制数表示表达式13/013的运算结果是( )。 A1 B0 C1.4 D1.222若有以下定义:char a; int b; float c; double d;则表达式a*b+d-c值的类型为( )。Afloat Bint Cchar Ddouble14用十进制数表示表达式13/013的运算结果是( 2.4.2 赋值运算符和赋值表达式1.赋值运算符符号: =格式: 变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量 a=5 /*将5赋给变量a; */ b=a/c+a*5 /*将表达式a/c + a*5的值赋给变量b; */2.4.2 赋值运算符和赋值表达
7、式 a=5 说明:结合方向:自右向左优先级: 14左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等,且可嵌套例: int a,b,c; a=b=c=5; a=(b=10)/(c=2); /表达式值为5,a,b,c值为5/表达式值5,a=5,b=10,c=2例 3=x-2*y; a+b=3;/错误的表达式说明:赋值表达式的值与变量值相等,且可嵌套例: int a,赋值转换-把一个值赋给与其类型不同的变量时数值的转换。运算转换规则:不同类型数据赋值运算时自动转换左边变量的类型2.赋值类型转换 例如:char c=a;int i=3,j=4,k=5;float f = 2.25;doub
8、le d= 2.8;i=f; /i得到2;j=d; /j得到2;k=c+3; /k得到100;字符常量是用该字符的ASCII码值参与运算。赋值转换-把一个值赋给与其类型不同的变量时数值的转换。2.ASCII值 A65 a97 048 ASCII值 A65 3.复合赋值运算 复合运算符由赋值运算符与算术运算符、位移运算符、位逻辑运算符等组成.算术运算符组合的复合赋值运算符如下: *=、/=、=、+=、-=与移位运算符组合的复合赋值运算符如下: =与位逻辑运算符组合的复合赋值运算符如下: &=、=、|= 注意:复合赋值运算符是一个运算符,但在功能上是两个运算符功能的组合。3.复合赋值运算x*=y+
9、8x=x*(y+8)a+=3a=a+3x%=3x=x%3注意:必须把复合赋值符右边的表达式看成一个整体,先求出它的值,再和左边的变量做相关的运算。x*=y+8x=x*(y+8)a+=3a=a+3x%=3x=例: int a=2; 1. a-=a*=3; 2. a+=a-=a*a/a=-4 等价于a=a+(a=a-(a*a)/a=0 等价于a=a-(a=a*3)例: int a=2; /a=-4 等价于a=a+(课堂练习3以下定义语句中正确的是( )。 Aint a=b=0; Bchar A=65+1;b=b; Cint a=1,b=1; Ddouble a=0.0;b=1.1;13在下列选项中
10、,不正确的赋值语句是( )。 A+t; Bn1=(n2=(n3=0); Ck=i= =j; Da=b+c=1;25设x为int型变量,则执行以下语句后,x的值为( )。 x=10; x + =x - = x - x; A10 B20 C40 D30课堂练习3以下定义语句中正确的是( )。30假定有以下变量定义: int k=7, x=12;则值为3的表达式是( )。 Ax=(k=5) Bx=(k-k5) Cx=k-k5 D(x=k)-(k=5)40下列变量定义中合法的是( )。 Afloat _a = 1-1e-1; Bdouble b = 1 + 5e2.5; Clong do = 0 xf
11、daL; Dfloat 2_and = 1-e-3;48若有以下程序段:int c1=1, c2=2, c3;c3=1.0/c2*c1;则执行后,c3中的值是( )。A0 B0.5 C1 D230假定有以下变量定义:2.4.3 关系运算符和关系表达式关系运算符种类: = !=结合方向:自左向右优先级别:=!=优先级6(高)优先级7(低)例 ca+b /c(a+b) a=bc /a=(bc)关系表达式的值:是逻辑值“真”或“假”, 关系成立用1表示, 关系不成立用0表示。2.4.3 关系运算符和关系表达式b)=c 32 /值为1 /值为0例 int a=3,b=2,c=1,d; /值为1 /课堂
12、练习10表达式:1!=5的值是( )。 Atrue B非零值 C0 D1 11.当a=5,b=4,c=3时,表达式f=abc的值是( ). Atrue B非零值 C0 D1 课堂练习10表达式:1!=5的值是( )。2.4.4 逻辑运算符和表达式逻辑运算符种类: ! & |C语言中,操作数: 0表示“假”, 非0表示“真”, 运算结果: 0表示“假”, 1表示“真”, 逻辑操作数:可以是整型、实型、字符型 0假 非0真; 如:0,0.0,0,都代表假。 如:5,8.3, a, n都代表真。2.4.4 逻辑运算符和表达式C语言中,操作数: 0表! (2)& (11)| (12)高低优先级: in
13、t a=5; float b=3.5;!:若操作数值为0,非的结果为1;当操作数值为非0时,非的结果便为0。 !4(0) !(a b) (1)&:当参加逻辑与运算的两个操作数值均为非0时,结果才为1;否则为0; a&5 (1) !a&b (0) !a&!b (0) |:参加逻辑或运算的两个操作数中,只要有一个操作数值为非0,结果就为1;否则为0。 (a0) (1) c d (1)高低优先级: int a=5; float b=3.51.如何判断分数fs是否为优秀?2.如何判断年份x是否为闰年?(能够被4整除同时不能被100整除或者能够被400整除)3.如何判断三条边a,b,c能否构成三角形?1
14、.fs=80& fsc)&(a+cb)&(b+ca)&(fabs(a-b)c)&(fabs(a-c)b)&(fabs(b-c)=80& fsb)&(n=5) (2) a=1; b=1; c=0; d=a|(b=5)|(c=b+3);/结果m=0,n=1/ a为1,b为1,c为0,d为1打破了默认的优先级别高优先运算的原则。短路原则:在多个&运算符相连的表达式中,从左至右进行计算时课堂练习7已知a = -1,b = 4,执行语句k=(a+= 0)&(!(b-b)&(n=cd)后,n的值为( )。 A1 B2 C3 D0课堂练习7已知a = -1,b = 4,执行语句38当c的值不为0时,在下列选
15、项中能正确将c的值赋给变量a、b的是( )。Ac=b=a; B(a=c)|(b=c);C(a=c)&(b=c); Da=c=b;50能正确表示逻辑关系:“a10或a0”的C语言表达式是( )。 Aa=10 or a=0 | a=10 &a=10 | ab)?a:b; /max的值为7 求a,b,c的最大值 max=c(ab?a:b)?c:(ab?a:b) /max的值为92.条件运算符与表达式条件运算符由“?”和“:”组成,是C语3.逗号运算符与表达式逗号表达式的一般形式是: 表达式1,表达式2,表达式3表达式n逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,一直计算到表达式n
16、的值。最后整个逗号表达式的值是表达式n的值。优先级别最低(15);常用于循环for语句中 例1 a=3*5,a*4 /结果是60 例2 int a=1,b=2,x; x=(a=a+1,b=b+a,a+b);/结果是63.逗号运算符与表达式逗号表达式的一般形式是:例1 a=课堂练习6表达式a = 2 * 5,a * 4,a + 5的值是( )。 A45 B40 C15 D1019若t为double类型,表达式t=1,t+5,t+的值是( )。 A1 B6.0 C2.0 D1.024设a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d的结果为( A4 B3 C2 D1课堂练习6表达式
17、a = 2 * 5,a * 4,a + 52.4.6 位运算 前面介绍的各种运算都是以字节为最基本单位进行的。但在工业系统程序中,常要求在位(bit)一级进行运算或处理。语言提供了位运算的功能,可以对内存单元地址及单元内容中某一位或某几位进行操作。2.4.6 位运算 位运算符:位操作是指按位运算(与逻辑运算 !, &, 不同) 运算符 含义 & 按位与操作 按位或操作 按位异或操作 按位取反操作 右移1.位运算符位运算符:位操作是指按位运算运算符 1、按位逻辑与:参加运算的两个数据,按位进行位与运算。如果两个相应位都是1,则该位的结果为1,否则为例如: 9&5=? 00001001 &0000
18、0101 00000001 即9&5 = 1。 2、按位逻辑或: 如果两个相应位都是0,则该位的结果为0,否则为1 例如:9|5 =? 00001001 | 00000101 00001101 (十进制为13) 即9|5=13。 2.运算符举例2.运算符举例3. 位异或运算符()如果两个相应位相等(同为0或同为1),则该位的结果为0,否则为1。例如:95=?,运算过程如下: 9 = 00001001 () 5 = 00000101 00001100 95=124. 位反运算符()是一个单目运算符,表示对一个二进制数按位取反。就是将位0变成1,1变成0。例如:11=? () 11 = 00001011 11110100 4. 位反运算符()5. 左移运算符()用来将一个数的各二进位全部左移若干位,右补0。例如: a = a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市大学附属中学2025届高三年级第二次模拟考试数学试题试卷
- 湖南省岳阳市2025届高三教学质量监测 (二)思想政治试题(含解析)
- 2025年华南海关实施封控指定供应商招标采购项目合同简则订货协议书x
- 山东省职教高考(电子商务专业)综合知识备考试题库大全-下部分
- 汽车线束培训班
- 档案管理制度分类
- 25年4月脑肿瘤影像分割算法分包协议
- 财务顾问聘用合同模板
- 导演劳务合同二零二五年
- 租房委托书经典范例二零二五年
- 【初中语文】第11课《山地回忆》课件-2024-2025学年统编版语文七年级下册
- 衍纸简介课件
- 2025陕西西安市长安城乡建设开发限公司招聘17人高频重点模拟试卷提升(共500题附带答案详解)
- 华东医药股份有限公司放射性核素暂存库建设项目报告表
- 2025届河南资本集团投资公司校园招聘启动笔试参考题库附带答案详解
- 2025年官方策划标准离婚协议书(民政局版)
- 2025-2030年中国阿尔茨海默症药物市场运行状况及发展潜力分析报告
- OBE理念背景下开展细胞生物学课堂教学互动的探索实践
- 全套课件-《Visual-FoxPro-9.0项目开发案例教程》-李政
- 高效团队:宁德时代的部门职责与协作模式
- 2024年铁路货运承包经营协议3篇
评论
0/150
提交评论