C语言程序设计__第5章.ppt
《C语言程序设计__第5章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计__第5章.ppt(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计电子教案 第5章数组 第第5 5章数组章数组 返回总目录C语言程序设计电子教案 第5章数组目录目录 5.15.1一维数组一维数组 5.25.2二维数组二维数组 5.35.3多维数组多维数组 5.65.6习题五习题五 5.45.4函数与数组函数与数组 5.55.5问题与解答问题与解答 返回总目录C语言程序设计电子教案 第5章数组基本要求:基本要求:)熟悉一维、二维及多维数组的定义、初始化与引用;)熟悉字符串数组与字符串操作;)熟悉“函数与数组”的相关操作。学习重点:学习重点:)“函数与数组”的相关操作;C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.05.1.0 引
2、言引言 返回目录C C语言提供了多种数据类型,除了前面介绍的语言提供了多种数据类型,除了前面介绍的整型、实型和字符型等基本数据类型外,还整型、实型和字符型等基本数据类型外,还有一些扩展的数据类型,如有一些扩展的数据类型,如数组、指针、结数组、指针、结构和联合构和联合等。由于它们是等。由于它们是由基本数据类型按由基本数据类型按一定规则组成的一定规则组成的,所以被称之为,所以被称之为复合数据类复合数据类型或构造数据类型。型或构造数据类型。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.05.1.0 引言引言 本章首先介绍一种最常用的构造数据类型本章首先介绍一种最常用的构造数据类型数
3、组。数组。数组数组是具有一定顺序关系的若干个同类型变量是具有一定顺序关系的若干个同类型变量的集合的集合。在数组中,每一个变量称之为一个在数组中,每一个变量称之为一个数组元素数组元素。数组中的各个数组元素又可以用一个统一的数组中的各个数组元素又可以用一个统一的“数组名数组名”后接不同的后接不同的“下标下标”来惟一确定。来惟一确定。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.05.1.0 引言引言 按照数组元素的类型可把数组分为按照数组元素的类型可把数组分为整型数组、整型数组、实型数组、字符型数组和指针型数组实型数组、字符型数组和指针型数组等。等。按照下标的个数又可以把数组分为
4、按照下标的个数又可以把数组分为一维数组、一维数组、二维数组和多维数组二维数组和多维数组。我们首先学习最简单也是最常用的我们首先学习最简单也是最常用的“一维数组一维数组”。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维数组的定义与初始化 l 一维数组的定义一维数组的定义在在C C语言中,与变量的定义一样,数组也遵循语言中,与变量的定义一样,数组也遵循“先定义后使先定义后使用用”的原则。一维数组的定义格式为:的原则。一维数组的定义格式为:类型说明符类型说明符 数组名数组名 常量表达式常量表达式;例如:例如:shortshortscore8;
5、score8;表示定义一个数组,数组名为表示定义一个数组,数组名为scorescore,共有,共有8 8个元素,每个元个元素,每个元素的数据类型均为短整型。素的数据类型均为短整型。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维数组的定义与初始化 当在说明部分定义了一个数组之后,当在说明部分定义了一个数组之后,C C编译程序会为所定义的数编译程序会为所定义的数组在内存中开辟一串连续的存储单元,本例定义的组在内存中开辟一串连续的存储单元,本例定义的score score 数组在数组在内存中的排列如图内存中的排列如图5.15.1所示。所示。S
6、coreScore数组共有数组共有8 8个元素,在内存中,这个元素,在内存中,这8 8个数组元素共占用个数组元素共占用8 8个连个连续的存储单元,每个存储单元中只能存储一个整数,第一个元素续的存储单元,每个存储单元中只能存储一个整数,第一个元素对应的存储单元的地址称为数组首地址。(图中假设首地址为对应的存储单元的地址称为数组首地址。(图中假设首地址为20002000,每个,每个shortshort型数据占型数据占2 2个字节)个字节).l 一维数组的定义一维数组的定义C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维数组的定义与初始化 在定
7、义一维数组时,应注意以下几点:在定义一维数组时,应注意以下几点:l 一维数组的定义一维数组的定义1.1.类型说明符用来说明数组元素属于何种数据类型类型说明符用来说明数组元素属于何种数据类型,如,如intint、charchar、floatfloat或或doubledouble等。等。2.2.数组名数组名由用户自定义,与变量名的命名一样,遵循标识符由用户自定义,与变量名的命名一样,遵循标识符命名规则。命名规则。3.3.数组名后必须用数组名后必须用“方括号方括号”括起常量表达式,不能用其它括起常量表达式,不能用其它括号。括号。例如:例如:short score(8);short score(8);
8、short score;short score;short score8;short score8;这这3 3个定义都是错误的。个定义都是错误的。4.4.常量表达式定义数组的长度,表示数组的元素个数常量表达式定义数组的长度,表示数组的元素个数。但要。但要注意,数组在内存中所占的字节数数组长度注意,数组在内存中所占的字节数数组长度元素类型元素类型长度。如图长度。如图5.15.1定义的数组定义的数组scorescore在内存中所占字节数在内存中所占字节数82821616。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维数组的定义与初始化 在定
9、义一维数组时,应注意以下几点:在定义一维数组时,应注意以下几点:l 一维数组的定义一维数组的定义5.5.常量表达式中一般包括整型常量、字符常量或符号常量常量表达式中一般包括整型常量、字符常量或符号常量,但不能包括实型(符号)常量或字符串(符号)常量。但不能包括实型(符号)常量或字符串(符号)常量。6.6.当然,实际使用时,除非特殊需要,一般都只要用一当然,实际使用时,除非特殊需要,一般都只要用一个个“整型常量值整型常量值”来定义数组的长度即可。来定义数组的长度即可。6.6.常量表达式中不能包括变量常量表达式中不能包括变量。例如:例如:short n=8;short n=8;short shor
10、t scorenscoren;是不正确的。是不正确的。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维数组的定义与初始化 在定义一维数组时,应注意以下几点:在定义一维数组时,应注意以下几点:l 一维数组的定义一维数组的定义7.7.数组元素的下标从数组元素的下标从0 0开始开始,所以上例定义的数组的,所以上例定义的数组的8 8个元素个元素分别是:分别是:score0score0、score1score1、score2score2、score3score3、score4score4、score5score5、score6score6、scor
11、e7score7。注意最大下。注意最大下标是标是7 7而不是而不是8 8,不要弄错!,不要弄错!8.8.相同类型的数组、变量可放在一起定义,中间用逗号隔开相同类型的数组、变量可放在一起定义,中间用逗号隔开。例如:例如:short short a,ba,b=8,score8,c,num10,d;=8,score8,c,num10,d;是正确的。其中定义了是正确的。其中定义了4 4个变量(个变量(a,b,c,da,b,c,d)和)和2 2个数组个数组(scorescore和和numnum)。)。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维
12、数组的定义与初始化 l 一维数组的初始化一维数组的初始化数组的初始化是指在定义数组的同时为数组元素赋初始值。数组的初始化是指在定义数组的同时为数组元素赋初始值。一维数组在定义时进行初始化的格式为:一维数组在定义时进行初始化的格式为:类型说明符类型说明符 数组名数组名 常量表达式常量表达式=值值1 1,值,值2 2,值,值n;n;其中,大括号中的各个值依次对应赋给数组中的各个元素。各其中,大括号中的各个值依次对应赋给数组中的各个元素。各个值之间用逗号隔开。个值之间用逗号隔开。例如,数组定义及初始化语句为:例如,数组定义及初始化语句为:intintx5=1,2,3,4,5;x5=1,2,3,4,5
13、;则有:则有:x0=1;x1=2;x2=3;x3=4;x4=5;x0=1;x1=2;x2=3;x3=4;x4=5;C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维数组的定义与初始化 l 一维数组的初始化一维数组的初始化在定义并初始化一维数组时,应注意以下几点:在定义并初始化一维数组时,应注意以下几点:(1)(1)若若 中初值的个数数组元素个数,则只有数组的前部中初值的个数数组元素个数,则只有数组的前部分元素对应获得初值,后部分没有获得初值的元素则置相分元素对应获得初值,后部分没有获得初值的元素则置相应类型的默认值(如应类型的默认值(如in
14、tint型置整数型置整数0 0,charchar型置字符型置字符00,floatfloat型置实数型置实数0.0000000.000000等)。等)。例如定义:例如定义:intintx5=1,2,3;x5=1,2,3;则有:则有:x0=1;x1=2;x2=3;x3=0;x4=0 x0=1;x1=2;x2=3;x3=0;x4=0。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维数组的定义与初始化 l 一维数组的初始化一维数组的初始化在定义并初始化一维数组时,应注意以下几点:在定义并初始化一维数组时,应注意以下几点:(2)(2)若若 中初值的
15、个数数组元素个数,则在数组定义时可中初值的个数数组元素个数,则在数组定义时可省略元素个数,此时数组长度由省略元素个数,此时数组长度由 中值的个数来决定。中值的个数来决定。例如定义:例如定义:intintx=1,2,3,4,5;x=1,2,3,4,5;就相当于就相当于intint x5=1,2,3,4,5 x5=1,2,3,4,5。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.15.1.1 一维数组的定义与初始化一维数组的定义与初始化 l 一维数组的初始化一维数组的初始化在定义并初始化一维数组时,应注意以下几点:在定义并初始化一维数组时,应注意以下几点:(3)(3)若若 中初值
16、的个数数组元素个数,则编译时会出现中初值的个数数组元素个数,则编译时会出现“too many too many initializersinitializers”之类的错误,表示初值个数之类的错误,表示初值个数太多。太多。例如定义:例如定义:intintx5=1,2,3,4,5,6;x5=1,2,3,4,5,6;是不对的。因为初值个数(是不对的。因为初值个数(=6=6)超过了定义的数组长度)超过了定义的数组长度(=5=5)。)。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.25.1.2 一维数组的引用一维数组的引用 l 一维数组的引用一维数组的引用 C C语言规定数组不能以整
17、体形式参与各种运算。参与各种语言规定数组不能以整体形式参与各种运算。参与各种运算的只能是数组元素,即在程序中不能一次引用整个数组运算的只能是数组元素,即在程序中不能一次引用整个数组而只能逐个引用数组元素。而只能逐个引用数组元素。一维数组元素的引用形式为:一维数组元素的引用形式为:数组名数组名 下标下标 其中,下标可以是整型常量,整型变量或整型表达式。例其中,下标可以是整型常量,整型变量或整型表达式。例如定义:如定义:intint n=2;n=2;intint score4=10,20,30,40;score4=10,20,30,40;则其则其4 4个元素的引用形式为:个元素的引用形式为:sco
18、re0score0、score1score1、score2score2和和score3score3。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.25.1.2 一维数组的引用一维数组的引用 l 一维数组的引用一维数组的引用 又如:又如:score2score2 score4-2 score4-2 scorenscoren 都表示引用都表示引用scorescore数组的第数组的第3 3个元素。从中可以看出,在引用个元素。从中可以看出,在引用数组元素时,下标可以是整型变量。而前面已经介绍在定义数数组元素时,下标可以是整型变量。而前面已经介绍在定义数组时,数组长度是不能为整型变量的
19、。组时,数组长度是不能为整型变量的。数组元素与普通变量的表现形式不同,但实质是相同的,数组元素与普通变量的表现形式不同,但实质是相同的,它也是一种变量。因此,一个数组元素可以象普通变量那样参它也是一种变量。因此,一个数组元素可以象普通变量那样参与赋值、算术运算、输入和输出等操作。下面通过介绍一维数与赋值、算术运算、输入和输出等操作。下面通过介绍一维数组的输入、输出操作来熟练掌握对一维数组元素的引用。组的输入、输出操作来熟练掌握对一维数组元素的引用。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.25.1.2 一维数组的引用一维数组的引用 l 一维数组的输入一维数组的输入1 1)
20、通过初始化使一维数组各元素得到初值,如:通过初始化使一维数组各元素得到初值,如:intint score4=10,20,30,40;score4=10,20,30,40;2)在程序运行期间用赋值语句为一维数组各元素赋值,如:在程序运行期间用赋值语句为一维数组各元素赋值,如:intinti,score4;i,score4;for(ifor(i=0;i4;i+)=0;i4;i+)scoreiscorei=(i+1)*10;=(i+1)*10;3 3)在程序运行期间用键盘输入语句在程序运行期间用键盘输入语句scanfscanf()()为数组元素输入为数组元素输入值,如:值,如:inti,score4
21、;for(ifor(i=0;i4;i+)=0;i4;i+)scanfscanf(%d,&(%d,&aiai););C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.25.1.2 一维数组的引用一维数组的引用 l 一维数组的输出一维数组的输出一维数组的输出是指用输出语句一维数组的输出是指用输出语句printfprintf()()将数组的将数组的元素逐个地输出。例如:元素逐个地输出。例如:intinti,a10=1,2,3,4,5,6,7,8,9,10;i,a10=1,2,3,4,5,6,7,8,9,10;for(ifor(i=0;i10;i+)=0;i10;i+)printfpri
22、ntf(%5d,ai);(%5d,ai);从这些示例可以看出,数组元素是一种带下标的变量,从这些示例可以看出,数组元素是一种带下标的变量,它跟普通变量一样参与赋值、输入和输出等操作。它跟普通变量一样参与赋值、输入和输出等操作。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.25.1.2 一维数组的引用一维数组的引用 l 一维数组的输出一维数组的输出但是,绝对不能把但是,绝对不能把“数组名数组名”当成变通变量一样使用。例如定义:当成变通变量一样使用。例如定义:intinta100;a100;intintb10=1,2,3,4,5,6,7,8,9,10;b10=1,2,3,4,5,
23、6,7,8,9,10;后,采用如下语句进行数据输入输出操作:后,采用如下语句进行数据输入输出操作:scanf(%dscanf(%d,&a);,&a);printf(%dprintf(%d,b);,b);则是错误的,也不要认为这能输入或输出整个数组。则是错误的,也不要认为这能输入或输出整个数组。C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.25.1.2 一维数组的引用一维数组的引用 例例5.15.1从键盘输入从键盘输入1010个数,将这个数,将这1010个数逆序输出,然后求出个数逆序输出,然后求出这这1010个数的和并输出。个数的和并输出。#include#include ma
24、in()main()intint i,a10,total=0;i,a10,total=0;printfprintf(请连续输入请连续输入1010个整数(空格分开):个整数(空格分开):););for(ifor(i=0;i10;i+)=0;i=0;i-)=9;i=0;i-)printf(%5d,ai);printf(%5d,ai);/*/*数组元素的逐个输出数组元素的逐个输出*/for(ifor(i=0;i10;i+)=0;i10;i+)total=total=total+aitotal+ai;/*/*数组元素逐个相加数组元素逐个相加*/printf(nprintf(n这这1010个整数的和为:
25、个整数的和为:%dn,totaldn,total););C语言程序设计电子教案 第5章数组5.1一维数组一维数组5.1.35.1.3 字符数组与字符串字符数组与字符串 字符串:字符串:用双引号括起来的一串字符。用双引号括起来的一串字符。例如例如:“How are you!”:“How are you!”或或“Hello,world!”Hello,world!”字符数组:字符数组:用来存放字符型数据的数组。用来存放字符型数据的数组。例如:例如:char c13;char c13;字符串结束标志:字符串结束标志:C C语言规定了一个字符串结束标语言规定了一个字符串结束标志,以字符志,以字符00代表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 _
限制150内