C语言程序设计精编教程 教学课件 ppt 作者 陈正权 岳睿 第6章 数组

上传人:E**** 文档编号:89346060 上传时间:2019-05-23 格式:PPT 页数:14 大小:196.50KB
返回 下载 相关 举报
C语言程序设计精编教程 教学课件 ppt 作者  陈正权 岳睿 第6章 数组_第1页
第1页 / 共14页
C语言程序设计精编教程 教学课件 ppt 作者  陈正权 岳睿 第6章 数组_第2页
第2页 / 共14页
C语言程序设计精编教程 教学课件 ppt 作者  陈正权 岳睿 第6章 数组_第3页
第3页 / 共14页
C语言程序设计精编教程 教学课件 ppt 作者  陈正权 岳睿 第6章 数组_第4页
第4页 / 共14页
C语言程序设计精编教程 教学课件 ppt 作者  陈正权 岳睿 第6章 数组_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《C语言程序设计精编教程 教学课件 ppt 作者 陈正权 岳睿 第6章 数组》由会员分享,可在线阅读,更多相关《C语言程序设计精编教程 教学课件 ppt 作者 陈正权 岳睿 第6章 数组(14页珍藏版)》请在金锄头文库上搜索。

1、第6章 数 组,教学内容 6.1 一维数组 6.2 二维数组 6.3 字符数组 6.4 字符串处理函数,1理解数组的概念; 2掌握一维数组的定义及其元素的引用; 3掌握二维数组的定义及其元素的引用; 4掌握字符数组的定义及其元素的引用; 5初步掌握常见字符串处理函数的正确使用; 6了解字符串、字符数组关系以及数组在程序中的使用; 7了解数组元素的存储格式以及字符串在数组中的组成。,教学目标,6.1 一维数组,数组是有序数据的集合,数组中的每个成员称为数组元素, 都属于同一个数据类型。数组中的每个元素(又称为下标变量) 具有相同的名字,不同的下标,每个数组元素都 可以作为单个变量来使用,和前面章

2、节中使用的简单变量一样。 数组可分为一维数组和多维数组(如二维数组、三维数组)。 数组的维数取决于数组元素的下标个数,即一维数组的每个 元素只有一个下标,二维数组的每个元素有两个下标, 三维数组的每个元素有三个下标,以此类推。数组中的数组元素 是按行排列的一组下标变量,它是用一个统一的数组名来标识, 下标是用来指示其在数组中的具体位置。注意:下标是从0开始的。,数组的概念,6.1 一维数组,在C语言中,数组同前面介绍的变量一样,也必须先定义后使用。 一维数组的定义格式为: 类型说明符 数组名常量表达式, ;,定义,(1)类型说明符:指定数组的数据类型,它也是数组中每个元素的数据类型, 同一数组

3、中的元素必须具有相同的数据类型。如:int a3;表示定义了一个名为 a的一维数组,数组a中3个元素的数据类型都是int型,只能存放整型数据。类型说 明符可以是任何基本类型,如float、double、char等;也可以是后面介绍的其他数据 类型,如结构体类型、共用体类型等。 (2)数组名:是用户自己定义的标识符,其命名也必须遵循标识符命名规则 (具体见第2章的2.2节)。 (3)常量表达式:方括号中的常量表达式表示该数组的长度,即数组的大小。 常量表达式可以是整型常量或符号常量,但不能包含变量 (C语言不允许对数组的大小作动态定义)。注意:定义数组时,常 量表达式一定要写在方括号中。本例中定

4、义的a数组含有3个数组元素, 这3个元素是a0、a1、a2,由于下标是从0开始的, 故不能使用下标大于等于3的元素,比如:a3、a4,否则会出现数组越界的错误。,说 明,6.1 一维数组,数组元素和变量一样,可以在定义的同时赋予初值,称为数组的初始化。 一维数组初始化的形式为: 类型说明符 数组名N=初值1,初值2,; 对于数组中若干数组元素,可以在 中给出各数组元素的初值, 各初值之间用逗号隔开。,一维数组的初始化,当数组定义好后,就可以引用该数组中的任何元素了。 C语言规定只能逐个引用数组中的元素而不能一次引用整个数组。 引用数组元素的形式为:数组名下标,一维数组的引用,下标可以是整型常量

