【GESP】C++ 一级真题解析,[2025年12月,第十二次认证]第一题小杨的爱心快递
GESP C++ 2025年12月,一级真题第一题,考察循环语句应用,涉及到基础语句,相对比较简单。题目难度⭐☆☆☆☆。
第一题,小杨的爱心快递
题目要求
题目描述
题目分析
1. 核心逻辑
本题要求在两种不同的计费方式中选择最便宜的一种。这考察了基本的变量定义、条件判断(if-else)以及格式化输出。
2. 计算步骤
- 方式一(按体积计费):运费 = 体积 $V \times 0.5$。
- 方式二(按重量计费):
- 如果重量 $G < 300$ 克,费用为 $M$ 元;
- 如果重量 $G \ge 300$ 克,费用为 $N$ 元。
- 最终结果:通过比较,取上述两者的最小值。
3. 注意事项
- 数据类型:由于涉及 $0.5$ 倍率和保留一位小数,变量应使用浮点数类型(
double或float)。 - 输出格式:题目要求保留一位小数。在 C++ 中可以使用
printf("%.1f\n", result);或结合cout的fixed和setprecision(1)。
示例代码
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
38
#include <cstdio>
#include <iostream>
/**
* GESP 2025年12月 一级编程题 T1: 小杨的爱心快递
*
* 题目核心:
* 1. 体积计费:运费 = 0.5 * 体积 V
* 2. 重量计费:
* - 重量 G < 300 克,运费为 M
* - 重量 G >= 300 克,运费为 N
* 3. 最终运费:取以上两种计费方式中价格较低的一个
*/
int main() {
double v, g, m, n;
// 输入四行,分别是 V, G, M, N
std::cin >> v >> g >> m >> n;
// 计算按体积计费的费用
double price_v = v * 0.5;
// 计算按重量计费的费用
double price_g;
if (g < 300.0) {
price_g = m;
} else {
price_g = n;
}
// 最终运费取两者中的最小值
double result = (price_v < price_g) ? price_v : price_g;
// 输出结果,保留一位小数
printf("%.1f\n", result);
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 进行授权

