C语言程序设计(方少卿) 铁道C第2章(修订版)

上传人:E**** 文档编号:89391563 上传时间:2019-05-24 格式:PPT 页数:70 大小:1.22MB
返回 下载 相关 举报
C语言程序设计(方少卿) 铁道C第2章(修订版)_第1页
第1页 / 共70页
C语言程序设计(方少卿) 铁道C第2章(修订版)_第2页
第2页 / 共70页
C语言程序设计(方少卿) 铁道C第2章(修订版)_第3页
第3页 / 共70页
C语言程序设计(方少卿) 铁道C第2章(修订版)_第4页
第4页 / 共70页
C语言程序设计(方少卿) 铁道C第2章(修订版)_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《C语言程序设计(方少卿) 铁道C第2章(修订版)》由会员分享,可在线阅读,更多相关《C语言程序设计(方少卿) 铁道C第2章(修订版)(70页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 数据类型、运算符与表达式,2.0 引例 2.1 C语言的数据结构 2.2 常量与变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 C运算符及表达式 2.7 变量赋初值 2.8 数据类型转换 2.9 复习指南,2,【引例】已知一个圆的直径是5,请计算这个圆的面积。 我们常用的计算公式为:3.14(52)2 C语言程序中运用的公示为: 3.14*(5.0/2)*(5.0/2) 从上面这个例子我们可以看出,C语言有它自己的数据类型、运算符和表达式,读者想要使用C语言进行程序编写,就要对这些内容熟练掌握。,2.0 引 例,3,所谓数据类型是按被定义变量的性质,表示形式,

2、占据存储空间的多少,构造特点来划分的。 在语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。 C语言基本类型的分类如后页图所示:,2.1 C语言的数据类型,4,整型 单精度型 基本类型 实型(浮点型) 双精度型 字符型 枚举类型 数据类型 数组类型 构造类型 结构体类型 共用体类型 指针类型 空类型,5,对于基本数据类型的数据,按其取值是否可改变又分为常量和变量两种。 在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。 它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,

3、常量是可以不经说明而直接引用的,而变量则必须先定义后使用。,2.2 常量与变量,6,2.2.1 常量和符号常量,在程序执行过程中,其值不发生改变的量称为常量。 1.直接常量: 直接常量分为以下几种: 整型常量:12、0、-3; 实型常量:4.6、-1.23; 字符常量:a、b。,7,2.符号常量: 在语言中,允许用一个标识符来表示一个常量,这样表示的常量称之为符号常量。 标识符:用来标识变量名、符号常量名、函数名、 数组名、类型名、文件名的有效字符序 列。 符号常量在使用之前必须先定义,其一般形式为: #define 标识符 常量,8,【例2.1】符号常量的使用。 #define PRICE

4、30 /*符号常量定义。将30用标 识符PRICE来代替*/ main() int num,total; num=10; total=num* PRICE; /*相当于 total=num*30;*/ printf(“total=%d”,total); 输出结果为:total=300,9,关于符号常量的说明: (1)为了和变量区分,习惯上符号常量的标识符用大写字母,而变量标识符用小写字母。 (2)用标识符代表一个常量,称为符号常量。 (3)符号常量与变量不同,它的值在程序运行过程中不能改变,也不能再被赋值。 (4)使用符号常量的好处是: 含义清楚; 能做到“一改皆改”,从而减少程序修改时的工作

5、量。,10,2.2.2 变量,其值可以改变的量称为变量。 变量定义必须放在变量使用之前。一般放在函数体的开头部分。,一个变量应该有一个名字,变量名就是这个量的代号,变量在内存中占据一定的存储单元,而变量值是这个量的取值。见图2-1。,11,2.3 整型数据,2.3.1 整型常量,整型常量就是我们数学中提到的整数。在语言中,使用的整数有八进制、十六进制和十进制三种表示方式。如下表所示 在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。,12,2.3.2 整型变量,1、整型数据在内存中的存放形式 如果定义了一个整型变量i: i int i; /*定义i为一个整型变

6、量 i=5; 并给它赋初值为5*/ 数值在计算机中是以补码表示的: 正数的补码和原码(即该数的二进制代码)相同; 负数的补码:将该数绝对值的二进制形式按位取反后再加1。,5,13,例如:求-5的补码: 5的原码: 取反: 再加1,得到-5的补码: 由此可知,存储单元左面的第一位是符号位,用来表示数值的正负。,14,2、整型变量的分类 整型变量分类如下表所示:,15,3、整型变量的定义 变量定义的一般形式为: 类型说明符 变量名标识符1,变量名标识符2,.; 例如: int a,b,c; (a,b,c为整型变量) long x,y; (x,y为长整型变量) unsigned p,q; (p,q为

7、无符号整型变量),16,在书写变量定义时,应注意以下几点: 1、允许在一个类型说明符后,定义多个相同 类型的变量。 2、各变量名之间用逗号间隔;类型说明符与 变量名之间至少用一个空格间隔;最后一 个变量名之后必须以“;”号结尾。 3、变量定义必须放在变量使用之前。一般放 在函数体的开头部分。,17,【例2.2】整型变量的定义与使用。,main() /*程序中定义了四个整型变量a,b,c,d,以及一个无符号整型变量*/ int a=5,b=24,c,d; unsigned u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%dn”,c,d); 输出结果为:a+u=15,

