GESP 一级 · GESP 202403 C++ 一级 第 20 题

判断题 · 答案 B

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

题目

在 C++ 中,while 可能是死循环,而 for 循环不可能是死循环。( )

答案:B

解题思维

答案B。for循环先判断条件再执行循环体——可能一次都不执行。for(;;)是无限循环,三部分均可省略。

常见错误

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

详细解析(节选)

【考点】while 循环|for 循环|死循环

🎯 考纲定位 本题出自 GESP 一级大纲"基础语法"模块"循环结构"知识点。命题人刻意把 while 和 for 并列对比,就是要卡住那些只背"for 需要初始化/条件/更新三步"而不懂二者本质等价的考生——一级卷里 30% 的判断题都是这种"看似有区别实则没区别"的陷阱。

🧠 解题思维 看到题先想两个循环的底层结构:for 循环就是 while 循环的语法糖,for(init;cond;update) 等价于 while(cond){init;...;update;}。既然 while 能构造死循环,for 同样能通过让条件永远为真(比如 for(;;) 或 for(int i=0;1;))实现死循环。通法:判断某循环是否可能无限,关键是看终止条件能否被恒真赋值。

🪤 陷阱拆解 A 选项的错误在于把"语法形式不同"偷换成"行为能力不同"。命题人利用初学者"for 有计数器就会自动结束"的直觉误区,让你误以为 for 自带终止机制。最阴险的是后半句"不可能是"这种绝对化表述——只要存在一种构造方式,这句话就立刻崩塌。如果你只背结论没理解 while 和 for 的等价性,就会掉进"for 更安全"的幻觉里。

🔄 反命题思维 如果把这题改成"在 C++ 中,for 循环比 while 循环更安全",答案依然是错误,因为"安全"没有定义;改成"for 循环一定比 while 循环执行次数少",也是错误,当 while 条件为假时执行 0 次,for 同样可能 0 次。刷到类似题先问自己:命题人想考我什么?是考语法差异、语义等价,还是考你对"死循环"构造方法的掌握?

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