C语言基本的数据类型ppt课件.ppt

上传人:牧羊曲112 文档编号:2052356 上传时间:2023-01-04 格式:PPT 页数:59 大小:435KB
返回 下载 相关 举报
C语言基本的数据类型ppt课件.ppt_第1页
第1页 / 共59页
C语言基本的数据类型ppt课件.ppt_第2页
第2页 / 共59页
C语言基本的数据类型ppt课件.ppt_第3页
第3页 / 共59页
C语言基本的数据类型ppt课件.ppt_第4页
第4页 / 共59页
C语言基本的数据类型ppt课件.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《C语言基本的数据类型ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言基本的数据类型ppt课件.ppt(59页珍藏版)》请在三一办公上搜索。

1、第3章 基本数据类型(1),本章内容介绍,引出:标示符3.1 C语言的数据类型 3.2 整型和实型 3.3 字符型 3.4 库函数,补充:什么是标识符,标识符是一个名字,是给程序中的实体(常量、变量、类型、函数、数组、结构体以及文件起的名称,文件名也是标示符。组成:由字母、下划线、数字组成,且标示符必须由字母或下划线开头,否则程序出错。C语言不允许同时定义2个相同变量。C语言不同于其它语言,区分大小写。Area _abc 4dd长度:只能识别前8位。建议变量名的长度最好不要超过8个字符,标识符分类,标识符有三类:关键字、预定义标识符和用户定义标识符。1)关键字 已被C系统所占用的标识符称为关键

2、字,每个关键字在C程序中都有其特定的作用,关键字不能作为用户标识符。Turbo C 20的关键字,共32个,所有关键字中只包含小写字母和下划线。,标示符,ANSI标准定义的共32个关键字,标识符分类,2)预定义标识符 C语言系统提供的库函数名和编译预处理命令等构成了预定义标识符。printf,scanf等3)用户标识符 禁止使用 关键字作为用户的标识符 尽量避免使用预定义标识符作为用户标识符 标识符中不能出现全角字符、空格 使用标识符最好做到见名知义 标识符必须先定义后使用,否则出现编译错误,标识符,常量的类型,在程序运行过程中,其值不能被改变的量称为常量常量区分为不同类型,1)整型常量:10

3、0,-100,07623,0 xa3f 2)实型常量:3.14,1.2345e3,-3.789 3)字符型常量:a,b,2 4)字符串常量:123,Good morning!5)符号常量:define PI 3.14159 PI、ESC与ID是符号常量,变量,变量:是值可以改变的量。实质:内存中的存储单元定义方法:数据类型 标示符标识符的格式:1)只能使用字母、数字或下划线2)首字符必须为字母或下划线3)字符个数不超过32个4)区分大小写5)不能使用关键字(保留字)如:x,sum,_word,lotus_1_2_3 3df,$12,a+b,M.D.John,int注意:标识符要“见名知意”,变

4、量应“先定义后使用”,变量的特性:1)应先定义后使用;2)每一变量被指为一确定类型,在编译时就能为其分配相同的存储单元;3)指定每一变量属于一类型,便于在编译时,据此检查该变量所进行的运算是否合法,内存,x,例:#define PRICE 30void main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);,定义变量 赋值 赋值,int x;x=-10;,-10,3.1 C的数据类型,数据有一个非常重要特征即数据的类型。数据类型不仅确定了变量的取值范围、占内存空间大小,而且还确定了变量所能参加的各种运算方式。例如一个

5、整型(int)类型的数据,占内存空间2字节,取值范围规定为-3276832767之间的整数,能参与算术运算、位运算等。C语言中,每个变量在使用之前必须定义其数据类型。,C的数据类型,C的数据类型,基本类型:由系统事先定义好的不可再分割的类型,可以直接利用这些类型名定义数据。构造类型:由基本类型组成的更为复杂的类型。指针类型:一种特殊的、具有重要作用的数据类型,其值用来表示某个量在内存中的地址。空类型:主要用于特殊指针变量和无返回值函数的说明,注意:数据类型的位数和取值范围与所运行环境有很大关系(例如Turbo C与Visual C+6.0会有不同),C的数据类型,3.2 整型,3.2.1整型常

