版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 简单的算术运算 和表达式,湖南第一师范学院 信息科学与工程学院 ,本章学习内容, 算术运算符 增1和减1运算符 宏常量与 const常量 表达式与赋值中的自动类型转换 强制类型转换运算符 常用的标准数学函数,3.1C运算符和表达式(Operator and Expression),何谓运算符和操作数?,3.1C运算符和表达式(Operator and Expression),运算符的分类,单目运算符(-),双目运算符(+),三目运算符(?:),3.1.1算术运算符和表达式,算术运算符,特别注意:,算术运算的结果与参与运算的操作数类型相关。,除法(Division),求余(Modulus
2、),返回的是两个数相除后的余数 规则: 操作数必须是整数 在C中,大多数编译器处理余数的正负时是与被除数一致,注意!,当算术表达式包含两个或两个以上的算术运算符时 首先要确定运算顺序 所有的运算符都有一个优先级( Order of Precedence ),算术表达式(Arithmetic Expression),优先级(Order of Precedence) High:* / % Low: + - 不同优先级时的运算顺序: 从高到低 相同优先级时的运算顺序: 算术运算符为左结合(从左到右) 使用圆括号改变运算顺序,算术表达式(Arithmetic Expression),【例3.1】计算并
3、输出一个三位整数的个位、十位和百位数字之和,关键是如何分离个位、十位和百位数字?,153 % 10 = 3,153 / 100 = 1,153 1*100 = 53,53 / 10 = 5,【例3.1】计算并输出一个三位整数的个位、十位和百位数字之和,#include main() int x = 153, b0, b1, b2, sum; b2 = x / 100; b1 = (x - b2 * 100) / 10; b0 = x % 10; sum = b2 + b1 + b0; printf(b2=%d, b1=%d, b0=%d, sum=%dn, b2, b1, b0, sum);
4、,Syntax: 变量x = 变量x 运算符op 表达式 ; 变量x 运算符op = 表达式;,3.1.2复合的赋值运算符(Combined Assignment Operators),这种形式看起来更直观,且执行效率一般也更高一些,简写的复合赋值(Shorthand Assignment),3.1.2复合的赋值运算符(Combined Assignment Operators),已知 int a = 3; 执行 a += a -= a * a 后,变量a的值? a += a -= a * a a += a -= 9 a += -6 a = -12,3,-6,-12,执行 a += a -=
5、a *= a 后,变量a的值? a += a -= a *= a a += a -= 9 a += 0 a = 0,3,9,0,0,3.1.3增1和减1运算符(Increment and Decrement),n+,n-,+n,-n +让参与运算的变量加1,-让参与运算的变量减1 作为后缀(postfix)运算符时,先取n的值,然后加/减1 作为前缀(prefix)运算符时,先加/减1,然后取n的值,良好的程序设计风格提倡: 在一行语句中,一个变量只能出现一次增1或者减1运算 过多的增1和减1运算混合,不仅可读性差,而且因为编译器实现的方法不同,导致不同编译器产生不同的运行结果,3.1.3增1
6、和减1运算符(Increment and Decrement),【例3.2】计算圆的周长和面积,circumference = 33.300854 area = 88.247263,#include main() double r = 5.3; printf(“圆的周长 = %fn, 2*3.14159*r); printf(“圆的面积 = %fn, 3.14159*r*r); ,使用幻数存在的问题?,直接使用常数会有什么影响? 程序的可读性变差 容易发生书写错误 当常数需要改变时,要修改所有引用它的代码,工作量大,还可能有遗漏 解决方案: 避免使用幻数 把幻数定义为常量(宏常量、const常
7、量),3.2宏常量与宏替换,#define 标识符 字符串 宏常量(Macro Constant ) 也称符号常量 一般采用全大写字母表示 宏定义不是语句,而是一种编译预处理命令,#include #define PI 3.1415926 main() double r=5.3; printf(“圆的周长 = %fn, 2*PI*r); printf(“圆的面积= %fn, PI*r*r); ,【例3.3】计算圆的周长和面积,宏替换,#include main() const double PI = 3.14159; double r=5.3; printf(“圆的周长= %fn, 2*PI*
8、r); printf(“圆的面积 = %fn, PI*r*r); ,const常量与宏常量相比的优点是什么? const常量有数据类型 某些集成化调试工具可以对const常量进行调试,3.3 const常量,【例3.4】,表达式与赋值中的自动类型转换,相同类型数据的运算结果,还是该类型 不同类型数据的运算结果,是两种类型中取值范围大的那种 long double double float long int short char,double,float,long,unsigned,int,char,short,表达式与赋值中的自动类型转换,取值范围小的类型赋值给取值范围大的类型是安全的 反之是
9、不安全的,注意!,表达式与赋值中的自动类型转换,【例 3.5】下面程序演示了赋值中的类型转换,Example: int x = 10; float y; y = (float)x;,(float)10,10.000000,3.4自动类型转换与强制类型转换运算符,强转(Casting)可以消除从大到小的警告 通过下面方式把表达式的值转为任意类型 (类型)表达式,不改变x,Example: int total, number; float average; average = (float)total / number;,5.000000 / 2,2.500000,3.4自动类型转换与强制类型转换运算符,3.5 常用的标准数学函数,【例3.6】,【例3.6】计算三角形面积,area = sqrt(s * (s - a) * (s - b) * (s - c) area = sqrt(s(s-a)(s-b)(s-c) s = 0.5 * (a + b + c) s = 1.0/2 * (a + b + c) s = (a + b + c) / 2.0 s = (float)(a + b + c) / 2 s = 1/2 * (a + b + c) s = (float)(a + b + c) / 2),注意!,【例3.6】代码,#in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年江西省部编版二年级语文下册第9单元课后练习题
- 2025-2026年四川省人教版初中物理下册第1章知识点巩固习题
- 东数西算政策下边缘节点机架资产的估值重构逻辑
- ESG评价体系下传统酿造企业绿色转型的长期资本价值
- 2026年湘中幼儿师范高等专科学校高职单招笔试英语试题库含答案解析3套试卷
- 2026年湖南商务职业技术学院高职单招笔试综合素质试题库含答案解析3套试卷
- 2026年湖北工程职业学院高职单招笔试职业适应性测验试题库含答案解析2套试卷
- 2026年渤海理工职业学院高职单招笔试数学试题库含答案解析3套试卷
- 2026年海南住院医师-海南住院医师超声医学科历年参考题库含答案解析
- 2026年浙江建设职业技术学院高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2024-2025学年人教版七年级下学期数学期末考试试卷(含答题卡和参考答案)
- 海韵文化课件
- 八年级上册仁爱版英语课堂活动计划
- 培训头疗的课件
- 新能源汽车电池及管理系统课件 1-2 新能源汽车电池的拆装
- 零售食品店经营流程
- 1.第一章-职业道德 - (2024消防设施操作员)
- DB22T 1822-2013 公共场所双语标识英文译法 通则
- 新标准商务英语阅读教程1- 课件 Unit-1 Work and travel
- 美的集团第-级公司分权手册
- 网络传播概论(彭兰第5版) 课件全套 第1-8章 网络媒介的演变-网络传播中的“数字鸿沟”
评论
0/150
提交评论