




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、授课题目第四章数组(2)二维数组学习必备欢迎下载C语言程序设计课程教案表课时安排授课时间2教学目的和要求1掌握:二维数组的定义与使用方法。教学内容1基本内容:(1)二维数组的定义和使用方法2重点:二维数组的引用讲课进程和时间分配1、引入(5分钟)在C语言中,数组的元素还可以是数组,这样就构成二维数组,所以二维数组可以堪称是“数组的数组”。照此办理,还可以构成三维,四维数组(称多维数组)等等,二维数组是多维数组中最简单,最常用的数组,它代表多维数组的基本特征。2、二维数组的定义(10分钟)如前面所说,可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组如:inta34;可以将a数组看
2、作是一个一维数组,它有3个元素:a0、a1、a2,每个元素又是一个包含4个元素的一维数组。图在纸上:可以理解为:inta04,a14,a24,此处把a0,a1,a2看作一维数组名。说明:在这里为什么这么说呢?以后讲到指针的时候更便于理解二维数组的存储:二维数组从概念上可理解为行-列矩阵,但存储器是一维的,需按一定规则转换,在内存中:C语言中,二维数组中元素排列的顺序是按行存放,不同的语言它的排列顺序是不一样的,Fotran是按列存放的。如:见纸上也就是说:数组元素的实际存放顺序是:右边下标比左边下标变化得快!3、二维数组的引用(5分钟)注意下标的最大取值,即:要注意数组定义和数组元素引用的区别
3、,引用时候它的最大取值要比定义时少1如定义:inta34;则下标下限值是a00,下标上限值是a23,4、二维数组的初始化(按行存放)(15分钟)(1)按存放顺序赋初值如:intx23=1,2,3,4,5,6;结果为:x00=1,x01=2,x02=3,x10=4,x11=5,x12=6(2)按行赋初值如:intx23=1,2,3,4,5,6;结果同上。(3)部分赋初值如:staticintx23=1,2,4;/*以存放顺序赋*/结果为:x00=1,x01=2,x02=4,x10=0,x11=0,x12=0如:staticintx23=1,2,4;/*以行赋*/结果为:x00=1,x01=2,x
4、02=0,x10=4,x11=0,x12=0如:staticintx23=6,2,5,0,6;/*以行赋*/x00=6,x01=2,x02=0,x10=5,x11=0,x12=6说明:想给第二行第三个元素赋值为0的话不能写成5,6或者是5,6而应人为写上0.(4)省略第一维长度staticintx3=1,2,3,4,5,6,7;学习必备欢迎下载结果为:x00=1,x01=2,x02=3,x10=4,x11=5,x12=6,x20=7,x21=0,x22=0注意:不能省略第二维的长度。为什么?如果省略的话,就不知道一行有几个元素,给定这几个元素究竟应该如何赋值就不知道了,所以能省第一维,不能省第
5、二维,因为省的话系统不能确定,这样就产生二义性了。5、二维数组程序举例(20分钟)例1:二维数组的输入与输出一般二维数组的处理用二重循环来实现用循环变量的值控制数组元素的下标,因为数组是一个整体,要想取出其中每一个个体的话,就得用下标来控制。#includevoidmain()inta33,I,j;for(i=0;i=2;i+)for(j=0;j=2;j+)scanf(“%d”,&aij);for(i=0;j=2;i+)for(j=0;j=2;j+)printf(“%5d”,aij);printf(“n”);上述程序为学生详细分析一下。for(i=0;i=2;i+)for(j=0;j=2;j+
6、)scanf(“%d”,&aji);分析输出结果与上述有何不同,未修改时先给每行赋值,修改后是先给每列赋值for(i=0;j=2;i+)for(j=0;j=2;j+)if(i+j)%2)修改为if(i+j)%2=0)printf(“%5d”,aij);for(i=0;i=字符个数+1(字符串后面自动加上一个0)例字符数组初始化#includevoidmain()chara7=a,p,p,l,e;charb7=”apple”;charc7;staticcharx7;inti;for(i=0;i=6;i+)printf(“%6d%6d%6d%6dn”,ai,bi,ci,xi);显示结果:9797-
7、230112112750108108800101101-2000510001230学习必备欢迎下载c数组的各个元素的值是随机的。X数组用static说明,系统给它赋初值0.例用一个字符串给字符数组赋初值,然后打印出各元素的ASCII编码值#includevoidmain()charstr=”Thisisastring!”;inti=0;while(stri!=0)printf(“%c=%dn”,stri,stri);i+printf(“%c=%dn”,stri,stri);输出结果:T=84H=104I=105S=115=32注意几个问题:用字符串给字符数组赋初值,系统自动加上空字符0(终结符
8、)空格字符的AscII编码为320空字符ASCII编码为0两者均无法直接打印出来。3)字符串的引用与输入输出对于字符数组,在程序中既可以逐个引用字符串中的单个字符(数组元素)也可以一次引用整个字符串(数组),这点在数值数组中是不可以的!1、逐个字符数组元素输入输出:用%c格式符描述。例:scanf(“%c”,&ai);printf(“%c%c%c”,a0,a2,a3);2、整个字符串(数组)输入输出,用%s格式符描述如:chara=”china”scanf(“%s”,a);printf(“%s”,a);a前没地址符,因为数组名就代表数组的起始地址注意1:用%s输出,无论数组元素有多少个只要遇到“0”便结束。如:charstar34=”*”,“*”,“*”;printf(“%sn%sn%sn”,star0,star1,star2);说明:star0代表第一行首地址。结果为:*注意2:%s要求的是地址,对一维数组,数组名就是地址;对二维数组,只写行下标时是地址。如chara6;scanf(“%s”,a);输入数据:china如:charstr15,str25,str35输入数据:howareyou?用%s输入串时遇到空格或回车就默认前一个字符串输入结束。也可以定义一个二维数组voidmain()学习必备欢迎下载chars35;scan
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省余姚市2022-2023学年高一下学期语文期末试卷(含答案)
- 2025共同借款合同中的连带责任担保条款示范文本
- 2025婚礼宴会承包合同模板
- 2025大货车租赁合同范本
- 2025培训班转让合同协议样本
- 2025关于服务采购合同范本
- 2025商业租赁合同范本模板
- 《流行性疾病概述》课件
- 《软件工程》课件设计模式的应用与实践
- 《前庭神经解剖》课件
- 中小学校岗位安全工作指导手册1
- 化工仪表及自动化第六版-课后-答案
- 2021年新湘教版九年级数学中考总复习教案
- DB32∕T 4073-2021 建筑施工承插型盘扣式钢管支架安全技术规程
- (完整版)机电工程质量通病防治(最终版)课件
- 现代汉语_短语PPT课件
- 分子生物学教学课件:噬菌体调控
- 柳工挖掘机说明书_图文
- Let-It-Go中英文完整歌词
- 履带式搜救机器人机械结构设计
- 电磁铁电磁力计算方法
评论
0/150
提交评论