下面把前面三块内容合并去重、按“上午选择题必背 → CPU 组成专题 → 下午应用题必背 → 优先级与速记”四部分完整整理。通俗解释和记忆抓手保留,便于直接背诵。


一、上午选择题必背清单

(一)计算机组成与体系结构(约12分)

1. 流水线计算

  • 背熟:流水线周期 = 各段中最慢的那段时间。执行时间 = 单条指令完整时间 +(指令数 − 1)× 流水线周期。吞吐率 = 指令数 / 总时间。
  • 通俗:像工厂装配线,速度由最慢工位决定;第1条走完全程,之后每条只再等“最慢工位”那么久。

2. 浮点数

  • 背熟:阶码决定范围,尾数决定精度。阶码越长范围越大,尾数越长精度越高。

3. Cache

  • 背熟:Cache 是除寄存器外最快的存储层次,缓解 CPU 与主存之间的速度矛盾,依据是局部性原理。

4. 校验码

  • 背熟:奇偶校验只检错不纠错;CRC 可检错不可纠错;海明码可检错也可纠错,校验位公式 2^r ≥ r + m + 1(m 数据位,r 校验位)。

5. 码制转换

  • 背熟:正数原码、反码、补码相同;负数反码 = 原码数值位按位取反(符号位不变),补码 = 反码末位加1;移码 = 补码符号位取反。
  • 通俗:补码存在的唯一目的,是让减法能用加法电路完成,省掉一套减法硬件。
  • 常考:问“补码的作用”,选“将减法转化为加法,简化运算器设计”。

6. 寻址方式(高频辨析)

  • 背熟:立即寻址最快(操作数写在指令里,不访存);间接寻址最慢(多次访存);寄存器寻址也快;直接寻址指令中放的是操作数地址。
  • 通俗:立即=答案写在题目里;直接=题目给房间号;间接=题目给信封,信封里才是房间号。

7. 总线分类

  • 背熟:数据总线双向,地址总线单向(CPU发出地址),控制总线双向。

8. 系统可靠性计算

  • 背熟:串联可靠度 = 各部件相乘;并联可靠度 = 1 − 各部件失效率相乘(即 1 − (1−R)ⁿ)。
  • 通俗:串联像铁链,一环断全断,所以乘;并联像多条备份路线,全断才断,所以算“全坏”再1减。
  • 易错:并联不是直接相乘可靠度,是先求全失效概率再1减。

9. I/O 数据传输方式

  • 背熟:效率 DMA > 中断 > 程序查询。程序查询 CPU 一直等,利用率最低;中断 CPU 不用等但每次传输要介入;DMA 硬件直接搬数据,CPU 几乎不参与。

(二)操作系统(约10分)

1. PV操作与前趋图

  • 背熟:互斥信号量初值1,同步信号量初值通常0。前趋图中,箭线起点是 V(前驱完成通知),终点是 P(后继开始前等待)。
  • 通俗:P 是申请/等待,V 是释放/通知;谁先完成谁 V,谁要开始谁先 P 等着。

2. 死锁判断

  • 背熟:不会死锁的条件 m * (w-1) + 1 <= n(m 进程数,w 每进程最大需求,n 资源总数)。
  • 通俗:最坏情况每个进程都拿到“差一个就满足”,此时再多1个资源,必能先让一个进程跑完,打破死锁。

3. 页式存储

  • 背熟:逻辑地址 = 页号 + 页内偏移。淘汰页面时,被修改过的脏页要写回磁盘,没修改的直接丢弃。

4. 线程与进程资源共享(高频易混)

  • 背熟:同进程内多线程共享代码段、全局变量、打开的文件;但每个线程有独立栈和寄存器,栈不共享。
  • 通俗:进程像办公室,代码和文件是公共资源;但每个人的**工位(栈)**是自己的。

5. 文件物理结构

  • 背熟:连续结构存取快但产生碎片;链接结构无碎片但只能顺序访问;索引结构支持随机访问,索引表占空间。
  • 常考:“支持随机存取且不产生外部碎片”选索引结构。

