GESP 一级 · GESP 202412 C++ 一级 第 7 题

选择题 · 答案 B

← 整套速查表 GESP 一级 全部真题

题目

下面 C++ 代码执行后,求出几天后星期几。如果星期日则输出“星期天”否则输出形如“星期1”。横线上应填入的代码是( )。

int N, nowDay, afterDays;
cout << "今天星期几?" << endl;
cin >> nowDay;
cout << "求几天后星期几?" << endl;
cin >> afterDays;
N = nowDay + afterDays;
if(_____________)
    printf("星期天");
else
    printf("星期%d", N%7);
答案:B

解题思维

答案B。先分析已有代码的功能,确定输出目标,再反推横线处需要的代码。可用代入法验证。

常见错误

将每个选项代入横线处验证是最可靠的方法。注意代码的完整逻辑和输出格式。

详细解析(节选)

1. 🎯 考纲定位(考点定位)

GESP一级 第4章“循环结构”与第5章“数组与字符串”的边界条件检测。命题人借"7天循环”卡住考生对取模运算结果0的理解——多数同学只会算“星期1”到“星期6”,却忽略“星期天”对应余数为0的特殊情况。

2. 🧠 解题思维(拆解与通法)

观察公式N=nowDay+afterDays,N%7得到1~7循环中的余数1~6,唯独N%7==0时才是星期天。因此条件必须填"N%7==0",否则else分支会输出"星期0"这种非法结果。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断