资源描述:
《C语言教案-第九周》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计第九节数组——二维数组1:通过对本节课的学习,能够了解、掌握二维数组定义、初始化、引用和在程序中使用。1.1教学目的:1.掌握二维数组定义、初始化、引用2.能够实现二维数组的应用1.2教学内容:1.二维数组定义、初始化及引用2.二维数组的应用1.3教学重点:二维数组定义、初始化及引用1.4教学方法:讲授法、课件演示1.5学习方法:听课、做笔记、课后作业2:回顾上一节:[15分钟]1.概念:数组、数组元素、数组下标2.一维数组的定义、初始化、引用3:课程知识点讲解:具体知识点1:二维数组定义和引用[15分钟
2、]1、二维数组的定义形式为类型标识符数组名[常量表达式][常量表达式];例如:inta[3][2];表示数组a是一个3×2(3行2列)的数组,共有6个元素,每个元素都是int型。二维数组的应用之一是矩阵和行列式。其中,左起第一个下标表示行数,第二个下标表示列数。我们也可以把二维数组看成是一种特殊的一维数组:它的元素又是一个一维数组。例如,可将上面的a数组看成是一个一维数组,它有3个元素,分别是a[0],a[1],a[2],每个元素又是一个包含2个元素的一维数组,如图6.7所示,因此可以把a[0],a[1],a[2]看作
3、是三个一维数组的名字。上面定义的二维数组就可理解为定义了三个一维数组,即相当于5--C语言程序设计把a[0],a[1],a[2]看作是三个一维数组名。C语言的这种处理方法在数组初始化和用指针表示是显得很不方便,这在以后会体会到的。C语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。2、二维数组的引用也是逐个引用数组中的元素的。二维数组的元素的表示形式为:数组名[下标][下标]下标可以是整型表达式,如a[2-1][2*2-1]。数组元素可以出现在表达式中,也可以被赋值。具
4、体知识点2:二维数组的初始化[15分钟]1、分行给二维数组赋初值。如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};这种赋初值方法比较直观,把第一个花括弧内的数据赋给第一行的元素,第二个花括弧内的数据赋给第二行的元素,……,即按行赋初值。2、可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};效果与前相同。但以第1种方法为好,一行对一行,界线清楚。用第2种方法如果数据多,写成一大
5、片,容易遗漏,也不易检查。3、可以对部分元素赋初值inta[3][4]={{1},{5},{9}};它的作用是只对各行第1列的元素赋初值,其余元素值自动为0。赋初值后数组各元素为:100050009000也可以对各行中的某一元素赋初值:inta[3][4]={{1},{0,6},{0,0,11}};初始化后的数组元素如下:1000060000110这种方法对非0元素少时比较方便,不必将所有的0都写出来,只需输入少量数据。也可以只对某几行元素赋初值:5--C语言程序设计inta[3][4]={{1},{5,6}};数组元
6、素为100056000000第三行不赋初值。也可以对第二行不赋初值:inta[3][4]={{1},{},{9}};4、如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。如inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};与下面的定义等价:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};系统会根据数据总个数分配存储空间,一共12个数据,每行4列,当然可确定为3行。在定义时也可以只对部分元素赋初值而省略第一
7、维的长度,但应分行赋初值。如:inta[][4]={{0,0,3},{},{0,10}};这样的写法,能通知编译系统:数组共有3行。数组各元素为0030000001000a[][]这种两个方括弧的方式,对数组初始化时十分有用,它使概念清楚,使用方便,不易出错。具体知识点3:二维数组程序举例[35分钟]案例讲解:【案例6.10】下面是定义和输出二维数组的程序。假设程序执行后输入1、2、3、4、5、6、7、8、9、0这10个数,判断程序运行的结果。程序如下:#includemain(){inta[3][2
8、]={{1,2},{3,4},{5,6}};inti,j,b[2][5];for(i=0;i<2;i++)for(j=0;j<5;j++)scanf(“%d”,&b[i][j]);printf(“arraya:”);for(i=0;i<3;i++){for(j=0;j<2;j++)printf(“%5d”,a[i][j]);p