文库 真题 蓝桥杯真题

2022年1月蓝桥杯青少组STEMA等考C++中高级组真题答案

蓝桥杯青少组真题 STEMA真题 PDF   7页   下载0   2024-03-06   浏览261   收藏0   点赞0   评分-   免费文档
温馨提示:当前文档最多只能预览 2 页,若文档总页数超出了 2 页,请下载原文档以浏览全部内容。
2022年1月蓝桥杯青少组STEMA等考C++中高级组真题答案 第1页
2022年1月蓝桥杯青少组STEMA等考C++中高级组真题答案 第2页
剩余5页未读, 下载浏览全部
 答案 第 13 届蓝桥杯 C++青少组中 /高级组选拔赛 2022年1月 22 日真题 题目总数: 5 总分数:128 编程题 第 1 题 问答题 比大小 题目描述: 给出两个不同的整数,输出两个整数中较大的那个。 输入描述: 输入两个不同的整数 (-1000<整数<1000), 两个整数之间以一个空格隔开。 输出描述: 将两个整数中较大的那个输出。 样例输入: 样例输出: 第 2 题 问答题 1 3 3 #include <iostream> using namespace std; int a, b; int main () { cin >> a >> b; if (a > b) { cout << a << endl; } else { cout << b << endl; } return 0; } 1 2 3 4 5 6 7 8 9 10 11 12  答案 字符串逆序 题目描述: 给出一个字符串,然后将字符串逆序输出。 输入描述: 输入一个只包含数字及字母的字符串 (2<字符串长度 <100)。 输出描述: 将字符串逆序输出 样例输入: 样例输出: 第 3 题 问答题 近似值 题目描述: 给出一个包含十个正整数的数组和一个正整数 (目标值 ),从数组中找出两个数,使这两个数相加后的和,小于等 于目标值并且离目标值最接近。 然后将两个数的和输出。 如:正整数数组为【 9,4,3,8,8,9,11,9,8,5】,目标值为 10,其中数组中 4和 3、 4和 5、 3和 5的和都小于目标值 10,但 和离目标值最接近的两个数是 4和 5,其和为 9。 输入描述: 第一行输入 10个正整数 (正整数 <10000), 表示正整数数组中的 10个元素,元素之间一个空格隔开。 第二行输入一个正整数 n(1<n<19997),表示目标值。 输出描述: abc cba # include <cstdio> #include <cstring> #include <iostream> using namespace std; int main () { string s; cin >> s; int len = s. length(); for (int i = len - 1; i >= 0; --i) { cout << s[i]; } return 0; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14  答案 输出一个整数。如果数组中存在小于等于目标值并且离目标值最接近的两个数,则输出这两个数的和;如果数 组中不存在这样的两个数,即数组中任意两个数的和都超过了目标值,则输出 -1。 样例输入: 样例输出: 第 4 题 问答题 分配 题目描述: 疫情期间,社会爱心人士及单位组织为疫情捐赠了大量物资。其中有 n箱口罩物资需要小蓝为 2个疫情重灾区分 配。每箱口罩的数量也不完全相等,且只能整箱分配。为了公平,尽量使 2个疫情重灾区分得的口罩数量相 9 4 3 8 8 9 11 9 8 5 10 9 #include <cstdio> #include <cstring> #include <iostream> using namespace std; int a[20]; int n; int ans = - 1; int main () { for (int i = 1; i <= 10; ++i) { cin >> a[i]; } cin >> n; for (int i = 1; i <= 10; ++i) { for (int j = i + 1; j <= 10; ++j) { if ((a[i] + a[j] <= n) && (n - a[i] - a[j]) <= n - ans) { ans = a[i] + a[j]; } } } if (ans != - 1) cout << ans << endl; else { cout << "-1" << endl; } return 0; } 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  答案 等,也就是 2个疫情区分得的口罩数量差值最小。 例如: n为 3,3 箱口罩数量分别为 200、300 、110, 按照要求分配, 2个疫情区分得的口罩数量分别为 310(200+110) 和300 。 这时小蓝犯愁了,不知道如何才能使 2个疫情重灾区分得的口罩数量尽量接近。请你编写程序帮助小蓝解决这 个问题。 输入描述: 第一行输入一个正整数 n(n≤10),表示有n箱口罩。 第二行输入 n个不完全相等的正整数 (100≤每个正整数 ≤1000),表示每箱口罩的数量。正整数之间以一个空格隔 开。 输出描述: 输出两个正整数,分别表示 2个重灾区分得口罩的数量,两个正整数之间一个空格隔开,且如果两个正整数不 相同,需按照从大到小输出。 样例输入: 样例输出: 3 200 300 110 310 300 # include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <iostream> using namespace std; int a[20]; int n; int sum; int ans; void check (int x) { int tmp = 0; for (int i = 0; i < n; ++i) { if ((x >> i) & 1) { tmp += a[i + 1]; } } if (abs (sum - tmp - tmp) < abs(sum - ans - ans)) { ans = tmp; } } int main () { 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 第 5 题 问答题 组合 题目描述: 某校庆祝元旦,要求某班级选出 n位男生和 n位女生参加节目。由于节目需要,男女同学需要按照以下要求
第13届蓝桥杯C++青少组中_高级组选拔赛2022年1月22日真题-附答案,2022年1月蓝桥杯青少组STEMA等考C++中高级组真题答案
下载提示

下载及版权说明:6547网文库内容来自网络及各平台公开内容(属于用户上传,不保证正确性,只做参考),旨在帮助同学们学习少儿编程相关知识及内容,仅限内部学习及使用,以分享为主,下载本文档之后请合法使用相关、真题、素材、课件、教程等内容,若内容存在侵权,请进行 举报 及查看 免责声明