2021年12月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、要求:设计一个算法,求1~n(n为大于2的正整数)中有哪些素数,总共是多少

个素数?

根据上述计算规则,补全下列代码。

函数名:getPrime(n)

参数表:n--n为大于2的正整数。

返回值:返回素数组成的数组。

示例:当n=9时,返回:您输入的区间1-n中素数分别:[2,3,5,

7],总共4个素数!

解析:【喵呜刷题小喵解析】本题要求设计一个算法,求1~n(n为大于2的正整数)

中有哪些素数,并计算素数的总数。算法思路:1.

遍历2到n之间的所有整数,判断是否为素数。2.

对于每个整数,从2开始到该整数的平方根,判断该整数是否能被整除。3.

如果不能被整除,则该整数为素数,将其加入素数数组。4.

返回素数数组。根据算法思路,补全代码如下:```pythondefgetPrime(n):ifn=

2:return[]primes=[]foriinrange(2,n+1):is_prime=Trueforjinrange(2,

int(i**0.5)+1):ifi%j==0:is_prime=Falsebreakifis_prime:primes.append(i)return

primesn=int(input(请输入一个大于2的正整数:))print(f您输入的区间1-

{n}中素数分别:{getPrime(n)},总共{len(getPrime(n))}个素数!)```代码解释:

1.首先判断n是否小于等于2,如果是,则直接返回空数组。2.

初始化一个空数组primes,用于存储素数。3.

遍历2到n之间的所有整数,判断是否为素数。4.

对于每个整数,从2开始到该整数的平方根,判断该整数是否能被整除。5.

如果不能被整除,则该整数为素数,将其加入素数数组。6.

返回素数数组。在示例中,当n=9时,程序会输出:您输入的区间1-

9中素数分别:[2,3,5,7],总共4个素数!

2、编写上交作业的程序,老师要求把小组7位同学(编号为1,2,3,...,6,7)的作业

收齐,小组编号1的同学跟编号2的同学说“收作业了”,之后每位同学依次向后面的

一位同学说要“收作业了”,直到最后,编号7的同学将自己的作业,上交到编号6的

同学手中,编号6的同学将编号7的作业及自己的作业一起上交到编号5的同学,按

这样的流程;直到编号1将其他同学的作业及自己的作业上交到老师中。要求编号7

同学的作业放在最前面,即老师看到的作业是编号7的作业,然后是编号6的作业,

最后是编号1的作业。

根据上述算法思想,编写自定义函数完成程序功能,完善空白处代码。

函数名defgetHomeWork(hw,n)

参数表:hw存储每位同学的作业信息,n表示第n位同学的作业

返回值:每位同学的作业,要求最后1位同学的作业显示在最前面,第1位同学作业

显示在最后面

解析:【喵呜刷题小喵解析】根据题目要求,我们需要编写一个函数,该函数接收

两个参数:hw(存储每位同学的作业信息的列表)和n(表示第n位同学的作业)

。函数的目标是将第n位同学的作业移到列表的最前面,同时保持列表中其他元素

的相对顺序不变。首先,我们检查n是否为1。如果是,那么直接将hw列表的最后

一个元素移到列表的最前面。这是因为编号1的同学的作业需要放在最后,所以我

们直接将它移到列表的最前面。如果n不1,那么我们需要递归调用getHomeWork

函数,将n-

1位同学的作业移到列表的最前面。这是因为在编号n的同学将作业传给编号n-

1的同学之前,编号n-1的同学已经将他的作业传给了编号n-

2的同学,以此类推。然后,我们将hw列表的第n-

1个元素移到列表的最前面。这是因为编号n的同学将他的作业传给了编号n-

1的同学,所以我们需要将编号n的作业移到列表的最前面。最后,我们返回更新后

的hw列表。这样,我们就可以保证最后一位同学的作业显示在最前面,第一位同

学的作业显示在最后面,同时保持列表中其他元素的相对顺序不变。

3、要求:设计一个算法,枚举排列问题。输入1-n的第1个排列,如12

3,按照大小输出1~n的所有排列,并统计全部排列总数。

根据上述算法思想,补全下列代码。

描述:输入1-n的第1个排列,如123,按照大小输出1~n的所有排列。

函数名:

文档评论(0)

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

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

1亿VIP精品文档

相关文档