1、Teacher teaching designCONTENTS 目 录C语言中数据类型标识符常量案例分析 仿真演练变量明确考点 交流提升C语言中数据类型PART 01数据类型众所周知,计算机内部使用二进制形式来存放各种信息,对不同的信息有着不同的解释,于是人们对信息的存放作出规定,即数据的组织形式。那么在C语言中,是如何规定数据的存放形式的呢?为了解决这一问题,C语言规定,程序中用到的任何一个数据类型必须首先指定其数据类型。于是C语言就根据不同的信息的存放形式及功能的不同,把数据划分为:基本类型(标准类型、构造类型、指针类型、空类型如图所示:面对不同的对象或不同的信息出现、存放形式的不同,于是
2、又把数据分为常量与变量变量、常量需要有名字,命名是要讲规则的,C语言中,标识符是用来标识变量名、符号常量名、文件名等的有效字符序列。所以先介绍标识符的概念。单精度型 双精度型 数组类型 构造类型 数据类型 整型 实型(浮点型)字符型 枚举类型 结构体类型 共用体类型 标准类型 指针类型 空类型 图 2.1 标识符PART 02标识符语言规定标识符只能由 字母、数字和下划线三种字符组成,且第一个字符必须为为母或下划线。例如:sum,day,_class,student_No,a1等都是合法的标识符。2a_q,a#_12,$abc等都是非法的标识符。注意:1标识符不能和C语言的关键字重名。如:if
3、(C语言的关键字),main(C语言的关键字)都是不合法的标识符。2在C语言中,大写字母和小写字母被认为是两个不同的字符。如:max和MAX是两个不同的标识符。3ANSI C标准没有规定标识符的长度,但各个C编译系统都有自己的规定。在Turbo C中规定标识符的长度不超过32个字符,如果超过只有前32个字符有效。常量PART 03常量 程序在运行的过程中,其值不能被改变的量称为常量。常量又可分为直接常量(常数)、符号常量。从数据类型结构上分为整型常量、实型常量、字符常量、字符串常量。、常数是各种不同类型的具体数值,用数据本身的值直接表示。如整型常数据120,实型常数3.14,字符常数A,字符串
4、常数“computer”。、符号常量(标识符形式的常量)符号常量则用一个标识符来代表一个常量,相当于为常量取了一个名字,但仍保持常量的性质,即它的值在运行过程中不能被改变。符号常量名的取名规则是:以字母开头,由字母、数字和下划线组成,最好用大写字母表示,且不能与系统关键字相同。符号常量的定义分为以下两种形式。1)使用宏定义命令定义格式是:#define 或为#define 例如:#define PI 3.14159常量2)使用const命令定义格式是:const =;const float PI=3.1415926;const int N=10;const int x=10,y=20;例如:有
5、如下程序#define PI 3.1415926#define R 2.0main()float s,c;s=PI*R*R;c=2.0*PI*R;printf(s=%f,c=%fn,s,c);在程序预处理时,凡是出现标识符PI的地方都将用数据3.1415926来替换,出现标识符R的地方都将用数据2.0来替换。如果用户要修改PI,R的值,则只在定义处修改即可。变量PART 04变量、变量的定义变量是指程序在运行的过程中,其值能被改变的数据称为变量。在使用前对变量进行定义,定义变量的数据类型和名称,甚至变量的初始值。变量可分为整型变量、实型变量、字符变量。注:知识拓展在程序中,数据连同其存储空间被
6、抽象为变量。一个变量有一个名字,占一定的存储单元,在该存储单元中存储变量的值。变量名代表某个存储空间及其所存储的数据。存储空间首地址即为变量地址。程序中引用变量,实际上是对指定的存储空间的引用,因此必须先分配存储空间才能引用,即变量在引用前须先定义变量的类型,编译时就会根据指定的类型分配其一定的存储空间,并决定数据的存储方式及操作方式。如:double a;a 代表8个连续的存储单元,空间中的数据为变量值。变量、变量的取名规则以字母或下划线开头,由字母、数字和下划线组成,不能超过32个字符,不能用C语言中的关键字作为变量名,也不要与符号常量名和函数名同名。、定义变量的格式是:;初始化定义格式是
7、:=;例如:变量的定义(一般应在函数一开始就进行定义。)int a,b;/*定义两个整型变量a和b*/unsigned short c,d,f;/*定义三个无符号短整型变量c、d、f*/float x,y,z=12.56;/*表示定义了三个变量但只是将12.56赋给了变量z*/注:1、一个变量应有确定的类型,在一个程序中一个变量只能有一个类型,不能先后被定义为两个或多个类型。2、不同类型的变量其存储单元的大小不同。3、对几个变量赋同一个初值,如果事先未定义好则不能采用连续赋值的形式,如语句int a=b=c=2;是错误的,应该写成int a=a,b=2,c=2;案例分析 交流提升PART 05
8、案例分析 交流提升例1、C语言中定义了一个变量,该变量代表内存中的一个()A)区域 B)单元 C)地址 D)容量【解析】C语言中定义的一个变量代表内存中的一个地址,也就是在内存中分配给这个变量一个单元,用来存放变量的值,这个内存单元的大小根据变量的类型不同而不同,所以本题答案为C。例2、C语言中最简单的数据类型包括()A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型【解析】C语言中的数据类型有基本类型、空类型、指针类型、构造类型,但基本类型主要是指整型、实型、字符型三种,所以本题答案为B例3、下面符合C语言定义变量的格式是()A)int
9、a:=b;B)int a=b=c=2;C)int 18.5%3;D)int a=2,b=2,c=2;【解析】定义变量的基本语句格式是:;如果在定义的同时又要为变量赋初值,格式是:=;知道选项A中“:=”不是赋值号“=”;C语言中规定对几个变量赋同一个初值,如果事先没有定义好变量类型,则不能采用连续赋值的形式,所以选项B错误;选项C不符合变量定义形式,所以错误;所以本题答案为D。案例分析 交流提升例4、以下选项中属于C语言的数据类型是()A)复数型 B)字符型 C)双精度型 D)集合型【解析】C语言中基本数据类型有整型、实型、逻辑型,而双精度型只是属于实型中一种形式,而不能为单独的数据类型,由此
10、可知本题的答案为B。例5、已知每千克牛肉的价格为20元,求买6斤需要多少钱。main()float sum;/*变量定义*/sum=20.0*6;/*给变量赋值*/printf(“sum=%dn”,sum);/*输出*/程序运行结果:sum=120.000000分析:程序中的20.0和6都是常量,按其字面形式又可区分为不同类型,12.0是实型常量,6是整型常量。案例分析 交流提升例6、符号常量的使用。#define PRICE 20/*宏定义语句*/main()float num,sum;/*变量定义*/num=6.0;sum=num*PRICE;printf(“sum=%f”,sum);/*
11、输出*/程序运行的结果为:sum=120.000000分析:程序中用标示符PRICE代表来代表价格常量20。其中#define是一条预处理命令(预处理命令都以#开头),称为宏定义命令(在后面章节中进一步介绍),其作用是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。其目的是方便程序的阅读。案例分析 交流提升例7 分析如下程序main()int a=45,b=32,sum=0;svm=a+b;printf(“sum=%d”,sum);说明:(1)本例第5行错将sum写为svm,程序编译时
12、,会报告svm未定义。如果C语言中没有对变量做”先定义”的要求,程序执行结果为0。错误就很难被编程者发现。(2)变量定义就是指定变量的类型,便于在编译时,检查对该变量的运算是否合法。仿真演练 体验探索PART 06仿真演练 体验探索1、在C程序中,可以作为用户标识符的一组标识符是()。A)void define WORD B)as_b3 _224 Else C)Switch -wer case D)4b DO SIG2、下列选项中,是C语言提供的合法的关键字的是()。A)swicth B)cher C)default D)Case3、C语言中定义了一个变量,该变量代表内存中的一个()。A)区域
13、 B)单元 C)地址 D)容量4、这段程序中的常量有:(多选)#define PI 3.14 main()int sum;sum=10+15;printf(sum=%dn,sum);printf(result is 25n);这段程序中常量有:A.10 B.sum C.15 D.25 E.main F.PI仿真演练 体验探索5、指出下面哪些是保留字(关键字):(多选)A.char B.abc C.printf D.int E.float F.define G.include H.PI 6、符号常量的值在其作用域内不能改变,也不能再被赋值。如:#define PRICE 20main()PRICE=25;7、以下程序的输出结果是:#include main()int a=2,b=3,sum=0;sum=sum+a*b+c;printf(sum=%d,sum);8、以下程序的输出结果是:#include main()int a=2,b=3,s=0;float a=4.8;s=s+a*b+c;printf(s=%d,s);