C语言运算符和表达式ppt课件
合集下载
关于运算符与表达式课件

int b=(int)f%a;
/*对f进行强制类型转换*/
printf("%d,%f\n",b,c); /*输出变量b和c的值*/
}
3.4.2 复合赋值运算符
3.5 关系运算符与表达式
3.5.1 关系运算符
3.5.2 关系表达式
用关系运算符连接起来的两个表达式称为 关系表达式。其中,关系运算符两侧的表 达式可以是算术表达式、逻辑表达式、赋 值表达式和字符表达式等。
以上类型转换是由系统自动进行的。
【例3-2】赋值运算符示例
main()
{
int a=2;
/*定义并初始化整型变量a*/
double e=5.123; /*定义并初始化双精度变量e*/
float f=4.2;
/*定义并初始化单精度变量f*/
float c=e/a;
/*定义并初始化单精度变量c*/
3.2.3 运算符的优先级与结合性
1. 优先级 在表达式求值时,先按运算符的优先级别 高低次序执行,例如先乘除后加减。 a-b*c,相当于 a-(b*c)。 2. 结合性 如果一个运算对象两侧的运算符的优先级 别相同,如a-b+c,按规定的“自左向右”处 理。
C规定了各种运算符的优先级和结合性,可 参见附录II。
3. 小括号的用途 C语言中小括号也作为一个特殊的运算符来
处理,并且它的优先级别是最高的,所以 在一些比较长或复杂的表达式中,可以恰 当的使用小括号规定运算的先后次序。
【示例】设a=8,b=2,c=16,d=8
(a+b)*(c-d)的值为80 a+b*c-d的值为32 a/(c/d)的值为4 a/c/d的值为0
关于运算符与表达式
C语言表达式和算术运算符ppt课件

如:17%-3=2 -19%4=-3 -15%-7=-1
5%1.5是非法的算术表达式
2)除法运算符“/”进行求商运算。对于不同类型的运算对象, 除法表达式计算结果的类型也会不同。
例:计算x/y 如果x,y为整型,小数部分舍去,没有四舍五入 如果x,y中有一个为实型量,则x,y都被化为double类型进
结合性: 同一优先级,自 左向右,为左结合性,反 之为右结合性。
初等运算符( [ ]、( )、 . 、-> )
↓ 单目运算符
↓ 算术算
符!)
↓ 赋值运算符
↓ 逗号运算符
.
4
3.5.2算术运算符和算术表达式
1、基本的算术运算符:
+ (加法运算符,或正值运算符。如:3+5、+3) - (减法运算符,或负值运算符。如:5-2、-3) * (乘法运算符。如:3*5) / (除法运算符。如:5/3) % (模运算符,或称求余运算符,%两侧均应为整型数据,
行计算,结果为double
.
8
算术运算符和算术表达式
运算实例: x,y为整型量:5/2结果为2,整型量
2/5结果为0,整型量 x,y其中一个为实型量 5.0/2或 5.0/2.0或 5.0/2.0结果为2.5,实型量
.
9
练习:
例 1/2 = 0 -5/2 = -2 -5/2.0 = -2.5
例 5%2 = 1 -5%2 = -1 5%-2 = 1 1%10 = 1 5%1 = 0 5.5%2 =
第3章 表达式和运算符(3)
.
1
3.5 运算符和表达式
3.5.1 运算符的种类、优先级和结合性 3.5.2 算术运算符和算术表达式 3.5.3 赋值运算符和赋值表达式 3.5.4 增量运算符和增量表达式 3.5.8 逗号运算符和逗号表达式
5%1.5是非法的算术表达式
2)除法运算符“/”进行求商运算。对于不同类型的运算对象, 除法表达式计算结果的类型也会不同。
例:计算x/y 如果x,y为整型,小数部分舍去,没有四舍五入 如果x,y中有一个为实型量,则x,y都被化为double类型进
结合性: 同一优先级,自 左向右,为左结合性,反 之为右结合性。
初等运算符( [ ]、( )、 . 、-> )
↓ 单目运算符
↓ 算术算
符!)
↓ 赋值运算符
↓ 逗号运算符
.
4
3.5.2算术运算符和算术表达式
1、基本的算术运算符:
+ (加法运算符,或正值运算符。如:3+5、+3) - (减法运算符,或负值运算符。如:5-2、-3) * (乘法运算符。如:3*5) / (除法运算符。如:5/3) % (模运算符,或称求余运算符,%两侧均应为整型数据,
行计算,结果为double
.
8
算术运算符和算术表达式
运算实例: x,y为整型量:5/2结果为2,整型量
2/5结果为0,整型量 x,y其中一个为实型量 5.0/2或 5.0/2.0或 5.0/2.0结果为2.5,实型量
.
9
练习:
例 1/2 = 0 -5/2 = -2 -5/2.0 = -2.5
例 5%2 = 1 -5%2 = -1 5%-2 = 1 1%10 = 1 5%1 = 0 5.5%2 =
第3章 表达式和运算符(3)
.
1
3.5 运算符和表达式
3.5.1 运算符的种类、优先级和结合性 3.5.2 算术运算符和算术表达式 3.5.3 赋值运算符和赋值表达式 3.5.4 增量运算符和增量表达式 3.5.8 逗号运算符和逗号表达式
C语言 第3章 2类型、运算符与表达式PPT课件

例: 8%5 的运算结果:3 8/5 的运算结果:1 5.6/2 :2.800000 8.43/5:1.686000
18
算术表达式:
算术表达式:用算术运算符和括号将运算对象连接起 来的式子称为算术表达式。 运算符有优先级和结合性: • 计算表达式的值时,按照优先级的高低依次计算; • 如果运算符优先级相同,则按规定的结合方向进行。
➢ 变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
3
3.4.1 变量和内存的概念
#include<stdio.h> #define PI 3.1415926 void main( ) { float r, s, ar;
scanf(“%f”, &r); s = 2 * PI * r; ar = PI * r * r; printf("s=%7.2f, " , s ); printf(" ar=%7.2f “ , ar ) ; }
代数表达式: s=2πr
算术表达式:s=2*3.14159*r
20
练习:
1.下列运算符的操作数不能是float型的运算符是()。
A. * B. % C. ―― D. /
答案: B
2.执行以下程序段,c的值是( )。 int a=1,b=2,c;
答案: A
c=a/b;
A. 0 B. 1/2 C. 0.5 D. 1
分量运算符: . ->
下标运算符: [ ]
其它 : ( ) -
13
➢学习运算符应注意:
运算符功能 与运算量关系
要求运算量个数 要求运算量类型
运算符优先级别 结合方向 结果的类型
14
18
算术表达式:
算术表达式:用算术运算符和括号将运算对象连接起 来的式子称为算术表达式。 运算符有优先级和结合性: • 计算表达式的值时,按照优先级的高低依次计算; • 如果运算符优先级相同,则按规定的结合方向进行。
➢ 变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
3
3.4.1 变量和内存的概念
#include<stdio.h> #define PI 3.1415926 void main( ) { float r, s, ar;
scanf(“%f”, &r); s = 2 * PI * r; ar = PI * r * r; printf("s=%7.2f, " , s ); printf(" ar=%7.2f “ , ar ) ; }
代数表达式: s=2πr
算术表达式:s=2*3.14159*r
20
练习:
1.下列运算符的操作数不能是float型的运算符是()。
A. * B. % C. ―― D. /
答案: B
2.执行以下程序段,c的值是( )。 int a=1,b=2,c;
答案: A
c=a/b;
A. 0 B. 1/2 C. 0.5 D. 1
分量运算符: . ->
下标运算符: [ ]
其它 : ( ) -
13
➢学习运算符应注意:
运算符功能 与运算量关系
要求运算量个数 要求运算量类型
运算符优先级别 结合方向 结果的类型
14
第三章运算符与表达式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执行前后各变量在内存中的变化情况:
.
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执行前后各变量在内存中的变化情况:
C语言-数据类型运算符和表达式ppt课件

第3
教学要求: 1. 掌握C语言数据类型分类。 2. 掌握整型数据、实型数据、字符数据使用 规则。 3.掌握C语言常量、变量的使用。 4.掌握各种运算符的优先级、结合方向。 5.掌握各种数据运算的运算符的运算。 6.掌握混合运算时的类型转换规则。
第3
3.0 基本字符、名字表示、标识符和关键字 3.1 C 的数据类型 3.2 常量与变量 3.3 整型数据 3.4 实型数据 3.5 字符型数据 3.6 变量赋初值 3.7 各类数值型数据间的混和运算 3.8 算术运算符和算术表达式 3.9 赋值运算符和赋值表达式 3.10 逗号运算符和逗号表达式
C 语言基本类型与数据的表示
“类型名”:类型的称呼。 一个基本类型的名字由一个或几个标识符表示。 类型名也是一种标识符,属于 C 语言的关键字。
int long int
整数 长整数
3.3 整型数据:整数类型和整数的表示
3.3.1 整型常量的表示:有三种形式
1) 十进制:要求第一个数字不是 0,要写的数本身就是 0 除外。 如:123,-456,0。
char do extern if return static union while
3.1 C 语言的数据类型
算法处理的对象是数据,数据是以特定的形式存在的。不 同的数据之间往往存在某些联系。
数据结构指的是数据的组织形式。 C 语言的数据结构是以数据类型形式出现的。
❖ 类型:具有同样性质的一个数据集合称为一个类型。 计算机硬件也把被处理的数据分为一些类型,例如整型数、 浮点数。 它们能够做同样的操作,它们都采用同样的编码方式。
3.0 基本字符、名字表示、标识符和关键字
一个 C 程序是 C 语言基本字符构成的一个序列。
语言中使用的基本字符包括: 1. 数字字符〔0~9)
教学要求: 1. 掌握C语言数据类型分类。 2. 掌握整型数据、实型数据、字符数据使用 规则。 3.掌握C语言常量、变量的使用。 4.掌握各种运算符的优先级、结合方向。 5.掌握各种数据运算的运算符的运算。 6.掌握混合运算时的类型转换规则。
第3
3.0 基本字符、名字表示、标识符和关键字 3.1 C 的数据类型 3.2 常量与变量 3.3 整型数据 3.4 实型数据 3.5 字符型数据 3.6 变量赋初值 3.7 各类数值型数据间的混和运算 3.8 算术运算符和算术表达式 3.9 赋值运算符和赋值表达式 3.10 逗号运算符和逗号表达式
C 语言基本类型与数据的表示
“类型名”:类型的称呼。 一个基本类型的名字由一个或几个标识符表示。 类型名也是一种标识符,属于 C 语言的关键字。
int long int
整数 长整数
3.3 整型数据:整数类型和整数的表示
3.3.1 整型常量的表示:有三种形式
1) 十进制:要求第一个数字不是 0,要写的数本身就是 0 除外。 如:123,-456,0。
char do extern if return static union while
3.1 C 语言的数据类型
算法处理的对象是数据,数据是以特定的形式存在的。不 同的数据之间往往存在某些联系。
数据结构指的是数据的组织形式。 C 语言的数据结构是以数据类型形式出现的。
❖ 类型:具有同样性质的一个数据集合称为一个类型。 计算机硬件也把被处理的数据分为一些类型,例如整型数、 浮点数。 它们能够做同样的操作,它们都采用同样的编码方式。
3.0 基本字符、名字表示、标识符和关键字
一个 C 程序是 C 语言基本字符构成的一个序列。
语言中使用的基本字符包括: 1. 数字字符〔0~9)
第4章c语言(运算符和表达式)PPT教学课件

