第03章数据类型及运算规则
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本章要点
数据的描述规则 数据的操作规则
3
第1节 第2节 第3节 第4节 第5节 第6节 第7节
数据与数据类型 基本数据类型及其表示 算术运算与赋值运算 关系运算与逻辑运算 位运算 其它运算 混合运算及数据类型转换
4
§3-1数据与数据类型
表达式
f (x) 3.6a 3 sin x
注意:字母e之前必须有数字,而且e后面指数 必须为整数。
一个实数可以有多种指数表示形式。“规范化 指数形式”是指在字母e之前的小数部分中,小 数点左边应有一位非零数字。一个实数在用指 数形式输出时,是按规范化指数形式输出的。 24
例:
1e3、1.8e-3、-123e-6、-.1e-3
e5、1e-3.2、e、.e-03
26
实型数据在计算机中的存放形式
数符 +
小数 0.123456
1位
23位
0.123456×10-2
指数符号 指数
-
2
1位 7位
27
超出表示范围的数机器如何处理?
实型数的分辨率: 最小正数:10-38 小于该数时处理为0 下溢 最大正数:1038 大于该数时提示出错 上溢
实型数在计算机内部都按指数形式存放 实型数常数不区分单精度和双精度 数的存储结构和精度与计算机硬件特性有关
18
整型数据应用中的几个问题: 变量要先定义后使用 注意防止数据溢出 常量与变量的数据类型要匹配
19
例:
main( ) {
int a , b ,c; a = 32767 ; b=3; c=a+b; printf ( “ c = %d \n ” , c ) ; }
20
修改后
main( ) {
getch();
}
37
* 字符串 “w\11”占几个字节?
w \11 转义字符
* 字符串 “w \11\0good”占几个字节?
字符串结束标记
38
五、指针型数据及其表示
1、指针的概念
a的地址 内存分配
a的内容 存储变量
例
1000 10 a 2字节
对于int a=10,c=5; 1002 3.5
float b=3.5;
01100001
35
3、字符串常量
例“a” 串长 1
字符串常量是用双引号括 起来的一个或多个字符。
“This is C string” 串长
16
C 语言中没有专
“ ” (空格)串长1 用的字符串变量
“”n个字(符不组含成空的格字)符串串长常0量,
占空间为 n+1 个字节
c h i n a \0
字符串结束标记 “空”字符
常量占用内存空间吗?
22
实型常量的表示方法
1) 十进制小数形式:由符号、整数部 分、小数点及小数部分组成。
例:
-12.67
121.91
23
2) 指数形式:
由十进制小数形式加上指数部分组成:
十进制小数e指数 或 十进制小数E指数
其中e或E前面的数字表示尾数,e或E表示底数 10,e后面的指数必须是整数,表示10的幂次。 例如123e3或123E3都代表123×103。
28
实型数据应用中的误差问题
例:输出实型数据 a,b main( ) { float a;
double b; a=12345.6789; b=123456789123456.7899; printf(“a=%f\nb=%f\n”,a,b); }
29
Output: a=12345.676711 b=123456789123456.797000
6
数据的存储 数据的操作
程序的任务是对数据进行处理,数据是 程序处理的对象,而运算符是施加给这 些数据的操作。
数据和运算符是表达式的基本元素
7
C语言的数据类型:
数据类型
基本类型
构造类型 指针类型
整型 int
字符型 char 单精度实型
实型(浮点型)
float
数组类型
双精度实型
double
25
2.实型变量
实型变量的有关规则如下:
类型说明符 长度 数的范围 有效数字
单精度型 float
4字节 -1038 ~ 1038 7位
双精度型 double型 8字节 -10308 ~10308 15位
取值范围是指数据的绝对值,它表示了数 值的精度。 有效数字是指数据在计算机中存储和输出 时能够精确表示的数字位数。
long a , b , c ; a = 32767 ; b=3; c=a+b; printf ( “ c = %d \n ” , c ) ; }
21
三、实型数据
实型数据包括实型常量和实型变量
1.实型常量
两种表 小数 0.123 示形式 指数 3e-3
实型常量只能用十进制形式表示, 不能用八进制和十六进制
无符号长整型 unsigned long 4
占存储空间
15
整型变量的定义 格式:类型说明符 变量列表;
例如:int i, j ; long k, m; unsigned int x,y;
16
整型数据的取值范围
类型
类型说明符
长度
数的范围
基本型
int
2字节 -32768~32767
短整型
p1=p; /*直接赋值*/
p2=NULL; /*赋空值,不指向任何变量*/
P3=0; p4=‘\0’;
不允许直接将一个整数直接 赋值给一个指针变量!
41
指针变量的类型是它所指向的值的类型!
问题:指针变量能指向常数吗? 常数不占用内存单元!
指针的应用在第十章介绍
42
六、变量的初始化
在定义变量时为其指定值
实际上,在计算机当中数据是以补码的形式 存储的。正数的补码是它本身,负数的补码 是其绝对值取反加1。例如 -10
原码 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 绝对值 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 取反 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 加1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 ——>-10
float b=3.5,*p1; char c,*p2=&c;
*i=a
i=&a;p1=&b; 指针赋值 x=*i;
定义指针变量
指针初始化 指针运算
40
指针变量的赋值
*--指针运算符 &--取地址运算符 同级,右结合
int a=3,*p,*p1,*p2,*p3,p4;
p=&a; /*取a地址运算*/
11
变量的定义:
C语言是一种强制定义型语言,因 此,在C语言中,要求对所有用到的 变量作强制定义,也就是说,所有变 量应当先定义,后使用,以便编译系 统在编译时对变量按其类型分配响应 的存储单元。
12
变量的定义格式:
类型说明符 变量名列表;
例:
int a, b, c; char ch; float x, y;
13
二、整型数据
1.整型常量
整型数据包括整型常量
和整型变量, 整型数据
整型常量的类型 根据值大小默认类型
以二进制补码形式存储
在常量后面加l或L,表示long int型
例如:123L,0L,432l 都是long int型常量
整型常量的不同数值表示方法 10进制:0~9 8进制:0~7,以0开头
通知
在计算中心机房,安排C语言集中上机,专人 辅导。
1.从第4周开始到第11周,每周1、周2的下 午和晚上是C语言集中上机时间(不能做其 他事),现场有老师辅导.其他时间没有辅导 老师
2.要求学生根据自己情况选一时间段到计 算中心上机.学生凭机票入机房,课程内免 费机票在学院领取。
1
2
9
2、变量
在程序运行过程中,其值改变的数据称为
变量
变量通过变量名标识,变量名和内存中的
存储单元相对应。编写程序时通过变量名来
存、取存储单元。
变量必须先定义,后使用 memory
a 2158286 1000H
变量
1001H
1002H
10
变量名的规定
1.变量名由字母 A、B、…、Z、a、b、… 、z,数
short
2字节 -215~215-1
长整型
long
4字节 -231~231-1
无符号整型 unsigned
2字节 0~65535
无符号短整型 unsigned short 2字节 0~65535
无符号长整型 unsigned long 4字节 0~(232-1)
17
整型变量的存放形式
数据在计算机内存中是以二进制数形式存放 的。
结构类型 struct
联合类型 union
枚举类型 enum
空类型(无值类型) void
8
§3-2 基本数据类型及其表示
一、计算机语言表示数据的基本形式 1、常量 在程序运行中,其值保持不变的量称为常量
常量的表示方法: 整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 ‘a’, ‘b’,‘2’
被加工 的数据
表达式
44
运算符和运算分量构成表达式
C中运算符
算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算 逗号运算符 条件运算符
36
b=‘\60‘在计算机中的存储
main()
00110000
{char a,b,c;
int d;
a='\5';
b='\60'; c=’A';
d 00000100 01000001
d=1089; printf("a=%c
b=%c
c=%d
d=%c\n",a,b,6c5,d);
printf(“a=%d b=%d\n",a,b);
32
\n 换行 \t 横向跳格 \r 回车 \\ 反斜杠
例:\\dxdh‘dh \6dh0dh’d表表是示示十11到进到2制3位位数十八4六8进,进制代制数表数字A字SCII码字
符0 ‘\105’是十进制数69,代表ASCII码字
符E ‘\x61’是十进制数97,代表ASCII码字符 33
2、字符型变量
1006 5 a的地址
b c
a是整型变量,存放内容1023 i是指针变量,存放地址
1000
i
指针
访问内存的两种方式:
直接访问:按地址直接存取 &a
间接访问:通过指针i间接存取 39
2、指针变量的定义与赋值
定义: 存储类型 * 指针变量名
例:int a=10,*i,x; *i是i指向的变量a
常数 变量
5
运算符
函数
程序设计语言的基本规则包括
常数 变量 运算符 表达式 函数
把自然语言描述问题的方式转 换为C语言的形式表达给计算机
5
计算机完成上述计算,首先要 解决数据的输入和存放问题
常数 3、5 和 3.6 的存放空间是否相同? 变量 a 如何表示?如何存放? 计算机如何知道 3.6 和 a 之间的关系? 3/5 和 sin x 如何输入?如何存放? 计算机如何识别“=”?运算结果放在哪里?
例 16进制:0~9,A~F/a~f,以0x或0X开头
100、-8、0;010、024;0x38、0X1F
14
2.整型变量
整型变量的形式
占内存字节数
基本整型
int
2
短整型
short int
2
长整型
long int
4
无符号整型 unsigned int 2
无符号短整型 unsigned short 2
方法:
int a=5;
int a,b,c=5;
1. 定义变量的同时为
其初始化
int a=5,b=5,c=5; 2. 初始化不是在编译
int a=b=c=5;
时进行,而是在程序运 行时完成的
43
§3-3 算术运算与赋值运算
一、认识C中的运算符和表达式
X= 5 + b * c
运算符
运算分量
对数据进行 运算的符号
定义形式
char
占存储空间 main()
一个字节
{ char c ;
c = ‘c’;
printf ( “%c”, c );
}
运行结果: c
一个字符变量只
能包含一个字符!
34
字符型数据的存储格式:ASCII码 字符‘a’、’A’、‘1’ 存储为:97、
65、49
‘a’的ASCII值为
97 内存中存储形式
30
四、字符型数据
1、字符型常量 字符型数据包括字符 型常量和字符型变量
用单引号包含的一个字符是字符型常量 只能包含一个字符
‘a’,’A’, ‘1’
‘abc’、“a” 31
转义字符(特殊形式的字符常量)
C语言提供的另一种字符型常量是转义 字符常量。转义字符常量是以反斜杠开头 的字符常量,它通知编译器需要用特殊的 方式处理反斜杠后的字符,将反斜杠后的 字符转换成另外的意义。
字 0、1、… 、9 和下划线 _ 组成。
2.变量名的第一个字符必须是英文字母或下横线。
3.不能用系统中的关键字作为变量名
4.变量名中的字母是区分大小写的。
sum、stu_name、_age、Lts_1_2、a2
32c、x.y、start+9、c2.0
NAME name 表示两个不同的标识符。