教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

C语言第三章运算符与表达式

来源:网络收集 时间:2026-08-27
导读: gf1hgh1g1h 第三章3.1 基本概念 运算符与表达式 如:(a+2)*(b-3)/(x+y)-sqrt(9.0) ( 量、函数等)连接起来所构成的式子。 ◆ 单目、双目、三目运算符:根据运算符所需要的 如: x+y-z,-25 , a*b /c ,x=5, a : , , 操作数的个数将其分为单目、双目和三目运算符

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言第三章运算符与表达式.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1706627.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)