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”);
C语言:运算符和表达式PPT教学课件
逻辑运算的真值
数据a 数据b !a
T
TF
T FF
F
TT
F
FT
!b a&&b a||b
FT
T
TF
T
FF
T
TF
F
!(a&&b) F T T T
说明:T:非0值,表示“真” F:0值,表示“假”
逻辑表达式
逻辑表达式的值应该是一个逻辑量“真”或“假 ”。
系统给出的逻辑运算结果不是0就是1,不可能是 其他数值。而在逻辑表达式中参与逻辑运算的运 算对象(操作数)可以是0(“假”)或任何非0 的数值(按“真”对待)。可以是0或非0的整数 ,也可是任何类型的数据。系统最终是以0或非0 来判断它们属于“真”或“假”。
在逻辑表达式的求解中,并不是所有的逻辑运算 符都被执行,只是在必须执行下一个逻辑运算符
条件运算
非0 真 表达式1 0 假
表达式 2
表达式3
在两个表达式的值中选择一个的操作
形式:e1?e2:e3
例:
数据: e1为算术表达式, e2、e3可以是( a任>b意)类? a型: b;
的表达式,条件表达式的值的类型为e2与e3二者中
习题
1、请写出下列计算式的C语言表达式:
x(2ab)c xy
4a a/5c
Байду номын сангаасd/a
eabf
cf(be)
4*a+(x*(2*a-b)/(a/(5*c))-c*(x*y/(d/a)))/((((e-f)/(a*b))*c-f)*(b-e))
4*a+(x*(2*a-b)/a*5*c-c*x*y/d*a)/((e-f)/a/b*c-f)/(b-e)
c语言运算符和表达式ppt课件
3,再赋给a。
例如: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3
最新课件
26
是个整体
复合赋值运算表达式: 变量 双目运算符=表达式
注意:如果=右边是包含若干项的表达式,则相
当于它有括号。 步骤:
如: ① x %= y+3
1)左边变量的当前值与右边整个表达 式进行相应运算。
❖如果成立,则结果为逻辑值“真”,用整 数 “1”来表示;如:5>=5
❖如果不成立,则结果为逻辑值假”,用整 数“0”来表示。如:5<5
最新课件
29
§3.3 逻辑表达式
❖C语言提供的6种关系运算符:
运算符 名称
例子
>
大于
a>b
<
小于
a<b
==
等于
a==b
>=
大于等于 a>=b
<=
小于等于 a<=b
② 运算符操作的数据的个数。不同的运算符操 作的数据的个数不一定相同;根据运算符连 接运算对象的个数,一般分为单目运算符 (如++、--)、双目运算符(如* / %)和 三目运算符(如?:)。
最新课件
6
③ 运算符在整个运算符系统中的优先级。优 先级是指在运算对象的左右都有运算符时 运算的先后次序。运算对象先做优先级高 的运算。如:*/比+-优先级高。
❖表达式使用时应注意表达式的值及类型。 a. 不同类型的运算符所表示的表达式类型也是 不同的。表达式一般有算术表达式、赋值表达 式、关系表达式、逻辑表达式、逗号表达式、 条件表达式等表达式。 b. 表达式虽然有各种类型,但它总是有确定的 值的,根据运算符的优先级和结合性进行计算。
例如: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3
最新课件
26
是个整体
复合赋值运算表达式: 变量 双目运算符=表达式
注意:如果=右边是包含若干项的表达式,则相
当于它有括号。 步骤:
如: ① x %= y+3
1)左边变量的当前值与右边整个表达 式进行相应运算。
❖如果成立,则结果为逻辑值“真”,用整 数 “1”来表示;如:5>=5
❖如果不成立,则结果为逻辑值假”,用整 数“0”来表示。如:5<5
最新课件
29
§3.3 逻辑表达式
❖C语言提供的6种关系运算符:
运算符 名称
例子
>
大于
a>b
<
小于
a<b
==
等于
a==b
>=
大于等于 a>=b
<=
小于等于 a<=b
② 运算符操作的数据的个数。不同的运算符操 作的数据的个数不一定相同;根据运算符连 接运算对象的个数,一般分为单目运算符 (如++、--)、双目运算符(如* / %)和 三目运算符(如?:)。
最新课件
6
③ 运算符在整个运算符系统中的优先级。优 先级是指在运算对象的左右都有运算符时 运算的先后次序。运算对象先做优先级高 的运算。如:*/比+-优先级高。
❖表达式使用时应注意表达式的值及类型。 a. 不同类型的运算符所表示的表达式类型也是 不同的。表达式一般有算术表达式、赋值表达 式、关系表达式、逻辑表达式、逗号表达式、 条件表达式等表达式。 b. 表达式虽然有各种类型,但它总是有确定的 值的,根据运算符的优先级和结合性进行计算。
C语言第02章 数据类型、运算符与表达式ppt课件
1、整型、实型、字符型数据之间可以混合运 算
整型〔包括int,short,long〕和实型〔包括float,double〕数 据可以混合运算,另外字符型数据和整型数据可以通用,因此, 整型、实型、字符型数据之间可以混合运算。
例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
回到
回到
2.2常量与变量
首页
2.2、变量的定义 〔1〕变量是先定义,后使用。
定义一个变量需要提供两方面的信息:变量的名字和 类型
〔2〕定义格式 类型说明符 变量1, 变量2,…;
如 int number;
回到
2.3整 型 数 据
首页
1、整型常量的表示方法 〔1〕 十进制整常数。没有前缀 〔2〕 八进制整常数。以0作为前缀。 〔3〕 十六进制整常数。十六进制整常数的前 缀为0X或0x。
实型变量提供的有效数字是有限的
一个很大的数+一个很小的数,没有意义
回到
2.4实 型 数
首页
2、实型变量
【例2.8】 显示个人微机上不同类型变量所占的字节数
回到
2.5字符型数据
首页
1、字符常量 〔1〕定义 字符常量是用单引号〔' '〕括起来的一个字符。 例如,'a'、'='、'?'都是合法的字符常量。 〔2〕字符常量特点
回到
作业和实验习题
首页
作业:P41 2.3 2.4 2.7 2.9 2.11〔做在书 上〕 2.12
实验:
P20 例2.2 2.3
P23 例2.4
P24 例2.5
P27 例2.7
整型〔包括int,short,long〕和实型〔包括float,double〕数 据可以混合运算,另外字符型数据和整型数据可以通用,因此, 整型、实型、字符型数据之间可以混合运算。
例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
回到
回到
2.2常量与变量
首页
2.2、变量的定义 〔1〕变量是先定义,后使用。
定义一个变量需要提供两方面的信息:变量的名字和 类型
〔2〕定义格式 类型说明符 变量1, 变量2,…;
如 int number;
回到
2.3整 型 数 据
首页
1、整型常量的表示方法 〔1〕 十进制整常数。没有前缀 〔2〕 八进制整常数。以0作为前缀。 〔3〕 十六进制整常数。十六进制整常数的前 缀为0X或0x。
实型变量提供的有效数字是有限的
一个很大的数+一个很小的数,没有意义
回到
2.4实 型 数
首页
2、实型变量
【例2.8】 显示个人微机上不同类型变量所占的字节数
回到
2.5字符型数据
首页
1、字符常量 〔1〕定义 字符常量是用单引号〔' '〕括起来的一个字符。 例如,'a'、'='、'?'都是合法的字符常量。 〔2〕字符常量特点
回到
作业和实验习题
首页
作业:P41 2.3 2.4 2.7 2.9 2.11〔做在书 上〕 2.12
实验:
P20 例2.2 2.3
P23 例2.4
P24 例2.5
P27 例2.7
C运算符与表达式课件
d = a == b < c; //等价于d = (a ==( b < c)); d的值为0
d = a > b <= c; //等价于d = ((a > b) <= c); d的值为1
可以使用()来改变运算符的计算次序。
既然关系运算的结果是一个逻辑值,那么就可以保存在一个逻辑型 bool变量中。例如: bool b = a > 5;
(2)按位逻辑与“&”对两个操作数逐位进行运算。 若对应位都为1,则该位结果为1,否则为0。例 如: 0xc300000000110000110x6e0000000001 101110a0000000001000010
short int a=0xc3 & 0x6e //结果为0x42
(3)按位逻辑或“|”对两个操作数逐位进行运算。若 对应位都为0,则该位结果为0,否则为1。例如: short int b = 0x12 | 0x3d //结果为0x3f
||(逻辑或)表示“或者”的语义。
例如:
!(2 > 6)
//结果为1,真
7 > 3 && 10 > 6 //结果为1,真
5 > 2 || 4 > 8 //结果为1,真
4 && 5 < 6
//结果为1,真
逻辑运算符的运算优先级为:! 高于 && 高于||。 注意,!的优先级具有较高优先级,甚至高于算 术运算符。而&&和||的优先级则比算术运算符和 关系运算符低。
cout<<"min = "<<min<<endl;
int max = (1 << 31) - 1;
d = a > b <= c; //等价于d = ((a > b) <= c); d的值为1
可以使用()来改变运算符的计算次序。
既然关系运算的结果是一个逻辑值,那么就可以保存在一个逻辑型 bool变量中。例如: bool b = a > 5;
(2)按位逻辑与“&”对两个操作数逐位进行运算。 若对应位都为1,则该位结果为1,否则为0。例 如: 0xc300000000110000110x6e0000000001 101110a0000000001000010
short int a=0xc3 & 0x6e //结果为0x42
(3)按位逻辑或“|”对两个操作数逐位进行运算。若 对应位都为0,则该位结果为0,否则为1。例如: short int b = 0x12 | 0x3d //结果为0x3f
||(逻辑或)表示“或者”的语义。
例如:
!(2 > 6)
//结果为1,真
7 > 3 && 10 > 6 //结果为1,真
5 > 2 || 4 > 8 //结果为1,真
4 && 5 < 6
//结果为1,真
逻辑运算符的运算优先级为:! 高于 && 高于||。 注意,!的优先级具有较高优先级,甚至高于算 术运算符。而&&和||的优先级则比算术运算符和 关系运算符低。
cout<<"min = "<<min<<endl;
int max = (1 << 31) - 1;
相关主题
- 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
逻辑运算
逻辑运算
◦ 通过逻辑运算符把简单的条件组合起来,能够 形成更加复杂的条件。