基础概念
1. 计算机存储与网络
RAMROMCacheLAN/MAN/WAN
- RAM:运行时临时存储,速度快,断电会丢。
- ROM:只读或固化内容,常用于保存固定程序。
- Cache:CPU 附近的高速缓存,用来加快访问。
- 网络范围:PAN 个人,LAN 局域,MAN 城域,WAN 广域。
常考:教学楼、机房、家庭内网一般看作 LAN;“执行判断”通常不是传感器,而是处理器。
记忆线:存储看“掉不掉电”,网络看“覆盖范围”。
语言与环境
2. 程序设计语言与翻译
机器语言汇编语言高级语言编译器
- 机器语言:计算机最直接能识别,离硬件最近。
- 汇编语言:用助记符表示机器指令。
- 高级语言:C++、Python,更接近人的表达。
- 编译器负责翻译源程序;操作系统负责管理资源和运行环境。
常考:不要把“操作系统能运行程序”误认为“操作系统负责把源代码编译成目标程序”。
记忆线:写代码的是源程序,翻译代码的是编译器,管理电脑的是操作系统。
程序结构
3. 流程图与三大结构
顺序分支循环判断框
- 顺序结构:从上到下依次执行。
- 分支结构:根据条件走不同路径,如 `if`、`if...else`、`switch`。
- 循环结构:条件满足时重复执行,如 `for`、`while`、`do...while`。
- 流程图判断框通常有“是 / 否”两条出口。
常考:流程图和代码互相对应,读图时先找入口、判断条件、循环变量更新和出口。
记忆线:顺序看方向,分支看真假,循环看“什么时候停”。
字符编码
4. ASCII 与字符计算
空格 32'0' 48'A' 65'a' 97
- 数字字符连续:`'0'` 到 `'9'`。
- 大写字母连续:`'A'` 到 `'Z'`。
- 小写字母连续:`'a'` 到 `'z'`。
- 字符能参与减法,本质是在用编码值相减。
常考:`'Z' - 'A' = 25`,`'5' - '0' = 5`;大小写编码不同,不能混算成同一段。
记忆线:空格 32,0 是 48,A 是 65,a 是 97。
表达式
5. 类型转换、运算符与真假
/ 商% 余数0 假非 0 真
- 整数 `/`:得到商,`1 / 3 = 0`。
- 取模 `%`:得到余数,常用于奇偶、循环节、拆位。
- 隐式转换:表达式自动转换类型;强制转换:程序员明确指定类型。
- 关系表达式结果是真或假,输出到整数语境常表现为 1 或 0。
常考:`if (x)` 不是判断 x 是否等于 1,而是判断 x 是否非 0。
记忆线:`/` 看商,`%` 看余;0 假,非 0 真。
控制语句
6. 多层分支与多层循环
ifswitchforwhilebreak/continue
- 多层分支:先看条件顺序,再看哪一支被执行。
- `for` 顺序:初始化一次 → 判断 → 循环体 → 更新 → 再判断。
- `while`:先判断再执行;`do...while`:先执行一次再判断。
- `continue` 跳到下一轮;`break` 跳出当前循环。
常考:嵌套循环中,`break` 和 `continue` 只影响它所在的那一层循环。
记忆线:for 看四件事:初值、条件、循环体、更新。
库函数
7. 常用数学函数
abssqrtmaxminrand/srand
- `abs(x)`:绝对值。
- `sqrt(x)`:平方根。
- `max(a,b)` / `min(a,b)`:两个数的较大值 / 较小值。
- `rand()` 产生随机数,`srand()` 设置随机种子。
常考:维护最大值、最小值不一定要排序;读入时边比较边更新即可。
记忆线:函数题先问“它返回什么”,再问“变量是否每轮重置”。
做题方法
8. 代码阅读通用草稿法
圈初值画表追输出核格式
- 先圈:输入、初值、循环条件、变量更新、输出语句位置。
- 再画表:轮次、关键变量、条件真假、本轮输出、累计输出。
- 嵌套循环:先算每个外层值对应的内层次数。
- 图形输出:逐行写“空格数 + 字符数 + 换行”。
- 最后核对:空格、`#`、换行、输出是否在循环外。
常考:不是算不出,而是漏看 `continue`、`break`、循环后单独的 `if`、输出位置。
记忆线:圈代码、画表格、追输出、查格式。