已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
周五5-6节(4-15周) 实验室30302: 资源0901(41) 刘钊 周二9-10节 实验室30302: 车辆0901(34) (4-12,17)补四次 边小勇 车辆0902(34) (4-12,17)补四次 李琳 周二11-12节 实验室30202 车辆0903(32) (4-12,17)补四次 李琳 第3章 运算符与表达式 3 本次课主要内容: C运算符简介 算术运算 赋值运算 逗号运算符及逗号表达式 长度运算符 强制类型转换 运算符的优先级和运算顺序 4 3.1 C运算符简介 (1)算术运算符: 、*、/、 (2)关系运算符:、=、|、 int b=3; printf(“%dn”,a/b); 运行结果为7,而不是 7.333333,Why? 8 求余运算符“” 说明:表达式ab的运算结果为a除以b的余数 ,并且a、b必须为整数。 举例: 135 结果为3 28结果为2 -227结果为 -1 练习: 12211 19 9 自增和自减运算符、 作用:将操作数自己增 加1或者减少1。 前置(前缀): 如:i 、i 后置(后缀): 如:i、i main( ) int i=3,j=4; i+;+i; j-;-j; printf(“%d %dn”,i,j); 结果输出:5 2 10 比较前置运算和后置运算 main( ) int i=3,j,k; j=i+; k=+j; printf(“%d%d%dn“,i,j,k); 请先阅读下面的程序: 结果输出显示:结果输出显示: 4 4 44 4 4 过程: i=3;3 j=i;3 i=i+1;4 j=j+1;4 k=j;4 i,j,k: 4 4 4 11 自增、自减运算小结: 自增运算符和自减运算符是单目运算符,且只 能用于单个变量。 当前置运算或者后置运算与其他运算结合在一 个表达式中时: 前置运算:先增值后引用 后置运算:先引用后增值 “+”和“-”的运算结合方向是从右到左。 12 阅读下面的程序,写出运行结果: main() int i=2,j,k; j=(i+)+(i+)+(i+); k=(-i)+(-i)+(-i); printf(“%d %d %d n”,i,j,k); Answer: 2 6 6 VC+6.0 结果 13 VC+9.0 结果 14 15 算术表达式 算术表达式是指由算术运算符、运算量、括号和函数组 成,符合C语言语法规则的式子。 算术运算符优先级: 16 括号可用于改变计算顺序 先算括号里面的表达 式,得到的结果再参 与括号外面的相关计 算。 For Example: -3-2*3+2/3*2 -(3- 2)*(3+2)/(3*2) 17 算术表达式的数据类型 算术表达式的数据类型即该表达式的值的类 型。 两个同类型的运算量参加运算,其结果也是 同类型的。 18 3.3 赋值运算 赋值运算符:,其结合方式为自右向左 。其优先级很低,低于所有的算术运算符。 赋值表达式:由赋值运算符“”将变量 和表达式连接起来的式子。 形式:变量表达式 运算过程:将赋值运算符右边表达式的值赋 给左边的变量。 19 For Example: (1)a=a+1; 等价于:a+; (2) a=b=c=2; 连续赋值 等价于:a=(b=(c=2); 或者: a=2;b=2;c=2; (3) a=2+(b=3); 等价于:b=3;a=2+3=5; (4) a=(b=2)*(c=3); 等价于:b=2;c=3;a=2*3=6; 允许赋 值表达式中含 有另外的赋值 表达式,进行 连续赋值 20 赋值运算的注意事项: “”是一个双目运算符,需要左右两个变量 。 “”是赋值运算符,不等于等号,没有相等 的含义。 “”左端的运算量必须是单个变量,而不能 是表达式。 赋值运算中,首先使运算符左端的变量具有右 端表达式的值,然后整个表达式的结果为右端 表达式的值。 21 赋值运算中数值类型的转换 当赋值运算符两端的数据类型不同时 ,编译程序将赋值运算符右边表达式的 数据类型自动转换成左边变量的数据类 型。 22 复合的赋值运算符 复合赋值运算符:+=、-=、*=、/=、%=等。 复合赋值运算表达式的一般形式: 变量op表达式 说明:“op”为其它运算符,如+、-、*、/ 、%等。 举例: a+=b a*=b 等同:a=a+b a=a*b 23 表达式“变量op表达式;”的执行过程 步骤: (1)求出“表达式”的值 ; (2)把求出的表达式的 值与“变量”做op运 算; (3)把第二步求出的值 再赋给“变量”。 例如:设x=5,y=2,求 x%=y+3的值。 (1)y3 5 即:x%=5 (2)x%5 0,(x=5) (3)x 0 24 复合赋值运算小结 凡是双目运算符都可以与赋值运算符一起组合成 复合的赋值运算符。注意两个运算符之间不能有 空格存在。 共10种复合赋值运算符: +=、 -=、 *=、/=、%=、=、 float b;double c; 则:sizeof(a) =2 sizeof(b) =4 sizeof(c) =8 32 混合类型表达式的类型确定规则 两个不同类型的运算量参加运算,C编译系统 自动把长度较短的类型转换为长度较长的类型 ,以保证不丢失精度。 混合类型计算举例: 1/3*3 与 1*3/3 2.5012 327672L 33 各数据类型混合运算的排列顺序: 34 强制类型转换 目的:弥补自动类型转换的不足。 一般形式: (类型关键字)(变量名或表达式) 举例: float a=56.789; int b; b=(int)a%3; (double)b (float)(20%3+4) 35 使用强制类型转换注意: 在进行强制类型转换时,类型关键字必须用括 号括住。 在对一个表达式进行强制类型转换时,整个表 达式也要用括号括住。 如:(float)(a+b) (float)a+b 在对变量和表达式进行了强制类型转换后,并 不改变原变量或表达式的类型。 如: int z; float x; double y; z=(int)(x+y); 执行后x、y的类型不变。 36 运算符的优先级和运算顺序 C语言中的优先级从高到低分为15级。 运算符的一般顺序: 先运算优先级别高的,再运算优先级别低的 。 对于优先级别相同的运算符,按其结合方向 执行。 37 运 算 符 的 优 先 级 和 结 合 方 向 38 优先级分级一般规律: 单目运算符优先级最高,双目次 之,三目较低。 双目运算符中,算术运算符较高 ,关系次之,逻辑较低(!除外) 。 位运算符中,移位运算高于关系 运算,位逻辑运算低于关系运算 。 圆括号运算符优先级最高,逗号 运算符最低
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 呼吸系统慢病管理新进展
- 智能安全设备的人性化设计
- 机械安全事故案例
- 第三章 运动和力的关系-教材实验4 探究加速度与力、质量的关系 2025年高考物理基础专项复习
- 3.3.2盐类水解的影响因素及常数 课件高二上学期化学人教版(2019)选择性必修1
- 智慧园区产品方案
- 《Excel数据获取与处理实战》 课件 陈青 第1、2章 Excel 2016概述、外部数据的获取
- 舆情应急演练桌面推演
- 保暖小帮手教案及反思
- 好饿的毛毛虫说课稿
- 闽菜(英文PPT)
- ADAScog(老年痴呆量表—认知)
- 热污染评价及标准
- 脱硫检修方案
- 乐理试题(音程-三和弦)
- 三资系统操作手册
- 绵阳市物业服务收费管理实施细则
- 危险化学品事故应急处置流程图
- 微信公众账号授权书
- 钣金折弯K因子计算
- 生石灰(氧化钙)MSDS
评论
0/150
提交评论