【GESP】C++ 一级真题解析,[2025年12月,第十二次认证]第二题手机电量显示
GESP C++ 2025年12月,一级真题第二题,考察分支语句应用,涉及到基础语句,比较简单。题目难度⭐☆☆☆☆。
第二题,手机电量显示
题目要求
题目描述
题目分析
1. 核心逻辑
本题考察了 C++ 中的多分支选择结构(if-else if-else)。我们需要根据手机剩余电量的百分比 $P$,按照三个区间输出不同的结果。
2. 区间判定规则
- 区间一:$P \in [0, 10]$。输出字符
'R'(表示红色警报,Red)。 - 区间二:$P \in (10, 20]$。输出字符
'L'(表示低电量,Low)。 - 区间三:$P \in (20, 100]$。输出电量数字 $P$ 本身。
3. 实现细节
- 多组数据:题目给出测试组数 $T$,需要使用
while(T--)或for循环来处理每组输入。 - 条件覆盖:使用
else if可以简化逻辑,因为当前面的p <= 10不满足时,进入else if就已经隐含了p > 10的条件。 - 数据范围:电量为百分比整数,使用
int类型即可。
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
/**
* GESP 2025年12月 一级编程题 T2: 手机电量显示
*
* 题目核心:
* 根据电量 P 进行分类显示:
* 1. P <= 10: 显示 'R' (Red 警告)
* 2. 10 < P <= 20: 显示 'L' (Low)
* 3. P > 20: 直接显示数字 P
*/
int main() {
int t;
std::cin >> t; // 读取测试数据组数
while (t--) {
int p;
std::cin >> p; // 读取当前电量百分比
// 1. 电量非常低 (<= 10)
if (p <= 10) {
std::cout << "R" << std::endl;
}
// 2. 电量有点低 (10 < p <= 20)
// 这里的 else if 隐含了 p > 10 的条件
else if (p <= 20) {
std::cout << "L" << std::endl;
}
// 3. 电量比较充足 (> 20)
else {
std::cout << p << std::endl;
}
}
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP 学习专题站:GESP WIKI
“luogu-”系列题目可在洛谷题库进行在线评测。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。
欢迎加入:Java、C++、Python技术交流QQ群(982860385),大佬免费带队,有问必答
欢迎加入:C++ GESP/CSP认证学习QQ频道,考试资源总结汇总
欢迎加入:C++ GESP/CSP学习交流QQ群(688906745),考试认证学员交流,互帮互助
本文由作者按照 CC BY-NC-SA 4.0 进行授权

