文库 真题 蓝桥杯真题

第12届蓝桥杯青少组C++中高级组选拔赛真题及答案 2020年9月20日

蓝桥杯青少组C++真题 蓝桥杯stema真题答案 PDF   10页   下载0   2024-02-29   浏览153   收藏0   点赞0   评分-   免费文档
温馨提示:当前文档最多只能预览 2 页,若文档总页数超出了 2 页,请下载原文档以浏览全部内容。
第12届蓝桥杯青少组C++中高级组选拔赛真题及答案 2020年9月20日 第1页
第12届蓝桥杯青少组C++中高级组选拔赛真题及答案 2020年9月20日 第2页
剩余8页未读, 下载浏览全部
 答案 第 12 届蓝桥杯 C++青少组中 /高级组选拔赛 2020年9月 20 日真题 题目总数: 5 总分数:128 编程题 第 1 题 问答题 开关 提示信息: 小蓝家的灯是线型开关的,拉一次灯开,再拉一次灯关,未拉之前灯是熄灭状态。 题目描述: 输入一个正整数 M(1<M<100),作为小蓝拉灯的次数,判断拉灯 M次后,灯是点亮状态还是熄灭状态。 输入描述: 输入一个正整数 M作为拉灯的次数 (1<M<100) 输出描述: 如果灯是点亮状态输出整数 “1”,如果灯是熄灭状态输出整数 “0”。 样例输入: 样例输出: 5 1 // 参 考 答 案 1 #include <iostream> int main () { int m; std::cin >> m; std::cout << m % 2 << std::endl; } 1 2 3 4 5 6 7 // 参 考 答 案 2 #include <cstdio> using namespace std; int main () { 1 2 3 4 5  解析  答案 评分标准: (下列各评分项单独计分,得分累加;共 18 个计分点) 6分:能正确输出一组数据; 6 分:能正确输出两组数据; 6 分:能正确输出三组数据。 第 2 题 问答题 数字组合 题目描述: 用户输入一个正整数 N(3<=N<=9)。从0到 N之间的所有正整数 (包含 0和 N) 中选择三个,组成一个三位数 (0不能 作为百位数 ),且这个三位数为奇数 ,请计算出共有多少种满足条件的三位数组合。 (注意 :组成的每个三位数各个 位上的数字不能重复 ;) 输入描述: 输入一个正整数 N(3<=N<=9) 输出描述: 输出满足条件的三位数组合的个数 样例输入: 样例输出: 样例描述: 用户输入的正整数为 3,也就是将 0,1,2,3四个数字进行组合,符合要求的三位数为: 103,123,203,213,201,231,301,321 共8个,所以输出 8。 int n; scanf ("%d" , &n); printf ("%d\n" , n % 2); return 0; } 6 7 8 9 10 3 8 // 参 考 答 案 1 #include <iostream> int a[15], n, sum = 0; bool vis[ 15]; void dfs (int step) { if (step == 3 && a[step] % 2 == 1 && a[ 1] != 0) { /* for(int i=1; i<=step; i++) { 1 2 3 4 5 6 7 8 9 10  解析 评分标准: (下列各评分项单独计分,得分累加;共 20 个计分点) 6分:能正确输出一组数据; 6 分:能正确输出两组数据; 8 分:能正确输出三组数据。 第 3 题 问答题 报数 题目描述: 有 n个人围成一个圈,从 1到 n按顺序排好号。然后从第一个人开始顺时针报数 (从 1到 3报数 ),报到 3的人退出圈 子后,后面的人继续从 1到 3报数,直到留下最后一个人游戏结束,问最后留下的是原来第几号。 输入描述: 输入一个正整数 n(4<n<600) std::cout<<a[i]; } std::cout<<" yes"<<std::endl; */ sum++; } for (int i = 0; i <= n; i++) { if (!vis[i]) { a[step + 1] = i; vis[i] = true; dfs(step + 1); vis[i] = false; } } } int main () { std::cin >> n; dfs (0 ); std::cout << sum << std::endl; } 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // 参 考 答 案 2 #include <cstdio> using namespace std; int main () { int n; scanf ("%d" , &n); int odd = n / 2 + n % 2; printf ("%d\n" , odd * (n - 1) * (n - 1)); return 0; } 1 2 3 4 5 6 7 8 9 10 11  答案 输出描述: 输出最后留下的是原来的第几号 样例输入: 样例输出: 5 4 // 参 考 答 案 1 #include <iostream> #include <queue> int main () { std::queue< int> queue; int n, cnt = 1; std::cin >> n; for (int i = 1; i <= n; i++) { queue. push(i); } while (queue. size() > 1) { if (cnt != 3) { queue. push(queue. front()); cnt++; } else { cnt = 1; } queue. pop(); } std::cout << queue. front() << std::endl; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // 参 考 答 案 2 #include <cstdio> #include <cstring> using namespace std; int n, in, cur = 0, tmp = 1; bool isIn[ 605]; int main () { memset (isIn, true, sizeof (isIn)); scanf ("%d" , &n); in = n; while (in > 1) { cur %= n; if (!isIn[cur]) { cur++; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  解析 评分标准: (下列各评分项单独计分,得分累加;共 25个计分点) 5分:能正确输出一组数据; 5 分:能正确输出两组数据; 7 分:能正确输
第12届蓝桥杯C++青少组中_高级组选拔赛2020年9月20日真题-附答案,第12届蓝桥杯青少组C++中高级组选拔赛真题及答案 2020年9月20日
下载提示

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