当前位置:文档之家› 第三章运算符与表达式PPT课件

第三章运算符与表达式PPT课件

注:优先级和结合方向的区别:前者是针对”优先级别不同”的情况,后者 是针对”优先级别相同”的情况。
.
3
3.2 算术运算 1、双目算术运算 ①运算符:+,-,*,/(除),%(模或求余)。 ②优先级别:+,-是同级别的;*,/,%是同级别的, 且高于+,-的级别。 ③结合方向:均为左结合。 ④ +,-,*运算的运算规则、运算量的类型与结果类型 ⑴运算规则与数学中的运算规则相同; ⑵要求参加运算的两个运算量可以是整型数据,也可以 是实型数据; ⑶如果两个运算量都是整型数据,则结果也是整型数据; 如果两个运算量至少有一个是实型数据,则结果是 double型数据。
.
5
例2-1 已知变量a是一个两位正整数,用C语言的表达式 分别表示a的个位和十位。
解答: a的个位的C语言的表达式:a%10,
a的十位的C语言的表达式:a/10。

课堂实践4
一 做
已知变量a是一个三位正整数,用C语言
的表达式分别表示a的个位、十位和百位。
解答: a的个位的C语言的表达式:a%10,
.
7
2、复合的赋值运算 ①复合的赋值运算符:自反加赋值:+=;自反减赋值;-=; 自反乘赋值:*=;自反除赋值:/=;自反模赋值:%=。 ②运算规则:a+=b 等价于 a=a+b; a-=b 等价于 a=a-b; a*=b 等价于 a=a*b; a/=b 等价于 a=a/b; a%=b 等价于 a=a%b。 ③优先级别:与赋值运算符同级。 ④结合方向:右结合。 例2-2 设有如下定义和语句 int a=5,b=3,c; c=b*=a+2; 表达式c=b*=a+2相当于c=(b=(b*(a+2))),分析表达式 c=b*=a+2执行前后各变量在内存中的变化情况:
.
4
⑤/运算的运算规则、运算量的类型与结果类型 ⑴是要 实求型例例参数如如加据::例运;如ifnlo算t:aat的=in5a两t=,ba5==个.025,;运,bb=则=算2-5.量a0,/c;b=可=则3=,以d2a=(/是b-3=≠整;=22.型5.5)数, a,据*ba,=*b=也=1=0可.100以 ⑵如果两个则运a%算c量==都2,是a%整d型==数2,据b%,c=则=-结2,果b%也d=是=-整2 型数据, 此时的除法运算称为整除; ⑶如果两个运算量至少有一个是实型数据,则结果是 double型数据。 ⑥a%b运算的运算规则、运算量的类型与结果类型 ⑴对于模运算%,要求两个运算量a,b都是整型数据; ⑵运算规则是求a被b除所得的余数,结果的符号与被除 数a的符号相同,运算结果还是整型数据。 2、算术表达式:根据运算符的优先级别和结合方向, 通过加括号最终化为用算术运算符连接起来的表达式。
5
231
2?1
aHale Waihona Puke bc表达式c=b*=a+2执行前后
.
8
3.4 自加和自减运算
①运算符: ++,-②一般形式:后缀形式: 变量++ , 变量—
前缀形式: ++变量, --变量 在运算符的一侧通常必须是变量,不能是常量或表达式。 ③运算规则:后缀形式变量的值加(减)1,但表达式的值为变量增值前的值; 前缀形式变量的值加(减)1,但表达式的值为变量增值后的值。可以用一句 话概括为:后缀形式变量”先引用,后增减”,前缀形式变量”先增减,后 引用”。
a的十位的C语言的表达式:(a/10)%10,
a的百位的C语言的表达式:(a/10)/10 。
.
6
3.3 赋值类运算 1、赋值运算 ①运例算如符::表= 达式 b=a=a+5是赋值表达式, 因为‘=’ ②一的般优形先式级:别变低量于=‘表+达’,式是右结合的,所以b=a=a+5 ③ 作相用当:于把b=赋(a值=(a号+5右))边,表因达此式是值赋赋值给表赋达值式号。左边的变量, 即把表达式的值传送到变量的内存单元中。 ④ 优先级别:仅高于逗号运算符。 ⑤结合方向:右结合。 ⑥赋值表达式:根据运算符的优先级别和结合方向,通 过加括号最终化为用赋值号把变量和表达式连接起来的 式子称为赋值表达式。 ⑦赋值表达式:赋值表达式的值为赋值后赋值号左边变 量的值。
C语言
第三章 运算符和表达式
.
1
3.1运算符的有关知识 1、运算符和表达式 ①运算量:参加运算的对象称为运算量,运算对象包括: 常量、变量、函数等。 ②运算符:表示运算的符号称为运算符或操作符。 ③运算符的目:要求有一个运算量的运算符称为单目运 算符;要求有两个运算量的运算符称为双目运算符;要 求有三个运算量的运算符称为三目运算符。 ④表达式:用运算符把运算量连接起来的符合C语言语 法规则的式子称为表达式。
④优先级别:高于算术运算。 ⑤结合方向:右结合。
当变量自增自减运算单独作为一条语句时,采取前缀或后缀形式变量值的结 果一样(都是使变量加或减1),如:a++; 等价++a;但,当它们出现在混合表达式 中时,前缀后缀不同形式,结果值往往是有区别的.
.
9
例2-3 指出以下程序段执行后各变量的值。 例2-3 指出以下程in序t a段=3执,b行,c;后各变量的值。 例2-4 设有定义inbt=aa=+3+,b;,c=5;请将以下两条语句a--; b=a+c;写成一条语c=句+。+a;
C语言的表达式主要有:算术表达式、关系表达式、 逻辑表达式、赋值表达式、条件表达式、逗号表达式。
.
2
2、应例注如意:的6/几3*个2,问在题运算量3的两侧有两个运算符/ ①运和算*的,优它先们级的别优:先如级果别在相一同个,运如算果量按两左侧结的合运进算行符的 “优处所先理得级,的别所结”得 果不的为同结1,。果则为应4先;执如行果“按优右先结级合别进”行高处的理运,算 符。 ②级结 别合”方相例算向同如3+,::10则如(3=+按果123*运在)。5,算一应符个先的运计结算算合量2方两*5向侧(=的的10顺运),序算再进符计行的处“理优。先 结合方向包括:左结合,即按自左向右的顺序进行处理; 右结合,即按自右向左的顺序进行处理。
该程序段执行后各变量的值为:a==5,b==3,c==5
例2-4 设有定义int a=3,b,c=5;请将以下两条语句 b=a+c; a--;写成一条语句。 解答:写成一条语句为: b=a--+c;
相关主题