2023年05月C语言六级答案及解析.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一、编程题

1、【请在自己电脑上的编程软件上做C语言没有标准答案

运行测试无误即为正确】

字符串插入

有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符

个数不包括字符串结尾处的’\0’。)将substr插入到str中ASCII码最大的那个字符后

面,若有多个最大则只考虑第一个。

时间限制:1000

内存限制:65536

输入

输入包括若干行,每一行为一组测试数据,格式为strsubstr

输出

对于每一组测试数据,输出插入之后的字符串。

样例输入

abcabeee

12343555

样例输出

abceeeab

参考答案:

解析:【喵呜刷题小喵解析】本题要求将字符串substr插入到字符串str中ASCII码

最大的那个字符后面,若有多个最大则只考虑第一个。首先,我们需要定义三个字

符数组:str、substr和output。其中,str和substr用于存储输入,output用于存储输出

。然后,我们使用一个循环来读取输入,直到文件结束。对于每一组输入,我们遍

历str,找到ASCII码最大的字符的索引,并将substr插入到该字符后面。具体实现

时,我们使用两个指针i和j来遍历str和output。当i指向的字符是最大ASCII码字符

时,我们将substr插入到output中,并将i加1,以便跳过已经插入的substr。否则,

我们将str中的字符插入到output中。最后,我们在output的末尾添加字符串结束符\

0,并输出output。注意,本题的时间限制和内存限制很小,因此我们需要尽可能

地优化算法。在本题中,我们可以使用指针来遍历字符串,避免使用字符串函数,

以提高效率。

2、机器翻译

VariantF的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。

这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文

含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如

果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典

内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续

的查找和翻译。

假设内存中有M

个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果

当前内存中已存入的单词数不超过M,软件会将新单词存入一个未使用的内存单元

;若内存中已存入M

个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。

假设一篇英语文章的长度为N

个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开

始前,内存中没有任何单词。

时间限制:1000

内存限制:262144

输入

第一行为两个正整数M和N,代表内存容量和文章的长度。第二行为N

个非负整数,按照文章的顺序,每个数(大小不超过1000000)代表一个英文单词

。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。

对于50%的数据,1=N、M=1000;对于100%的数据,1=N、M=1000000。

输出

一个整数,为软件需要查词典的次数。

样例输入

37

1215441

样例输出

5

提示

整个查字典过程如下:每行表示一个单词的翻译,冒号前为本次翻译后的内存状况

:空:内存初始状态为空。1.1:查找单词1并调入内存。2.12:查找单词2

并调入内存。3.12:在内存中找到单词1。4.125:查找单词5并调入内存。

5.254:查找单词4并调入内存替代单词1。6.254:在内存中找到单词4。

7.541:查找单词1并调入内存替代单词2。共计查了5次词典。

参考答案:

解析:【喵呜刷题小喵解析】:本题主要考察编程和算法。机器翻译软件需要按照

题目中描述的工作机制来运行,同时记录软件需要去外存查找词典的次数。1.

创建一个空的内存列表`memory`来存储已存入内存的单词。2.

遍历输入文章中的每个单词。3.

如果内存列表的长度小于内存容量`M`,则将新单词添加到内存列表的末尾。4.

如果内存列表的长度等于内存容量`M`,则需要清空最早进入内存的那个单词,腾

出单元来,存放新单词。5.

如果新单词不在内存列表中,则需要去外存查找词典,并将查找到的单词和译义放

入内存。6.

在整个翻译过程中,记录查找词典的次

文档评论(0)

喵呜刷题 + 关注
实名认证
文档贡献者

来喵呜刷题,完成你的职业蜕变!

1亿VIP精品文档

相关文档