8、b+u=34,18,【例2.3】整型数据的溢出。,main() int a,b; a=32767; b=a+1; /*a+1后超出了整型数据范围,造成数据溢出*/ printf(“%d,%dn“,a,b); 输出结果为:32767,-32768 32767: -32768,19,main() long x,y; /*x,y定义为长整型*/ int a,b,c,d; /*a,b,c,d均被定义为基本整型*/ x=5; y=6; a=7; b=8; c=x+a; /*x+a运算结果虽为长整型,但c是基本整型,所 d=y+b; 以最后结果为基本整型*/ printf(“c=x+a=%d,d=y+b=

9、%dn“,c,d); 输出结果为:c=x+a=12,d=y+b=14,【例2.4】整型数据之间的运算。,20,2.4 实型数据,实型也称为浮点型。实型常量也称为实数或者浮点数。在 语言中,实数只采用十进制。它有二种形式:十进制小数形式, 指数形式。 (1)十进制数形式:由数码0 9和小数点组成,也就是我们数学中 的小数。 例如: 0.0、25.0、5.789、0.13、5.0、300.、-267.8230 等均为合法的实数。注意,必须有小数点。 (2).指数形式:由十进制数,加阶码标志“e”或“E”以及阶码(只 能为整数,可以带符号)组成。 其一般形式为: aEn(a为十进制数,n为十进制整数

10、)其值为 a*10n。,2.4.1 实型常量,21,合法的实数表示: 2.1E5 =2.1*105 3.7E-2 =3.7*10-2 .5E7 =0.5*107 -2.8E-2 =-2.8*10-2 以下不是合法的实数: 345 (无小数点) E7 (阶码标志E之前无数字) -5 (无阶码标志) 53.-E3 (负号位置不对) 2.7E (无阶码) 标准允许浮点数使用后缀。后缀为“f”或“F”即表示该 数为浮点数。如356f和356.是等价的。,22,main() printf(“%fn “,356.); /*浮点数356. */ printf(“%fn ”,356f); /*浮点数后加“f”

11、后缀,和 第一句是等价的*/ 输出结果为:356.000000 356.000000,【例2.5】浮点数后加后缀的情况。,23,2.4.2 实型变量,1、实型数据在内存中的存放形式 实型数据一般占4个字节(32位)内存空间,按指数形式存储。实数3.14159在内存中的存放形式如下: 数符 小数部分 指数 小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。 指数部分占的位数愈多,则能表示的数值范围愈大。,24,2、实型变量的分类 实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。 在Turbo C中单精度型占4个字节(32位)内存

12、空间,其数值范围为3.4E-383.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-3081.7E+308,可提供16位有效数字。见表2-3所示。,25,实型变量定义的格式和书写规则与整型相同。例如: float x,y; (x,y为单精度实型量) double a,b,c; (a,b,c为双精度实型量) 3、实型数据的舍入误差 由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。 【例2.6】实型数据的舍入误差(1) main() float a,b; a=123456.789e5; b=a+30; /*b的值已超出了数据范围

13、*/ printf(“a=%f,b=%fn“,a,b); 输出结果为:a=12345678848.000000,b=12345678848.000000,26,【例2.7】实型数据的舍入误差(2) main() float a; double b; a=33333.33333; /*a 是单精度浮点型,有效位数只有七位。 而整数已占五位,故小数二位后之后均为 无效数字*/ b=33333.33333333333333; /* b 是双精度型,有效位为十六 位。但Turbo C 规定小数后最多 保留六位,其余部分四舍五入*/ printf(“%fn%fn“,a,b); 输出结果为:33333.3

14、32031 33333.333333,27,2.5 字符型数据,字符常量是用单引号括起来的一个字符。 例如: a、b、=、+、?都是合法字符常量。 在语言中,字符常量有以下特点: 1、字符常量只能用单引号括起来,不能用双引号 或其它括号。 2、字符常量只能是单个字符,不能是字符串。 3、字符可以是字符集中任意字符。,字符型数据包括字符常量和字符变量。,2.5.1 字符常量,28,2.5.2 转义字符,转义字符是一种特殊的字符常量。 转义字符以反斜线“”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。 转义字符主要用来表示那些用一般字符不便于表示的控制代

15、码。 C语言中常用的转义字符及其含义如下页的表2-4所示。,29,表2-4 常用的转义字符及其含义,30,【例2.8】转义字符的使用。 main() int a,b,c; a=5; b=6; c=7; printf(“ ab ctderfn”); /*转义字符代表特定字符,在分析 时要注意转化*/ printf(“hijktLbMn”); 输出结果为:f ab c de hij k M,31,2.5.3 字符变量,字符变量用来存储字符常量,即单个字符。 字符变量的类型说明符是char。字符变量类型定义的格式和书写规则都与整型变量相同。 例如: char a,b;,32,2.5.4 字符数据在内存中的存储形式及使用方法,每个字符变量被分配一个字节的内存空间,因此只能存放一个字符,而该字符是以ASCII码的形式存放在变量的内存单元之中的。 例如: x 的十进制ASCII码是120,y 的十进制ASCII码是121。如果对字符变量a,b赋予x和y值 a=x; b=y; 实际上是在a,b两个变量的存储单元内存入120和121的二进制代码:,33,所以也可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号