⑴将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组a(1)、a(2)、…、a(La)中,将另一个整数各位上的数字按照从低位到高位的顺序依次存入数组b(1)、b(2)、…、b(Lb)中。其中,La表示第一个整数的位数,Lb表示第二个整数的位数;
⑵按照从低位到高位的顺序,将两个整数各位数值进行逐位乘法计算(第一轮先让b(1)依次乘a(1)、a(2)…a(La),第二轮再让b(2)依次乘a(1)、a(2)、…、a(La),依次进行),每位的乘法结果也按照低位到高位的顺序依次存入数组ans(1)、ans(2)、ans(3)中;
⑶对数组ans中的计算结果进行从低位到高位的进位处理;
⑷统计数组ans中实际计算结果的有效数值位数,并将位数值存入变量length;
⑸按照高位到低位的顺序输出数组ans中的计算结果。
小明按照上述方法设计了一个两数进行高精度乘法计算的VB程序,功能如下:在文本框Text1和Text2中依次输入两个整数,单击“计算”按钮Command1,程序进行高精度乘法计算,并在标签Label4中输出计算结果。
实现上述功能的VB程序如下:
Dim a(1 To 30) As Integer, b(1 To 30) As Integer
Dim ans(1 To 60) As Integer
Dim La As Integer, Lb As Integer
Dim length As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer, t As Integer, temp As String
‘将两个乘数(正整数)各数位上的数字按照上述算法依次存入数组a和b,每个正整数位数分别保存到变量La和Lb;将保存结果的数组ans(i)值初始化为零(该部分程序代码略)
For i = 1 To Lb ‘按低位到高位的顺序进行列竖式的逐位乘法
For j = 1 To La
ans(i + j - 1) = + b(i) * a(j)
Next j
Next i
For i = 1 To La + Lb ‘对计算结果进行进位处理
ans(i+1) =ans(i +1)+ ans(i) \ 10
ans(i) =
Next i
length = La + Lb ‘最多位数
Do While ans (length) = 0 ‘计算实际位数
length = length - 1
Loop
For i =To 1 Step -1
Label4.Caption = Label4.Caption + Str(ans(i))
Next i
End Sub
Dim a(1 To 100) As Integer
Dim b(1 To 100) As Integer
Dim c As Integer
a(1) = 0: a(2) = 2: b(1) = 1: b(2) = 2: c = 0
For i = 2 To 6
a(i + 1) = 2 * a(i) - a(i - 1)
b(i + 1) = b(i) ^ 2 / b(i - 1)
c = c + a(i + 1) + b(i + 1)
Next i
Label1.Caption = Str(c)
该程序运行后,Label1中显示的内容是( )
Dim a(1 To 5) As Integer
i =1: n=5
Randomize
Do While i<=n
x= Int(Rnd*9) +1
If x Mod 3=0 Then
a(i) =x: i=i+1
Else
a(n)=x: n=n-1
End If
Loop
数组元素的初值均为0,执行该程序段后,a(1)至a(5)的值不可能是( )
例如有这样三组数据:
a数组{3,4,5,7,15}
b数组{10,12,14,16,17}
c数组{20,21,23,24,37,40}寻找技巧步骤图所下所示:
此时,组合中最小的数15已是a数组的最后一个元素,所以最佳组合为15,16,20,最小距离为5。
Private Sub Ce_Click()
Dim a(1 To 100) As Integer, b(1 To 100) As Integer, c(1 To 100) As Integer
Dim s1 As String, ch As String, flag As Boolean
Dim i As Integer, j As Integer, k As Integer, m As Integer
Dim k1 As Integer, k2 As Integer, k3 As Integer
Dim md As Integer, cd As Integer
‘获取数组元素值分别存入三个数组中,其中b和c数组的存储过程略
s1 = Text1. Text
k1=0: flag=True
For i = 1 To Len(s1)
ch = Mid(s1, i, 1)
If ch <> ",”Then
①
a(k1) = a(k1) * 10 + Val (ch)
flag = False
Else
flag = True
End If
Next i
i=1: j=1: k=1: md=32767
Do While i<=k1 And j<=k2 And k<=k3 ‘k2,k3变量功能同k1
②
If cd<nd Then md=cd
m= min(a(i), b(j),c(k))
If m= a(i) Then
i=i+1
ElseIf m = b(j) Then
j=j+1
Else
③
End If
Loop
Label4. Caption = Label4. Caption + Str (md)
End Sub
Function min(x As Integer, y As Integer, z As Integer) As Integer
If x<y Then min=x Else min=y
If min>z Then min=z
End Function
Function max(x As Integer, y As Integer, z As Integer) As Integer
If x>y Then max=x Else max=y
If max<z Then max=z
End Function
①②③

图 a
小李编写VB程序实现上述功能:在列表框List1中按货物顺序显示其重量和货架号,在文本框Text1中输入机器人送货趟数,单击“结果”按钮Command1后,标签Label3和Label4中分别显示要求机器人可承受的最大载重最小值和送货总行程。程序运行界面如图b所示。

