c课程设计-第03章运算与运算表达式

上传人:san****019 文档编号:71604129 上传时间:2019-01-21 格式:PPT 页数:39 大小:371.81KB
返回 下载 相关 举报
c课程设计-第03章运算与运算表达式_第1页
第1页 / 共39页
c课程设计-第03章运算与运算表达式_第2页
第2页 / 共39页
c课程设计-第03章运算与运算表达式_第3页
第3页 / 共39页
c课程设计-第03章运算与运算表达式_第4页
第4页 / 共39页
c课程设计-第03章运算与运算表达式_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《c课程设计-第03章运算与运算表达式》由会员分享,可在线阅读,更多相关《c课程设计-第03章运算与运算表达式(39页珍藏版)》请在金锄头文库上搜索。

1、第3章 运算与运算表达式,*重点与难点 3.1 算术运算 3.2 赋值运算 3.3 关系运算 3.4 逻辑运算,3.5 条件运算 3.6 逗号运算 3.7 强制类型转换运算 *本章小结 *作业,重点与难点,重点:掌握书写和求解运算表达式的方法。 难点:正确使用运算表达式表示各种条件。,3.1 算术运算,优先级与结合方向,优先级:先乘除、后加减 结合方向(或称结合性):自左向右,算术运算符,1/2=0 1.0/2=0.5 1/2.0=0.5 8%3=2 8%-3=2 -8%3=-2 -8%-3=-2 6%3=0 5%1=0 0%10=0,例3.2 输入一个小于1000的整数,编程求出个位数、十位

2、数和百位数并输出。,main() int x; printf(“ninput x (x=1000“); ,3.2 赋值运算,1. 赋值运算 2. 复合赋值运算 3. 自增和自减 4. 赋值运算的类型转换,1. 赋值运算,一般形式:变量名=表达式 优先级:比较低,仅比逗号运算符高 结合方向:自右向左 a=b=c=3,2. 复合赋值运算,任何二元(二目)运算符均可构成复合赋值运算符 a=a+b =a+=b x=x%(y+3) =x%=y+3 复合赋值运算符的好处? 1)简化程序 2)因符合“逆波兰”式,提高了编译效率,例3.3 已知a=6,求: a+=a*=a/=3,0)a=6 1)a/=3 =a

3、=a/3=6/3=2 2)a*=a = a=a*a=2*2=4 2)a+=a = a=a+a=4+4=8,3. 自增和自减,自增、自减:使变量的值增1或减1。 +i, -i:在使用i之前,先使i的值加(减)1 i+, i-:在使用i之后,使i的值加(减)1,举例:自增运算,main() int i=8,j=8,m,n; m=+i; n=j+; printf(“n%d,%d,%d,%d“,i,j,m,n); ,运行结果 9,9,9,8,4. 赋值运算的类型转换,如果“=”两侧的类型不一致,系统自动进行类型转换。 *截断 *符号位扩展 一般地,在相容类型的数据间进行赋值,以避免这种类型转换的“副作

4、用”。,例3.5 赋值运算的数据转换,main() int m=7.68,x; char c=304; float f=1.23456789e12; unsigned int y=65535; x=y; printf(“nm=%d,f=%f“,m,f); printf(“nc=%c,y=%u,x=%d“,c,y,x); ,m=7 f=1234567954432.00000 c=0,y=65535,x=-1,3.3 关系运算,1. 关系运算符 2. 关系表达式 3. 关系运算符的优先级 4. 关系运算符的结合方向,1. 关系运算符,2. 关系表达式,1)3=5 8!=6 a=c an 2)关系表

5、达式常用来表示条件 成绩小于60分, x60 3)关系表达式的值 真:1 假:0,3. 关系运算符的优先级,分以下几种情况: 1)前4种关系运算符(、=)的优先级别相同,后两种(=、!=)也相同。 2)关系运算符的优先级低于算术运算符。 3)关系运算符的优先级高于赋值运算符。,举例,a=bc ab+c f=ab+c,4. 关系运算符的结合方向,自左向右,3.4 逻辑运算,1. 逻辑运算符 2. 逻辑表达式 3. 优先级和结合方向 4. 如何表示复杂的条件? 5. 短路原则 6. 判断一个量的“真”与“假”,1. 逻辑运算符,2. 逻辑表达式,举例 y%4=0&y%100!=0|y%400=0

6、a+bc&a+cb&b+ca !(ab) 表达式的值 真:1 假:0,3. 逻辑运算优先级和结合方向,优先级 !(非)算术运算符关系运算符&(与)和|(或)赋值运算符 结合方向 自左向右,4. 如何表示复杂的条件?,1) 判断年份y是否为闰年 y%4=0&y%100!=0|y%400=0 2)判断三条边是否构成三角形 a+bc&a+cb&b+ca 3)总分不小于600且综合大于660 zf=600&zh660,5. 短路原则,逻辑表达式求解的原则(短路原则):并不是所有的逻辑运算符都会被执行,只是在必须执行下一个逻辑运算符才能求出表达式的值时,才执行该运算符。 a&b&c a|b|c,举例,已

7、知m,n分别为1,执行下面表达式后,m,n的值各为多少? (m=35)&(n=4) (m=35)|(n=4),6. 判断一个量的“真”与“假”,在判断一个运算量的“真”与“假”的时候: “真” 用非0表示。 “假” 用0表示。 0.3&-0.5 34&!1,3.5 条件运算,1. 一般形式 2. 优先级和结合方向 3. 表达式结果类型,1. 条件运算一般形式,一般形式 表达式1?表达式2:表达式3 条件运算符是唯一的一个3目运算符。,2. 优先级和结合方向,优先级 比前面讲过的算术运算符、关系运算符和逻辑运算符都要低,但比赋值运算符高。 结合方向 自右向左,条件运算举例,max=xy?x:y

8、ab?a:b+c ab?a:bc ab?a:cd?c:d ch=(ch=a&ch=z)?(ch-32):ch,3. 条件表达式结果类型,1)条件表达式结果类型 当表达式2和表达式3的类型不同时,条件表达式结果的类型为两者中较高的类型(存储字节数多的类型)。 2)ab?12:28.6 不管a和b为何种类型、何种值,表达式的结果都为double型(实型)。,3.6 逗号运算,逗号表达式一般形式: 表达式1,表达式2,.,表达式n 表达式的值为表达式n的值。 逗号表达式的优先级最低,结合方向是自左向右 printf(“%d,%d,%d“,a,b,c);中a,b,c不是逗号运算。,3.7 强制类型转换

9、运算,强制类型转换 (类型名)(表达式) 举例 (int)x+y (int)(x+y),举例:强制类型转换,main() float x; int i; x=3.6; i=(int)x; printf(“nx=%f,i=%d“,x,i); ,运行结果 x=3.600000,i=3,强制转换是一时性的转换!,数学公式对应的C表达式,对应的c表达式: 1.0/2*sqrt(pow(x,2)+pow(y,2)*exp(sin(x+y),本章小结(3点),介绍了7种运算的表示与求解方法。 介绍了选择和循环的条件可用关系表达式或逻辑表达式来表示。 注意:数学公式不能照搬到C程序中。,作业,p32 3.13.7,3.20,3.21,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号