2023年5月青少年软件编程(C 语言) 等级考试试卷(六级)

青少年软件编程(C 语言) 等级考试试卷(六级)2023.6
分数: 100 题数: 4
一、 编程题(共 4 题, 共 100 分)
1. 字符串插入
有两个字符串 str 和 substr, str 的字符个数不超过 1 0, substr 的字符个数为 3。 (字
符个数不包括字符串结尾处的'\0'。 ) 将 substr 插入到 str 中 ASCII 码最大的那个字符后
面, 若有多个最大则只考虑第一个。
输入
输入包括若干行, 每一行为一组测试数据, 格式为 str substr
输出
对于每一组测试数据, 输出插入之后的字符串。
样例输入
abcab eee
12343 555
样例输出
abceeeab
12345553

试题解析:
#include<bits/stdc++.h>
using namespace std;
int main()
{
 string str,substr;
while(cin>>str>>substr)
{
int maxn=0,maxid,i;
for(i=0;i<str.size();i++)
{
if((str[i]-'0')>maxn)
{
maxn=str[i]-'0';
maxid=i;
}
}
for(i=0;i<str.size();i++)
{
cout<<str[i];
if(i==maxid) cout<<substr;
}
cout<<endl;
}
return 0;
}



2. 机器翻译
VariantF 的电脑上安装了一个机器翻译软件, 他经常用这个软件来翻译英语文章。 这
个翻译软件的原理很简单, 它只是从头到尾, 依次将每个英文单词用对应的中文含义来
替换。 对于每个英文单词, 软件会先在内存中查找这个单词的中文含义, 如果内存中有,
软件就会用它进行翻译; 如果内存中没有, 软件就会在外存中的词典内查找, 查出单词
的中文含义然后翻译, 并将这个单词和译义放入内存, 以备后续的查找和翻译。
假设内存中有 M 个单元, 每单元能存放一个单词和译义。 每当软件将一个新单词存入
内存前, 如果当前内存中已存入的单词数不超过 M, 软件会将新单词存入一个未使用的
内存单元; 若内存中已存入 M 个单词, 软件会清空最早进入内存的那个单词, 腾出单
元来, 存放新单词。
假设一篇英语文章的长度为 N 个单词。 给定这篇待译文章, 翻译软件需要去外存查找
多少次词典? 假设在翻译开始前, 内存中没有任何单词。
时间限制: 1 000
内存限制: 2621 44
输入
第一行为两个正整数 M 和 N, 代表内存容量和文章的长度。 第二行为 N 个非负整数,
按照文章的顺序, 每个数(大小不超过 1 000000) 代表一个英文单词。 文章中两个单词
是同一个单词, 当且仅当它们对应的非负整数相同。 对于 50%的数据, 1 <=N、M<=1 000;
对于 1 00%的数据, 1 <=N、 M<=1 000000。
输出
一个整数, 为软件需要查词典的次数。
样例输入
3 7
1 2 1 5 4 4 1
样例输出
5
提示
整个查字典过程如下: 每行表示一个单词的翻译, 冒号前为本次翻译后的内存状况: 空:
内存初始状态为空。 1 . 1 : 查找单词 1 并调入内存。 2. 1 2: 查找单词 2 并调入
内存。 3. 1 2: 在内存中找到单词 1 。 4. 1 2 5: 查找单词 5 并调入内存。 5. 2 5
4: 查找单词 4 并调入内存替代单词 1 。 6. 2 5 4: 在内存中找到单词 4。 7. 5 4 1 :
查找单词 1 并调入内存替代单词 2。 共计查了 5 次词典。
试题编号: 20230520-6-02
试题类型: 编程题
标准答案:
试题难度: 一般
试题解析:

3. 栈基本操作
依次读入序列元素 1 ,2,...,n 进栈, 每进一个元素, 机器可要求下一个元素进栈或弹栈,
如此进行。 给定一个输入序列, 判断栈空时弹出的元素构成的序列是否可能等于给定的
序列, 如果是则输出栈的操作过程, 否则输出“NO”。
输入
输入分两行 第一行为 n 的值(即序列元素个数) 第二行为给定的输入序列(序列元素
均为整型)
输出
如果输入序列能够由题目 规定的操作得到, 则输出对栈的操作过程 否则直接输出“NO”
样例输入
7
4 5 3 6 2 7 1
样例输出
PUSH 1
PUSH 2
PUSH 3
PUSH 4
POP 4
PUSH 5
POP 5
POP 3
PUSH 6
POP 6
POP 2
PUSH 7
POP 7
POP 1
提示
给定序列中有可能有不在 1 ...n 之间的数字

更多内容请查看网站:

网站链接 

青少年软件编程历年真题模拟题实时更新

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No0d1es

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值