试题

试题 试卷

logo

题型:综合题 题类: 难易度:困难

浙江省环大罗山联盟2023-2024学年高二下学期期中考试信息技术试题

 某学生编写了一个程序来模拟答题卡中单项选择题的判分过程。实现方法是:使用“0”和“1”的组合来分别编码ABCD的填涂情况,具体方式如图a所示,例如,填涂结果“A”用“1000”编码。12道选择题以图b的方式进行排列。

图 a

图 b

图 c

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

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

(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}分")

举一反三
返回首页

试题篮