试题

试题 试卷

logo

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

浙江省衢州、丽水、湖州三地市2023年11月高三上学期信息技术教学质量检测试卷

某快递驿站有A、B两类货架,收到的包裹重量小于等于10存放于A货架,其余存放于B货架。编写程序模拟生成取件码和顾客的取件过程,取件码是根据当前已处理的包裹数量生成,如A-0001表示当天第一个处理的包裹存放在A货架,B-0003表示当天第三个处理的包裹存放在B货架。取件码与顾客手机号关联,程序根据输入的手机号显示其所有包裹的取件码,并允许顾客一次性提取或者部分提取。程序的部分运行界面如图a和图b所示。

(1)、当前已处理的包裹取件码是 A-0158,若下一个包裹重量是 12,其取件码为
(2)、定义函数save(pnum,code),参数pnum为手机号,code为取件码。函数功能是将一条包裹信息存储到列表goods和列表dic中。如图a的包裹数据,手机号“180****1215”在两个列表中的数据分别为goods[4]=["B-0005",-1]、goods[9]=["A-0010",4]和 dic[2]=["180****1215",9,2]。

①若调用该函数继续存储手机号“180****1215 ”的包裹, 其取件码是“B-0011 ”,则对应 dic[2]的值变为["180****1215",,]。

②函数 save 代码如下,程序中加框处代码有错,请改正。

def save(pnum,code):

    goods.append([code,-1])

    n=len(goods)-1

    print(n,"号包裹的手机号:",pnum,"取件码:",code)

    num=search(dic,pnum)    #函数返回手机号 pnum 在 dic 中的索引号,未找到返回-1

    if num==-1:

        dic.append([pnum,n,1])             #新增一个包裹信息

    else:

        goods[n][1]=dic[num][1]

        dic[num][1]=n

        

(3)、实现取件功能的部分 Python 程序如下,请在划线处填入合适的代码。

x=input("请输入您的手机号:")

num=search(dic,x)

if num!=-1:

    #输出手机号为 x 的当前所有包裹信息,代码略

    op=int(input("输入 0 取全部包裹,输入 1 取部分包裹:"))

    if op==0:

        print("您的包裹已经取完! ")

        del dic[num]  #删除 dic 中索引为 num 的元素

    else:

        order=input("请输入本次的取件码,只输入#表示结束取件:")

        while order!="#":

           

            p,q=head,head

            while goods[q][0]!=order:

            p=q

           

        if p==head:

            dic[num][1]=goods[q][1]

        else:

            goods[p][1]=goods[q][1]

        dic[num][2]-=1

        if dic[num][2]==0:

            print("您的包裹已经取完!")

            break

        #输出手机号为 x 的当前所有包裹信息,代码略

        order=input("请输入本次的取件码, 只输入#表示结束取件:")

else:

    print("查无此号,请检查后重新输入!")

举一反三
返回首页

试题篮