1. 在“三位一体”招生考试中学考成绩占据一定的比例。表1为某高校学考等级成绩折算表(学考等级分为A、B、C、D、E ),少于5A计0分;表2为某学生的学考等级成绩单。

表1  某高校学考等级成绩折算表

学业水平考试等级

A

B

C

D

成绩折算(分)

10

8

6

4

表2  某学生学考等级成绩单

科目

语文

数学

英语

物理

化学

生物

政治

历史

地理

技术

等级

A

A

A

A

A

B

A

C

B

A

编写Python程序实现学考成绩总分折算。表2学生的折合分数如图所示。

(1) 若输入的学生学考等级为“AAAABBBBCC”,则折合分数为分。
(2) 实现上述功能的Python程序如下,请在划线处填入合适的代码。

string=input("请输入各学科学考等级:")

num=0

scores=0

for t in :

    if t=="A":

       

        scores+=10

    elif t=="B":

        scores+=8

    elif t=="C":

        scores+=6

                   #③

        scores+=4

if num<5:

    print("折合分数为0分")

else:

    print("折合分数为:",scores)

(3) 若将③加框处代码改为“else:”,对程序运行结果是否有影响?(选填文字:是/否);并说明理由
【考点】
分支结构语句及程序实现; 循环结构语句及程序实现;
【答案】

您现在未登录,无法查看试题答案与解析。 登录
综合题 困难
能力提升
真题演练
换一批
1. 社团成员依据前期收集并整理后的数据,分析并统计食堂各菜品间的关联次数(关联次数指的是不同菜品同时出现在同一订单内的次数),编写Python程序实现:输入菜品名称,输出与其关联次数排名前三(不考虑并列情况)的菜品名称。提出合理的套餐搭配建议。程序运行结果如1图所示。

1 图

(1) 如2图所示,“序号”列中1~12为4位学生的订单信息,其中与“糖醋排骨”关联次数最多的菜品名称是,关联次数是

2 图

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

import pandas as pd

df=pd.read_excel ("数据集 A.xlsx")

cp=["小炒时蔬","红烧牛肉","黄焖鸡","红烧肉","粉蒸肉","梅菜扣肉","糖醋排骨 ","烧圆子","小炒肉","水煮肉片","香菇炒肉","鱼香肉丝","烤鸭","香酥鸭","烧 带鱼","炸小鱼","大锅菜","番茄鸡蛋","麻婆豆腐","凉拌黄瓜"]

cpdic={"小炒时蔬":0,"红烧牛肉":1,"黄焖鸡":2,"红烧肉":3,"粉蒸肉":4,"梅菜扣 肉":5,"糖醋排骨":6,"烧圆子":7,"小炒肉":8,"水煮肉片":9,"香菇炒肉":10,"鱼香 肉丝":11,"烤鸭":12,"香酥鸭":13,"烧带鱼":14,"炸小鱼":15,"大锅菜":16,"番茄 鸡蛋":17,"麻婆豆腐":18,"凉拌黄瓜":19}

a=[]

for i in df.values:

    # 列表 a 分别存储订单编号、菜品 id、菜品名称

    a.append([i[2],i[4],i[5]])

n,ncp=len(a),len(cp)

num=[0]*ncp

j=0

cpmc=input("请输入菜品:")

key=cpdic[cpmc]         # 通过菜品名称获取菜品 id

while j<n:

    if j==0 or a[j-1][0]!=a[j][0]:

        start=j

    if a[j][1]==key:

        while a[j][0]==a[start][0]:

            if start!=j:

                num[ ]+=1

            start+=1

            if start==n:

                break

              # 改错

    j+=1

for i in range(3):    # 输出三个套餐搭配建议

    for j in range(ncp-1,i,-1):

        if  :

            num[j-1],num[j]=num[j],num[j-1]

            cp[j-1],cp[j]=cp[j],cp[j-1]

print("建议套餐中包含",cpmc,"与",cp[i],",两个菜品关联次数为",num[i])

(3) 程序中加框处代码有错,请改正。
综合题 普通
3. 小明使用Python编写了某答题卡中单项选择题的判分程序,该单选题每题2分。扫描答题卡获取选项填涂信息,输入标准答案,程序自动判断并输出分数。具体方法为:一个选项是否被填涂,可以从判断一个像素的颜色开始,像素的填涂情况是通过RGB的值来判断,灰度值低于132的表示该点被填涂;一个信息点64%的像素被填涂,则认为该区域已填涂,返回值为“1”。区域未填涂时返回值为“0”;各选项的编码为:A→“1000”,B→“0100”,C→“0010”,D→“0001”;输入标准答案,程序进行对比并返回结果。答题卡相关信息如图所示。

(1) 某题的标准答案为“C”,该题填涂情况为“0100”,则分数为 分
(2) 实现上述功能的程序如下,请在划线处填入合适的代码。

from PIL import Image

#输入起始点坐标(xs,ys),信息点宽度高度(fw, fh),间隔宽度高度(sw ,sh),代码略

num = 5                              #判分个数

def bw_judge(R, G, B):      # bw_judge用于判断一个像素的填涂情况

代码略

def fill_judge(x, y):            # fill_judge用于判断信息点的填涂情况

    count = 0

    for i in range(x, x + fw + 1):

        for j in range(y, y + fh + 1):

            R, G, B = pixels[i, j]

            if bw_judge(R, G, B) = = True:

                count = count + 1

    if count >=:

        return True

total_width = fw+ sw

total_height = fh + sh

image = Image.open("t2.bmp")

pixels = image.load()

number = ""

bz=[""]*num

df=0

bzd=input('请输入标准答案:')

da={"A":"1000","B":"0100","C":"0010","D":"0001"}

for i in range(len(bzd)):

    bz[i]=

    for row in range(num):

        for col in range(4):

           

            y = ys + total_height * row

            if fill_judge(x, y) == True :

                number = number + '1'

            else:

                number = number + '0'

        if number = = bz[row]:

            df+=2

            number=""

print("得分为: ",df)

#分数判定

综合题 困难