学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
某工厂有一批类型不同、数量不等的货物需要运输,要求尽量把相同类型的货物装在同一辆车中,当任意一种类型的货物不能装满一车时,则不同类型的货物可以合并装车。小王设计了一种装车方案,从载货量最大的车开始,优先从数量最多的货物开始装车,装完一车后继续从剩余数量最多的货物中取货装车。他编写了一个Python程序,模拟货物装车过程。程序运行时从文件中读取货物数据及车辆信息,并按车辆最大载货量的大小依次输出每辆车装载的货物类型,以及剩余货物情况。请回答下列问题。
(1)若货物数据及车辆信息如下表所示
货物类型ABCDE车辆编号C1C2C3
货物数量(件)1550282025最大载货量(件)253540
则车辆C1装载的货物类型依次为______(填货物类型,用逗号分隔)
(2)货物由2个数据项组成:第1个数据项为货物类型,第2个数据项为货物数量,读入到列表a中的数据格式形如:[[“A”,40][“B”,50],[“A”,30],[“C”,20],①…].首先对货物数据进行预处理,将类型相同的货物进行合并,如a=[[“A”,40],[“B”,50],[“A”,30],[“C”,20]],则合并后的数据为[[“A”,70],[“B”,50],[“C”,20]]。编写自定义函数merge(1st),参数1st为货物列表,
Python程序代码如下:

def merge(1st):

i=0;n=len(lst)-l

while i<n:

j=i+1

while j<=n:

if lst[i][0]==lst[j][0]:

lst[i][l]+=lst[j][1]

__

j-=1;n-=1

j+=1

i+=l

return 1st[:n+1]


①请将划线处代码补充完整。
②若1st的值为[[“A”,40],[“B”,50],[“A”,30],[“C”,20]],则程序中1st[i][0]与1st[j][0]比较了______次。
(3)实现模拟货物装车的Python程序代码如下,请在划线处填入合适的代码。
’’’读取货物数据和运输车辆数据,分别存入列表a和列表b中。列表b的每个元素包含2个数据项,分别为车辆编号和最大载货量。列表b数据格式形如:b=[[“Cl”,25],[“C2”,35],[“C3”,40]],代码略’’’
data=merge(a)
#对列表变量data按数量降序排序,对列表b按最大载货量降序排序,代码略
m=len(b)
for i in range(len(data)):

data[i].append(i+1)#为data[i]增加一个元素


data[i][2]=-1
head=0
for i in range(m):

num=0;s=“”

q=head

while q!= -l and num<b[i][1]:

num+=data[q][1]

data[q][1]=0

s+=data[q][0]+”,”

p=q;q=data[q][2]

print(”编号为”,b[i][0],”的车辆装载的货物为:”,s)

if num>b[i][1]:

__

head=p

else:

head=q

q=head

if q!=-l:

while data[q][2]!= -l and __

q=data[q][2]

if q!=head:

tmp=data[head][2]

data[head][2]=data[q][2]

data[q][2]=head

__

else:

break


if head!=-l:

print(”剩余货物及数量:”)

p=head

while p!=-1:

print(data[p][0],”货物:”,data[p][1])

p=data[p][2]


else:

print(”货物已全部装完!”)

编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交