(三)数据结构与算法(约10分,性价比最高)

1. 排序复杂度与稳定性(几乎年年沾边)

  • 背熟:
    • 平均 (O(n\log n)):快排、归并、堆排(口诀“快归堆”)。
    • 平均 (O(n^2)):冒泡、插入、选择(口诀“冒插选”)。
    • 不稳定:快排、希尔、选择、堆排(口诀“快希选堆”)。
    • 稳定:冒泡、插入、归并、基数。
  • 通俗:稳定性指“值相等的元素排序后相对顺序不变”,需要保留原始先后顺序的场景必须用稳定排序。

2. 二叉树遍历

  • 背熟:前序“根左右”,中序“左根右”,后序“左右根”。已知中序 + 前序(或中序 + 后序)可唯一还原二叉树。

3. 哈夫曼树

  • 背熟:权值小的优先合并,带权路径长度最小;频率高的字符编码短。

4. 图的存储与遍历

  • 背熟:邻接矩阵适合稠密图,邻接表适合稀疏图。DFS 用栈(递归),BFS 用队列。
  • 通俗:邻接矩阵像“谁和谁相连”的大表格,边多填得满才划算;边少大部分是空的,就用邻接表只记朋友。

5. B树与B+树

  • 背熟:B树节点既存关键字也存数据;B+树只有叶子节点存数据,非叶子只存索引,叶子间用指针连成链表,范围查询更快。数据库索引多用 B+ 树。

6. 关键路径

  • 背熟:关键路径是 AOE 网中最长路径,关键活动时间裕量为 0,任何关键活动延误都拖长总工期。

(四)程序设计语言基础

1. 编译各阶段

  • 背熟:词法分析 → 语法分析 → 语义分析 → 中间代码生成 → 优化 → 目标代码生成。词法管“单词拼写”,语法管“句子结构”,语义管“意思通不通”。
  • 常考:“括号不匹配”在语法分析阶段发现。

2. 有限自动机与正规式

  • 背熟:DFA 每个状态对同一输入只有唯一后继;NFA 可有多个后继。正规式与有限自动机等价,都描述词法规则。

3. 编译 vs 解释

  • 背熟:编译效率高但可移植性差;解释可移植性好但效率低。

(五)软件工程

1. 开发模型

  • 背熟:瀑布阶段严格顺序,适合需求明确稳定;敏捷迭代、快速响应变化(Scrum 每日站会、XP 结对编程);螺旋强调风险分析,适合大型复杂项目。

2. 内聚与耦合

  • 背熟:内聚从高到低:功能 > 顺序 > 通信 > 过程 > 时间 > 逻辑 > 偶然。耦合从低到高:非直接 > 数据 > 标记 > 控制 > 外部 > 公共 > 内容。设计目标:高内聚低耦合。

3. McCabe 环路复杂度

  • 背熟:边 − 节点 + 2,或 判定节点数 + 1。两种结果一样,考场用“判定节点数 + 1”更快。
  • 通俗:数的是代码里有多少个岔路口,岔路越多测试要覆盖的路径越多。

4. 测试与维护

  • 黑盒:等价类划分、边界值分析(不关心内部逻辑)。
  • 白盒:逻辑覆盖(语句、判定、条件、路径覆盖)。
  • 维护类型:纠错性(修bug)、适应性(环境变化)、完善性(加功能)、预防性(提高可维护性)。

5. 可移植性设计

  • 背熟:核心是屏蔽平台差异——设备相关代码与无关代码分离、用跨平台语言、不用平台专属类库。“使用特定环境专用功能”是破坏可移植性的做法,选项里出现不要选。

(六)面向对象

1. UML 核心图

  • 背熟:用例图看“系统能做什么”;类图看静态结构;时序图看按时间顺序的消息交互;活动图看流程;状态图看对象状态变迁。

