GESP 四级 · GESP 202403 C++ 四级 第 25 题

判断题 · 答案 A · 考点:控制结构

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

题目

任何一个 for 循环都可以转化为等价的 while 循环( )。

答案:A

考点

控制结构

解题思维

答案A。在循环中遍历数组并累积结果时,注意累加变量的初始值和每次循环的更新方式。

常见错误

for循环体可能一次都不执行!这是和while循环一样的"先判断后执行"机制。

详细解析(节选)

【考点】控制结构|for 循环与 while 循环的等价性

【解题思维】看到"for 转 while"先想:for 循环的本质是初始化 + 条件判断 + 步进更新。把初始化语句移到 while 之前,条件判断直接对应 while 条件,步进更新放在 while 循环体末尾即可。这是 C++ 语言规范明确支持的基本转换,命题人放这道题就是要卡住那些只背语法、没理解循环本质的考生。

【陷阱拆解】选项 B 显然就是利用"for 语法更简洁"的错觉设计的——它把"写法不同"偷换成"功能不等价"。阴险之处在于题目用了"任何一个"这种绝对化表述,其实是在测试你是否真正理解循环机制:只要理解步进更新可以放在循环体末尾,就能确认转换总是成立。只背结论的考生容易被"for 更优雅"这种干扰信息带偏。

【反命题思维】从命题人角度,这道题考察的是对控制结构底层逻辑的掌握。如果把条件改为"某些 for 循环",陷阱就藏在"某些"这个限定词里——它暗示存在例外情况,考生得先想"哪些 for 转不了 while"再回答。如果改成"for 循环效率更高",那就变成考时间复杂度了。这类题刷到先问自己:它到底想卡我哪一环的理解?

同考点真题

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