GESP 二级 · GESP202609 C++ 二级 第 24 题

判断题 · 答案 B · 考点:循环结构

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

题目

求解鸡兔同笼。在如下 C++ 代码中,tou 代表鸡和兔的头总数,jiao 代表鸡和兔的脚总数。先后两个输 入均为正整数。该程序能求解鸡兔同笼。

int tou, jiao, tu_tou, ji_tou;

cout << "请输入鸡和兔的头总数:";

cin >> tou;

cout << "请输入鸡和兔的脚总数:";

cin >> jiao;
for (tu_tou = 0; tu_tou < tou + 1; tu_tou++) {
ji_tou = tou - tu_tou;
if (tu_tou * 4 + ji_tou * 2 == jiao)

printf("兔的数量=%d,鸡的数量=%d\n", tu_tou, ji_tou);

}
if (tu_tou == tou)

printf("无解\n");

答案:B

考点

循环结构

解题思维

这题考查暴力枚举法解不定方程。看到题先想:鸡兔同笼本质是 2x+4y=jiao 且 x+y=tou 的二元一次方程组,但 GESP 二级不要求解方程,而是用循环穷举兔的数量 tu_tou 从 0 到 tou,算出鸡的数量 ji_tou=tou-tu_tou,验证脚数是否匹配。关键观察:循环结束后 tu_tou 必然等于 tou,所以不能直接用 tu_tou==tou 判断无解,必须引入布尔标志位记录是否找到过解,否则解找到后循环继续跑完,最后仍会误判。

常见错误

A 选项看似正确,实则忽略了循环结束后 tu_tou 恒等于 tou 的事实。B 选项才是命题人设的陷阱,利用考生"循环跑完就代表没找到解"的直觉错误,把无解判断放在循环外,导致有解时也会输出"无解"。最阴险的细节在于:代码前半段逻辑完全正确,只有最后一行 if 语句破坏了整体正确性,这种"局部正确、整体错误"的陷阱比纯语法错误更难察觉。

详细解析(节选)

这题考查暴力枚举法解不定方程。看到题先想:鸡兔同笼本质是 2x+4y=jiao 且 x+y=tou 的二元一次方程组,但 GESP 二级不要求解方程,而是用循环穷举兔的数量 tu_tou 从 0 到 tou,算出鸡的数量 ji_tou=tou-tu_tou,验证脚数是否匹配。关键观察:循环结束后 tu_tou 必然等于 tou,所以不能直接用 tu_tou==tou 判断无解,必须引入布尔标志位记录是否找到过解,否则解找到后循环继续跑完,最后仍会误判。

A 选项看似正确,实则忽略了循环结束后 tu_tou 恒等于 tou 的事实。B 选项才是命题人设的陷阱,利用考生"循环跑完就代表没找到解"的直觉错误,把无解判断放在循环外,导致有解时也会输出"无解"。最阴险的细节在于:代码前半段逻辑完全正确,只有最后一行 if 语句破坏了整体正确性,这种"局部正确、整体错误"的陷阱比纯语法错误更难察觉。

1. 考纲定位

本题落在 GESP 二级《循环结构》模块,同时涉及《条件判断》。命题人放这道题,就是要卡住"循环结束后如何判断是否找到解"这个弱点——绝大多数考生会凭直觉认为"循环跑完就是没找到",却忽略了 tu_tou 在循环结束时必然等于 tou 这一事实。

2. 解题思维

这题本质是暴力枚举:兔的数量 tu_tou 从 0 到 tou 遍历,鸡的数量 ji_tou=tou-tu_tou 随之确定,验证 tu_tou*4+ji_tou*2 是否等于 jiao。正确做法必须引入状态标志:

bool found = false;
for (tu_tou = 0; tu_tou <= tou; tu_tou++) {
    ji_tou = tou - tu_tou;
    if (tu_tou * 4 + ji_tou * 2 == jiao) {
        printf("兔的数量=%d,鸡的数量=%d\n", tu_tou, ji_tou);
        found = true;
    }
}
if (!found) printf("无解\n");

这样无论找到几个解,都不会误判。通法:凡是"循环结束后判断是否找到过解"的场景,必须用布尔标志位,不能依赖循环变量。

3. 陷阱拆解

4. 反命题思维

站在命题人视角,这道题的变体可以很丰富:

这些变体都指向同一个核心:循环结束后 tu_tou 的值与是否找到解无关,必须用标志位记录。命题人正是利用这个"循环变量与解的存在性无关"的直觉错误,设计了这道题。

同考点真题

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