图 b
请回答下列问题:
Const num = 8 '货物数量
Const shelf = 10 '货架数量,1-9号货架可供存储货物,第10号货架用作机器人装货点
Dim g(1 To num) As Integer '各货物的重量
Dim s(1 To num) As Integer '各货物的货架号
Private Sub Form_Load()
'从数据库中读入num件物品的重量、货架号,分别存储在数组g、s中
'将各物品数据显示在list1中,代码略。
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, n As Integer, max As Integer, total As Integer
Dim head As Integer, tail As Integer, dis As Integer, part As Integer
total = g(1)
For i = 2 To num
If g(i) > max Then max = g(i)
total = total + g(i)
Next i
n = 0
For i = max To total
part = 0: n = 0: head = 1: dis = 0
For j = 1 To num
part = part + g(j)
If part > i Then
n = n + 1: j = j - 1: tail = j
dis = dis + tran(head, tail)
part = 0: head = tail + 1
End If
Next j
If part > 0 Then
n = n + 1
dis = dis + tran(head, tail)
End If
If n <= Val(Text1.Text) Then Exit For
Next i
Label3.Caption = "机器人可承受的最大载量至少为:" + Str(i)
Label4.Caption = "机器人完成各趟任务的总行程为:" + Str(dis)
End Sub
Function tran(p As Integer, q As Integer) As Integer '计算机器人每趟按装货倒序配送并回到A 处的行程
Dim temp As Integer, t1 As Integer, t2 As Integer, k As Integer
temp = 0: t2 = shelf
For i = q To p Step -1
t1 = t2: t2 = s(i)
k =
If k > (shelf + 1) \ 2 Then k = shelf - k
temp = temp + k
Next i
If t2 <= shelf \ 2 Then temp = temp + t2 Else temp = temp + shelf - t2
tran = temp
End Function
s=Text1.Text
ans=0
For i=1 To Len(s)
t=Mid(s,i,1)
If t>="a" And t<="z" Then
c=c+1
Else
End If
Next i
Text2.Text=Str(ans)
填空处的代码可由以下部分组成:
①c=0
②c=1
③If c>ans Then ans=c
④If c<ans Then c=ans
⑤ans=ans+1
正确的代码顺序是( )
For i=1 To 6
a(i)=Int(Rnd*10)+1
Next i
For i=1 To 5
If i Mod 2=1 And a(i)>a(i+1)Then
T=a(i):a(i)=a(i+1):a(i+1)=t
Else
a(i)=a(i)+1
End If
Next i
执行该程序段后,a(1)~a(6)各元素可能的值是( )
最佳方案为初始时所有人聚集在2号房间,此时花费的最小能量为7×0+8×1+6×2+4×3+4×4=48。
实现上述功能的VB代码如下,但加框处代码有误,请改正。
Dim a(1 To 100)As Integer ‘依次存储编号为1到100的房间的最多居住人数
Private Sub Form_Load( )
‘产生n的值
‘本过程从数据库中依次读取编号为1到n的房间的最多居住人数,并存储在数组a中
‘代码略
End Sub
Private Sub Command1_Click( )
Dim i As Integer,j As Integer,w As Integer
Dim t As Long,ans As Long
ans=32767
For i=1To n
t=0
For j=0 To n-1
‘①
If w=0 Then w=n
‘②
Next j
If t<ans Then ans=t
Next i
Text2.Text=Str(ans)
End Sub
以上程序段运行时,为了实现上述功能,加框处代码应改正为:①;②。
Dim a(1 To 5) As Integer
a(1) = 1
For i = 2 To 5
a(i) = Int(Rnd * 5) + 1
If a(i) Mod 2 = 0 Then
a(i) = a(i) + i
Else
a(i) = a(i) + a(i - 1)
End If
Next i
a(1)~a(5)的值不可能的是( )
Dim c(-10 To 10) As Integer, a(1 To 10) As Integer, b(1 To 10) As Integer
a(1)=58:a(2)=88:a(3)=66:a(4)=60:a(5)=78
a(6)=32:a(7)=54:a(8)=75:a(9)=99:a(10)=69
Label1. Caption =
For i=1 To 9
b(i)=a(i+1)-a(i)
c(b(i)\10)=c(b(i)\10)+1
Next i
For i=0 To 10
If c(i) > 0 Then Label1.Caption = Label1.Caption + Str(c(i))
Next i
已知数组c各元素初值为0,执行该程序段,标签Label1上显示的内容是( )
程序描述:计算两个浮点数a和b的相除的余数,a和b都是正数。这里余数(r)的定义是:a = k * b + r,其中k是整数, 0 <= r < b。代码如下:
a= ① (input("请输入:"))
b= ① (input("请输入:"))
k= ②
r= ③
print(r)
①处的语句是,②处的语句是,③处的语句是。
①A.int B.float C.a%b D.a/b
②A.a**b B.a//b C.a%b D.a/b
③A.a//b B.a-kb C.a-k*b D.a+kb
For i=1 To 6
If i Mod 2<>0 Then
If a(i) Mod 10>5 Then
a(i)=a(i) \ 10
Else
a(i)=a(i) Mod 10
End If
Else
a(i)=a(i- 1)+1
End If
Next i
程序运行后a(1)到a(6)的值分别是2,3,4,5,0,1,则a(1)到a(6)各元素的初始值可能是( )
a=[]
b=[1,5,4,1,5]
c={1:3,2:4,3:5,4:1,5:2}
for i in b:
if i not in a:
a.append(c[i])
print(a)
运行该程序段后,列表a的值是( )