- 编程
c++市总决赛选择题AI生成解析
- @ 2026-6-17 16:54:04
第 1 题
答案:B. 编译器
解析:
编译器:把 C/C++ 高级语言完整翻译成机器语言(二进制),再链接生成可执行程序。
A 播放器:用于音视频播放;C 编辑器:只是写代码的工具,不翻译;D 驱动程序:硬件和系统交互的程序。
第 2 题
答案:D. 增加程序内存
解析:
函数核心作用:代码复用、模块化拆分、简化主程序逻辑;
函数不会主动增加内存,合理封装反而能减少冗余、节省内存,“增加内存” 不是函数的作用。
第 3 题
答案:A. 计数排序
解析:
比较类排序:冒泡、选择、插入、快速、归并,都依靠元素大小比较完成排序;
计数排序是非比较排序,利用数值范围开辟数组统计频次,不做元素比较。
第 4 题
先全部转十进制对比:
A 二进制11110 =
1×2
4
+1×2
3
+1×2
2
+1×2
1
=30
B 八进制34 =
3×8+4=28
C 十进制30 = 30
D 十六进制1D =
1×16+13=29
答案:B. 八进制 34
第 5 题
答案:D. 负整数的布尔值为 false
解析:
C++ 布尔转换规则:
true底层整数是 1,false是 0;
所有非 0 数字(正数、负数)转 bool 都是 true,只有 0 是 false。
负数≠0,布尔值为 true,所以 D 描述错误。
第 6 题
答案:D. 6
解析:
C++ 运算符优先级:乘 / 除同级,从左往右计算;
8 / 3 整数除法,舍去小数 = 2
2 * 3 = 6
结果为 6。
第 7 题
已知:'a'=97,'A'=65,小写字母与大写字母差值固定:
97−65=32
'd' - 'B':
'd' = 'a'+3 = 100,'B'='A'+1=66
100−66=34
答案:C. 34
第 8 题
需求:循环输出 1~9
循环条件i <= 9,等价于i != 10(i 到 10 时终止循环)
A i<=10:会输出 1~10,超出范围;
B i==10:循环直接不执行;
D i--=10 语法错误;
答案:C. i != 10
第 9 题
cpp
运行
int a = 3, b = 6;
a = a + b; // a = 3+6 = 9
b = a - b; // b = 9-6 = 3
a = a - b; // a = 9-3 = 6
最终 a=6,b=3
答案:B. 6,3
原理:不使用第三方变量交换两个数字。
第 10 题
代码功能:对 n 分解质因数,从小到大输出所有质因子
逐一分析选项:
A:int 范围有限,long long 可存储更大数字,支持10 18
分解,正确;
B:循环 i 只到n
时间复杂度正确;
C:第 4 行if(i*i>n) i=n;作用:当剩余 n 是大质数时,提前终止外层循环。删除后外层循环会继续跑到原 n,循环次数变多,时间复杂度改变,但质因数输出结果不变,说法正确;
D:错误。比如
n=2
30
,质因子会连续输出 30 个 2;更大的 2 的幂次会超过 36 个因子,因此 “不超过 36 个” 不成立。
答案:D
本人现在后悔死了,凡是有个90分......
2 条评论
-
admin Mod LV 6 SU @ 2026-6-17 17:55:21最后一题选A,题目说了不超过 ,并且 ,所以最坏都不会输出超过 个质因子。而 A 选项应该要把
i变量也变成long long类型👍 2 -
@ 2026-6-17 16:56:02
豪到我了👍 1
- 1