《2022年C语言一维数组教案.docx》由会员分享,可在线阅读,更多相关《2022年C语言一维数组教案.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学科:运算机科学与技术学习必备欢迎下载课 程:C 语言程序设计课 题:一维数组课 时:2教学目标: 1、把握一维数组的定义和引用2、把握一维数组的初始化方法3、明白与一维数组有关的应用编程方法教学重点: 一维数组的定义和引用、初始化方法教学难点: 与一维数组有关的应用编程方法教学方法: 举例法,引导法教学步骤:1、通过一个例子提出问题来引出本节课的学问点2、讲授一维数组的定义和引用、初始化方法3、示例训练4、进行本节课的总结及作业布置教具:黑板运算机投影仪教学过程:一、 导入:提问:储存一个班 50 位同学的
2、一门功课的成果,并且找出最高分和最低分,应如何实现?解题思路:定义 50 个变量,从键盘中输入值,然后再相互比较;处理起来很复杂,是否有更简便的方法?引出本节课的学问点- 数组; 第 1 页,共 6 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载二、 讲授:1、数组概述: 数组:是数目固定,类型相同的如干个变量的有序集合,用数组名标识;序:是数组元素之间的位置关系,不是元素值的大小次序;数组名:是用于区分其它数
3、组及变量的; 数组元素:集合中的变量,属同一数据类型,用数组名和下标确定;下标:是数组元素在数组中的位置; 数组的维数:数组名后所跟下标的个数;2、一维数组的定义 一维数组是指由一个下标数组元素组成的数组;其定义形式为:储备类型数据类型数组名 常量表达式 50 个元素,其储备类型为静态型,例如: static int score50;它表示定义了一个名为score的数组,该数组有数据类型为整型;说明:型;(1)储备类型为任选项,可以是auto、static、extern 储备类型,但是没有register(2)数据类型是用来说明数组元素的类型:int , char , float;(3)数组名
4、的命名应遵守标识符的命名规章,但是不能与其他变量同名;(4)数组名后是用方括号 括起来的常量表达式;常量表达式表示的是数组元素的个数,即数组的长度;在上例中定义了数组 一个为 score 49;score 50,第一个元素为 score 0,最终(5)常量表达式中可以包括常量和符号常量,不能包含变量,由于 C 语言规定不答应对数组的大小作动态定义;(6)答应在同一个类型说明中,说明多个数组和多个变量,彼此间以逗号相隔;例如: int a,b,k110,k220; /定义了两个一维数组、两个整型变量判定下面的定义是否合法:int b, b5; /不合法,数组名不能与变量名同名=#define s
5、ize 10 int bsize; /合法, size 已经在宏定义中说明,在程序中作为符号常量int a6; /不合法,数组名后不能使用,只能用 int n=5; int an; /不合法,不能用变量定义数组元素的个数int an+2; /不合法,不能用变量表达式定义数组元素的个数一维数组的储备结构: C 语言在编译时给数组安排一段连续的内存空间;内存字节数数组元素个数 *sizeof元素数据类型 数组元素按下标递增的次序连续存放;数组名是数组所占内存区域的首地址,即数组第一个元素存放的地址; 第 2 页,共 6 页 - - - - - - - - - 例int a5; 假设首地址是 200
6、0 a0 a1 a2 a3 a4 内存地址2000 2002 2004 2006 2022 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - -名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载占用字节数为: 5*sizeofint=5*2=10 3、一维数组元素的引用 数组元素是组成数组的基本单元;数组元素用数组名和下标确定;下标表示了元 素在数组中的次序号, C 语言规定: 数组必需先定义, 后使用;一维数组的引用形式为:数组名 下标 其中下标可以是整型常量、整型变量或整型表达式;例如有定义:int t
7、,a10,i=2;就以下都是正确的表达式:t=a 6; a0= ai+ai+1 ;引用说明:(1)必需像使用变量那样,先定义,再使用,如以下操作是错误的:int x=a2; int a10; (2)下标的最小值为 0,最大值是数组大小减 1;在前例中定义了数组 score 50,使用的时候不能使用 score 50, 否就产生数组越界; C 语言对数组不作越界检查, 使用 时要留意!(3)在 C 语言中只能对数组元素进行操作,不能一次对整个数组进行操作;例如要 输出有 10 个元素的数组,就必需使用循环语句逐个输出各下标变量:fori=0; i10; i+ printf%d,ai; 而不能用一
8、个语句输出整个数组;下面的写法是错误的:printf%d,a; 例:输出 5 个同学的成果 #include void main int i, score5=82,79,65,91,86;for i=0 ;i5;i+ printf %d ,scorei ; 4、一维数组的初始化 数组的初始化就是给数组元素赋初始值;主要有两种方法:1.数组定义时初始化:就是在定义数组时给数组元素赋初值;其初始化的一般格式 为:数据类型 数组名 数组元素个数 = 值 1,值 2, ,值 n ;(1)对数组全部元素赋初值 例如 int a5=2,4,6,8,10 ;其作用是在定义数组的同时将常量2、4、6、8、10
9、 分别置于数组元素a0、a1、a2、a3、a4中;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载(2)对数组部分元素赋初值,其它数组元素自动赋以 0 值例如:int a4=1,2 ;执行后各元素的初值为a 0=1,a 1=2,a 2=0,a 3=0 a10=0 ;(3)全部元素均初始化为0,可写成:int a10=0,0,0,0,0,0,0,0,0,0;或 int 不能写成int a10=0
10、*10 ;说明:(1)数组元素的值可以是数值型、字符常量或字符串;(2)数组元素的初值必需依次放在一对大括号 内,各值之间用逗号隔开;(3)在进行数组的初始化时, 中值的个数不能超过数组元素的个数;例如: int a5=1,2,3,4,5,6 ;是一种错误的数组初始化方式,所赋初值多于定义数组的元素个数;(4)在给数组全部元素赋初值时,可以不指定数组长度;例如:int a =1,2,3,4,5 ;就系统会自动定义数组a 的长度为 5;在定义时赋初值是一种简洁而行之有效的方法,它适用于长度较小的数组或对长度较大的数组部分元素赋值,而且可对每个数组元素赋不同的值;2.在程序中初始化:主要使用循环语
11、句进行逐一赋值例如: int i,score50; for i=0;i50;i+ score i=0; 这种方法是在编程中普遍使用的一种方法,它适用于对某数组元素进行有规律的赋值或接受用户通过键盘输入对数组元素的赋值;三、举例:1.以引例为例,从键盘输入 步骤: 10 个同学一门课的成果,找出最高分和最低分并输出;1 输入 : 用 for 循环输入 10 个同学的成果 2 处理 : a 先令 max=min=score0 b 依次用 score i和 max,min 比较 循环 如 max score i,令 min= score i 3 输出 : max 和 min 程序如下:#includ
12、e void main int i; float score 10,max,min; printfEnter 10 score s:n; fori=0;i10;i+ /输入 10 个浮点型的同学的成果scanf%f,& score i; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载max=min= score 0; fori=1;i10;i+ /循环比较,找出最高分和最低分ifmax sc
13、ore i max= score i; min= score i; printfMax score is %fn,max; printfMin score is %fn,min; /输出最高分 /输出最低分 2.以引例为例,从键盘输入10 个同学一门课的成果,用冒泡法从低到高排序并输出;分析:冒泡排序法的基本思想是将相邻两个数进行比较,将小的调到前面;排序过程:(1)比较第一个数与其次个数,如为逆序score 0 score 1,就交换;然后比较 score 1 与 score 2比较;依次类推,直至 score 8与 score 9比较为止 第一趟冒泡排序,结果最大的数被安置在最终一个元素
14、score 9位置上,此次共比较 9 次;(2)对前 9 个数进行其次趟冒泡排序,结果使次大的数被安置在倒数其次个元素 score 8 位置,此次共比较 8 次;(3)重复上述过程,共经过 程序如下:#include void main 9 趟冒泡排序后,排序终止int float i,j; score 10, t,max,min; printfEnter 10 scores:n; fori=0;i10;i+ scanf%f,& score i; printfn; /输入 10 个浮点型同学的成果fori=1;i10;i+ forj=0;j score j+1 /交换 score j和 sco
15、re j+1 t= score j; score j=score j+1; score j+1= t; fori=0;i10;i+ /输出排好序的成果printf %f , score i; printfn; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载四、总结:这节课主要介绍了数组这一特别的数据结构;数组的特点是大小必需是确定的,且 数组中元素的类型必需相同;它的优点是表述简洁,可读性高,便于使用循环结构;一维数组的定义和使用:在使用时应遵循先定义、后使用的原就;不能整体引用,也不能越界使用数组元素,可以用循环结构很便利地拜访数组元素;一维数组初始化的方法:定义时初始化的几种方式、在程序中用赋值语句初始化;五、 作业要求:课后大家将课本上的例题和课后习题进行练习,熟悉;以此提高对程序设计的更高程度的细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 6 页 - - - - - - - - -
限制150内