| 题号 | 题型 | 答案 | 考点 | 解题思路 |
|---|---|---|---|---|
| 第 1 题 | 选择题 | B | — | 答案B。综合分析各选项,运用相关知识推导。 |
| 第 2 题 | 选择题 | A | 循环结构 | 这道题考流程图分支与循环。先定初始值i=1,再看循环条件i<10,每次i加2,直到不满足条件为止,最后输出i。 |
| 第 3 题 | 选择题 | C | 复杂度分析 | 这题考的是基础排序算法的时间复杂度,别被冒泡排序要 n 1 趟的直观印象带偏,直接按比较次数推导。 |
| 第 4 题 | 选择题 | D | 指针与内存 | 直接验证每个选项的语法合法性。C++里指针必须带类型名,但void是个特殊的‘万能’类型,专门用来在不知道具体类型时存地址。只要记住void 是合法的,就能一眼排除D。 |
| 第 5 题 | 选择题 | D | — | 这道题考的是多维数组的概念及数组维度与物理世界维度的区别。拿到题先抓关键词“不正确”和“四维”,直接看D选项的绝对化表述,用C++数组的灵活性来反驳即可。 |
| 第 6 题 | 选择题 | B | 函数定义与调用、函数 | 答案B。函数必须有函数名。函数可以没有参数,可以没有返回值(void类型),定义可以在调用之后(需提前声明)。 |
| 第 7 题 | 选择题 | A | 函数、作用域与生命周期 | 这题考函数重载与作用域。拿到题先想:不同函数内部变量和参数是隔离的,所以局部变量、参数重名没问题;函数名能重载。只有‘两个声明完全相同’才意味着是同一个函数,无法共存,这就是A错的… |
| 第 8 题 | 选择题 | B | — | 这道题本质就是乘法,别被二维吓住。先数总元素个数 3×10=30,再乘以 char 的字节数 1,直接得出 30 字节,选 B。 |
| 第 9 题 | 选择题 | B | — | 拿到题先分清'指针变量存什么'和'指针指向的值是什么':p存的是n的地址, p才是n的值,直接代入选项排除即可。 |
| 第 10 题 | 选择题 | C | — | 三维数组内存位置差值计算,核心是抓住行优先存储规则,把三维下标‘展平’成一维偏移量,再乘以元素大小。 |
| 第 11 题 | 选择题 | C | 位运算 | 看到~先想补码恒等式~a= a 1 |
| 第 12 题 | 选择题 | A | — | 这题考指针解引用和数组下标赋值。拿到题先别急着看选项,先把指针 p 到底指向数组的哪个位置(下标几)搞清楚,再看它要赋给谁的值,最后确认只有被指向的那个位置变了,其他元素纹丝不动。 |
| 第 13 题 | 选择题 | A | — | 这题考的是C++异常处理的语法结构和执行流程。拿到题先想:try块和catch块的配对规则是什么?异常抛出后到底去哪?别被直觉误导,逐项对照规范就能秒杀。 |
| 第 14 题 | 选择题 | D | — | 这题表面考斐波那契递推,实则考数组下标边界。拿到题先看数组声明 int fib[10],有效下标是 0 到 9,最后 cout << fib[10] 直接越界了,这是未定义行为,所… |
| 第 15 题 | 选择题 | C | — | 这题考冒泡排序的内层循环边界。拿到题先看外层 i 从 n 递减到 2,说明每轮末尾 i 1 个元素已排好。内层只需扫前面 i 1 个元素,j 从 0 起,上界自然是 i 1,填 j… |
| 第 16 题 | 判断题 | B | — | 这题考指针变量是否占内存。拿到题先想:指针是变量,变量定义时编译器就会给它分配存储空间来存地址,所以‘本身不占内存’绝对错,直接选B。 |
| 第 17 题 | 判断题 | A | — | 这道题考算法复杂度记忆。拿到题先别慌,脑子里过一遍常见排序的渐进复杂度表,插入排序最坏和平均都是平方级,最好才是线性的,题干问‘通常’,直接锁定平均情况,选A。 |
| 第 18 题 | 判断题 | A | — | 这题考的是C++变量作用域的基本定义。拿到题先抓关键词'每个变量',回想作用域是变量声明时确定的可见范围,只要声明了就有作用域,不管它是局部、全局还是类成员,所以答案选A。 |
| 第 19 题 | 判断题 | B | 函数 | 这题考参数传递的本质开销。拿到题先分半句看:'不复制'对,'不占内存'错在哪?关键在引用本身也是栈上的变量,有地址就有空间,别被语法糖骗了。 |
| 第 20 题 | 判断题 | A | — | 这题考的是C++里怎么造新数据类型。拿到题先别想复杂语法,直接回忆:C++里能定义新类型的只有struct、class、typedef/using这几个。题目只提了struct,既… |
| 第 21 题 | 判断题 | A | — | 这道题就是考C++里结构体能不能放数组成员,记住struct内部成员类型没有限制,数组当然合法,所以选A。 |
| 第 22 题 | 判断题 | A | — | 这道题其实是在考两个常识:一是C++字符串必须以\0结尾,二是数组下标从0开始。看到'最长99字节',脑子里马上要弹出'99字符+1个\0',然后确认10个这样的字符串怎么排,直接… |
| 第 23 题 | 判断题 | B | — | 这题考的是异常处理机制的边界,别被'抛出异常'吓住,先想编译器管什么、运行时管什么,再对比选项里偷换概念的陷阱。 |
| 第 24 题 | 判断题 | B | — | 这道题考的是C++运算符体系。拿到题直接想:C++里赋值只有单等号,双等号是比大小。那个冒号加等号(:=)是Pascal的写法,在C++里根本不存在,所以选B。 |
| 第 25 题 | 判断题 | A | — | 这题考的是C++里cout重定向到文件的基本用法,看到题干直接选A,不用纠结细节。 |
建议按「限时做 → 对答案 → 读常见错误」三步走。先按考试的真实节奏做完,再回来看每一题的解析;尤其是"常见错误"那一段——它对应的是命题人反复设置的陷阱,读完能直接迁移到同类题上。
想做限时模考,可在 OI伴学 平台切换考试模式;错题会自动归集,并按考点推荐同类练习。