计算机精品课件:第2章 基本数据类型及其运算.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机精品课件:第2章 基本数据类型及其运算.ppt》由用户(金钥匙文档)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机精品课件:第2章 基本数据类型及其运算 计算机 精品 课件 基本 数据类型 及其 运算
- 资源描述:
-
1、1,第2章 基本数据类型及其运算,2.1 C语言的数据类型 2.2 常量与变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 运算符与表达式 2.7 数据的类型转换 2.8 数据的输入与输出 2.9 顺序结构程序设计,2,通常,一个程序应包括: 对数据的描述 对数据处理的描述。,对数据的描述, 即数据结构; 对数据处理的描述,即算法。,在C语言中 数据结构以数据类型的形式出现, 算法由语句序列实现。,3,2.1 C语言的数据类型,4,5,6,7,8,所谓类型,就是对数据分配存储单元的安排 单元的长度(占多少字节) 数据的存储形式 不同的类型分配不同的长度和存储形式,9,数据的
2、值有两种不同的表现形式: 常量 变量 C语言提供了丰富的运算符和表达式,以完成各种数值计算和非数值计算。,10,2.2.1 标识符 是常量、变量、数组、函数、类型和语句的名称。 标识符有3种类型: 关键字 预定义标识符 用户标识符,11,关键字类 ANSI C标准C共有32个关键字 1999年ISO推出的C99标准新增了5个关键字(见附录C) 根据关键字的作用,分为两大类: 数据类型 流程控制,12,1. 数据类型关键字 (4小类) (1) 基本数据类型(5个) void char int float double (2) 类型修饰关键字(4个) short long signed unsig
3、ned,13,(3) 复杂类型关键字(5个) struct union enum typedef sizeof (4) 存储级别关键字(6个) auto static register extern const volatile,14,2. 流程控制关键字 (1) 跳转结构(4个) return continue break goto (2) 分支结构(5个) if else switch case default,15,(3) 循环结构(3个) for do while C99新增5个关键字: inline restrict _bool _complex _imaginary,16,预定义标
4、识符类 预定义标识符就是已经存在的名字。 如系统提供的标准库函数名(printf、scanf) 如编译预处理命令名(define 、include) 这些预定义标识符已有特定的含义 虽仍可作为用户标识符使用,但会失去原意,17,用户标识符类 用于标识变量、符号常量、数组、函数和数据类型等对象的一个字符序列,称为用户定义标识符。 C语言规定用户标识符只能由字母、数字和下划线组成.且以字母或下划线开头。,18,说明: (1)C语言中同一字母的大小写,被认为是两个不同的字符。 例如: total、TOTAL、ToTaL、tOtAl 不同的用户标识符。,19,(2)C语言的关键字不能用作用户标识符。
5、例如: int 不合法 Int、INT、iNt 合法,20,(3)用户标识符的命名要见名知意。 例如: name/xm 姓名 sex/xb 性别 age/nl 年龄,21,(4)避免使用易混字符。 例如: 1、l、i;0、o、O;p、P;x、X;2、z、Z等。,file6、stu_name、DeFault、_9、xandy 正确 6file、stu-name、default、-9、x&y 不正确,22,2.2.2 常量,常量:在程序运行过程中,其值不能被改变的量,整型常量: 实型常量 字符常量: 普通字符:如? 转义字符:如n 字符串常量:如“boy” 符号常量:#define PI 3.14
6、16,直接常量 即常数,23,直接常量的类型从字面上就能够区分出来。,整型常量的表示方法 有3种形式表示: (1) 十进制整数 如:123、-456、0 (2) 八进制整数 如:0123表示八进制数123,即(123)8 (3) 十六进制整数 如:0x123表示十六进制123,即(123)16,24,实际上,任何进制的数都可以表示为:,其中: Ki 为第i位的数码, n为整数的位数, m为小数的位数, C为进制。,25,实型常量的表示方法 实数又称浮点数,有两种表示形式: (1) 十进制小数形式 由数字和小数点组成,如:.123、123.、123.0、0.0,(2) 指数形式 如: 1.234
7、56e2或0.123456E3都代表123.456 但注意字母e之前必须有数字 且e后的指数必须为整数,其中: 1.23456e2 规范化的指数形式,26,字符常量:使用单引号括起来的一个字符。 如: a、9、D、?、¥ 等。 注意: a 和 A 不是同一个字符常量。,除以上的普通字符常量外,还有一种特殊形式的字符常量,既以“”开头的字符序列,称为“控制字符” 例如:printf函数中的 n 代表一个“换行”符。 控制字符不能在屏幕上显示,也无法用一个一般形式的字符表示,只能用特殊形式表示。,字符常量的表示方法,27,常用的特殊字符表如下:,28,字符常量是一对单引号括起来的单个字符。 字符串
8、常量则是一对双引号括起来的一个字符序列,例 a 是字符常量。 “a” 是字符串常量。二者不同,也不能混淆。,字符串常量的表示方法,29,a 和 “a” 的区别在于: C语言规定:在每个字符串的结尾由系统自动加入一个控制字符0 作为字符串的结束标志。 这表明 “a” 字符串在内存中实际是由2个字符组成的,因此只能放一个字符的字符变量无法存放 “a”。,30,例:若有字符串常量为: “CHINA” 则实际内存中是:,其中的0是系统自动加上的。,31,符号常量:用一个标识符代表一个常量,例 符号常量的使用。,符号常量的表示方法,#define PRICE 30 void main ( ) int n
9、um,total ; num=10; total=num * PRICE ; printf (“total=%d”,total) ;,符号常量名用大写,变量名用小写。 使用符号常量的优点有: (1)含义清楚。 (2) “一改全改”,32,2.2.3 变量,变量必须先定义,后使用 定义变量时指定该变量的名字和类型 变量名和变量值是不同的概念 变量名代表内存中的存储单元 变量名实际上是一个符号地址 从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据,变量:在程序运行过程中,其值可以被改变的量,33,低地址,a,34,1.变量定义 所有用到的变量必须先定义、后使用。 变量定义
10、的一般格式如下: 类型说明符 变量名1,变量名2,变量名n;,例如: int i,j,k; float x,y,z;,35,2.变量赋值 变量赋值有如下几种方式。 (1)变量赋初值。 定义变量时直接赋值,也称为变量的初始化。,例如: int a=10,b=9,c=6; float x=3.0,y=1.0,z=2.0;,36,注意: 不能将具有相同初值的变量赋初值时写成以下形式: int a=b=c=6; 只能写成: int a=6, b=6, c=6;,37,2.3 整型数据,2.3.1 整型常量 八进制、十进制、十六进制,整型数据包括整型常量和整型变量。,38,例:设定义一个整形变量 i :
11、 int i ; i=10 ; 图 (a)为在内存中的10进制表示(示意); (b)为在内存中的2进制表示。,2.3.2 整型变量,39,实际上,数值是以补码表示的。 正数的补码:与其原码的形式相同。 负数的补码:是将该数的绝对值的二进制形式按位取反再加1。,1. 整型数据存放形式,40,根据字节数可以看出,补码的表示范围: 一个整数占2个字节,16位。去掉一个符号位,有效数字位为15位,因此可表达的值的范围为: -215 215-1 即 -32768 32767 。,32767,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,有符号a,1,1,1,1,1,1,1,1,1,1,
12、1,1,1,1,1,1,无符号b,65535,符号位,数据的第1位,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,有符号a,-32768,41,2. 整型变量的分类,根据占用内存字节数的不同,整型变量分为: (1) 基本整型 (类型关键字为int) (2) 短整型 (类型关键字为short int) (3) 长整型 (类型关键字为long int),42,Turbo C 2.0和Turbo C+ 3.0 short、int 2个字节 long 4个字节 C+ 6.0 short 2个字节 int、long 4个字节。,43,3. 整型变量的符号属性 整型变量的值的范围包
13、括负数到正数 可以将变量定义为“无符号”类型 扩充的整形类型:,44,扩充的整型类型: 有符号基本整型 signed int; 无符号基本整型 unsigned int; 有符号短整型 signed short int; 无符号短整型 unsigned short int; 有符号长整型 signed long int; 无符号长整型 unsigned long int 有符号双长整型 signed long long int; 无符号双长整型 unsigned long long int,45,4.整型数据值域 整型数据所占字节数和数值范围如表2-1所示。,46,2.4 实型数据,实型数据包
14、括实型常量和实型变量。,2.4.1 实型常量 小数形式、指数形式,47,实型数据是按照指数形式存储的 分别存放 小数部分 指数部分 指数部分采用规范化的指数形式。 小数部分采用定点小数形式存放。,2.4.2 实型变量,1. 实型数据存放形式,48,例:实数3.14159在内存中的存放形式如图。,49,上图是用十进制来示意的。 实际在计算机中是: 用二进制表示小数部分 用2的幂次表示指数部分 (如1x2n+1x2n-1),50,例:把0.5803D转换成二进制数,且有效位数为6位。,解:采用乘R取整法。 0.5803 X 2 1.1606 取整数1 作为最高位 2 0.3212 取整数0作为第二
15、位 2 0.6424 取整数0作为第三位,51,0.6424 X 2 1.2848 取整数1 作为第四位 2 0.5696 取整数0作为第五位 2 1.1392 取整数1作为第六位(最低位) 即: 0.5803D = 0.100101B,小数永远不会绝对精确,52,在计算机中是用2的幂次来表示指数部分的。 例如: 17D=10001B=1*24+0*23+0*22+0*21+1*20,数符,阶码,尾数,float型(单精度浮点型6位10进制有效数字),53,2.实型变量分类 根据所占字节数分类有3种类型: (1)单精度型。类型关键字为float。 (2)双精度型。类型关键字为double。 (
16、3)长双精度型。类型关键字为long double。,54,2.5 字符型数据,字符型数据包括字符常量和字符变量。,2.5.1 字符常量 字符常量是指单个字符,用一对单引号及其所括 起来的字符表示。 字符常量有两种表示形式: 普通字符 转义字符,55,2.5.2 字符变量 用类型符char定义字符变量 例: char c = A; 系统把A的ASCII码值65赋给变量c,56,由于存储形式与整数相同,允许相互转换。,【例2-2】 以字符形式或整数形式输出。 #include int main() char ch1,ch2; ch1=A; ch2=97; printf(“ch1=%c,ch2=%
17、cn“,ch1,ch2); printf(“ch1=%d,ch2=%dn“,ch1,ch2); return 0; ,57,可以进行运算 例如: A+3 /值为68,对应字符D 5-0 /值为5 5+0 /值为53,对应字符5,58,字符1和整数1是不同的概念: 字符1只是代表一个形状为1的符号,在需要时按原样输出,在内存中以ASCII码形式存储。 占1个字节 整数1以整数存储方式(二进制补码方式)存储的。 占2个或4个字节,59,2.5.3 字符串常量,字符串常量则是一对双引号括起来的一个字符序列,注意:整型、实型、字符型数据都有变量表示,而C语言中没有字符串变量。,60,例:若有字符串常量
18、为: “CHINA” 则实际内存中是:,其中的0是系统自动加上的。,注意: 空串,表示为“” 空字符(NUL)的ASCII码值:0 空格字符的ASCII码值:32,61,数据,62,字符常量:由单撇号括起来的单个字符或转义字符 整型常量:不带小数点的数值 系统根据数值的大小确定int型还是long型等 浮点型常量:凡以小数形式或指数形式出现的实数 C编译系统把浮点型常量都按双精度处理 分配8个字节,怎样确定常量的类型,63,2.6 运算符与表达式,2.6.1 运算符概述 应理解和掌握的概念,2.6.2 表达式概述 用运算符将运算对象连接起来并符合语法规则的式子,称为表达式 运算对象包括常量、变
19、量、函数等,64,1.基本的算术运算符: + :正号运算符(单目2级) - :负号运算符(单目2级) * :乘法运算符(双目3级) / :除法运算符(双目3级) % :求余运算符(双目3级) + :加法运算符(双目4级) - :减法运算符(双目4级),#include void main() int a=-10; printf(“%dn”,a); printf(“%dn”,-a); printf(“%dn”,+a); ,2.6.3 算术运算符与算术表达式,65,说明: 对于除法,如果是两个整数相除,结果仍为整数。即舍掉小数部分。 如:5/3 的结果为1。这是在正整数时。,若两数中有一个为负数,
20、则舍入方向是不确定的。多数机器采用“向零取整法”。,66,说明: %运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数。 如: 7%4,结果为3,67,不同类型数据间的混合运算:,整型(int,short,long)和实型(float,double)数据可以混合运算 字符型可以与整型通用 因此:整型、实型、字符型数据之间可以混合运算 例如:10+c+1.5 - 8765.1234*b,68,注意: 不同类型之间数据的混合运算要先转换成同一种类型,然后进行运算。 转换的规则如下图所示:,表示必须进行的转换。 表示当运算对象为不同类型时,转换的方向。,69,例:设已定义: i 为 int
21、 型变量 f 为 float 型变量 d 为 double 型变量 有式子如: 10 +a+ i * f d/3 执行时,计算机自左向右扫描,运算次序为: 1) 进行10+a 运算 先把 a 转化为 int 型,即整数 97, 运算结果为 107。,70,10 + a+ i * f d/3 2) 进行 i * f 运算 先把 i 和 f 都转化成 double 型, 结果也为 double 型 3) 整数107与 i * f 的积相加 先把整数107转化为 double 型 4) 进行 d/3 运算 先把 3 转化为double型,d/3 结果为 double 型 5) 把 10+a+ i *
22、 f 的结果与 d/3 的商相减, 结果为 double 型。,71,2.6.4 赋值运算符和赋值表达式,1.赋值运算符 14级;双目、右向左 “”是赋值运算符 作用是将一个数据赋给一个变量 也可以将一个表达式的值赋给一个变量,72,复合的赋值运算符 在赋值符“”之前加上其他运算符,构成复合的运算符 例如: 等价于 ,73,注意: 例如: a+=3 相当于 a=a+3 x*=y+8 相当于 x=x*(y+8) x%=3 相当于 x=x%3,注意:不是x=x*y+8,注意:不是x 的余数等于3,而是把x与3的余数赋值给x,74,2.赋值表达式 一般形式为: 变量赋值运算符表达式 对赋值表达式求解
23、的过程: 求赋值运算符右侧的“表达式”的值 赋给赋值运算符左侧的变量,用运算符把操作数连接起来称为表达式,表达式的值一定要赋给一个变量 不能写成: 5=a+b 或 x+y=5,75,需要区分的概念 对于赋值表达式: a=3*5 对上述表达式求解后,变量 a的值和 表达式的值都是15,76,注意: 赋值表达式的嵌套: 赋值表达式中的表达式又可以是一个赋值表达式。 例如: a=(b=3) 相当于b=3 和 a=b两个表达式,77,复合赋值表达式: 赋值表达式也可包含复合的赋值运算符。 例如:a+=a-=a*a,设a的初值为12。 按如下步骤求解: 1)先求a-=a*a的运算 (自右向左) 相当于a
展开阅读全文