《C语言二级考试专用.ppt》由会员分享,可在线阅读,更多相关《C语言二级考试专用.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教学内容:教学内容:3.1 3.1 数据类型数据类型 3.2 3.2 整型数据整型数据 3.3 3.3 实型数据实型数据 3.4 3.4 字符数据字符数据教学要求:教学要求:1.1.掌握掌握C C语言数据类型分类。语言数据类型分类。2.2.掌握整型数据、实型数据、字符数据掌握整型数据、实型数据、字符数据使用规则。使用规则。3.3.掌握掌握C C语言常量、变量的使用。语言常量、变量的使用。第第3 3章章 语言数据类型语言数据类型3.13.1 数数 据据 类类 型型C语言提供的数据结构,是以数据类型形式出现的。语言提供的数据结构,是以数据类型形式出现的。一、数据类型分类一、数据类型分类 1.基本类
2、型基本类型 整型整型 、实型(又称浮点型)、实型(又称浮点型)、字符型字符型 、枚举型、枚举型、空类型空类型2.构造类型构造类型 数组类型数组类型 、结构类型、结构类型 、共用类型、共用类型3.指针类型指针类型C语语言言中中的的数数据据,有有常常量量和和变变量量之之分分,它它们们分分别别属属于于上上述这些类型。述这些类型。二、二、基本数据类型基本数据类型 1.1.基本数据类型:基本数据类型:整型整型 、实型(又称浮点型)、双精度实型、字符型、实型(又称浮点型)、双精度实型、字符型、无值型(空类型)。无值型(空类型)。2.2.基本数据类型的标识符:基本数据类型的标识符:intint、floatf
3、loat 、doubledouble、charchar、voidvoid 3.3.类型说明符类型说明符 除无值型以外的除无值型以外的4 4种基本数据类型可以带有说明前缀种基本数据类型可以带有说明前缀。类型说明符有以下类型说明符有以下4 4种:种:(1 1)signedsigned (2 2)unsigned unsigned (3 3)longlong (4 4)shortshort 三、常量和变量三、常量和变量 1.常量的概念常量的概念 在程序运行过程在程序运行过程中,其值不能被改变的量称为常量。中,其值不能被改变的量称为常量。常量的类型,可通过书写形式来判别。常量的类型,可通过书写形式来判
4、别。常量的分类:常量的分类:表达形式:表达形式:(1 1)整型常量)整型常量 6 6、432432、7654376543、546783424 546783424 (2 2)实型常量)实型常量 2.23 2.23、546.2487615247 546.2487615247、3.057439 3.057439+5+5 (3 3)字符常量)字符常量 a a 、c c 、6 6 、M M (4 4)符号常量)符号常量 WHIWHI#define WHI I am a student.WHIWHI是符号常量是符号常量 例例3.1输出输出整型常量整型常量、字符常量的值、字符常量的值 main()print
5、f(“%dn”,349);printf(“%dn”,-9);printf(“%Cn”,M );运行结果:运行结果:349 -9 M 例例3.2 符号常量符号常量WHI的使用。的使用。#define WHI I am a student.main()printf(“I am a student.n”);printf(%s n,“I am a student.”);printf(%s n,WHI );运行结果:运行结果:I am a student.I am a student.I am a student.格式控制字格式控制字符串符串中的普通中的普通字字符,符,照原样输出照原样输出 2.变量的概
6、念变量的概念 在在程程序序运运行行过过程程中中,其其值值可可以以被被改改变变的的量量称称为为变变量量。变量的三个要素:变量的三个要素:(1)变量名。每个变量都必须有一个名称。)变量名。每个变量都必须有一个名称。(2)变变量量值值。在在程程序序运运行行过过程程中中,变变量量值值存存储储在在内内存中。在程序中,通过变量名来引用变量的值。存中。在程序中,通过变量名来引用变量的值。(3)变量的类型)变量的类型 例如:例如:a (2 2个字节个字节)变量的类型变量的类型 int 变量名字:变量名字:a 变量的值:变量的值:23 在内存中存储单元占在内存中存储单元占16位位0 0 0 0 0 0 0 0
7、0 0 0 1 0 1 1 1二进制数值二进制数值例例3.3 3.3 输出变量的数值。输出变量的数值。main()int x,y;x=5;y=3;printf(“%d-%dn”,x,y);x=1;y=2;printf(“%d-%dn”,x,y);运行结果运行结果:5-3 1-2x、y是整型变量是整型变量每个变量分配每个变量分配2个字个字节存储单元节存储单元将数值将数值5、3分别存放到分别存放到x、y变量的变量的存储单元存储单元x、y变量的值变量的值重新赋值重新赋值 3.变量的定义与初始化变量的定义与初始化(1)在在语语言言中中,要要求求对对所所有有用用到到的的变变量量,必必须须先先定义、后使用
8、。系统才可知道分配多大的存储空间。定义、后使用。系统才可知道分配多大的存储空间。变量定义的一般格式:变量定义的一般格式:存储类型存储类型 数据类型数据类型 变量名变量名,变量名变量名2;例如例如:int a1,a2,a3;(2)变变量量初初始始化化:在在定定义义变变量量的的同同时时进进行行赋赋初初值值的的操作。变量初始化的一般格式:操作。变量初始化的一般格式:存存储储类类型型 数数据据类类型型 变变量量名名=初初值值,变变量量名名2=初值初值2;例如例如:float a1=2.5,a2=5.23,a3=45.43;4.标识符命名规则标识符命名规则语言中,用语言中,用标识符标识符来区分不同来区分
9、不同文件、函数、文件、函数、变量变量。(1)标标识识符符有有效效字字符符:只只能能由由字字母母、数数字字和和下下划划线线组成,且以字母或下划线开头。组成,且以字母或下划线开头。(2 2)标标识识符符有有效效长长度度:TC TC V2.0V2.0标标识识符符的的有有效效长长度度为为个个字字符符。随随系系统统而而异异,但但至至少少前前个个字字符符有有效效。如果超长,则超长部分被舍弃。如果超长,则超长部分被舍弃。例例如如student11student11和和student12student12的的前前个个字字符符相相同同,有有的的系统认为这两个变量,是一回事而不加区别。系统认为这两个变量,是一回事
10、而不加区别。(3 3)C C语言的关键字不能用作变量名。语言的关键字不能用作变量名。(4 4)标标识识符符命命名名通通常常应应选选择择能能表表示示数数据据含含义义的的英英文文单单词词(或或缩缩写写)作作变变量量名名,或或汉汉语语拼拼音音字字头头作作变变量量名名。通过变量名就知道变量值的含义通过变量名就知道变量值的含义,做到做到“见名知意见名知意”。例如例如:name:name xm xm 姓名姓名 sex sex xb xb 性别性别 age age nl nl 年龄年龄 salary salary gz gz 工资工资 注注意意:C C语语言言对对英英文文字字母母的的大大小小敏敏感感,即即同
11、同一一字字母母的的大大小小写写,被被认认为为是是两两个个不不同同的的字字符符。变变量量名名totaltotal与与变变量量名名TOTALTOTAL、ToTaLToTaL、totAltotAl等不是同一个变量等不是同一个变量 习习惯惯上上,变变量量名名和和函函数数名名中中的的英英文文字字母母用用小小写写,以以增加可读性。增加可读性。3.2 3.2 整整 型型 数数 据据一、整型变量整型变量 1.1.整型变量分为类:整型变量分为类:(1)基本整型()基本整型(int)(2)短整型()短整型(short int)(3)长整型()长整型(long int)(4)无符号整型。无符号型又分为)无符号整型。
12、无符号型又分为(3种):unsigned int unsigned short unsigned long 二、整型变量占用内存字节数与值域二、整型变量占用内存字节数与值域 1.1.整型变量占用的内存字节数整型变量占用的内存字节数 在在1616位操作系统中占用位操作系统中占用:int 型变量型变量 占占 2个字节个字节 值域占值域占16位位 short 型变量型变量 占占 2字节字节 值域占值域占16位位 long 型变量型变量 占占 4字节字节 值域占值域占32位位 2.2.不同类型的整型变量值域不同类型的整型变量值域 占用内存位数为占用内存位数为 n n 的整型变量其值域:的整型变量其值域
13、:有符号为有符号为:-2n-1 (2n 1-1)无符号为:无符号为:0(2n-1)三、各种整型变量的值域范围各种整型变量的值域范围 int 型变量型变量(值域为值域为16位位):-32768 32767 short int(值域为值域为16位位):-32768 32767 long int(值域为值域为32位位):-2147483648 2147483647 unsigned int(值域为值域为16位位):0 65535 Unsigned short int(值域为值域为16位位):0 65535 Unsigned long int(值域为值域为32位位):0 4294967295 4.整型
14、常量(整常数)三种表示形式整型常量(整常数)三种表示形式(1 1)十进制十进制 例如:例如:10 、36(2 2)八进制八进制(以(以数字数字 0 0 开头)开头)例如:例如:012(十进制(十进制10)(3 3)十六进制十六进制(以(以数字数字 0 0+小写字母小写字母x开头)开头)例如:例如:0 0 x3636(十进制(十进制54 54)5.整型常量分类整型常量分类 (1 1)基本整型:)基本整型:其数据范围其数据范围 -32768 32767 (与与 int 型变量一样)型变量一样)(2 2)长整型(在数值后面加字母)长整型(在数值后面加字母 L L(小写字母(小写字母l l):):其取
15、值范围可达:其取值范围可达:-231 (231-1)例如:例如:32769、123L、315L 等。等。6.整型数据在内存中的存放,数值是以补码表整型数据在内存中的存放,数值是以补码表示的。示的。一个正数的补码与原码相同;一个正数的补码与原码相同;一个负数的补码求法一个负数的补码求法:原码的二进制形式,取:原码的二进制形式,取反求得反码,再加反求得反码,再加 1 1,得到负数的补码。,得到负数的补码。例如:例如:-8 的的原码原码1 0 00 00 00 00 00 10 00求反码求反码1 1 11 11 11 11 11 01 11补码补码11 11 11 11 11 11 10 00例例
16、3.4 输出不同进制整型常量输出不同进制整型常量#includemain()printf(“0 x80-%d n,0 x80);printf(“0200-%d n,0200);printf(128-%d n,128);printf(128-%o n,128);运行结果运行结果:0 x80-128 0200-128 128-128 128-200不输出前缀不输出前缀数字数字 以数字以数字开头开头7.类型匹配规则类型匹配规则类型匹配规则为:类型匹配规则为:一个整型常量,可以赋给能容纳下其值的整型变量。一个整型常量,可以赋给能容纳下其值的整型变量。例例如如,其其值值在在 -(-)的的整整型型常常量量
17、,可以赋给可以赋给 int 型变量和型变量和 long int 型变量;型变量;其其值值在在 -(-)的的整整型型常常量量,就就只只能能赋给赋给 long int 型变量。型变量。注注意意:常常量量无无 unsigned 型型。但但一一个个非非负负整整型型常常量量,只只要要它它的的值值不不超超过过相相应应变变量量的的值值域域(即即取取值值范范围围),也也可可以赋给以赋给 unsigned 型变量。型变量。3.3 3.3 实实 型型 数数 据据 1.实型常量(实数,又称浮点数)表示形式实型常量(实数,又称浮点数)表示形式:(1)十进制形式)十进制形式 例如例如:3.14、9.8 (2)指数形式)
18、指数形式 E(e)例如例如:3.02+5 34.42367750+7 实型常量不分实型常量不分 float 型和型和 double 型。型。一个实型常量,可以赋给一个实型变量(一个实型常量,可以赋给一个实型变量(float型或型或double型)。型)。例例3.5 实型常量的使用实型常量的使用#include main()printf(a=%fn,32.766);printf(“b=%en,1.7e+37 t);运行结果运行结果:a=32.766000 b=1.700000e+037 2.实型变量分类实型变量分类 (1)单精度型)单精度型变量变量 float型型变量变量 占占4 字节(字节(3
19、2位)位)提供提供 7 位有效数字位有效数字 值域:值域:(3.4e-383.4e+38)(2)双精度型)双精度型变量变量 double型型变量变量 占占 8 个字节个字节(64位位)提供提供 1516位有效数字位有效数字 值域:值域:(1.7e-3081.7e+308)4.实型数据在内存中的存放形式。实型数据在内存中的存放形式。一个单精度实型数据(一个单精度实型数据(float)在在内存中内存中占用个字占用个字节(节(32位)位)存放数据的数存放数据的数值范围:值范围:(3.4e-383.4e+38)数数值的有效数字值的有效数字 7位位 例如数例如数值值:56783.4562 0.56783
20、4562e+5 在内存中的浮点在内存中的浮点数数存放形式存放形式:+5 +567834562 0 8 31 前前8位位 后后24位位例例3.6 运行以下程序,查看运行结果。运行以下程序,查看运行结果。数值的有效数值的有效数字数字 7 7 位位尾数尾数70317031不是不是有效数值有效数值例例3.7 实型变量的使用实型变量的使用#includemain()float x,y,z;x=42.67;y=12.3;z=x/y;printf(“z1=%fn,z);z=y/x;printf(“z2=%fn,z);程序运行结果:程序运行结果:z1=3.469106 z2=0.288259小数点后小数点后6
21、 6位位例例3.8 实型变量的使用数值范围实型变量的使用数值范围例例3.8 实型变量的使用数值范围实型变量的使用数值范围程序运行结果:程序运行结果:整数部分占整数部分占39位位小数部分占小数部分占39位位3.43.4 字字 符符 数数 据据1.字符常量的定义字符常量的定义用一对单引号括起来的单个字符称为字符常量。用一对单引号括起来的单个字符称为字符常量。例如例如:A、7、等。等。2.转义字符转义字符语言还允许使用一种特殊形式的字符常量,就是语言还允许使用一种特殊形式的字符常量,就是以反斜杠以反斜杠“”开头的转义字符。开头的转义字符。n b r t f 0 ”v ddd xhh 注意:注意:如果
22、反斜杠或单引号本身作为字符常量,如果反斜杠或单引号本身作为字符常量,必须使用转义字符:必须使用转义字符:、3.以以“”开头的字符在开头的字符在printf 函数中控制输出格式函数中控制输出格式:n换行换行t横向跳格(下一个输出区横向跳格(下一个输出区)v竖向跳格竖向跳格b退格退格r回车回车f走纸换页走纸换页反斜杠字符反斜杠字符 单引号单引号 ddd1到到3位位8进制数所代表的字符。如:进制数所代表的字符。如:101=Axhh1到到2位位16进制数所代表的字符。进制数所代表的字符。例例3.9 用转义字符输出字符和不可打印字符。用转义字符输出字符和不可打印字符。main()printf(“ABC
23、tabc txyz n”);printf(“abcbxyz n”);程序运行结果如下程序运行结果如下:4.字符变量字符变量(关键字为关键字为 char)字符变量类型,占用字符变量类型,占用1字节字节内存单元。内存单元。(1)变量值的存储变量值的存储 将一个字符常量存储到一个字符变量中,实际上是将一个字符常量存储到一个字符变量中,实际上是将该字符的将该字符的 ASCII 码值(无符号整数)存储到内存单码值(无符号整数)存储到内存单元中。元中。(2)变量值的特性变量值的特性字符数据在内存中存储的是字符的字符数据在内存中存储的是字符的 ASCII 码(一个码(一个无符号整数),其形式与整数的存储形式
24、一样。无符号整数),其形式与整数的存储形式一样。例如:例如:char ch1,ch2;/*定义变量:定义变量:ch1,ch2*/ch1=a;/*给字符变量赋值给字符变量赋值*/ch2=b;字符数据字符数据 a 、b 的的 ASCII 码值码值97、98(一个无符号整数)分别存放在变量(一个无符号整数)分别存放在变量ch1,ch2所占所占用内存存储单元中,其形式与整数的存储形式一样。用内存存储单元中,其形式与整数的存储形式一样。ch1 ch29798(3)一个字符型数据,既可以)一个字符型数据,既可以字符形式字符形式输出,也可输出,也可 以以整数形式整数形式输出。输出。例例3.10字符变量的字符
25、形式输出和整数形式输出字符变量的字符形式输出和整数形式输出。main()char ch1,ch2;ch1=a;ch2=b;printf(“ch1=%c,ch2=%cn”,ch1,ch2);printf(“ch1=%d,ch2=%dn”,ch1,ch2);程序运行结果:程序运行结果:ch1=a,ch2=b ch1=97,ch2=98(4)允许对字符数据进行算术运算,此时就是对它允许对字符数据进行算术运算,此时就是对它们的们的ASCII码值进行算术运算。码值进行算术运算。例例3.11 字符数据的算术运算。字符数据的算术运算。main()char ch1,ch2;ch1=a;ch2=B;/*等价于等
26、价于 ch1=97;ch2=66;*/printf(“ch1=%d”,ch1-32);/*字母的大小写转换字母的大小写转换*/printf(“ch2=%d n”,ch2+32);printf(“ch1=%c,ch2=%cn”,ch1-32,ch2+32);运行结果:运行结果:ch1=65,ch2=98 ch1=A,ch2=b例例3.12 用字符形式输出一个大于用字符形式输出一个大于256的数值的数值main()char ch1=a;printf(ch1+200=%dn,ch1+200);printf(ch1+200=%cn,ch1+200);printf(ch1+256=%dn,ch1+256
27、);printf(ch1+256=%cn,ch1+256);程序运行结果程序运行结果:ch1+200=297 ch1+200=)ch1+256=353 ch1+256=a 5.字符串常量字符串常量(1)字符串常量的概念和字符串长度字符串常量的概念和字符串长度字符串常量字符串常量:是用一对双引号括起来的若干字符序列。是用一对双引号括起来的若干字符序列。字符串长度字符串长度:字符串中字符的个数称为。字符串中字符的个数称为。空串空串:长度为长度为0的字符串(即一个字符都没有的字符串)的字符串(即一个字符都没有的字符串),表示为,表示为“”“”(一对紧连的双引号)。(一对紧连的双引号)。例如字符串常量
28、例如字符串常量:“How do you do.”长度为长度为14(空格也是一个字符)(空格也是一个字符)“Good morning.”长度为长度为13 如果反斜杠和双引号作为字符串中的有效字符,则必如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符。例须使用转义字符。例 C:msdosv6.22 C:msdos v6.22 I say:Goodbye!I say:Goodbye!例例3.13 输出字符串常量输出字符串常量#includemain()char *p;/*定义一个指针变量定义一个指针变量*/p=I am a student.;printf(%sn,p);printf(%s
29、n,I say:Goodbye!);运行结果:运行结果:I am a student.I say:Goodbye!6.字符串的存储字符串的存储C语言规定:语言规定:在存储字符串常量时,由系统在字符串的末尾自动加在存储字符串常量时,由系统在字符串的末尾自动加一个一个0作为字符串的结束标志。作为字符串的结束标志。如果有一个字符串为如果有一个字符串为“CHINA”,则它在内存中的实,则它在内存中的实际存储如下所示:际存储如下所示:C H I N A 0最后一个字符最后一个字符0是系统自动加上的,它占用是系统自动加上的,它占用字节字节而非字节内存空间。而非字节内存空间。7.字符常量字符常量 A 与字符串常量与字符串常量 A 的区别:的区别:(1)定界符不同:)定界符不同:字符常量使用字符常量使用单引号单引号A,而字符串常量使用而字符串常量使用双引号双引号 ;(2)长度不同:)长度不同:字字符符常常量量的的长长度度固固定定为为1,而而字字符符串串常常量量的的长长度度,可可以是以是0,也可以是某个整数;,也可以是某个整数;(3)存储要求不同:)存储要求不同:字符常量存储的是字符的字符常量存储的是字符的ASCII码值,码值,而而字字符符串串常常量量,除除了了要要存存储储有有效效的的字字符符外外,还还要要存存储储一个结束标志一个结束标志 0 。同同 学学 们们 再再 见见 数数 据据 类类 型型
限制150内