🎁 当前为 免费试看 内容 · 开通VIP 解锁 CSP-J/S 集训全部六大模块 + 真题模考 + 高分技巧

阅读程序:四步法

所属模块 真题应试集训初赛分值 阅读程序 16–21 题(约 30+ 分)出题类型 读程序写结果 / 填空难度 ★★★★☆近5年频次 全程

基础概念

基通俗讲解

阅读程序占分最重、最易拉分。核心不是“读懂每一行”,而是用系统方法追踪变量、预判输出。四步法把随机阅读变成确定性流程。

阅读程序:四步法流程
阅读程序四步法四步确定性流程串联 ① 输入输出预判 ② 变量追踪列表填值 ③ 边界标记数循环次数 ④ 递归展开画调用树
把随机阅读变成确定性流程:先预判输入输出,再逐轮填变量追踪表,圈出循环边界数清次数,递归题画调用树展开。每步都落地到草稿纸最稳。

核心必背考点 · 四步法

背直接默写拿分
  1. 输入输出预判:看 cin/cout 与数组规模,猜程序“大概算什么”。
  2. 变量追踪:在草稿纸列变量表,逐轮填值(尤其循环/递归)。
  3. 循环边界标记:圈出初值/条件/步长,数清执行次数。
  4. 递归展开:画调用树或写出每层返回值。

高频难点 / 拉分考点

难考场极易丢分

全局变量在递归间持续累积、数组越界行为未定义、整数溢出是阅读程序三大失分黑洞。凡遇全局量必逐层追,凡遇大数必想范围。

出题陷阱

坑文字套路
  • 输出格式(空格/换行)也是得分点,别漏看。
  • 函数返回后还有语句 → 回溯阶段别漏算。
  • 输入有多组数据时循环读取条件要看清。

90分高分技巧

技速算捷径

用本页/模块⑤的复杂度分析器和代码格式化先“看清”程序结构,再动手追踪;小数据手跑一遍验证你的判断,效率最高。

梯度实战

基础预判并追踪

程序求累加,预判 s 末值。

C++
1int s=0;
2for(int i=1;i<=4;i++) s+=i;
3cout<<s;
▍解析:追踪:s=1,3,6,10 → 10。
中档递归展开

展开 fib(4)。

C++
1int f(int n){ return n<2?n:f(n-1)+f(n-2); }
2cout<<f(4);
▍解析:f(4)=3 → 3。
压轴全局量累加

全局 g 持续累积。

C++
1int g=0;
2void h(int n){ g+=n; if(n>0) h(n-1); }
3int main(){ h(3); cout<<g; }
▍解析:g=3+2+1+0=6。

记忆口诀

技📌 记忆口诀

“先判输入输出,再追变量表;循环边界标记,递归展开妙。”

📝 本节自测共 6 题

做完点「提交本节自测」即时判分;单选 / 多选 / 填空混合,答错可一键收入错题本。

做“阅读程序”题的第一步应当是?
跟踪循环变量最稳妥的办法是?
程序含未初始化变量,其输出通常?
阅读程序写结果题,常用的分析方法有?(多选) 多选题 中
提高阅读程序正确率的做法有?(多选) 多选题 中
CSP 初赛(普及/提高)满分通常为 ____ 分。(填空) 填空题 易

🧭 学习路径

📍 本页
阅读程序四步法
收藏后可在 错题本 / 收藏页 查看(仅保存在本机浏览器)
📚 本站为 www.xxw123.com 之「CSP-J/S 初赛集训」栏目 ↩ 返回网站首页

📐 公式速查面板

📝 我的笔记

写下你的心得、易错点、口诀…

已输入 0 字 · 仅存本机 ✓ 自动保存