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

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

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

        

    2. (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的索引计算两门同选课程索引

微信扫码预览、分享更方便