🌑

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 -lps auxgrepfindchmodtar
    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* constconst 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_ptrshared_ptrweak_ptr)的基本概念
    5.20 lambda表达式的基本语法([捕获](参数)->返回值{函数体}

  6. STL容器与算法(笔试细节)
    6.1 序列容器对比(vectordequelistforward_list的底层与性能)
    6.2 关联容器对比(set/multisetmap/multimap底层为红黑树)
    6.3 无序关联容器(unordered_setunordered_map底层为哈希表)
    6.4 容器适配器(stackqueuepriority_queue的底层默认deque/vector
    6.5 bitset的操作(setresetfliptestcountanynone
    6.6 迭代器的五种类型(输入、输出、前向、双向、随机访问)
    6.7 迭代器失效问题(vector的插入删除导致迭代器失效)
    6.8 算法库常用函数(sortstable_sortpartial_sortnth_element
    6.9 算法库查找函数(findfind_ifbinary_searchlower_boundupper_bound
    6.10 算法库修改函数(copymoveswapreplaceunique
    6.11 算法库数值函数(accumulateinner_productpartial_sumadjacent_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 并查集的基本操作(findunion
    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 循环边界测试(特别注意<01的区别)
    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