学号 | 姓名 | 到校时间 | 离校时间 | 状态 |
2020050101 | 陈芸 | 2021/5/10 6:50 | 2021/5/10 11:55 | 正常 |
2020050903 | 刘晓东 | 2021/5/10 6:54 | 2021/5/10 10:55 | 异常 |
2020050324 | 钱宇 | 2021/5/10 7:13 | 2021/5/10 10:55 | 异常 |
2020050903 | 刘晓东 | 2021/5/10 13:13 | 2021/5/10 17:02 | 正常 |
…… | …… | …… | …… | …… |
L=2: R=6
Do While L = R
If Then
t = a(L): a(L) = a(R): a(R)= t
Else
End If
Loop
t = a(R): a(R) =a(1): a(1)=t
上述程序段中方框处可选语句为:( )
① a(L) > a(1) ② a(L) > a(R) ③R = R - 1 ④L = L + 1
i =1 : j=10 : s="" : n=0
key = 10+int(Rnd*20)
Do While i<=j
n=n+1
m=(i+j)\2
s =s+ str(m)
If key = a(m) Then Exit Do 'ExitDo表示退出循环
If key < a(m) Then j=m-1 Else i=m+1
Loop
a(1)~a(10)中的值依次是5,8,16,23,29,30,42,51,57,69执行程序后,以下说法正确的是:( )
图a
图b
图a
图b
测试场景时发现,鼠标移到按钮的“秋收”文字上时,按钮才能被单击,鼠标不在文字上时按钮无响应,可以解决这个问题的操作有 (多选,填写字母)
图c
'人员编号和笔试成绩分别存储到数组变量id 和score中,应聘总人数存储在变量n中面试比例在文本框Text1中输入,所输入比例值必须使面试人数大于1且小于n,代码略。
Private Sub Command1_Click( )
Dim i As Integer, j As Integer, st As String, t As Integer
For i = 1 To n - 1 '按笔试成绩从高到低排序
k = i
For j = i + 1 To n
If Then k = j
Next j
If k <> i Then
st = id(k): id(k) = id(i): id(i) = st
t = score(k): score(k) = score(i): score(i) = t
End If
Next i
num =
j=num+1
Do while j<=n
If Then Exit Do
j=j+1
Loop
For k=
List2.AddItem Str(k) + " " + id(k) + " " + Str(score(k))
Next k
End Sub
房号 |
i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
人数 |
b(i) |
2 |
0 |
2 |
2 |
0 |
1 |
2 |
1 |
2 |
1 |
0 |
2 |
1 |
0 |
2 |
2 |
下表给出了选择预订房间的过程(区间长度表示预订房间的起始房号到最后一个房号包含的房间数,区间长度值越小,代表预订房间分布越集中),选择最优方案过程如1)2)3)所示
1)从房间号码分布区间长度值最小原则,选择方案2、4、9
2)分布区间长度值相同时,选择预订房间数目最小的,因此选择方案2、9
3)所有可选方案中,优先选择最先成立的(起始房号最小的)方案,最终选择方案2
程序运行界面如下,请完成相应的小题
Const n = 16 '假设酒店总房间数为16
Dim b(1 To n) As Integer 'b数组按房间号顺序存储各房间可入住人数
Function find1(x, y) As Integer
'函数find1(x,y)的作用是从b(x)到b(y)中找到值为1的数组变量的下标,若找不到,返回值为0
End Function
Private Sub Command1_Click( )
Dim s As Integer d As Integer, f as integer, num As Integer, roomnum As Integer
Dim minnum as integer 'minnum 变量存储当前最优方案中的预订房间数目
Dim mindist As Integer 'mindist 存储当前的最小分布区间长度
'所有房间的可入住人数按房间号码顺序存储到数组b 中并显示在list1 中,代码略
num = Val(Text1.Text)
minnum = n: mindist = n :s = 0 : start = 0: f = 0: pos = 0
For i = 1 To n
If b(i) <> 0 Then
j = i: s = 0: roomnum = 0
Do While s < num And j <= n
s = s + b(j)
If b(j) > 0 Then roomnum = roomnum + 1
j = j + 1
Loop
d =
If s = num Then
If d < mindist Or Then
start = i: mindist = d: minnum = roomnum: pos = 0
End If
ElseIf s > num Then '若可入住人数超出,在当前区间内所选房间中取消1个单人间
f = find1(i + 1, j - 2)
If f > 0 Then
If d < mindist Or d = mindist And roomnum-1 < minnum Then
start = i: mindist = d: minnum = roomnum - 1: pos = f
End If
End If
End If
End If
Next i
If start = 0 Then
Label2.Caption = "房间数量不足"
Else
List2.AddItem "预订房间:" + Str(minnum) + "间"
For i = start To
If b(i) > 0 And i <> pos Then
List2.AddItem "房间号:" + Str(i) + ",入住人数:" + Str(b(i))
End If
Next i
End If
End Sub