内容正文:
YCF
(中职)编程语言基础——C语言模块4教学课件
1
模块4 数组
任务1 一维数组
任务2 二维数组
任务3 字符数组及字符串处理函数
任务1一维数组
4.1.1 定义一维数组
定义一维数组的格式为:
定义了一个一维数组,数组名称为a,数组中数组元素的个 数为100,数组元素的类型为整型,可用的下标范围是0 ~ 99
说明:
(1)数组名的命名原则遵循标识符的命名规则,本例中数组名称为a
(2)整型常量表达式表示数组元素的个数(数组的长度),可以是整型常量或符号常量,不允许是变量。整型常量表达式在说明数组元素个数的同时也确定了数组元素下标的范围,下标从0开始,至整型常量表达式减1。
下一页
返回
任务1一维数组
(3)类型说明是指数据元素的类型,可以是基本数据类型,也可以是构造数据类型。类型说明确定了每个数据占用的内存字节数,如整型占2个字节,实型占4个字节,双精度占8个字节,字符占1个字节。
(1)在同一个类型说明语句中可以同时定义几个数组,如
(2)每个数组元素占用一个存储单元,数组的输入和输出、计算是对单个元素进行的。
(3)数组元素的下标可以是表达式。
(4)C语言编译程序为数组分配了一片连续的存储空间。
(5)C语言规定,数组名是数组的首地址,即
上一页
返回
下一页
任务1一维数组
4.1.2 引用一维数组元素
数组必须先定义,然后使用。C语言规定,只能逐个引用数组元素,而不能一次引用整个数组。
数组元素的表示形式为:
【例4-1】数组元素引用示例。
上一页
返回
下一页
任务1一维数组
4.1.3 初始化一维数组
可以用赋值语句或输入语句使数组中的元素得到值,但占运行时间。可以使数组在运行之前初始化,即在编译阶段使之得到初值。对数组元素的初始化,可以用以下方法实现。
(1)在定义数组时对数组元素赋以初值。例如:
(2)可以只给一部分元素赋值。例如:
上一页
返回
下一页
任务1一维数组
(3)如果想使一个数组中全部元素的值为0,可以写成:
(4)在对全部数组元素赋初值时,可以不指定数组长度。例如
上一页
返回
下一页
任务1一维数组
4.1.4 应用一维数组解决实际问题
【例4-2】输入10个整数,存入数组,找出其中的最大值。
上一页
返回
下一页
任务1一维数组
【例4-3】输入10个整数,存入数组,将其按照从小到大的 顺序排列。
上一页
返回
任务2二维数组
4.2.1 二维数组的定义
只有一个下标的数组称为一维数组,其数组元素称为单下标变量。有多个下标的数组称为多维数组,其数组元素称为多下标变量。在多维数组中最常用的是二维数组。
定义二维数组的一般形式为:
上一页
返回
下一页
任务2二维数组
4.2.2 引用二维数组元素
二维数组中的元素也称为双下标变量,其表示形式为:
数组说明的方括号中给出的是某一维的长度,即可取下标的最大值;而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量,后者可以是常量、变量或表达式。
上一页
返回
下一页
任务2二维数组
[例4-4]计算矩阵的两条对角线上元素的和。
上一页
返回
下一页
任务2二维数组
4.2.3 初始化二维数组
二维数组初始化也是在类型声明时给各个数组元素赋初值。二维数组可按行分段赋值,1也可按行连续赋值,这两种赋初值的结果相同。
1. 按行分段赋值
这时,把一行的内容括起来。例如:
初始化后的数组元素为:
上一页
返回
下一页
任务2二维数组
2. 按行连续赋值
这时,给数组元素连续赋值,也就是把所有数据写在一起。例如
初始化后的数组元素为:
上一页
返回
下一页
任务2二维数组
4.2.4 应用二维数组解决实际问题
【例4-5】找出3 x4矩阵所有元素中的最大值,并记录其行号和列号。解题思路:定义二维数组a[3][4],最大值用变量max表示,变量row表示最大值所在的行号,变量colum表示最大值所在的列号。
先将矩阵中的第一个数看做是最大值,即起始状态为max=a[0][0],则:row = 0 , colum=0。将后面的元素按行优先顺序依次和max进行比较,若当前值比最大值大,则将当前值代替原来的max值,同时记录当前值所在的行号和列号。
上一页
返回
下一页
任务2二维数组
上一页
返回
下一页
任务2二维数组
上一页
返回
下一页
任务2二维数组
【例4-6】一个学习小组有5个人,每个人有3门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。
上一页
返回
下一页
任务2二维数组
可设一个二维数组a[5] [3],存放5个人3门课的成绩;再设一个一维数组v[3],存放所求得各分科的平均成绩,设变量1为全组各科总平均成绩。编程如下:
上一页
返回
下一页
任务2二