测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A32439. 知识竞赛活动学校开展“学宪法"知识竞赛活动,其中有一项任务为完成“学宪法”答卷记得分。答卷含有 5 个客观题和 5 个主观题,其中客观题 1-4 题为单选题,第 5题为多选题,单选题每题分值为 2 分;多选题全对得 2 分,漏选、少选得 1 分, 多选错选不得分。为了提高改卷效率,学校信息技术组的老师设计并编写了一个 Python 小程序,输入客观题正确答案和答卷上的答案,即可计算得分。实现上述…

填空题 困难

题目描述

知识竞赛活动

学校开展“学宪法"知识竞赛活动,其中有一项任务为完成“学宪法”答卷记得分。答卷含有 5 个客观题和 5 个主观题,其中客观题 1-4 题为单选题,第 5题为多选题,单选题每题分值为 2 分;多选题全对得 2 分,漏选、少选得 1 分, 多选错选不得分。为了提高改卷效率,学校信息技术组的老师设计并编写了一个 Python 小程序,输入客观题正确答案和答卷上的答案,即可计算得分。

实现上述功能的 Python 程序如下,运行界面如图所示。

请输入客观题(5 道)标准答案:AABDACD

请输入客观题(5 道)题学生答案:ABBDAC

该学生客观题得分为:7 分

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

def judge(x,y):

    f=True

    i=0

    while i<len(y):

        if y[i] not in x:

            ____①____

            break

        i+=1

    return f

num=0

key=input("请输入客观题(5 道)标准答案:")

s=input("请输入客观题(5 道)题学生答案:")

for j in range(5):

    if j==4:

        if key[j:len(key)]==s[j:len(s)]:

            num+=2

        elif ____②____ :

            num+=1

    else:

        if s[j]==key[j]:

            ____③____

print("该学生客观题得分为:"+ ____④____ +"分")

参考答案

def judge(x,y): f=True i=0 while i<len(y): if y[i] not in x: f=False break i+=1 return f num=0 key=input("请输入客观题(5 道)标准答案:") s=input("请输入客观题(5 道)题学生答案:") for j in range(5): if j==4: if key[j:len(key)]==s[j:len(s)]: num+=2 elif judge(key[j:len(key)],s[j:len(s)]): num+=1 else: if s[j]==key[j]: num+=2 print("该学生客观题得分为:"+str(num) +"分")

答案解析

评分标准:

(1)f=False 或等效答案;(3分)

(2)judge(key[j:len(key)],s[j:len(s)])或等效答案;(3分)

(3)num+=2或等效答案;(2分)

(4)str(num)或等效答案。(2分)

说明:

①judge 函数判断多选题的漏选情况,y[i] not in x:说明错选,直接返回 false。同时可以判断,x是标准答案,y是学生答案。

②j==4 说明该分支处理多选题,key[j:en(key)]==s[j:len(s)]说明多选题全队得 2分,所以②处分支表示漏选的情况,得1分,将标准答案和学生答案作为参数传给自定义函数 judge 进行判断。

③该分支下,j<=4,说明在处理单选题,标准答案 key[j]与学生答案 s[]一致说明正确,得两分。

④得分是 num,与字符串拼接,因此答案是 str(num)。

上一题 下一题