⑴ : i = 1
n = Len(s): t = Len(s1)
Do While i < n - t And p = -1
If ⑵ Then p = i
⑶
Loop
Label1.Caption = p
代码中划线部分由下列代码组成:
①p=1
②s1 = Mid(s, i, t)
③p=-1
④s1 = Mid(s, i, 1)
⑤i = i + 1
⑥i = i + t
下列选项中,代码顺序正确的是( )
key = Val(Text1.Text): cnt=10
For i = 1 To cnt - 1
n = key - a(i)
L = i + 1: R = cnt
Do While L <= R
m = (L + R) \ 2
If a(m) = n Then Exit Do
If a(m) > n Then R = m - 1 Else L = m + 1
Loop
If L <= R Then Text2.Text = Str(key - a(m)) + "," + Str(a(m))
Next i
在数组a(1)~a(10)中存储的数据依次为“1,4,9,16,25,36,49,64,81,100”,在Text1中输入一个不大于200的数,执行该程序后,Text2中显示的内容可能是( )
图a |
请回答下列问题:
①筛选出城市为“杭州市”的数据;②以城市为关键字,按笔画进行升序排序;③对“高校平均分”列设置“最大3项”的筛选;④以高校平均分为关键字进行降序排序;⑤隐藏第三所之后的所有院校。
图b |
图a |
请回答下列问题:
图b |
图a
图b |
编写程序找出青蛙成功过河至少需要增加的荷叶数,界面如图b。请回答以下问题:
Private Sub Form_Load()
'读取荷叶的位置,并保存到数组a中
'荷叶的数量保存在n中
'荷叶坐标和数量分别显示在list1和Text2中
End Sub
Private Sub Command1_Click()
Dim a(0 To 100) As Integer
Dim n As Integer, L As Integer, W As Integer, tot As Integer
Dim i As Integer, j As Integer, p As Integer, d As Integer
L = Val(Text1.Text) : n = Val(Text2.Text) : W = Val(Text3.Text)
a(0) = 0 : a(n + 1) =
For i = 1 To n - 1
k = i
For j = i + 1 To n
If a(k) > a(j) Then
Next j
If k <> i Then
tmp = a(k): a(k) = a(i): a(i) = tmp
End If
Next i
For i = 1 To n
List1.AddItem a(i)
Next i
p = 1: d = 0
Do While d < L
If p <= n + 1 And Then
d = a(p)
p = p + 1
Else
tot = tot + 1
End If
Loop
Label4.Caption = "至少需要增加的荷叶数为:" + Str(tot)
End Sub
如图a中,5张骨牌的差值为:|(3+3-4-4)+(6+3-2-5)+(2+3-4-5)+(1+5-3-3)+(1+1-1-1)|=4。
每张骨牌都可以顺时针旋转90度,效果如图b所示。现在最多可以选择其中一张骨牌进行旋转,使得旋转后的骨牌差值变小。求一种旋转方案,并输出骨牌差值的最小值。
图a
图b |
编写VB程序,实现上述功能。运行程序,在文本框Text1中依次输入5张骨牌上的数字,单击“计算”按钮Command1,在文本框Text2、Text3、Text4中输出结果。程序运行界面如图b所示。
Dim a(1 To 20) As Integer ‘依次存储5张骨牌上的数字
Dim d(1 To 5) As Integer ‘依次存储5张骨牌,上下两行的差值
Const n = 5
Private Sub Form_Load()
'从文本框Text1读取5张骨牌上的数字,依次存入数组a
'a(1)~a(4)依次存储第一张骨牌从左到右从上到下四个数字
'a(5)到a(20)依次类推
'代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, up As Integer, down As Integer, t As Integer, k As Integer
Dim id As Integer, times As Integer, x As Integer, ans As Integer
For i = 1 To n
up = a(4 * i - 3) + a(4 * i - 2)
down = a(4 * i - 1) + a(4 * i)
d(i) = up - down
t = t + d(i)
Next i
id = 0 : times = 0
ans =
If ans <> 0 Then
k = 1
Do While k <= n
For x = 1 To 3
temp =
If temp < ans Then
ans = temp
id = k
End If
If temp = 0 Then Exit Do
Next x
k = k + 1
Loop
End If
Text2.Text = CStr(id)
Text3.Text = CStr(times)
Text4.Text = CStr(ans)
End Sub
Function turn(ByVal k As Integer, ByVal x As Integer) As Integer
‘求将第k张骨牌,顺时针旋转x次后,上下两行的差值,代码略
End Function