6、量一、整型常量的表示方法 整型常量即整常数。在语言中,整常数可用以下三种形式表示:(1)十进制整数。如:123,-456.4。(2)八进制整数。以数字0开头的数是八进制数。如:0123表示八进制数123,等于十进制数83-011表示八进制数-11,即十进制数-9。(3)十六进制整数。以0 x或X开头的数是16进制数。如:0 x123,代表16进制数123,等于十进制数 291。-0 x12等于十进制数18-0X8000L,16进制长整型,等于十进制数32768,二、不合法的整型常量 09876(非十进制,非八进制,因为有数字8和9)20fa(非十进制,非八进制,不是以0 x开头)0 xfg(出

7、现了非法字符)三、整数的表数范围 16位字长的整数表数的范围为-3276832767用八进制表示则为00177777,用十六进制表示为0 x00 xFFFF。超出上述范围的整常数,要用长整型(32位)表示。在C语言中,整型数后加l或字母L为长整型。四、整型常量的分类:基本整型、短整型、常整型、无符号整型,3.2.2整型变量,一、分类:基本整型、短整型、常整型、无符号整型。二、定义:1)基本整型变量用int进行定义;2)一个定义语句必须用分号“;”结束,在一个定义语句中可同时定义多个变量,变量之间用逗号”,”隔开。3)一般微机为基本整型开辟2个字节的存储单元,允许存放的数值范围是-3276832

8、767,4)C语言规定,可以在变量定义的同时给其赋值,称为变量的初始化。,void main()int a=3;float f=3.56;char c=a;int i,j,k=5;int x=3,y=5;,如果变量没有被初始化,变量的初始值将不能确定,变量参与运算前,必须先赋值,否则运算无效!,先定义后使用:1、必须首先声明;2、参与运算前必须先赋值,查看运行结果,想想为什么?,程序一:main()int i,j,k;printf(“i=%d,j=%d,k=%dn”,i,j,k);,程序二:main()int i,j,k;i=10;j=20;k=30;printf(“i=%d,j=%d,k=%

9、dn”,i,j,k);,5)当程序中用以上方式定义变量i,j,k时,编译程序会为变量i,j,k都开辟存储单元,但并没用在存储单元中存放任何初值。因此这些存储单元中原有的信息垃圾并没有被清除。这时,变量中的值无意义,只有赋初值才有意义。,3.2.3整型数据的分类,1、分类1)有符号整型signed基本整型(int)2个字节-3276832767短整型(short int)2个字节-3276832767长整型(long)4-214748364821474836472)无符号整型unsignedunsigned int 2 065535unsigned short 2 065535unsigned

10、long 4 04294967295,2、C语言如何表示若要表示一个长整型常量,则应该在一个整型常量后加一个字母后缀l或L。如:long i;i=200l;注意:如果一个足够大的数,即使面值在长整型范围内,但数字后未加字母l,也不可代表长整型。3、无论是短整型还是长整型,都被识别为有符号整型,无符号整数应该在数字末尾加上u或U,长整型无符号整数常数,加lu或LU注意:无符号常量不能表示成小于0的负数。-200u不合法,一个整数,如果其值在-32768+32767范围内,认为它是int型,它可以赋值给int型和long int型变量。一个整数,如果其值超过了上述范围,而在-2147483637+

11、2147483647范围内,则认为它是为长整型。可以将它赋值给一个long int型变量。一个整常量后面加一个字母u或U,认为是unsigned int型,如12345u,在内存中按unsigned int规定的方式存放(存储单元中最高位不作为符号位,而用来存储数据)。如果写成-12345u,则先将-12345转换成其补码53191,然后按无符号数存储。,3.2.4整数在内存中的存储形式,1、存储单位1)在计算机中,内存储器的最小存储单位为“bit”,8个二进制位组成一个字节byte.2)如果一台计算机系统以两个字节(16个二进制位)来存放一条机器指令,就称这台计算机的字长为16位。3)最右边

12、一位为“最低位”,最左边一位为“最高位”4)若是正整数,最高位为“0”,若是负整数,最高位为“1”。,2、存储方式1)正整数:用两个字节存放最大整数327672)负整数 a)C语言中,对于负整数,在内存中是以整数的“补码”形式存放;b)两个字节存放最小整数-327683)无符号整数:用两个字节存放一个整数时,若说明为无符号整数,其中最高位不再用来存放整数的符号,16个二进制数位全部用来存放整数,因此无符号整数不可能是负数。这时,16个二进制位中全部是1,它所代表的整数就是最大数65535,=-32768,=-1,例如:整数13在内存中实际存放的情况:,例:整型变量的定义与使用,#include

13、“stdio.h”void main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);,运行结果:a+u=22,b+u=-14,例:整型数据的溢出,#include void main()int a,b;a=32767;b=a+1;printf(“%d,%dn”,a,b);,说明:数值是以补码表示的。一个整型变量只能容纳-3276832767范围内的数,无法表示大于32767或小于-32768的数。遇此情况就发生“溢出”。,运行结果:32767,-32768,3.3实型,3.3.1

