| 题号 | 题型 | 答案 | 考点 | 解题思路 |
|---|---|---|---|---|
| 第 1 题 | 选择题 | C | 基本数据类型、数据表示、变量与常量 | 这题就是考补码那点事儿。拿到题别慌,先想32位里最高位是符号位,剩下31位全1才是最大正数,而0只占一种编码,所以负数能多一个,直接锁定下界是 2^31,上界是2^31 1,选C就… |
| 第 2 题 | 选择题 | A | 进制与编码、运算符与表达式 | 这题就是考进制转换和优先级,拿到题别慌,先把所有带下标的数老老实实转成十进制,再按运算顺序算,D这个十六进制别手滑看成4。 |
| 第 3 题 | 选择题 | B | 排列组合基础、计数原理 | 这道题求的是从三个部门选人且每个部门至少一人的组合数,核心思路是先保证每部门至少一人,再把剩下的一人分配到任意一个部门,最后把三种分配情况的结果加起来。 |
| 第 4 题 | 选择题 | D | 格雷码、数据表示 | 格雷码的核心就是‘相邻只变一位’。拿到题别急着算,先盯着选项里每一对相邻的编码,看它们之间是不是只有一位不同,只要发现一处‘两位变了’直接排除,剩下的就是正解。 |
| 第 5 题 | 选择题 | D | 数据存储单位、数据表示 | 这题就是考单位换算的底层逻辑。拿到题别急着按计算器,先在脑子里把'MB'拆成'KB'再拆成'B',最后别忘了'B'转'bit'要乘8。记住二进制单位是1024进制,别被十进制的10… |
| 第 6 题 | 选择题 | C | 基本数据类型、基础语法、复合类型 | 拿到题先想C++里哪些是语言自带的‘原子’类型,再看struct是不是用户自己拼出来的复合体,这样就能一眼锁定答案。 |
| 第 7 题 | 选择题 | D | 循环结构、控制结构、基础语法 | 这道题考的是C++基础语法,直接看选项里哪个不是C++的循环。for、while、do while都是C++里能写的,只有repeat until是Pascal的,所以选D。 |
| 第 8 题 | 选择题 | B | 基本数据类型、运算符与表达式 | 这题考的是字符在内存里就是整数,直接做加法就行。拿到题别去数第几个字母,先算出 a 的 ASCII 码 97,加 13 得到 110,再查表或心算 110 对应哪个字符,答案自然出… |
| 第 9 题 | 选择题 | B | 二分查找、算法 | 这道题考二分查找的最坏比较次数。拿到题先想:有序表二分就是把范围对半砍,最多砍几次能把1000个元素砍到0?其实就是要找最小的k,让2的k次方大于等于1000。 |
| 第 10 题 | 选择题 | A | 操作系统基础、计算机基础与编程环境 | 这题考计算机基础里的操作系统概念。拿到题先别急着看选项,脑子里过一遍‘什么是操作系统’:它是管理硬件和软件资源、提供公共服务的系统软件,是电脑运行的基石。只要记住这个定义,就能一眼… |
| 第 11 题 | 选择题 | B | 图的基本概念、图形结构 | 别被选项晃了眼,拿到题先想'边'和'点'的关系。无向图里每条边都连着两个点,所以算度数时,一条边会被数两次。记住这个'两次',答案自然出来了。 |
| 第 12 题 | 选择题 | A | 二叉树的遍历、树形结构 | 这题就是考二叉树遍历的逆向还原。拿到前序和中序,先找前序第一个定根,再去中序里把树切成左右两半,然后递归套娃,最后按后序(左右根)输出序列。 |
| 第 13 题 | 选择题 | D | 栈(stack)、线性结构 | 这题考栈的后进先出(LIFO)特性。拿到选项别急着猜,直接模拟入栈过程:遇到要出的数字就压栈,栈顶若正好是它立刻弹出,否则栈里若有比它大的数,那它绝不可能先出来,这就是破题关键。 |
| 第 14 题 | 选择题 | A | 排列组合基础、计数原理 | 这题考捆绑法。把3个女生捏成一个整体,和5个男生变6个元素全排,再乘女生内部排列,别漏了女生互换。 |
| 第 15 题 | 选择题 | B | 编译与解释、计算机基础与编程环境、计算机系统 | 这题考编译与解释的区别。拿到题先想‘源代码怎么变成机器能懂的指令’,编译器是一次性翻译生成目标文件,解释器是边翻译边执行,把这两个核心特征对照选项,B 直接命中定义,其余都是干扰项… |
| 第 16 题 | 阅读程序 | AB | 质数与合数、数论基础、函数定义与调用、循环结构 | 这题核心就是理解素数判断算法的边界条件和循环效率。拿到题先跑一遍代码看输入10时的素数2,3,5,7,再想命题人改循环条件是想考你对‘因子成对出现’和‘最大因子一定小于等于n/2’… |
| 第 17 题 | 阅读程序 | AB | 动态规划、简单动态规划、一维数组 | 这题是经典的爬楼梯最小花费,核心是递推公式 dp[i] = min(dp[i 1], dp[i 2]) + cost[i 1],最后别忘了取 min(dp[n], dp[n 1])… |
| 第 18 题 | 阅读程序 | BABCD | 递归函数、函数定义与调用 | 这题核心是读懂递归:customFunction(a,b) 其实是把 a 加了 b+1 次,也就是 a×(b+1)。拿到题先别急着算,把递归展开写几层,一眼就能看出规律,再套进题目… |
| 第 19 题 | 完善程序 | ABDC | 枚举法、数论基础、算法 | 拿到题先想:完全平方数就是存在整数 x 让 x²=n。枚举?从 1 起往上试,但试到哪儿停?直接试到 √n 就行,因为再大 i² 肯定超过 n。上界用 floor(sqrt(n))… |
| 第 20 题 | 完善程序 | BC | 递归函数、DFS(深度优先搜索) | 拿到汉诺塔题,别急着套公式,先想递归的‘分治’逻辑:把n个盘子拆成‘上面n 1个’和‘最底下那个’,先让上面那堆借助中间柱子挪走,再挪最大的,最后把上面那堆挪回来。代码里就是填这几… |
建议按「限时做 → 对答案 → 读常见错误」三步走。先按考试的真实节奏做完,再回来看每一题的解析;尤其是"常见错误"那一段——它对应的是命题人反复设置的陷阱,读完能直接迁移到同类题上。
想做限时模考,可在 OI伴学 平台切换考试模式;错题会自动归集,并按考点推荐同类练习。