2. 类图关系强弱

  • 背熟:依赖 < 关联 < 聚合 < 组合 < 泛化(继承)< 实现。聚合空心菱形(整体没了部分还能活),组合实心菱形(整体没了部分跟着销毁)。

3. 设计模式三大分类

  • 背熟:创建型管“怎么造对象”(单例、工厂、建造者、原型);结构型管“怎么拼对象”(适配器、桥接、组合、装饰、外观、享元、代理);行为型管“对象之间怎么通信分责”(观察者、策略、命令、模板方法、责任链、状态、迭代器等)。
  • 场景对应:只需一个实例→单例;接口不兼容要转换→适配器;一对多通知→观察者;多种算法可互换→策略;两个独立变化维度→桥接。

(七)数据库系统

1. E-R 转关系模式(送分核心)

  • 背熟:1:1 任一方主键放进另一方作外键;1:N 把 1 端主键放进 N 端作外键;M:N 必须单独建表,主键 = 双方主键的组合,联系自身属性也放这张表。
  • 通俗:多对多像“学生选课”,选课关系(成绩)塞不进学生表或课程表,只能单独建“选课表”。

2. 规范化

  • 背熟:1NF 属性不可再分;2NF 消除部分依赖(联合主键中某字段不能只依赖主键一部分);3NF 消除传递依赖(非主属性不能依赖另一个非主属性)。

3. 三级模式与两级映像

  • 背熟:三级模式 = 外模式(用户视图)、模式(逻辑结构)、内模式(物理存储);两级映像 = 外模式/模式(逻辑独立性)、模式/内模式(物理独立性)。
  • 通俗:外模式是“你看到的报表”,模式是“数据库表结构设计”,内模式是“数据在硬盘怎么存”。改硬盘不影响表结构(物理独立性),改表结构不影响报表(逻辑独立性)。

4. 事务与封锁

  • 背熟:ACID = 原子性、一致性、隔离性、持久性。一级封锁防丢失修改,二级防脏读,三级防不可重复读。

5. SQL 要点

  • 背熟:WHERE 过滤行,HAVING 过滤分组后的组。多对多查询必须通过中间关联表 + JOIN。

(八)计算机网络与信息安全

1. 子网划分(必考计算)

  • 背熟核心:可用主机数 = (2^h - 2)(h 主机位);子网掩码前缀 = (32 - h);子网数 = (2^n)(n 借位数)。
  • 必背对照表:
前缀子网掩码主机位 h地址总数可用主机数
/24255.255.255.08256254
/25255.255.255.1287128126
/26255.255.255.19266462
/27255.255.255.22453230
/28255.255.255.24041614
/29255.255.255.248386
/30255.255.255.252242

看到“30台”→/27,255.255.255.224;看到“62台”→/26。

2. 网络设备工作层次

  • 背熟:集线器(Hub) 物理层,交换机数据链路层,路由器网络层,网关应用层及以上。

3. 协议端口

  • 背熟:80-HTTP,443-HTTPS,21-FTP,53-DNS,25-SMTP,110-POP3。TCP 可靠、面向字节流、有连接;UDP 快、无连接、面向报文(适合视频/语音/DNS)。

4. 加密与签名

  • 背熟:公钥加密,私钥签名。加密用对方公钥,签名用自己的私钥。数字签名保证不可否认性;数字证书由 CA 签发,绑定公钥与身份。

5. 常见攻击

  • 背熟:DDoS 分布式拒绝服务(流量压垮);ARP 欺骗伪造 MAC-IP 对应;SQL 注入拼恶意 SQL;XSS 塞恶意脚本。防护对应:流量清洗、ARP 绑定、参数化查询、输入转义。

(九)知识产权与标准化(纯记忆)

1. 保护期限

  • 背熟:公民软件著作权 作者终生 + 死后50年;单位软件著作权 首次发表后50年;注册商标 10年(期满前6个月续注);发明专利 20年;实用新型和外观设计 10年。
  • 特殊:署名权、修改权、保护作品完整权保护期不受时间限制。

