把七天的知识放进检测,
用 93 分验证真实理解
今天复习 C Day 9—15,完成基础概念、输出预测、找错修改和综合编程四部分检测,并用多条实际路线验证“整数筛选累计菜单”。
第二次 C 语言阶段检测:93/100
本次检测不引入新语法,范围包括逻辑运算、短路判断、switch、三种循环、复合赋值、break、continue 和输入控制菜单。
- 基础概念:20/20
- 执行过程与输出预测:19/20
- 找错与修改:21/25
- 综合编程:33/35
基础概念全部答对
能够准确说明 && 的同时成立、短路判断如何避免除零、switch 的 case 穿透、循环中 break 与 continue 的区别,以及 while 和 do ... while 的首次执行差异。
输出预测漏掉了循环外的一行
四道预测题正确追踪了短路判断、case 穿透、跳过与提前结束,以及 do ... while 的变量变化。唯一失分是在正确写出循环内部的 1、3、4 后,漏写循环外仍会执行的“结束”。
这次失分提醒我:预测不能只盯着循环体,循环结束后还要继续向下阅读程序。
找错时要先检查更新方向
找错部分正确修复了成绩范围条件、while 中 continue 前的变量更新、do ... while 的末尾分号和 switch 的缺失 break。
主要失分来自错误的 for:目标是从 1 输出到 5,更新部分却写成 number--。虽然发现它会持续循环,但没有准确指出应改成 number++,还一度混淆了赋值 = 与相等判断 ==。
综合编程:整数筛选累计菜单
综合程序使用 do ... while 重复显示菜单,使用 switch 处理开始、退出与无效选项,并验证最大值必须处于 1—20。
if (maximum >= 1 && maximum <= 20)
{
int sum = 0;
for (int number = 1; number <= maximum; number++)
{
if (number == 3)
{
continue;
}
if (number == 10)
{
break;
}
sum += number;
}
printf("总和是:%d\n", sum);
}
else
{
printf("最大值必须在 1 到 20\n");
}循环从 1 到用户输入的最大值,跳过 3,并在遇到 10 时停止,所以 3 和 10 都不会加入总和。初次提交漏掉了非法最大值的 else 提示,检查后补全,因此综合编程扣 2 分。
五条路线全部通过
- 最大值 8:累计得到 33
- 最大值 15:在 10 前停止,累计得到 42
- 最大值 0:提示“最大值必须在 1 到 20”
- 菜单选项 7:提示“无效选项”
- 菜单选项 0:正确退出
五条路线在一次连续运行中完成,结果全部符合预测,程序正常退出,代码为 0。
从 92 分到 93 分
第一次 C 语言阶段检测是 92 分,本次提高 1 分;其中基础概念从 18/20 提高到 20/20。接下来需要继续训练完整追踪循环外输出,并优先检查循环变量的更新方向。
今天真正完成的内容
- 系统复习 C Day 9—15 的逻辑、分支与循环
- 在基础概念部分取得满分
- 能够独立组合菜单、输入、范围判断和累计循环
- 完成正常、非法范围、无效菜单与退出边界测试
- 明确下一阶段需要加强的两个具体问题
下一步将进入 C 语言一维整数数组,学习数组声明、初始化、下标与使用 for 遍历数组。