课评: CSP04橙子周六1400-03 二维数组 2026-09-26(雨禾到课+明泓补课,4人请假)
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
# 学生提交诊断报告 · 张雨禾(CSP04橙子周六1400-03 二维数组)
|
||||
|
||||
> 班级:CSP04橙子周六1400(2026 秋季班 CSP04)| 章节:03 二维数组
|
||||
> 授课日期:2026-09-26 | 生成日期:2026-09-26 | 状态:本班·到课 | 数据来源:OJ 课程反馈接口(教师视角)
|
||||
> **本报告为教师审核稿,发送给学生/家长前请先审阅措辞**
|
||||
|
||||
📊 **总览**:课堂练习 **7/7 全部通过** | 编程题 **5/5**(其中 3 题一遍过)| 选择题·判断题均最终满分 | 共提交 14 次 | **每道错题都自己订正通过了**
|
||||
|
||||
---
|
||||
|
||||
## 🌟 值得表扬的地方
|
||||
|
||||
1. **A包 7 道题全部当场通过,整包清零**——矩阵原样输出、图像相似度、矩阵加法、每小组最大年龄、每列最大值 5 道编程题全过,选择题、判断题也都拿到满分,一题没剩!
|
||||
2. **3 道编程题一遍通过**:矩阵原样输出、图像相似度、矩阵加法都是第 1 次提交就 AC,「双层循环遍历矩阵」这个新套路一学就会🌟
|
||||
3. **两处小错全部自己修好**:没靠老师提示,自己定位到「变量没赋初值」「循环变量写串」两个问题并改对——订正能力明显上台阶💪
|
||||
4. 编程题最终 **5/5 通过、零欠账**,进入新章节的起点非常扎实。
|
||||
|
||||
---
|
||||
|
||||
## 💻 编程题逐题诊断
|
||||
|
||||
### 矩阵原样输出(1 次提交)
|
||||
- 第 1 次提交:✅ **通过!**
|
||||
> 📌 复盘:一遍通过,非常不错!行列两个循环各管各的,写得清清楚楚。
|
||||
|
||||
### 图像相似度(1 次提交)
|
||||
- 第 1 次提交:✅ **通过!**
|
||||
> 📌 复盘:一遍通过,非常不错!逐位比较后统计相同个数的思路完全正确。
|
||||
|
||||
### 矩阵加法(1 次提交)
|
||||
- 第 1 次提交:✅ **通过!**
|
||||
> 📌 复盘:一遍通过,非常不错!「对应位置相加」就是二维数组最典型的用法,掌握得很稳。
|
||||
|
||||
### 每个小组的最大年龄(3 次提交:🔄 → 🔄 → 🎉)
|
||||
- 第 1~2 次提交:**结果不对**——`int maxx;` 声明后没赋初值,里面存的是一个随机数,拿它去比大小自然出错
|
||||
- 第 3 次提交:✅ **通过!** 改成 `int maxx = 0`,一行就修好了
|
||||
> 📌 复盘:这道题的逻辑一点没错,问题出在「新变量要给个起点」。记住:**求最大值的变量,用之前先赋初值**——这是编程里最常见的小坑,你已经自己踩过并爬出来了,下次就不会再掉进去!
|
||||
|
||||
### 每列最大值(2 次提交:✍️ → 🎉)
|
||||
- 第 1 次提交:**编译错误**——内层循环写串了:写的是 `for(int j=1; i<=n; i++)`,循环变量是 j,条件和自增却用了 i,编译器找不到 i 在哪
|
||||
- 第 2 次提交:✅ **通过!** 内层循环换成 i 管行、外层 j 管列,还补上了每列之间输出空格
|
||||
> 📌 复盘:双层循环里 **外层管行用 i、内层管列用 j**,两个名字不要混用。你第二次不仅改对了错误,还注意到输出格式,改得很完整!
|
||||
|
||||
---
|
||||
|
||||
## 📝 选择题 · 错题分析
|
||||
|
||||
**4 次提交:20 → 40 → 60 → 100(最终满分)**
|
||||
|
||||
| 题号 | 考点 | 你的轨迹 | 正确答案 |
|
||||
|------|------|---------|---------|
|
||||
| Q1 | `&map + 1` 跨多远 | A → C(第2次改对) | C(0x2050) |
|
||||
| Q2 | 第2行第2个元素的地址 | A → B → C → D(第4次改对) | D |
|
||||
| Q4 | `int arr[0]` 占几字节 | A → B → C → D(第4次改对) | D(16 字节) |
|
||||
| Q5 | 二维数组传参不能写什么 | A → B → B → D(第4次改对) | D(`int**`) |
|
||||
|
||||
**💡 重点说说地址换算**(Q1、Q2 卡得最久的知识点):
|
||||
- 二维数组在内存里是**一行挨着一行**存的。`&map + 1` 里的 map 代表「整个数组」,所以 +1 就跳过**一整个数组**:5 行 × 4 列 × 4 字节 = 80 字节(0x50),0x2000 + 0x50 = **0x2050**;
|
||||
- 求某个元素的地址:**首地址 + (它排第几个) × 每个元素的字节数**。`array[1][1]` 排在第 1×3+1=4 个(从0数),所以是首地址 + 16 字节;
|
||||
- `int arr[0]` 是一整行:4 个 int = **16 字节**;
|
||||
- 二维数组做函数参数,**列数必须写死**(如 `int arr[][4]`),不能写 `int**`——这是编译器定位元素位置的需要。
|
||||
|
||||
> 📌 客观题不建议反复提交试答案:这几题的考点是同一个「行优先存储 + 地址换算」,把上面的式子弄懂记进笔记,比试 4 次更省时间、记得更牢。
|
||||
|
||||
---
|
||||
|
||||
## 📝 判断题 · 错题分析
|
||||
|
||||
**2 次提交:80 → 100(最终满分)**
|
||||
|
||||
- **Q2**(`char s[10][100]` 能否装下 10 个最长 99 字节的字符串):第一次选「错误」→ 第二次改对「正确」。100 个格子装 99 个字符绰绰有余,别忘了还有第 100 格放结束符。
|
||||
|
||||
---
|
||||
|
||||
## 📖 整体分析
|
||||
|
||||
雨禾本节课可以概括为:**新章节开门红,订正能力上台阶**。
|
||||
|
||||
- 💪 **亮点**:A包 7 题整包清零,编程题 5/5、客观题双满分;3 题一遍过说明「双层循环遍历」掌握得非常扎实;更重要的是,两处编程错误——没赋初值、循环变量写串——都是**她自己发现、自己修好**的,这正是从「会写」走向「写对」的关键能力。
|
||||
- 🔧 **可以更好的一小步**:两处错误都属于「细心」这个老话题——变量声明时顺手给初值、内外层循环变量别混用,落笔前多想 3 秒就能避免。另外地址换算类选择题绕了几轮,这个新考点值得课后专门巩固一遍。
|
||||
|
||||
## ✅ 给雨禾的建议
|
||||
|
||||
1. **变量声明顺手赋初值**:`int maxx = 0` 写成肌肉记忆,求最值、累加类的变量尤其要这样。
|
||||
2. **双层循环「i 管行、j 管列」**:两个变量名各司其职,写条件前先确认用的是哪个。
|
||||
3. **把「地址换算」记进笔记**:行优先存储、`&map+1` 跨整组、元素地址 = 首地址 + 排位 × 字节数,这三个式子抄一遍,下次选择题一次拿下。
|
||||
4. **本周补上 B 包课后作业**(矩阵元素总和、奇偶统计、主对角线求和)——A 包已经清零,把这 3 题做完,这一章就彻底闭环了💪
|
||||
|
||||
---
|
||||
|
||||
*本报告由授课教师审核后发放;内容只描述学习习惯与方法,与孩子的人格评价无关。*
|
||||
Reference in New Issue
Block a user