云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 《C语言程序设计》教案(清华谭浩强)

《C语言程序设计》教案(清华谭浩强)

  • 62 次阅读
  • 3 次下载
  • 2025/6/10 10:53:12

位小数)

10+97+1.5-8765.1234*98 二.运算符和表达式

C表达式:由变量、常量、函数等运算对象和运算符组成的式子 C运算符作用:

1)能把一些基本运算模块用单一的运算符处理 2)使用丰富的运算符,构成多种表达式

C运算符有优先级,优先级高的先执行,同级的由结合规则决定其处理规则

C运算符有两种结合规则:

1)从左到右的结合运算顺序;即:a=5+x-10;运算对象与左边运算符结合

2)从右到左的结合运算顺序;即:x=y=7;运算对象与右边运算符结合

C运算符分类 书P55 1.基本运算符(算术运算符) C语言有7个基本运算符

1)单目运算符:(表示符号) 正号“+” 负号“-”

2)双目运算符:+、- 、*、/、%(模运算,求余运算,两侧为整数) 说明:

a)运算顺序的结合方向从左到右

b)求余(取模)运算符是对两个整数相除的余数,计算结果的符号与第一个数的符号相同。即:-5%3 值为-2、 -5%-3 值为-2、 5%-3 值为2

2.自增、自减运算符(优先级高于算术,右结合) 作用:——使变量的值增1或减1

++i(--i)——在使用i之前,先使i的值加1(减1),然后再使用i。

i++(i--)——先使用i的值,然后再使i加1(减1)。 例:i =4;

j=++i; i 值为5,值为5; j=i++; i 值为5,j值为4

说明:1)自增、自减运算符++(--),只能用于变量,不能用于常量或表达式

即:5++ 、 (a+b)++ —— 不合法 2)运算顺序的结合方向从右到左

例 例: main(){

int i=3 z,x,y;

9

z=(i++)+(i++)+(i++)

x=y=3; //结果:z值为9 i值为6 z=x+++y;

//变量x右结合运算符++ (不是3+4+5=12) printf(\ }

输出结果:z=6 x=4 y=3

如果:z= -x+++y; 输出结果:z=0 x=4 y=3 x先为-4,然后+y,最后x++

3.赋值运算符和赋值表达式(优先级低于算术,右结合) (1)“=” ——赋值运算符

作用:将一个数据赋给一个变量 即:x=21

注意: 如果赋值运算符两侧的类型不一致,在赋值时,要进行类型转换。P61例3.9

即:float f ; f=23 f值为23.0000 符号位扩展 (2)复合的赋值运算符

“+=、-=、*=、/=、%=” —— 在赋值符“=”之前加上其它运算符 称复合运算符(也称为自反运算符) 例:a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) y/=4 等价于 y=y/4 m%=3 等价于 m=m%3 说明:

C语言采用这种复合运算符:

为了简化程序,使程序精练;提高编译效率。 (3)赋值表达式

格式:变量=表达式 表达式:

可以是 1)常量、变量、算术表达式; 2)赋值表达式

即:a=(b=5) 或 a=b=5 (运算顺序的结合方向从右到左)

例:

a=b=c=6 ; a=5+(c=6) (结果a=11 c=6) 如果:a=3; 求:a+=a-=a*a; [有:1] a*a; 9 2)a= a-(a*a); -6 3) a+=-6 ] -6+-6

a为:-12 结果值为:-12

10

4.逗号运算符和逗号表达式(优先级最低,左结合) 用“,”将两个表达式连接起来。

格式:表达式1,表达式2 即: 3+5,6*9; 例: 3+5,6*9; 值为54

(先求解表达式1,再求解表达式2,最后逗号表达式的值为表达式2的值)

a=2*5,a*3; a值为10 结果值为:30 (先求:a=2*5,后求:a*3)

x=(a=2*5,a*3),a+4 a值为10 x值为30 结果值为:14 说明:

