当前位置: 高中信息技术 / 综合题
  • 1. (2024高二下·浙江期中)  某学生编写了一个程序来模拟答题卡中单项选择题的判分过程。实现方法是:使用“0”和“1”的组合来分别编码ABCD的填涂情况,具体方式如图a所示,例如,填涂结果“A”用“1000”编码。12道选择题以图b的方式进行排列。

    图 a

    图 b

    图 c

    编写程序:对给定的标准答案,生成并输出每道题的填涂信息,对应的选项、分值(答对得2分,答错或不答得0分),以及最后的总得分,输出结果如图c所示。请回答下列问题:

    1. (1) 若生成的填涂信息如下图所示,输入的标准答案为“ABCDCADCABAD”,则获得的总分为(填数值)。

    2. (2) 实现上述功能的程序如下,请在划线处填入合适的代码。

      import random

      n = 12 # 定义题数

      da = "ABCDDABDAACA" # 存储标准答案

      def check(s, w, da): # 判断得分

          if :

              return 2

          else:

              return 0

      a=[[] for i in range(n)] # 存储每题 ABCD 选项的编码值

      ans = [""] * n # 存储模拟生成的填涂选项

      res = ""

      s=""

      total = 0

      for i in range(n): # 模拟生成每题选项对应的 4 位编码

          t = random.randint(0, 4) # 随机生成第 i+1 题的填涂情况

          for j in range(4):

              if :

                  a[i].append(1)

              else:

                  a[i].append(0)

      print("填涂卡情况:")

      num=1

      for i in range(n): # 打印填涂卡情况

          s = s + str(a[num-1])

          for j in range(4):

              if a[num-1][j] == 1:

                  

          res = res + str(num) + "" + s + "

          s = ""

          

          if (i+1) % 3 == 0 :

              print(res)

              res = ""

              num-=11

      print("题号  选项  分值")

      for i in range(n): # 输出每题的答案和得分

          if ans[i] != " " :

              df = check(ans[i], i, da)

              print(f"{i+1} {ans[i]} {df}")  #按格式要求输出

              total += df

          else:

              df = 0

              print(f"{i+1} 未填涂    {df}")

      print(f"该学生选择题得分:{total}分")

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