2024年06月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、冠军魔术

2018年FISM(世界魔术大会)近景总冠军简纶廷的表演中有一个情节:以桌面上

一根带子为界,当他将纸牌从带子的一边推到另一边时,纸牌会变成硬币;把硬币

推回另一边会变成纸牌。

这里我们假设纸牌会变成等量的硬币,而硬币变成纸牌时,纸牌的数量会加倍。那

么给定纸牌的初始数量,当他来回推了N

次(来/回各算一次)后,手里拿的是纸牌还是硬币?数量是多少?

时间限制1000

内存限制65535

输入

输入在一行里给出两个正整数,分别是纸牌的初始数量和魔术师推送的次数。这里

假设初始状态下魔术师手里全是纸牌。

输出

如果最后魔术师手里是纸牌,输出0和纸牌数量;如果是硬币,则输出1

和硬币数量。数字间须有1个空格。题目保证结果数值不超出整型范围(即231-

1)。

样例输入

样例1

37

样例2

84

样例输出

样例1

124

样例2

032

参考答案

#includestdio.h

intmain(){

intcards,pushes,coins=0,tempCards=0;

scanf(%d%d,cards,pushes);

while(pushes0){

if(cards0){//Iftherearestillcardsleft

coins+=cards;//Convertallcardstocoins

cards=tempCards*2;//Doublethenumberofcardsafter

conversion

}else{//Ifthereareonlycoinsleft

tempCards=coins;//Convertallcoinsbacktocards

temporarily

coins=0;//Resetthenumberofcoinstozero

}

pushes--;//Reducethenumberofpushesbyone

}

if(cards0){//Iftherearestillcardsleftafterallpushes

printf(0%d\n,cards);//Outputthenumberofcards

}else{//Ifthereareonlycoinsleftafterallpushes

printf(1%d\n,coins);//Outputthenumberofcoins

}

return0;

}

解析

这道题目可以通过模拟的方式来解答。首先读取纸牌的初始数量和魔术师推送的次

数。然后使用一个循环来模拟每一次的推送过程。在每一次推送过程中,如果手里

还有纸牌,就将所有的纸牌转换为硬币,并加倍纸牌的数量(为了下一次可能的转

换)。如果手里全是硬币,就将所有的硬币转换回纸牌(暂时性的转换,因为下一

次推送可能又会变回去)。最后根据手里是纸牌还是硬币来输出相应的结果。

2、找座位

组织一场考试时,监考老师手里会有一份签到表,按座位号的顺序列出学生。但学

生要根据这份表找到自己的座位编号就很麻烦了。本题就要求你编写程序,帮助学

生快速找到他们的座位号。

时间限制5000

内存限制65535

输入

输入第一行给出一个不超过103的正整数N,是参加考试的学生数。以下N

行,第i行给出座位号为i的学生的学号(i=1,…,

N)。学号是一个不超过8位、完全由数字组成的字符串。输入保证每个学生只分

配一个座位。接下来一行给出一个不超过105的正整数

M,是待查询的学生数。以下M行,每行给出一个待查询的学生的学号。

输出

对每一个待查询的学生,如果他在考场里有座位,则在一行中输出其座位号;否则

输出NA(NotAvailable的缩写),表示座位号不存在。

样例输入

5

100013

200233

100001

520077

886

文档评论(0)

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

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

1亿VIP精品文档

相关文档