C语言基本数据描述.ppt
《C语言基本数据描述.ppt》由会员分享,可在线阅读,更多相关《C语言基本数据描述.ppt(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章C语言基本数据描述语言基本数据描述2.1基本数基本数据类型据类型2.2变量和常量变量和常量2.3运算符和表达式运算符和表达式2.1.1字符集和标识符字符集和标识符l字符集字符集字符集是高级语言的编译系统所能识别的字母、字符集是高级语言的编译系统所能识别的字母、数字、和特殊符号。每种高级语言都有自己特定的字数字、和特殊符号。每种高级语言都有自己特定的字符集合。符集合。l标识符标识符 标识符是用来标识在标识符是用来标识在C程序中的变量、常量(指符程序中的变量、常量(指符号常量)、数据类型和函数的。通俗一点说,标识符号常量)、数据类型和函数的。通俗一点说,标识符是程序员为变量、常量或者函
2、数起的名字,它实际上是程序员为变量、常量或者函数起的名字,它实际上是一个字符序列。是一个字符序列。(1)大大、小小写写英英文文字字母母:A,B,Z,a,b,z(2)数字:数字:0,1,2,9(3)运算符:运算符:+*/%=&|?!(4)括号:括号:()(5)标点符号:标点符号::;(6)特殊符号:特殊符号:_$#(7)空白符:空格符、换行符、制表符。空白符:空格符、换行符、制表符。C语言的字符集合包括:语言的字符集合包括:(1)字母或下划线中的任一字符打头。字母或下划线中的任一字符打头。(2)在第一个字符后,可以是任意的数字、字在第一个字符后,可以是任意的数字、字母、下划线组成的序列。长度不超
3、过母、下划线组成的序列。长度不超过8个。个。关键字(保留字)关键字(保留字)标识符的分类:标识符的分类:特定字特定字用户定义字用户定义字任何一个标识符必须符合下列语法规则:任何一个标识符必须符合下列语法规则:关键字:又称保留字,一般为小写字母。关键字:又称保留字,一般为小写字母。关关键键字字是是C编编译译程程序序预预先先登登录录的的标标识识符符,它它们们代代表固定的意义,用户不能随便使用。表固定的意义,用户不能随便使用。若若随随便便使使用用,可可能能出出现现意意想想不不到到的的错错误误,编编译译能能通通过过,但但运运行行结结果果不不对对,且且不不容容易易检检查错误之所在。查错误之所在。关键字(
4、保留字)关键字(保留字)特定字特定字特特定定字字:具具有有特特殊殊含含义义的的标标识识符符。它它们们虽虽然然不不是是关关键键字字,但但是是在在习习惯惯上上把把它它们们看看成成关关键键字字。所所以以一一般般用用户户定定义义的的标标识识符符也也不不要要使使用用它它们。们。特定字包括:特定字包括:defineundefincludeifdefifndefendifline 用用户户按按照照语语法法规规则则定定义义的的标标识识符符。用用户户定定义义字字可可以以用用来来标标识识用用户户自自己己使使用用的的变变量量,符符号号常常量量、数数据据类型以及函数等。类型以及函数等。注意注意(1)不能使用关键字和特
5、定字。不能使用关键字和特定字。(2)用用户户定定义义字字为为了了标标识识不不同同的的对对象象,标标识识符符的的前前8个个(甚至(甚至7个)字符要有区别。个)字符要有区别。(3)标识符最好有含义。标识符最好有含义。(4)避免使用容易混淆的字符。如避免使用容易混淆的字符。如l与与1,0与与o,z与与2等。等。(5)大、小写代表不同的意义。大、小写代表不同的意义。(6)尽量不要与某个库函数同名。尽量不要与某个库函数同名。用户定义字用户定义字2.1.2变量与常量变量与常量l变量变量 变量是由程序命名的一块计算机内存区域,是变量是由程序命名的一块计算机内存区域,是用来存储一个可以变化的数值。用来存储一个
6、可以变化的数值。l常量常量 与变量一样,常量也是存储在内存中的,但是,与变量一样,常量也是存储在内存中的,但是,常量的数值在程序执行过程中不会发生改变。常量的数值在程序执行过程中不会发生改变。无名常量(或称文字常量)无名常量(或称文字常量)符号常量(用预处理命令符号常量(用预处理命令#define#define为常量命名)为常量命名)在在使使用用一一个个变变量量之之前前,程程序序员员必必须须为为每每个个变变量量起起个个名名字字,同同时时还还要要声声明明它它的的数数据据类类型型,以以便便编编译译系系统统根根据据不不同同的的数数据据类类型型为为其其静静态态地地分分配内存空间。我们称之为定义变量。配
7、内存空间。我们称之为定义变量。定义变量的格式为:定义变量的格式为:类型说明符类型说明符变量名表变量名表;不定值不定值定义变量定义变量2.2.1C C语言的数据类型语言的数据类型 整型整型int基本数据类型基本数据类型浮点型浮点型floatdouble字符型字符型char数组数组以以为标志为标志结构结构struct构造类型构造类型复杂数据类型复杂数据类型联合联合union枚举枚举enum指针类型指针类型以以*为标志为标志 C C语语言言的的数数据据类类型型整型整型 短整型短整型 short int short int 长整型长整型 long int long int 普通整型普通整型 int i
8、nt 浮点型浮点型 普通浮点型普通浮点型 float float 双精度浮点型双精度浮点型 double double 字符型字符型 char char 不同数据类型的数据由于其在内存的存储方式不不同数据类型的数据由于其在内存的存储方式不同,存储所占的二进制位(同,存储所占的二进制位(bitbit)大多不相同。即使是)大多不相同。即使是相同类型的数据在不同种类的计算机所占位(相同类型的数据在不同种类的计算机所占位(bitbit)数)数也不完全相同。也不完全相同。2.2.2整型数据整型数据l整型变量整型变量 l整型常量整型常量 l用用printf显示整型数据显示整型数据 l用用scanf输入整型
9、数输入整型数 按照整型变量所占的二进制位数来分类:按照整型变量所占的二进制位数来分类:short(短整型)(短整型)int(普通整型)(普通整型)long(长整型)(长整型)根据整型变量是否带符号位来分类:根据整型变量是否带符号位来分类:不带符号的整型变量不带符号的整型变量带符号的整型变量带符号的整型变量无符号用关键字无符号用关键字unsigned表示表示说明整型变量的语法是:说明整型变量的语法是:限定词限定词int变量名表;变量名表;在在IBMPC机机上上,普普通通整整型型占占16位位(bit),短短整整型型也也占占16位位(bit),而而长长整整型型占占32位位(bit)。根根据据整整型型
10、数数据据所所占占的的位位数数,计计算算一一个个整整型型数数据据能能表表示示的的数数据据的的取值范围。取值范围。第第位位是是符符号号位位,如如果果符符号号位位为为0,表表示示是是正正整整数数,从到从到15位全为位全为1时表示的数最大。时表示的数最大。01111121515个个1则则16bit能表示的最大整数是能表示的最大整数是2151,即,即32767。如如果果符符号号位位为为1,表表示示是是负负整整数数,从从到到15位位都都为为0时表示的数最小。时表示的数最小。100015个个0在计算机中,这个数是在计算机中,这个数是-215的补码表示。因此,最的补码表示。因此,最小整数是小整数是-215,即
11、,即-32768。整型常量表示:整型常量表示:十进制表示十进制表示八进制表示八进制表示以数字以数字 0开头开头十六进制表示十六进制表示以数字以数字0和和x开头。开头。inta,b,c;a=10;b=010;c=0 x10;长整型:要在数字后加上字母长整型:要在数字后加上字母L。longs;s=10L;需需要要注注意意的的是是:如如果果整整型型常常量量超超过过机机器器所所能能表表示示的的范范围围,则则会会发发生生溢溢出出,而而在在C语语言言中中的的整整数数溢溢出出并并不不会会使使程程序序出出错错,而而是是得得到到一一个个非非正确的值。正确的值。inta,b;a=10000;b=10000000;
12、变量变量b的值会被系统认为是的值会被系统认为是-27008。%d表示把数据按十进制整型输出;表示把数据按十进制整型输出;%o表示把数据按八进制整型输出;表示把数据按八进制整型输出;%x表示把数据按十六进制整型输出;表示把数据按十六进制整型输出;%u表示把数据参数按无符号整型输出。表示把数据参数按无符号整型输出。注意:注意:除了除了%d,其余的格式都将数据作为无符号数输出。,其余的格式都将数据作为无符号数输出。printf(%ld,100000L);printf(%ld,100000L);正确正确printf(%d,100000L);printf(%d,100000L);结果结果-31072用用
13、printf显示整型数据显示整型数据例例2.1#includestdio.hvoidmain()intx,y,z;x=129,y=0127,z=0 x128;printf(%d,%d,%dn,x,y,z);printf(%o,%o,%on,x,y,z);printf(%x,%x,%xn,x,y,z);运行结果:运行结果:129,87,296201,127,45081,57,128例例2.2#includestdio.hvoidmain()intx,y,z;x=-129,y=-0127,z=-0 x128;printf(%d,%d,%dn,x,y,z);printf(%o,%o,%on,x,y,
14、z);printf(%x,%x,%xn,x,y,z);运行结果:运行结果:-129,-87,-296177577,177651,177330ff7f,ffa9,fed8说说明明:-0127和和-0 x128并并不不是是八八进进制制和和十十六六进进制制常常量量,“-”实实际际是运算符是运算符;使用使用%o和和%x显示的常量和变量是无符号数。显示的常量和变量是无符号数。使用域宽和对齐方式来控制显示格式使用域宽和对齐方式来控制显示格式在在%和和转转换换说说明明符符之之前前加加整整数数数数字字,表表示示数数据据显显示示的域宽的域宽;在在%后后面面加加符符号号“-”,数数据据显显示示时时左左对对齐齐,没
15、没有有符符号号“-”,数据显示时右对齐。,数据显示时右对齐。printf(%-6x%-6x%-6xn,x,y,z);例例2.3#includestdio.hvoidmain()intx,y,z;x=129,y=0127,z=0 x128;printf(%6d%6d%6dn,x,y,z);printf(%6o%6o%6on,x,y,z);printf(%-6x%-6x%-6xn,x,y,z);运行结果:运行结果:129872962011274508157128scanf是是格格式式输输入入函函数数,其其功功能能是是按按指指定定的的格格式式将将标标准输入设备(例如键盘)输入的内容送入变量中。准输入
16、设备(例如键盘)输入的内容送入变量中。scanf函数的使用格式:函数的使用格式:scanf(格式信息格式信息,输入项输入项1,输入项,输入项2,);其其中中,“格格式式信信息息”与与printf的的用用法法相相似似,可可以以在在其其中中使使用用%和和转转换换字字符符来来指指定定数数据据的的输输入入方方式式。需需要要注注意意的的是是,输输入入项项必必须须使使用用地地址址,普普通通变变量量的的地地址址是是在在变量名前加取地址符变量名前加取地址符&。用用scanf输入整型数输入整型数输入整型数据的转换字符有输入整型数据的转换字符有d,o,x,u%d表示把数据按十进制整型输入;表示把数据按十进制整型输
17、入;%o表示把数据按八进制整型输入;表示把数据按八进制整型输入;%x表示把数据按十六进制整型输入;表示把数据按十六进制整型输入;%u表示把数据参数按无符号整型输入。表示把数据参数按无符号整型输入。与与printf函函数数类类似似,如如果果希希望望输输入入的的数数据据是是长长整整型型,需要在转换字符前加需要在转换字符前加l。例例2.4#includestdio.hvoidmain()intx,y,z1;longz2;scanf(%d%o%x%ld,&x,&y,&z1,&z2);printf(n%d,%d,%d,%ld,x,y,z1,z2);若输入为:若输入为:101010100000(回车符)(
18、回车符)显示结果为显示结果为10,8,16,100000注意注意(1)scanf读读入入一一组组整整数数时时,scanf扫扫视视输输入入信信息息,跳跳过过空空格格、tab或或换换行行,寻寻找找下下一一个个输输入入域域。一一个个输输入入域域就就是是一个连续的非空白字符的数字串。一个连续的非空白字符的数字串。例如,若输入为:例如,若输入为:78231920(回车符)(回车符)38则输入域有四个。则输入域有四个。(2)格格式式信信息息中中除除了了有有%开开始始的的转转换换说说明明,还还可可以以有有普普通通字字符符,只只是是这这些些字字符符不不是是显显示示在在屏屏幕幕上上的的,而而是是要要求求使使用用
19、者者在在输输入入数数据据时时,要要在在相相应应位位置置输输入入相相同同的的字字符符(除了空格、(除了空格、tab或换行符)。或换行符)。例例2.5#includestdio.hvoidmain()intx,y,z1,z2;scanf(x=%dy=%oz1=%xz2=%u,&x,&y,&z1,&z2);printf(n%d,%d,%d,%d,x,y,z1,z2);如果输入为:如果输入为:10101010(回车符)(回车符)则显示结果为是则显示结果为是0,484,2971,0正确的输入?正确的输入?2.2.3浮点数浮点数l浮点变量浮点变量 l浮点常量浮点常量 l用用printf显示浮点数据显示浮点
20、数据 l用用scanf输入浮点数输入浮点数 浮点变量浮点变量单精度浮点数(单精度浮点数(floatfloat)双精度浮点数(双精度浮点数(doubledouble)long double long double 定义定义浮点变量:浮点变量:float a,b;float a,b;double c,d;double c,d;单单精精度度浮浮点点数数和和双双精精度度浮浮点点数数两两者者在在计计算算机机上上的的表表示示方方式式是是完完全全相相似似的的,只只是是所所占占的的二二进进制制位位数数不不同同,单单精精度度浮浮点点数数的的有有效效数数字字(或或称称精精度度)和和取取值值范范围围与与双精度浮点数
21、不同。双精度浮点数不同。浮浮点点数数在在机机器器中中的的表表示示一一般般分分为为三三部部分分:符符号号位位、阶码、尾数。阶码、尾数。3232位位浮浮点点数数的的有有效效数数字字的的个个数数是是7 7位位十十进进制制数数字字,取取值值范范围围为为1010-38-38 10103838,6464位位浮浮点点数数的的有有效效数数字字的的个个数数是是1515位位十十进进制制数数字字,取取值值范范围围为为1010-308-308 1010308308。不不同同的的机器可能会有一些微小的差别。机器可能会有一些微小的差别。浮点常量浮点常量小数表示法小数表示法127.3科学计数法科学计数法1.273102在在
22、C语言中,实际上也是用这两种方式,只不过语言中,实际上也是用这两种方式,只不过102用用E+2表示。表示。C程序中的浮点常数由整数部分、小数部分、指数程序中的浮点常数由整数部分、小数部分、指数部分构成。部分构成。浮点常量构成规则是:浮点常量构成规则是:(1)整整数数部部分分可可以以不不写写,小小数数部部分分也也可可以以不不写写,但但不不能能同同时不写。时不写。(2)指数部分可以省略(相当于使用小数表示法)指数部分可以省略(相当于使用小数表示法)(3)若有指数部分,若有指数部分,e(或(或E)两边都至少有一位数。)两边都至少有一位数。(4)指指数数的的数数字字必必须须是是整整数数(范范围围为为1
23、到到3位位的的整整数数),可可以为负或正,正号可以省略。以为负或正,正号可以省略。例如,例如,4.50E3、1.0、1.、.1234、123.4都都是是合合法法的的浮浮点常量。点常量。注意:注意:浮浮点点常常量量在在存存储储时时按按double类类型型存存储储,即即占占32位(位(bit)。)。浮浮点点常常量量也也象象整整型型常常量量一一样样,如如果果浮浮点点常常量超过机器所能表示的范围,则会发生溢出。量超过机器所能表示的范围,则会发生溢出。浮浮点点溢溢出出也也不不会会使使程程序序出出错错,而而是是得得到到一一个非正确的值个非正确的值。%f显示小数表示的普通浮点数显示小数表示的普通浮点数%e显
24、示科学记数法表示的浮点数显示科学记数法表示的浮点数输出双精度(输出双精度(double)类型时,还需要在转换字符)类型时,还需要在转换字符前加上字母前加上字母l。输出浮点数时控制输出域宽和有效位:输出浮点数时控制输出域宽和有效位:在在%与与f(或或e)之之间间加加上上两两个个数数字字并并在在两两个个数数字字之之间间加一个句点加一个句点“.”。例如,例如,%10.3f表示输出格式是域宽表示输出格式是域宽10,有效位,有效位3。注意注意:域宽的含义、缺省有效位、与数据本身的域宽的关系域宽的含义、缺省有效位、与数据本身的域宽的关系用用printf显示浮点数据显示浮点数据例例2.6#includest
25、dio.hvoidmain()floatx;doubley;x=12.3456789;y=987654.321098;printf(n%e,%le,x,y);printf(n%f,%lf,x,y);printf(n%.3f,%.3lf,x,y);printf(n%14.3f,%14.3lf,x,y);printf(n%-14.3f,%-14.3lf,x,y);printf(n%8.3f,%8.3lf,x,y);printf(n%14f,%14lf,x,y);例例2.7voidmain()doublex,y;scanf(%lf%le,&x,&y);printf(n%lf,%lf,x,y);pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基本 数据 描述
限制150内