C语言第三章运算符与表达式
gf1hgh1g1h
第三章§3.1 基本概念
运算符与表达式
如:(a+2)*(b-3)/(x+y)-sqrt(9.0) ( 量、函数等)连接起来所构成的式子。 ◆ 单目、双目、三目运算符:根据运算符所需要的 如: x+y-z,-25 , a*b /c ,x=5, &a : , , 操作数的个数将其分为单目、双目和三目运算符。 如: x+y-z , a*b /c , x=y=5 顺序。◆ 结合性:即两个同优先级的运算符相邻时的运算
◆ 表达式:用运算符与圆括号将操作数(常量、变
说明: 1. 通常单目运算符从右向左结合。双目运算 符从左向右结合(赋值运算符除外)。 2. 单目运算符的优先级高于双目运算符。
gf1hgh1g1h
§3.2 3.2
算术运算符和算术表达式
求圆锥体积,判定下列程序是否正确: 算术运算符: : main( ) 乘法 * / 除法 % 求模 { + 加法 - 减法 int r=5, h=15; 说明 double v; v=1/3*3.14*r*r*h; 两个整数相除的结果是整数。如:5/3 的值是 1 。 printf(“v=%f ”,v); : } % 两侧均应是整型数据 如:7%4 的值是 3 。 如果参加 +、-、*、/ 运算的两个数中有一个 、 为实数,则运算结果为 double型。 取负运算符时,为单目运算符。 - 用做取负运算符 取负运算符 括号 ( ) 之内表达式优先级最高。
gf1hgh1g1h
§3.3
赋值运算符和赋值表达式E1 E2 的值
1. 赋值运算符分为简单赋值和复合赋值两种。 2 赋值运算的一般形式: 1) 简单赋值: ) E1 = E2
说明: E1 为变量,E2 为常量、变量或表达式。 2) 复合赋值: ) E1 op= E2 E1=(E1 op E2)
说明:: 如: x+=y x=x+y op 运算符共有十种(算术和位运算),要求 掌握下列五种: *= 、 /= 、 %= 、 + = 、 - =
gf1hgh1g1h
注意: 例: int a,b,c; ★ E1、E2 类型不同时,自动转换类型,结果为E1 、 a=b=c=2; √ 的类型。 ★ 可以连续赋值给多个变量,但不能用于初始化。 int a=b=c=2;× ; 计算下面各程序段的输出结果: int a=3,b=2,c; 1. b*=a+4*3%5; printf("%d“,b ); , 2. a=8; a*=b=c=3; printf("%d,%d“,a,b); , , , 3. a=5+(c+=3); printf("%d,%d“,a,c); , , , b=b*(a+4*3%5) b=10 c←3, b←c, a←a*b a=24 b=3 c←c+3 a=11 c=6
gf1hgh1g1h
§3.4 不同类型数据间的相互转换类型转换的概念: 在程序运行中,一种数据的类型改变成另一 种数据类型。 类型转换两种方式 1.自动类型转换(隐式转换)— 系统自动转换。 2.强制类型转换(显式转换)—人为进行的转换。 一. 自动类型转换 发生在下列三种情况: 如: int i=2 1. 混合运算. int a; ;float f;=3.6; double d=3.2; float 如: char st=‘a’ b=2.4 ; long int e=45; 2. 赋值运算. a=b+5 ; printf(“%d”,st); 10+‘a’+i*f-d/e ; 3. 数据输入输出.
gf1hgh1g1h
自动类型转换转换原则: 低 高 int → unsigned → long → double *↑ *↑ ↑ char、short float 、 说明: 1. 带(*)无条件的转换;其它按类型的高低 “向高看齐”。 2.
无精度损失,但赋值运算中视情况而定。 3. C 语言允许字符数据与整数直接进行算术 运算。
gf1hgh1g1h
二.强制类型转换 一般形式:
类型转换运算符
(类型名)表达式 例: 例: int a; double b=3.25 ; a=(int)b+8; (int)x+y (int)(x+y) printf(“%d, %f ”,a,b);%3 (float)(3/2) (int)7.6 输出: 11, 3.25000 说明: 1. 强制转换得到所需类型的中间变量,原变 量类型不变 。 2. 较高类型向较低类型转换时可能发生精度 损失。
gf1hgh1g1h
§3.5 关系运算符和关系表达式关系运算符共有六种: > (大于),>= (大于等于) < (小于),<= (小于等于)优先级相同(高 优先级相同 高)
== 例: a>b, (不等于) (a=3)>(b=5) 低) (等于),!= a+b>b+c, 优先级相同(低 优先级相同 用于对两个数值的比较。均为双目、左结合。 ‘a’<‘b’, a>(b==c), (a>b)>(b<c) 关系表达式的一般形式: E1 op E2 关系表达式的值只有两种: 成 立 (真) —— 用 1 表示。 不成立 (假) —— 用 0 表示。E1、E2 : 、 变量、常量、表达式
gf1hgh1g1h
注意: 关系运算符的优先级低于算术运算符。 ★★
关系运算符的优先级高于赋值运算符。
已知:a=3,b=2, c =1, 计算下面各表达式的值: 1. c > a+b 2. a>b== c 3. a==b<c 5. m=a>b>c 7. c *2 != b 4. 6. 8. m=b> c c+1>= a m=c==a%b
gf1hgh1g1h
§3.6 逻辑运算符和逻辑表达式1. 三种逻辑运算运算符 功 能 && || ! 逻辑与 目数 优先级 结合性 2 11 左 左 0 右 表达式 E1&&E2 E1||E2 !E1
逻辑或 2 12 如: : 逻辑非 5>3&&8<4-!0 1 2
2. 逻辑值的表达
‘ c ’&& ‘ d ’
1
☆ 在给出逻辑运算结果时,以数值 1 代表“真”,
以数值 0 代表“假”; ☆ 在判断一个量是否为“真”时,将所有非0 的数 据都认作 “真”。
gf1hgh1g1h
如: 2. 运算规则 main( ) { E1 E2 E1 && E2 E1||E2 !E1 int a=1,b=2,c=3,d=4; 0 0 1 0 0 int m, n=1; 0 非 0 m=a>b&&(n=c>d); 1 0 1 0 0 非 0 0 printf("m=%d,n=%d\n",m,n); 1 } 0 1 1 非0 非0 输出: m=0,n=1 注意: ☆ a&&b&&c 只有 a 为真(非0)时,才需判别b的值,只有a和b都为真(非0)时,才需要判别c 的值。 ☆ a||b||c 只有 a 为假时,才需要判别 b 的值,只有 a 和 b 都为假时,才需要判别 c 的值。
gf1hgh1g1h
§3.7 自增、自减运算符及其表达式自增、自减运算符是最具C语言特点的运算符。用于 对变量自身的加 1 或 减 1 运算。 自增运算符:++ (单目).自减运算符:- j, m (单目). 若有 int a, b, ; 则: 表达式形式: a ++ √, ++ b √, - - j √, m - - √ 1. 后缀 表达式: E++ , E - 5 ++ × , - - 6 × 2. 前缀 表达式: ++ E , - - E
变量! 变量!
对于操作数E : E++ 、 ++ E 等价于 E= E+1 ; E - - 、 - - E 等价于 E= E-1 ;
gf1hgh1g1h
运算规则: : 如: int a=5 , b=5, m ,n; 1.无论前缀运算或后缀运算,对 ++ 运算符来讲,操作 例: m=a ; n= - - b ; 数的值加1 ;对 - - 运算符来讲,操作数
的值减1 。 ...... printf(“%d,%d ,%d,%d”,m,n ,a,b) ; i=3; 输出: 5, 4 ,4,4 2.对 ++printf("%d",++i ); 2. 运算符来讲,前缀运算表达式的值为操作数加 4 1 ;后缀运算表达式的值为原操作数的值。 j=4;8 printf("%d",i+j++); ,n; 如: int a=5 ,b=5, m - - 运算符来讲,前缀运算表达式的值为操作数减 3.对 i=j; m=a++ ; n= ++b ; i j 5 1 ;后缀运算表达式的值为原操作数的值。 ; ...... printf(“%d,%d,%d,%d”,m,n,a,b)
输出: 5, 6 ,6,6
gf1hgh1g1h
§3.8 位逻辑运算符﹡ 在系统软件中,常要处理二进制位的问题。所谓位 运算是指进行二进制位的运算。 ﹡ C 语言提供如下两类 6 种位运算符: 1. 按位逻辑运算符:& 按位与、| 按位或、^按位 异 或、 ~ 按位取反。 2. 移位运算符: << 左移、 >> 右移。 说明: ★ 位运算 …… 此处隐藏:2704字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




