chapter02_C语言的基本数据类型与表达式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

运算符与表达式
• 运算符 • 表达式:由操 作数和运算符 组成的序列。
算术运算符:+ - * / % 关系运算符:> < == >= <= != 逻辑运算符:!&& ‖ 位运算符:<< >> ~ | ∧ & 赋值运算符:= 条件运算符:? : 逗号运算符:, 指针运算符:* & 求字节数运算符:sizeof 强制类型转换运算符 分量运算符:• -> 下标运算符:[ ]
第2章 C语言的基本数据类型与表达式
2.1 C语言的基本数据类型 2.2 常量与变量
2.3
运算符与表达式
2.4 数据类型转换
1
数据类型概述
字符类型 整型 基本类型 实型 浮点型 数据类型 枚举类型 数组类型 构造类型 结构体类型 共用体类型 指针类型 * vodi 空类型 char int、long 、short 单精度型 float 双精度型 double enum [] struct union

求解过程
1. 先求解表达式1的值,再求解表达式2的值。 2. 整个逗号表达式的值是表达式2的值。

扩展形式:表达式1,表达式2,…,表达式n
23
条件运算符和条件表达式
• 一般形式:<表达式1>?<表达式2>:<表达式3>
int x=3,y=5,z; z=x>y?100:200; 200 则z的值为_____
注意
‘\‘‘√ ‘\\‘ √ ‘‘‘ ‘\‘ ‘a‘与”a”的区别。
• 字符型数据类型的标识符为char; • 字符型数据在内存中占1个字节; • 字符ASCII码值为0~127,共128个。
7
常量与符号常量
直接常量 符号常量
• 常量:是指在程序运行中,其数值不能被改变的量。
数值常量
int x=3,y; y=-x++;
右结合性
-(x++) (-x)++ 则y=________________
18
赋值运算符和赋值表达式
• 赋值运算符=:将一个数据赋给一个变量。 • 赋值表达式:<变量名> <赋值运算符> <表达式>
其中<表达式>可以是一个常量、一个变量或者 一个表达式。
int a,b=5,m=7,n=8; a=3; a=b; a=m+n;
符号常量
• 含义:用标识符定义一个常量。
一旦某个标识符被定义成为一个常量后,以后 在程序处理时,该标识符都代表对应的常量值。
• 定义格式:#define 标识符 常量数据
#define MAX 1000 #define MIX 10 #define PI 3.1415926
10
变量
• 含义:是指以标识符为名字,其值可以改 变的量。 • 作用:变量代表计算机内存中的某一存储 空间,该存储空间中存放的数据就是变量 的值。
11
变量定义
如int、char、float等
• 定义形式:类型标识符 变量名1[,变量名2,变量名3];
自行确定,符合标识符 命名原则,见名知意 变量定义是语句, 分号不能缺少
int a,b,c;int a; int b; int c; 在C语言程序中,变量必须“先定义, float m,n; 后使用”。 char s,t;
Turbo C中:short(2字节)≤int(2字节)≤long(4字节)
关键字 short unsigned short int unsigned int long unsigned long
所占位数 16 16 16 16 32 32 0~65535
取值范围 -32768~32767 -32768~32767 0~65535 -2147483648~2147483647 0~4294967295
• 自增运算符:++ • 自减运算符:-单目运算符,作用是使变量的值加1或减1。 操作对象只能是变量且该变量有值。 ++i,--i(在使用i之前,i值先加(减)1) i++,i--(在使用i之后,i值再加(减)1)
int x=3,y; y=x++; 3 则y=_____ int x=3,y; y=++x; 4 则y=_____
16
float a=2.0; int b=6,c=3; a*b/c-1.5 +’a’+fabs(-5)
5 12.0/3 double long unsigned 2.5 + 97(int) 99.5 + 5 int char,short float
4.0 - 1.5
104.5(double)
17
自增、自减运算符*
26
Baidu Nhomakorabea
数据类型转换
3. 赋值转换
①整型数据赋值给单、双精度变量,数值不变, 但以浮点数形式存储。 ②实型数据赋值给整型变量,舍弃实数小数部分。 ③字符型数据赋值给整型变量,字符数据放入到 整型变量低8位中,整型变量高8位补0或补1。 ④整型数据(int)赋值给long int型变量,进行符 号扩展,long int型变量高16位补0或补1。 ⑤无符号整型数据(unsigned int)赋值给long int型变量,long int型变量高16位补0。 27
int x=5; y=sizeof(x); 2 则y的值为_____ 。 z=sizeof(int); 2 则z的值为_____。
25
数据类型转换
1. 自动转换
double long unsigned int char,short float
2. 强制类型转换:将一个表 达式转换为指定类型。 (类型名) (表达式) int x=6,y=4; 1 则x/y=_____ int x=6,y=4; 1.000000 则(float) (x/y)=__________ int x=6,y=4; 1.500000 则(float) x/y=__________
4
实数类型
• 表示形式
十进制小数形式:由数字和小数点组成。
例如:3.4,4.0,0.3
指数形式:“十进制小数” + “ e(或E)” + “十进 制数整数”
例如:12.5e-6表示12.5×10-6 小数点不能单独出现;0. √ .0 √ . e或E的两边必须有数,且其后面必须为整数。6E0.2 e5
× 如:018 十六进制的数码除了数字0~9外,还使用 英文字母a~f(或A~F)表示10~15。 如:0x1e √
3
整数类型
• 分类
根据数据所占的二进制位数分为:int、short、long;同样存储长 度的数据又分unsigned、signed;故可组合出六种类型。
• 值域:由机器中数据的存储长度决定。
直接常量 字符型常量 符号常量 标识符定义
整型常量 实型常量 字符常量 字符串常量
8
直接常量
• 请判断下列常量正确与否。
整型常量 120 、-100、0、0120、072、0xFFFF、 0x1e、0x28AF、0xED4、120L、200L、099、 12f、0xg、48EA 实型常量 3.14 、 -3.1 、 5.12E-6 、 019.5 、 1e-08 、 2.1E10.2、E-6、6.4E、4.8E9 字符型常量 'a'、'#'、'\n'、'\101'、''changsha''、'\'、'\p'、 9 '’'、'ab'、''+++\\?ab''
• •
逻辑表达式:用逻辑 运算符连接的表达式。 优先级
1. ! 2. && 3. ||
• •
结合性:左结合性 表达式的值
1. 结果为真,值为1 2. 结果为假,值为0
22
逗号运算符和逗号表达式
• 一般形式:表达式1,表达式2
int x,y=5; x=(y=y+6,y=y/3); 3 。 则x的值为_____
优先级:赋值运算符优先级低于算术运算符、 关系运算符和逻辑运算符。 结合性:右结合性 19
复合赋值运算符和复合赋值表达式
• 复合赋值运算符构成:在赋值运算符“=”之前 加上其他运算符,可以构成复合赋值运算符。
x+=5; x=x+5; x*=y+8; x=x*(y+8); x%=3; x=x%3; x-=y; x=x-y;
• 分类 关键字 字节数
float doubl e 4 8
取值范围
3.4×10-38 ~ 3.4×1038 1.7×10-308 ~ 1.7×10308
精度(位) 7 15
5
字符类型
• 表示形式
用单引号括起来的一个字符,占1个字节。
如:’A’、’1’、’?’
用单引号括起来的由反斜杠(\)引导的转义字符。
15
算术表达式
• 定义:用算术运算符和括号将运算对象(也称操作数, 包括常量、变量、函数等)连接起来。 • 运算符的优先级:( )*、/、%+、• 运算符的结合性:左结合性,即从左至右 • 类型转换:如果运算符两侧的数据类型不一致,先自 动进行类型转换,然后再进行计算。 • -:取负值运算符
一元运算符 优先级高于算术运算符 int a=8,b=6,c=5,y; y=-a-b*c+a/c; -37 则y=_____
变量定义主要是指出变量的名字,确
定变量的数据类型。 在同一个程序段中,变量不能被重复 定义。
12
变量赋值
• 变量的赋值
变量定义后只是按照类型分配了所需的存储空间,但是没 有具体的值。 变量初始化:第一次给变量赋值的过程,这个值称为变量 的初值。 int a,b,c; 变量先定义再赋初值 int a=b=c=3; a=b=c=3; int a,b,c; a=2; b=5; c=12; 变量定义的同时赋初值 变量定义的同时不能连续初始化赋值 int a=2,b=5,c=12; 变量初始化后可以再次赋值(即修改变量的值),但是一 个变量任何时刻只能有一个值。 13 int a=5; a=12;

