最新C语言一维数组教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学科:计算机科学与技术
课程:C语言程序设计
课题:一维数组
课时:2
教学目标:1、掌握一维数组的定义和引用
2、掌握一维数组的初始化方法
3、了解与一维数组有关的应用编程方法
教学重点:一维数组的定义和引用、初始化方法
教学难点:与一维数组有关的应用编程方法
教学方法:举例法,引导法
教学步骤:1、通过一个例子提出问题来引出本节课的知识点
2、讲授一维数组的定义和引用、初始化方法
3、示例训练
4、进行本节课的总结及作业布置
教具:黑板计算机投影仪
教学过程:
一、导入:
提问:保存一个班50位同学的一门功课的成绩,并且找出最高分和最低分,应如何实现?
解题思路:定义50个变量,从键盘中输入值,然后再相互比较。处理起来很复杂,是否有更简便的方法?引出本节课的知识点-----数组。
二、讲授:
1、数组概述:
·数组:是数目固定,类型相同的若干个变量的有序集合,用数组名标识。
序:是数组元素之间的位置关系,不是元素值的大小顺序。
数组名:是用于区别其它数组及变量的。
·数组元素:集合中的变量,属同一数据类型,用数组名和下标确定。
下标:是数组元素在数组中的位置。
·数组的维数:数组名后所跟下标的个数。
2、一维数组的定义
一维数组是指由一个下标数组元素组成的数组。其定义形式为:
存储类型数据类型数组名[常量表达式]
例如:static int score[50];
它表示定义了一个名为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,k1[10],k2[20]; //定义了两个一维数组、两个整型变量
判断下面的定义是否合法:
int b, b[5]; //不合法,数组名不能与变量名同名
#define size 10
int b[size]; //合法,size已经在宏定义中说明,在程序中作为符号常量
int a(6); //不合法,数组名后不能使用(),只能用[]
int n=5;
int a[n]; //不合法,不能用变量定义数组元素的个数
int a[n+2]; //不合法,不能用变量表达式定义数组元素的个数
一维数组的存储结构:C语言在编译时给数组分配一段连续的内存空间。内存字节数=数组元素个数*sizeof(元素数据类型)
数组元素按下标递增的次序连续存放。数组名是数组所占内存区域的首地址,即数组第一个元素存放的地址。
例int a[5];
内存地址
占用字节数为:5*sizeof(int)=5*2=10
3、一维数组元素的引用
数组元素是组成数组的基本单元。数组元素用数组名和下标确定。下标表示了元素在数组中的顺序号,C语言规定:数组必须先定义,后使用。一维数组的引用形式为:数组名[下标]
其中下标可以是整型常量、整型变量或整型表达式。例如有定义:
int t,a[10],i=2;
则以下都是正确的表达式:
t=a [6];
a[0]= a[i]+a[i+1];
引用说明:
(1)必须像使用变量那样,先定义,再使用,如以下操作是错误的:
int x=a[2];
int a[10];
(2)下标的最小值为0,最大值是数组大小减1。在前例中定义了数组score [50],使用的时候不能使用score [50], 否则产生数组越界。C语言对数组不作越界检查,使用时要注意!
(3)在C语言中只能对数组元素进行操作,不能一次对整个数组进行操作。例如要输出有10个元素的数组,则必须使用循环语句逐个输出各下标变量:
for(i=0; i<10; i++)
printf("%d",a[i]);
而不能用一个语句输出整个数组。
下面的写法是错误的:
printf("%d",a);
例:输出5个学生的成绩
#include
void main ( )
{
int i, score[5]={82,79,65,91,86};
for (i=0;i<5;i++)
printf (" %d ",score[i]);
}
4、一维数组的初始化
数组的初始化就是给数组元素赋初始值。主要有两种方法:
1.数组定义时初始化:就是在定义数组时给数组元素赋初值。其初始化的一般格式为:
数据类型数组名[数组元素个数] ={值1,值2,… ,值n};
(1)对数组全部元素赋初值
例如int a[5]={2,4,6,8,10};
其作用是在定义数组的同时将常量2、4、6、8、10分别置于数组元素a[0]、a[1]、a[2]、a[3]、a[4]中。