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