2023月03月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.换位密码法是将明文中的字符位置通过一定的规则重新排列从而得到密文的

一种加密方法。某换位密码法加密方法如下:先把明文按照固定长度(4位一组)进

行分组,然后对每一组的字符进行换位操作,从而得到密文。例如,

字符串ceit,使用密钥1432进行加密时,首先将字符串以4

个字符为一组进行分组,然后对每组的字符进行换位,第1个和第3个字符位置不变

,把第2个字符和第4个字符交换位置,从而得到密文ctie。小张编写的程序如下

,请完善划线处的代码:

defjiami(yw,key):

result=

foriinrange(0,①,len(key)):

s1=yw[i:i+len(key)]

forjinrange(②):

result=result+③

returnresult

yw=input(请输入待加密的明文:)

key=input(请输入密钥:)

mw=④

print(mw)

运行结果如下图所示:

解析:【喵呜刷题小喵解析】:

1.

对于①,由于题目中要求将明文按照固定长度(4位一组)进行分组,因此我们需要

将明文长度除以密钥长度,得到每组字符的数量。由于Python中整除使用双斜杠,

所以应填入`len(yw)//len(key)`。

2.

对于②,题目要求对每组的字符进行换位操作,因此我们需要遍历每组字符。在P

ython中,可以使用`range(len(s1))`来生成一个从0到`len(s1)-

1`的整数序列,用于遍历字符。

3.

对于③,题目要求根据密钥进行换位操作,因此我们需要将每组字符按照密钥指定

的位置进行交换。在Python中,可以使用`s1[key[j]-

1]`来获取换位后的字符。注意,由于Python的索引是从0开始的,因此需要将密钥

值减1。

4.

对于④,题目要求调用`jiami`函数进行加密,并将加密结果赋值给`mw`变量。因此

,应填入`jiami(yw,key)`。

2、37.一张长方形的纸,长m米,宽n米(长宽均为整数),现在要把它刚好裁成

一些正方形(边长是整数),有几种裁法,如果要使裁得的正方形面积最大,可以裁

多少块。小明学习了递归后,编写程序如下,首先输入长方形的长和宽,计算出结

果。请完善划线处的代码:

deftj(a,b):

c=0

minn=①

ifab:

minn=b

foriinrange(1,minn+1):

ifa%i==0andb%i==0:

c=②

returnc

defgcd(a,b):

ifb==0:

returna

return③

chang=int(input(输入长方形的长(单位cm)))

kuan=int(input(输入长方形的宽(单位cm)))

bianchang=gcd(chang,kuan)

total=④

num=tj(chang,kuan)

print(结果如下)

print(有{}种裁法.format(num))

print(裁得的正方形面积最大边长是{}cm,可以裁{}块.format(bianchang,total))

运行后的结果如下图所示:

参考答案:1.①处应填`min(a,

b)`,表示取长和宽的最小值作为正方形的最大可能边长。2.②处应填`c+(a//i)*

(b//i)`,表示当前边长i下,可以裁出的正方形数量,累加到c上。3.

③处应填`gcd(b,a%b)`,表示求最大公约数,递归调用gcd函数。4.

④处应填`(chang*kuan)//(bianchang*

bianchang)`,表示计算可以裁出的最大面积正方形的数量。

解析:【喵呜刷题小喵解析】:

根据题目要求,需要完善划线处的代码。

1.

①处需要求长和宽的最小值,作为正方形的最大可能边长。因为长和宽中较小的那

个值,就是能构成的最大正方形边长。所以填`min(a,b)`。

2.

②处需要计算当前边长i下,可以裁出的正方形数量。对于每个可能的边长i,需要

判断长和宽是否能被i整除,如果能,就计算能裁出的正方形数量,累加到c上。公

式为`c+(a//i)*(b//i)`,其中`a//i`和`b//

i`分别表示长和宽能被i整除的部分数量,两者相乘就是能裁出的正方形数量。

3.

文档评论(0)

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

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

1亿VIP精品文档

相关文档