- 32
- 0
- 约4.29千字
- 约 6页
- 2022-03-02 发布于浙江
- 举报
学 科:计算机科学与技术
课 程:C语言程序设计
课 题:一维数组
课 时:2
教学目标:1、掌握一维数组的定义和引用
教学重点:
教学难点:
举例法,引导法
教学步骤: 1、通过一个例子提出问题来引出本节课的知识点
3、例如训练
4、进行本节课的总结及作业布置
教 具:黑板 计算机 投影仪
教学过程:
一、导入:
提问:保存一个班50位同学的一门功课的成绩,并且找出最高分和最低分,应如何实现?
二、讲授:
1、数组概述:
·数组:是数目固定,类型相同的假设干个变量的有序集合,用数组名标识。
序:是数组元素之间的位置关系,不是元素值的大小顺序。
数组名:是用于区别其它数组及变量的。
·数组元素:集合中的变量,属同一数据类型,用数组名和下标确定。
下标:是数组元素在数组中的位置。
·数组的维数:数组名后所跟下标的个数。
2、一维数组的定义
一维数组是指由一个下标数组元素组成的数组。其定义形式为:
存储类型 数据类型 数组名[常量表达式]
例如:static int score[50];
它表示定义了一个名为score的数组,该数组有50个元素,其存储类型为静态型,数据类型为整型。
说明:
〔1〕存储类型为任选项,可以是auto、static、extern存储类型,但是没有register型。
〔2〕数据类型是用来说明数组元素的类型:int , char , float。
〔3〕数组名的命名应遵守标识符的命名规那么,但是不能与其他变量同名。
[ ]括起来的常量表达式。常量表达式表示的是数组元素的个数,即数组的长度。在上例中定义了数组score [50],第一个元素为score [0],最后一个为score [49]。
〔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]; 假设首地址是2000
a[0]
a[1]
a[2]
a[3]
a[4]
内存地址 2000 2002 2004 2006 2021
占用字节数为:5*sizeof(int)=5*2=10
3、一维数组元素的引用
数组名[下标]
其中下标可以是整型常量、整型变量或整型表达式。例如有定义:
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; i10; i++)
printf(%d,a[i]);
而不能用一个语句输出整个数组。
下面的写法是错误的:
printf(%d,a);
例:输出5个学生的成绩
#include stdio.h
void main ( )
{
int i, score[5]={82,79,65,91,86};
for (i=0;i5;i++)
printf ( %d ,score[i]);
}
4、一维数组的初始化
1.数组定义时初始化:就是在定义数组时给数组元素赋初值。其初始化的一般格式为:
数据类型 数组名[数组元素个数] ={值1,值2,… ,值n};
〔1〕对数组全部元素赋初值
例如 int a[5]={2,4,6,8,10};
其作
原创力文档

文档评论(0)