2. 标准代号

  • 背熟:GB 强制性国标,GB/T 推荐性国标,ISO 国际标准,IEEE 行业标准。

二、CPU 组成结构专题(你特别问的)

总原则:不需要逐字背教材每个寄存器,但核心部件 + 归属判断必须背熟,因为常考“下列哪个属于运算器/控制器”。

1. 必须背熟的核心结论

CPU 两大核心部件:运算器 + 控制器(外加寄存器组、内部总线)。

运算器:背“算、存、状”

  • ALU 算术逻辑单元:做算术和逻辑运算,运算器核心。
  • AC 累加寄存器:暂存运算结果或操作数。
  • DR 数据缓冲寄存器:暂存从内存读出或要写入内存的数据。
  • PSW 状态条件寄存器(标志寄存器):存进位、溢出、零标志等状态。

记忆:运算器 = ALU + AC + DR + PSW。

控制器:背“取、译、时、发”

  • PC 程序计数器:存下一条要执行指令的地址。
  • IR 指令寄存器:存当前正在执行的指令。
  • 指令译码器:把操作码翻译成控制信号。
  • 时序部件/微操作信号发生器:产生各阶段时序控制信号。

记忆:控制器 = PC + IR + 译码器 + 时序部件。

2. 必须背熟的归属判断(高频易错)

  • PC 属于控制器(不是运算器)。
  • IR 属于控制器(不是运算器)。
  • ALU 属于运算器。
  • PSW 属于运算器。
  • 指令译码器属于控制器。

只要能把上面几个正确归类,这类选择题就不会丢分。

3. 理解即可、不必死背

  • 通用寄存器组:CPU 内部暂存操作数,软考有时单列,不一定强行归入运算器。
  • 暂存寄存器、内部总线:知道是 CPU 内部数据通路一部分即可。
  • 控制器产生控制信号的具体流程:理解“取指—译码—执行”顺序即可,不必背微操作序列。

4. 一句话背诵版

运算器四件套:ALU、AC、DR、PSW;控制器四件套:PC、IR、译码器、时序部件。PC 存下一条,IR 存当前条;PC、IR 归控制器,ALU、PSW 归运算器。


三、下午应用题必背(题型固定,背模板拿底线分)

下午前4题必答,题型极其固定。目标不是现场设计,而是“看到题就知道第一步找什么”。

(一)数据流图(第1题,15分)

背熟三件事:

  1. 外部实体:题干里的“人/部门/外部系统”(客户、管理员、银行、财务部门等),系统边界之外。
  2. 数据存储:名字带“文件、表、清单、档案、库”的基本是数据存储。
  3. 缺失数据流:先找“只有入没有出”或“只有出没有入”的加工;再逐句读题干,看哪个加工“提到要读某存储但图上没入线”。数据流起点或终点必须有一个是加工。

三条铁律:数据存储之间不能直连;外部实体之间不能直连;加工不能只有入或只有出。都必须经过加工中转。

命名规范:数据流写名词(如“付款通知”),不能写成“计算成本”这种加工名;加工名写动词+名词。

数据平衡三原则:

  • 父图与子图平衡:子图边界流 = 父图该加工的流,一条不多一条不少。
  • 加工自身平衡:每个加工有进有出,不能是黑洞或奇迹。
  • 顶层图与0层图平衡:系统对外交互数量名称一致。

父图子图通俗:父图是粗图,子图是把父图中某一个加工展开后的细图;平衡要求这个框的对外接口展开前后不能变。

(二)数据库设计(第2题,15分)

E-R 转关系模式规则(送分核心):

  • 1:1:任一方主键放进另一方作外键(或合并)。
  • 1:N:N 端加 1 端主键作外键。
  • M:N:必须单独建表,主键 = 双方主键组合,联系自身属性也放这张表。

主键判定:题干出现“唯一标识”“编号”“身份证号”的基本是主键候选。

