a = [ 6 , 12 , 9 , 20 , 8 , 11 , 4 ]
for j in range( 1 , len( a ) ) :
if a[ j ] < a[ j - 1 ] :
a[ j ] = a[ j ] + a[ j - 1 ] ; a[ j - 1 ] = a[ j ] - a[ j - 1 ] ; a[ j ] = a[ j ] - a[ j - 1 ]
执行该段程序后,列表a的值是( )
max1=max2=0
for i in range(len(1st)):
if lst[i]>max1:
⑴
⑵
elif lst[i]>max2:
⑶
print("最大值是:"+str(max1)+",次大值是:"+str(max2))
上述程序段中划线处可选语句为:
①max1=1st[i] ② max1 = max2 ③max2 = max1max2 =1st[i]
则(1)、(2)、(3)处语句依次可为( )
i = 0: j = 1
Do While j <= 5
If a(j) <> 0 Then i = i + 1: a(i) = a(j)
j = j + 1
Loop
For j = i + 1 To 5
a(j) = 0
Next j
数组元素a(1)到a(5)的值依次为“0,20,0,4,31”,执行该程序段后,a(1)~a(6)各元素的值依次为( )
编写程序分析数据,找出所有波峰,按波峰长度降序排序(若波峰长度相同,则按开始下标升序),并输出波峰长度和开始到结束元素下标;若不存在,则输出“不存在波峰”,运行结果如图所示。
请回答下列问题:
#读取待处理数据,保存在数组 d 中,并显示输出,代码略
mt,i,n=[],1,len(d)
while i<n:
while i<n and d[i]<=d[i-1]: #A
i+=1
st=i-1
while i<n and d[i]>d[i-1]:
if:
continue #跳出本轮循环,然后继续进行下一轮循环
while i<n and d[i]<d[i-1]:
ln=i-st
if len(mt)==0:
mt.append([ln,st,-1]) #为 mt 追加一个列表元素
head=0;q=head
else:
while p!=-1 and :
q=p
p=mt[p][2]
if p==head:
mt.append([ln,st,head])
head=len(mt)-1
mt.append([ln,st,p])
print("不存在波峰")
print("输出结果(长度:开始下标~结束下标):")
p=head
while p!=-1:
print(mt[p][0],":",mt[p][1]," ~",mt[p][0]+mt[p][1]-1)
p=mt[q][2]
p =mt[q][2]
import random
def mk(num) :
x= [0]*num #创建列表 x= [0,0,……,0],其中 0 的个数是 num
x[0]=random.randint(5,10) #randint(a,b)返回[a,b]区间内的一个随机整数
for i in range(1,num) :
return x
m=n=5
a=mk(m)
b=mk(n)
print("原始数据序列 a 为:",a)
print("原始数据序列 b 为:",b)
①使用语句 a= mk(5)调用函数,加框处语句的执行次数是 (填写阿拉伯数字) 。
②执行上述代码后,关于输出的列表a、b 中的数据,下列说法正确的是 (单选,填字母: A .相同 / B .不相同 / C .可能相同)
b[0]
b[1]
b[2]
b[3]
b[4]
10
11
15
16
17
为了使合并后的数据保存在列表a 中,现对列表 a 扩充 n 个元素“-1”,扩充后状态如下:
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
a[9]
7
9
14
19
-1
变量i赋值为0,指向列表b的首数据,变量p赋值为0,指向列表a的首数据,变量tot指向列表a的最后一个有效数据(如图所示) 。
合并的具体算法如下:
Ⅰ.如果 a [p]= – 1 ,则直接将 b[i]存储到 a [p]中,同时 tot 值增加 1;
Ⅱ.如果 a [p]>b[i] ,则整体将 a [p] ,… ,a [tot]向右移动一个位置,然后将 b[i]存储到空出的位置, 同时 tot 值增加 1。
Ⅲ. p 值增加 1;
小强编写的合并代码如下,请在划线处填入合适代码。
#将列表a 的数据个数存入m,列表b 的数据个数存入 n,代码略
#对列表 a 扩充 n 个-1,代码略
p=0
tot=
i=0
while : #将列表b 中元素 b[i]逐个插入到列表 a 中
if a[p]==-1 :
a[p]=b[i]
tot+=1
elif a[p]>b[i] :
for j in range(tot,p-1,-1): #整体将 a[p], … ,a[tot]向右移动一个位置
a[j+1]=a[j]
p+=1
print("合并后的数据序列为:",a)
#从数据库中读取各订单所在区域,如a=[‘A’,‘B’,‘H’,‘F’, … …]
qyn=8
#区域数量
psryn=30
#配送人员数量
rs=round(len(a)/psryn)
b=[]
for i in range(qyn):
c=chr(i+65) # “A”的Ascii码值是65
b.append([c,0,0]) #生成二维列表b=[[‘A’,0,0],[‘B’,0,0]…
…]
for i in a:
#统计各区域订单数量
s=0
If b[i][1]%rs!=0:
b[i][2]+=1
s+=b[i][2]
k=s-psryn
while k>0:
for j in range(qyn-1,i,-1):
:
b[j-1],b[j]=b[j],b[j-1]
if b[i][2]>1:
b[i][2]-=1
k-=1