C语言一维数组教案.doc
学学 科科计算机科学与技术 课课 程程C 语言程序设计 课课 题题一维数组 课课 时时2 教学目标教学目标1、掌握一维数组的定义和引用 2、掌握一维数组的初始化方法 3、了解与一维数组有关的应用编程方法 教学重点教学重点一维数组的定义和引用、初始化方法 教学难点教学难点与一维数组有关的应用编程方法 教学方法教学方法举例法,引导法 教学步骤教学步骤 1、通过一个例子提出问题来引出本节课的知识点 2、讲授一维数组的定义和引用、初始化方法 3、示例训练 4、进行本节课的总结及作业布置 教教 具具黑板 计算机 投影仪 教学过程教学过程 一、一、导入导入 提问保存一个班 50 位同学的一门功课的成绩,并且找出最高分和最低分,应如何实 现 解题思路定义 50 个变量,从键盘中输入值,然后再相互比较。处理起来很复杂,是 否有更简便的方法引出本节课的知识点-数组。 二、二、讲授讲授 1、数组概述、数组概述 数组是数目固定,类型相同的若干个变量的有序集合,用数组名标识。 序是数组元素之间的位置关系,不是元素值的大小顺序。 数组名是用于区别其它数组及变量的。 数组元素集合中的变量,属同一数据类型,用数组名和下标确定。 下标是数组元素在数组中的位置。 数组的维数数组名后所跟下标的个数。 2、一维数组的定义、一维数组的定义 一维数组是指由一个下标数组元素组成的数组。其定义形式为 存储类型 数据类型 数组名常量表达式 例如static int score50; 它表示定义了一个名为 score 的数组,该数组有 50 个元素,其存储类型为静态型, 数据类型为整型。 说明 (1)存储类型为任选项,可以是 auto、static、extern 存储类型,但是没有 register 型。 (2)数据类型是用来说明数组元素的类型int , char , float。 (3)数组名的命名应遵守标识符的命名规则,但是不能与其他变量同名。 (4)数组名后是用方括号 括起来的常量表达式。常量表达式表示的是数组元素 的个数,即数组的长度。在上例中定义了数组 score 50,第一个元素为 score 0,最后 一个为 score 49。 (5)常量表达式中可以包括常量和符号常量,不能包含变量,因为 C 语言规定不 允许对数组的大小作动态定义。 (6)允许在同一个类型说明中,说明多个数组和多个变量,彼此间以逗号相隔。 例如int a,b,k110,k220; 定义了两个一维数组、两个整型变量 判断下面的定义是否合法 int b, b5; 不合法,数组名不能与变量名同名 define size 10 int bsize; 合法,size 已经在宏定义中说明,在程序中作为符号常量 int a6; 不合法,数组名后不能使用,只能用 int n5; int an; 不合法,不能用变量定义数组元素的个数 int an2; 不合法,不能用变量表达式定义数组元素的个数 一维数组的存储结构C 语言在编译时给数组分配一段连续的内存空间。内存字节数 数组元素个数*sizeof元素数据类型 数组元素按下标递增的次序连续存放。数组名是数组所占内存区域的首地址,即数组第 一个元素存放的地址。 例 int a5; 假设首地址是 2000 a0 a1 a2 a3 a4 内存地址 2000 2002 占用字节数为5*sizeofint5*210 3、一维数组元素、一维数组元素的引用的引用 数组元素是组成数组的基本单元。数组元素用数组名和下标确定。下标表示了元 素在数组中的顺序号,C 语言规定数组必须先定义,后使用。一维数组的引用形式为 数组名下标 其中下标可以是整型常量、整型变量或整型表达式。例如有定义 int t,a10,i2; 则以下都是正确的表达式 ta 6; a0 aiai1; 引用说明 (1)必须像使用变量那样,先定义,再使用,如以下操作是错误的 int xa2; int a10; (2)下标的最小值为 0,最大值是数组大小减 1。在前例中定义了数组 score 50, 使用的时候不能使用 score 50, 否则产生数组越界。C 语言对数组不作越界检查,使用 时要注意 (3)在 C 语言中只能对数组元素进行操作,不能一次对整个数组进行操作。例如要 输出有 10 个元素的数组,则必须使用循环语句逐个输出各下标变量 fori0; i score 1,则交换;然后比较 score 1与 score 2比较;依次类推,直至 score 8与 score 9比较为止第一趟冒泡 排序,结果最大的数被安置在最后一个元素 score 9位置上,此次共比较 9 次。 (2)对前 9 个数进行第二趟冒泡排序,结果使次大的数被安置在倒数第二个元素 score 8位置,此次共比较 8 次。 (3)重复上述过程,共经过 9 趟冒泡排序后,排序结束 程序如下 include void main int i,j; float score 10, t,max,min; printf“Enter 10 scoresn“; fori0;i10;i 输入 10 个浮点型学生的成绩 scanf“f“, printf“n“; fori1;i10;i 趟数,共 9 趟 forj0;j score j1 交换 score j和 score j1 t score j; score jscore j1; score j1 t; fori0;i10;i 输出排好序的成绩 printf“ f “, score i; printf“n“; 四、总结四、总结 这节课主要介绍了数组这一特殊的数据结构。数组的特点是大小必须是确定的,且 数组中元素的类型必须相同。它的优点是表述简洁,可读性高,便于使用循环结构。 一维数组的定义和使用在使用时应遵循先定义、后使用的原则。不能整体引用, 也不能越界使用数组元素,可以用循环结构很方便地访问数组元素。 一维数组初始化的方法定义时初始化的几种方式、在程序中用赋值语句初始化。 五、作业要求作业要求 课后大家将课本上的例题和课后习题进行练习,以此提高对程序设计的更高程度的 认识。