运算符与表达式(中兴).ppt_第1页
运算符与表达式(中兴).ppt_第2页
运算符与表达式(中兴).ppt_第3页
运算符与表达式(中兴).ppt_第4页
运算符与表达式(中兴).ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020年3月25日星期三 第五讲运算符和表达式 讲师 程浩 学习目标 1 熟练应用各种算术运算符的优先级和结合性2 熟练应用各关系运算符的优先级和关系表达式值的判定3 熟练应用各逻辑运算符的优先级和逻辑表达式值的判定4 熟练应用赋值运算符的结合性和优先级5 熟练应用自增 减运算符的作用 自增 减运算的前置方式和后置方式的区别6 理解逗号表达式的作用及其值的计算7 了解C语言的常用运算符的优先级 学习重点 算术运算符的优先级和结合性关系运算符的优先级和关系表达式值的判定逻辑运算符的优先级和逻辑表达式值的判定 学习难点 自增 减运算符的作用 自增 减运算的前置方式和后置方式的区别 一 算术运算符及算术表达式 1 算术运算符 加法运算符 如1 2的结果为3 减法运算符 或负值运算符 如5 3 2的结果分别为2和 2 乘法运算符 如2 3的结果为6 除法运算符 如4 2的结果为2 模运算符 或称取余运算符 要求 两侧均为整型数据 如8 3的结果为2 注意运算的数据都是整型数据时 结果为整型 如果有实数 则结果为double型 模运算符要求运算符两侧必须为整型数据 如果不是整型数据可以采用强制类型转换 例如x为float型 int x 2 一 算术运算符及算术表达式 2 算术表达式用算术运算符将数据对象连接起来的式子 称为算术表达式 表达式的运算按照运算符的结合性和优先级来进行 C规定了运算符的结合方向 即结合性 算术运算符的结合性是从左往右算 例如表达式2 3 4 先算2 3C语言规定负值运算符优先级高于乘 除 模运算符 乘 除 模运算符优先级高于加 减运算符 当表达式中优先级相同时 按照运算符的结合性 例如 3 4 3 2 计算次序 如果需要先计算优先级低的可以使用小括号 小括号的优先级最高 一 算术运算符及算术表达式 3 例题程序L5 1 C功能 计算a 3 2 int a b 12的结果 其中a 1 7 b 2 4 includevoidmain floata 1 7 b 2 4 s s a 3 2 int a b 12printf resultis f n s 二 关系运算符及关系表达式 1 关系运算符4 大于运算符 如x y 大于等于运算符 如x 0 等于运算符 如a b 不等于运算符 如y 1 两个数据在进行值的比较 其结果不是 真 就是 假 在C语言中 任何非0值为 真 0值为 假 关系运算的结果仅产生两个值 1表示 真 0表示 假 二 关系运算符及关系表达式 2 关系运算符结合性与优先级关系运算符的结合性为 自左至右 例如5 4 3 计算时先算5 4 条件成立结果为1 再与3比较 即1 3 条件不成立 所以最终结果为0 关系运算符中 的优先级相等 优先级相等 且前者高于后者 例如1 4 3 的优先级高于 所以4 3结果为1 1 1结果为1 关系运算符的级别小于算术运算符 例如2 3 5 1 运算次序为 二 关系运算符及关系表达式 3 用关系运算符将两个数据或表达式连接起来的式子 称为关系表达式 关系表达式的值为1或0 例5 2阅读程序 写出结果并演算 includevoidmain inta 5 b 4 c 3 ints t if a b c s a elses 0 t a c c 2 0 printf s d t d n s t 举一反三 计算2 4 6 2 1 的结果 三 逻辑运算符及逻辑表达式 1 逻辑运算符逻辑运算表示两个数据或表达式之间的逻辑关系 C语言提供的逻辑运算符有三种 逻辑与运算符 逻辑或运算符 逻辑非运算符 逻辑运算的结果也只有两个 真 为1和 假 为0 逻辑与 即 为便于理解 可以写为 条件1 条件2 则逻辑与运算结果为 只有当条件1成立并且条件2也成立时 逻辑与成立 结果为 真 即值1 其余情况结果为 假 即值0 所以条件1或条件2只要有一个不成立 逻辑与的结果都为 假 如 x 3 x 5 则x取值在3与5之间 结果为1 否则为0 三 逻辑运算符及逻辑表达式 2 逻辑运算符逻辑运算的结果只有两个 真 为1和 假 为0 逻辑或 即 同样可以写为 条件1 条件2 逻辑或运算结果为 当条件1成立或者条件2成立时 逻辑或成立 结果为 真 即值1 其余情况结果为 假 即值0 所以只有当条件1和条件2都不成立时 逻辑或的结果才为 假 如 x 3 x3 则x取值不是大于3的 即x小于等于3时 结果为1 否则结果为0 三 逻辑运算符及逻辑表达式 3 逻辑运算符 includevoidmain printf d d d d n 4 3 运行结果 1 0 0 01 1 1 00 1 三 逻辑运算符及逻辑表达式 4 逻辑运算符结合性与优先级逻辑运算符 的结合性为 自右至左 和 的结合性为 自左至右 逻辑运算符的优先级为 高于 高于 例如表达式 35 4 1 则 的运算结果为假 的运算结果为假 最终 的结果为假 即该表达式的值为0 的优先级高于算术运算符 和 的优先级低于关系运算符 例如 3 1 6 26 2b 0 a 0 等价于 a b 0 a 0 如果a 4 b 3 结果为1 三 逻辑运算符及逻辑表达式 4 逻辑表达式逻辑表达式的值为1或0 由于C语言编译系统在判断一个量为 真 假 时 以0为 假 以非0为 真 所以逻辑运算符也可以直接连接数据 如 4的结果为0 3 举一反三 计算2 0 3 2 4 的结果 4为非0 即为真 4 真 假 0 三 逻辑运算符及逻辑表达式 5 熟练掌握C语言的关系运算符和逻辑运算符 可以自如地描述各种复杂的条件 例如要判断某一年year是否是闰年 需要满足下列条件之一 该年可以被4整除 但不能被100整除 该年可以被400整除 则可以用逻辑表达式表示为 year 4 0 year 100 0 year 400 0 上述表达式成立则为闰年 否则为非闰年 试编程实现 输入一个年份 判断是否是闰年 四 赋值运算符及赋值表达式 1 C语言中最常见的赋值运算符是 其作用是将赋值运算符右边的表达式赋予左边的变量变量 表达式例如 x 4 赋值运算符的结合性为从右至左 其优先级低于算术运算符 关系运算符和逻辑运算符 例如i j 2 3 2 3 j 5 i j 四 赋值运算符及赋值表达式 2 复合赋值运算算术运算符 和赋值运算符 的结合 加赋值运算符 如a 3 1 等价于a a 3 1 减赋值运算符 如a 3 1 等价于a a 3 1 乘赋值运算符 如a 3 1 等价于a a 3 1 除赋值运算符 如a 3 1 等价于a a 3 1 取余赋值运算符 如a 3 1 等价于a a 3 1 复合赋值运算符的作用是先将复合运算符右边表达式的结果与左边的变量进行算术运算 然后再将最终结果赋予左边的变量复合运算要注意 一是复合运算符左边必须是变量 二是复合运算符右边的表达式计算完成后才参与复合赋值运算 复合赋值运算符的结合性和优先级等同于简单的赋值运算符 四 赋值运算符及赋值表达式 2 includevoidmain inta 10 b 10 printf d t a a a a printf d b b b b 运行结果 1800复合运算符常用于某个变量自身的变化 尤其当左边的变量名很长时 使用复合运算符书写更方便 举一反三 计算a 3时 表达式a 4 a 2 的结果 a a 100a a 100 90a a a 180 b b b 100b b b 0b b b 0 五 自增运算符与自减运算符 1 自增和自减运算符主要用于给一个变量加1或减1 自增和自减运算符及其功能如下 自增运算符 如a a 都等价于a a 1 自减运算符 如a a 都等价于a a 1 自增和自减运算符是单目运算符 可以放到变量前面 前置方式 或者后面 后置方式 这两种方式同样实现了变量的自增或自减运算 但是结果是不同的 前置运算时变量先做自增或自减运算 再将变化后的变量值参加表达式中的其它运算 后置运算时变量在参加表达式中的其它运算之后 再做自增或自减运算 五 自增运算符与自减运算符 2 当a 10时 x a 的结果是x 10 a 11 而x a的结果是x 11 a 11 当a 10时 x a 的结果是x 10 a 9 而x a的结果是x 9 a 9 所以一个变量的前置自增 减 运算和后置自增 减 运算仅表明该变量使用其值参加运算与其值自身变化之间的先后关系 即前置运算是变量先变化后使用 而后置运算是先使用后变化 此外需要说明的是变量的自增或自减运算与该变量在表达式中的运算顺序无关 x a a a 1 a a 1x a 五 自增运算符与自减运算符 3 includevoidmain inta1 a2 a3 a4 b1 b2 b3 b4 a1 a2 a3 a4 10 b1 a1 a1 a1 b2 a2 a2 a2 b3 a3 a3 a3 b4 a4 a4 a4 printf a1 d a2 d b1 d b2 d n a1 a2 b1 b2 printf a3 d a4 d b3 d b4 d n a3 a4 b3 b4 运行结果 a1 13 a2 13 b1 30 b2 39a3 7 a4 7 b3 30 b2 21 b1 a1 a1 a1 a1 a1 1 a1 a1 1a1 a1 1 a2 a2 1 a2 a2 1a2 a2 1b2 a2 a2 a2 六 逗号运算符及逗号表达式 1 逗号运算符主要用于连接表达式 a a 1 b 3 4 用逗号运算符连接起来的表达式称为逗号表达式表达式1 表达式2 表达式n逗号表达式的运算过程是 先算表达式1 再算表达式2 依次算到表达式n 整个逗号表达式的值是最后一个表达式的值 逗号表达式的结合性从左至右 它的优先级是最低的 b a 4 3 4 a 2 等价于a 4 3 4 b a 2 六 逗号运算符及逗号表达式 2 includevoidmain inta 3 b 4 c 1 max t if a b a c max a elsemax 0 t a 3 b 1 c printf max d t d n max t 运行结果 max 3 t 2举一反三 判断输出结果printf d d n 3 4 5 a 3 a 0 a 2 if a c t c 七 条件运算符和条件表达式 1 条件运算符是C语言的唯一的三目运算符 即它需要3个数据或表达式构成条件表达式 表达式1 表达式2 表达式3如果表达式1成立 则表达式2的值是整个表达式的值 否则表达式3的值是整个表达式的值 表达式1 成立 不成立 条件表达式的值为表达式3的值 条件表达式的值为表达式2的值 七 条件运算符和条件表达式 2 例如表达式 max a b a b 等价于if a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论