5、或整型表达式。下标要小于所定义的数组长度, 不能越界引用数组中的元素。例如,前面定义过的a数组, 可以引用的数组元素为a0、a1、a2。,说明,6.1 一维数组, 引用时只能对数组元素逐个引用,而不能一次引用整个数组; 在引用数组元素时,下标可以是整型常数、已经赋值过的变量或变量 的表达式。 由于每个数组元素本身也是某一数据类型的变量,因此,前面章节中 对变量的各种操作也都适用于数组元素。 引用数组元素时,下标上限(即最大值)不能越界。也就是说,若数组 含有n个元素,下标的最大值为n-1(因为下标是从0开始);若超出界限, C编译程序并不给出错误信息,也就是说编译器并不检查数组是否下标越界,

6、程序仍可以正常运行,但可能会改变该数组以外其他变量或其他数组元素 的值,由此会导致输出的结果不正确。,在引用时应注意以下几点,前面介绍的数组是由只有一个下标的数组元素组成的,故称为一维数组,其中的元素也称为单下标变量;具有两个以上下标的数组元素组成的数组就称为多维数组。二维数组中的数组元素是按行列排列的一组双下标变量,用一个统一的数组名来标识,第一个下标表示行,第二个下标表示列。二维数组适用于表示行列关系的操作对象,如矩阵、行列式等。本节主要介绍二维数组,多维数组可由二维数组类推而得。,6.2 二维数组, 二维数组中的每一个数组元素均 有两个下标,而且必须分别放在方括 号内,注意不能把多个下标

7、放在一对 方括号内,即不能写成:int a3,4; 二维数组中的第1个下标表示该数组 具有的行数,第2个下标表示该数组具 有的列数,两个下标之积是该数组中数 组元素的个数。如:int a23;,说明,定义二维数组的一般格式为: 类型说明符 数组名整型常量表达式1 整型常量表达式2,;,二维数组的定义,6.2 二维数组,二维数组的初始化也可以在定义数组时完成,初始化的方法有以 下几种形式: 分行给二维数组中的元素赋初值,即按行赋初值。如: int a34=0,1,2,3,4,5,6,7,8,9,10,11; 将所有数据写在一对花括号内,按数组元素的存储顺序依次对 各元素赋初值。如:int a34

8、=0,1,2,3,4,5,6,7,8,9,10,11; 只给部分元素赋初值。如:int a34=1,3,4; 初始化后数组元素a00、a10和a11的值分别为1、3、4, 其他元素的值均为0。 对全部元素赋初值时可以不指定第一维的长度。 此时第一维的长度由第二维长度(即列数)自动确定。如: int a4=0,1,2,3,4,5,6,7,8,9,10,11;,二维数组的初始化,定义了二维数组后,就可以引用该数组中的任何元素。引用时要注意数组元素的下标 都是从0开始的,不能越界使用。对二维数组元素的使用方法同一维数组元素一样, 可以把它当作简单变量一样进行各种运算或操作,引用二维数组元素的一般形式

9、如下: 数组名下标1下标2,二维数组的引用,6.2 二维数组,多维数组简介,多维数组的定义及其元素的引用同二维数组类似,其定义的一般形式为: 类型说明符 数组名常量表达式1常量表达式2常量表达式n;,说 明,常量表达式1 常量表达式2常量表达式n 分别表示第1维、第2维 第n维的长度。 如:int a223;,6.3 字符数组,一维字符数组的定义: char 数组名常量表达式; 二维字符数组的定义: char 数组名常量表达式1常量表达式2; *多维字符数组的定义: char 数组名常量表达式1常量表达式2常量表达式3常量表达式n; 例如:char a5;表示该数组是名为a的一维字符型数组,它

10、有5个元素。,字符数组的定义,在定义字符数组时给字符数组元素赋初值,就称为字符数组的初始化。 花括号中提供的初值个数 (即字符个数)等于数组长度。如:char a5= C, h, i, n, a; 若花括号中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理。如果初值个数小 于数组长度,则将这些初值赋给字符数组中前面的元素,其余元素自动为空字符(即0)。 若花括号中提供的初值个数等于数组长度,则在定义时可以省略数组长度。 如:char c = s, h, e, e, p; 用字符串对字符数组初始化,此时不必指定数组的长度。由于每个字符串都是以0作为结束标 志,当把一个字符串存入一个字符

