数据结构与算法——算法能力的基石
数据结构是程序设计的核心,算法是数据结构的“灵魂”。本模块考查重点如下:
- 线性结构:顺序表与链表的区别与操作(插入/删除/查找时间复杂度)、栈的括号匹配与表达式求值、队列的循环实现与应用。
- 树与图:二叉树的先序/中序/后序/层序遍历(递归与非递归)、二叉排序树/平衡树(AVL)、哈夫曼树构造、图的邻接矩阵/邻接表存储、DFS/BFS遍历、最小生成树(Prim/Kruskal)、最短路径(Dijkstra/Floyd)、拓扑排序。
- 排序与查找:7种内部排序算法(直接插入、希尔、冒泡、快速、简单选择、堆、归并)的原理、时间/空间复杂度、稳定性;二分查找及其变种(查找第一个等于/大于目标值的位置)。
- 算法设计:递归思想(汉诺塔、斐波那契)、分治法(归并排序、快速排序)、贪心法(活动选择、背包问题)、动态规划(0-1背包、最长公共子序列、编辑距离)。
典型真题示例(2023年全国卷)
〈问题〉给定一个含n个整数的数组,要求在O(n)时间复杂度内找出缺失的最小正整数(如[3,4,-1,1]→2)。请写出算法思路与核心代码。
〈解析〉本题考查哈希思想与原地哈希优化。常规方法可用HashSet(O(n)时间O(n)空间),但最优解为原地哈希:将值为i的元素放到索引i-1位置,最后扫描第一个不匹配的位置。时间O(n),空间O(1)。
学习建议:建议按“数据结构→基本操作→典型应用→综合题”四步法系统练习,重点掌握手写代码能力(如链表反转、二叉树遍历非递归、堆排序建堆过程)。
操作系统——系统资源的管理者
操作系统是连接硬件与应用的桥梁,考查重点包括:
- 进程与线程:进程状态转换图(五状态模型)、PCB作用、进程调度算法(FCFS、SJF、优先级、时间片轮转、高响应比优先)、同步与互斥(信号量P/V操作实现生产者-消费者、读者-写者、哲学家进餐)、死锁(产生条件、预防/避免/检测与恢复)、银行家算法。
- 内存管理:连续分配方式(单一/多重分区)、非连续分配(页式、段式、段页式)、页表结构、快表(TLB)作用、页面置换算法(FIFO、OPT、LRU、Clock)、Belady异常。
- 文件系统:文件控制块(FCB)、目录结构(单级/二级/树形/无环图)、文件物理结构(连续/链接/索引)、磁盘调度算法(FCFS、SSTF、SCAN、C-SCAN)。
高频考点:信号量应用
〈问题〉用信号量实现“读者-写者”问题(写者优先),写出伪代码并说明各信号量含义。
〈解答〉需设置:R_mutex(控制读者计数)、W_mutex(控制写者写入)、R_count(读者计数)、W_count(等待写者计数)。核心逻辑为:写者到达时阻塞后续读者,已有写者时新读者等待;写者完成后唤醒读者。具体实现需结合条件变量或双重信号量机制。
学习建议:建议画流程图理解进程调度与同步过程,重点掌握P/V操作的“信号量初值→PV配对→临界区保护”三步法,并通过经典模型(如哲学家进餐)训练建模能力。
计算机网络——信息传输的通道
计算机网络考查分层模型与协议细节,核心内容如下:
- 物理层:信道复用(FDM/TDM/CDMA/WDM)、奈氏准则与香农定理、基带传输与调制解调。
- 数据链路层:可靠传输(停止等待、后退N帧、选择重传)、PPP协议、CSMA/CD(以太网)、MAC地址、VLAN。
- 网络层:IP地址分类与子网划分、ARP/RARP/ICMP协议、路由算法(距离矢量RIP、链路状态OSPF)、IPv6基本特征、组播。
- 传输层:UDP与TCP对比、TCP三次握手/四次挥手、可靠传输(GBN/SR)、拥塞控制(慢开始/拥塞避免/快重传/快恢复)、流量控制。
- 应用层:DNS工作流程、HTTP/HTTPS区别、FTP命令与数据连接、SMTP/POP3/IMAP流程。
| 协议 |
端口号 |
传输层协议 |
典型应用 |
| DNS |
53 |
UDP/TCP |
域名解析 |
| HTTP |
80 |
TCP |
万维网访问 |
| HTTPS |
443 |
TCP |
加密传输 |
| FTP |
20/21 |
TCP |
文件传输 |
| SSH |
22 |
TCP |
安全远程登录 |
学习建议:建议结合Wireshark抓包分析实际协议交互过程,重点掌握TCP连接建立与释放的报文序列图(SYN/ACK/FIN标志位变化)及拥塞控制窗口变化曲线。
数据库系统——数据组织与管理的核心
数据库模块考查理论与实践结合,重点包括:
- 关系模型:关系完整性约束(实体/参照/用户定义)、ER图→关系模式转换规则。
- SQL语言:DDL(CREATE/ALTER/DROP)、DML(INSERT/UPDATE/DELETE)、DQL(SELECT嵌套查询、GROUP BY/HAVING、JOIN连接)。
- 范式理论:1NF~BCNF的定义与判定(如:R(A,B,C), F={AB→C, C→A} → 最高满足2NF但不满足BCNF)。
- 事务与并发控制:ACID特性(原子性、一致性、隔离性、持久性)、并发问题(丢失修改、脏读、不可重复读、幻读)、封锁协议(一级/二级/三级)、两段锁协议(2PL)。
- 恢复技术:故障类型(事务/系统/介质故障)、日志文件结构(UNDO/REDO)、检查点技术。
经典例题:事务并发调度
〈问题〉给定事务T1: R(A); W(A); R(B); W(B) 和 T2: R(A); R(B); W(B),判断以下调度是否可串行化:
S: R1(A); R2(A); R2(B); W2(B); R1(B); W1(A); W1(B)
〈解答〉构建冲突等价图:T2→T1(因W2(B)与R1(B)冲突),T1→T2(因W1(A)与R2(A)冲突),存在环→不可串行化。正确调度如T1→T2或T2→T1的串行顺序。
学习建议:建议手写SQL语句并分析执行计划(如EXPLAIN),重点掌握BCNF分解算法(保持依赖与无损连接性)及两段锁协议的应用场景。
软件工程——软件开发的工程化方法
软件工程模块侧重方法论与实践流程,考查重点包括:
- 生命周期模型:瀑布模型、原型模型、增量模型、螺旋模型、敏捷开发(Scrum/Kanban)、DevOps流程。
- 需求工程:需求获取(访谈/问卷/观察)、需求规格说明(SRS)、用例图(UML)、需求验证(一致性、完整性)。
- 设计模式:创建型(单例、工厂、抽象工厂)、结构型(适配器、装饰器、代理)、行为型(观察者、策略、模板方法)。
- 软件测试:测试级别(单元/集成/系统/验收)、测试方法(白盒:逻辑覆盖、路径覆盖;黑盒:等价类、边界值、错误推测)。
- 项目管理:WBS分解、关键路径法(CPM)、风险评估(定性/定量)、软件度量(LOC、函数点)。
单例模式(Singleton)
确保一个类只有一个实例,并提供全局访问点。常见实现包括懒汉式(线程安全需双重检查锁)、饿汉式(类加载即实例化)、静态内部类。
观察者模式(Observer)
定义对象间一对多依赖关系,当一个对象状态改变时,所有依赖者自动更新。典型应用:MVC架构中的Model-View通信。
学习建议:建议结合实际项目分析设计模式的使用场景(如Spring框架中的ApplicationContext即单例管理),重点掌握UML图绘制(类图、时序图)与软件度量计算。
计算机组成原理——硬件系统的底层逻辑
组成原理考查计算机各部件协同工作的机制,核心内容如下:
- 数据表示:机器数(原码/反码/补码/移码)、定点/浮点数表示(IEEE754标准)、字符编码(ASCII/Unicode)、奇偶校验。
- 运算器:加减法(补码加减)、ALU设计、乘除法(原码/补码一位乘)、浮点运算(阶码/尾数)。
- 存储系统:存储器层次结构(寄存器→Cache→主存→辅存)、存储器容量计算(如256K×16位=512KB)、SRAM/DRAM区别、Cache映射(直接/全相联/组相联)、替换算法(FIFO/LRU)。
- 指令系统:指令格式(操作码/地址码)、寻址方式(立即/直接/间接/寄存器/寄存器间接/基址/变址)、CISC/RISC对比。
- CPU控制:指令周期(取指→分析→执行)、数据通路(总线结构)、微程序控制(微指令格式)、硬布线控制。
- 输入输出系统:程序查询/中断/DMA方式、中断处理流程(断点保护→中断服务→现场恢复)、DMA传输过程。
| 存储单位 |
换算关系 |
示例 |
| 1B(字节) |
8bit(位) |
一个英文字母 |
| 1KB |
1024B |
约一首MP3歌词 |
| 1MB |
1024KB |
约一张JPG照片 |
| 1GB |
1024MB |
约一部高清电影 |
学习建议:建议通过手绘数据通路图理解指令执行流程,重点掌握浮点数规格化(隐含位)、Cache命中率计算(如直接映射冲突率)及中断优先级排队(硬件向量法)。
近年命题趋势与未来演变
通过对2009-2023年408真题的统计分析,可发现以下显著趋势:
| 趋势方向 |
具体表现 |
典型真题示例 |
| 跨模块融合 |
数据结构+算法+操作系统综合题(如用图算法解决死锁检测) |
2021年综合题:设计算法判断有向图中是否存在安全序列(类比银行家算法) |
| 工程实践导向 |
强调真实场景建模(如数据库设计“教务管理系统”) |
2022年SQL题:为“在线考试系统”设计学生答题记录表并优化查询 |
| 前沿技术渗透 |
人工智能基础(2023年新增神经网络结构选择题) |
2023年选择题:ReLU激活函数为何优于Sigmoid?(梯度消失问题) |
| 性能分析深化 |
Cache命中率、算法时空复杂度定量计算 |
2020年综合题:给定Cache参数计算平均访存时间 |
未来预测:随着国产操作系统(如OpenEuler)与国产芯片(如昇腾)的发展,计算机组成原理可能加强RISC-V指令集考查;人工智能模块或进一步扩展至Transformer架构、大模型原理等基础概念。考生需关注《计算机学报》《软件学报》等核心期刊的前沿综述。