试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省之江教育评价2020-2021学年高二下学期信息技术期中联考试卷

一名商人在A地采购了n吨大米(n<=150),需要船只运送到B地。现在码头上停靠着10艘船,载重量在15到30吨之间且均不相同,同时运费单价(单位:元/吨)也存在差异。为了找出运费总数最少的方案,该商人先将10艘船的运费单价从小到大排序,若船只运费单价相同,则按船只载重量大到小排序。上述步骤完成后,将n吨大米依次装入排好序的船只中,若最后一只船装不满,则按实际装运大米的重量付运费。程序运行界面如16题图所示:单击“排序”按钮后,船只信息按照要求排序并在列表框List1中输出;在文本框Text1中输入大米总数n吨,单击“计算”按钮,将在列表框List2中列出所选船只编号,并在文本框Text2中显示运费总数。

(1)、若图中7号船的载重量由“28”改为“22”,现有60吨大米需要运送,则该商人应选择的船只编号为 (若有多个编号,用“,”隔开)
(2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

Dim yf(1 To 10) As Integer, v(1 To 10) As Integer, b(1 To 10) As Integer

Private Sub Command1_Click()

    Dim n As Integer, i As Integer, j As Integer, t As Integer

    List1.AddItem "船只编号" + " " + "载重量" + " " + "运费单价" List2.AddItem "船只编号"

    For i = 1 To 10     '对船只进行编号

        b(i) = i

    Next i

    '随机生成10艘船的运费单价,数值在100到200之间,代码略

    For i = 1 To 10    '随机生成10艘船载重量,载重量均不相同

        v(i) = 15 + Int(Rnd() * 16)

        For j = 1 To i - 1

            If v(i) = v(j) Then : Exit For

        Next j

    Next i

    For i = 1 To 9

        For j = 10 To i + 1 Step -1

            If Then

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

            End If

        Next j

    Next i

    '在list1中输出10艘船的编号、载重量、运费单价,代码略

End Sub

Private Sub Command2_Click()

    Dim n As Integer, k As Integer

    Dim sum As Long

    n = Val(Text1.Text): sum = 0 k = 1

    Do While n > 0

        If n >= v(b(k)) Then

           

        Else

            sum = sum + n * yf(b(k))

        End If

        List2.AddItem Str(b(k)) n = n - v(b(k))

        k = k + 1

    Loop

    Text2.Text = Str(sum)

End Sub

举一反三
返回首页

试题篮