2021年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、1.合法出栈序列

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

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

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

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

时间限制:1000

内存限制:65536

输入

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

输出

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

S,否则,输出NO

样例输入

abc

abc

bca

cab

样例输出

YES

YES

NO

参考答案:

解析:【喵呜刷题小喵解析】:本题是一道判断字符串是否合法的出栈序列的编程

题。首先,我们需要理解题目中的要求。题目中给定了一个原始字符x,然后有

一系列的字符串,我们需要判断这些字符串是否是x的合法出栈序列。所谓的合法

出栈序列,是指我们可以按照题目中给出的字符串的字符顺序,将字符依次压入栈

中,然后再全部弹出,使得弹出的字符顺序与题目中给出的字符串一致。在解决这

个问题时,我们可以使用一个栈来模拟这个过程。我们遍历题目中给出的字符串的

每一个字符,然后将该字符与栈顶字符进行比较。如果栈为空或者栈顶字符大于或

等于当前字符,我们将当前字符压入栈中;否则,我们将栈顶字符弹出,直到栈为

空或者栈顶字符大于或等于当前字符,然后将当前字符压入栈中。最后,如果栈为

空,那么题目中给出的字符串就是一个合法出栈序列,否则,就不是。在这个思路

的基础上,我们可以写出相应的代码。在代码中,我们首先读取题目中给出的原始

字符x的长度,然后将x读入到内存中。接着,我们读取一系列的字符串,对于每

一个字符串,我们都按照上述的思路进行判断,如果是合法出栈序列,就输出YE

S,否则,就输出NO。需要注意的是,由于题目中给出的字符串可能有很多个

,我们需要使用一个循环来读取所有的字符串,并对每一个字符串进行判断。在判

断时,我们需要使用一个栈来模拟压栈和弹栈的过程,如果栈为空或者栈顶字符大

于或等于当前字符,就将当前字符压入栈中,否则,就将栈顶字符弹出,直到栈为

空或者栈顶字符大于或等于当前字符。最后,如果栈为空,就输出YES,否则,

就输出NO。

2、2.奇怪的括号

某天小A和同学在课堂上讨论到:“栈这种数据结构真是太优美了,既简单用途又

广泛。”小B仰慕

小A许久,于是他拿出了自己在网上抄写的一道题问小A,如何判断括号是否匹配

时间限制:1000

内存限制:65536

输入

多组数据,每组数据占一行,且都是由(、)、[、]、*、/这六种字符组成。

输出

每组数据输出一行,如果括号能匹配成功,输出True,否则输出False。括号匹配规

则是:(和)匹配[和]匹配/*和*/匹配如果含有冗余字符也算匹配失败,例如

/***/是匹配失败的因为中间多了一个*。

样例输入

()/*[()]*/

*/**/

样例输出

True

False

参考答案:

解析:【喵呜刷题小喵解析】:本题要求判断括号是否匹配,可以使用栈来解决。

遍历输入的字符串,对于每个字符,如果是左括号或者特殊字符(*或/),则将其

压入栈中;如果是右括号,则判断栈顶元素是否与其匹配,如果不匹配则返回Fals

e,否则将栈顶元素弹出。最后判断栈是否为空,如果为空则表示括号匹配成功,

否则表示括号匹配失败。在Python中,可以使用列表来模拟栈,使用append()方法

将元素压入栈中,使用pop()方法将栈顶元素弹出。对于特殊字符的处理,如果是

右括号,则只需要判断栈顶元素是否与其匹配;如果是特殊字符(*或/),则需要

判断栈中是否存在与其匹配的字符,如果不存在则返回False。在判断特殊字符时

,需要特别注意*和/的匹配规则,即*和/必须成对出现,且中间不能有其他字符。

可以使用栈来辅助判断,当遇到/时,判断栈顶元素是否为*,如果不是则返回False

,否则将栈顶元素弹出,继续判断下一个字符。本题要求处理多组数据,因此可以

使用循环来读入数据,直到读入空行为止。

3、3.区间合并

给定n个闭区间[ai;

bi],其中i=1,2,...,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,

[1;2]和

文档评论(0)

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

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

1亿VIP精品文档

相关文档