Files
project1/第06课-一维数组/教案-学生版.md

3.4 KiB
Raw Blame History

第6课一维数组

教学目标

  • 掌握一维数组的定义、初始化和访问
  • 能使用数组进行遍历、查找、统计等基本操作
  • 理解数组逆序和冒泡排序的原理

核心考点:数组下标、遍历与越界

考什么

使用数组完成读入、统计、查找和排序并判断每个元素对应的________。

必须理解

长度为 n 的数组合法下标从________到________。arr[i] 表示第________个元素。访问 arr[n] 会发生________。

核心写法

for (int i = ________; i < ________; i++) cin >> arr[i];

int maximum = ________;
for (int i = ________; i < n; i++) {
    if (arr[i] > maximum) ____________________;
}

常见错误

  • i <= n 为什么会越界________________
  • 全是负数时最大值能否初始化为0________________
  • "第5个元素"的下标是多少________

判断是否掌握

  • 我能说出数组的首尾合法下标。
  • 我能写出无越界的遍历循环。
  • 我能用数组完成查找和打擂台。

题目一:数组入门 — 求最大值与平均值

核心代码(一句话)

数组遍历的核心:______,下标从 ______ 开始,到 ______ 结束;打擂台求最值,先请 ______ 当擂主。

自然语言思路

伪代码

1. 输入 n
2. 定义数组 ______
3. for i = 0 到 ______
4.     输入 ______                // 读入数组
5. maxVal = ______                // 擂主
6. sum = ______
7. for i = ______ 到 ______
8.     if arr[i] ______ maxVal  // 打擂
9.         maxVal = ______
10.    sum += ______               // 累加
11. avg = ________________         // 整数转浮点数
12. 输出 maxVal 和 avg

真实代码


注意点


题目二:查找元素 — 找目标值

核心代码(一句话)

查找的核心:遍历 + 比较 + ______,找到了就记录位置并退出,用一个 ______ 表示"没找到"。

自然语言思路

伪代码

1. 输入 n, 数组 arr, target
2. index = ______                // 哨兵:默认没找到
3. for i = 0 到 ______
4.     if arr[i] ______ target
5.         index = ______
6.         ______                 // 找到就停
7. if index ______ -1
8.     输出 "找到,下标:" + index
9. else
10.    输出 "未找到"

真实代码


注意点


题目三:数组逆序与冒泡排序

核心代码(一句话)

逆序的核心:首尾交换,只换 ______;冒泡排序的核心:相邻两两比较______,每轮确定一个最大值的位置。

自然语言思路

伪代码

数组逆序

1. for i = 0 到 ______
2.     temp = ______
3.     arr[i] = ______
4.     arr[______] = temp

冒泡排序

1. for i = 0 到 ______              // 外层:第 i 轮
2.     for j = 0 到 ______          // 内层:相邻比较
3.         if arr[j] ______ arr[j+1]// 前面大就交换
4.             temp = ______
5.             arr[j] = ______
6.             arr[j+1] = ______

真实代码


注意点


本课打油诗


课后作业

  1. 输入 n 个数,求第二大值(注意可能有重复最大值)
  2. 输入 n 个数,将它们逆序存储后输出(不能用第二个数组)
  3. 输入 n 个数,统计其中不同数字的个数
  4. 输入 n 个数,使用冒泡排序从小到大排序后输出