c语言程序设计与项目实践第3章.ppt_第1页
c语言程序设计与项目实践第3章.ppt_第2页
c语言程序设计与项目实践第3章.ppt_第3页
c语言程序设计与项目实践第3章.ppt_第4页
c语言程序设计与项目实践第3章.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第3章 运算符和表达式 n本章的学习重点 运算符与表达式的分类 算术运算符与算术表达式 逻辑运算符与逻辑表达式 关系运算符与关系表达式 位运算符 条件运算符 强制类型转换 3.1 运算符与表达式的分类 n运算符的分类:可按照操作对象数目分类, 例如一元运算符、二元运算符和三元运算符 等,也可按照功能分类,例如算术运算符、 逻辑运算符、关系运算符等。 n表达式的分类:主要按照运算符的不同功能 进行分类,例如算术表达式、逻辑表达式、 关系表达式等。 3.1.1 运算符的分类 n按照操作对象的多少,运算符主要可分为一元运 算符、二元运算符和三元运算符。例如负号(-) 为一元运算符,加号(+)为二元运算符等。除了 这些基本运算符之外,C语言还支持复合运算符以 及sizeof运算符等。 n按照功能分类,运算符可分为:算术运算符、赋 值运算符、逻辑运算符、关系运算符、条件运算 符、位运算符、取字节数运算符等。 3.1.1 运算符的分类 n表3-1 运算符分类 一元运算符二元运算符三元运算符 符号功能描述符号功能描述符号功能描述 + -正负号-减号 ?:条件运算符 +自增运算符+加号 -自减运算符*乘号 !非运算符/除号 取反运算符%求余运算符 *指针运算符右移运算符 ni = j = k = 10; n由于赋值运算符是右结合性,因此程序执行顺序为: nk = 10 nj = k ni = j 3.3 赋值运算符与赋值表达式 n3复合赋值表达式 n复合赋值表达式由赋值运算符、算术运算符或逻辑运 算符以及操作对象构成。例如,表达式a += 10,它等 价于:a = a + 10。 n范例3.3 (DAssignmentOperator.c) 使用复合赋值运算 符进行算术和赋值操作。程序使用*=和+=分别对变量m 和n作赋值运算,验证在同一表达式中两者之间的关系。 n注意:在工程应用中,应尽量避免使用这些简化 的复合赋值运算符,原因有两点:一是编码时容 易出错,二是不便于其他程序员阅读。 3.4 算术运算符与算术表达式 nC语言除了提供简单的加减乘除四则运算符外,还 提供了模除(%)、自增(+)和自减(-)等 几种特殊的算术运算符。 n模除运算符(%)用于求两个整数相除的余数。 n自增(+)自减(-)运算符是C语言所特有的 运算符,在工程中应用非常频繁。 只能用于单个 变量。 3.4.1 算术运算符与数据类型 nC语言中,除运算符用/代替,乘运算符用*代替 ,并且*不能省略(如x*y不能省略为xy)。 n范例3.4 (ComputeOperatorType.c) 程序使用输出函数 printf验证两种不同数据类型进行算术除操作的结果,分 析浮点型数据作算术运算的精度。 nC语言中,两个整型量作算术运算,其结果仍为整 型,例如,算式:1/2的值取商中的整数部分0。 n注意:0不能作为除数,否则程序运行时将崩溃。 3.4.1 算术运算符与数据类型 n实训3.1计算圆柱体体积 n有一长为50cm,宽为30cm的长方形纸张,编写程序, 计算将该纸张卷成圆筒时的体积,要求精确到小数点 后6位,圆周率取3.141592。 n纸张卷成圆筒的方法有两种,一种是以长50cm作高, 宽30cm作底,另一种是以宽30cm作高,长50cm作底 。这里使用第二种方案。 n使用周长50cm计算半径r,实现语句:r = 50.0/(2*pi); n根据数学公式:V=S*H,计算体积V = pi*r*r*h,其中 h=30。 n采用数据类型double型以满足精度要求。 3.4.2 模除运算符 n模除运算符(%):用于求两个整数相除的余数 。模除运算只能用于整数间求余运算,不可用于 浮点数。并且0不能作为除数。例如:7%3结果为 1,而7.5%5将使程序编译出错。 nC语言规定,%两边都为正整数,结果为正整数或 零;%两边都是负整数,结果为负整数数或零。 %左边的操作数是正整数,结果为正整数或零; %左边的操作数是负整数,结果为负整数或零, 例如: n17%4 = 1 n17%-4 = 1 n-17%4 = -1 n-17%-4 = -1 3.4.2 模除运算符 n范例3.4 (Months2Year.c) 键盘输入总月数,使用%运 算符和/运算符将输入的月数换算成年数和月数的形式, 如25个月,表示2年零1个月。 n模除运算,例如m%n,可以使用公式m (m / n) * n代替,例如算式中-17%4,可以使用算式:- 17%4 = -17 (-17 / 4) * 4 = -1 n注意:和的区别, 3.4.3 自增自减运算符 n自增(+)自减(-)运算符: n只能用于变量,不能用于表达式或其他C语言对象。下 面的操作均错误:(b+c)+; -(m-1); n范例3.5 SelfAddSelfReduce.c 程序定义4个变量a,b,c ,d。对部分变量执行自增自减操作,验证左运算和右运 算的区别,并进一步分析自增自减运算符与算术运算符的 优先级。 n范例3.5 SelfAddSelfReduce2.c 定义变量a,分别执行单 次和多次自增运算,输出结果,分析同一表达式中两次和 三次自增操作中左运算和右运算的差别。 3.5 关系运算符与关系表达式 n关系表达式的值:真(1)和假(0)。 n例如:表达式103的值为1,即为真,而表达式-10 的值为0,即为假。 n范例3.6 RelationOperater.c 程序分析关系运算符的优先 级,验证在同一表达式中有算术运算符和关系运算符时程 序执行顺序,分析关系运算符的结合性,分析关系表达式 的真和假。 n注意:判断两个对象是否相等,使用运算符=或 !=,一定与赋值运算符=区分开来。 3.6 逻辑运算符与逻辑表达式 n语言中提供了三种逻辑运算符: n逻辑与( b = sizeof(a); b用于存储变量a在内存中所占字节数,使用sizeof获 取a的内存字节数。 n范例3.11 SizeofUseful.c使用sizeof运算符分别获取char short int long float double等几种基本数据类型的内存字 节数,获取实型常量1.0以及字符常量a的内存字节数, 获取强制类型转换之后的字符常量a的内存字节数。 3.10 强制类型转换 n功能: n将表达式的运算结果强制转换成类型说明符所表示的 类型。其中,类型说明符必须使用括号括起来。例如 :(int)m表示把m转换为整型,(double)(a*b+c)表示把 表达式a*b+c的值转换为双精度浮点型。 n注意: n第一,类型说明符必须加括号; n第二,表达式应该加括号,若表达式仅为单个

温馨提示

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

评论

0/150

提交评论