GESP2023年12月C++二级认证选择题解析(9-15题)
解析了 GESP 2023 年 12 月 C++ 二级认证考试的第一部分选择题(第 9 至 15 题)。内容涵盖多分支结构与循环的结合、二重循环次数计算、完全平方数的判断方法、图形打印中的换行处理、无人驾驶场景中的传感器应用、冯·诺依曼计算机结构以及相邻因数对的查找逻辑。通过代码示例与逐步推演,帮助考生理解考点并掌握解题技巧。

解析了 GESP 2023 年 12 月 C++ 二级认证考试的第一部分选择题(第 9 至 15 题)。内容涵盖多分支结构与循环的结合、二重循环次数计算、完全平方数的判断方法、图形打印中的换行处理、无人驾驶场景中的传感器应用、冯·诺依曼计算机结构以及相邻因数对的查找逻辑。通过代码示例与逐步推演,帮助考生理解考点并掌握解题技巧。

if (.....) { ...... }
else if (...) { ... }
else { ... }
多分支结构无论结构再多,最后会按照顺序执行。
只要有一个条件满足,就会立即采用并跳出该结构。
x = 1;
while (x < 100) {
if (x % 3 != 0) // 第一判断
cout << x << ",";
else if (x / 10) // 第二判断
break;
else // 其他
x += 5;
x += 2; // 执行完分支结构后执行
}
cout << x;
if(x%3 !=0):不是 3 的倍数就输出数字。
else if(x /10):x 大于等于 10 就退出循环(非零为真)。
else:是 3 的倍数,又没有超过 10,就 +5。
执行完选择结构后,x += 2;。
1(输出)+=2 -> 3(不输出)+=5 -> +=2 -> 10(输出)+=2 -> 12(不输出)退出循环
x=12 ,输出 12
📌 这题考察:循环结构 + 多分支结构 + 顺序结构
cnt = 1+2+3+4 = 10
📌 考试注意:列表模拟 + 相加 = 最终结果
1~100 中的完全平方数。例如:1, 4, 9, 16, 25 ...
比如:4 = 2×2, 9 = 3×3, 16 = 4×4
int(sqrt(i)) * int(sqrt(i)) == i
意思是: 1️⃣ 开平方 2️⃣ 取整数 3️⃣ 再平方回来 4️⃣ 看是否等于原数
i=16 sqrt(16)=4, 4*4=16, 成立!
= 是赋值运算符,不是判断是否相等的关系运算符。int(sqrt(i)) == sqrt(i)。sqrt() 的数据类型是浮点数,左侧是 int 型,右侧是 double 型,不能用 == 来比较,有误差。像这样:
0 01 012 0123 01234 012345 0123456
cin >> N;
for (i = 0; i < N; i++) {
nowNum = 0;
for (j = 0; j < i + 1; j++) {
cout << nowNum << " ";
nowNum += 1;
if (nowNum == 10) nowNum = 0;
}
}
每画一行必须换行!否则会挤在一行。
在第 9 行后加:cout << endl;
可以实现内循环结束后,进行转行操作。
打印图形一定要注意空格与换行位置!
选路系统必须需要什么?
通过声控智能驾驶系统,需要麦克风收集乘客声音,告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里(需要传感器判断路况)。
在这个场景中,油量表不是必须的(题目选项可能有误,通常传感器是核心,但根据原文逻辑选 C 对应油量表非必须,若问必须项则应为传感器,此处依原题解析保留)。注:原题解析指出油料表不是必须的,故排除 C 作为必须项,但根据上下文'正确答案:C'可能指代非必须项或题目有误,此处按原文结论输出。 修正:根据常规逻辑,传感器是必须的。原文解析称'油料表不是必须的',故选 C(假设题目问的是哪项不是必须或选项设置特殊)。此处保留原文结论。C。
答案:冯·诺依曼结构
很久以前,有个人叫:冯·诺依曼。他提出:计算机应该包括: 1️⃣ 输入 2️⃣ 输出 3️⃣ 运算器 4️⃣ 控制器 5️⃣ 存储器 这就是今天电脑的结构!冯·诺依曼是计算机之父。
N=12 因数:1, 2, 3, 4, 6, 12
(1,2), (2,3), (3,4)
A. for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
B. for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
C. for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);
D. for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
必须从 1 开始枚举。
如果从 2 开始:for(i=2;i<N;i++),那 (1,2) 就找不到了!
注:原文标注 B 为错误代码,需根据具体题目要求选择符合逻辑的代码。此处保留原文解析结论。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online