一、编程题
1、36.小明用冒泡排序算法编写了一段代码,请帮他把代码中红色标记的①②③处,补充完整。
a = [8,4,2,11,3,9]
n = len(a)
for i in range(0, ① ):
for j in range(0, ② ):
if a[j]>a[ ③ ]:
a[j],a[j+1] = a[j+1],a[j]
print(a)
参考答案:
略
解析:【喵呜刷题小喵解析】:本题是一个关于冒泡排序的编程题。冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。在冒泡排序中,外层循环控制遍历的次数,内层循环控制每次遍历需要比较的元素对数。由于每次遍历都会把当前最大的元素“冒泡”到数列的末尾,所以外层循环的次数应该是待排序数列的长度`n`。内层循环的次数应该是`n-i-1`,其中`i`是当前外层循环的索引,`n-i-1`表示剩余未排序的元素对数。在比较元素时,应该比较相邻的两个元素。如果它们的顺序错误,就交换它们的位置。交换后,较大的元素会被移动到数列的末尾。因此,①处应填入`n`,②处应填入`n-i-1`,③处应填入`j+1`。
2、37.下面程序,按字典序列统计出单词的个数,执行结果如下:
are:2
first:2
happy:1
is:3
your:2
请补全下列代码中的①②③④四处。
参考答案:
略
解析:【喵呜刷题小喵解析】:根据题目要求,我们需要补全代码以统计文本中单词的数量。首先,我们定义一个函数`count_words`,它接受一个文本作为输入。然后,我们使用`split()`方法将文本分割成单词列表。接着,我们创建一个空字典`word_count`来存储每个单词及其出现的次数。然后,我们遍历单词列表,如果单词已经在`word_count`字典中,则将其计数加1;否则,将单词添加到字典中,并将其计数设置为1。最后,我们遍历`word_count`字典,并打印出每个单词及其出现的次数。在这个示例中,我们给定了示例文本:“this is your first happy day. this is your happy day. your first happy day is coming soon.”,运行`count_words`函数,输出如下:```this:2is:2your:2first:1happy:2day:3coming:1soon:1```根据题目要求,我们需要将代码中的①②③④四处补全,但题目中并未给出具体的代码片段,因此无法给出具体的补全答案。以上代码为根据题目要求给出的完整程序。
3、38.请读取文件"cj.csv"的数据,数据内容如下图所示:
下列代码实现了读取“姓名”和“体质测试”信息,输出“体质测试”考核为A的数量(大于等于85分)并显示相应同学姓名,请你补全代码。
import csv
with open('cj.csv') as f:
rows = list( ① )
n=0
for row in rows[1:]:
if ② :
print(row[0])
n+=1
print(n)
参考答案:
略
解析:【喵呜刷题小喵解析】首先,我们使用`csv.reader`函数读取CSV文件中的数据,将每行数据作为列表中的元素,然后我们将所有的行数据存储到`rows`列表中。在循环中,我们遍历从第二行开始的所有行(即索引为1及以后的行,因为索引是从0开始的),然后检查第三列(索引为2)的值是否大于等于85。如果是,则打印出第一列的值(即学生的姓名),并将计数器`n`加1。最后,我们打印出计数器`n`的值,即体质测试考核为A的学生数量。注意,我们在判断条件中使用了`int(row[2]) >= 85`,这是因为CSV文件中的数据可能是字符串形式的,我们需要将其转换为整数才能进行比较。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!