题型:综合题 题类:真题 难易度:普通
浙江省普通高等学校招生2021年1月信息技术选考试卷
编写VB程序,实现上述挑选功能。运行程序,在文本框Text1中输入参数h后,单击“挑选”按钮Command1,在列表框List1中按QA值降序显示满足条件一的申请人信息,最后在标签Label1中显示组队结果。程序运行界面如图所示。
请回答下列问题:
Const m = 20 'm表示申请人个数
Dim id(m)As Integer, qa(m)As Integer, qb(m)As Integer
Private Sub Command1_Click( )
Dim i As Integer j As Integer, k As Integer, t As Integer, max As Integer
Dim h As Integer, n As Integer '变量n存储满足条件一的申请人个数
Dim s As String
'读取全部申请人的编号、QA和QB值,分别存入数组id、qa和qb,代码略
h = Val(Text1. Text):n = m
For i = 1 To m — 1
k = i
For j = i + 1 To m
If qa(j)> qa(k)Then k = j
Next j
If Then
If k <> i Then
t = qa(i):qa(i) = qa(k):qa(k) = t
t = qb(i):qb(i) = qb(k):qb(k) = t
t = id(i):id(i) = id(k):id(k) = t
End If
Else
n =
Exit For 'Exit For表示退出循环
End If
Next i
'满足条件一的申请人信息显示在列表框Listl中,代码略
max = 0:s = “没有满足条件的组合”
'在满足条件的组合中,寻找QB值之和最大的组合,若有并列,只保留第一个
For i = n To 2 Step - 1
j = i - 1
Do While
If qb(i)+ qb(j) > max Then
s = "组队结果:" + Str(id(i)) + "号," + Str(id(j)) + "号"
End If
j = j - 1
Loop
Next i
Label1. Caption = s
End Sub
原始数据:
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
3 |
4 |
方法一:
①向右旋转1步:
a(1) |
a(2) |
a(3) |
a(4) |
4 |
1 |
2 |
3 |
②向右旋转2步:
a(1) |
a(2) |
a(3) |
a(4) |
3 |
4 |
1 |
2 |
③向右旋转3步:
a(1) |
a(2) |
a(3) |
a(4) |
2 |
3 |
4 |
1 |
方法二:
①将a(1)值放至旋转3个位置后位置a(4):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
3 |
1 |
②将原a(4)值放至旋转3个位置后位置a(3):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
4 |
1 |
③将原a(3)值放至旋转3个位置后位置a(2):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
3 |
4 |
1 |
④将原a(2)值放至旋转3个位置后位置a(1):
a(1) |
a(2) |
a(3) |
a(4) |
2 |
3 |
4 |
1 |
有n个数存储在数组a中,给定一个整数p(1≤p≤n),将数组a的前p个数与后n-p个数分别向右旋转k次。例如数组a的各个数值分别是1,2,3,4,5,6,7,当p=4,k=1时,旋转后的结果为4,1,2,3,7,5,6。小明为此编写了VB程序,功能如下:在文本框Text2、Text3中依次输入p和k的值,单击“旋转数组”按钮Command1后,数组旋转后结果显示在Text4中。程序运行界面如图1所示,请回答下列问题:
图1
试题篮