计算机硬件与组成原理(选择题必考)
1.1 计算机发展史(第一台电子计算机 ENIAC,冯·诺依曼提出存储程序)
1.2 冯·诺依曼体系结构五大部件(运算器、控制器、存储器、输入设备、输出设备)
1.3 CPU 的组成(运算器 ALU、控制器 CU、寄存器组)
1.4 CPU 执行指令的过程(取指、译码、执行、访存、写回)
1.5 存储器金字塔(寄存器 -> 高速缓存 Cache -> 主存 RAM -> 辅存 磁盘/SSD)
1.6 Cache 局部性原理(时间局部性、空间局部性)
1.7 存储单位换算(Bit -> Byte -> KB -> MB -> GB -> TB -> PB,进制 $1024$)
1.8 内存寻址(按字节编址,每个字节有唯一地址)
数制转换与编码(计算题必考)
2.1 二进制转十进制(按权展开相加)
2.2 十进制转二进制(整数除二取余倒序,小数乘二取整正序)
2.3 二进制转八进制(三位一组,不足补 $0$)
2.4 二进制转十六进制(四位一组,不足补 $0$)
2.5 八进制与十六进制的表示法(C++中 0 开头八进制,0x 开头十六进制)
2.6 原码的定义(最高位符号位,$0$ 正 $1$ 负,数值位为绝对值)
2.7 反码的定义(正数同原码,负数符号位不变,其余位取反)
2.8 补码的定义(正数同原码,负数反码 $+1$,解决 $0$ 的两种编码问题)
2.9 补码的表示范围($n$ 位补码范围 $-2^{n-1} \sim 2^{n-1}-1$)
2.10 8位二进制补码范围($-128 \sim +127$)
2.11 补码转原码的快速方法(符号位不变,取反 $+1$)
2.12 BCD码与ASCII码的区别
计算机系统与软件(概念题)
3.1 系统软件(操作系统、编译器、解释器、汇编器)
3.2 应用软件(浏览器、办公软件、游戏)
3.3 计算机语言分类(机器语言、汇编语言、高级语言)
3.4 编译与解释的区别(编译生成可执行文件,解释器逐行执行)
3.5 操作系统的进程管理(进程与线程的区别,并发与并行)
3.6 操作系统的内存管理(虚拟内存、分页、分段)
3.7 文件系统与文件路径(绝对路径、相对路径,Windows用 \,Linux用 /)
3.8 Linux 基本命令(ls 列出目录, cd 切换目录, mkdir 创建目录, rm 删除, cp 复制, mv 移动)
3.9 Linux 权限管理(rwx 读/写/执行,chmod 修改权限)
3.10 Linux 中的 g++ 编译命令(g++ -o out main.cpp -std=c++11)
计算机网络基础(概念与协议)
4.1 计算机网络定义(多台计算机通过通信线路互联)
4.2 局域网 LAN、城域网 MAN、广域网 WAN
4.3 因特网(Internet)与万维网(WWW)的关系
4.4 OSI 七层模型简述(物理、数据链路、网络、传输、会话、表示、应用)
4.5 TCP/IP 四层模型(网络接口、网际、传输、应用)
4.6 IP 地址(IPv4 32位,点分十进制,IPv6 128位)
4.7 域名系统 DNS(域名解析为IP地址)
4.8 端口号的作用(HTTP 80, HTTPS 443, FTP 21, SSH 22)
4.9 URL 的组成(协议://域名/路径)
数据结构基础(理论与性质)
5.1 数据结构的逻辑分类(线性结构、树形结构、图形结构)
5.2 线性表的存储方式(顺序存储——数组,与链式存储——链表)
5.3 数组的随机访问特性(时间复杂度 $O(1)$)
5.4 链表的插入删除特性(时间复杂度 $O(1)$,但查找需要 $O(n)$)
5.5 栈的 LIFO 性质应用(递归转非递归、括号匹配、函数调用栈)
5.6 队列的 FIFO 性质应用(缓冲区、BFS、打印队列)
5.7 树的基本概念(根节点、叶子节点、度、层次、深度/高度)
5.8 二叉树的性质(第 $i$ 层最多 $2^{i-1}$ 个节点,深度为 $k$ 最多 $2^k - 1$ 个节点)
5.9 二叉树度数与节点数的公式($N_0 = N_2 + 1$,其中 $N_0$ 叶子,$N_2$ 度为2)
5.10 完全二叉树的定义(除最后一层外每层都满,最后一层从左到右连续)
5.11 满二叉树的定义(每一层都是满的,即完美二叉树)
5.12 二叉树的三种遍历(先序:根左右,中序:左根右,后序:左右根)
5.13 已知前序+中序求后序(前序确定根,中序分左右)
5.14 图的定义(顶点集 $V$ 与边集 $E$)
5.15 有向图与无向图的区别
5.16 邻接矩阵存储(空间 $O(V^2)$,适合稠密图)
5.17 邻接表存储(空间 $O(V+E)$,适合稀疏图)
5.18 树是特殊的图(无环连通图)
数学与组合计数(排列组合)
6.1 加法原理(分类相加)
6.2 乘法原理(分步相乘)
6.3 排列数公式($A(n,m) = \dfrac{n!}{(n-m)!}$,强调顺序)
6.4 组合数公式($C(n,m) = \dfrac{n!}{m!(n-m)!}$,不强调顺序)
6.5 组合数的对称性($C(n,m) = C(n, n-m)$)
6.6 捆绑法(相邻问题,捆绑后内部排列)
6.7 插空法(不相邻问题,先排其他再插空)
6.8 隔板法(分配问题,将 $n$ 个相同物品分给 $m$ 个人)
6.9 错位排列(全错排问题,$D_n = (n-1)(D_{n-1}+D_{n-2})$)
6.10 容斥原理(两集合容斥:$|A \cup B| = |A| + |B| - |A \cap B|$)
6.11 鸽巢原理(抽屉原理,若有 $n+1$ 个物品放入 $n$ 个抽屉,至少一个抽屉有两个)
数论基础(初赛常见)
7.1 质数的定义(除了 $1$ 和本身没有其他因子)
7.2 合数的定义
7.3 试除法判定质数(只需试除到 $\sqrt{n}$)
7.4 欧几里得算法(辗转相除法求 gcd)
7.5 $\gcd(a,b) \cdot \operatorname{lcm}(a,b) = a \cdot b$
7.6 模运算性质($(a+b) \bmod m = (a \bmod m + b \bmod m) \bmod m$)
7.7 同余概念($a \equiv b \pmod m$ 表示 $m \mid (a-b)$)
算法概念与复杂度分析(初赛重点)
8.1 时间复杂度的上界表示法(大 $O$ 记号,忽略低阶项和常数)
8.2 $O(1)$ 常数级(直接访问、简单计算)
8.3 $O(\log n)$ 对数级(二分查找、二叉树高度)
8.4 $O(n)$ 线性级(单重循环、遍历数组)
8.5 $O(n \log n)$ 线性对数级(快速排序、归并排序)
8.6 $O(n^2)$ 平方级(双重循环、冒泡排序)
8.7 $O(2^n)$ 指数级(递归枚举子集,通常不可行)
8.8 递归算法复杂度的递推式求解(主定理 Master Theorem 基本形态)
8.9 空间复杂度的计算(数组内存占用、递归栈深度)
阅读程序与完善程序(初赛大题)
9.1 阅读程序时,先看输入与输出,再分析核心逻辑
9.2 变量的生命周期与值的变化(列表追踪法)
9.3 循环终止条件的判断(边界测试,如 <= 与 < 的区别)
9.4 数组下标的偏移陷阱(下标从 $0$ 开始 vs 题目描述从 $1$ 开始)
9.5 递归函数的调用堆栈展开(手工模拟递归执行)
9.6 完善程序(填空)的核心依据(上下文逻辑一致性)
9.7 完善程序中的常见填法(循环变量的初值、终值、递推表达式)
9.8 程序输出题中“静态变量”与“全局变量”的特殊性
编程语言特性与常见错误(针对读程序)
10.1 短路求值对变量自增的影响(例如 if(a>0 && b++ > 0))
10.2 逗号表达式的返回值(最后一个值)
10.3 浮点数精度丢失带来的判断错误(如 1.0/3*3 不等于 $1$)
10.4 整数溢出问题(int 最大值加 $1$ 变成负数)
10.5 无符号整数下溢问题($0-1$ 变成极大的正数)
10.6 switch 中缺少 break 的穿透现象
10.7 指针与引用的基础概念(变量别名 vs 地址存储)
教学 — 2026年7月15日