第02章基本数据类型课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第02章基本数据类型课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02 基本 数据类型 课件
- 资源描述:
-
1、1第第2 2章章 基本数据类型、运算符和表达基本数据类型、运算符和表达式式本章要点本章要点l掌握c语言中的数据类型l掌握常用的表达式形式,以及运算符的优先级和结合性。X+y/3 X=Y=3成绩、工资、平均体重、价格类型?范围?精度?内存结构?运算?2第第2 2章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式l2.12.1变变量和常量量和常量 l2 22 2 基本基本数数据据类类型型l2 23 3 整型整型l2 24 4 实实型型 l2 25 5 字符型字符型 l2 26 6 运运算符和表算符和表达达式式 l2 27 7 基本的基本的输输入入输输出函出函数数l2 28 8总结与总结
2、与提高提高 32.1变量和常量变量l数学中的变量变量是指其值可以变化的量,程序中的变量是指可多次赋值的量。l变量有三个要素,变量类型、变量名和变量地址。例2-1 变量的使用main()int x,y,sum;printf(“nplease input two integers:);scanf(%d%d,&x,&y);/*输入两个整数*/sum=x+y;/*两个整数求和*/printf(nThe sum is%d,sum);/*将和输出*/42.1变量和常量变量l不同的数据类型,其占用的内存空间一般不一样,存储格式也可能不一样,表示范围和精度都有区别。l在Turbo c中,命名变量的规则如下:-
3、必须以字母或下划线开头,后面可以是字母、数字或下划线;-ANSI C标准没有规定变量名的长度(字符个数),但各个c编译系统都有自己的规定。为了程序具有较好的可移植性和阅读程序的方便,变量名一般不要超过16个字符;-变量名区分大小写,如变量名abc与变量名ABC是不同的变量;-变量名不能使用系统的关键字(或称保留字)52.1变量和常量变量lC语言中的关键字有(共32个):auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、
4、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while。62.1变量和常量变量l例如:下列是合法的变量名:l下列是不合法的变量名:SUM,_total,_ch1,employee_name,p_1M.D.John,$876,3D67,ab,int72.1变量和常量常量l相对变量的概念就是常量常量,也称为常数。在程序运行过程中,其值不能被改变的量称为常量。具体来说有两类:普通常量符号常量3,7.56,a,”I love beijing”,#difine PI 3.1482.1变量和常量
5、常量例2-2 符号常量的例子#define PI 3.14main()float r,area;printf(“nPlease input the radius:);scanf(%f,&r);/*输入某圆的半径*/*PI=3.1415926;此句错误,不能通过编译,因为PI是符号常量,不能重新赋值。*/area=PI*r*r;/*计算该圆的面积*/printf(nThe area of the circle is:%f,area);/*输出该圆的面积*/92.1变量和常量常量l问题:使用符号常量有什么好处?102 22 2 基本数据类型基本数据类型 lC语言数据类型数据类型构造类型基本类型指针
6、类型整型空类型浮点型结构体字符型枚举类型单精度型双精度型共用体数组类型图21 C语言数据类型112 23 3 整型整型整型常量整型常量 l在语言中,使用的整型常量有十进制、八进制和十六进制三种,用不同的前缀来标识不同进制的整型常量,用不同的后缀来标识不同类型的整型常量。l(1)十进制整常量:其各位数为09,但最高位不能为0(除了0这个数字外)。例如,22,0,-56等是合法的十进制整常数;而01、726C不是十进制整常数。l(2)八进制整常量:八进制整常量必须以数字0开头,即以0作为八进制数的前缀。各位数取值为07。122 23 3 整型整型整型常量整型常量l以下各数是合法的八进制数:-01(
7、十进制为1)、0101(十进制为65)、0177777(十进制为65535);l以下各数不是八进制数(Why):-25、07C2。(3)十六进制整常量:十六进制整常量的前缀为0X或0 x。十六进制需要十六个字符来表示各位可能出现的数符,这些字符规定为09,AF或af。132 23 3 整型整型整型常量整型常量l以下各数是合法的十六进制整常量:-0X4B(十进制为75)、0X10(十进制为16)、0XFFFF(十进制为65535);l以下各数不是十六进制整常量:-5A(无前缀0X)、0X5H(含有非十六进制数码)。142 23 3 整型整型整型常量整型常量l(4)整型常量的后缀:在16位字长的机
8、器上,基本整型的长度为16位,因此表示的数的范围也是有限定的。l注意:八进制整型常量和十六进制整型常量都只能表示正整数,因此16位取值范围是0+65535,而十进制整型常量可以是负数,取值范围为-32768+32767。如果使用的数超过了上述范围,则要用相应的后缀来标明。152 23 3 整型整型整型常量整型常量l超范围的数用长整型数来表示(关于整型数据类型,参考本章2.3.2节)。长整型数是用后缀“L”或“l”来表示的。例如:十进制长整型常数:例如32L(十进制为32)、1234567L(十进制为1234567);八进制长整型常数:例如040L(十进制为32)、0300000L(十进制为98
9、304);十六进制长整型常数:例如0X20L(十进制为32)、0XFFFFL(十进制为65535)。注意注意:整数32L和基本整常数32在数值上并无区别但是在内存中,32L占用4个字节空间,而32只占用2个字节的空间,因此是不相同的。162 23 3 整型整型整型常量整型常量l如果要表示一个无符号数,整型常数的后缀为“U”或“u”。例如:-358u,0 x38Au,235Lu均为无符号数。l前缀和后缀可同时使用以表示各种类型的数。如0XB7CLu表示十六进制无符号长整数B7C,其十进制数为2940。2 23 3 整型整型整型常量整型常量172 23 3 整型整型整型常量整型常量例2-3各进制整
10、数的输出。main()int i;i=167;printf(ni=167);printf(nThe decimal form is%d,i);/*以十进制格式显示*/printf(nthe octonary form is%o,i);/*以八进制格式显示*/printf(nthe hexadecimal form is%x,i);/*以十六进制格式显示*/i=0167;182 23 3 整型整型整型常量整型常量 printf(ni=0167);printf(nThe decimal form is%d,i);printf(nthe octonary form is%o,i);printf(nt
11、he hexadecimal form is%x,i);i=0 x167;printf(ni=0 x167);printf(nThe decimal form is%d,i);printf(nthe octonary form is%o,i);printf(nthe hexadecimal form is%x,i);192 23 3 整型整型整型常量整型常量l运行该程序后,其结果为:i=167The decimal form is 167The octonary form is 247The hexadecimal form is a7i=0167The decimal form is 119
12、The octonary form is 167The hexadecimal form is 77i=0 x167the decimal form is 359the octonary form is 547the hexadecimal form is 167202 23 3 整型整型整型变量整型变量l整型变量分类。l短整型基本整型长整型。在16位字长的机器中,基本整型变量占2个字节。有无符号位有符号整型无符号整型有无符号位短整型长整型基本整型2*3=6类212 23 3 整型整型整型变量整型变量l1整数的机内表示 如果声明一个整型变量:int i;i=876;因为876292826252
13、322,所以在机内二进制的表示形式如图2-2所示(共占16位):图22 876在内存中的表示0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0222 23 3 整型整型整型变量整型变量l无符号整型将所有的位均表示为数据,因此只有正数形式。有符号的整型将最高位用做符号位,最高位为“1”表示负数,为“0”表示正数。数据在内存中是以二进制形式存放的。实际上,数数据在内存中是以二进制形式存放的。实际上,数值是以补码表示的。值是以补码表示的。(1)(1)对于正数,原码对于正数,原码 =反码反码 =补码。补码。(2)(2)对于负数,补码对于负数,补码 =反码反码 +1+1。(3)(3)引入补码
14、后,使减法统一为加法。引入补码后,使减法统一为加法。补补补补)(251032510325103 计算正数的补码计算正数的补码原码原码=反码反码=补码补码int 10;原原 码:码:反反 码:码:补补 码:码:00 00 00 00 00 00 10 1000 00 00 00 00 00 10 1000 00 00 00 00 00 10 10 计算负数的补码计算负数的补码int型型 -10;绝对值:绝对值:1000 00 00 00 00 00 10 10二进制:二进制:11 11 11 11 11 11 01 01取取 反:反:11 11 11 11 11 11 01 10加加 1:反反
15、码码补补 码码绝对值绝对值 二进制二进制 取反取反 加加 1请请写出写出2020、-20-20的补码的补码int 20;原原 码:码:补补 码:码:00 00 00 00 00 01 01 0000 00 00 00 00 01 01 00int -20;绝对值:绝对值:20 二进制:二进制:取取 反:反:加加 1:00 00 00 00 00 01 01 0011 11 11 11 11 10 10 11 11 11 11 11 11 10 11 00 补补 码码272 23 3 整型整型整型变量整型变量l2整型变量的类型 数据类型类型说明符字节数表示范围无符号短整型unsigned sho
16、rt int2065535(0216-1)有符号短整型signed Short int2-3276832767(-215215-1)无符号整型unsigned int2065535有符号整型signed int2-3276832767无符号长整型unsigned long int404294967295有符号长整型signed long int4-21474836482147483647282 23 3 整型整型整型变量整型变量l3整型变量的声明和赋值 l声明变量的格式为:变量类型变量类型 变量名;变量名;l下面是声明整型变量的例子:short int x;声明了一个短整型的变量x。而 uns
17、igned int 则声明了一个无符号的基本整型变量。292 23 3 整型整型整型变量整型变量l声明变量的时候要注意三点:(1)允许一行声明多个同类型变量,各变量名间用“,”(逗号)隔开;(2)变量必须先声明,然后才能使用;(3)在一个语句块中,程序中所有的变量应当一 起声明在开始处,不能重复声明。302 23 3 整型整型整型变量整型变量例2-4整型变量的运用main()int a,b,c,d;/*在程序段开始处一起声明变量*/unsigned u;a=12;b=-24;u=10;/*用常量为变量赋值*/c=a+u;d=b+u;/*用一个表达式为变量赋值*/printf(na+u=%d,b
18、+u=%d,c,d);312 23 3 整型整型整型变量整型变量例2-5一个不正确的例子main()int x,y;y=x;printf(ny=%d,y);我错在那?呜呜呜322 23 3 整型整型整型变量整型变量l给整型变量赋值有很多方式(1)声明时立即赋值,称为初始化。例如:int x=3;int y=4,z=5;(2)先声明后赋值。int x;x=3;(3)通过格式化函数scanf从标准输入设备输入。int x;scanf(“%d”,&x);332 23 3 整型整型整型变量整型变量l4整型值的输出。也可以将整型常量或变量的值以十进制、八进制或十六进制的格式输出,例23说明了这一点。重要
19、提示:数学上的整数可以无限大,但程序设计中整数在机内存储所占的内存有限,因此整型数据表示的范围有限,在平时的编程中,要特别注意不能把一个超过范围的数值赋值给一个整型变量。如果这样做了,那么这个整型变量事实上接受的不是预想中的值,称为“溢出”。342 23 3 整型整型整型变量整型变量例2-6整型数据的溢出。main()int a,b;a=32767;b=a+1;printf(%d,%dn,a,b);运行后,其结果为:32767,-32768352 23 3 整型整型整型变量整型变量l为什么会出错?0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1a=32767:图25 整数溢出0
20、0 0 0 0 0 0 0 0 0 0 0 0 0 0 1+11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-32768362 24 4 实型实型实型常量实型常量 在C语言中,实数只采用十进制。基本的形式为:整数部分整数部分.小数部分小数部分但有两种表达方式:(1)小数方式:由09和小数点组成。例如:035,167,6736,728.3 等。(2)指数方式:由十进制实数,加阶码标志“e”或“E”以及阶码(只能为整常量,可以带符号)组成。其一般形式为:aEn或aen(a为十进制数,n为十进制整数表示的阶码)其值为a10n。372 24 4 实型实型实型常量实型常量l实型常量的例子
21、l使用实型常量要注意以下几点:(1)整数部分和小数部分可以省略其中的一个,例如,.36和200.都是合法的实型常量。(2)用指数方式时,E或e两边都要有数字,但都只能是常量。(3)实型分为单精度实型和双精度实型,但是实型常数不分单、双精度,都按双精度double型处理。036e2,表示0.36102;12.56E12,表示12.561012;3.89e3,表示3.89103。382 24 4 实型实型实型变量实型变量l1实型数据的机内表示 实型数据一般占4个字节(32位)内存空间,按指数形式存储。比如实数3.14159在内存中的存放形式:+.3141591数符小数部分阶符阶数 小数部分占的位数
22、愈多,数的有效数字愈多,精度愈高。指数部分占的位数愈多,则能表示的数值范围愈大。392 24 4 实型实型实型变量实型变量l2实型变量的类型类型类型说明符比特数(字节数)有效数字表示范围单精度实型float32(4)67-3.410-373.41038 双精度实型double64(8)1516-1.710-3071.710308 长双精度实型long double 128(16)1819-1.210-49311.2104932 402 24 4 实型实型实型变量实型变量l3实型变量的声明和赋值 实型变量定义的格式和书写规则与整型相同。例如:float x,y;(x,y为单精度实型量)doubl
23、e a,b,c;(a,b,c为双精度实型量)412 24 4 实型实型实型变量实型变量实型变量赋值方式与整型变量类似,但是要注意的是从键盘输入时scanf()函数的类型说明符为“%f”:float x;x=scanf(“%f”,&x);从键盘输入实数时可以用小数的形式或指数的形式输入。422 24 4 实型实型实型变量实型变量l4实型值的输出 若用printf()函数输出,格式输出符是“%f”,细节请参看本章2.7节。432 24 4 实型实型实型变量实型变量l5实型数据的舍入误差例2-7 实型数据的舍入误差。main()float a,b;a=123456.789e5;b=a+20;prin
24、tf(na=%f,b=%f,a,b);该程序的运行结果是:a=12345678848.000000,b=12345678848.000000442 25 5 字符型字符型字符常量字符常量 l字符常量是用单引号括起来的单个字符或转义字符。例如:a、c、=、+、?都是合法字符常量。注意,a和A是不同的字符常量。l在语言中,字符常量有以下特点:(1)字符常量只能用单引号括起来,不能用双引号或其它括号。(2)字符常量只能是单个字符,不能是字符串。(3)有些字符有特殊含义,如单引号“”、双引号“”等,还有一些字符不能或不方便直接从键盘输入,比如回车换行符、退格符等。这时可使用转义字符来表示。452 25
25、 5 字符型字符型字符常量字符常量转义字符转义字符的意义ASCII代码n回车换行(之后的内容到下一行)10t横向跳到下一制表位置9b退格(删除前一个字符)8r回车(回到本行开头)13f走纸换页12反斜线符92单引号符39”双引号符34a鸣铃7ddd13位八进制数所代表的字符xhh12位十六进制数所代表的字符462 25 5 字符型字符型字符常量字符常量 广义地讲,语言字符集中的任何一个字符均可用转义字符来表示。表中的ddd和xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码(ASCII表见附录1)。如101(十进制为65)表示字母A,012(十进制为10)代表换行,37
展开阅读全文