6.2 二维数组(教学设计)- 《C语言(上)》同步教学(高教版)

2024-08-03
| 4页
| 125人阅读
| 1人下载
普通

内容正文:

课 题 6.2 二维数组 教 学 目 的 1掌握二维数组的定义和引用 教 材 分 析 教学重点 二维数组的定义、引用、初始化 教学难点 数组的存储形式,数组的首地址 课时安排 2 教学方法 讲授与演示法相结合例举法、讨论法 教具 计算机、投影仪 教 学 内 容 及 过 程 设 计 第一课时 一、复习引入 一维数组他定义,是一行同类型的变量存储空间,那若是几行同类型的变量来存量数据将如何实现? 二、新授 1、二维数组的定义 类型说明符 数组名[常量表达式1][常量表达式2]; 如:int number[5][4]; 数组的存储结构:以行为主序的连续空间 定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。如下: float a[3][4],b[5][10]; 不能写成 float a[3,4],b[5,10]; 注意:我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。 例如:可以把a看作是一个一维数组,它有3个元素:a[0]、a[1]、a[2],每个元素又是一个包含4个元素的一维数组 2、二维数组在内存中的存放 二维数组中的元素在内存中的排列顺序是:按行存放,即先顺序存放第一行的元素,再存放第二行的元素……下图表示对a[3][4]数组存放的顺序 3、二维数组的引用: 二维数组元素的表示形式为:数组名[下标][下标] 例如: a[2][3] 下标可以是整型表达式,如 a[2-1][2*2-1] 不要写成 a[2,3],a[2-1,2*2-1]形式 在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。 常出现的错误有: int a[3][4]; /* 定义a为3×4的数组 */ ┆ a[3][4]=3; 练习:1、以下对二维数组a的正确说明是 参考答案:C 。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 2、若有说明:int a[3][4];则对a数组元素的正确引用是 参考答案:C A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 第二课时 1、复习第一课时内容并拓展思考: 有了二维数组的基础,那么多维数组如何定义呢? 定义三维数组: float a[2][3][4]; 注意:多维数组元素在内存中的排列顺序:第一维的下标变化最慢,最右边的下标变化最快 2、二维数组的初始化 1.       分行给二维数组赋初值:如 static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 2.       可以将所有数据写在一个花括号内,按数组排列的顺序对元素赋初值;如: static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 3.       如果花括号内的初值个数少于每行中的数组元素个数,则每行中后面的元素自动赋初值0;也允许代表给每行元素赋初值的花括号的数目少于数组的行数,这时,后面各行的元素也自动赋0值。 4.C语言规定,可以用初始化的方法来隐含定义二维数组第一维的大小,即可以省略数组定义中第一个方括号中的表达式,但不能省略第二个方括号中的表达式。如:static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 等价于static int [ ][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 在定义时也可以只对部分元素赋初值而省略第一维长度,但应分行赋初值。 如: static int a[ ][4]={{0,0,3},{0},{0,10}}; 3、二维数组的输入与输出 用二重循环,以a[m][n]为例 for(i=0;i<m;i++) for(j=0;j<n;j++) {……} 4、实例讲解:将一个二维数组行和列元素互换,存到另一个二维数组中。 #include <stdio.h> void main() { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf(″array a:\n″); for (i=0;i<=1;i++) { for (j=0;j<=2;j++) { printf(″%5d″,a[i][j]); b[j][i]=a[i][j]; } printf(″\n″); } printf(″array b:\n″); for (i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d″,b[i][j]); printf(″\n″); } } /*程序结束*/ 5、思考练习:有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 (要求先作流程图再写程代码,并上机调试) #include <stdio.h> void main() { int i,j,row=0,colum=0,max; int a[3][4]={{1,2,3,4},{9,8,7,6}, {-10,10,-5,2}}; max=a[0][0]; for (i=0;i<=2;i++) for (j=0;j<=3;j++) if (a[i][j]>max) { max=a[i][j]; row=i; colum=j; } printf(″max=%d,row=%d,colum=%d\n″, max,row,colum); } /*程序结束*/ 三、课堂小结 1、 二维数组的定义、引用及初始化、二维数组的存储形式 四、布置作业 上机练习:上机训练题+例题 汇编练习:(P77)17-28 备注 上机练习,另练习与讲解各一课时 学科网(北京)股份有限公司 $$

资源预览图

6.2  二维数组(教学设计)- 《C语言(上)》同步教学(高教版)
1
6.2  二维数组(教学设计)- 《C语言(上)》同步教学(高教版)
2
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。