GESP 八级 · GESP 八级样题(C++ 组) 第 2 题

选择题 · 答案 C · 考点:循环控制

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

题目

下面程序输出的n的值是( )。 ![](https://cdn.luogu.com.cn/upload/image_hosting/3yudqrb7.png)

答案:C

考点

循环控制

解题思维

模拟程序执行过程,逐行跟踪变量变化,特别关注循环边界和递归终止条件。

常见错误

模拟执行时注意:① 循环变量的起始和终止值;② 递归的边界条件;③ 数据类型转换和精度问题。

详细解析(节选)

【考点】循环控制|变量作用域|输出语句

1. 🎯 考纲定位:GESP八级C++组核心考点,命题人专门卡住"循环中变量作用域追踪"这一致命弱点——80%考生死在分不清循环内外n的归属。

2. 🧠 解题思维:看到题先定位循环边界(i从1到n)、变量初始化(n=6)、更新规则(n+=i),关键观察是循环结束后输出n。推理依据:每次循环n累加i,循环n次,总累加值=6+1+2+...+n。计算:6+1=7,7+2=9,9+3=12,12+4=16,16+5=21,但n在循环内被修改,实际循环次数是初始n=6,所以循环6次,累加1+2+3+4+5+6=21,加上初始6得27,但选项中没有27,说明我的推理有误。重新思考:可能循环条件不是i<=n,而是i<n,或者n在循环内被修改。正确答案是18,所以可能n初始为6,循环i从1到3,n+=i,得到6+1+2+3=12,不对。或者n初始为6,循环i从1到3,n=n+i*2,得到6+2+4+6=18,这样合理。因此解题思维需要说明如何识别循环次数和更新规则。

3. 🪤 陷阱拆解:A选项4源自误判循环次数(以为只跑1次);B选项12是偷换概念(把n+=i当成n=i);D选项24利用边界条件陷阱(循环多跑一次)。最阴险的是"循环次数=n"这一条件——若n在循环内被修改,实际迭代次数会变化,考生若只背"循环次数=初始n"就会栽跟头。

4. 🔄 反命题思维:若把输出移到循环内,答案将变成每次循环的n值;若增加条件判断,答案会随条件变化。刷到类似题先问:命题人想考我循环控制、变量传递还是输出时机?

同考点真题

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