C语言程序设计》课程教案表
授课题目
第二章 基本数据类型和表达式(1
课时安排
2
授课时间
教学目的和要求
1.掌握:各种数据类型的关键字、常量及变量的定义
2.熟悉:各种类型常量、变量的定义形式
3.了解:各种数据类型在计算机中所占的存储空间
教学内容
1.基本内容:C语言的数据类型、常量、变量
2.重点:变量定义的形式
3.难点:指针变量
讲课进程和时间分配
1、导入(3分钟)
C语言是用来书写程序的,而通常程序要对数据进行操作处理:处理的对象是数据通过运算符和表达式进行操作。因此本章在C语言程序设计这门课程占有非常重要的地位。
2C语言数据类型            12分钟)
1C语言数据类型分类
2)各种数据类型的关键字,及在计算机内存中所占大小(以各种不同的编译环境为例)
类型名
关键字
所占字节(B
TC
Rarnu_c
VC++
整型
int
2
2
4
短整型
short [int]
2
2
2
长整形
long [int]
4
4
4
无符号整型
unsigned int
2
2
4
无符号长整型
unsigned long
4
4
4
无符号短整型
整型常量合法要求
unsigned short
2
2
2
单精度
float
4
4
4
双精度
double
8
8
8
字符型
char
1
1
1
指针类型
*
2
4
4
3printf函数输出语句初步(在第三章在详细讲解)
一般格式为:printf(“控制格式”,输出参数1,输出参数2···输出参数n);
    作用:在屏幕上输出引号内的信息或按控制格式所规定的格式输出数据。
    为将要显示的数据指定需要输出的格式,需要用到以下不同的转换字符。具体含义如下:
  ·%d  表示数据按十进制整型数输出;
  ·%f  表示数据按十进制带小数点的形式输出;
  ·%o  表示数据按十进制八进制整型数输出;
  ·%x  表示数据按十进制十六进制整型数输出;
  ·%c  表示数据按字符型数输出;
  ·%u  表示数据按十进制无符号整型数输出;
引入常量与变量的讲解:C语言中的数据有变量与常量,它们分别属于上述这些类型。
3.常量(25分钟)
常量的类型:整型常量实型常量、字符常量、字符串常量和符号常量
1)整型常量
    1)十进制整数:取值范围:09。如1236-2340
    2)八进制整数:以0开头的数是八进制数,取值范围:07:011表示八进制数的(11)8
    3)十六进制整数:以0x开头的数是十六进制数,取值范围:09AFaf。如:0x1F表示十六进制数的(1F)16 (十进制数为31)
通过下面的例子使学生进一步熟悉整型常量的三种表示方法。
【例2.1  三种进制表示方法的转换。
  main()
 
    int x=1246y=01246z=0x1246;
    printf(″%d%d%d\n″,xyz;  /*  %d:以十进制格式符输出*/
    printf(″%o%o%o\n″,xyz;  /*  %o:以八进制格式符输出*/
    printf(″%x%x%x\n″,xyz;  /*  %x:以十六进制格式符输出*/
 
  运行结果:
  12466784678
  2336124611106
  4de2a61246
2)实型常量
C语言实型常量只使用十进制数。有以下两种形式:
1)十进制数形式
  它是由正负号、整数部分、小数点、小数部分组成,如:
  3.14159-7.28.9等都是十进制形式。
    2)指数形式
  它是由正负号、整数部分、小数点、小数部分和字母Ee后面带正负号的整数组成。如:十进制数180000.0=1.8×105)用指数法可以表示为1.8e5,其中:1.8称为尾数,5称为指数。0.00123用指数法可以表示为1.23E-3
  需要学生注意的地方举例加以强调:
1)字母eE之前(即尾数部分)必须有数字。如:e-3e5是不合法的。
2eE后面的指数部分必须是整数。如:9.8e3.1是不合法的。
3)实型常量的后缀,用F(或f)表示单精度;用后缀L(或l)表示双精度型。
如:1.2345e-3f,表示单精度数;2.11e5L,表示双精度数。
3)字符型常量
字符型常量是由一对单引号括起来的单个字符,在内存中占1个字节。转义字符也可以作为一个字符。
例如:′A′,′b′,′2′,′%′,′;′等都是有效的字符型常量。
说明:一个字符型常量的值是该字符集中对应的ASCII编码值。
例如,字符常量′0′~′9′的ASCII编码值是4857。显然′0′与 数字0是不同的。让学生记住几个特殊的字符的ASCII码值:A ASCII65a ASCII 97,大写字母的ASCII比小写字母的小32B ASCII66b ASCII98,其他字母字符以此类推。
4)字符串常量
字符串常量是由一对双引号括起来的字符序列,若字符序列串长为N,则在内存占用N+1个内存单元,字符串常量在内存中存储时,系统自动加上串尾标记“\0
例如:字符串″CHINA″,它在内存中实际存放的形式如下图
C
H
I
N
A
\0
说明:“a”与‘a’是不同的。“a”是字符串常量,在内存占用2个字节长度。字符a本身一个字节,加一个转义符串尾标记‘\0’,又占用一个字节。而‘a’是字符常量,内存中只存储字符aASCII值,所以只占用1个字节长度。
通过说明:使学生能清晰地区别字符串常量与字符型常量。
5)符号常量
用一个特定的符号来代替一个常量或字符串,这个符号称为符号常量。符号常量一般用大写字母表示,以便与其它标识符相区别。 
符号常量的一般定义形式:#define 符号常量  常量(或字符串
2-2:符号常量应用
#define PI 3.14
main()
{
  float arear;
  r=10;
  area=r*r*PI;
  printf("area=%f\n",area);
}
结果:area=314.000000
根据例题总结出符号常量的优点如下:(1)含义清楚、见名知意。(2)修改方便、一改全改。
4.变量(35分钟)
1)变量的概念
变量是指在程序运行过程中可以被改变的某个标识符的值。C语言中的变量可以分为以下几种类型,如图2-3所示。
使用变量时会涉及到变量名、变量类型与值、变量的地址3个方面的内容。
1)变量名(又称标识符名)。C语言中的变量名命名规则与标识符定义规则相同。由字母或下划线开头,其后可以用字母、数字或下画线组成的18字符。一般变量名由小写字母表示。例如:abxyx1max1stu_list
2)变量的类型与值。在程序运行中,变量必须有一个确切的类型和具体值。所以,需要先确定变量的类型与值。定义不同类型的变量,在内存占用不同的字节(参见表2.1)。例如:int型变量占用2个字节,float型占用4个字节。
3)变量的地址。即存放变量的内存地址,又为变量的指针。
2)变量的定义与初始化
C语言中,无论使用哪一种类型变量,都要“先定义”,后“使用”。所谓定义,是给程序中用到的变量定义一个类型即取值范围;初始化,就是在定义变量的同时,给变量赋初值。
变量定义格式为: 〈数据类型〉 〈变量名表〉;
      例:int a;        /*定义变量aint整型*/
          a=3;        /*给变量a赋值3    */
      或:int a=3;      /*定义变量a的同时,给a赋值3,又称给变量初始化*/
