1. 某校为了响应双减政策每周加设了一节体育选修课程,为了便于学校师资安排及课程的开设,需要对学生选课需求进行摸排。学校可以开设的课程共9门,在前期选课时学生可以选择自己喜欢的3门课程,选课信息已保存在文本文件中(课程名称用数字1~9表示),最终每个学生只安排1门课程学习。为了统计每门课程的选课人数及同选最多的两门课程,编写了以下程序。

所谓“同选”是指学生在3门课的选择中最喜欢一起选的两门课,比如A同学选了124,B同学选了134,则同选最多的两门课为14。请回答以下问题:

(1) 该程序先将文本文件的选课数据读取并保存到列表xk中,文本文件及读取到列表后部分数据如图所示,则该列表数据项的数据结构是(选填:字符串/列表/字典),数据项中的数据元素(如‘5’)的数据类型是(选填:整型/实型/字符串型)

  

(2) 程序运行结果如图所示,补充完整划线处的代码

course=["排球","篮球","足球","羽毛球","乒乓球","网球","健身操","游泳","太极"]

xk=[]       #存储选课信息,用数字1~9表示9门课程

f=[0]*9     #存储9门课程的选课人数

d=[0]*100   #存储两门课程同选的次数,如d[26]=50表示篮球和网球被50个同学同选

def relation(y):          #计算列表y中各数据项的同选次数

    for i in range(1,10):

        for j in range(i+1,10):

            if str(i) in y and str(j) in y:            #课程i,j均在列表y中出现

                d[10*i+j]+=1        #第i和第j门课程同选次数加1存储在列表d中

file=open("xk.txt","r")      #打开文件

line=file.readline()

while line:               #读取文件数据到列表xk中,数据样式详见第(1)小题图所示

    line=line.split()

    xk.append(line)

    line=file.readline()

file.close()

for y in xk:               #对列表xk中的各数据项进行处理

    relation(y)           #调用定义函数统计y中各门课程同选次数,存储到列表d中

    for x in y:            #遍历数据项y中的元素,统计每门课程的选课人数

       

for i in range(9):

    print(course[i],"选课人数:",,"人")   #输出每门课程的选课人数

maxd=max(d)

print("同选最多的两门课程是:")

for k in range(100):

    if d[k]==maxd:

        print(course[k//10-1],)       #根据列表d的索引计算两门同选课程索引

【考点】
常见数据类型、数组; 运算符、基本运算与表达式; 过程与自定义函数; 循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 困难
能力提升
换一批