试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:普通

浙江省五校2021届高三下学期信息技术5月联考试卷

果园里有n堆果子放在地上,现要将所有果子合并成一堆。每次只能合并两堆果子,消耗的体力等于两堆果子的重量之和。显然,n堆果子需要经过n-1次合并。合并果子的过程中总共消耗的体力等于每次合并所耗体力之和。为了尽可能地节省体力,我们每次都选择重量最小两堆进行合并。例如,有三堆果子,重量依次为1,2,9。可以先将1、2堆合并,新堆重量为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,重量为12,耗费体力为12。所以总共耗费体力为3+12=15。可以证明15为最小的体力耗费值。

编写VB程序,实现上述合并功能。运行程序时,将n堆果子的重量从数据库读入到a数组。单击“合并”按钮Command1后,在文本框Text1中输出最小的体力耗费值。请回答下列问题:

(1)、若要清空文本框Text1中的内容,能实现该功能的语句是(单选,填字母:A .Text1.Caption=“”/B .Text1.Clear/C .Text1.Text=“”)。
(2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

Private Sub Form_ Load( )

‘将n堆果子的重量从数据库导入到数组a,代码略。

End Sub

Private Sub Command1_Click( )

    Dim f As Boolean

    Dim last As Integer

    Dim a(1 To n) As Integer

    i= 1

    Do While i<n And Not f

        f=True

        For j=n To i+1 Step-1

            If a(j)<a(j- 1) Then

                t= a(j): a(j)=a(j- 1): a(j-1)=t

                last= j

                f= False

            End If

        Next j

       

    Loop

    For i= 1 To n-2

        tmp=a(i)+a(i+1)

        j=

        Do While a(j)< tmp

            a(j-1)= a(j)

            j=j+1

            If j=n+ 1 Then Exit Do

        Loop

       

        Min=Min+tmp

    Next i

   

    Text1.Text = Min

End Sub

(3)、程序中加框处代码有错,请改正。
举一反三
返回首页

试题篮