2024年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.火中取栗

据法国诗人拉·封丹的寓言《猴子与猫》里说,猴子骗猫取火中的栗子,结果取出

后被猴子吃了,猫却因此被烧掉了爪上的毛。

现在我们有n

只炉子,每只炉子里烤着一些栗子。假设笨猫每次伸爪最多能从一只炉子里抓出k

颗栗子,但会被烧掉1撮毛。问笨猫抓出所有的栗子最少要被烧掉多少撮毛?

时间限制:1000

内存限制:65536

输入

输入在第一行中给出2个正整数n(≤100000)和k(≤

10),含义如题面所述。数字间以空格分隔。随后一行给出n个不超过1000

的正整数,其中第i个数字表示第i只炉子里烤的栗子的数量。

输出

在一行中输出笨猫抓出所有的栗子最少要被烧掉多少撮毛。

样例输入

52

348115

样例输出

17

解析:

假设炉子的数量为n,每次最多能取出的栗子数量为k,第i个炉子的栗子数量为

a[i]。

1.读入n和k的值。

2.读入每个炉子的栗子数量a[i],并对它们进行排序。

3.初始化被烧掉的撮毛数量sum为0。

4.从最大的a[i]开始,取出k个栗子,被烧掉的撮毛数量为k,将sum加上

k。

5.移动到下一个a[i],重复步骤4,直到所有的栗子都被取出。

6.输出sum,即为笨猫抓出所有的栗子最少要被烧掉多少撮毛。

根据题目给定的样例输入,炉子的数量为5,每次最多能取出2

个栗子,炉子的栗子数量分别为

3、4、8、1、15。我们对炉子的栗子数量进行排序,得到15、8、4、3、1。从15

开始取,取2个栗子,被烧掉2撮毛,剩余13个栗子;从8开始取,取2

个栗子,被烧掉2撮毛,剩余6个栗子;从4开始取,取2个栗子,被烧掉2

撮毛,剩余2个栗子;从3开始取,取1个栗子,被烧掉1撮毛;从1

开始取,不需要再被烧毛。总共被烧掉的撮毛数量为

2+2+2+1=7。因此,笨猫抓出所有的栗子最少要被烧掉7撮毛。

2、2.垃圾分类

据香港《南华早报》7月15日文章,上海严格的垃圾分类新规令不少居民抓狂。这

催生出大量帮助找出正确分类答案的App和小程序。目前仅微信上就至少有280种

与垃圾处理有关的App,在苹果应用商店也达130种。支付宝表示,已有60多家独

立App开发商申请为该平台提供类似服务。

本题就请你现场实现一个简单的垃圾分类小助手。

时间限制:1000

内存限制:65536

输入

输入首先给出官方分类指南中每种物品的归属。在一行中给出一个正整数N(≤

100000),即物品数量;随后N行,每行给出一个物品名称(长度不超过10

的、由小写英文字母和下划线组成的字符串)和该物品所属的分类(1

代表干垃圾、2代表湿垃圾、3代表可回收物、4

代表有害垃圾)。题目保证所有物品名称无重复。

随后每行给出一个查询物品的名称(格式与指南物品名称相同)。最后一行给出结

束符`#`,表示查询终止,这一行不需要查询。(查询的数量≤100000个)

输出

对每个查询的物品,在一行中给出其所属分类:`Ganlaji`代表干垃圾;`Shilaji`

代表湿垃圾;`KeHuiShou`代表可回收物;`YouHailaji`

代表有害垃圾。如果查询的物品不在指南中,则输出`?`表示不知道。

样例输入

4

bao_zhi3

dian_chi4

dan_ke2

bei_ke1

dan_ke

dian_chi

ren_zha

bao_zhi

bei_ke

样例输出

Shilaji

YouHailaji

?

KeHuiShou

Ganlaji

解析:

具体实现步骤如下:

1.读取物品数量和每个物品的名称和分类,将每个物品的名称和分类存储到哈

希表中。

2.读取查询物品的名称,在哈希表中查找其分类。

3.如果找到查询物品的分类,则输出对应的分类名称。

4.如果没找到查询物品的分类,则输出?表示不知道。

时间复杂度为O(N+Q),其中N为物品数量,Q为查询数量。由于时间限制为1000,

内存限制为65536,因此可以使用这种简单的哈希表查找方法来实现。

3、3.生成字母串

英语老师要求学生按照如下规则写一串字母:

\-

如果写了某个大写字母,下

文档评论(0)

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

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

1亿VIP精品文档

相关文档