C语言程序设计教程-第2版-普通高等教育“十一五”国家级规划教材-教学课件-C第2版(第7章数组).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言程序设计教程-第2版-普通高等教育“十一五”国家级规划教材-教学课件-C第2版(第7章数组).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 普通 高等教育 十一 国家级 规划 教材 教学 课件 数组
- 资源描述:
-
1、在线教务辅导网:在线教务辅导网:http:/教材其余课件及动画素材请查阅在线教务辅导网教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187 或者直接输入下面地址:或者直接输入下面地址:http:/第第7 7章章 数组数组第7章 数组本章主要内容本章主要内容1.1.一维数组的概念一维数组的概念2.2.二维二维( (多维多维) )数组的概念数组的概念3.3.字符数组的概念字符数组的概念4.4.数组作为函数参数的作用数组作为函数参数的作用5.5.不同类型数组的区别不同类型数组的区别第7章 数组程序设计遇到的问题:程序设计遇到的问题: 处理大量具有相同数据类型数据时遇到不方便。处理大量具
2、有相同数据类型数据时遇到不方便。 如:计算Fibonacci数列前40个元素的值;统计50个商品的平均价格等等。 问题具有的特性:数据类型相同。 现有的解决方案:采用简单变量的方式。 现有方案的缺陷: 需要大量不同的标识符作为变量名; 变量在内存中的存放是随机的; 随着这种变量的增多,组织和管理好这些变量会使程序变得复杂。 改进的解决改进的解决方案:方案:使用数组。使用数组。第7章 数组数组具有的特点数组具有的特点1数组是一种变量的集合,在这个集合中,所有变量的数据类型都是相同的;2每一个数组元素的作用相当于简单变量;3同一数组中的数组元素在内存中占据的内存空间是连续的;4数组的大小(数组元素
3、的个数)必须在定义时确定,在程序中不可改变;5数组名代表的是数组在内存中的首地址。7.1 一维数组的定义和初始化7.1.1 一维数组的定义一维数组的定义 一维数组的定义格式:一维数组的定义格式: 存储类型存储类型 数组大小数组大小; 如:int a6; 说明:说明: 数组名为a; 数组有6个元素:a0、a1、 a2、 a3、 a4、 a5。 每个元素都代表着一个整型变量。 数组在内存中是按顺序连续存放的,占用的内存大小为每一个元素占用内存的大小的和。7.1 一维数组的定义和初始化使用数组时要注意的几个方面:使用数组时要注意的几个方面: C语言对数组的下标值是否越界不做检测。语言对数组的下标值是
4、否越界不做检测。 如有数组int score6,数组score的下标值为05。 若在程序中使用了score6或其他下标值,程序仍会运行,但有可能出现意外情况。 数组不能整体输入或整体输出。数组不能整体输入或整体输出。 只能对其数组元素进行输入和输出。只能对其数组元素进行输入和输出。7.1 一维数组的定义和初始化例例1 1:阅读程序,通过程序的运行结果,了解一维简单数组的输入和输出。程序:程序:example7_1.c结论:结论:为确保程序的正确性,要求使用的数组元素与定义的大小要相符合。如第1组的输入输出情况;对于超出数组大小范围的非数组元素,程序并未检查其合理性,其结果是无法预料的。如第2组
5、的输入输出情况;如果对超出数组大小的非数组元数输入合理的值,表面上看输出的结果也是正确的,但实际上系统已经出现了问题,程序会非正常结束。如第3组的输入输出情况。特别提示:特别提示: 使用数组的时候,要注意数组元素的合法性。7.1 一维数组的定义和初始化7.1.2 一维数组的初始化一维数组的初始化初始化数组格式:初始化数组格式:static 数组名数组名=;或: 数组名数组名=;例如例如: int a5 =2, 4, 6, 8,10;或:int a =2, 4, 6, 8,10; 数组元素:a0=2,a1=4,a2=6,a3=8,a4=10。 static int b5 =2, 4, 6, 8,
6、10;或:static int b =2, 4, 6, 8,10; 数组元素:b0=2 b1=4 b2=6 b3=8 b4=10存储类行为自动型:存储类行为自动型:auto7.1 一维数组的定义和初始化初始化数组元素时,初始化数组元素时,如果如果元素初值个数元素初值个数 数组的长度,数组的长度,有可能出现下面两种情况:有可能出现下面两种情况:自动存储类型: 未给定的数组元素的值不能确定。 例如:例如:int c5 =1, 3, 5; 则:c0=1,c1=3,c2=5。 c3和c4的值不能确定。静态存储类型: 数值型数组和字符型数组有所不同: 例如:例如:static int d5 =11, 3
7、3, 55; 则:d0=11,d1=33,d2=55,d3=0,d4=0。 而:static w5=A,B,C; 则:w0=A,w1=B,w2=C,w3=w4=NULL。7.2 一维数组的使用数组元素的引用: 数组名数组名下标下标数组元素的作用等同于简单变量。如有:如有:int a5=1,2,3,4,5,b5=2,4,6,8,10,c3=1,2,3;int a5=1,2,3,4,5,b5=2,4,6,8,10,c3=1,2,3;char w4=char w4=a, b, c, d,;则下面的语句是合法的:则下面的语句是合法的: a3=28; b4=a2+a3; w3= d; c2=c4%2;
8、printf(%d, a0);7.2 一维数组的使用数组元素引用的说明下标可以是整数或整型表达式,若i,j均为整型变量,则下面的数组使用是合法的。 vari+j=2; str1+2= e;下标的值不应超过数组的大小,如数组a的大小为5,则下标的取值在04的范围内。 再次提醒:再次提醒: C编译不检查下标是否“出界”。 对于数组:int var5,如果使用var5,系统不报错,会把var4下面一个单元中的内容作为var5引用,如图所示。7.2 一维数组的使用例例2 2:阅读下面的程序,了解一维数组各元素的基本应用情况。程序:程序:exampple7_2.c例例3 3:编写程序,计算出fibona
9、ci数列前20项的值,将计算结果保存到数组FBNC中。并将其输出到屏幕上,每行5项,一共4行。分析:分析:本例求解的问题与例6-8类似,用整型数组FBNC20保存数列;fibonaci数列的组成规律为: FBNC0=0 FBNC1=1 FBNCi= FBNCi-1+ FBNCi-2 (i=2,3,n) 从第三项开始的,每个数据项的值为前两个数据项的和。程序:程序:example7_3.c7.3 多 维 数 组7.3.2 二维数组的定义二维数组的定义二维数组的定义格式为: 数组名行元素个数列元素个数 ;例如:例如:char word32; int num24; float term43; 数组元
10、素的下标从0开始,数组word中的元素为: word00 word01 word10 word11 word20 word21二维数组的存放顺序:按行优先,先行后列。数组word在内存中的存放顺序如图所示:word00 word01 word10 word11 word20 word21 第 1 行 第 2 行 第 3 行 7.3 多 维 数 组根据数组的下标值可以算出各元素在内存中的排列顺序。设有一个mn的二维数组amn,aij在数组中的位置为: in+j+1; ( i=0,1,2,m1,j=0,1,n1) 例如:例如:数组a43: 则:元素a21在数组中的排列位置为:23+1+1=8。 即
11、a21在存储序列中排在第8位; 如果视其为一维数组,则下标值为7。000102101112202122303132aaaaaaaaaaaaa轾犏犏犏=犏犏犏犏臌7.3 多 维 数 组数组a的元素在内存的存储顺序:数组 a 的元素 排列位置(从 1 算起) 下标值(从 0 算起) a00 1 0 a01 2 1 a02 3 2 a10 4 3 a11 5 4 a12 6 5 a20 7 6 a21 8 7 a22 9 8 a30 10 9 a31 11 10 a32 12 11 7.3 多 维 数 组7.3.3 多维数组的定义多维数组的定义多维数组的定义格式为: 数组名下标1下标2下标n;注:注
12、:下标值表示元素的个数。多维数组的存储顺序按下标从左到右的变化顺序。可以像对待一维数组那样来处理多维数组。例如:例如: float V2232; 共有24个元素 int Tel323; 共有18个元素7.3 多 维 数 组Tel数组Tel323的元素为:Tel000 Tel001 Tel002Tel010 Tel011 Tel012Tel100 Tel101 Tel102Tel110 Tel111 Tel112Tel200 Tel201 Tel202Tel210 Tel211 Tel212Tel数组在内存中的存放顺序:Tel000 Tel001 Tel002 Tel010 Tel011 Tel
13、012 Tel100 Tel101 Tel102 Tel110 Tel111 Tel112 Tel200 Tel201 Tel202 Tel210 Tel211 Tel212 7.3 多 维 数 组example7_4.c程序的功能:程序的功能: 向一个具有向一个具有3行行4列列的二维数组的二维数组a 34输入数值并输出全输入数值并输出全部数组的元素。部数组的元素。例例4 4:阅读程序,了解多维数组元素的输入/输出方法。#include main() int i,j; int a34; printf(Please input value of a (a00a23):n); for (i=0;i
14、3;i+) for (j=0;j4;j+) scanf(%d,&aij); printf(The value of a is:n); for (i=0;i3;i+) for (j=0;j4;j+) printf(a%d%d=%dt,i,j,aij); printf(n); 7.3 多 维 数 组7.3.4 二维数组及多维数组的初始化二维数组及多维数组的初始化赋初值时可采用对元素全部赋值全部赋值和部分赋值部分赋值两种方式。1对全部元素赋初值对全部元素赋初值两种赋初值格式: 分行赋值方式; 按顺序赋值方式。以二维数组array32为例,赋初值格式为: array32 a1, a2, a3, a4,
15、 a5, a6; 分行赋值 array 32 a1, a2, a3, a4, a5, a6; 按顺序赋值 array 2 a1, a2, a3, a4, a5, a6; 按顺序赋值7.3 多 维 数 组例如:例如: int array 32=1,2, 3, 4, 5, 6; 分行赋值 int array 32= 1,2, 3, 4, 5, 6; 按顺序赋值 int array 2= 1,2, 3, 4, 5, 6; 按顺序赋值上面3种对数组array元素赋初值的结果相同。数组元素在内存中的排列顺序如图所示:数组元素在内存中的顺序 数组元素的值 array00 1 array01 2 array
16、10 3 array11 4 array20 5 array21 6 7.3 多 维 数 组2对部分元素赋初值对部分元素赋初值赋初值格式: array32=a1, a2,a3; 分行赋值 array32= a1, a2, a3; 按顺序赋值例如:例如:static int array 32=1, 2,3; 分行赋值 static int array 32= 1, 2, 3; 按顺序赋值上面两种对数组array部分元素赋初值的结果是相同的。 数组array的前面3个元素赋了初值; 后面3个元素未赋初值; 系统自动赋予0值(static型)。数组array中各元素的值为:array 00=1;ar
17、ray 01=2; array 10=3;array 11=0;array 20=5;array 21=6;7.4 字 符 数 组字符串”是指若干有效字符的序列,用双引号()括起来。C语言中的字符串可以包括字母、数字、专用字符、转义字符等。例如:例如: “Hello”、“C_Language”、“ax+b=c”、“78.6”、%fn“都是合法的字符串特别提示:C语言中并没有字符串变量。 C语言程序中处理字符串,要借用字符数组来完成。 将字符串的每一个字符保存在一个字符型数组中。作为字符数组,存放字符和存放字符串在输入/输出等方面会有一些不同。7.4 字 符 数 组例如:例如:char word
18、12;word是一个字符数组,可存放最多12个字符的字符串。要用word这个数组来存放“C_Language”10个字符。可以采用赋值语句,将字符一个一个地赋予字符数组元素,如:word0= C; word1= _;word2= L; word3= a;word4= n; word5= g;word6= u; word7= a;word8= g; word9= e;如果要输出数组的内容,不能整体输出不能整体输出,而需采用循环的方式将数组元素的值输出。word10和word11的值无法预知。7.4 字 符 数 组C语言规定:语言规定:用字符0作为字符串的结束标志。对上面的数组:char word
19、12;如已赋值:word0= C; word1= _;word2= L; word3= a;word4= n; word5= g;word6= u; word7= a;word8= g; word9= e;再加上一条语句:word10= 0;则:数组word中的内容就可以作为字符串字符串整体输出: printf(%s, word);7.4 字 符 数 组比较如图所示字符数组中字符和字符串的存储方式:Word0 C Word0 C Word1 Word1 Word2 L Word2 L Word3 a Word3 a Word4 n Word4 n Word5 g Word5 g Word6 u
展开阅读全文
链接地址:https://www.163wenku.com/p-2448866.html