4.1 数组概念的引入(教案)-《C语言程序设计》同步教学(电子工业出版社)

2024-07-10
| 5页
| 154人阅读
| 71人下载
普通

内容正文:

教案用纸 第 4 周 总第 12 次 学时:2 教学班级: 课程:C语言程序设计 授课教师: 课题: 4.1 数组概念的引入 4.2 一维数组 4.3 二维数组 教学方法:讲授、启发 教具:常规教具 教学目标:使同学们掌握一维、二维数组的定义、初始化、引用及输入输出 教学重点:数组的定义及输入输出 教学难点:数组在实际案例中的应用 主要教学内容: 4.1 数组概念的引入 4.2 一维数组 4.2.1 一维数组的定义 4.2.2 一维数据的元素引用 4.2.3 一维数组的赋值方法 4.3 二维数组 4.3.1 二维数组的定义 4.3.2 二维数据的元素引用 4.3.3 二维数组的存储 4.3.4 二维数据的赋值方法小结: 课后回顾: 教案用纸 四个一: 提问:break以及continue语句的区别 导入:在前面各章中,我们已经学习了C语言所提供的简单数据类型,使用这些数据类型可以描述并处理一些简单的问题。然而实际需要处理的数据常常不止一个,如果仍然用基本数据类型来进行处理,就很麻烦且容易出错。例如,处理学生学习成绩,这时就可以使用数组解决这个问题。 正文: 4.1 数组概念的引入 在日常生活中,常常会遇到求一组数据的平均值、最大值、最小值等问题。例如,若求20个数的平均值,可以使用下面程序段。 int x,sum,i; for( i=0 , sum=0 ; i<20 ; i++ ) { scanf("%d" , &x); sum+=x; } 求得的sum值为所有数的和,而sum/20的值就是平均值了,但如果想求这些数的最大值、最小值或是比平均值大的数,就无能为力了。因为键盘输入的20个数在求和之后并没有被保存起来。 要解决此问题,必须将这20个数存储起来,而如果设置20个不同名字的变量对于简单变量是困难,也不容易记忆。所以我们可以使用数组来实现存储这些数据的功能。 C语言提供了一种最简单的构造类型——数组。在这种数据类型中存储的是相同类型的数据。所谓数组,就是一组类型相同的变量,它使用一个数组名标识,每个数组元素都是通过数组名和元素的相对位置(下标)来引用的,数据元素在内存中占有连续的内存单元。数组可以是一维的,也可以是多维的。 数组有两个特点。 (1)其长度是确定的,在定义的同时确定了其大小,在程序中不允许随机变动。 (2)其元素必须是相同类型,不允许出现混合类型。 4.2 一维数组 4.2.1 一维数组的定义 一维数组用于存储一行或一列的数据。其定义格式如下: ( 类型符 数组名 [ 常量表达式 ] ; ) 其中类型符为数组元素的数据类型,可以是int型、float型、char型以及后面章节将要讲到的指针、结构体和共用体等各种复合数据类型。 数组名的定义符合C语言的标识符定义即可(即与普通变量名定义要求相同)。 中括号“[]”为数组定义的分界符号,中括号里面为一维数组的元素个数。常量表达式必须正整型,表示定义数组中的元素个数。 4.2.2 一维数据的元素引用 数组必须先定义后使用。C语言规定只能逐个引用数组元素,而不能一次引用整个数组。 一维数组元素的引用格式为: ( 数组名 [ 下标表达式 ] ) 例如: int x [5]; x[0]=10; 其中的x[0]就是对数组x中第一个元素的引用,上面语句功能是数组元素x[0]赋值为10。 在引用数组元素时,应注意以下几个问题。 (1)“下标表达式”可以是整型常量、整型变量或整型表达式,其值均为非负整型数据。数组下标值从0开始,数组的元素最大下标值为元素个数-1。例如: int x[5]; x[5]=10; /*错误,因为该数组最大元素为x[4]。但C语言不自动检查下标是否超范围,故必须在设计阶段从程序逻辑上保证下标不超范围。*/ (2)一个数组元素,相当于一个同类型的简单变量,可以对它进行赋值和参与各种运算。例如: x[0]=x[1]+2; /*将数组第二个元素x[1]加上2,赋值给数组的第一个元素x[0]*/ (3)数值数组作为一个整体,不能参加数据运算,只能对单个的元素进行处理。例如: int x[5],y[5]; x=y; /*错误,数组不能整体赋值给另一个数组*/ 4.2.3 一维数组的赋值方法 1.在编译时赋初值—— 一维数组的初始化 一旦定义了数组,编译程序就为数组在内存中开辟了一段连续的存储单元,其首地址由数组名标识,数组的各个元素按顺序依次存放。最初,这些存储单元中没有确定的值,需对其进行初始化。 将数组元素的初值按顺序放在一对花括号内,初值类型必须与数组元素的类型一致,各初值之间用逗号分隔。初始化列表中的值依次从数组下标为0的元素开始赋值,不能跳过前面的元素而给后面的元素赋初值。 对一维数组元素的初始化可以用以下方法实现。 int x[10]={0,1,2,3,4,5,6,7,8,9}; /*所有元素全部赋初值*/ int x [10]={0,1,2,3,4}; /*部分元素赋初值*/ int x [10]={0,0,0,0,0,0,0,0,0,0}; /*数组中全部元素赋初值为0*/ int x [10]={0}; /*数组中全部元素赋初值为0也可以写成这种形式*/ int x [10]={0*10}; /*错误写法*/ int x [ ]={1,2,3,4,5}; /*全部数组元素赋初值时,可以不指定数组长度*/ C语言除了在定义数组变量时用初值列表为数组整体赋值之外,不能在其他情况下对数组变量做整体赋值。 2.在运行时赋初值 如果未在定义数组时进行初始化,也可以在程序中使用循环语句为数组元素赋初值。 (1)指定各元素逐一输入、输出。例如: int x [10]; scanf("%d%d%d%d%d",& x[0],& x[1],& x[2],&x[3],&x[4]); printf("%d%d%d%d%d ",x[0],x[1],x[2],x[3],x[4]); (2)利用循环控制下标变化实现输入、输出。例如: int x[10],i; for(i=0;i<10;i++) scanf("%d",&x[i]); for(i=0;i<10;i++) printf("%d",x[i]); 具体使用哪种方式为数组元素进行赋值,可以由程序员根据程序需要进行设计。 4.3 二维数组 4.3.1 二维数组的定义 当数组元素的下标有两个或两个以上时,称该数组为多维数组。下标为两个时,称为二维数组;下标为三个时,称为三维数组。多维数组中使用最多是二维数组,本节主要介绍二维数组。 二维数组主要用于存放矩阵形式的数据,如二维表格等。其定义格式如下: ( 类型符 数组名[常量表达式1] [常量表达式2]; ) 其中常量表达式1是数组元素的行数,常量表达式2是数组元素的列数。与一维数组相比,二维数组的定义,除了增加了一个[常量表达式2]外,其他都一样。 例如: int a[2][3]; /*定义了一个具有2行3列的二维整型数组a,共有6个元素*/ 4.3.2 二维数据的元素引用 和一维数组元素的引用一样,二维数组元素也是通过数组名和下标来引用的,只是这里需要两个下标。 二维数组元素引用的格式为: ( 数组名 [ 行下标表达式 ] [ 列下标表达式 ] ) 例如: int a[2][3]; /*定义了一个2行3列的二维数组*/ a[1][2]=5; /*将第2行第3个元素a[1][2]赋值为5*/ 该数组a共有2×3=6个元素,分别为: a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 在引用二维数组元素时需注意以下几个问题。 (1)下标同一维数组一样,可以是整型常量或是整型表达式。行下标表达式的取值范围为0~行数-1,列下标表达式的取值范围为0~列数-1。例如一个3行4列的二维数组其行下标最大值为2,列下标最大值为3。 (2)对基本数据类型的变量所能进行的各种操作,也都适合于同类型的二维数组元素。 (3)要引用二维数组的全部元素,就要遍历二维数组,通常应使用二层嵌套的for循环:一般常把二维数组的行下标作为外循环的控制变量,把列下标作为内循环的控制变量。 4.3.4 二维数据的赋值方法 1.在编译时赋初值——二维数组的初始化 对二维数组元素的初始化可以用如下方法实现。 int a[2][3]={{1,2,3},{4,5,6}}; /*初值按行的顺序依次排列,每行都用花括号括起来*/ int a[2][3]={1,2,3,4,5,6}; /*不分行的初始化,为二维数组全部元素赋初值*/ int a[2][3]={1,2,3,4}; /*不分行的初始化,为二维数组前面部分元素赋初值,后面元素为默认值*/ int a[2][3]={{1,2},{4}}; /*按行为二维数组部分元素赋初值*/ int a[2][3]={1,2,3,4,5,6,7,8}; /*初值化元素个数超总元素个数,编译出错*/ int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12}; /*为全部元素初始化,可省略第一维的维数,第二维不能省略*/ int a[ ][4]={{1,3},{},{5,6,7},{8,9,10,11}}; /*省略第一维维数时,按分行赋初值,保留对应花括号*/ 2.在运行时赋初值 与一维数组特性相同,在定义变量时除了可以对二维数组赋初值外,不能用C语句对二维数组作整体赋值,只能利用循环语句对数组元素逐一赋值。例如: int x[2][3]],i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&x[i][j]); 即可对二维数组的每个元素按行进行赋值。 小结: 本节主要介绍了一维数组、二维数组的定义、初始化以及引用,二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。二维数组可被看作是一种特殊的一维数组,它的元素又是一个一维数组。 备 注 通过实例说明数组可以使问题简单化,强调数组的重要性。 重点:数组解释。 难点:通过举例说明数组中数据的存储方式,更加直观。 重点:二维数组是一维数组的特殊情况。 重点:二维数组的定义、使用及数组元素的引用与一维数组做比较讲解。 学科网(北京)股份有限公司 $$

资源预览图

4.1  数组概念的引入(教案)-《C语言程序设计》同步教学(电子工业出版社)
1
4.1  数组概念的引入(教案)-《C语言程序设计》同步教学(电子工业出版社)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。