大学C语言第二章.ppt
《大学C语言第二章.ppt》由会员分享,可在线阅读,更多相关《大学C语言第二章.ppt(83页珍藏版)》请在三一文库上搜索。
1、C语言程序设计教程 第二章 基本数据类型、 运算符与表达式 1 C语言程序设计教程 本章要求: C语言的数据类型 各种类型数据的定义方法 常量与变量 各种类型数据的混合运算 强制类型变换 重点: 数据类型; 数据的定义方法; 各种类型数据的混合运算 2 C语言程序设计教程 2.1 C语言的数据类型 P20 C语言支持的数据类型非常丰富,它包括:基 本数据类型、构造数据类型、指针类型、空类型 四大类。 数据类型 构造类型 指针类型 * 空类型(无值类型) void 枚举类型 enum 数组类型 结构体类型 struct 共用体类型 union 基本类型 整型 int 字符型 char 实型(浮点
2、型) 单精度实型 float 双精度实型 double 3 C语言程序设计教程 2.2 常量、变量和标识符 对于基本数据类型量,根据其取值是否可改变 可分为常量和变量两种。 1.常量 P20 常量:其值不发生改变的量称为常量。常量可与数据类 型结合起来分类。例如,整型常量、实型常量、字符型 常量、字符串常量和符号常量。在编程过程中,常量是 可以不经说明而直接引用的,而变量则必须要先定义后 使用。 常用常量如下所示:整型常量:25、0、-7;实型常量 :5.6、-6.9;字符常量:a、b。 4 C语言程序设计教程 2.标识符 P20 标识符是用来标识变量名、符号常量名、函数名、数组 名、类型名、
3、文件名的有效字符序列。 用一个标识符来表示一个常量,称之为符号常量。 符号常量在使用之前必须先定义,其一般形式为: #define 标识符 常量 其中#define也是一条预处理命令(预处理命令都以 “#”开头),称为宏定义命令。其功能是把该标识符定 义为其后的常量值。一经定义,以后在程序中所有出现 该标识符的地方均代之以该常量值。一般习惯上符号常 量的标识符用大写字母,变量标识符用小写字母,以示 区别。 5 C语言程序设计教程 例2.1符号常量的使用。 P20 #define LENGTH 30 #include void main() int area, width; width=10;
4、area=width*LENGTH; printf(“area=%d”,area); 程序运行结果: area=300 程序分析: 使用符号常量参与运算,符号常量与变量不同,它的值 在其作用域内不能改变,也不能再被赋值。使用符号常量 的好处是:含意清楚;能做到“一改全改”。 6 C语言程序设计教程 3.变量 P21 变量,其值可以改变的量称为变量。一个变量应该有一 个名字,在内存中占据一定的存储单元。变量在使用之 前必须进行定义即为每个变量取一个名称(变量名 ),同时规定它的数据类型,以便编译时根据数据类型 分配存储空间。 C语言规定标识符只能由字母、数字和下划线3种字符组 成,且第一个字符必
5、须是字母或者下划线。下面标识符 的写法是合法的,可以作为变量名使用: Sum,Class_2,data,wang_ming,_high,a8,AREA,year_m onth_day 下面是不合法的标识符和变量名: *data1,99sum,%yuan,$BGss,MR.tom,a1b1,s/t 注意,编译系统区分大小写,将它们认为是两个不同的 字符。所以,max和MAX是两个不同的变量。 7 C语言程序设计教程 注意: 建议变量名的长度最好不要超过8个字符。 在选择变量名和其它标识符时应 “见名知意”。 要求对所有用到的变量作强制定义,也就是“先定义, 后使用” 。 变量定义一般放在函数体的
6、开头部分。要区分变量名和 变量值是两个不同的概念。 data 变量名 56变量值 存储单元变量名 8 C语言程序设计教程 变量名实际上就是以一个名字对应,代表一个地址。在 对程序编译连接时由编译系统给每个变量名分配对应的 内存地址。变量在定义时必须指定其数据类型,以便在 编译时为其分配存储单元。P21 | float b=123.67; 9 C语言程序设计教程 4.变量赋初值 P21 C语言中可有多种方法为变量提供初值。可以在变量定 义的同时给变量赋以初值的方法。这种方法称为初始化 。在变量定义中赋初值的一般形式为: 类型说明符 变量1= 值1,变量2= 值2,; 例如: int a=68;/
7、*指定a为整型变量,初值为68*/ 也可以使被定义的变量的一部分赋初值。 例如 float b,c,d=7.9; 上式指定b,c,d为单精度实型变量,只对d初始化, 其值为7.9。 如果对几个变量赋予相同的初值,应写为: int e=50,f=50,g=50; 10 C语言程序设计教程 例2.2 部分初始化数据 P22 程序运行结果: a=6,b=14,c=8 程序分析: 对定义的整型变量进行部分初始化,然后参与运算 ,并输出结果。 #include void main() int a=6,b,c=8; b=a+c; printf(“a=%d,b=%d,c=%dn“,a,b,c ); 11 C
8、语言程序设计教程 5.变量的地址 P22 在定义了一个变量后,在内存中会分配相应的存储单元 ,将变量的值存储到该单元中。如前所述注意区分变量 名和变量值这两个不同的概念。 例如:int x; float y; x=3; y=3.14159; 2000 2001 2002 2003 2004 2005 x y 2006 3 3.14159 12 C语言程序设计教程 2.3简单数据类型与表示范围 2.3.1 整型数据 1.整型常量的表示方法 P23 整型常量就是整常数。在语言中,经常使用的整常数 有三种进制,它们分别是八进制、十六进制和十进制。 八进制前缀为“0”,十六进制前缀为“0x”或“0X”
9、 ,十进 制无前缀。 (1)十进制整数。 如:123, -456.4。 (2)八进制整数。以0开头的数是八进制数。 如:0123表示八进制数123,等于十进制数83,- 011表示八进制数-11,即十进制数-9。 13 C语言程序设计教程 (3)十六进制整数。以0x开头的数是16进制数。 如:0x123,代表16进制数123,等于十进制数 291。 - 0x12等于十进制数18。 (4)整型常数的后缀: 基本整型的长度为16位,十进制无符号整常数的范围为0 65535,有符号数为-32768+32767。 八进制无符号数的表示范围为00177777。 十六进制无符号数的表示范围为0X00XFF
10、FF或0x0 0xffff。 如果使用的数超过了上述范围,就必须加上后缀“L”或 “l”变为长整型数来表示。 例如:567L (十进制为567) 注意:长整数567L和基本整常数567在数值上并无区别,但是 所占存储空间大小不同。对567L而言,因为是长整型量,编译 系统将为它分配4个字节存储空间。而对567,因是基本整型, 则只分配2个字节的存储空间。 14 C语言程序设计教程 2.整型变量 P24 (1) 整型数据在内存中的存放 形式 数据在计算机内存中是以二进制 形式存放的,例如,定义了一个整 型变量a: int a;/*定义a为整型变量*/ a=11;/*给a附以初值11*/ 由于在内
11、存中数值是以补码表 示的,正整数的补码和它的原码在 二进制形式上是相同的。所以,a 11,在内存中的存放形式如下所 示。 内存中 图 a 11 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 15 C语言程序设计教程 负数的补码:将该数的绝对值的二进制形式按位取反后 再加1。 例如:求-11的补码: 符号位 (2)整型的分类 P24 基本型:类型说明符为int,在内存中占2个字节。 短整型:类型说明符为short int或short。所占字节和取值范 围均与基本型相同。 长整型:类型说明符为long int或long,在内存中占4个字节。 16 C语言程序设计教程 有符号型:类
12、型说明符为signed;无符号型:类型说明符 为unsigned。 有符号型与无符号型又可与前三种类型匹配而构成:P25 类型名称类型说明符数值范围字节 数 有符号基本型 signed int-32768327672 无符号基本型unsigned int0655352 有符号短整型 signed short int -32768327672 无符号短整型 unsigned short int 0655352 有符号长整型signed long int -2147483648 2147483647 4 无符号长整型 unsigned long int042949672954 上面带 的部分表 示
13、其内容可以省略 17 C语言程序设计教程 (3)整型变量的定义 P25 变量定义的格式为: 类型说明符 变量名标识符,变量名标识符,.; 说明:允许在一个类型说明符后,定义多个相同类型的变 量,并使用逗号分割变量名中多个变量,使用分号结 束。类型说明符与变量名之间至少用一个空格间隔。 变量定义必须放在变量使用之前。一般 放在函数体的开头部分。 在程序的同一部分,禁止对同一变量进 行重复定义,在书写不同种类型变量定义时,避免 都写在一行上。 对所用到的变量必须进行强制定义,即 “先定义,后使用”。 int a,b,c; /*a,b,c为整型变量*/ long x,y; /*x,y为长整型变量*/
14、 18 C语言程序设计教程 例2.3整型变量的定义与使用 P25 #include void main() long a,b; int x,sum,ave; /*定义整型变量 x,sum,ave*/ unsigned y; /*定义无符号整型变量y*/ a=9; x=-10; y=20; b=x+a; sum=x+y; ave=(x+y)/2; /*不同类型数据间可进行 运算*/ printf(“b=x+a=%ld,sum=%d, average= %dn“,b,sum,ave); 程序运行结果: b=x+a=-1,sum=12,average=6 19 C语言程序设计教程 (4)整型数据的溢
15、出 P26 每个整型数据都有其自身的数据类型,有其自身所占存 储空间大小,基本整型int定义的变量的最大允许存储值 为32767。 例2.4整型数据的溢出 #include void main() int x,y; x=32767; y=x+1; printf(“%d,%dn“,x,y); 程序运行结果: 32767,-32768 程序分析: 计算结果-32768与实际应该的 结果32768相差一个符号,为什么呢 ?数据在内存中都是以该数的补码 的二进制形式存放的,32767的补码 为0111 1111 1111 1111,加1后发 生进位,变成1000 0000 0000 0000 ,最高位
16、的1占据了符号位,而它正 好是-32768的补码形式,所以才有 上述输出结果。 20 C语言程序设计教程 2.3.2实型数据 P26 1实型数据表示方法 实型也称为浮点型。语言中,实数有二种形式:十 进制小数形式和指数形式。 十进制数形式:由数字09和小数点组成。注意,必须有 小数点,且小数点的前面或后面必须有数字。 例如:3.1415926,0.0、0.1、7.0、780.、-25.860 等均为合法的实数。 指数形式:由十进制数(基数)、加阶码标志“e”或 “E”以及指数(阶码,只能为整数,可以带符号)组成。 其一般形式为: a E n(a为十进制数基数,n为十进制整数阶码 ) 其值为 a
17、*10n。 如:1.6E2 (等于1.6*102) 注意:阶码标志e(或E)之前必须有数字,且e后的指数 必须为整数。 21 C语言程序设计教程 2.实型数据在内存中的存放形式 P27 实型数据一般占4个字节(32位)内存空间。与整型数 据的存储方式不同,系统把一个实型数据分为小数部分 和指数部分分别存放。指数部分采用规范化的指数形式 表示。例如,实数7.15731在内存中的存放形式如下: 图中是用十进制形式来表示的,实际上计算机中是用 二进制来表示小数部分,以及用2的幂次来表示指数部 分的。 1+.715731+ 数符 小数部分 指符 指数 .715731(101)0.715731 22 C
18、语言程序设计教程 3.实型变量的分类 P27 实型变量分为:单精度(float型)、双精度( double型)和长双精度(long double型)三类。 类型说明 符 比特数(字节 数) 有效数 字 数的范围 float 32(4)67 10-371038 double 64(8)1516 10-30710308 Long double 128(16)1819 10-4931104932 实型变量定义,例如: float x,y; /*x,y为单精度实型量*/ double a,b,c; /*a,b,c为双精度实型量*/ long double z; /* z为长双精度实型量*/ 23 C语
19、言程序设计教程 4.实型数据的舍入误差 P27 由于实型变量的存储单元能提供的有效数字总是有限的 ,其中单精度的有效数字是7位,双精度的是16位。在有 效位数之外的数字将被舍去,因此会产生误差。 例2.5 实型数据的舍入误差。 #include void main() float x,y; x=7654321.152e3; y=x+33; printf(“%f, %fn“,x,y); 程序运行结果: 7654321152.000000, 7654321152.000000 “f”是输出实数的制定格式。 结果中xy,单精度的x较33大的 多,其有效位数是7位,超过此范 围的数字是无意义的。Tur
20、bo C 规定小数后最多保留六位。应避 免这种被“忽视”的情况发生, 避免将一个很大的数与一个很小 的数直接相加减。 24 C语言程序设计教程 5.实型常数的类型 P28 实型常数不分单、双精度,都按双精度double型处理。 例如定义一个实型变量a,进行如下运算: a3.14159*7.1617 编译系统先将3.14159和7.1617作为双精度数进行相 乘的运算,得到的结果也是双精度的,然后取其前7位有 效数字赋值给实型变量a。这样,可以使计算的结果更加 精确。 25 C语言程序设计教程 2.3.3 字符型数据和字符串常量 P28 字符型数据包括字符常量和字符变量。 1.字符常量 字符常量
21、是用一对单引号括起来的一个字符。 例如:x、d、=、!等都是合法字符 常量。 注意:d和D是两个不同的字符常量。 注意:字符常量只能是单个字符,不能是字符串。字符 可以是字符集中除了单引号本身“”、双引号“”、 反斜杠“”外的任意字符。但数字被定义为字符型之后 就不能参与数值运算。如6和6 是不同的。6是字符 常量,不能参与运算。 a,A, 1 abc、“a” 26 C语言程序设计教程 2.转义字符 P28 转义字符以反斜线“”开头,后跟一个或几个字符。转义 字符具有特定的含义,不同于字符的原意,故称“转义”字符 。如,输出函数中用到的“n”其意义是“回车换行” C语言中,转义字符有三种:简单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 语言 第二
链接地址:https://www.31doc.com/p-2223574.html