NOIP 普及组初赛 · NOIP 2013 普及组初赛试题 第 19 题

选择题 · 答案 A

← 整套速查表 NOIP 普及组初赛 全部真题

题目

下列程序中,正确计算 $1,2,\dots,100$ 这 $100$ 个自然数之和 $\mathrm{sum}$(初始值为 $0$)的是( )。

答案:A

解题思维

别急着看条件,先盯着执行顺序!这题核心陷阱在于 do-while 的“先执行后判断”特性,以及 while 条件里是小于还是小于等于。拿到题先想:i 从 1 开始,要加到 100,循环体里必须先 sum+=i 再 i++,然后判断 i 是否还能继续。

常见错误

最容易栽跟头的是把 do-while 当成 while 用,或者只看条件不看执行顺序。比如 C 选项条件写成 i<100,看起来好像也能加到 100,但它先判断再执行,i=100 时直接退出,100 根本没加进去。还有很多人会忽略 do-while 至少执行一次的特性,以为和 while 一样可能一次都不进,从而误选 B 或 D。记住,do-while 是先干后判,while 是先判后干,这半步之差决定了结果差 100。

详细解析(节选)

这道题考什么

考循环结构的执行顺序和条件判断的边界处理,核心是 do-while 与 while 的区别,以及“先加后判”还是“先判后加”对累加结果的影响。

知识点人话版

命题人怎么挖坑

命题人最喜欢让你掉进两个坑:一是把 do-while 当成 while 用,以为它也能先判断;二是条件写错,把 <=100 写成 <100,看似只差一个符号,结果少加 100。这题四个选项就专门针对这两点设了雷区。

拿到题先想什么

1. 先想执行顺序:要加 1 到 100,循环体里必须是 sum += i; i++;,而且这个动作要在判断之前完成,否则 100 永远加不进去。 2. 再看条件:i 从 1 开始,每次加 1,要让它能跑到 100 再退出,条件必须是 i <= 100 且用 do-while(先执行后判断)。 3. 一步步推: - i=1:do-while 先执行,sum+=1,i 变 2,判断 2<=100 继续; - …… - i=100:先执行,sum+=100,i 变 101,判断 101<=100 为假,退出。 正好加了 1 到 100,完美。

具体怎么算(逐项分析)

避坑提醒

千万别被 C 选项迷惑,它看着也顺眼,但 <100 导致 100 漏掉,这是最经典的“少加 100”错误。还有,do-while 至少执行一次,B 选项很多人以为会加到 100,其实只加了 1。记住:先执行后判断 + 条件包含 100 才是正解。

考频与趋势

根据历年数据,循环结构与条件判断是 NOIP 普及组初赛的必考点,每年稳定出现 1-2 次,通常以单选形式出现,重点考察 do-while 与 while 的区别以及边界条件的处理。这道题是 2013 年真题,后续年份类似题目仍高频出现,如 2015 年第 22 题、2018 年第 21 题等,都围绕循环执行顺序和条件判断设计陷阱。

预测

基于近年趋势,未来仍可能继续考循环结构与条件判断,但会进一步结合数组或简单逻辑控制,增加一点复杂度,比如让考生判断循环次数或累加特定序列。不过核心逻辑不会变:先想执行顺序,再抠条件边界。暂无足够依据预测具体变体形式,但“先执行后判断”与“边界包含性”这两个考点大概率还会反复出现。

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