C语言教程同步课件3-4讲(第三章).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言教程同步课件3-4讲(第三章).ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 教程 同步 课件 第三
- 资源描述:
-
1、C C语言程序设计教程语言程序设计教程编写组编写组20072007年年1 1月月第三讲第三讲 基本数据类型基本数据类型引例引例变量与常量变量与常量预备知识预备知识内储存器的组织内储存器的组织数据类型数据类型基本数据类型基本数据类型整数类型整数类型字符字符浮点类型浮点类型C C语言程序设计语言程序设计2引例引例引例引例问题问题计算任意一个圆的面积。计算任意一个圆的面积。源程序源程序(cw02-01.c)基本数据类型基本数据类型#include void main()float r,area;/定义变量定义变量 scanf(“%f”,&r);/读取输入的半径读取输入的半径 area=3.14*r*
2、r;/计算圆的面积计算圆的面积 printf(“area=%f”,area);/输出输出1area=3.140000areararea=r23变量与常量变量与常量数据数据(Data)程序需要使用数据。程序需要使用数据。数据是信息的载体。数据是信息的载体。数据有多种形式:数、字符、图片等。数据有多种形式:数、字符、图片等。常量常量(Constants)在程序运行之前可以预先设定,并在整个运行过程中没有在程序运行之前可以预先设定,并在整个运行过程中没有变化的数据。变化的数据。例如引例中的圆周率例如引例中的圆周率3.14。变量变量(Variables)在程序运行过程中可能变化或被赋值的数据。在程序运
3、行过程中可能变化或被赋值的数据。例如引例中的半径和面积。例如引例中的半径和面积。基本数据类型基本数据类型4数据类型数据类型数据类型的作用数据类型的作用决定数据的存储方式和占用的存储空间的大小。决定数据的存储方式和占用的存储空间的大小。决定可以进行的操作。决定可以进行的操作。C C语言的数据类型语言的数据类型基本类型基本类型整型整型(integer),字符型,字符型(character),浮点型,浮点型(floating-point),构造类型构造类型结构体结构体(structure),共用体,共用体(union),数组,数组(array),枚举,枚举类型类型(enumeration)指针类型指
4、针类型(pointer)空类型空类型(void)基本数据类型基本数据类型5位、字节和字位、字节和字内存储器的组织内存储器的组织基本数据类型基本数据类型位(位(bitbit):最小的:最小的存储单位,可以容纳存储单位,可以容纳两个值之一,即两个值之一,即0或或1。200020012002字节(字节(ByteByte):基本:基本的存储单位,的存储单位,8位。位。字(字(wordword):自然的:自然的存储单位,包含若干存储单位,包含若干个字节。例如个字节。例如32位机位机的一个字就是的一个字就是32位。位。地址地址:以字节为:以字节为单位从单位从0开始编开始编号。号。6整数的存储方式整数的存储
5、方式有符号的正整数有符号的正整数在内存中以在内存中以二进制补码二进制补码形式存放。形式存放。正整数的补码与原码相同。正整数的补码与原码相同。例如:例如:10基本数据类型基本数据类型符号位符号位0 0 0 0 0 0 0 00 0 0 0 1 0 1 00000000000001010RAM数轴数轴0215-1=32767可表示的数的范围可表示的数的范围-215=-327687整数的存储方式整数的存储方式有符号的负整数有符号的负整数在内存中以在内存中以二进制补码二进制补码的形式存放。的形式存放。例如:例如:-10基本数据类型基本数据类型符号位符号位1 1 1 1 1 1 1 11 1 1 1 0
6、 1 1 01111111111110110RAM-10的原码的原码1 0 0 0 0 0 0 00 0 0 0 1 0 1 01 1 1 1 1 1 1 11 1 1 1 0 1 0 11 1 1 1 1 1 1 11 1 1 1 0 1 1 0按位取反按位取反加一后得到加一后得到 -10的补码的补码符号符号位不位不变变8整数的存储方式整数的存储方式无符号整数无符号整数所有二进制位都存放数值。所有二进制位都存放数值。例如:例如:65535基本数据类型基本数据类型1 1 1 1 1 1 1 11 1 1 1 1 1 1 11111111111111111RAM0216-1=65535可表示的数
7、的范围可表示的数的范围9整数的类型整数的类型C C语言提供多种整数类型语言提供多种整数类型 见例见例 3-33-3为程序员提供了针对不同用途的多种选择。为程序员提供了针对不同用途的多种选择。基本数据类型基本数据类型类型名称类型说明符字节数数值范围基本整型基本整型int4-2147483648 2147483647短整型短整型short int(short)2-3276832767长整型长整型long int(long)4-2147483648 2147483647无符号基本整型无符号基本整型unsigned(int)404294967295无符号短整型无符号短整型unsigned short(
8、int)2065535无符号长整型无符号长整型unsigned long(int)404294967295C标准只规定:标准只规定:short int long最大最小值参考最大最小值参考仅供参考,实际值与所仅供参考,实际值与所使用的操作系统、编译使用的操作系统、编译系统、机器有关。系统、机器有关。10整型常量整型常量整型常量整型常量有三种形式:有三种形式:见例见例 3-2十进制十进制(decimal)整数整数12 65 65535八进制八进制(octal)整数:带前缀整数:带前缀 0(zero)014 0101 0177777十六进制十六进制(hexadecimal)整数:带前缀整数:带前缀
9、 0 x 或或 0X0 xc 0 x41 0 xffff默认类型是默认类型是int,即有符号的基本整型。,即有符号的基本整型。可以加上后缀可以加上后缀 u 或或 U 表示无符号整数,或者表示无符号整数,或者 l 或或 L 表示长表示长整数。整数。0 xb5Lu基本数据类型基本数据类型11RAM整型变量整型变量声明变量声明变量(Declaration)变量在使用之前必须被声明。变量在使用之前必须被声明。声明语句的格式:声明语句的格式:举例举例基本数据类型基本数据类型,.;int counter;int width,height;short x,y;long number;变量声明创建了变变量声明
10、创建了变量:为变量分配了量:为变量分配了存储空间。存储空间。height12整型变量整型变量初始化初始化(Initialize)变量变量为变量赋一个初始值。为变量赋一个初始值。可以在声明语句中初始化变量。可以在声明语句中初始化变量。举例举例变量获得值的方法变量获得值的方法直接赋值直接赋值输入输入初始化初始化基本数据类型基本数据类型int counter=0;int width=352,height=288;初始化式初始化式RAM288height13整型变量整型变量输出变量的值输出变量的值可以使用可以使用printf()函数。函数。与与int类型对应的格式说明符是类型对应的格式说明符是%d。举
11、例举例(cw02-02a.c)基本数据类型基本数据类型#include void main()int a,b;a=32767;b=-32768;printf(a=%d,b=%dn,a,b);a=32767,b=-3276814整数的溢出整数的溢出溢出溢出整数太大,超出了整数类型的数值范围。整数太大,超出了整数类型的数值范围。使用使用printf()时与时与unsigned int类型对应的格式说明符是类型对应的格式说明符是%u。举例举例(cw02-02b.c)见例见例 3-4-1/2基本数据类型基本数据类型#include void main()int a,b;unsigned c,d;a=2
12、147483647;b=a+1;c=4294967295;d=c+1;printf(a=%d,b=%dn,a,b);printf(c=%u,d=%u,c,d);a=2147483647,b=-2147483648c=4294967295,d=0?15整数的溢出整数的溢出溢出溢出结果分析结果分析结论结论a+1 的结果(的结果(2147483648)超出了基本整型变量超出了基本整型变量 b 所能容纳(表所能容纳(表示)的数值范围(示)的数值范围(-21474836482147483647)。)。请分析请分析d的结果。的结果。基本数据类型基本数据类型0 1 1 1 1 1 1 1.1 1 1 1 1
13、 1 11 0 0 0 0 0 0 0.0 0 0 0 0 0 0a(2147483647)1 0 0 0 0 0 0 0.0 0 0 0 0 0 0a+1(2147483648)b(-2147483648)12加正数加正数减正数减正数16字符的存储方式字符的存储方式字符编码字符编码计算机使用一种数字编码(整数)来表示字符,每一个字计算机使用一种数字编码(整数)来表示字符,每一个字符都对应一个特定的整数。符都对应一个特定的整数。常用的编码是常用的编码是ASCII(美国信息交换用标准码)。(美国信息交换用标准码)。7位二进制数,十进制码值范围从位二进制数,十进制码值范围从0到到127。一般用一个
14、字节保存,最高位为一般用一个字节保存,最高位为0。字符的存储方式与整数相同字符的存储方式与整数相同举例举例字母字母A的的ASCII码值为码值为65,那么在内存中以那么在内存中以65的二进制形式存储,的二进制形式存储,且占一个字节。且占一个字节。基本数据类型基本数据类型0100000101000001RAM17字符的类型和字符变量字符的类型和字符变量C语言的字符类型:语言的字符类型:char占一个字节;占一个字节;可视为一个有符号的整数。可视为一个有符号的整数。举例举例(cw02-03.c)见例见例 3-7,3-8基本数据类型基本数据类型#include void main()char c1,c
15、2;/声明字符变量声明字符变量 c1=97;/把一个整数赋值给字符变量把一个整数赋值给字符变量 c2=c1-32;/字符变量可以进行算术运算字符变量可以进行算术运算 printf(c1=%c,c2=%cn,c1,c2);printf(c1=%d,c2=%dn,c1,c2);c1=a,c2=Ac1=97,c2=6518字符常量字符常量字符常量字符常量用单引号括起来的一个字符。用单引号括起来的一个字符。x 9 +C语言将字符常量视为语言将字符常量视为int类型。类型。举例举例(cw02-04.c)如果如果int类型为类型为16位,位,char类型为类型为8位,位,那么对于那么对于bc,将把,将把b
16、和和c的的ASCII码值存储在两个字节码值存储在两个字节中,并把中,并把c赋值给变量赋值给变量c2。注意:不同系统处理方式不同,结果不同。注意:不同系统处理方式不同,结果不同。(如在如在Turbo C中,单引中,单引号中的字符只能是一个字符,则号中的字符只能是一个字符,则ch=ab是错误的。是错误的。基本数据类型基本数据类型char c1,c2;c1=a;c2=bc;0 1 1 0 0 0 0 1c10 1 1 0 0 0 1 1c20 1 1 0 0 0 1 10 1 1 0 0 0 1 0bcLH9799999819字符常量字符常量转义字符转义字符(escape character)指代一
17、些特殊的字符。指代一些特殊的字符。(打印不出来的字符)(打印不出来的字符)举例举例(cw02-05.c)见例见例 3-6-1/2/3基本数据类型基本数据类型a 警报警报 反斜杠(反斜杠()b 退格退格?问号(问号(?)f 走纸走纸 单引号(单引号()n 换行换行“双引号(双引号(”)r 回车回车ddd 1-3位八进制数所代表的字符位八进制数所代表的字符t 水平制表符水平制表符xhh 1-2位十六进制数所代表的字符位十六进制数所代表的字符v 垂直制表符垂直制表符#include void main()printf(atbncbd100 x40n);abd20浮点数的存储方式浮点数的存储方式浮点数
18、浮点数浮点型数据在内存中按指数形式存放。浮点型数据在内存中按指数形式存放。例如:例如:314.15=3.1415102基本数据类型基本数据类型0 (3.14159)10 0 (2)10 数符数符 尾数部分尾数部分 阶符阶符 阶码阶码 +3.14159 10+2由此可见,尾数部分的宽度决定了有效由此可见,尾数部分的宽度决定了有效数字的个数(即精度),阶码部分的宽数字的个数(即精度),阶码部分的宽度决定了数值范围。度决定了数值范围。RAM科学计数法允许使用少量的科学计数法允许使用少量的数字表示很大范围的数和很数字表示很大范围的数和很小的数。小的数。21浮点数的类型浮点数的类型浮点数也有多种类型浮点
19、数也有多种类型类型名称及典型大小类型名称及典型大小基本数据类型基本数据类型类型名称类型名称类型说明符类型说明符字节数字节数有效数字有效数字数值范围数值范围单精度单精度float467(s)10-371038双精度双精度double81516(s)10-30710308长双精度长双精度long double101819(s)10-4931104932S=1参考参考仅供参考,实际值与所仅供参考,实际值与所使用的操作系统、编译使用的操作系统、编译系统、机器有关。系统、机器有关。数轴数轴0可表示的正数可表示的正数可表示的负数可表示的负数22浮点型常量浮点型常量浮点型常量有两种形式:浮点型常量有两种形式
20、:十进制形式十进制形式12.3 .65 0.指数形式:指数形式:N.ME n(由整数部分、小数点、小数部分、字(由整数部分、小数点、小数部分、字母母E(或或e)和整数阶码(指数)组成。和整数阶码(指数)组成。1.2e-2 .1E5 7E01.210-20.11057.0100注:字母注:字母E E或或e e前面必须有数字,即整数部分和小数部分不能同时省前面必须有数字,即整数部分和小数部分不能同时省略,字母略,字母E E或或e e后面的阶码必须为整数,正负号中的正号可以省后面的阶码必须为整数,正负号中的正号可以省略。略。默认类型是默认类型是double。可以加上后缀可以加上后缀 f 或或 F 表
21、示表示float类型,或者类型,或者 l 或或 L 表示表示long double类型,否则该常量是类型,否则该常量是double类型。类型。2.3f 1.2L .1E5f基本数据类型基本数据类型注:实数的小数形式必须有小数点的存在。注:实数的小数形式必须有小数点的存在。23浮点型变量浮点型变量浮点型变量的声明和初始化浮点型变量的声明和初始化举例举例基本数据类型基本数据类型float radius;double x=0.0,y=0.0;不能写成:不能写成:double x=y=0.0;24浮点型变量浮点型变量浮点数的输出浮点数的输出使用使用printf()函数函数float和和double对应
22、的格式说明符为对应的格式说明符为%f。举例举例(cw02-06.c)见例见例 3-5基本数据类型基本数据类型#include void main()float f;double d;f=33333.33333f;d=33333.3333333333;printf(f=%fnd=%f,f,d);f=33333.332031d=33333.333333有效数字位数是有限的,在可有效数字位数是有限的,在可表示的有效位之外的数字被舍表示的有效位之外的数字被舍去。因此可能会产生误差。去。因此可能会产生误差。25浮点数的舍入误差浮点数的舍入误差浮点数的舍入误差浮点数的舍入误差举例举例(cw02-07.c)
23、基本数据类型基本数据类型#include void main()float a,b;a=123456.789e5;b=a+20;printf(a=%fnb=%f,a,b);a=12345678848.000000b=12345678848.000000?26浮点数的舍入误差浮点数的舍入误差浮点数的舍入误差浮点数的舍入误差结果分析结果分析基本数据类型基本数据类型a=123456.789e5;b=a+20;a+20的理论值应该是:的理论值应该是:12345678920但是,一个实型变量能够保证的有效数字是但是,一个实型变量能够保证的有效数字是7位,后面的数字将被舍去,是没有意义的。位,后面的数字将
24、被舍去,是没有意义的。因此,最后得到因此,最后得到b=12345678848.000000应当避免一个很大的数和一个很小的数直接相加或相减,否则就应当避免一个很大的数和一个很小的数直接相加或相减,否则就会会“丢失丢失”较小的数。较小的数。27浮点数的溢出浮点数的溢出上溢上溢举例举例(cw02-08.c)若某系统中的最大若某系统中的最大float值为值为3.4e38,进行如下操作,进行如下操作得到结果得到结果下溢下溢举例:假设举例:假设-10是最小的指数,能够保留四位有效数字是最小的指数,能够保留四位有效数字如果把数如果把数0.1234e-10除以除以10,将得到结果,将得到结果0.0123e-
25、10,但损失了一,但损失了一位有效数字。位有效数字。基本数据类型基本数据类型float toobig=3.4e38*100.0f;printf(“toobig=%f,toobig);inf无穷大(无穷大(infinity)28小结小结C语言有多种数据类型。语言有多种数据类型。基本的数据类型包括两大类:基本的数据类型包括两大类:整数类型整数类型浮点类型浮点类型开发程序时,应当注意所需变量及其类型的选择。开发程序时,应当注意所需变量及其类型的选择。一般使用一般使用int和和float表示数,用表示数,用char表示字符。表示字符。在使用变量的函数的可执行语句之前声明该变量,并为它在使用变量的函数的
展开阅读全文