🌑

Hi Folks.

cpp教学大纲-CSP-S初赛

CSP-S(提高级)对应NOI大纲难度系数5~8级,高级别自动包含CSP-J全部知识点。初赛为笔试,时长2小时,题型为单项选择题(15题)、阅读程序题(3大题,共40分)、完善程序题(2大题,共30分)。以下为初赛专属的理论与细节考点,复赛上机内容见独立大纲。

  1. 计算机组成与体系结构(深化) 1.1 CPU内部结构(运算器ALU、控制器CU、寄存器组、Cache) 1.2 指令执行周期(取指→译码→执行→访存→写回) 1.3 存储器层次结构与局部性原理(时间局部性、空间局部性) 1.4 内存寻址方式(立即寻址、直接寻址、间接寻址、寄存器寻址) 1.5 中断与异常处理的基本概念 1.6 流水线技术的基本思想(指令级并行) 1.7 多级Cache的命中率与平均访问时间计算 1.8 虚拟内存与分页机制(页表、缺页中断)

  2. 数制与编码(深度计算) 2.1 进制转换的快速方法(8421法、逐位拆分) 2.2 原码、反码、补码的转换与运算 2.3 补码的溢出判断(最高位进位与次高位进位的异或) 2.4 浮点数的IEEE 754表示法(符号位、阶码、尾数) 2.5 浮点数的精度损失与比较陷阱 2.6 BCD码与ASCII码的对照记忆('0'=48, 'A'=65, 'a'=97) 2.7 Unicode与UTF-8编码的基本概念

  3. 操作系统与编译原理 3.1 进程的三种状态(就绪、运行、阻塞)及状态转换 3.2 进程与线程的区别(资源分配单位 vs 调度执行单位) 3.3 死锁的四个必要条件(互斥、占有并等待、不可剥夺、循环等待) 3.4 内存分配策略(首次适应、最佳适应、最差适应) 3.5 编译过程的四个阶段(预处理→编译→汇编→链接) 3.6 静态链接与动态链接的区别 3.7 静态库(.a/.lib)与动态库(.so/.dll)的区别 3.8 Linux常用命令(ls -l、ps aux、grep、find、chmod、tar) 3.9 Linux文件权限的数字表示(chmod 755的含义) 3.10 g++编译选项(-O2优化、-g调试信息、-std=c++14/17)

  4. 计算机网络(深化) 4.1 OSI七层模型各层功能及协议举例 4.2 TCP/IP四层模型与OSI的对应关系 4.3 IP地址的分类(A/B/C/D/E类)及私有地址范围 4.4 子网掩码与子网划分(CIDR表示法) 4.5 IPv6地址格式与IPv4的区别 4.6 TCP三次握手与四次挥手的过程 4.7 UDP与TCP的区别(面向连接 vs 无连接) 4.8 DNS解析过程(递归查询与迭代查询) 4.9 HTTP请求方法(GET、POST、PUT、DELETE) 4.10 HTTPS与HTTP的区别(SSL/TLS加密)

  5. C++语言特性(初赛笔试细节) 5.1 左值(lvalue)与右值(rvalue)的概念(C++11) 5.2 左值引用(T&)与右值引用(T&&)的区别 5.3 移动语义(std::move)与完美转发(std::forward)的概念 5.4 const修饰符的多种用法(const int*、int* const、const int* const) 5.5 const成员函数(可重载,const对象只能调用const成员函数) 5.6 静态成员变量与静态成员函数(属于类而非对象) 5.7 友元函数与友元类(突破封装性) 5.8 运算符重载的规则(不能重载的运算符:::、.、.*、?:) 5.9 拷贝构造函数与赋值运算符的调用时机 5.10 深拷贝与浅拷贝的区别(指针成员的拷贝问题) 5.11 虚函数与多态(虚函数表vtable,动态绑定) 5.12 纯虚函数与抽象类(interface概念) 5.13 虚析构函数的作用(防止内存泄漏) 5.14 多重继承与菱形继承问题(虚继承解决) 5.15 函数模板与类模板的语法 5.16 模板特化与偏特化 5.17 异常处理的try-catch-throw机制 5.18 RAII(资源获取即初始化)思想 5.19 智能指针(unique_ptr、shared_ptr、weak_ptr)的基本概念 5.20 lambda表达式的基本语法([捕获](参数)->返回值{函数体})

  6. STL容器与算法(笔试细节) 6.1 序列容器对比(vector、deque、list、forward_list的底层与性能) 6.2 关联容器对比(set/multiset、map/multimap底层为红黑树) 6.3 无序关联容器(unordered_set、unordered_map底层为哈希表) 6.4 容器适配器(stack、queue、priority_queue的底层默认deque/vector) 6.5 bitset的操作(set、reset、flip、test、count、any、none) 6.6 迭代器的五种类型(输入、输出、前向、双向、随机访问) 6.7 迭代器失效问题(vector的插入删除导致迭代器失效) 6.8 算法库常用函数(sort、stable_sort、partial_sort、nth_element) 6.9 算法库查找函数(find、find_if、binary_search、lower_bound、upper_bound) 6.10 算法库修改函数(copy、move、swap、replace、unique) 6.11 算法库数值函数(accumulate、inner_product、partial_sum、adjacent_difference)

  7. 数据结构(理论与性质深化) 7.1 二叉树的五种形态(空树、只有根、左斜树、右斜树、满二叉树) 7.2 完全二叉树的性质(编号规律,可用数组存储) 7.3 二叉树的顺序存储与链式存储的适用场景 7.4 二叉搜索树的性质(中序遍历有序) 7.5 二叉搜索树的插入、删除、查找的时间复杂度(平均$O(\log n)$,最坏$O(n)$) 7.6 AVL树的平衡因子与旋转操作(LL、RR、LR、RL) 7.7 红黑树的性质与自平衡机制(5条性质) 7.8 堆的性质(大根堆/小根堆,完全二叉树) 7.9 堆的插入(上滤)与删除(下滤)操作 7.10 建堆的两种方法(逐个插入$O(n \log n)$ vs 自底向下$O(n)$) 7.11 哈夫曼树的构造与WPL计算 7.12 并查集的基本操作(find、union) 7.13 并查集的优化(路径压缩、按秩合并) 7.14 图的存储方式对比(邻接矩阵、邻接表、链式前向星) 7.15 图的遍历(DFS、BFS)的时间复杂度分析 7.16 拓扑排序的定义与实现(Kahn算法、DFS算法) 7.17 欧拉路径与欧拉回路的存在条件 7.18 强连通分量的概念(Tarjan算法思想) 7.19 树的重心、树的直径的性质

  8. 算法设计与分析(笔试核心) 8.1 时间复杂度递推式的求解(主定理Master Theorem) 8.2 常见时间复杂度曲线($\log n < n < n \log n < n^2 < 2^n < n!$) 8.3 分治算法的三个步骤(分解→解决→合并) 8.4 二分答案的适用条件(单调性,可行性判断) 8.5 贪心算法的正确性证明方法(交换论证、反证法) 8.6 动态规划的两个核心要素(最优子结构、重叠子问题) 8.7 DP的两种实现方式(自顶向下记忆化搜索、自底向上递推) 8.8 状态压缩DP的基本思想(用二进制表示状态) 8.9 树形DP的基本模型(树上最大独立集、树上背包) 8.10 区间DP的基本模型(石子合并、矩阵链乘) 8.11 搜索的三种剪枝策略(可行性剪枝、最优性剪枝、上下界剪枝) 8.12 记忆化搜索与DP的关系

  9. 排序算法(深入理解) 9.1 基于比较的排序算法下界($\Omega(n \log n)$) 9.2 快速排序的partition实现(Lomuto vs Hoare) 9.3 快速排序的最坏情况与优化(随机化、三数取中) 9.4 归并排序的空间复杂度($O(n)$)与稳定性 9.5 堆排序的建堆与调整过程 9.6 计数排序的适用条件(数据范围小,整数) 9.7 基数排序的LSD与MSD方法 9.8 排序算法的稳定性对比

  10. 数学基础(深化) 10.1 同余与模运算的性质 10.2 模逆元的概念与求法(扩展欧几里得、费马小定理) 10.3 中国剩余定理(CRT)的基本思想 10.4 欧拉函数$\varphi(n)$的定义与计算公式 10.5 欧拉定理与费马小定理 10.6 排列组合进阶(错排列$D_n$、圆排列$(n-1)!$) 10.7 二项式定理与二项式系数 10.8 卡特兰数(Catalan数)的定义与应用场景 10.9 容斥原理(三集合容斥公式) 10.10 鸽巢原理的多种应用形式 10.11 矩阵的基本运算(加法、减法、乘法、转置) 10.12 特殊矩阵(单位阵、三角阵、对称阵、稀疏矩阵) 10.13 矩阵快速幂的应用(线性递推加速)

  11. 阅读程序题技巧 11.1 变量追踪法(列表记录每个变量的值变化) 11.2 循环边界测试(特别注意<与≤、0与1的区别) 11.3 递归函数的手工展开(画递归调用树) 11.4 指针与引用的间接访问追踪 11.5 位运算的表达式的值计算 11.6 短路求值对表达式副作用的影响 11.7 全局变量与静态变量的生命周期特殊性 11.8 输入数据的格式与范围对程序行为的影响

  12. 完善程序题技巧 12.1 上下文逻辑一致性分析(填什么能让代码语义正确) 12.2 循环变量的初值、终值与步长推断 12.3 DP数组的初始化与转移方程补全 12.4 二分答案的check函数补全 12.5 搜索的边界条件与回溯代码补全 12.6 常见算法的代码模板识别(并查集、最短路、最小生成树)

教学 — 2026年7月15日

Search