通过下图说明变量名、变量在内存中占据的存储单元、变量值三者关系。
int a=3;
提醒学生注意:变量名在程序运行的过程中不会改变,而变量的值可以改变。
1)整型变量
整型变量用来存放整型数据,其定义的关键字如下:
    1)基本型:用int表示(2字节)
    2)短整型:用short intshort表示(2字节)
    3)长整型:用long intlong表示(4字节)
    4)无符号整型:
  ①无符号整型:  unsigned intunsigned表示(2字节)
  ②无符号短整型:用unsigned short intunsigned short表示(2 字节)
  ③无符号长整型:用unsigned long intunsigned long表示(4字节)
一个整型变量在内存中占两个字节(16bit),则int型变量数值的表示范围是-3276832767unsigned int变量数值的表示范围为065535(2-4 有符号与无符号整型数)
【例2.3】输出变量的值。
      main()
      {
      int i,j;                           
      i=30000;                       
      j=40000;             
      printf(%d%d\n,i,j);       
      }
      运行结果:30000-25536
      可以看出,结果不正确。
通过上述例题分析出错原因并给出正确输出的方法:int变量的最大存储值为32767。因此,赋值语句i=30000没有超出最大取值范围。而赋值语句j=40000超出了最大取值范围,结果产生溢出,系统并不报错,而是给出了一个错误的结果。这时,可将变量j类型改为long类型即可解决溢出问题,即long j,并按%ld格式输出,就可以得到正确的结果。
2)实型变量
实型变量又称浮点型变量,按能够表示数的小数点后的精度,C语言实型变量分为三种:
1)单精度型:用float表示,在内存占用4个字节,有效数字67位。
2)双精度型:用double表示,在内存占用8个字节,有效数字1516位。
3)长双精度型:用long double表示,在内存占用16个字节,有效数字1819位。
其定义方式如下:
      float ab;      /*单精度变量的定义*/
      double cd;    /*双精度变量的定义*/
举例说明浮点型数据是有误差的:
【例2-4#include <stdio.h>
void main()
{
float a,b;
a=123456.789e5;
b=a+20;
printf("%f\n",b);
}
如果将float改为double则结果不同
3)字符型变量
字符型常量是以单引号括起来的单个字符,字符变量的定义使用的是关键字char
char a,b;
a=’a’;
b=97;
整数和字符型可以互相赋值。
说明:一般编译系统默认字符型为signed类型,表示-128—127之间的数字对应的字符,如果想表示128-255之间的数字则字符需定义为unsigned char
4)指针变量
指针又称地址,指针变量即存放地址的变量。
变量值与变量地址是两个不同的概念,变量在内存所占的存储单元中存放的数据称为变量的值;变量在内存所占的存储单元的首地址称为变量的地址。变量的地址只可以存储在指针变量中,通过指针变量来引用地址中的数据。
指针变量定义的一般形式:数据类型  *指针变量名;
说明:数据类型为指针变量所存放的变量的类型
例如: int *p              /*  定义p是指向整型变量的指针变量*/
      float *x          /*  定义x是指向实型变量的指针变量*/
      char *y          /*  定义y是指向字符型变量的指针变量*/
【例2.5输出变量与指针变量的值。
  main()
{
  int a=10;            /* a的值为10,假设变量a的内存地址编号
                          65500*/
  int *p;                  /* 定义指向整型变量的指针变量p */
  p=&a;                    /*a的地址送给指针变量p */
  printf(a=%d,p=%u,a,p);  /*分别打印出变量a, 指针变量p
                              的值*/
  }
    运行结果:a=10,p=65500 
通过上述例题进一步加深对指针变量的理解。
从图2-5中可以看到指针变量p中的值是变量a的地址65500
通过图形更形象直观地让学生理解指针变量。
5.练习(10分钟)
1)以下选项中不正确的实型常量
    A2.607E-1    B0.8103e  C-77.77 D456e-2
2)不合法的十六进制
    Aoxff        B0xabc        C0x11        D0x19
6.总结(5分钟)
讨论、思考题、作业:
实验指导书习题
参考资料(含参考书、文献等):
叶斌 陈世强. C语言程序设计. 北京:科学出版社
授课类型:理论课   讨论课□  实验课□  练习课□  其他□
教学方式:传统授课 双语□  讨论□  示教□  指导□  其他□
教学资源:多媒体   模型□  实物□  挂图□  音像□  其他□

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。