2024月09月Python四级实操答案及解析.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、36.日期问题

小明同学学习Python的函数后,想动手利用函数来解决生活中的问题。于是他突发

奇想,输入日期,统计这一天是这一年的第几天。其中,闰年指年份能被4整除但

不能被100整除,或者仅能够被400整除。编写的代码如下,请完善划线处的代码

defisRn(year):#判断year是否闰年

if①oryear%400==0:

return1

return0

defjsDays(data):#计算日期data在这一年是第几天

s=0

year=int(data[:4])

month=int(data[4:6])

day=int(data[6:])

foriinrange(②):

s+=days[i]

s+=day

ifmonth2and③:

s+=1

returns

defcheckRq(data):#判断输入的日期是否正确

month=int(data[4:6])

day=int(data[6:])

ifmonth1ormonth12:

return0

ifdays[month-1]dayorday1:

return0

return1

days=[31,28,31,30,31,30,31,31,30,31,30,31]#定义每个月的天数

rq=input(输入年月日,格式如n)

ifcheckRq(rq):

d=④

print(rq,是这一年的第,d,天)

else:

print(rq,输入的日期有错误)

解析:

题目是关于日期处理和闰年的判断问题。首先,我们需要明确闰年的判断条件,即

能被4整除但不能被100整除的年份,或者能被400整除的年份。在代码中,划线处

①应填入判断闰年的条件

接下来,函数jsDays用于计算日期在这一年中是第几天。这需要遍历年份中的每

个月份并累加天数,最后加上日期的日数。在代码中,划线处②应填入月份的范围

,即从1到12的整数序列或基于days列表的长度

在函数jsDays中,如果输入的日期在二月之后并且这一年是一个闰年(即二月有2

9天),则需要额外加一天。因此,划线处③应填入判断是否为闰年的条件

最后,划线处④应该调用函数jsDays来计算输入的日期在这一年中是第几天,并

将结果输出。因此,这里应填入调用函数的代码

2、37.数学游戏

校园里流行一种新的数学游戏:每次邀请两个同学参加,第一个同学先从1和2中挑

一个数字,第二个同学可以在对方的基础上选择加1或者加2,然后又轮到第一个同

学,他也可以选择加1或者加2,之后再把选择权交给对方,就这样交替地选择加1

或者加2,谁先加到20,谁就赢了。小智编写了以下程序,分析总共存在多少种可

能出现的情形。请补充完成该程序

defact(n):

ifn==1or①:

return1

sn=②

return③

tn=act(④)

解析:

这个问题是一个递归问题,通过编写程序来模拟数学游戏的流程。首先,当游戏结

束(即其中一个玩家达到或超过20

分)时,游戏结束。此时只有一种情况,即返回当前玩家赢得游戏的分数(即累积

得分)。如果游戏尚未结束,我们需要考虑两种情况:当前玩家选择加1或加

2。因此,我们需要递归地调用函数两次,分别模拟这两种情况。然后我们需要计

算这两种情况的得分总数,并将它们存储在一个列表中(这就是

sn)。接下来我们需要返回两种情况的数量(即返回

len(sn))。最后,我们需要根据当前玩家的选择(即当前轮到的玩家是第一个还是

第二个)来决定下一个玩家应该选择哪个数字(即n-1或n-

2)。通过这种方式,我们可以模拟整个游戏过程并计算出所有可能的情形数量

3、38.乘客问题

某路公共汽车,总共有八站,从一号站发车时车上已有n位乘客,到了第二站先下

一半乘客,再上来了六位乘客,到了第三站也先下一半

乘客,再上来了五位乘客,以后每到一站都先下车上已有的一半乘客,再上来了乘

客比前一站少一个到了终点站车上还有乘客6人,

问发车时车上的乘客有多少?根据递归思想,编写自定义函数完成该程序功能,完

善空白处代码

defnum(i):

ifi==8:

return①

else:

return②

print(③)

解析:

根据题目描述,这是一个典型的递归问题。我们需要编写一个递归函数来解决这个

问题。函数num(i)表

文档评论(0)

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

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

1亿VIP精品文档

相关文档