算术运算和表达式资料PPT课件_第1页
算术运算和表达式资料PPT课件_第2页
算术运算和表达式资料PPT课件_第3页
算术运算和表达式资料PPT课件_第4页
算术运算和表达式资料PPT课件_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1 第3章简单的算术运算和表达式 HIT CProgramming 本章学习内容 算术运算符 增1和减1运算符 宏常量与const常量 表达式与赋值中的自动类型转换 强制类型转换运算符 常用的标准数学函数 HIT CProgramming 运算符 Operator 详见附录C常见的运算符算术运算符赋值运算符类型强转关系运算符逻辑运算符增 和减 位运算符 HIT CProgramming 3 1C运算符和表达式 OperatorandExpression 何谓运算符和操作数 HIT CProgramming 3 1 1算术运算符和表达式 ArithmeticOperators HIT CProgramming 除法 Division HIT CProgramming Example 整数除法 IntDivision 11 5 2 HIT CProgramming Example 实数除法 FloatDivision 11 0 5 2 2 HIT CProgramming 求余 Modulus 将求余运算符左侧的操作数作为被除数 右侧的操作数作为除数 二者进行整除后的余数即为求余运算的结果 余数的符号与被除数的符号相同 规则 操作数必须是整数Operandsmustbeint 注意 HIT CProgramming Example 11 5 1 11 5 2 10 1 求余 Modulus HIT CProgramming Example 11 5 1 11 5 2 10 1 求余 Modulus HIT CProgramming Example 11 5 1 11 5 2 10 1 求余 Modulus HIT CProgramming Example 11 0 5 求余 Modulus 注意 HIT CProgramming 当算术表达式包含两个或两个以上的算术运算符时首先要确定运算顺序所有的运算符都有一个优先级 OrderofPrecedence 算术表达式 ArithmeticExpression HIT CProgramming 优先级 OrderofPrecedence 高 低 不同优先级时的运算顺序 从高到低相同优先级时的运算顺序 算术运算符为左结合 从左到右 算术表达式 ArithmeticExpression HIT CProgramming Example 4 8 5 2 5 6 4 4 5 2 5 6 2 2 算术表达式 ArithmeticExpression 4 5 HIT CProgramming 巧妙使用圆括号改变运算顺序从内往外运算 Example 9 3 2 3 算术表达式 ArithmeticExpression HIT CProgramming Example 9 3 2 3 5 4 12 9 3 2 3 12 算术表达式 ArithmeticExpression HIT CProgramming 算术混合运算 HIT CProgramming 例3 1 计算并输出一个三位整数的个位 十位和百位数字之和 关键是如何分离个位 十位 百位数字 153 10 3 153 100 1 153 1 100 53 53 10 5 HIT CProgramming 例3 1 计算并输出一个三位整数的个位 十位和百位数字之和 HIT CProgramming 赋值语句 AssignmentStatement 三种赋值形式 Simple 简单赋值Multiple 多重赋值Shorthand 简写的复合赋值 HIT CProgramming 变量的赋值 简单赋值 SimpleAssignment 变量 表达式 多重赋值 MultipleAssignment 变量1 变量2 表达式 HIT CProgramming Syntax 变量x 变量x运算符op表达式 变量x运算符op 表达式 3 1 2复合的赋值运算符 CombinedAssignmentOperators 这种形式看起来更直观 且执行效率一般也更高一些 HIT CProgramming Example num num 5 15 5 20 20 Example num 5 等同于num num 5 3 1 2复合的赋值运算符 CombinedAssignmentOperators HIT CProgramming 已知inta 3 执行a a a a后 变量a的值 a a a aa a 9a 6a 12 3 6 12 执行a a a a后 变量a的值 a a a aa a 9a 0a 0 3 9 0 0 HIT CProgramming 简写的复合赋值 ShorthandAssignment 3 1 2复合的赋值运算符 CombinedAssignmentOperators HIT CProgramming 3 1 3增1和减1运算符 IncrementandDecrement n n n n 让参与运算的变量加1 让参与运算的变量减1作为后缀 postfix 运算符时 先取n的值 然后加 减1 HIT CProgramming 3 1 3增1和减1运算符 IncrementandDecrement n n n n 让参与运算的变量加1 让参与运算的变量减1作为后缀 postfix 运算符时 先取n的值 然后加 减1作为前缀 prefix 运算符时 先加 减1 然后取n的值 HIT CProgramming Example j i 2 等同于i i 1 j i 2 4 6 前缀 Prefix 增1和减1运算符 HIT CProgramming Example j i 2 等同于j i 2 i i 1 后缀 Postfix 增1和减1运算符 3 6 HIT CProgramming inta 3 printf d a 等同于printf d a a a 1 后缀 Postfix 增1和减1运算符 4 HIT CProgramming 良好的程序设计风格提倡 在一行语句中 一个变量只能出现一次增1或者减1运算过多的增1和减1运算混合 不仅可读性差 而且因为编译器实现的方法不同 导致不同编译器产生不同的运行结果 3 1 3增1和减1运算符 IncrementandDecrement HIT CProgramming 例3 2 计算圆的周长和面积 circumference 33 300854area 88 247263 HIT CProgramming 例3 3 计算圆的周长和面积 Inputr 5 3 circumference 33 300854area 88 247263 在程序中直接使用的常数称为幻数 MagicNumber 称为取地址运算符 HIT CProgramming 使用幻数存在的问题 假如直接使用常数 会有什么影响 程序的可读性变差容易发生书写错误当常数需要改变时 要修改所有引用它的代码 工作量大 还可能有遗漏解决方案 避免使用幻数把幻数定义为常量 宏常量 const常量 HIT CProgramming 3 2宏常量与宏替换 define标识符字符串宏常量 Macroconstant 也称符号常量一般采用全大写字母表示宏定义不是语句 而是一种编译预处理命令 HIT CProgramming 例3 4 计算圆的周长和面积 宏替换 HIT CProgramming include definePI3 14159 defineR5 3 main printf area f n PI R R printf circumference f n 2 PI R 相当于执行 includemain printf area f n 3 14159 5 3 5 3 printf circumference f n 2 3 14159 5 3 语法错误 计算圆的周长和面积 一般不以分号结尾 HIT CProgramming const常量与宏常量相比的优点是什么 const常量有数据类型某些集成化调试工具可以对const常量进行调试 3 3const常量 例3 5 定义const常量 HIT CProgramming 1 表达式与赋值中的自动类型转换 相同类型数据的运算结果 还是该类型不同类型数据的运算结果 是两种类型中取值范围大的那种longdouble double float long int short char double float long unsigned int char short 3 4自动类型转换与强制类型转换运算符 HIT CProgramming 取值范围小的类型赋值给取值范围大的类型是安全的反之是不安全的若大类型的值在小类型能容纳的范围之内 则平安无事但是浮点数转为整数 会丢失小数部分 而非四舍五入反之转换后的结果必然是错误的 具体结果与机器和实现方式有关避免如此使用 好的编译器会发出警告 注意 HIT CProgramming 例3 6 下面程序演示了赋值中的类型转换 HIT CProgramming Example intx 10 floaty y float x float 10 10 000000 3 4自动类型转换与强制类型转换运算符 强转 Casting 可以消除从大到小的警告通过下面方式把表达式的值转为任意类型 类型 表达式 不改变x HIT CProgramming Example inttotal number floataverage average total number 15 2 7 两个整数运算的结果还是整数 不是浮点数 3 4自动类型转换与强制类型转换运算符 HIT CProgramming Example inttotal number floataverage average float total number 15 000000 2 7 500000 3 4自动类型转换与强制类型转换运算符 HIT CProgramming 例3 7 演示类型强转运算符 m 2 2 float m 2 2 000000 float m 2 2 500000m 5 HIT CProgramming 3 5常用的标准数学函数 HIT CProgramming 例3 8 计算三角形面积 area sqrt s s a s b s c area sqrt s s a s b s c s 0 5 a b c

温馨提示

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

评论

0/150

提交评论