本题导读
本题考查程序框图与算法流程,以及循环结构。
📌【题干】
Question
(2012年辽宁卷(理)) 执行如图所示的程序框图,则输出的 值是 ()
A. -1 B. C. D. 4
🔍【思路分析】
破题导航
- 状态初始化:进入程序时,赋予初始值 。
- 理解循环逻辑:
- 每次进入判断框,检测计数器是否满足条件 。
- 若满足,执行核心递推式 ,随后计数器自增 。
- 若不满足(即 ),则跳出循环,输出当前的 值。
- 寻找周期特征:由于判断终止线较远( ),直接硬算容易由于步数过多导致失误。顺次迭代前几项,观察 的取值是否具有周期性规律。
- 定位最终解:确定周期 后,利用计数器 最终停止时的步数,通过余数对应锁定目标 。
✅【答案】
点击查看答案
D
✍【详细解析】
Abstract
根据程序框图的指示逻辑,我们对算法的每一步执行状态进行精确跟踪模拟:
初始状态:
第一轮循环 (): 满足条件 ,进入循环。 更新 的值: 。 计数器自增: 。
第二轮循环 (): 满足条件 ,继续循环。 更新 的值: 。 计数器自增: 。
第三轮循环 (): 满足条件 ,继续循环。 更新 的值: 。 计数器自增: 。
第四轮循环 (): 满足条件 ,继续循环。 更新 的值: 。 计数器自增: 。
此时可以明显观察到,在第四轮循环结束后, 的值重新回归到了初始值 。 这意味着 变量 的取值数列具有以 为固定长周期的循环特征,具体分布为:
由于 循环终止的临界点判定为 : 当进行到第 8 轮循环体执行完毕后,计数器自增变为 。 重新回到判断框,此时 不成立(走向“否”分支),程序直接跳出循环并输出 。
因此,最终输出的 是第 8 轮循环计算后得到的值。 由于 循环次数为 8 次,且周期 , 因为 (即恰好完成了 2 个完整周期的循环), 所以 第 8 次计算出的 值应该与第 4 次(一个周期末尾)计算出的 值完全一致,即:
故选 D#### 💡【考点归纳与避坑指南】 [!danger]
- 核心考点:直到型/当型循环结构的边界跨越特征、分式分级递推数列的周期性提炼。
- 核心方法:状态顺次执行法(周期归纳法)。
- 避坑指南:
- 极易在分式的多层通分上由于粗心产生计算失误。例如在第三轮计算 时把分母看错。
- 混淆跳出循环时 的数值。程序在第 8 次执行完核心体后, 变为了 ,此时判定为“否”而退出。也就是说,变量 总共经历了 8 次 严格更新,而不是 9 次。
📖【试题探源与推广】
Tip
- 试题探源:本题源于人教A版高中数学老教材必修三第一章《算法初步》中关于程序框图经典循环结构的高考主干中档填空/选择题。
- 结论推广:本题的分式递推关系 属于数学中典型的一阶分式线性变换(Mobius Transformation,莫比乌斯变换)。其通项矩阵表达为: 计算该矩阵的幂次可以发现, (其中 为单位矩阵),这从高等代数矩阵特征值的角度完美解释了为什么该映射迭代 4 次后必然发生周期性坍缩并回归初始状态。掌握这一高数代数背景,能在审题的第一时间判定出其周期必定为 4。
🔗【关联脉络】
Multi column
知识锚点 (Nodes)
/2012-辽宁理-09-题.png)