外键判定:A 表出现 B 表主键,它就是外键;M:N 单独建的表,双方主键组合为主键,同时各自也是外键。

范式一句话:1NF 列不可分;2NF 消除部分依赖;3NF 消除传递依赖。

(三)UML 建模(第3题,15分)

类图关系:泛化(空心三角实线,继承)、聚合(空心菱形,整体没了部分还能活)、组合(实心菱形,部分随整体销毁)、依赖(虚线箭头,一个类变化波及另一个)。

多重度:1 恰好一个;0..* 或 * 零个或多个;1..* 至少一个。注意“0”的含义(新系统刚上线没有订单)。

用例关系:include 是“一定会做”,extend 是“有条件才做”。

(四)C 语言算法设计(第4题,15分)

四种策略的“长相”:

  • 分治:大问题拆小问题,递归求解再合并(归并排序、二分查找)。
  • 动态规划:有递推式/状态转移方程,通常用表格自底向上算。
  • 贪心:每步选当前最优,不回头(活动安排、部分背包)。
  • 回溯:递归尝试 + 不满足就撤销(N皇后、排列组合)。

填空三件套:

  • 递归出口:函数开头,看终止条件(如 row > n),不要填成推进条件。
  • 递归调用:参数推进通常是 row+1、k+1、i+1,看“处理下一个”用哪个变量控制。
  • 回溯还原:找前面“标记占用”的语句,把它恢复初始值(如 queen[row]=0、visited[i]=0)。没有还原语句,回溯法就不成立。

经典结论:N皇后 n=4 时解的个数 = 2。

策略:目标6—8分,不要在一道算法题耗超过25分钟。

(五)设计模式选答(第5/6题,15分选一)

背熟“场景→模式”对应:

  • 单例:系统只需要一个实例(连接池、配置管理器、中央控制器)。
  • 工厂:创建对象逻辑集中管理,调用方只说“要什么”。
  • 观察者:一对多通知,一个对象变了所有依赖它的自动更新(事件监听、温度触发空调)。
  • 策略:多种可互换算法,运行时选一种(不同促销规则)。
  • 适配器:接口不兼容要转换。
  • 桥接:两个独立变化的维度,用组合而非继承。

代码填空三处:接口/抽象类的实现关键字(Java 是 implements,C++ 是 : public)、工厂方法的返回类型(填接口名)、具体对象的创建(填 new 具体类())。

策略:选自己最擅长的语言,考前集中练真题填空;能拿一半分就足以通过。


四、背诵优先级与速记口诀

时间紧张先背这些

上午题最容易被忽略但几乎年年出现:码制补码作用、寻址方式快慢排序、总线单向/双向、串联并联可靠度、DMA>中断>查询、线程不共享栈、McCabe 边−节点+2、可移植性“不用专用功能”、三级模式两级映像、设计模式三大分类、Hub/交换机/路由器层次、CPU 运算器/控制器归属。

下午题最容易丢分的细节:数据流命名不能用动词、缺失流必须一端是加工、M:N 单独建表且主键为组合、聚合 vs 组合看菱形实心空心、回溯填空必有“还原”、设计模式填空看 implements 和 new。

一句话总口诀

上午背:流水线周期 + PV方向 + 排序口诀 + 子网对照表 + 保护期限 + CPU四件套归属。
下午背:DFD找实体/存储 + E-R的M:N单独建表 + 类图关系/多重度 + 四种算法长相 + 六种模式场景。
CPU专题:运算器 ALU/AC/DR/PSW,控制器 PC/IR/译码器/时序部件;PC、IR 归控制器,ALU、PSW 归运算器。

把以上条目背到条件反射,上午选择题的“概念辨析+小计算”和下午前四题的“模板采分”就基本没有大块盲区。专业英语(5分)不建议专门背单词,靠做真题积累计算机术语即可;知识产权分值低,背列出的保护期限和标准代号就够,把时间优先给软件工程、面向对象、数据结构与算法这三块约30分的重心。