a
b
a&&b
a||b
真
真
真
真
真
假
假
真
假
真
假
真
假
假
假
假
其中,“!”是单目运算符,而”&&”和 “||” 是双目运算符。
2020/12/11
20
4.4.2 逻辑表达式
逻辑运算符把各个表达式连接起来组成一个逻辑 表达式。例如:a&&b、1||(!x)
逻辑表达式的值只有两个:0和1。 举例:
当x为0时,x<-2 && x>=5的值为多少。 若a=4,则 !a 、a&&-5 、4||0 的值分别为多少。
位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右 移(>>)
简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)、 复合位运算赋值(&=,|=,^=,>>=,<<=)
(?:)
(,)
用于取内容和取地址
取内容(*)、取地址(&)
用于计算数据类型所占的
字节数
(sizeof)
3
其它
⑵ 注意“==”与“=”的区别,==是用来判断运算符两边的数据是 否相等,而=作用是将右边表达式的值赋给左边的变量。 如:a==b<c 与 a=b<c 不同
2020/12/11
28
4.6.2 赋值表达式
赋值表达式的值等于右边表达式的值,而结果的 类型由左边变量的类型决定,例如:
int i; float f; i=1.2*3; f=23;
C语言运算符和表达式ppt课件

依次分解出个位数字、十位数字、百位数字和千 位数字,并分别放到字符变量c1、c2、c3和c4 中。
怎么分解?
利用除法、取模等运算。
顺序输出变量c1、c2、c3和c4中的字符。
3
引例
引例
◦ 源程序 #include <stdio.h>(cw04-01.c)
void main() {
28
小结
运算符的相关概念 运算符的分类
◦ 按操作数个数分 ◦ 按操作类型分
各类运算符及表达式知识 优先级和结合性总结
29
23
赋值运算
运算符和表达式
赋值运算符
◦ 简单赋值运算符:= ◦ 复合赋值运算符:+=,-=,*=,/=,%= ◦ 优先级:14 ◦ 结合性:从右往左
赋值表达式
<变量> <赋值运算符> <表达式>
d = 23 ◦ 作用:将表达式的值赋给变量。 ◦ 赋值表达式的值就是被赋值的变量的值。
24
简单赋值运算
a>b m+n<=20 c!=‘y’ (x>z)==(y>z)
14
关系表达式
关系表达式的值是一个逻辑值:“真” 或“假”
◦ C语言没有逻辑类型,因此
用整数 1 表示“真”
用整数 0 表示“假”
◦ 即关系表达式的值是整数 1 或 0 。
a>b ◦ 举例
0
a+b<=c
1
(a>c)==(b若>ca)=1,b=21,c=3
10
自增和自减运算
举例(cw0404.c)
#include <stdio.h>
怎么分解?
利用除法、取模等运算。
顺序输出变量c1、c2、c3和c4中的字符。
3
引例
引例
◦ 源程序 #include <stdio.h>(cw04-01.c)
void main() {
28
小结
运算符的相关概念 运算符的分类
◦ 按操作数个数分 ◦ 按操作类型分
各类运算符及表达式知识 优先级和结合性总结
29
23
赋值运算
运算符和表达式
赋值运算符
◦ 简单赋值运算符:= ◦ 复合赋值运算符:+=,-=,*=,/=,%= ◦ 优先级:14 ◦ 结合性:从右往左
赋值表达式
<变量> <赋值运算符> <表达式>
d = 23 ◦ 作用:将表达式的值赋给变量。 ◦ 赋值表达式的值就是被赋值的变量的值。
24
简单赋值运算
a>b m+n<=20 c!=‘y’ (x>z)==(y>z)
14
关系表达式
关系表达式的值是一个逻辑值:“真” 或“假”
◦ C语言没有逻辑类型,因此
用整数 1 表示“真”
用整数 0 表示“假”
◦ 即关系表达式的值是整数 1 或 0 。
a>b ◦ 举例
0
a+b<=c
1
(a>c)==(b若>ca)=1,b=21,c=3
10
自增和自减运算
举例(cw0404.c)
#include <stdio.h>
C语言基本运算符与表达式ppt课件

ppt课件完整
29
结果1: input data x,y: 12 ˽ 8 回车
x y !x x||y 12 8 0 1
x&&y 1
结果2: input data x,y: 9 ˽ -3 回车
x y !x x||y 9 -3 0 1
x&&y 1
结果3:
input data x,y: 0 ˽ 81 回车
z=x<=y;printf(“%5d”,z);
z=x>y;printf(“%5d”,z);
z=x>=y;printf(“%5d”,z);
z=x!=y;printf(“%5d”,z);
z=x==y;printf(“%5d”,z);
printf(“\n”);
}
ppt课件完整
23
结果1: input data x,y: 5 ˽ 3 回车
printf(“input data x,y:\n”); scanf(“%d%d”,&x,&y); printf(“\n˽ ˽ ˽ ˽x ˽ ˽ ˽ ˽y ˽ ˽ ˽ ˽ ˽ ˽ !x ˽ ˽ ˽ ˽x||y ˽ ˽ ˽ ˽x&&y”); printf(“\n%5d%5d”,x,y); z=!x;printf(“%8d”,z); z=x||y;printf(“%8d”,z); z=x&&y;printf(“%8d”,z); printf(“\n”); }
ppt课件完整
21
例 注意区分“=”与“==” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
依次分解出个位数字、十位数字、百位数字和千 位数字,并分别放到字符变量c1、c2、c3和c4 中。
怎么分解?
利用除法、取模等运算。
顺序输出变量c1、c2、c3和c4中的字符。
3
引例
引例
◦ 源程序 #include <stdio.h>(cw04-01.c)
void main() {
//得到个位数字 //得到十位数字 //得到百位数字 //得到千位数字
printf("\n%c%c%c%c\n", c1, c2, c3, c4); }
4
相关概念
运算符
在C语言中用来表示某种计算的符号。
操作数
运算符操作的对象,可以为变量(已赋值)、 常量或其他有切确值的表达式。
表达式
运算符和合适的操作数组成的具有切确值的式 子称为表达式。
9
算术运算符(特殊问题)
除号运算符的使用问题
当除号前后操作数全为整型数(包括char、int、 long)时,除号为整除运算。 当有任一操作数为实型数时则为普通除法运算。
取模运算符的使用问题
操作数只能整型数据(char、int、long)。
自加/自减运算符的使用问题
++(--)在前:先加(减)后用; ++(--)在后:先用后加(减)。
10
自增和自减运算
举例(cw0404.c)
#include <stdio.h>
void main() { int i=6, a, b;
printf("%d\n", ++i); printf("%d\n", i++);
a=--i; printf("%d\n", a); b=i--; printf("%d\n", b);
a>b m+n<=20 c!=‘y’ (x>z)==(y>z)
14
关系表达式
关系表达式的值是一个逻辑值:“真” 或“假”
◦ C语言没有逻辑类型,因此
用整数 1 表示“真”
用整数 0 表示“假”
◦ 即关系表达式的值是整数 1 或 0 。
a>b ◦ 举例
0
a+b<=c
1
(a>c)==(b若>ca)=1,b=21,c=3
◦ 举例:a>3
如果a=8,结果为“真”,即条件满足 如果a=1,结果为“假”,即条件不满足
12
关系运算符
关系运算符
运算符
含义
<
小于
<=
小于或等于
>
大于
>=
大于或等于
==
等于
!=
不等于
优先级
6
7
结合性
左结合
13
关系表达式
关系表达式
<表达式1> <关系运算符> <表达式2> ◦ 表达式1和表达式2可以是任何表达式。 ◦ 举例
5
运算符分类
单目运算符(一元运算符)
只有1个操作数。
双目运算符(二元运算符)
具有2个操作数。(主要类型)
三目运算符(三元运算符)
需要3个操作数。(唯一:条件运算符 ? :)
6
运算符的优先级和结合性
运算符的优先级
◦ 某些运算符先于其他运算符被执行。
例如,x + y * 4,先乘除后加减。
7
printf("%d\n", -i++);
7
printf("i=%d\n", i);
7
}
7
-6
i=?
11
关系运算
关系运算(比较运算)
◦ 比较两个值,结果为“真”或“假”。 ◦ 举例:a>3
如果a=8,则结果为“真” 如果a=1,则结果为“假”
用关系运算进行条件判断
◦ 关系表达式表示一个条件,根据其结果判断条 件是否满足。
◦ 说明
取模运算(%),结果是两个整数相除的余数。 例如,7%5 = 2,-2%3 = -2。
8
自增和自减运算符
运算符和表达式
自增和自减运算符
◦ 自增运算符:++
将操作数的值增一。
◦ 自减运算符:--
将操作数的值减一。
◦ 操作数必须是整型和字符型变量。 ◦ 单目运算符。 ◦ 优先级:2。 ◦ 结合性:从右往左。
unsigned number; char c1, c2, c3, c4;
请输入一个四位的正整数: 1234 4321
printf("请输入一个四位的正整数:"); scanf("%u", &number);
c1 = number%10 + '0'; c2 = number/10%10 + '0'; c3 = number/100%10 + '0'; c4 = number/1000 + '0';
运算符和表达式
常用的算术运算及运算符
运算符名称 算术运算符 代数表达式 C语言表达式
正号
+
+a
+a
负号
-
-b
-b
加
+
f+7
f+7
减
-
p–c
p–c
乘
*
bm
b*m
除
/
x/y
x/y
取模
%
r mod s
r%s
适用的数据类型 整数、字符、浮点数 整数、字符、浮点数 整数、字符、浮点数 整数、字符、浮点数 整数、字符、浮点数 整数、字符、浮点数 整数、字符
◦ 必要时可以用圆括号()改变计算顺序。
例如,求三个数的平均值。 错误的写法:a + b + c / 3 正确的写法:(a + b + c ) / 3
运算符的结合性
◦ 当出现并列的运算优先级别相同的运算符时, 由运算符的结合性决定计算的次序。
例如,x * y / z
7
算术运算符
‘Y’!=‘y’
1
15
关系表达式的使用
举例:写出下面各条件的关系表达式
◦ x为不小于 -5 的整数 ◦ x为非零的数 ◦ x的平方大于m与n的和
x>=-5 x!=0 x*x>(m+n)
16
关系运算的不足
关系表达式只能表达一些简单的条件
grade>=60 total>1000
◦ 每个判断只是对一个条件进行测试。 ◦ 如果要对多个条件进行测试就要在独立的
运算符与表达式
第二讲 运算符和表达式
引例 概念及分类 优先级和结合性 算术运算 关系运算 逻辑运算 位运算 赋值运算符 逗号运算符 条件运算符
2
Байду номын сангаас
引例
引例
◦ 问题
输入一个四位的正整数,反序输出该四位数的四 个数字字符。
◦ 设计
用一个无符号整型变量number保存输入的四位 正整数。
语句或嵌套的if或if-else结构中进行测试。 if◦ 例(y>15:) 10>y>5
if (y<10) …;
if◦ 例(x<2-1:0)x<…-;10或者x>0
if (x>0) …;
17
逻辑运算
逻辑运算
◦ 通过逻辑运算符把简单的条件组合起来,能够 形成更加复杂的条件。
怎么分解?
利用除法、取模等运算。
顺序输出变量c1、c2、c3和c4中的字符。
3
引例
引例
◦ 源程序 #include <stdio.h>(cw04-01.c)
void main() {
//得到个位数字 //得到十位数字 //得到百位数字 //得到千位数字
printf("\n%c%c%c%c\n", c1, c2, c3, c4); }
4
相关概念
运算符
在C语言中用来表示某种计算的符号。
操作数
运算符操作的对象,可以为变量(已赋值)、 常量或其他有切确值的表达式。
表达式
运算符和合适的操作数组成的具有切确值的式 子称为表达式。
9
算术运算符(特殊问题)
除号运算符的使用问题
当除号前后操作数全为整型数(包括char、int、 long)时,除号为整除运算。 当有任一操作数为实型数时则为普通除法运算。
取模运算符的使用问题
操作数只能整型数据(char、int、long)。
自加/自减运算符的使用问题
++(--)在前:先加(减)后用; ++(--)在后:先用后加(减)。
10
自增和自减运算
举例(cw0404.c)
#include <stdio.h>
void main() { int i=6, a, b;
printf("%d\n", ++i); printf("%d\n", i++);
a=--i; printf("%d\n", a); b=i--; printf("%d\n", b);
a>b m+n<=20 c!=‘y’ (x>z)==(y>z)
14
关系表达式
关系表达式的值是一个逻辑值:“真” 或“假”
◦ C语言没有逻辑类型,因此
用整数 1 表示“真”
用整数 0 表示“假”
◦ 即关系表达式的值是整数 1 或 0 。
a>b ◦ 举例
0
a+b<=c
1
(a>c)==(b若>ca)=1,b=21,c=3
◦ 举例:a>3
如果a=8,结果为“真”,即条件满足 如果a=1,结果为“假”,即条件不满足
12
关系运算符
关系运算符
运算符
含义
<
小于
<=
小于或等于
>
大于
>=
大于或等于
==
等于
!=
不等于
优先级
6
7
结合性
左结合
13
关系表达式
关系表达式
<表达式1> <关系运算符> <表达式2> ◦ 表达式1和表达式2可以是任何表达式。 ◦ 举例
5
运算符分类
单目运算符(一元运算符)
只有1个操作数。
双目运算符(二元运算符)
具有2个操作数。(主要类型)
三目运算符(三元运算符)
需要3个操作数。(唯一:条件运算符 ? :)
6
运算符的优先级和结合性
运算符的优先级
◦ 某些运算符先于其他运算符被执行。
例如,x + y * 4,先乘除后加减。
7
printf("%d\n", -i++);
7
printf("i=%d\n", i);
7
}
7
-6
i=?
11
关系运算
关系运算(比较运算)
◦ 比较两个值,结果为“真”或“假”。 ◦ 举例:a>3
如果a=8,则结果为“真” 如果a=1,则结果为“假”
用关系运算进行条件判断
◦ 关系表达式表示一个条件,根据其结果判断条 件是否满足。
◦ 说明
取模运算(%),结果是两个整数相除的余数。 例如,7%5 = 2,-2%3 = -2。
8
自增和自减运算符
运算符和表达式
自增和自减运算符
◦ 自增运算符:++
将操作数的值增一。
◦ 自减运算符:--
将操作数的值减一。
◦ 操作数必须是整型和字符型变量。 ◦ 单目运算符。 ◦ 优先级:2。 ◦ 结合性:从右往左。
unsigned number; char c1, c2, c3, c4;
请输入一个四位的正整数: 1234 4321
printf("请输入一个四位的正整数:"); scanf("%u", &number);
c1 = number%10 + '0'; c2 = number/10%10 + '0'; c3 = number/100%10 + '0'; c4 = number/1000 + '0';
运算符和表达式
常用的算术运算及运算符
运算符名称 算术运算符 代数表达式 C语言表达式
正号
+
+a
+a
负号
-
-b
-b
加
+
f+7
f+7
减
-
p–c
p–c
乘
*
bm
b*m
除
/
x/y
x/y
取模
%
r mod s
r%s
适用的数据类型 整数、字符、浮点数 整数、字符、浮点数 整数、字符、浮点数 整数、字符、浮点数 整数、字符、浮点数 整数、字符、浮点数 整数、字符
◦ 必要时可以用圆括号()改变计算顺序。
例如,求三个数的平均值。 错误的写法:a + b + c / 3 正确的写法:(a + b + c ) / 3
运算符的结合性
◦ 当出现并列的运算优先级别相同的运算符时, 由运算符的结合性决定计算的次序。
例如,x * y / z
7
算术运算符
‘Y’!=‘y’
1
15
关系表达式的使用
举例:写出下面各条件的关系表达式
◦ x为不小于 -5 的整数 ◦ x为非零的数 ◦ x的平方大于m与n的和
x>=-5 x!=0 x*x>(m+n)
16
关系运算的不足
关系表达式只能表达一些简单的条件
grade>=60 total>1000
◦ 每个判断只是对一个条件进行测试。 ◦ 如果要对多个条件进行测试就要在独立的
运算符与表达式
第二讲 运算符和表达式
引例 概念及分类 优先级和结合性 算术运算 关系运算 逻辑运算 位运算 赋值运算符 逗号运算符 条件运算符
2
Байду номын сангаас
引例
引例
◦ 问题
输入一个四位的正整数,反序输出该四位数的四 个数字字符。
◦ 设计
用一个无符号整型变量number保存输入的四位 正整数。
语句或嵌套的if或if-else结构中进行测试。 if◦ 例(y>15:) 10>y>5
if (y<10) …;
if◦ 例(x<2-1:0)x<…-;10或者x>0
if (x>0) …;
17
逻辑运算
逻辑运算
◦ 通过逻辑运算符把简单的条件组合起来,能够 形成更加复杂的条件。