当前位置: 高中信息技术 / 综合题
  • 1. (2023·模拟) 小明开发了一个团队阅卷系统,具体阅卷规则如下:

    ①共有n道题,n道题依次进入阅卷序列中,为了保证试题批阅的准确性,每道题都需要两次批改,第一次批改完成的试题会加入到阅卷序列尾部,直至两次批改完成;

    ②若第一次批改和第二次批改分数相差2分及以上,则该题需要第三次批改,该题重新加入到目前阅卷序列尾部,第三次批改与第二次批改分数继续比较,以此列推;反之表示该题评分完成

    ③阅卷序列ans中的数据由字母与数字构成,字母表示阅卷教师编号,数字代表分数,如A7代表阅卷教师A批改分数为7分

    ④为了保证教师阅卷严宽尺度一致,每一位教师具备一次回评功能,当输入A-1时表示A教师进行回评,按照阅卷先后顺序,先回评的是A教师最后阅到的试题;当输入A-2时退出回评序列,继续批阅回评前的后一道试题。-1到-2序列中间不会出现其他教师的批改记录。

    ⑤回评过程中若此教师发现本人此题批阅记录因重评被遗弃,或已经评分完成,则此次记录无效阅卷过程与示例数据如下:

    1. (1) 若已知 n=5,阅卷序列 ans 为['C2', 'B5', 'C8', 'B3', 'A6', 'B-1', 'B5', 'B4', 'B-2','B3', 'A5', 'C5', 'B7', 'A5', 'A6', 'A6'],则阅卷完成后第四题的分数为
    2. (2) 若已知n=3,小明在设计程序之前,为了尽可能保证能测试上述阅卷规则是否都已经完成,设计了几组测试数据,则下述测试数据中最合适的是(   )(单选,填字母)
      A . ['B4', 'B6', 'B8', 'A3', 'C6', 'B5', 'B6'] B . ['B4', 'B6', 'B4', 'A3', 'C6', 'B5'] C . ['B4', 'B6', 'B8', 'B-1', 'B6', 'B-2', 'A3', 'C6', 'B5', 'B6'] D . ['B4', 'B6', 'B8', 'A4', 'B-1', 'B6', 'B3', 'B3', 'B-2', 'A3', 'C6']
    3. (3) 实现评分结果输出的 Python 程序如下,请在划线处填写合适代码。

      #读取试题数量n,并将阅卷序列存入变量ans,代码略

      a=[[i,"","",i+1]
      for i in range(0,n)]

      okinfo=[0]*n

      a[n-1][3]=0

      pre,head=n-1,0

      flag=True

      pas=[ ]

      pashead = {"A":-1,"B":-1,"C":-1}

      print("ans:",ans)

      p=0

      while ok<n:

          if ans[p][1]!="-":

              if flag:

                  if okinfo[head]==1:

                      head=a[head][3]

                      continue

                  a[head][2]+=ans[p][0]

                  if len(a[head][2])==1:

                      a[head][1]=ans[p][1:]

                  else:

                      if abs(int(a[head][1][-1])-int(ans[p][1]))<=1:

                          

                          okinfo[head]=1

                          ok+=1

                      else:

                          pre=head

                      a[head][1]+=ans[p][1]

                  pas.append([head,len(a[head][1]),pashead[ans[p][0]]])

                  pashead[ans[p][0]]=len(pas)-1

                  print("第"+str(head+1)+"题:",ans[p][1],"阅卷老师",ans[p][0])

                  head=a[head][3]

              else:      #缩进与 if flag 对齐

                  top=pashead[ans[p][0]]

                  num=pas[top][0]

                  if okinfo[num]!=1 and (len(a[num][1])-pas[top][1])<=1:    #若有必要修改

                      if len(a[num][1])!=1:

                          #修改 a[num][1]的批改记录,代码略

                          if abs(int(a[num][1][-1])-int(a[num][1][-2]))<=1:

                              

                              ok+=1

                      else:

                          a[num][1]=ans[p][1]

                      print("第"+str(num+1)+"题:",ans[p][1],"阅卷老师",ans[p][0])

                  pashead[ans[p][0]]=pas[pashead[ans[p][0]]][2]

          elif ans[p][1:]=="-2":

              flag=True

          elif ans[p][1:]=="-1":

              flag=False

          p+=1

      #输出结果(代码略)

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