| 题号 | 题型 | 答案 | 考点 | 解题思路 |
|---|---|---|---|---|
| 第 1 题 | 选择题 | D | — | 这题考指针大小的本质。别死记4或8,要意识到指针存的是地址,地址宽度由系统架构决定,所以选D。 |
| 第 2 题 | 选择题 | D | — | 这题考二维数组声明语法:C++规定声明数组时第二维(列数)必须写死,第一维可省略。看到选项先抓类型合法性,再数方括号里有没有漏掉列数,有就是坑,没写就是正解。 |
| 第 3 题 | 选择题 | D | 函数 | 这题考什么?函数参数传递方式。拿到题先想:C++里函数调用时,实参怎么给形参?值、引用、指针是标配,模板是编译期类型魔法,跟运行时传参不是一回事。 |
| 第 4 题 | 选择题 | D | 函数定义与调用 | 这题其实就考一个核心概念:形参和实参到底是谁在定义,谁在使用。拿到题先想,函数写出来时(定义)和函数被调用时(调用)分别发生了什么,答案自然就出来了。 |
| 第 5 题 | 选择题 | A | 算法、数据结构 | 这题考排序算法的稳定性定义,拿到题先排除‘性能稳定’‘效果好’‘易实现’这些生活化理解,紧扣‘相同元素’和‘相对顺序’两个关键词,直接对应选项A。 |
| 第 6 题 | 选择题 | C | — | 这道题考的是二维数组的声明、初始化以及越界访问的内存行为。别被'越界'两个字吓到,C++里越界不会编译报错,而是直接按内存地址去读,得先算出a[0][3]在内存里对应的是哪个元素的… |
| 第 7 题 | 选择题 | C | — | 二维数组在C++里是两层嵌套的一维数组,所以访问必须用两层方括号,先取行再取列。 |
| 第 8 题 | 选择题 | A | — | 这题就是考指针声明的语法规范:类型名后紧跟星号,再跟变量名。看到选项先扫星号位置,只有A符合。 |
| 第 9 题 | 选择题 | B | — | 看到符号题先排除非运算符选项——C++没有reference关键字,pointer也不是保留字。剩下A/C都涉及指针相关,只有B是纯粹的符号声明。记住&在C++中同时承担地址取用和… |
| 第 10 题 | 选择题 | B | 递推 | 看到'斐波那契'四个字,别急着看选项,脑子里先调出定义:前两项和等于后一项。选项 B 一字不差地复现了这个式子,直接锁定答案。 |
| 第 11 题 | 选择题 | A | — | 二维数组传参的核心在于‘退化’:数组名在函数参数中会退化为指向其首元素的指针。先想清楚二维数组的首元素是什么类型,再匹配参数声明是否等价,就能一眼锁定答案。 |
| 第 12 题 | 选择题 | B | — | 这题考的是异常处理里哪个词负责‘接住’异常。别被 throw 和 try 带偏,先想异常处理三要素:抛出、捕获、处理。抛出用 throw,捕获用 catch,处理用 try 包围。… |
| 第 13 题 | 选择题 | B | 函数 | 这题核心就在看参数传递方式。输出要变说明函数里改了原变量,所以必须用引用。再看主调函数声明的是 x 和 y,参数名得跟它们对上号,只有 B 选项同时满足引用和名字匹配。 |
| 第 14 题 | 选择题 | B | 循环控制、位运算 | 答案B。代码补全要考虑参数传递方式。如果需要修改实参,需用指针( )传递。排序算法要理解每步比较的含义。 |
| 第 15 题 | 选择题 | C | — | 这道题考的是插入排序的内层循环写法。拿到题先想:当前元素 array[i] 要插入到左边已排好的区间,内层循环必须从紧邻 i 的左边(i 1)开始,且必须向左扫描直到头,所以初始化… |
| 第 16 题 | 判断题 | A | — | 这题考的是指针变量本身的存储机制,别被‘指向’二字绕晕。解题核心在于分清‘指针存地址’和‘引用存值’的本质区别,直接判断指针变量能否承载任意类型的地址即可。 |
| 第 17 题 | 判断题 | B | — | 这题考C++参数传递机制。核心是记住:C++默认是值传递,所谓地址传递(引用/指针)必须显式声明。看到‘默认’二字,直接判定为错。 |
| 第 18 题 | 判断题 | A | — | 这道题考的是全局变量的生命周期。拿到题先想定义位置:函数外就是全局。全局变量编译期就占内存,程序启动时已存在,直到程序结束才回收,所以整个生命周期都有效。 |
| 第 19 题 | 判断题 | A | 递推、算法 | 递推和递归本质都是基于前几个状态推后续状态,没有‘初始值’作为基准,递推公式就无处落脚。 |
| 第 20 题 | 判断题 | A | 算法、复杂度分析 | 这题考排序算法的稳定性概念。拿到题先想定义:稳定指相等元素相对顺序不变。冒泡排序只交换相邻且前大于后的元素,遇到相等不交换,所以天然稳定。 |
| 第 21 题 | 判断题 | B | — | 别被'死机'吓住,先想C++默认行为:未捕获异常会触发std::terminate()直接退出,程序不会挂起等待,所以题干描述因果错误。 |
| 第 22 题 | 判断题 | A | — | 这道题考查 C++ 中变量的存储期与作用域。拿到题先想:局部变量存在哪?栈上。函数调用结束栈帧弹出,栈上内存自动回收,所以局部变量生命周期随函数结束而终止,这是语言规定,不是编译器… |
| 第 23 题 | 判断题 | B | 位运算 | 看到 →立刻判错(C++无此运算符) |
| 第 24 题 | 判断题 | B | 函数 | 这题就是考值传递和引用传递的区别。看到'交换'二字,核心矛盾就在'函数内改了但外面没变'。命题人故意把形参写成普通变量,就是看你能不能一眼识破这个陷阱。 |
| 第 25 题 | 判断题 | B | — | 别被单引号唬住,这题核心就是考字符常量在 C++ 里的真实类型。拿到题先反应:'0' 是字符还是字符串?字符常量本质是 int,ASCII 码 48 正好在 0 99 范围内,所以… |
建议按「限时做 → 对答案 → 读常见错误」三步走。先按考试的真实节奏做完,再回来看每一题的解析;尤其是"常见错误"那一段——它对应的是命题人反复设置的陷阱,读完能直接迁移到同类题上。
想做限时模考,可在 OI伴学 平台切换考试模式;错题会自动归集,并按考点推荐同类练习。