题目

有n件重量各不相同的物品,从中挑选2件物品使其重量和等于k。编写了一个VB程序实现上述功能,运行程序,从数据库中读取n件物品的编号和重量并在列表框List1中显示,在文本框Text1中输入重量k后,单击“挑选”按钮Command1,在列表框List2中按重量从小到大显示各物品的编号和重量,在列表框List3中显示所有符合条件的物品编号;若未找到,则输出“未找到这样的组合”。程序运行界面如图所示。 (1) 程序运行时,按钮Command1上显示“挑选”,是通过设置该对象的属性实现的(单选,填字母:A.Text /B.Caption /C.Font)。 (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。 Const n = 10 Dim num(1 To n) As Integer, w(1 To n) As Integer Private Sub Form_Load()   '本过程从数据库中读入n件物品的编号和重量分别存数组num,w中,并在List1中显示,代码略。 End Sub Private Sub Command1_Click()   Dim i As Integer, j As Integer   Dim t As Integer, f As Boolean   Dim p As Integer, q As Integer   Dim k As Integer, flag As Boolean   f = False   i = 1   Do While     f = True     For j = n To i + 1 Step -1       If Then         t = num(j): num(j) = num(j - 1): num(j - 1) = t         t = w(j): w(j) = w(j - 1): w(j - 1) = t         f = False       End If     Next j        Loop   For i = 1 To n     List2.AddItem Str(num(i)) + "  " + Str(w(i))   Next i   k = Val(Text1.Text)   flag = False   p = 1: q = n   Do While      If w(p) + w(q) < k Then       p = p + 1     ElseIf w(p) + w(q) > k Then       q = q - 1     Else       List3.AddItem Str(num(p)) + "和" + Str(num(q))       flag = True       p = p + 1: q = q - 1     End If   Loop   If Not flag Then     List3.AddItem "未找到这样的组合"   End If End Sub (3) 程序加框处的代码有误,请改正。 答案: 【1】B 【1】w(j) < w(j - 1)【2】i = i + 1【3】p < q i <= n - 1 And Not f 或 i <= n - 1 And f = False
信息技术 试题推荐
最近更新