GESP 客观题评测系统
2024-03-Level-2
2024-03-Level-2
试卷解析总览,可直接查看每题答案与解析。
第 1 题(单选题)
下列流程图的输出结果是?()

正确答案B
解析详情
【答案】B 【考点】流程图阅读与分支逻辑 【解析】根据流程图,输入分数 85。判断 85 >= 90 为假;进入下一个分支判断 85 >= 80 为真,执行输出“良好”的操作。 【易错点】未能正确追踪流程图的分支路径。
第 2 题(单选题)
以下选项中不符合 C++变量命名规则的是?()
正确答案B
解析详情
【答案】B 【考点】C++ 变量命名规则 【解析】C++ 标识符必须以字母或下划线开头,不能以数字开头。选项 B 中的 2_from 以数字 2 开头,违反了命名规则。 【易错点】记错标识符允许使用的字符组合或开头限制。
第 3 题(单选题)
以下选项中,不能用于表示分支结构的C++保留字是?()
正确答案B
解析详情
【答案】B 【考点】C++ 关键字与程序结构 【解析】if、else 和 switch 都是用于实现分支结构的关键字。return 用于从函数中返回结果,不属于分支结构关键字。 【易错点】混淆程序流程控制关键字的功能。
第 4 题(单选题)
下列说法错误的是?()
正确答案C
解析详情
【答案】C 【考点】C++ 循环结构与关键字 【解析】标准 C++(直到 C++20)中没有名为 foreach 的关键字。虽然 C++11 引入了基于范围的 for 循环(range-based for),但其关键字仍为 for。 【易错点】将其他编程语言(如 Java 或 C#)的关键字带入 C++。
第 5 题(单选题)
下列4个表达式中,答案不是整数8的是?()
正确答案B
解析详情
【答案】B 【考点】标准库函数与算术表达式 【解析】A. abs(-8) = 8;B. max(8, 9) = 9,min(9, 10) = 9,结果为 9;C. int(8.88) 强制转换结果为 8;D. sqrt(64) 结果为 8.0(类型为 double,但数值是 8)。故 B 的结果不是 8。 【易错点】对 min/max 嵌套计算时的结果跟踪出现偏差。
第 6 题(单选题)
下面C++代码执行后的输出是?()
int n, a, m, i;
n = 3, a = 5;
m = (a - 1) * 2;
for (i = 0; i < n - 1; i++)
m = (m - 1) * 2;
cout << m;正确答案C
解析详情
【答案】C 【考点】循环结构与复合赋值 【解析】初始 m = (5-1)*2 = 8,循环执行 n-1=2 次。第 1 次:m = (8-1)*2 = 14;第 2 次:m = (14-1)*2 = 26。最终输出 26。 【易错点】计算循环次数或中间迭代值时出现错误。
第 7 题(单选题)
下面 C++ 代码执行后的输出是? ()
int n,i,result;
n = 81;
i = 1, result = 1;
while (i * i <= n){
if (n % (i * i) == 0)
result = i * i;
i += 1;
}
cout << result;正确答案D
解析详情
【答案】D 【考点】while 循环与因数判断 【解析】代码寻找不大于 n 且能整除 n 的最大的完全平方数。当 i=1, 3, 9 时,i*i 分别为 1, 9, 81,均能整除 81。循环结束时 result 更新为 81。 【易错点】忽略了 while 循环中最后一次满足条件的 result 更新。
第 8 题(单选题)
下面C++代码执行后的输出是?()
int s,t,ans;
s = 2, t = 10;
ans = 0;
while (s != t){
if (t % 2 == 0 && t / 2 >= s)
t /= 2;
else
t -= 1;
ans += 1;
}
cout << ans;正确答案B
解析详情
【答案】B 【考点】贪心算法逻辑模拟 【解析】初始 s=2, t=10。第 1 步:t 是偶数且 10/2 >= 2,执行 t /= 2,t 变为 5,ans=1;第 2 步:t=5 不满足条件,执行 t -= 1,t 变为 4,ans=2;第 3 步:t=4 满足条件,执行 t /= 2,t 变为 2,ans=3。此时 s == t,循环结束。 【易错点】模拟过程中未能严格遵守 if-else 的条件判断。
第 9 题(单选题)
下面C++代码执行后的输出是?()
int n, masks, days, cur;
n = 17, masks = 10, days = 0;
cur = 2;
while (masks != n){
if (cur == 0 || cur == 1)
masks += 7;
masks -= 1;
days += 1;
cur = (cur + 1) % 7;
}
cout << days;正确答案C
解析详情
【答案】C 【考点】循环模拟与周期性逻辑 【解析】masks 从 10 开始,目标是 17。cur 变化周期为 0-6。第 1-5 天(cur 为 2,3,4,5,6):masks 每天减 1,降至 5。第 6,7 天(cur 为 0,1):每天加 7 再减 1,即加 6。第 6 天 masks = 5+6 = 11;第 7 天 masks = 11+6 = 17。满足条件退出,days 为 7。 【易错点】对一周内哪些天会增加 masks 判断错误。
第 10 题(单选题)
以下C++代码判断一个正整数N的各个数位是否都是偶数。如果都是,则输出“是”,否则输出“否”。例如N=2024时输出“是”。则横线处应填入( )。
int N, Flag;
cin >> N;
Flag = true;
while (N != 0){
if (N % 2 != 0){
Flag = false;
// _____
}
else
N /= 10;
}
if(Flag == true)
cout << "是";
else
cout << "否";正确答案A
解析详情
【答案】A 【考点】循环优化与 break 语句 【解析】只要发现一个数位不是偶数,就可以确定“并非所有数位都是偶数”,此时应立即修改 Flag 并跳出循环以节省时间。横线处应填 break。 【易错点】误填 continue 导致无效的后续循环,或填入错误的 N 更新语句。
第 11 题(单选题)
有句俗话叫“三天打渔,两天晒网”。如果小杨前三天打渔,后两天晒网,一直重复这个过程,以下程序代码用于判断,第n天小杨是在打鱼还是晒网,横线处应填写?()
int n,i;
cin >> n;
i = n % 5;
if (_____) // 在此处填写代码
cout << "晒网";
else
cout << "打鱼";正确答案D
解析详情
【答案】D 【考点】周期性逻辑判断 【解析】5 天一个周期,前 3 天(n%5 为 1, 2, 3)打鱼,后 2 天(n%5 为 4, 0)晒网。因此当 i == 4 或 i == 0 时输出“晒网”。 【易错点】逻辑运算符 && 与 || 的误用,或者余数为 0 的情况处理错误。
第 12 题(单选题)
一个数的所有数字倒序排列后这个数的大小保持不变,这个数就是回文数,比如 101 与 6886 都是回文数,而 100 不是回文数。以下程序代码用于判断一个数是否为回文数,横线处应填写?()
int n,a,k;
cin >> n;
a = 0;
k = n;
while (n > 0){
a = ___; // 在此处填写代码
n /= 10;
}
if (a == k)
cout << "是回文数";
else
cout << "不是回文数";正确答案A
解析详情
【答案】A 【考点】数值倒置算法 【解析】将一个数倒置的标准算法是:不断取出原数 n 的个位(n%10),并将其累加到新数 a 的末尾(a = a * 10 + n % 10)。 【易错点】公式写错,例如误将取余记为除法。
第 13 题(单选题)
给定两个整数 n 与 k,打印出一个栅栏图形,这个栅栏应该分成 n 段,段与段之间的间隔为 +,段内的填充为 k 个 -。形如 n = 5,k = 6 时,图形如下:
+-----+-----+-----+-----+-----+以下程序代码用于绘制该图形,横线处应填写?()
int n, k, i, j;
n = 5, k = 6;
for (i = 0; i < n; i++) {
// 在此处填写代码
for (j = 1; j < k; j++)
cout << '-';
}
cout << '+';正确答案C
解析详情
【答案】C 【考点】嵌套循环与图形输出 【解析】图形由 n 段组成,每段开头是一个 +,后面跟 k 个 -(注意代码中 j 从 1 到 k-1 只有 k-1 个,但最后外层补了一个 +)。要实现连续输出不换行,应使用 cout << '+'。 【易错点】在不需要换行的地方添加了 endl。
第 14 题(单选题)
小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是。()
正确答案C
解析详情
【答案】C 【考点】计算机基础常识 【解析】鸿蒙(HarmonyOS)是华为开发的操作系统。此题考查基本科技常识。 【易错点】对常见科技名词定义混淆。
第 15 题(单选题)
中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是()。
正确答案C
解析详情
【答案】C 【考点】计算机历史贡献 【解析】王选先生的重大贡献是发明了汉字激光照排系统。此题为常识题。 【易错点】记忆模糊导致选错贡献。
判断题(每题 2 分)
第 1 题(判断题)
如果有以下C++代码:
double s;
int t;
s = 18.5;
t = int(s) + 10;那么 cout << t 的结果为 28.5。
正确答案错误
解析详情
【答案】错误 【考点】类型转换与变量赋值 【解析】t 是 int 类型变量,在执行 t = int(s) + 10 后,t 的值只能是整数。int(18.5) 为 18,18 + 10 = 28。输出结果为 28,而非 28.5。 【易错点】忽略变量 t 声明的 int 类型限制。
第 2 题(判断题)
Xyz,xYz,xyZ 是三个不同的变量。
正确答案正确
解析详情
【答案】正确 【考点】C++ 标识符大小写敏感性 【解析】C++ 是一种大小写敏感(case-sensitive)的语言,因此 Xyz、xYz、xyZ 会被视为三个完全独立的标识符。 【易错点】混淆大小写敏感与不敏感的语言特性。
第 3 题(判断题)
cout << (8 < 9 < 10) 的输出结果为 true。
正确答案错误
解析详情
【答案】错误 【考点】关系运算符优先级与结合性 【解析】表达式 (8 < 9 < 10) 的计算顺序是 (8 < 9) < 10。8 < 9 为真(1),接着计算 1 < 10 为真(1)。虽然逻辑上结果为真,但在默认情况下 cout 输出布尔值 true 为 1,而非字符串 "true"。 【易错点】混淆数学上的连不等式与编程语言中的运算顺序,以及输出格式。
第 4 题(判断题)
for (i = 0; i < 100; i += 2); 语句中变量i的取值范围是0到99。
正确答案错误
解析详情
【答案】错误 【考点】for 循环执行过程分析 【解析】循环 i 从 0 开始,每次加 2,依次取 0, 2, 4, ..., 98。当 i 达到 100 时不满足条件退出。i 的取值序列中并不包含 99。 【易错点】将步长为 2 的循环误认为遍历了范围内所有整数。
第 5 题(判断题)
C++中 cout << float(2022) 与 cout << float('2022') 运行后的输出结果均为2022。
正确答案错误
解析详情
【答案】错误 【考点】字符字面量与多字节常量 【解析】float(2022) 结果为 2022.0。'2022' 是多字符常量,其值由编译器决定,通常不等于整数 2022。单引号只能用于单个字符。 【易错点】分不清单引号(字符)和双引号(字符串)的区别。
第 6 题(判断题)
已知 A 的ASCII码值为65,表达式 int('C') + abs(-5.8) 的值为72.8。
正确答案正确
解析详情
【答案】正确 【考点】字符编码与数学计算 【解析】A 是 65,则 C 是 67。int('C') = 67。abs(-5.8) = 5.8。67 + 5.8 = 72.8。计算无误。 【易错点】记错字母 ASCII 码 or abs 函数的功能。
第 7 题(判断题)
bool() 函数用于将给定参数或表达式转换为布尔类型。语句 bool(-1) 返回的是 false 值。()
正确答案错误
解析详情
【答案】错误 【考点】布尔类型转换规则 【解析】在 C++ 中,数值转换为 bool 时,非 0 值转换为 true,只有 0 转换为 false。-1 是非 0 值,因此 bool(-1) 为 true。 【易错点】误认为只有正数才是 true。
第 8 题(判断题)
如果变量 a 的值使得C++表达式 sqrt(a) == abs(a),则 a 的值为0。()
正确答案错误
解析详情
【答案】错误 【考点】数学函数定义域与方程求解 【解析】方程 sqrt(a) == abs(a) 的解。当 a=0 时,0==0;当 a=1 时,1==1。因此 a 的值不一定只能是 0。此外,a 为负数时 sqrt 无意义。 【易错点】漏掉方程的一个显著解(如 1)。
第 9 题(判断题)
小杨今年春节回奶奶家了,奶奶家的数字电视要设置ip地址并接入到WIFI盒子才能收看节目,那这个WIFI盒子具有路由器的功能。()
正确答案正确
解析详情
【答案】正确 【考点】计算机基础(网络设备) 【解析】具有设置 IP 和接入 WiFi 能力的“WiFi 盒子”通常集成了路由器的网络地址转换(NAT)和数据包转发功能。 【易错点】对网络设备功能理解不深。
第 10 题(判断题)
任何一个 for 循环都可以转化为等价的 while 循环()。
正确答案正确
解析详情
【答案】正确 【考点】循环结构等价转换 【解析】for 循环和 while 循环在逻辑表达上是完备且等价的,可以互相重写。 【易错点】主观认为某种循环结构更高级或不可替代。