最新C语言一维数组教案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]中。

相关文档
最新文档