关于“已知每个子网主机数,求子网掩码”这一类题,需要记住的核心是主机位公式 + 掩码换算 + 常见掩码表。下面按类别列出关键知识点和常考形式。


一、必须背熟的核心公式

1. 可用主机数公式

[ 可用主机数 = 2^h - 2 ]

  • (h):主机位数
  • 减 2:去掉网络地址和广播地址
  • 题目说“每个子网主机数是30台”,就是求满足 (2^h-2 \ge 30) 的最小 (h)

2. 子网掩码前缀

[ 子网掩码前缀 = 32 - h ]

因为 IPv4 共 32 位,主机位占 (h) 位,剩下全是网络位/子网位。

3. 子网数公式

[ 子网数 = 2^s ]

  • (s):从主机位借来用作子网位的位数
  • 常考:“划分成若干子网”求子网数或掩码

4. 每个子网地址总数

[ 地址总数 = 2^h ]

可用主机数 = 地址总数 − 2。


二、必须背熟的常见掩码表

前缀子网掩码主机位 h地址总数可用主机数
/24255.255.255.08256254
/25255.255.255.1287128126
/26255.255.255.19266462
/27255.255.255.22453230
/28255.255.255.24041614
/29255.255.255.248386
/30255.255.255.252242

记忆重点:

  • 看到“30台主机” → 直接想到 /27,255.255.255.224
  • 看到“62台” → /26
  • 看到“14台” → /28
  • 看到“6台” → /29
  • 看到“2台” → /30(常用于点对点链路)

三、C类地址的默认知识

  • C类地址默认网络位:24位
  • 默认子网掩码:255.255.255.0(/24)
  • 默认主机位:8位
  • 划分子网时,只能从最后 8 位主机位中“借位”作子网位

所以 C 类题中,掩码变化只在最后一个字节。


四、常考题型与对应解法

题型1:已知每个子网主机数,求子网掩码

  • 解法:用 (2^h-2 \ge 主机数) 求最小 (h),再算前缀 (32-h),转点分十进制。
  • 例:30台 → h=5 → /27 → 255.255.255.224

题型2:已知子网掩码,求每个子网可用主机数

  • 解法:先看前缀,求 (h=32-前缀),再算 (2^h-2)。
  • 例:/28 → h=4 → 14台

题型3:已知需要划分的子网数,求子网掩码

  • 解法:用 (2^s \ge 子网数) 求最小 (s),新前缀 = 默认前缀 + s。
  • 注意:这题问的是“子网数”,不是“每子网主机数”,不要混。

题型4:求网络地址、广播地址、可用IP范围

  • 解法:用“块大小 = 256 − 掩码最后字节”定位。
  • 例:/27 最后字节224,块大小 = 256−224 = 32。
  • 网络地址是块大小的整数倍起点;广播地址是下一个块起点减1。

题型5:判断两个IP是否在同一子网

  • 解法:分别与子网掩码做按位与,结果相同则同子网。

五、易错点(软考常设陷阱)

  1. 忘记减2:可用主机数不是 (2^h),而是 (2^h-2)。
  2. 把“主机数”当成“地址总数”:30台主机对应32个地址,不是30个地址。
  3. 借位方向搞反:子网位是从主机位借,前缀变大,主机位变小。
  4. C类默认/24忘记:C类不是/16,A类/8、B类/16、C类/24。
  5. /30不是不能用:/30只有2个可用主机,点对点链路常用;/31是特殊点对点,软考一般按传统减2理解。
  6. “子网数”和“每子网主机数”混淆:一个用 (2^s),一个用 (2^h-2)。

六、速记口诀

主机数先加2,找最小2的幂;
主机位定h,前缀就是32减h;
C类默认24,最后字节来换算;
30台记/27,掩码末位224。

你给的题“C类地址每个子网30台主机”,直接背成:30台 → h=5 → /27 → 255.255.255.224。这是软考网络计算题里最高频的结论之一。