《(中职)编程语言基础——C语言模块4教学课件.ppt》由会员分享,可在线阅读,更多相关《(中职)编程语言基础——C语言模块4教学课件.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、YCF正版可修改PPT(中职)编程语言基础C语言模块4教学课件模块模块4 数组数组任务任务1 一维数组一维数组任务任务2 二维数组二维数组任务任务3 字符数组及字符串处理函数字符数组及字符串处理函数任务任务1一维数组一维数组 4.1.1 定义一维数组定义一维数组 定义一维数组的格式为定义一维数组的格式为:定义了一个一维数组,数组名称为定义了一个一维数组,数组名称为a,数组中数组元素的个,数组中数组元素的个 数为数为100,数组元素的类型为整型,可用的下标范围是,数组元素的类型为整型,可用的下标范围是0 99 说明说明:(1)数组名的命名原则遵循标识符的命名规则,本例中数组数组名的命名原则遵循标
2、识符的命名规则,本例中数组名称为名称为a(2)整型常量表达式表示数组元素的个数整型常量表达式表示数组元素的个数(数组的长度数组的长度),可,可以是整型常量或符号常量,不允许是变量。整型常量表达式以是整型常量或符号常量,不允许是变量。整型常量表达式在说明数组元素个数的同时也确定了数组元素下标的范围,在说明数组元素个数的同时也确定了数组元素下标的范围,下标从下标从0开始,至整型常量表达式减开始,至整型常量表达式减1。下一页返回任务任务1一维数组一维数组(3)类型说明是指数据元素的类型,可以是基本数据类型,类型说明是指数据元素的类型,可以是基本数据类型,也可以是构造数据类型。类型说明确定了每个数据占
3、用的内也可以是构造数据类型。类型说明确定了每个数据占用的内存字节数,如整型占存字节数,如整型占2个字节,实型占个字节,实型占4个字节,双精度占个字节,双精度占8个字节,字符占个字节,字符占1个字节。个字节。(1)在同一个类型说明语句中可以同时定义几个数组,如在同一个类型说明语句中可以同时定义几个数组,如(2)每个数组元素占用一个存储单元,数组的输入和输出、每个数组元素占用一个存储单元,数组的输入和输出、计算是对单个元素进行的。计算是对单个元素进行的。(3)数组元素的下标可以是表达式。数组元素的下标可以是表达式。(4)C语言编译程序为数组分配了一片连续的存储空间。语言编译程序为数组分配了一片连续
4、的存储空间。(5)C语言规定,数组名是数组的首地址,即语言规定,数组名是数组的首地址,即上一页返回下一页任务任务1一维数组一维数组4.1.2 引用一维数组元素引用一维数组元素数组必须先定义,然后使用。数组必须先定义,然后使用。C语言规定,只能逐个引用数组语言规定,只能逐个引用数组元素,而不能一次引用整个数组。元素,而不能一次引用整个数组。数组元素的表示形式为数组元素的表示形式为:【例例4-1】数组元素引用示例。数组元素引用示例。上一页返回下一页任务任务1一维数组一维数组4.1.3 初始化一维数组初始化一维数组可以用赋值语句或输入语句使数组中的元素得到值,但占运可以用赋值语句或输入语句使数组中的
5、元素得到值,但占运行时间。可以使数组在运行之前初始化,即在编译阶段使之行时间。可以使数组在运行之前初始化,即在编译阶段使之得到初值。对数组元素的初始化,可以用以下方法实现。得到初值。对数组元素的初始化,可以用以下方法实现。(1)在定义数组时对数组元素赋以初值。例如在定义数组时对数组元素赋以初值。例如:(2)可以只给一部分元素赋值。例如可以只给一部分元素赋值。例如:上一页返回下一页任务任务1一维数组一维数组(3)如果想使一个数组中全部元素的值为如果想使一个数组中全部元素的值为0,可以写成,可以写成:(4)在对全部数组元素赋初值时,可以不指定数组长度。例在对全部数组元素赋初值时,可以不指定数组长度
6、。例如如上一页返回下一页任务任务1一维数组一维数组 4.1.4 应用一维数组解决实际问题应用一维数组解决实际问题【例例4-2】输入输入10个整数,存入数组,找出其中的最大值。个整数,存入数组,找出其中的最大值。上一页返回下一页任务任务1一维数组一维数组【例例4-3】输入输入10个整数,存入数组,将其按照从小到大的个整数,存入数组,将其按照从小到大的 顺序排列。顺序排列。上一页返回任务任务2二维数组二维数组4.2.1 二维数组的定义二维数组的定义只有一个下标的数组称为一维数组,其数组元素称为单下标只有一个下标的数组称为一维数组,其数组元素称为单下标变量。有多个下标的数组称为多维数组,其数组元素称
7、为多变量。有多个下标的数组称为多维数组,其数组元素称为多下标变量。在多维数组中最常用的是二维数组。下标变量。在多维数组中最常用的是二维数组。定义二维数组的一般形式为定义二维数组的一般形式为:上一页返回下一页任务任务2二维数组二维数组4.2.2 引用二维数组元素引用二维数组元素二维数组中的元素也称为双下标变量,其表示形式为二维数组中的元素也称为双下标变量,其表示形式为:数组说明的方括号中给出的是某一维的长度,即可取下标的数组说明的方括号中给出的是某一维的长度,即可取下标的最大值最大值;而数组元素中的下标是该元素在数组中的位置标识。而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量,后者
8、可以是常量、变量或表达式。前者只能是常量,后者可以是常量、变量或表达式。上一页返回下一页任务任务2二维数组二维数组例例4-4计算矩阵的两条对角线上元素的和。计算矩阵的两条对角线上元素的和。上一页返回下一页任务任务2二维数组二维数组4.2.3 初始化二维数组初始化二维数组二维数组初始化也是在类型声明时给各个数组元素赋初值。二维数组初始化也是在类型声明时给各个数组元素赋初值。二维数组可按行分段赋值,二维数组可按行分段赋值,1也可按行连续赋值,这两种赋初也可按行连续赋值,这两种赋初值的结果相同。值的结果相同。1.按行分段赋值按行分段赋值这时,把一行的内容括起来。例如这时,把一行的内容括起来。例如:初
9、始化后的数组元素为初始化后的数组元素为:上一页返回下一页任务任务2二维数组二维数组2.按行连续赋值按行连续赋值这时,给数组元素连续赋值,也就是把所有数据写在一起。这时,给数组元素连续赋值,也就是把所有数据写在一起。例如例如初始化后的数组元素为初始化后的数组元素为:上一页返回下一页任务任务2二维数组二维数组4.2.4 应用二维数组解决实际问题应用二维数组解决实际问题【例例4-5】找出找出3 x4矩阵所有元素中的最大值,并记录其行矩阵所有元素中的最大值,并记录其行号和列号。解题思路号和列号。解题思路:定义二维数组定义二维数组a34,最大值用变量,最大值用变量max表示,变量表示,变量row表示最大
10、值所在的行号,变量表示最大值所在的行号,变量colum表示最大值所在的列号。表示最大值所在的列号。先将矩阵中的第一个数看做是最大值,即起始状态为先将矩阵中的第一个数看做是最大值,即起始状态为max=a00,则,则:row=0,colum=0。将后面的元。将后面的元素按行优先顺序依次和素按行优先顺序依次和max进行比较,若当前值比最大值大,进行比较,若当前值比最大值大,则将当前值代替原来的则将当前值代替原来的max值,同时记录当前值所在的行号值,同时记录当前值所在的行号和列号。和列号。上一页返回下一页任务任务2二维数组二维数组上一页返回下一页任务任务2二维数组二维数组上一页返回下一页任务任务2二
11、维数组二维数组【例例4-6】一个学习小组有一个学习小组有5个人,每个人有个人,每个人有3门课的考试成门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。绩。求全组分科的平均成绩和各科总平均成绩。上一页返回下一页任务任务2二维数组二维数组可设一个二维数组可设一个二维数组a5 3,存放,存放5个人个人3门课的成绩门课的成绩;再设再设一个一维数组一个一维数组v3,存放所求得各分科的平均成绩,设变量,存放所求得各分科的平均成绩,设变量1为全组各科总平均成绩。编程如下为全组各科总平均成绩。编程如下:上一页返回下一页任务任务2二维数组二维数组上一页返回任务任务3字符数组及字符串处理函数字符数组及字符串处
12、理函数4.3.1 字符数组的定义、初始化及引用字符数组的定义、初始化及引用1.字符数组的定义字符数组的定义用来存放字符型数据的数组就是字符数组,一个元素存放一用来存放字符型数据的数组就是字符数组,一个元素存放一 个字符。字符数组的定义格式为个字符。字符数组的定义格式为:2.字符数组的初始化字符数组的初始化字符数组的初始化有以下几种方法。字符数组的初始化有以下几种方法。将每个元素的字符逐一写出。例如将每个元素的字符逐一写出。例如:上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数只给部分元素赋初值,例如只给部分元素赋初值,例如:用字符串常量为字符数组赋初值。例如用字符串常
13、量为字符数组赋初值。例如:此时是将字符串常量中的每个字符顺序赋值给字符数组的元此时是将字符串常量中的每个字符顺序赋值给字符数组的元素。但要注意,字符串的末尾有一个结束标志,所以以字符素。但要注意,字符串的末尾有一个结束标志,所以以字符串常量为字符数组赋初值时,数组的长度至少要比字符串常串常量为字符数组赋初值时,数组的长度至少要比字符串常量所含的字符数多量所含的字符数多1。上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数3.字符数组的引用字符数组的引用字符数组可以像前面介绍的数值型数组一样取用其数组元素,字符数组可以像前面介绍的数值型数组一样取用其数组元素,但由于字符数
14、组通常用以处理字符串,所以对字符数组的处但由于字符数组通常用以处理字符串,所以对字符数组的处理一般是在输入输出时使用格式控制符理一般是在输入输出时使用格式控制符”%s”,将字符数组,将字符数组名名(数组存储首地址数组存储首地址)置于相应的输入输出项位置。置于相应的输入输出项位置。例如例如上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数字符串的输入与输出字符串的输入与输出上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数4.3.2 字符串处理函数字符串处理函数C语言提供了丰富的字符串处理函数,这些函数大致可分为字语言提供了丰富的字符串处理函数,这
15、些函数大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。使用这些函数可大大减轻编程的负担。用于输入输出几类。使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数,在使用前应包含头文件的字符串函数,在使用前应包含头文件“stdio.h”;使用其使用其他字符串函数前则应包含头文件他字符串函数前则应包含头文件”stringy.h。上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数1.用用scanf()函数输入字符串函数输入字符串使用使用for循环来实现将输入的字符串存放到字符数组中,非常循环来实现将
16、输入的字符串存放到字符数组中,非常繁琐。其实,只需要使用一条繁琐。其实,只需要使用一条scanf语句或者一条语句或者一条gets语句语句均可实现上述功能,用均可实现上述功能,用scanf语句实现的程序如下语句实现的程序如下:使用格式使用格式上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数2.用用gets()函数输入字符串的格式函数输入字符串的格式使用格式:使用格式:上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数3.使用使用printf()函数输出字符串函数输出字符串将一个字符数组中已存有的字符依次输出,如果使用将一个字符数组中已存有的字符依
17、次输出,如果使用printf语句和语句和puts语句实现,就比用语句实现,就比用for语句逐个字符输出相对简语句逐个字符输出相对简便。先看用便。先看用printf语句实现该功能的完整程序。语句实现该功能的完整程序。printf语句的使用格式为语句的使用格式为:上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数 4.使用使用puts()函数输出字符串函数输出字符串 使用格式使用格式上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数5.字符串长度函数字符串长度函数strlen()在字符数组的操作中,经常需要测试一个字符数组在字符数组的操作中,经常需要
18、测试一个字符数组(串串)的长的长度,实际上就是查看该字符数组中已占用的空间大小和计算度,实际上就是查看该字符数组中已占用的空间大小和计算该字符数组中剩余空间大小。该字符数组中剩余空间大小。求字符串的长度使用求字符串的长度使用strlen()函数,函数,strlen()函数的使用函数的使用格式比较简单,其用法如下。格式比较简单,其用法如下。上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数6.字符串的复制函数字符串的复制函数strcpy()把一个字符数组中的字符复制到另把一个字符数组中的字符复制到另1个字符数组中,可以使用个字符数组中,可以使用字符串赋值函数字符串赋值函数
19、strcpy()来实现。相应的程序如下来实现。相应的程序如下:上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数7.字符串的比较函数字符串的比较函数strcmp()在数组的操作中,有时需要比较两个字符串的大小,这时就要用到在数组的操作中,有时需要比较两个字符串的大小,这时就要用到strctmp()函数,函数,strctmp语句的使用格式为语句的使用格式为:该语句的执行规则如下。该语句的执行规则如下。两个数组按两个数组按ASCII码的大小从左到右逐个字符进行比较,直到出现不同码的大小从左到右逐个字符进行比较,直到出现不同的字符为止。如果全部字符都相同,就认为两个字符数组相
20、同的字符为止。如果全部字符都相同,就认为两个字符数组相同;如出现不如出现不相同的字符,结果以第相同的字符,结果以第1个不同字符的比较结果为准。比较结果有以下个不同字符的比较结果为准。比较结果有以下3种情况种情况:如果数组如果数组1(字符串字符串1)=数组数组2(字符串字符串2),函数返回,函数返回0值。值。如果数组如果数组1(字符串字符串1)数组数组2(字符串字符串2),函数返回,函数返回1个正数。个正数。如果数组如果数组1(字符串字符串1)数组数组2(字符串字符串2),函数返回,函数返回1个负数。个负数。上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数4.3.3 字
21、符函数的综合应用字符函数的综合应用前面已介绍了有关字符串操作的几个常用函数及其用法,下前面已介绍了有关字符串操作的几个常用函数及其用法,下面通过一个实例来说明这些函数的综合应用方法。面通过一个实例来说明这些函数的综合应用方法。【例例4-8】定义两个字符数组,在其中存入随机输入的字符定义两个字符数组,在其中存入随机输入的字符串,然后比较两个字符串的大小,输出相应位置上相同的字串,然后比较两个字符串的大小,输出相应位置上相同的字符,并将短字符串复制到长字符串中去。若长度相等则不复符,并将短字符串复制到长字符串中去。若长度相等则不复制。制。上一页返回下一页任务任务3字符数组及字符串处理函数字符数组及字符串处理函数分析要完成该题目应完成的工作。分析要完成该题目应完成的工作。定义字符数组。定义字符数组。输入字符串。输入字符串。查找相应位置上是否有相同的字符,若有则输出。查找相应位置上是否有相同的字符,若有则输出。判断两个字符串的长短。判断两个字符串的长短。把短字符串复制到长字符串中去。把短字符串复制到长字符串中去。上一页返回任务任务3字符数组及字符串处理函数字符数组及字符串处理函数上一页返回
限制150内