下列说法正确的是( )
下列说法正确的是( )
s =" shenzhen"
For i=1 To Len(s)
a(i) = Mid(s,i,1)
b(i) = i
Next i
For i=Len(s) To 2 Step-1
If a(b(i)) >= a(b(i - 1)) Then
t=b(i):b(i)=b(i-1):b(i-1)=t
End If
Next i
Text1.Text = b(1)
文本框Text1中显示的内容是( )
For i=1 To 5
a(i)=Int (Rnd*9) +1
Next i
For i= 1 To 5
If i Mod2=0 Then
a(i) = a(i)\i
Else
a(i)= a(i) Mod i
End If
Next i
执行该程序段后,在下列选项中a(1)至a(5)各元素可能是( )
key = Val (Text1. Text)
i =0:j=9:n=0
Do While i<= j
m=(i+j)\2
n=n+1
If key <= a(m) Then
j=m-1
Else
i=m+1
End If
Loop
s=i
Do While i<9 And a(i)= a (i+1)
i=i+1
Loop
Label2.Caption = Str(n) +“:”+ Str(i + 1-s)
数组元素a(0~9)的值依次为“3,4,7,8,8,8,8,9, 10,12”。在文本框Text1中输入“8”,点击“查找”按钮后,Labe12 中输出的结果是( )
请回答下列问题:
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程序如下,回答以下问题:
(单选,填字母:A .Form1/B .Label /C .TextBox / D .CommandButton)
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
摸牌规则:
A.当某花色牌不足3张,则记录摸到的牌,继续摸下一张牌
B.当某花色的牌超过3张时,若摸到的卡牌点数大于本花色中已有卡牌点数的最小值,则替换本花色中点数最小的卡牌,否则,弃置摸到的牌。继续下一-张摸牌
C.当所有花色的牌均为3张时结束摸牌。然后按花色编号从小到大展示摸到的卡牌
例如:在某次摸牌后的卡牌如下表所示:
花色 |
黑桃 |
红桃 |
梅花 |
方块 |
||||||||
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
点数 |
7 |
5 |
12 |
11 |
3 |
8 |
7 |
5 |
8 |
5 |
3 |
1)当下一次摸到“黑桃4”的牌时,4小于已摸到的[7,5,12],弃置摸到的牌,继续摸牌
2)当摸到“红桃9”的牌时,9大于已摸到的[11,3,8]的最小值3,红桃更新为[11,9,8],继续摸牌
3)当摸到“梅花9”的牌时,梅花点数更新为[7,5,9],达到所有花色的牌均为3张的目标,结束摸牌。
模拟此过程编写VB程序,程序运行界面如下图,单击“展示摸到的卡牌”按钮开始摸牌,满足条件时,在列表框中展示摸到的卡牌。
Const n = 52
Dim hs(1 To n) As Integer'存储每张卡牌的花色
Dim num(1 To n) As Integer'存储每张卡牌的点数
Din class(1 To 4) As Integer '存储每种花色卡牌的存储位置
Dim record(1 To 12) As Integer
Private Sub Form _Load()
'读取打乱的卡牌中每张卡牌的花色、点数数据,存入数组hs, num中,代码略
End Sub
Private Sub Command1_ _Click()
Dim k As Integer, i As Integer, P As Integer
Dim flag As Boolean
flag = True
For i=1 To 4
class(i) = '计算每种花色卡牌存储的起始位置
Next i
i=1
Do while i<=n And flag=True
k = hs(i)
If class(k) > k* 3 Then
p = pos(i)
If p < 0 Then
End If
Else
record(class(k)) = i
class(k) = class(k) + 1
If class() =4 And class(2) =7 And class(3)=10 And clas(4)= 13 Then
flag= False
End If
End If
i=i+1
Loop
List1.AddItem “”&“花色”&“”&“点数”
For i =1 To 12
List1. AddItem“”& hs(record(i)) &“”& num(record(i))
Next i
End Sub
Function pos(t As Integer) As Integer '返回点数最小卡牌位置
Dim min As Integer
m= (hs(t)-1)*3+1
min= m
If num(record(min)) > num(record(m+ 1)) Then min=m+ 1
If num (record(min)) > num(record(m+ 2)) Then min=m+ 2
If Then
pos= 0
Else
pos=min
End If
End Function