文库 真题 C++真题

2024年3月电子学会C语言编程等级考试六级真题

电子学会真题 C语言真题 少儿编程题库 DOCX   10页   下载0   2024-05-14   浏览191   收藏0   点赞0   评分-   免费文档
温馨提示:当前文档最多只能预览 2 页,若文档总页数超出了 2 页,请下载原文档以浏览全部内容。
2024年3月电子学会C语言编程等级考试六级真题 第1页
2024年3月电子学会C语言编程等级考试六级真题 第2页
剩余8页未读, 下载浏览全部
青少年软件编程(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 试题编号:20240323-6-01 试题类型:编程题 标准答案: 试题难度:一般 试题解析: 展示地址:点击浏览 考生答案: #include <bits/stdc++.h> using namespace std; struct shu { int n; string s; }a[100010]; bool cmp(shu a,shu b) { return a.n<b.n; } int main() { int N; cin>>N; for(int i=0;i<N;i++) { cin>>a[i].n>>a[i].s; } sort(a,a+N,cmp); for(int i=0;i<N;i++) { cout<<a[i].s<<endl; } } 考生得分:25 是否评分:已评分 评价描述: 2. 扩号匹配问题 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注. 时间限制:3000 内存限制:65536 输入 输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母, 字符串长度不超过100 输出 对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。 样例输入 ((ABCD(x) )(rttyy())sss)( 样例输出 ((ABCD(x) $$ )(rttyy())sss)( ? ?$ 试题编号:20240323-6-02 试题类型:编程题 标准答案: 试题难度:一般 试题解析: 展示地址:点击浏览 考生答案: #include <bits/stdc++.h> using namespace std; char a[101],b[101]; int up(int c) { if(c==-1) return -1; else if(b[c]=='$') return c; else return up(c-1); } int main() { while(scanf("%s",a)!=-1) { printf("%s\n",a); int n=strlen(a); memset(b,' ',sizeof(b)); for(int i=0;i<n;i++) { if(a[i]=='(') b[i]='$'; else if(a[i]==')') { int m=up(i-1); if(m==-1) b[i]='?'; else b[m]=' '; } } printf("%s\n",b); } return 0; } 考生得分:25 是否评分:已评分 评价描述: 3. stack or queue 栈和队列都是常用的线性结构,它们都提供两个操作: Push :加入一个元素。 Pop :弹出一个元素。 不同的是,栈是 ” 先进后出 ” ,而队列则是 ” 先进先出 ” 。 给出一个线性结构的进出顺序,判定这个结构是栈还是队列。 时间限制:1000 内存限制:65535 输入 第一行输入一个整数t,代表有t组测试数据 对于每组测试数据,第一行输入一个整数n,代表操作的次数。 随后输入n行,每行包含两个整数 type val。 当type = 1时,表示该次操作为push操作,val表示进入的数字。当type=2时,表示该次操作为pop操作,val代表出来的数字。 3<=n<=2000 输出 每组测试数据输出一行。 输出该组数据对应的线性结构,”Stack” 或者 “Queue”。 题目保证是栈或者队列的一种。 样例输入 2 6 1 1 1 2 1 3 2 3 2 2 2 1 4 1 1 1 2 2 1 2 2 样例输出 Stack Queue 试题编号:20240323-6-03 试题类型:编程题 标准答案: 试题难度:一般 试题解析: 展示地址:点击浏览 考生答案: #include <bits/stdc++.h> using namespace std; string Struct; bool H; int push[2005]; int pop[2005]; int main() { int t; cin>>t; while(t--) { int n,type,val,Innum=0,Outnum=0; cin>>n; for(int i=0;i<n;++i) { cin>>type>>val; if(type==1) { push[Innum++]=val; } else { pop[Outnum++]=val; } } int num=min(Innum,Outnum); H=false; for(int i=0;i<num;++i) { if(push[i]!=pop[i]) { Struct="Stack"; H=true; break; } } if(!H) Struct="Queue"; cout<<Struct<<endl; } return 0; } 考生得分:25 是否评分:已评分 评价描述: 4. 利用队列进行数字排序 对于N个数字,有人提出了如下的排序策略: 例如,对于数字53、47、85、38、64、23   先建立10个队列(0到9),用于存放数字的大小,将这N个数字依个位存放入各自的队列之中,然后再按队列0到队列 9 依次出队。 例如,对于上面的数字,依次进队后,结果如下: 队列3:53、23 队列4
202403C语言六级,2024年3月电子学会C语言编程等级考试六级真题
下载提示

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