试题

试题 试卷

logo

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

浙江省嘉兴市2021届高三上学期信息技术12月教学测试技术试卷

老张要准备一道晚宴,需要上n个菜,为了省事他在n个不同的餐厅订好了这些菜。现在他需要尽快取回这些菜,对于每一道菜,有两种取菜方式:

1)让各店的外卖员送货上门,对于第i个菜需要花费a(i)的时间。

2)自己去餐厅取回家,每次出门仅能取回一道菜,对于第i个菜,从出门到回家整个过程需要花费b(i)的时间。

每家餐厅都有各自的外卖员送菜,并且无论老张是否在家,他们都能把菜送到。为了节省时间,能由外类员送的菜尽量由外卖负各自送达,现在需要知道最少花费多少时间能集齐所有的菜。

比如n=4,a(i)=(30,70,40,50),b(1)=(20,10,20,30},那么花费时间少的方案是第一个菜和第三个菜让让外卖员送,第二个菜和第四个菜老张自己取,一共需要40分钟。

设计VB程序计算最少时间,界面如下图

实现上述功能的VB程序如下,回答以下问题:

(1)、根据程序语句判断对象Lab3属于类。

(单选,填字母:A .Form1/B .Label /C .TextBox / D .CommandButton)

(2)、请在划线处填入合适的代码。

Const n=4

Dim a(1 To n) As Integer    'n道菜由每家餐厅外卖员送达耗时

Dim b(1 To n) As Integer    'n道菜自取耗时

Private Sub Form Load)

    '产生外卖送货各道菜耗时,并存储到数组a中,并显示

    '产生自取各道菜耗时,并存储到数组b中,并显示

    '代码略

End Sub

Private Sub Command1_Click()

    Dim i As Integer, max As Integer, ans As Integer

    Dim left As Integer, right As Integer, m As Integer

    For i=1 To n

        If a(i) > max Then       '外卖员送菜的最长时间

    Next i

    left= 1: right = max: ans = max

    Do While left <= right

        m= (left + right) \ 2

        If Then

            ans = m: right=m-1

        Else

            left=m+1

        End If

    Loop

    Lab3. Caption=“最快”+ Str(ans) + “分钟”

End Sub

Private Function check(t As Integer) As Boolean

    Dim total As Integer

    check = False

    For i =1 To n

        If a(i) > t Then

            total ='如果外卖来不及就自己取

        End If

    Next i

  If  Then check = True

End Function

(3)、程序中加框处代码有错,请改正。
举一反三
某仓库货物查询系统,数组id保存货物编号(货物编号已经按照从小到大的顺序保存),数组n保存货物名称,数组c保存货物数量。数组中的数据信息一一对应。该系统提供3种查询方式,查询优先级最高的是按编号查询,其次是按名称查询,最低的是按数量查询(在输入多个查询条件的情况下,只按照优先级高的条件进行查询,其中按数量查询可以查询到所有货物数量小于输入值的结果)并将查询结果在list1中显示。程序界面如图2-1所示。

部分程序代码如下:

Public number As String  '货物编号

Public na As String  '货物名称

Public co As String  '货物数量

Private Sub Command1Click()

Dim flag As Integer  '查询结果标志

number = Text1.Text

na = Text2.Text

co = Text3.Text

If (number = "" And na = "" And co = "") Then MsgBox ("你还没有输入查询条件") ’第一种情况

If number <> ""Then ’第二种情况

flag = searchnum(1, n)  'n 表示总的货物种类数量

List1.AddItem id(flag) + n(flag) + c(flag)

  If flag = -1 Then MsgBox ("查询无结果,检查是否输入有误")

End If

If na <> "" Then  ‘第三种情况

flag = searchna(1, n)  'n 表示总的货物种类数量

List1.AddItem id(flag) + n(flag) + c(flag)

  If flag = -1 Then MsgBox ("查询无结果,检查是否输入有误")

End If

If co <> "" Then ‘第四种情况

flag = searchco(1, n)

If flag = 0 Then MsgBox ("查询无结果,检查是否输入有误")

End If

End Sub

Function searchnum(i, j) As Integer  '按编号查询函数

Dim m As Integer

Do While i <= j

m = Fix((i + j) / 2)

If id(m) = number Then

searchnum = m: Exit Function  '查询到结果返回值并结束该函数

End If

If id(m) > number Then         Else i = m + 1

Loop

searchnum = -1

End Function

Function searchna(i, j) As Integer  '按名称查询函数

For i = 1 To j Step 1

If n(i) = na Then searchna = i: Exit Function

Next i

searchna = -1

End Function

Function searchco(i, j) As Integer  '按货物数量函数

Dim f As Integer

f = 0

For i = 1 To j Step 1

If        Then

List1.AddItem id(i) + n(i) + c(i)

f = 1

End If

Next i

searchco (f)

End Function

回答下列问题:

返回首页

试题篮