教学课件C语言程序设计案例教程第5章 数组.ppt
《教学课件C语言程序设计案例教程第5章 数组.ppt》由会员分享,可在线阅读,更多相关《教学课件C语言程序设计案例教程第5章 数组.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件C语言程序设计案例教程第5章 数组C语言程序设计案例教程 C语言程序设计案例教程 大连理工
2、大学出版社第5章 数组v教学目的:教学目的:通过本章的学习,要求能熟练掌握数组的基本概念,通过本章的学习,要求能熟练掌握数组的基本概念,熟练掌握一维数组、二维数组和字符数组的定义、赋值,熟练掌握一维数组、二维数组和字符数组的定义、赋值,熟练掌握数组的输入和输出方法,掌握字符串和字符数组熟练掌握数组的输入和输出方法,掌握字符串和字符数组的不同特点,掌握数组的排序、查询等基本操作方法。学的不同特点,掌握数组的排序、查询等基本操作方法。学习数组知识为后续章节做好准备,也为后续面向对象语言习数组知识为后续章节做好准备,也为后续面向对象语言课程的学习打下基础课程的学习打下基础 。 C语言程序设计案例教程
3、 大连理工大学出版社第5章 数组v本章内容本章内容 数组的数组的C C程序引例:通过简单的数组程序引例:通过简单的数组C C程序来引入章节内容程序来引入章节内容一维数组的定义和引用一维数组的定义和引用字符数组与字符串字符数组与字符串二维数组的定义和引用二维数组的定义和引用综合实训:通过具体的案例来巩固数组的知识点综合实训:通过具体的案例来巩固数组的知识点 C语言程序设计案例教程 大连理工大学出版社第5章 数组v重点和难点重点和难点重点:重点:(1)一维数组的定义与应用一维数组的定义与应用(2)数组的排序数组的排序(3)二维数组的定义与应用二维数组的定义与应用(4)字符数组与字符串的应用字符数组
4、与字符串的应用难点难点(1)一维数组的定义与应用一维数组的定义与应用(2)数组的排序数组的排序 C语言程序设计案例教程 大连理工大学出版社5.1 数组引例 【例例5.1】一个简单的一个简单的C程序数组引例程序数组引例/*源文件名:源文件名:Li5_1.c功能:从键盘输入一个不长于功能:从键盘输入一个不长于20个字符的字符串,按个字符的字符串,按与输入顺序相反的次序输出此字符串,例如输入与输入顺序相反的次序输出此字符串,例如输入dimension,输出输出noisnemid。*/ C语言程序设计案例教程 大连理工大学出版社#include void main()char ch,s20; /*定义
5、定义s字符数组,它最多可以容纳字符数组,它最多可以容纳20个字符个字符*/printf(输入字符串:输入字符串:); /*打印输出一串字符串打印输出一串字符串*/ i=0 /*i为统计字符个数为统计字符个数*/do ch=getchar(); /*从键盘上输入字符从键盘上输入字符*/ if(ch!=n) si+=ch; /*读取的字符存在读取的字符存在s0,s1*/ while(i=0;-i) putchar(si) ; /*反向输出这些字符反向输出这些字符*/putchar(n); 程序运行后,屏幕显示:程序运行后,屏幕显示: 输入字符串:输入字符串:dimension 反向顺序:反向顺序:
6、noisnemid5.1 数组引例 C语言程序设计案例教程 大连理工大学出版社一个班学生的学习成绩或一行文字等这些数据的特点是:一个班学生的学习成绩或一行文字等这些数据的特点是:具有相同的数据类型具有相同的数据类型使用过程中需要保留原始数据使用过程中需要保留原始数据C语言为这些数据提供了一种构造数据类型:数组。所语言为这些数据提供了一种构造数据类型:数组。所谓数组就是一组具有相同数据类型的数据的有序集合谓数组就是一组具有相同数据类型的数据的有序集合 。5.2 一维数组的定义和引用 5.2.1 一维数组的定义 C语言程序设计案例教程 大连理工大学出版社1.一般定义一般定义一维数组的定义方法一般为
7、:一维数组的定义方法一般为:类型说明符类型说明符 数组名常量表达式数组名常量表达式其 中 类 型 可 以 是 任 何 的其 中 类 型 可 以 是 任 何 的 C 语 言 数 据 类 型 , 例 如语 言 数 据 类 型 , 例 如char,int,long,float,double等,数组名与普通变量名一等,数组名与普通变量名一样,常量表达式是数组在内存中的单元数,在定义时必须是一样,常量表达式是数组在内存中的单元数,在定义时必须是一个常数,不能是变量,数组的每个单元占的字节数就是对应类个常数,不能是变量,数组的每个单元占的字节数就是对应类型占的字节数,显然数组占的总字节数是:常量表达式型占
8、的字节数,显然数组占的总字节数是:常量表达式*sizeof(类型类型)5.2 一维数组的定义和引用 5.2.1 一维数组的定义 C语言程序设计案例教程 大连理工大学出版社例如:例如:char s20 ; /*定义能存储定义能存储20个字符的数组个字符的数组*/int n20 ; /*定义能存储定义能存储20个整数的数组个整数的数组*/float f20 ; /*定义能存储定义能存储20个个float数的数组数的数组*/数组定义中常见的错误举例说明如下:数组定义中常见的错误举例说明如下:float a0 ; /*数组大小为数组大小为0没有意义没有意义*/int b(2) ; /*不能使用圆括号不
9、能使用圆括号*/int k,ak ; /*不能用变量说明数组大小不能用变量说明数组大小*/ 5.2 一维数组的定义和引用 5.2.1 一维数组的定义 C语言程序设计案例教程 大连理工大学出版社5.2 一维数组的定义和引用 5.2.1 一维数组的定义 2.定义及初始化定义及初始化数组在定义时还可以同时为各个单元设置初始值。数组在定义时还可以同时为各个单元设置初始值。定义时给所有元素赋值,例如:定义时给所有元素赋值,例如: char s5= a,b, c,d,e ;定义数组定义数组s5,并且设置,并且设置 s0=a,s1=b,s2=c,s3=d,s4=e C语言程序设计案例教程 大连理工大学出版社
10、5.2 一维数组的定义和引用 5.2.1 一维数组的定义 定义时给部分元素赋值,例如:定义时给部分元素赋值,例如: char s5= a,b ; 定义数组定义数组s5,并且设置,并且设置s0=a,s1=b,s2=0,s3=0,s4=0, 即后面没有赋值的元素全部设置为即后面没有赋值的元素全部设置为0。定义时给所有的元素赋值,则可以不设置数组的大小,例如:定义时给所有的元素赋值,则可以不设置数组的大小,例如: char s= a,b, c,d,e ;与与char s5= a,b, c,d,e ;是等价的。是等价的。 C语言程序设计案例教程 大连理工大学出版社5.2 一维数组的定义和引用1. 一维
11、数组元素的引用方式一维数组元素的引用方式数组名数组名下标下标下标可以是整型常量或整型表达式。下标可以是整型常量或整型表达式。例如例如: a0=a5+a7-a2*32.一维数组元素引用的程序实例一维数组元素引用的程序实例【例例5.2】用数组来处理用数组来处理,求解求解Fibonacci数列。数列。/*源文件名:源文件名:Li5_2.c功能:求解功能:求解Fibonacci数列前数列前20项的值。项的值。*/5.2.2 一维数组的引用 C语言程序设计案例教程 大连理工大学出版社5.2 一维数组的定义和引用 5.2.2 一维数组的引用#include void main() int i,f20=1,
12、1 ; /*定义定义f数组,第数组,第1项和第项和第2项的值都为项的值都为1*/ for(i=2;i20;i+) fi=fi-2+fi-1 ; /*给给f数组第数组第3项和第项和第20项赋值项赋值*/ for(i=0;ii。 对于任何一个对于任何一个ai,如果,如果aiaj,表明前面有一个元素,表明前面有一个元素ai比它后面的元素比它后面的元素aj大,大,ai应该在后面,应该在后面,aj应该在应该在前面,交换前面,交换ai与与aj。对于任何一个对于任何一个ai,都循环一次,都循环一次j,j循环完成后循环完成后ai必不大必不大于于ai+1,an-1,重复,重复i循环,循环,i循环结束后数组从循环
13、结束后数组从小到大排序。小到大排序。 C语言程序设计案例教程 大连理工大学出版社#include #include void main()int a10,i,j,k ; /*定义定义a数组,数组,i、j为循环变量,为循环变量,k为临时变为临时变量量*/for(i=0;i10;i+) ai=rand()%100 ; /*给给a数组随机赋数组随机赋0100之内的整数之内的整数*/ printf(排序之前的数据排序之前的数据) ; for(i=0;i10;i+) printf(%d ,ai) ; /*输出输出a数组的值,未排序数组的值,未排序*/ putchar(n) ; for(i=0;i9;i+
14、)5.2 一维数组的定义和引用 5.2.2 一维数组的引用 C语言程序设计案例教程 大连理工大学出版社5.2 一维数组的定义和引用 5.2.2 一维数组的引用 for(j=i+1;jaj) k=ai ; ai=aj ; aj=k ; /*数组排序数组排序*/ for(i=0;i10;i+) printf(%d ,ai) ; /*输出输出a数组的值,已排序数组的值,已排序*/ putchar(n) ;程序运行后,屏幕显示:程序运行后,屏幕显示: 34 45 26 15 76 84 98 29 67 1111 15 26 29 34 45 67 76 84 98 C语言程序设计案例教程 大连理工大
15、学出版社 5.3 二维数组的定义和引用二维数组实际上就是一维数组的数组,即它的每一个一维元素二维数组实际上就是一维数组的数组,即它的每一个一维元素都是一个一维数组,定义如下:都是一个一维数组,定义如下:类型说明符类型说明符 数组名数组名常量表达式常量表达式常量表达式常量表达式 ;例如:例如: int a35 ;5.3.1 二维数组的定义 C语言程序设计案例教程 大连理工大学出版社 5.3 二维数组的定义和引用 5.3.1 二维数组的定义 a是一个二维数组,其中是一个二维数组,其中a0,a1,a2每一个都是每一个都是一维数组,它们各有一维数组,它们各有5个元素,分别是:个元素,分别是:a00、a
16、01、a02、a03、a04a10、a11、a12、a13、a14a20、a21、a22、a23、a24其中其中aij(i=0,1,2,j=0,1,2,3,4)是一)是一个整数单元,这个数组共有个整数单元,这个数组共有15个整数单元,它们在内存中的个整数单元,它们在内存中的分布是先按行排列再按列排列,分布是先按行排列再按列排列,a00是第是第1个元素,个元素,a10是第是第6个元素,个元素,a24是第是第15个元素,如个元素,如下表所示。下表所示。 C语言程序设计案例教程 大连理工大学出版社 5.3 二维数组的定义和引用 5.3.1 二维数组的定义a00a01 a02a03a04a10a11a
17、12a13a14a20a21a22a23a24二维数组在定义时也可以对各个元素初始化,例如:二维数组在定义时也可以对各个元素初始化,例如:int a35=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 ;初始化的数据按先排列行再排列列的顺序为每一个元素赋值,赋初始化的数据按先排列行再排列列的顺序为每一个元素赋值,赋值的结果如下表所示。值的结果如下表所示。 C语言程序设计案例教程 大连理工大学出版社 5.3 二维数组的定义和引用 5.3.1 二维数组的定义也可以用大括号来划分初始值,例如:也可以用大括号来划分初始值,例如: int a35=1,2,3,4,5,6,7,8
18、;其中其中1,2,3,4,5对对a0数组赋初始值,数组赋初始值,6对对a1数组数组赋初始值,赋初始值,7,8对对a2数组赋初始值,赋值的结果如下表数组赋初始值,赋值的结果如下表所示。所示。 a00=1a01=2a02=3a03=4a04=5a10=6a11=7a12=8a13=9a14=10a20=11a21=0a22=0a23=0a24=0 C语言程序设计案例教程 大连理工大学出版社 5.3 二维数组的定义和引用 5.3.1 二维数组的定义a00=1a01=2a02=3a03=4a04=5a10=6a11=0a12=0a13=0a14=0a20=7a21=8a22=0a23=0a24=0在明
19、确了括号的对数后,数组的第在明确了括号的对数后,数组的第1维可以不写,但第维可以不写,但第2维不维不能不写,例如:能不写,例如:int a 5=1,2,3,4,5,6,7,8 ;系统也会知道第系统也会知道第1维是维是3,等价于:,等价于:int a35=1,2,3,4,5,6,7,8 ; C语言程序设计案例教程 大连理工大学出版社 5.3 二维数组的定义和引用 5.3.1 二维数组的定义二维数组的数值数组被广泛应用于数学的矩阵计算中,二维数组的数值数组被广泛应用于数学的矩阵计算中,二维数组的字符数组可用来存储一组字符串,例如:二维数组的字符数组可用来存储一组字符串,例如:char s38= o
20、ne,two,three ;其中,其中,s0,s1,s2都是一个都是一个8个字符的一维字个字符的一维字符数组,分别存储符数组,分别存储one、two、three字符串,赋值字符串,赋值的结果如下表的结果如下表5-5所示。所示。S00ne0S1two0S2three0表5-5 C语言程序设计案例教程 大连理工大学出版社5.3 二维数组的定义和引用1.二维数组元素的表示形式:二维数组元素的表示形式:数组名数组名下标下标下标下标例如:例如:a23下标可以是整型表达式,如下标可以是整型表达式,如a2-12*2-1数组元素可以出现在表达式中,也可以被赋值。数组元素可以出现在表达式中,也可以被赋值。例如:
21、例如:b12=a23/2在使用数组元素时,应该注意下标值应在已定义的数组大小的在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。范围内。5.3.2 二维数组的引用 C语言程序设计案例教程 大连理工大学出版社5.3 二维数组的定义和引用 5.3.2 二维数组的引用2.二维数组元素引用的程序实例二维数组元素引用的程序实例【例例5.4】将一个二维数组行和列元素互换,存到另一个二维将一个二维数组行和列元素互换,存到另一个二维数组中。例如数组中。例如 1 2 3 1 4a= 4 5 6 b= 2 5 3 6/*源文件名:源文件名:Li5_4.c功能:将一个二维数组行和列元素互换,存到另一个二
22、维数组功能:将一个二维数组行和列元素互换,存到另一个二维数组中。中。*/ C语言程序设计案例教程 大连理工大学出版社5.3 二维数组的定义和引用 5.3.2 二维数组的引用#include void main()int a23=1,2,3,4,5,6 ; /*定义定义a二维数组二维数组*/int b32,i,j ; /*定义定义b二维数组二维数组*/printf(数组数组a:n) ;for (i=0;i=1;i+) for (j=0;j=2;j+) printf(%5d,aij) ; /*输出输出a二维数组二维数组*/ bji=aij ; /*a数组行和列元素互换,存到数组行和列元素互换,存到
23、b数组数组*/ C语言程序设计案例教程 大连理工大学出版社5.3 二维数组的定义和引用 5.3.2 二维数组的引用printf(n) ;printf(数组数组b:n) ;for (i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij) ; /*输出输出b二维数组二维数组*/ printf(n) ; C语言程序设计案例教程 大连理工大学出版社5.3 二维数组的定义和引用 5.3.2 二维数组的引用程序运行后,屏幕显示:程序运行后,屏幕显示:数组数组a:1 2 34 5 6数组数组b:1 42 53 6 C语言程序设计案例教程 大连理工大学出版社5.3 二维数组的定
24、义和引用 5.3.2 二维数组的引用 【例例5.5】定义一个整数数组定义一个整数数组a56 ,用随机函数值填写每个,用随机函数值填写每个单元,找出最大值的单元,输出其行号及列号。单元,找出最大值的单元,输出其行号及列号。 /*源文件名:源文件名:Li5_5.c功能:找出二维数组中最大值的单元,输出其行号及列号。功能:找出二维数组中最大值的单元,输出其行号及列号。 */ C语言程序设计案例教程 大连理工大学出版社5.3 二维数组的定义和引用 5.3.2 二维数组的引用 #include #include void main()int a56 ; /*定义定义a二维数组二维数组*/ int i,j
25、,k,l,max ; /*定义定义i、j为循环变量,为循环变量,k、l为最大值所在的为最大值所在的 行和列,行和列,max为最大值为最大值*/for(i=0;i5;i+) for(j=0;j6;j+) aij=rand()%100 ; /*给给a二维数组赋值二维数组赋值*/ max=a00 ; k=0 ; l=0 ; /*把把a00假设为最大值假设为最大值*/for(i=0;i5;i+) for(j=0;jmax) k=i ; l=j ; max=aij ; /*保存最大值及其行号保存最大值及其行号k及列号及列号l*/printf(数组是数组是n)for(i=0;i5;i+) ; for(j=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件C语言程序设计案例教程第5章 数组 教学 课件 语言程序设计 案例 教程
限制150内