2022.06全国青少年软件编程(C语言)等级考试试卷(六级)

标签:
普通文字版
2024-07-10
| 7页
| 56人阅读
| 0人下载

内容正文:

青少年软件编程(C语言)等级考试试卷(六级) 分数:100 题数:4 一、编程题(共4题,共100分) 1. 小白鼠再排队 N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从小到大的顺序输出它们头上帽子的颜色。帽子的颜色用 “red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。 时间限制:1000 内存限制:65536 输入 输入第一行为一个整数N,表示小白鼠的数目。 下面有N行,每行是一只白鼠的信息。第一个为正整数,表示白鼠的重量,不超过整型范围;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。 注意:白鼠的重量各不相同。 输出 按照白鼠的重量从小到大的顺序输出白鼠的帽子颜色。 样例输入 3 30 red 50 blue 40 green 样例输出 red green blue 试题编号:20220618_6_01 试题类型:编程题 标准答案: 试题难度:一般 试题解析: #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #include<stack> #include<queue> #include<list> #include<vector> using namespace std; struct sb { int z; char s[15]; } a[105]; bool cmp(sb a,sb b) { return a.z < b.z; } int main() { int n; cin >> n; for(int i = 1; i <= n; i++) { cin >> a[i].z >> a[i].s; } sort(a + 1,a + 1 + n,cmp); for(int i = 1; i <= n; i++) { for(int j = 0;j < strlen(a[i].s);j++) { cout << a[i].s[j]; } cout << endl; } return 0; } 展示地址:点击浏览 考生答案:(此题已作答) 考生得分:25 是否评分:已评分 评价描述: 2. 队列和栈 队列和栈是两种重要的数据结构,它们具有push k和pop操作。push k是将数字k加入到队列或栈中,pop则是从队列和栈取一个数出来。队列和栈的区别在于取数的位置是不同的。 队列是先进先出的:把队列看成横向的一个通道,则push k是将k放到队列的最右边,而pop则是从队列的最左边取出一个数。 栈是后进先出的:把栈也看成横向的一个通道,则push k是将k放到栈的最右边,而pop也是从栈的最右边取出一个数。 假设队列和栈当前从左至右都含有1和2两个数,则执行push 5和pop操作示例图如下:           push 5          pop 队列 1 2  ------->  1 2 5 ------>  2 5           push 5          pop 栈   1 2  ------->  1 2 5 ------>  1 2 现在,假设队列和栈都是空的。给定一系列push k和pop操作之后,输出队列和栈中存的数字。若队列或栈已经空了,仍然接收到pop操作,则输出error。 时间限制:1000 内存限制:65536 输入 第一行为m,表示有m组测试输入,m<100。 每组第一行为n,表示下列有n行push k或pop操作。(n<150) 接下来n行,每行是push k或者pop,其中k是一个整数。 (输入保证同时在队列或栈中的数不会超过100个) 输出 对每组测试数据输出两行,正常情况下,第一行是队列中从左到右存的数字,第二行是栈中从左到右存的数字。若操作过程中队列或栈已空仍然收到pop,则输出error。输出应该共2*m行。 样例输入 2 4 push 1 push 3 pop push 5 1 pop 样例输出 3 5 1 5 error error 试题编号:20220618_6_02 试题类型:编程题 标准答案: 试题难度:一般 试题解析: 展示地址:点击浏览 考生答案:(此题已作答) 考生得分:0 是否评分:已评分 评价描述: 3. 出栈序列统计 栈是常用的一种数据结构,有n个元素在栈顶端一侧等待进栈,栈顶端另一侧是出栈序列。你已经知道栈的操作有两种:push和pop,前者是将一个元素进栈,后者是将栈顶元素弹出。现在要使用这两种操作,由一个操作序列可以得到一系列的输出序列。请你编程求出对于给定的n,计算并输出由操作数序列1,2,…,n,经过一系列操作可能得到的输出序列总数。 时间限制:1000 内存限制:65536 输入 就一个数n(1≤n≤15)。 输出 一个数,即可能输出序列的总数目。 样例输入 3 样例输出 5 提示 先了解栈的两种基本操作,进栈push就是将元素放入栈顶,栈顶指针上移一位,等待进栈队列也上移一位,出栈pop是将栈顶元素弹出,同时栈顶指针下移一位。    用一个过程采模拟进出栈的过程,可以通过循环加递归来实现回溯:重复这样的过程,如果可以进栈则进一个元素,如果可以出栈则出一个元素。就这样一个一个地试探下去,当出栈元素个数达到n时就计数一次(这也是递归调用结束的条件)。 试题编号:20220618_6_03 试题类型:编程题 标准答案: 试题难度:一般 试题解析: #include<bits/stdc++.h> using namespace std; int a[20]; int main() { a[0] = 1; a[1] = 1; for(int i = 2;i <= 15;i++) { for(int j = 0;j < i;j++) { a[i] += a[j] * a[i - j - 1]; } } int n; cin >> n; cout << a[n]; } 展示地址:点击浏览 考生答案:(此题已作答) 考生得分:25 是否评分:已评分 评价描述: 4. 词典 你旅游到了一个国外的城市。那里的人们说的外国语言你不能理解。不过幸运的是,你有一本词典可以帮助你。 时间限制:3000 内存限制:65536 输入 首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一行。每一个词条包括一个英文单词和一个外语单词,两个单词之间用一个空格隔开。而且在词典中不会有某个外语单词出现超过两次。词典之后是一个空行,然后给出一个由外语单词组成的文档,文档不超过100000行,而且每行只包括一个外语单词。输入中出现单词只包括小写字母,而且长度不会超过10。 输出 在输出中,你需要把输入文档翻译成英文,每行输出一个英文单词。如果某个外语单词不在词典中,就把这个单词翻译成“eh”。 样例输入 dog ogday cat atcay pig igpay froot ootfray loops oopslay atcay ittenkay oopslay 样例输出 cat eh loops 提示 输入比较大,推荐使用C语言的I / O函数。 试题编号:20220618_6_04 试题类型:编程题 标准答案: 试题难度:一般 试题解析: 展示地址:点击浏览 考生答案:(此题已作答) 考生得分:0 是否评分:已评分 评价描述: 学科网(北京)股份有限公司 $$

资源预览图

2022.06全国青少年软件编程(C语言)等级考试试卷(六级)
1
2022.06全国青少年软件编程(C语言)等级考试试卷(六级)
2
2022.06全国青少年软件编程(C语言)等级考试试卷(六级)
3
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。