运算顺序
1. 先求解表达式1的值 2. 如果表达式1的值为真,则求解表达式2的值
并把它作为整个表达式的值。 3. 如果表达式1的值为假,则求解表达式3的值 并把它作为整个表达式的值。
24
求字节运算符
• 一般形式
1. sizeof(变量名):返回变量的字节长度
2. sizeof(类型名):返回类型的字节长度
2
整数类型
• 表示形式
十进制形式:与数学上的整数表示相同。 例如:12,-100,0 八进制形式:以数字0开头的整数。 例如:012=1*81+2*80=10(十进制) 十六进制形式:以0x开头的整数。 例如:0x12=1*161+2*160=18(十进制)
八进制的数码范围为0~7。
1. >、<、>=、<= 2. ==、!=
• •
结合性:左结合性 表达式的值
2. 结果为假,值为0
21
算术运算符高于关系运算符 1. 结果为真,值为1
逻辑运算符和逻辑表达式
• 逻辑运算符
1. !,非、单目运算符 2. &&,与 3. ||,或 ! 算术运算符 关系运算符 &&和|| 赋值运算符 低 高
字符形 式 \n 功能 换行 字符形 式 \’ 单引号字符 功能
\b
\r \f
退格
回车 走纸换页
\t
\v \ddd
横向跳格(跳到下一个输出区)
竖向跳格 1到3位八进制数所代表的字符
\\
反斜杠字 符
\xhh
1到2位十六进制所代表的字符
6
字符类型
字符串:是用一对双引号括起来的字符序列。
如:“SHANGHAI”,“AbcdeFGHijk”,“How are you”
14
算术运算符
• +、-、*、/、%(求余):双目运算符
5%3=_____,6.2%3=_____ %运算左右两数必须为整型数据。 5/3=_____ 两个整数相除,结果自动取整(向零取整)。 x为double型,y为int型,则x+y的类型的为_____。 参加运算的两个数中有一个数为实数,则结果为 double型。 6+’A’=_____ 字符型数据可以和数值型数据混合运算。
• 复合赋值表达式
<变量名> <复合赋值运算符> <表达式>
已知a的初值为12,则a+=a-=a*a的结果为_____ 。 20
-264
关系运算符和关系表达式
• 关系运算符
1. >,大于 2. <,小于 3. >=,大于等于 4. <=,小于等于 5. ==,等于 6. !=,不等于
• •
关系表达式:用关系 运算符连接的表达式。 优先级
相关文档
最新文档