c语言数据表现形式教案,02-《C语言程序设计》教案-第二章-基本数据类型和表达式(1).doc...

253b171540df25e1b84436cbe50dfc72.gif02-《C语言程序设计》教案-第二章-基本数据类型和表达式(1).doc

C语言程序设计课程教案表授课题目第二章 基本数据类型和表达式(1)课时安排2授课时间教学目的和要求1掌握各种数据类型的关键字、常量及变量的定义2熟悉各种类型常量、变量的定义形式3了解各种数据类型在计算机中所占的存储空间教学内容1基本内容C语言的数据类型、常量、变量2重点变量定义的形式3难点指针变量讲课进程和时间分配1、导入(3分钟)C语言是用来书写程序的,而通常程序要对数据进行操作处理处理的对象是数据通过运算符和表达式进行操作。因此本章在C语言程序设计这门课程占有非常重要的地位。2、C语言数据类型 (12分钟)数据类型基本类型构造类型指针类型空类型整型实型字符型长整型整型、短整型无符号整型单精度双精度数组结构体共用体枚举型(1)C语言数据类型分类(2)各种数据类型的关键字,及在计算机内存中所占大小(以各种不同的编译环境为例)类型名关键字所占字节(B)TCRarnu_cVC整型int224短整型short int222长整形long int444无符号整型unsigned int2246550010图2-5指针变量的值 无符号长整型unsigned long444无符号短整型unsigned short222单精度float444双精度double888字符型char111指针类型*244(3)printf函数输出语句初步(在第三章在详细讲解)一般格式为printf(“控制格式”,输出参数1,输出参数2输出参数n); 作用在屏幕上输出引号内的信息或按控制格式所规定的格式输出数据。 为将要显示的数据指定需要输出的格式,需要用到以下不同的转换字符。具体含义如下 d 表示数据按十进制整型数输出; f 表示数据按十进制带小数点的形式输出; o 表示数据按十进制八进制整型数输出; x 表示数据按十进制十六进制整型数输出; c 表示数据按字符型数输出; u 表示数据按十进制无符号整型数输出;引入常量与变量的讲解C语言中的数据有变量与常量,它们分别属于上述这些类型。3常量(25分钟)常量的类型整型常量、实型常量、字符常量、字符串常量和符号常量。(1)整型常量 1)十进制整数取值范围09。如1236,-234,0。 2)八进制整数以0开头的数是八进制数,取值范围07如011表示八进制数的118。 3)十六进制整数以0 x开头的数是十六进制数,取值范围09,AF或af。如0 x1F表示十六进制数的1F16 ,十进制数为31。通过下面的例子使学生进一步熟悉整型常量的三种表示方法。【例2.1】 三种进制表示方法的转换。 main() int x1246,y01246,z0 x1246; printf(d,d,dn,x,y,z); /* d以十进制格式符输出*/ printf(o,o,on,x,y,z); /* o以八进制格式符输出*/ printf(x,x,xn,x,y,z); /* x以十六进制格式符输出*/ 运行结果 1246,678,4678 2336,1246,11106 4de,2a6,1246 (2)实型常量C语言实型常量只使用十进制数。有以下两种形式1)十进制数形式 它是由正负号、整数部分、小数点、小数部分组成,如 3.14159,-7.2,8.9等都是十进制形式。 2)指数形式6550010图2-5指针变量的值 它是由正负号、整数部分、小数点、小数部分和字母E或e后面带正负号的整数组成。如十进制数180000.0(1.8105)用指数法可以表示为1.8e5,其中1.8称为尾数,5称为指数。0.00123用指数法可以表示为1.23E-3。 需要学生注意的地方举例加以强调(1)字母e或E之前(即尾数部分)必须有数字。如e-3,e5是不合法的。(2)e或E后面的指数部分必须是整数。如9.8e3.1是不合法的。(3)实型常量的后缀,用F(或f)表示单精度;用后缀L(或l)表示双精度型。如1.2345e-3f,表示单精度数;2.11e5L,表示双精度数。(3)字符型常量字符型常量是由一对单引号括起来的单个字符,在内存中占1个字节。转义字符也可以作为一个字符。例如A,b,2,,;等都是有效的字符型常量。说明一个字符型常量的值是该字符集中对应的ASCII编码值。例如,字符常量09的ASCII编码值是4857。显然0与 数字0是不同的。让学生记住几个特殊的字符的ASCII码值A ASCII为65,a ASCII 为97,大写字母的ASCII比小写字母的小32,B ASCII为66,b ASCII为98,其他字母字符以此类推。(4)字符串常量字符串常量是由一对双引号括起来的字符序列,若字符序列串长为N,则在内存占用N1个内存单元,字符串常量在内存中存储时,系统自动加上串尾标记“0”例如字符串CHINA,它在内存中实际存放的形式如下图CHINA0 说明“a”与a是不同的。“a”是字符串常量,在内存占用2个字节长度。字符a本身一个字节,加一个转义符串尾标记0,又占用一个字节。而a是字符常量,内存中只存储字符a的ASCII值,所以只占用1个字节长度。通过说明使学生能清晰地区别字符串常量与字符型常量。(5)符号常量用一个特定的符号来代替一个常量或字符串,这个符号称为符号常量。符号常量一般用大写字母表示,以便与其它标识符相区别。 符号常量的一般定义形式define 符号常量 常量(或“字符串”)例2-2符号常量应用define PI 3.14main float area,r; r10; arear*r*PI; printfareafn,area;结果area314.000000根据例题总结出符号常量的优点如下(1)含义清楚、见名知意。(2)修改方便、一改全改。4变量(35分钟)(1)变量的概念变量是指在程序运行过程中可以被改变的某个标识符的值。C语言中的变量可以分为以下几种类型,如图2-3所示。使用变量时会涉及到变量名、变量类型与值、变量的地址3个方面的内容。1)变量名(又称标识符名)。C语言中的变量名命名规则与标识符定义规则相同。由字母或下划线开头,其后可以用字母、数字或下画线组成的18字符。一般变量名由小写字母表示。例如a、b、x、y、x1、max1、stu_list2)变量的类型与值。在程序运行中,变量必须有一个确切的类型和具体值。所以,需要先确定变量的类型与值。定义不同类型的变量,在内存占用不同的字节(参见表2.1)。例如int型变量占用2个字节,float型占用4个字节。3)变量的地址。即存放变量的内存地址,又为变量的指针。(2)变量的定义与初始化在C语言中,无论使用哪一种类型变量,都要“先定义”,后“使用”。所谓定义,是给程序中用到的变量定义一个类型即取值范围;初始化,就是在定义变量的同时,给变量赋初值。变量定义格式为 数据类型 变量名表; 例int a; /*定义变量a为int整型*/ a3; /*给变量a赋值3 */ 或int a3; /*定义变量a的同时,给a赋值3,又称给变量初始化*/通过下图说明变量名、变量在内存中占据的存储单元、变量值三者关系。int a3;提醒学生注意变量名在程序运行的过程中不会改变,而变量的值可以改变。(1)整型变量整型变量用来存放整型数据,其定义的关键字如下 1)基本型用int表示(2字节) 2)短整型用short int或short表示(2字节) 3)长整型用long int或long表示(4字节) 4)无符号整型 无符号整型 用unsigned int或unsigned表示(2字节) 无符号短整型用unsigned short int或unsigned short表示(2 字节) 无符号长整型用unsigned long int或unsigned long表示(4字节)一个整型变量在内存中占两个字节(16bit),则int型变量数值的表示范围是-3276832767,unsigned int变量数值的表示范围为065535。图2-4 有符号与无符号整型数【例2.3】输出变量的值。 main int i,j; i30000; j40000; printf“d,dn”,i,j; 运行结果30000,-25536 可以看出,结果不正确。通过上述例题分析出错原因并给出正确输出的方法int变量的最大存储值为32767。因此,赋值语句i30000没有超出最大取值范围。而赋值语句j40000超出了最大取值范围,结果产生溢出,系统并不报错,而是给出了一个错误的结果。这时,可将变量j类型改为long类型即可解决溢出问题,即long j,并按ld格式输出,就可以得到正确的结果。(2)实型变量实型变量又称浮点型变量,按能够表示数的小数点后的精度,C语言实型变量分为三种1)单精度型用float表示,在内存占用4个字节,有效数字67位。2)双精度型用double表示,在内存占用8个字节,有效数字1516位。 3)长双精度型用long double表示,在内存占用16个字节,有效数字1819位。其定义方式如下 float a,b; /*单精度变量的定义*/ double c,d; /*双精度变量的定义*/举例说明浮点型数据是有误差的【例2-4】include stdio.hvoid mainfloat a,b;a123456.789e5;ba20;printffn,b;如果将float改为double则结果不同(3)字符型变量字符型常量是以单引号括起来的单个字符,字符变量的定义使用的是关键字char。char a,b;aa;b97;整数和字符型可以互相赋值。说明一般编译系统默认字符型为signed类型,表示-128127之间的数字对应的字符,如果想表示128-255之间的数字则字符需定义为unsigned char。(4)指针变量指针又称地址,指针变量即存放地址的变量。变量值与变量地址是两个不同的概念,变量在内存所占的存储单元中存放的数据称为变量的值;变量在内存所占的存储单元的首地址称为变量的地址。变量的地址只可以存储在指针变量中,通过指针变量来引用地址中的数据。指针变量定义的一般形式数据类型 *指针变量名;说明数据类型为指针变量所存放的变量的类型例如 int *p; /* 定义p是指向整型变量的指针变量*/ float *x; /* 定义x是指向实型变量的指针变量*/ char *y; /* 定义y是指向字符型变量的指针变量*/【例2.5】输出变量与指针变量的值。 main int a10; /* a的值为10,假设变量a的内存地址编号 为65500*/ int *p; /* 定义指向整型变量的指针变量p */ p /*将a的地址送给指针变量p */ printf“ad,pu”,a,p; /*分别打印出变量a, 指针变量p中 的值*/ 运行结果a10,p65500 通过上述例题进一步加深对指针变量的理解。从图2-5中可以看到指针变量p中的值是变量a的地址65500。1065500通过图形更形象直观地让学生理解指针变量。5练习(10分钟)1)以下选项中不正确的实型常量A)2.607E-1B)0.8103e C)-77.77 D)456e-22不合法的十六进制A)oxff B)0 xabc C)0 x11 D)0 x196总结(5分钟)讨论、思考题、作业实验指导书习题参考资料(含参考书、文献等)叶斌 陈世强. C语言程序设计. 北京科学出版社授课类型理论课 讨论课 实验课 练习课 其他教学方式传统授课 双语 讨论 示教 指导 其他教学资源多媒体 模型 实物 挂图 音像 其他