2025 年 9 月真题
一、单选题(每题 2 分,共 30 分)
正确答案:C
考察知识点:基本数据类型、基本运算符
解析:在 C++ 中,a 和 b 都是 int 类型,a / b 会进行整数除法,结果为 3(因为 10÷3 整数部分是 3)。然后将 3 赋值给 double 类型的 c,c 的值为 3.0。答案为 C。
正确答案:C
考察知识点:基本运算符
解析:选项 A:(5 <= 5) 为 true,(7 < 5) 为 false,&& 要求全为 true,结果 false。
选项 B:(10 > 5) 为 true,!取反后 false。
选项 C:(10 != 10) 为 false,(5 >= 3) 为 true,||只要有一个 true 就为 true,结果 true。
选项 D:(5 == 3) 为 false,&& 要求全为 true,结果 false。答案为 C。
正确答案:D
考察知识点:一维数组
解析:数组下标从 0 开始,int arr[5]; 下标范围为 0~4。访问数据元素:数组名 [下标],arr[5] 超出了数组的合法访问范围,属于越界访问,会导致未定义行为。答案为 D。
正确答案:B
考察知识点:流程控制结构 - 循环、变量的作用域
解析:外层 sum 初始为 0。
循环过程:
i = 1:sum += 1 → sum = 1;此 sum 为外层 sum;然后在循环内部定义了一个新的局部变量 int sum = 0;,在循环内定义的变量,其作用范围:从创建位置开始到循环的右大括号为止,不影响外层的 sum。
循环体结束,内部 sum 被销毁。
i = 3:sum += 3 → sum = 4;此 sum 为外层 sum;然后再次定义内部 sum = 0,不影响外层。循环体结束,内部 sum 被销毁
i = 5:sum += 5 → sum = 9;此 sum 为外层 sum;内部 sum = 0 再次被定义,循环体结束被销毁。
i = 7:不满足 i <= 5,循环结束。
循环结束,外层 sum 的值为 9。答案为 B。
正确答案:B
考察知识点:函数(超纲)
解析:要定义返回两个整数较大值的函数 max,需注意返回值类型为 int,且参数需明确类型。
选项 A:返回值类型 void,错误。
选项 C:参数未指定类型,错误。
选项 D:返回值类型 void,且参数未指定类型,错误。
选项 B:返回值类型 int,参数类型明确,逻辑正确。答案为 B。
正确答案:B
考察知识点:一维数组
解析:首先,数组 arr[4] 初始化时,未显式初始化的元素默认为 0,即初始为 {1, 2, 3, 0}。然后,arr[3] = arr[0] + arr[2] = 1 + 3 = 4,所以数组变为 {1, 2, 3, 4}。答案为 B。
正确答案:B
考察知识点:函数(超纲)
解析:选项 A:函数可以无参数,错误。
选项 C:main 函数是程序入口,不能被其他函数调用,错误。
选项 D:C++ 函数不能嵌套定义,错误。
选项 B:函数 return 只能返回一个值,但可通过指针、引用等间接返回多个值,正确。答案为 B。
正确答案:D
考察知识点:流程控制语句 - 循环、continue
解析:循环条件为 i > 0。每次循环中,先执行 i -= 3,然后执行 continue(直接跳过后续代码,回到循环条件判断)。因此,count++ 从未被执行,其值未发生改变,循环结束仍然是 0。答案选 D。
正确答案:A
考察知识点:循环嵌套
解析:当 i=0 时,j 从 0 到 0,输出 0,然后输出#,即 0#。
当 i=1 时,j 从 0 到 1,输出 01,然后输出#,即 01#。
当 i=2 时,j 从 0 到 2,输出 012,然后输出#,即 012#。
当 i=3 时,j 从 0 到 3,输出 0123,然后输出#,即 0123#。
综上,输出为 0#01#012#0123#。答案为 A。
正确答案:C
考察知识点:函数、变量作用域(超纲)
解析:C 选项:在所有函数外部声明的变量是全局变量,其作用域是从声明处到整个程序结束。但如果程序是多文件结构,且全局变量未用 extern 声明跨文件使用,仅在声明的文件内有效,并非在整个程序中都有效。答案为 C。
正确答案:D
考察知识点:流程控制语句 - 循环、数位分离应用 - 翻转数字
解析:该代码用于整数反转,但要受 int 类型范围限制(-2147483648~2147483647),反转后也不能超出 int 范围。
A 选项:错误,显然不能完成任何位数整数的反转。
B 选择:错误,2147483647 反转后是 7463847412,显然超出 int 范围,所以这个数反转时会溢出,因此不能正确反转。
C 选项:错误,2147483648 对于 32 位有符号 int 来说已经超出正数最大值,输入时就不行,而且它反转是 8463847412,更大,肯定溢出。
D 选项:反转 1463847412 → 2147483641,2147483641 ≤ 2147483647,没有溢出。如果反转大一点的数:1463847413,反转是 3147483641,这个显然大于 int 可以存在的最大整数,会溢出。所以 1463847412 是能反转且不溢出的最大正整数。答案为 D。