11、数组时,0也会一同存入,并作为该串是否结束的标志。有了 0结束标志后,就不必再用字符数组的长度来判断字符串的长度了。,字符数组的初始化,6.3 字符数组,字符数组元素的引用同前面介绍的数值型数组元素的引用一样,只是每次引用一个字符数组元素, 只得到一个字符。其引用形式如下: 数组名下标1下标2下标3 /*为可选项,表示其内容可有可无*/,字符数组的引用,在C语言中虽然有字符串常量,却没有专门的字符串变量,字符串的输入、存储、处理和输出等操作 都必须用字符数组来实现。为了测定字符串的实际长度,C语言规定了一个字符串结束标志,用0 表示,遇到字符0表示字符串结束,由它前面的字符组成字符串。0是AS

12、CII码值为0的字符, 它是一个“空操作符”,什么也不干,而且不可显示,它只作为一个标志,起到辨别的作用。 可以用字符串常量对字符数组初始化。例如char c1=“Tom“; /*花括号可省略*/ 等价于 char c1=T,o,m,0; 数组c1长度为4,不是3,因为字符串常量的最后由系统自动加上一个0,不和下面的数组定义 及初始化等价:char c2=T,o,m; /* 该数组c2的长度是3*/,字符串及其结束标志,6.3 字符数组,字符数组的输入/输出 字符数组的输入/输出有两种方法: 逐个字符输入/输出。用%c输入/输出一个字符。 将整个字符串一次输入/输出,用“%s”输入/输出一个字

13、符串。, 输出字符不包括0,因为在输出时遇到0就停止输出了。 即使数组长度大于字符串的长度,也只输出到遇0结束。 如char c310=“China“;printf(“%s“,c3);也只输出5个字符(China) 而不是10个字符,这就是字符串结束标志的好处。 如果一个字符数组中有多个0,则遇到第一个0时输出就结束。 由于C语言是用一维数组存放字符串,数组名就代表数组的首地址,所以可以 用数组名输入/输出一个字符串,不能在数组名的前面再加上 /*c5前加&是不对的*/,说明,6.4 字符串处理函数,puts函数的作用是输出一个字符串到终端, 用puts函数输出的字符串中可以包含转义字 符,其

14、调用形式为:puts(字符数组) gets函数的作用是从终端输入一个字符串到 字符数组,并得到一个函数值。该函数值是 字符数组的首地址(即起始地址), 其调用形式为:gets(字符数组),puts和gets函数,strcat函数的作用是连接两个字符数组 中的字符串,其调用的一般形式为: strcat(字符数组1,字符数组2) strcat()函数把字符串2连接到字符串1的 后面,结果放在字符数组1中,该函数调用 后得到一个函数值,该值是字符数组1的地址。 strcpy函数的作用是复制字符串,其调用的 一般形式为: strcpy(字符数组1,字符数组2或字符串2) strcpy()函数把字符数组

15、2或字符串2复制到 字符数组1中。复制时连同0一起复制到 字符数组1中。,strcat和strcpy函数, 字符数组1必须定义得足够大,以便容纳被复制的字符串。 strcpy函数的第1个参数必须为字符数组名,第2个参数可 以是字符数组名,也可以是字符串常量。 不能用赋值语句将一个字符串常量或字符数组直接赋给一 个字符数组。如str1=“OK“;str2=str1; 都是非法的。,区别,6.4 字符串处理函数,strcmp函数的作用是比较两个字符串的大小,其调用的一般形式为: strcmp(字符串1,字符串2) 字符串比较的规则是对两个字符串从左到右逐个字符比较(按其ASCII码值大小比较) ,直到出现不同的字符或遇到0为止,如全部字符相同,则相等,函数值返回值为0; 如字符串1大于字符串2,则函数返回值为一正整数;如字符串1小于字符串2,则函数 返回值为一负整数。注意字符串的比较不能用前面的关系运算符来比较。 strlen函数用于测试字符串的长度,其函数值为字符串的实际长度,不包括字符串的结 束标志0,其调用形式为: strlen(字符数组名或字符串常量),s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号