使用逗号表达式的目的,只是为了得到各个表达式的值(常用于循环语句)

解表达式1的结果可能影响解表达式2的值 5.强制类型转换运算符(优先级高于算术,右结合)

在要转换的数据前,用小括号括上要转换的数据类型 即: (int)x; (int)(a+b) (int)x+y 格式:(类型名)表达式

C一般会自动进行数据类型转换P56例3.8,用于不能自动转换的地方x%3(float f)

6.关系运算符和关系表达式(书P87)(优先级低于算术,左结合,高于赋值)

(1)6种关系运算符

< <= > >= (优先级高) = = != (优先级低)

(2)关系表达式

表达式 关系运算符 表达式

即:a>b a+b>=b+c (a=4)<(b=8) ?x?= = ?y? 说明:

关系表达式值:是一个逻辑值,即:“真”或“假” C语言:1 —— 代表“真” 0 —— 代表“假”

7.逻辑运算符和逻辑表达式(书P88)(优先级低于关系,左结合) (1)3种逻辑运算符 p89 表5.1

&& (与) | | (或) ! (非) (2)逻辑表达式

表达式 逻辑运算符 表达式 p89

即: (a>b) | | (a+b>=b+c) (a=4)&&(b=8) 1 | | ∞ (1) ?x?&& ?y? 值为1 1 说明:

逻辑表达式值:是一个逻辑值,即:“真”或“假” p90

11

优先次序(由高到低): !(非) 算术运算符 关系运算符 &&和| | 赋值运算符 求值短路:5>3&&2||8<4-!0 1||∞ (结果1)

0&&∞ (结果0) 如:a&&b&&c a<>0才判断a&&b

8.条件运算符(书P97)

格式:表达式1 ? 表达式2:表达式3 执行:先求解表达式1,为真(非零),求表达式2 为假(为0),求表达式3

例: y= ( a>b ) ? a : b;

说明:a)条件运算符要求有三个操作对象(称三目元运算符) b)条件运算符优先于赋值运算符

y= ( a>b ) ? a : b; 先求 ( a>b ) ? a : b 后赋值 c)条件运算符的结合方向为“自右至左”

( a>b ) ? a : b 可写为: a>b ? a : b a>b ? a : b+5 相当于: a>b ? a :(b+5) a>b ? a : c> d ? c : d 相当于: a>b ? a : ( c> d ? c : d )

* 9.位运算符 (书P298)(一般掌握)

位运算:—— 是对字节或字中的实际位进行检测、设置、屏蔽、移位。

位运算符:

& —— 位逻辑与 | ——位逻辑或 ^ —— 位逻辑异或 ~ —— 位逻辑反 >> —— 右移 << —— 左移

三、运算符小结

1.左结合方向的运算符

主要有:算术运算符、关系运算符、逻辑运算符、逗号运算符 2.右结合方向的运算符

主要有:自增、自减运算符、赋值运算符(复合的赋值运算符)、条件运算符

例:1) i=3; printf(\,%d\,i,i++); 输出:4, 3

2) a=1;b=1;c=2; 求:a=b + = c* = 5; 输出:a为11 b为11 c为10

3) a>b ? a> c?a:c:b>c ? b:c 相当于:a>b ? (a> c?a:c):(b>c ? b:c)

(求最大值,如a=2, b=8, c=5 结果为:8)

12

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

位小数) 10+97+1.5-8765.1234*98 二.运算符和表达式 C表达式:由变量、常量、函数等运算对象和运算符组成的式子 C运算符作用: 1)能把一些基本运算模块用单一的运算符处理 2)使用丰富的运算符,构成多种表达式 C运算符有优先级,优先级高的先执行,同级的由结合规则决定其处理规则 C运算符有两种结合规则: 1)从左到右的结合运算顺序;即:a=5+x-10;运算对象与左边运算符结合 2)从右到左的结合运算顺序;即:x=y=7;运算对象与右边运算符结合 C运算符分类 书P55 1.基本运算符(算术

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com