刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

38.若要生成一个由若干小写字母组成的互不重复的随机数组,已知小写字母的ASCII码值为97~122整数范围,并将其进行从小到大输出,如图所示,请将相关程序补充完整。
import random #random是随机数模块
n=int(input("请输入元素个数(不超过26):"))
a=[]
\#产生不重复的随机数组
for i in range(n):
​ x=random.randint(97,122) #产生97-122之间的随机整数
​ while chr(x) in a:
​ x=random.randint(97,122)
​ a.append( ① )
print(a)
\#将各个元素进行排序输出
for i in range(n-1):
​ k=i
​ for j in range( ② ,n):
​ if a[k]>a[j]:
​ k= ③
​ if i!=k:
​ a[i],a[k]= ④
print("该随机数组从小到大排列为:",a)

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】:

1. 在`a.append()`中,我们需要将随机生成的字符添加到列表`a`中。由于`x`是一个随机整数,其范围在97到122之间,因此`chr(x)`可以将这个整数转换为对应的小写字母。所以,`a.append(chr(x))`是正确的。
2. 在排序算法中,外部循环从0开始,所以内部循环应该从`i+1`开始,以比较当前元素与后面的元素。因此,`range(i+1, n)`是正确的。
3. 在交换元素时,我们需要找到从`i`到`n-1`之间比`a[i]`大的最小元素的索引。在每次内部循环中,如果`a[j]`大于`a[k]`,则更新`k`的值为`j`。因此,`k=j`是正确的。
4. 最后,我们需要交换`a[i]`和`a[k]`的位置,以将`a[i]`移动到正确的位置。因此,`a[i], a[k]`是正确的。
创作类型:
原创

本文链接:38.若要生成一个由若干小写字母组成的互不重复的随机数组,已知小写字母的ASCII码值为97~122

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share