




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计,第六课 运算符与表达式,湛江师范学院陈其嶙 ,6.1 运算符与表达式的相关概念,到现在为止,我们了解了C语言中各种数据类型的特点及其表示形式。那么如何对这些数据进行处理和计算呢?通常当我们要进行某种计算时,都要首先列出算式,然后求解其值。在程序设计中,表达式是计算求值的基本单位。 简单的说,表达式是由运算符(例如:+ - * /)、操作数(可以是常数、变量等等)和括号组成。执行表达式所规定的运算,所得到的结果值便是表达式的值。例如 a+b,x/y 都是表达式。 C语言中定义了丰富的运算符,如算术运算符,关系运算符、逻辑运算符等等。有些有些运算行需要两个操作数,使用形式为: 操作
2、数1运算符操作数2 这样的运算符称为二元运算符(或双目运算符)。另一些运算符只需要一个操作数,称为一元运算符(或单目运算符)。,6.2 运算符与表达式注意的问题,1、表达式的值 5 + 10 2、运算符的优先级 6 + 5 * 4 3、运算符的结合性 10 / 5 * 2 4、变量的值 int a = 5; a = a + 2;,6.3 算术运算符/表达式,和其它高级语言一样,C语言分别用+、-、*、/表示四则运算的加、减、乘、除运算符。C语言基本的算术运算符如表所示。,注意事项: 1)加、减运算符,如果当作正、负符号使用时,就不是加减运算符了,正、负号的优先级要高于乘、除运算符。 2)除法运
3、算,如果两个操作数是整数,则是整除运算,其结果是整数。例如 5/3=1,-5/3=-1,舍弃了小数部分。如果两个操作数中有实数,则此运算符变为实数相除运算,结果是实数。例如:1.0/3.0=0.33333。 3)什么是取模运算呢?在C语言中,取模运算符为%,表达式x%y是x除以y所得的余数。如果x正好能被y整除的话,那么结果是0。例如:45%5=0; 45%10=5。 取模运算要求两个操作数必须是整型数,其结果也是整数。下面这个式子在C语言中是非法的: 12.4%6.7,例:数学表达式转C表达式,s(s-a)(s-b)(s-c),s*(s-a)*(s-b)*(s-c),a*b/(2*a),5.
4、0/9.0*(f-32),6.3 赋值操作(赋值表达式),“赋值”使用最基本的运算符-赋值运算符,符号是“=”,它的作用是将一个表达式的值赋值给一个变量。例如,我们见过的“a=3“,它的作用是将常量 3 赋值给变量 a 。当然,我们也可以将一个表达式的值赋给一个变量。例如: a = b*c*d*d-345; 注意:这里的赋值符号“=”和数学上的等号是不一样的。赋值符号“=”表示将右边的数值赋给左边的变量,在一次赋值之后,还可以进行多次赋值。比如: a = 3*6; a = b;,6.3 赋值运算符,除了我们在普通赋值运算符“”外,赋值运算符还允许一些变形-复合赋值运算符。比如:a+=3,在赋值
5、号“”前加一个其它运算符“+”就构成了复合运算符“+=”。其意义等价于:a = a + 3。我们还可以使用下面这几种复合运算符。 +=、-=、*=、/=、%= 比如: a -= 3(等价于 a = a - 3) x *= y + 8(等价于 x = x*(y+8) ),赋值表达式 变量表达式 计算赋值运算符右侧表达式的值 将赋值运算符右侧表达式的值赋给左侧的变量 将赋值运算符左侧的变量的值作为表达式的值,赋值表达式的值,例6-1 复合算术赋值运算符,#include void main( ) int x, y, z; z=(x=7)+(y=3); printf(%d,%d,%dn, x, y,
6、 z); x=y=z=x+2; printf(%d,%d,%dn, x, y, z); x*=y-3; printf(%d,%d,%dn, x, y, z); ,x=7, y=3, z=x+y,z=x+2, y=z, x=z,x=x*(y-3),6.4 自增、自减运算符/表达式,在程序设计时,为了控制程序的流程,经常要进行大量循环计数的运算“j=j+1“、”j=j-1“。为了简化程序的输入,C语言专门提供了变量值为1、减1的特殊运算符“自增”和“自减”运算符 “+“,”-”。 自增、自减运算符是C语言的一个特色,它的作用是将变量值加1或减1,例如: +i; -i; (在使用i之前,先对i的值进
7、行加(减)1操作) i+; i-; (在使用i之后,再对i的值进行加(减)1操作),自增、自减表达式的值,粗看起来,+i和i+的作用都是 i=i+1,但是它们在程序中的作用却是不同的。+i 是先执行 i=i+1,再使用i的值。而i+是先使用i的值,再执行 i=i+1。例如,下列语句中i的初始值都是5,执行结果k的值却不不同。 k=+i; 先执行i=i+1,i的值为6,再赋值给k,k=6。 k=i+; 先使用i的值为5,把它赋值给k,k=5,再执行 i=i+1。 注意: 1、自增、自减运算符都只能用于变量,不能用于常量或表达式。例如:+5、(3*s)+都是非法的。 2、用于自增、自减的变量只能是
8、整型、字符型和指针型变量,不能是实型变量。 3、自增、自减运算符满足处右向左的结合律。,/*程序:ex06_02.c 演示 i+ 和 +i 的区别 */ #include void main() int i,n; i = 5;/给i赋初值 n = i+;/改为 n=+i 后重新运行本程序 printf(i=%d,n=%dn,i,n); ,表达式1, 表达式2, ,表达式n 先计算表达式,然后计算表达式,,最后计算表达式n的值,并将表达式n的值作为逗号表达式的值. 逗号运算符的优先级最低,从左向右 a = (3+5 , 4*6 ) a = 3+5 , 4*6,a=24 a=8,6.5 逗号运算符
9、/表达式,6.6 数据类型的转换,当一个运算符具有不同类型的运算对象时,必须进行类型转换。这种类型转换的一般如下: (1)低级类型向高级类型转换 数据类型由低级向高级的排列顺序是: char int long float double 在数据转换中,低级类型服从高级类型,并进行相应转换。在运算中可以将所有的char型转换成int型数据,所有的 float 数据可以转换为 double 数据。例如,下列语句: int a; a = 15 + a; printf(a的值是:%dn,a); 结果是112,(2)赋值运算的类型转换 在对赋值表达式求解过程中,如果赋值运算符两过的数据类型不一致,赋值时需要进行类型转换。这一转换工作由C编译系统自动完成,转换的原则是以赋值运算符“”左边变量的类型为准,即将“”右边表达式的值转换成“”左边变量的类型一致。,例:自动类型转换(赋值运算),double x; x = 1;,x = ?,int ai; ai = 2.56;,ai = ?,强制类型转换运算符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风电工程培训课件下载
- 肾内科饮食护理宣教
- 爱护眼睛健康小班教育指南
- 大班学校安全教育
- 气血淤积健康指导
- 2025年5山东省威海市中考招生考试数学真题试卷(真题+答案)
- 预防网恋主题班会课件
- 预防梅毒的课件模板
- 外科急腹症患者术后护理
- 顾客管理课件
- 车辆转让及新能源充电桩安装与运营服务合同
- 2025年视觉传达设计考试试题及答案解析
- 贷款逾期催收保证合同范本
- 2025至2030中国邻氨基苯甲酸市场发展趋势及未来前景展望报告
- 中心血站培训课件
- 2025至2030中国现金支付行业发展分析及投资风险预警与发展策略报告
- DB 5201∕T 152.2-2025 交通大数据 第2部分:数据资源目录
- 2025-2030中国建筑项目管理软件行业应用状况与需求趋势预测报告
- 中国常识课件
- 5.3.1探究酵母菌的呼吸方式课件高一上学期生物人教版必修1
- 政府采购法律法规及操作实务
评论
0/150
提交评论