2023年09月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、在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个

生的名字,出生月日。试找出所有生日相同的学生。

时间限制:1000

内存限制:65536

输入

第一行为整数n,表示有n个学生,n≤

180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字

母大写,其余小写,不含空格,且长度小于20)和出生月(1≤m≤12)日(1≤d≤

31)。名字、月、日之间用一个空格分隔

输出

每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当

天出生的学生的名字,数字、名字之间都用一个空格分隔。对所有的输出,要求按

日期从前到后的顺序输出。

对生日相同的名字,按名字从短到长按序输出,长度相同的按字典序输出。如没有

生日相同的学生,输出None

样例输入

6

Avril32

Candy45

Tim32

Sufia45

Lagrange45

Bill32

样例输出

32TimBillAvril

45CandySufiaLagrange

参考答案:

解析:【喵呜刷题小喵解析】本题要求找出所有生日相同的学生,并输出他们的名

字。首先,我们需要读取每个学生的名字和生日,并存储在一个字典中,字典的键

是生日(月和日),值是名字列表。然后,我们遍历字典中的每个生日,如果生日

对应的名字列表长度大于1,说明存在生日相同的学生,我们按照题目要求输出他

们的名字。最后,如果没有任何学生的生日相同,我们输出None。在输出名字时

,我们按照题目要求,先按照日期从前到后的顺序输出,然后对生日相同的名字,

按照名字从短到长的顺序输出,长度相同的按照字典序输出。我们使用Python的co

llections模块中的defaultdict函数来创建字典,使得当字典中不存在某个键时,会自

动创建一个空列表作为该键的值。在输出名字时,我们使用sorted函数对名字列表

进行排序,并使用lambda函数作为排序的key,按照名字从短到长的顺序进行排序

,长度相同的按照字典序排序。

2、合法出栈序列

给定一个由不同小写字母构成的长度不超过8的字符串x,现在要将该字符串的字符

依次压入栈中,然后再全部弹出。

要求左边的字符一定比右边的字符先入栈,出栈顺序无要求。

再给定若干字符串,对每个字符串,判断其是否是可能的x中的字符的出栈序列。

时间限制:1000

内存限制:65536

输入

第一行是原始字符串x后面有若干行,每行一个字符串

输出

对除第一行以外的每个字符串,判断其是否是可能的出栈序列。如果是,输出YE

S,否则,输出NO

样例输入

abc

abc

bca

cab

样例输出

YES

YES

NO

参考答案:

解析:【喵呜刷题小喵解析】:这个问题可以通过模拟栈的操作来解决。对于每个

待判断的字符串,我们遍历它的每个字符,同时维护一个栈来模拟入栈和出栈操作

。在遍历字符串的字符时,我们需要考虑两个条件:1.

左边的字符一定比右边的字符先入栈,这意味着栈顶元素必须小于或等于当前字符

。2.

出栈顺序无要求,这意味着栈顶元素可能是原始字符串中任何一个字符。因此,我

们可以按照以下步骤进行模拟:1.初始化一个空栈。2.

遍历待判断字符串的每个字符:*

如果栈不为空且栈顶元素小于当前字符且在原始字符串中栈顶元素的索引大于当前

字符的索引,那么将栈顶元素出栈,直到满足条件1或栈为空。*

如果栈为空或栈顶元素大于等于当前字符,将当前字符入栈。*

如果栈顶元素小于当前字符且在原始字符串中栈顶元素的索引小于当前字符的索引

,那么当前字符串不是合法的出栈序列,返回False。3.

如果遍历完待判断字符串后栈为空,那么它是合法的出栈序列,返回True,否则返

回False。在主程序中,我们首先读入原始字符串,然后循环读入待判断字符串,

对每个待判断字符串调用is_valid_sequence函数判断其是否是合法的出栈序列,并

输出结果。时间复杂度为O(n*m),其中n是待判断字符串的数量,m是字符串的长

度。空间复杂度为O(m),主要是栈的空间。

3、括号画家

Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚

起床的Candela画了一排括号序列,其中包含小括号()、中括号[]和大括号{},总长

度为N。这排随意绘制的括号序列显得杂乱无章,于是Candela定义了什么样的括号

序列是美观的:

(

文档评论(0)

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

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

1亿VIP精品文档

相关文档