2025年全国青少年信息素养大赛复赛C++算法创意实践挑战赛真题模拟强化训练(试卷1:共计6题带解析)
第1题:分草莓
【题目描述】
小明邀请了四个同学一起游玩,带了一盒草莓平均分给大家一起吃,任意输入草莓的数量n,输出每个人可以分到几颗草莓,最后剩下了几颗。
【输入样例】
28
【输出样例】
5
3
AC代码
#include<bits/stdc++.h> // 万能头
using namespace std; // 使用标准命名空间,避免重复写std::
int n; // 定义全局变量n,用于存储输入的草莓总数
int main(){
cin >> n; // 输入草莓的数量n
// 计算每人分得的草莓数:总人数为小明加4个同学,共5人,所以除以5
cout << n / 5 << endl; // 输出每个人分到的草莓数(整除结果)
cout << n % 5; // 输出分配后剩余的草莓数(取余结果)
return 0; // 程序正常结束
}
功能分析
-
输入处理
- 程序读取用户输入的整数
n
,表示草莓的总数量。
- 程序读取用户输入的整数
-
人数计算
- 题目明确指出小明邀请4个同学,总共有5人参与分配。因此,每人分得的草莓数为
n / 5
(整除操作)。
- 题目明确指出小明邀请4个同学,总共有5人参与分配。因此,每人分得的草莓数为
-
余数计算
- 分配后剩余的草莓数为
n % 5
(取模操作)。
- 分配后剩余的草莓数为
-
输出结果
- 依次输出每人分得的草莓数和剩余的数量,符合题目要求。
第2题:商店结算
【题目描述】
商店铅笔优惠销售标准:购买8支以内(含),每支售价0.8元,超过8支部分,每支售价0.7元。任意输入购买的铅笔总量n,输出总金额。
【输入样例】
11
【输出样例】
8.5
AC代码
#include<bits/stdc++.h>
using namespace std;
int n; // 定义变量n,表示购买的铅笔数量
double ans; // 定义变量ans,表示计算后的总金额
int main() {
cin >> n; // 输入购买的铅笔数量n
// 根据购买数量选择不同的价格策略
if (n <= 8) {
// 不超过8支时,全部按单价0.8元计算
ans = n * 0.8;
} else {
// 超过8支时,前8支按0.8元,剩余部分按0.7元计算
ans = 8 * 0.8 + (n - 8) * 0.7;