试题详情
操作题 适中0.65 引用1 组卷28
图图基于排序算法设计了一个数字矩阵排序的 VB 程序,功能如下:在文本框 Text1 中输入矩阵的大小 n,单击“生成”按钮 Command1,在左侧列表框 List1 中显示行数和列 数均为 n 的随机整数矩阵。单击“排序”按钮 Command2,奇数行从左到右升序排序, 偶数行从左到右降序排序,结果显示在列表框 List2 中,输出时保持矩阵大小不变。运 行结果如图所示。

请回答下列问题:
1)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Dim a(1 To 100) As Integer
Dim n As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim s As String, k As Integer
n = Val(Text1Text)
For i = 1 To n
       _____
       For j = 1 To n
             k = (i - 1) * n + j
             a(k) = Int(Rnd() * 45 + 5) * 2
             s = s + + Str(a(k))
       Next j
       List1AddItem s
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, L As Integer, R As Integer
Dim f As Integer
For i = 1 To n
If i Mod 2 = 1 Then
       f = 1
Else
       f = -1
       ____
       R = i * n
       List2AddItem sort(L, R, f)
Next i
End Sub
Function sort(left As Integer, right As Integer, order As Integer) As String
Dim i As Integer, j As Integer, k As Integer
Dim s As String, t As Integer s = “”
For i = left To right - 1 k = i
       For j = i + 1 To right
             If______Then
                    k = j
       Next j
       If k <> i Then
             t = a(k): a(k) = a(i): a(i) = t
       End If
       s = s + + Str(a(i))
Next i

sort = s
End Function
2)若删除上述 VB 程序中加框处代码,_______(选填:会/不会)影响程序运行结果。
21-22高二上·浙江绍兴·期末
知识点:VB程序的调试 答案解析 【答案】很抱歉,登录后才可免费查看答案和解析!
类题推荐
(郊游活动)有 n 名同学参加学校组织的郊游活动,已知学校提供给这 n 名同学的郊游总经费为 cnt 元,与此同时每位同学都自带了部分钱。为了方便郊游,活动地点提供 m(n<=m<=100)辆自行车供人租用,租用每辆自行车也需要花费钱,每位同学可以使用自己携带的钱或者学校的郊游经费,为了方便账务管理,每位同学只能为自己租用自行车,且不会借钱给他人,他们想知道最多有多少位同学能够租用到自行车。
租车原则是首先考虑自带经费少的部分同学优先租相对花费少的自行车,尽量少花学校经费以达到最多同学租车的结果。比如学生带的钱为 9,3,6,7,5,租车的钱分别需要 15,8,12,6,9,11, 如果 5 个人都能租车,至少需要学校提供经费为(6-3)+(8-5)+(9-6)+(11-7)+(12-9)=16,如果学校经费只有 10 元,则自带钱最少的同学不租车,这时所需学校经费为(6-5)+(8-6)+(9-7)+(11-9)=7。计算过程中采用二分查找法来判断租用自行车的人数能否达到最大值。
(1)若 7 位学生自带经费分别为 5,17,15,12,10,9,14,自行车租车费用分别为 27,14, 27,25,17,18,23,21,学校提供经费为 25 元,则最多有________位同学能够租用到自行车。
(2)VB程序代码如下,请在划线处填入合适的代码。
Dim a(1 To 100) As Integer , b(1 To 100) As Integer
Dim n As Integer, m As Integer   
Private Sub Command1_Click()

Dim left As Integer, right As Integer, mid As Integer,ans As Integer

n = Val(Text1.Text): m = Val(Text2.Text)

'从数据库读取 n 位学生带的钱存储在数组 a,m 辆自行车租用的钱存储在数组 b,代码略.
       Call px(a(), n)
       Call px(b(), m)

left = 1: right = n: ans = 0

Do While left <= right

             mid = (left + right) \ 2
             If check(mid) = True Then
                    ______________
                      right = mid – 1
             Else
                      left = mid + 1
   End If
Loop
Label1.Caption = "能租车的最大人数为" + Str(ans)
End Sub
Sub px(d() As Integer, s As Integer)
Dim i as integer,j as integer,k as integer For i = 2 To s
k = d(i)
j = i - 1
Do While k < d(j)
   d(j + 1) = d(j)
   j = j - 1
   If j = 0 Then Exit Do Loop
        ________________
Next i
End Sub
Function check(mid As Integer) As Boolean
Dim cnt As Integer, jf As Integer, t As Integer
cnt = Val(Text3.Text)
For t = 1 To n - mid + 1
   If b(t) > a(mid + t - 1) Then jf = b(t) - a(mid + t - 1) Else jf = 0
   _________________
Next t
If cnt >= 0 Then check = True
End Function
一位茶叶商人从南方收购了n吨新茶,由于产地偏僻不通铁路,茶商准备先沿水路运到武汉,再发往全国各地销售。码头上只有10条规格不同的小货船,每条船舶都不足以装载全部茶叶。各船舶的最大载重量分别为W(i)吨,需f(i)费用(该艘船每吨的费用)(1≤i≤10)。当然,由于茶商是老主顾,而且货船舶还可以搭配载其他货物,因此船主比较客气,声称可以装一部分货物,按实际装多少货物计费(例如,只装了1/3吨,则费用为1/3*f(i))请问茶商应该选择哪些货船,使得费用最低。若有费用相同,输出用船数最少的。
解题思路:随机生成10条船的载重量[1,10]和费用[1,30],然后将它们按费用从小到大排序,若费用相同,则载重大的在前,运输时,先把费用低的船装满,再按费用向下将船装好,运输。

图a

(1)根据上图a所示,可以发现有_________(填数字)个对象没有caption属性。
(2)根据上述描述设计如下VB程序,请在划线处填入合适的代码。

Dim f(1 To 10)As Integer, w(1 To 10)As Integer, b(1 To 10)As Integer

Private Sub Command2_Click()

Dim n As Integer, count As Integer, yf As Integer

Dims As String, i as integer

n = Val(Text1.Text)

count = 0

yf = 0

cz = n

i = 1

Do While n > 0

If n >= w(b(i))Then

____

Else

yf = yf + n*f(b(i))

End If

count=count+1

s = s + Str(b(i))+ "号船"

i=i+1

____

Loop

Label2.Caption="总计费用为:"+ Str(yf)+ "元" + Str(count)+" 条船,分别为"+s

End Sub

Private Sub form_load()

Dim t As Integer, i as integer, j as integer

Listl. Clear

List1. AddItem "编号 载重 费用'"

For i=1 To 10

w(i)= Int(Rnd*10+1)

f(i)= Int(Rnd*30+1)

b(i)=i

Listl. Addltem Str(b(i))+ "     " + Str(w(i))+ "     " + Str(f(i))

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

End Sub

组卷网是一个信息分享及获取的平台,不能确保所有知识产权权属清晰,如您发现相关试题侵犯您的合法权益,请联系组卷网