14、实型常量(也称浮点型常量)一、实型常量的表示方法 实型常量只能用十进制形式表示。(1)小数形式:0.123 345.0-34.679 0.0 小数点不能省略,不能只有一个小数点 绝对值小于1的实型常量,其小数点前面的零可以省略,如;0.123可写为.123,-0.0123e-5可写为.0123e-5。(2)指数形式:指数部分前加字母e或E 1.2345e3、12345E2、1.2345e3 指数部分必须是整数,字母e或E之前必须有数字,字母e或E 前后以及数字之间不得插空格。,1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e,规范化的指数形式:,在字母e(或E

15、)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字.例如:123.456可以表示为:123.456e0,12.3456e1,1.23456e2,0.123456e3,0.0123456e4,0.00123456e 其中的1.23456e3称为“规范化的指数形式”。,C编译系统将浮点型常量作为双精度来处理。例如:f=2.45678*4523.65 系统先把2.45678和4523.65作为双精度数,然后进行相乘的运算,得到的乘也是一个双精度数。最后取其前7位赋给浮点型变量f。如是在数的后面加字母f或F(如1.65f,654.87F),这样编译系统就会把它们按单精度(32位)处理。实

16、型常量不分单精度和双精度,可赋给单精度和双精度。根据变量的类型,截取实型常量中相应的有校数位。float a;a=111111.111;由于float只能接收7位有效数位,最后两位小数不起作用,若改为double,则全部接收。,3.3.2实型变量,1、C语言实型变量分为单精度和双精度单精度定义:float a,b;双精度定义:double a,b;2、浮点型数据在内存中的存放形式 一个浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。小数部分所占位数越多,数据

17、的精度越高,指数部分所占的位数越多,数据的取值范围越大。,3、浮点型变量的分类 浮点型变量分为单精度(float型)、双精度(double型)和长双精度型(long double)三类形式。,4、单精度和双精度的区别1)一般计算机系统中,为float类型变量分配4个字节的存储单元,为double类型变量分配8个字节的存储单元;2)Turbo c中单精度实数的取值范围:10-37 1038并提供7位有效位;小于-1038的数被处理成零值;双精度实数的取值范围:10-30710308 并提供16位有效位;小于10308的数被处理成零值;因此double类型的变量中存放的数据比float类型中存放的

18、数据精确很多。,3)在程序中一个实数可以用小数形式表示,也可以用指数形式表示,但在内存中,实数一律是以指数形式存放;4)注意:在计算机内存中可以精确地存放一个整数,不会出现误差,但整型数值的存放范围小,使用实型数的范围大,但往往存在误差。,例3.4 浮点型数据的舍入误差#include main()float a,b;a=123456.789e5;b=a+20;printf(%fn,b);,说明:一个浮点型变量只能保证的有效数位是7位有效数位,后面的数字是无意义的,并不准确地表示该数。应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会“丢失”小的数,理解7位有效数字main()flo

19、at a=123.456789;double b=123.456789;clrscr();printf(“a=%f,k=%lfn”,a,b);,输出结果:a=123.456787,b=123.456789,3.3字符型数据,3.3.1字符型常量一、字符型常量的表示方法 C语言的字符常量是ASCll码字符集里的一个字符,包括字母(大、小写有区别)、数字和标点符号以及特殊字符等,均为半角字符,一个字符常量在内存中占1个字节,因此字符常量不能是全角字符。C语言字符常量有三种表示方法:(1)普通字符常量:用单引号 a A 0+单引号内,不能使单撇或反斜杠。单引号内空格也是一个字符常量,但不能写成两个连

20、续的单引号,(2)用该字符的ASCll码值表示的字符常量 例如:十进制数65表示大写字母A 十六进制数0X41也表示A 八进制数0101表示大写字母 A。一些不能用符号表示的特殊字符(如控制符等),可以用ASCll码值来表示,如换行可用10表示,也可用十六进制数0 x0a或八进制数012来表示,(3)转义字符:是以 开头的用单引号括起来的字符序列。,例如:用 r表示回车 用n表示换行。换行也可用12或012换行还可用xa或x0a反斜杠后跟十六进制数表示 101 用八进制表示的字符A 在C语言中,字符常量与整数是互通的。经常将字符常量等价为整数参与运算:如:A+32 结果为 a 0-48 为 0

21、,/例3.1:转义字符的使用#include void main()printf(abtcdn);printf(12345678012student x42n);,程序运行结果:ab cd12345678student B,3.3.2字符变量1、字符变量的定义 字符型变量用来存放字符常量,注意只能放一个字符。字符变量的定义形式如下:char c1,c2;在本函数中可以用下面语句对c1,c2赋值:c1a;c2 b;一个字符变量在内存中占一个字节。,3.3.3字符数据在内存中的存储形式及其使用方法,一个字符常量存放到一个字符变量中,实际上并不是把该字符的字型放到内存中去,而是将该字符的相应的ASC

