文章

【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$ 倍率和保留一位小数,变量应使用浮点数类型(doublefloat)。
  • 输出格式:题目要求保留一位小数。在 C++ 中可以使用 printf("%.1f\n", result); 或结合 coutfixedsetprecision(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),考试认证学员交流,互帮互助

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
本文由作者按照 CC BY-NC-SA 4.0 进行授权