当前位置: 高中信息技术 / 综合题
  • 1. (2023高二下·浙江月考) 简易阅卷系统--为了检测学生的学习效果,王老师要开展一次课堂测试。她设计了一份检测卷,共8道题目,其中单选题6题,多选题2题,总分100分。学生做完题目后,上交答卷存储在“学生答卷.txt”文件中(答卷中均是大写字母,且多选题答案已按字母升序排列,格式如图a所示)。王老师编程读取全班学生的答卷,实现自动批阅,并统计每位学生的得分情况,最终输出每位学生得分和满分学生名单(如图b所示)。各类题型的阅卷规则如下:

    ●单选题:学生答案和标准答案一致,每题得10分;错选或不选不给分。

    ●多选题:学生答案和标准答案一致,每题得20分;漏选给10分,错选或不选不给分。比如某题标准答案为ACD,若答ACD可以得20分,答A、C、D、AC、AD或CD可得10分,其余不得分。

    1. (1) 主程序

      da=['A','B','A','D','C','D','ACD','BD'] #da存放标准答案

      file="学生答卷.txt"

      ts=readfile(file)  #读取学生答案内容

      a=[ ] #用于存放满分同学的姓名

      for i in range(len(ts)):

          line=ts[i]

          ls=line.strip()  #过滤掉换行符 '\n'

          ls=ls.split(',') #将ls按“,”分割,以列表存储

          s=score(ls,da)

          print(ls[0]+"得分:"+str(s))

          if s==100:

              a.append(ls[0])

          i+=1

      print("满分同学:",end='')

          for i in a:

      print(i,end='  ')

      该程序段采用的算法是(单选,填字母:A .解析算法 / B .枚举算法)。

    2. (2) 读写文本文件,如下的readfile函数,逐行读取每位学生的答题数据存入列表并返回。请在划线处填入合适的代码。

      def readfile(file):

          f=open(file,encoding="utf-8")  #打开文件

         

          line= f.readline()    #从文件中读取一行

          while line:

              text.append(line)   #添加到列表text

              line=f.readline()

          f.close()

          return text

    3. (3) 如下的dxt函数,判断多选题答案并返回得分。请在划线处填入合适的代码。

      def dxt(s1,s2):

          n1=len(s1);n2=len(s2)

          fs=0;c=0;k=0

          if s1==s2:

              fs=20

          else:

              while k<n1:

                  if s1[k] in s2:

                      c+=1

                  else:

                      break

                  k+=1

              if :

                  fs=10

      return fs

    4. (4) 如下的score函数,统计每位学生的得分并返回。请在划线处填入合适的代码。

      def score(st,da):

          sum=0

          for j in range(1,len(st)):

              if j<=6:  #单选题

                  if st[j]==da[j-1]:

                      sum+=10

              else:   #多选题

                 

      return sum

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