22、II代码放到存储单元中。这样使字符型数据和整型数据之间可以通用。,注意:一个字符数据既可以以字符形式输出,也可以以整数形式输出。,例:向字符变量赋以整数#includemain()char c1,c2;c1=97;c2=98;printf(%c,%cn,c1,c2);printf(%d,%dn,c1,c2);,说明:在第和第4行中,将整数97和98分别赋给c1和c2,它的作用相当于以下两个赋值语句:c1;c2;因为a和b的ASCII码为97和98,运行结果:,97,98,例:大小写字母的转换#includemain()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32

23、;printf(%c,%cn,c1,c2);,说明:程序的作用是将两个小写字母a和b转换成大写字母A和B。从代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。语言允许字符数据与整数直接进行算术运算。,运行结果:,3.3.4字符串,字符串常量表示形式:用双引号括起来的字符序列。How do you do.,CHINA,a,$123.45,%dn字符常量与字符串常量的区别a与 a 是否相同?abc是否是字符串常量?是否是字符串常量?两个连续的双引号也是字符串常量,称为空串,占一个字节存放0 字符串的存储形式:存储时每个字符串末尾自动加一个 0作为字符串结束标志。,如:如果有一个

24、字符串常量,实际上在内存中是:,它占内存单元不是个字符,而是个字符,最后一个字符为0。但在输出时不输出0。,符号常量,C语言中可以用一个变量名来代表一个常量,这个变量名就称为符号常量。可以用两种方式来定义C语言中的符号常量。利用宏定义#define来定义符号常量。例如:#define PI 3.14159#define PRICE 30 则PI、PRICE是符号常量,在程序中它们的值不能被改变。程序中用符号常量来代替一串不易记忆的数字或一串字符串,不仅增加了程序的可读性,也减轻了程序设计人员的负担特点:便于维护、提高程序可读性、语言中习惯用大写字母表示符号常量,以区别变量,例3.2 符号常量的

25、使用#include#define PI 3.14/*定义符号常量PI*/void main()double r,s;r=20.0;s=PI*r*r;/*使用符号常量PI*/printf(s=%fn,s);,补充例题#define PRICE 12.5main()int num=3;float total;char ch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn,total,ch1);,运行结果:total=37.500000,ch1=d,为了方便程序设计者实现一些常用的功能模块,各个编译系统都提供了函数库(将一些基

26、本的常用功能定义成为函数,并将相关的原型声明放在相应的头文件中),库里的这些函数称为库函数。C的函数库中的每个库函数是一系列的可共享的可执行函数,当我们在自己的C源程序中使用某个库函数时,我们并不需要重复书写一遍该库函数的源代码,只需要直接使用该函数即可。如:求一个角 x 的正弦值sin(x),或一个正数 x 的开平方sqrt(x)等等,3.4库函数,库函数是系统预先定义好的,分为若干类。需要注意的是:在程序中调用库函数时,应当根据库函数的种类,在程序的开头使用#include,例如要使用sin(),或sqrt()等数学函数时,就应当在程序开头加上:#include#include math.

27、h,例3.3 库函数的调用方式#include void main()double a=3.5,b=4.5,c=5.5;/*a,b,c表示三角形的三个边*/double p,s;p=0.5*(a+b+c);s=sqrt(p*(p-a)*(p-b)*(p-c);/*用劳伦公式计算三角形面积*/printf(area=%f,s);,头文件包含#include 或#include math.h 1.三角函数sin、cos、tan函数原型:double sin(double x);double cos(double x);double tan(double x);函数功能:函数x以弧度为单位,求正弦、

28、余弦及正切值函数使用:sin(x)cos(x)tan(x),/例3.4 sin、cos、tan函数计算#include#include#define PI 3.14159void main()double x,y,z,t;x=0.5*PI;y=sin(x);z=cos(x);t=tan(x);printf(%f,%f,%f,x,y,z);,常用数学函数,2.绝对值函数abs、fabs、labs函数原型:int abs(int x);适用于整型绝对值计算double fabs(double x);适用于浮点型(双精度型)long labs(long x);适用于长整型数的绝对值计算3.exp和p

29、ow函数函数原型:double exp(double x);函数 求:ex double pow(double x,double y);函数 求:xy(x!=0,y0)英文power是“乘方4.log和log10函数函数原型:double log(double x);求x的自然对数ln(x)(x0)double log10(double x);以10为底的x的对数值log10(x),5.sqrt函数函数原型:求平方根(开方)double sqrt(double x);例如:sqrt(2.0)等于1.414等。6.随机函数rand、sand函数原型:int rand(void);void sand(unsigned int seed);说明:srand是用来设置随机时间的种子,一般与rand()结合使用。否则直接用rand()的话,每次运行程序的结果都相同。,/例3.5 用当前机器时间作随机数产生器,产生3个随机整数#include#include void main()srand(unsigned)time(NULL);printf(%6dn,rand();printf(%6dn,rand();printf(%6dn,rand();,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号