Const n = 10
Dim a(1 To 100) As Integer
Dim b(1 To 100) As Integer
Private Sub Form_Load()
'随机生产10个11-99之间的数字,并依次存储在数组a中,代码略
End SubPrivate Sub Command1_Click()
Dim num As Integer, L As Integer, R As Integer, i As Integer
Dim m As Integer, f As Boolean
num = 1: b(1) = a(1)
For i = 2 To n
b(num + 1) = a(i) + 1
f = False
For j = 1 To num + 1
If a(i) < b(j) Then
Exit For
ElseIf a(i) = b(j) Then
①
End If
Next j
If Not f Then
For k =
b(k + 1) = b(k)
Next k
②
num = num + 1
End If
Next i
'最终将数组b的排序结果输出到文本框中,代码略
End Sub根据如上代码,请回答下列问题:
(1)若要清除文本框Text1中的内容,能实现该功能的语句是
(单选,填字母:A.Text1.clear / B.Text1.Text=“”/ C.Text1.Caption=“”)
(2)请在划线处填上合适的代码。
(3)程序中加框处代码有错,请改正。
改正:
在搭乘一次地铁后可以获得一张面额为本次地铁价格的优惠券,有效期为60分钟,在有效期内可以使用这张优惠券,免费搭乘一次票价不超过这张优惠券的公交车。在有效期内指开始乘公交车的时间与开始乘地铁的时间之差小于等于60分钟。搭乘地铁获得的优惠券可以累积,即可以连续搭乘若干次地铁后再连续使用优惠券搭乘公交车,但每次搭乘公交车只能使用一张优惠券。搭乘公交车时,如没有合适的优惠券,则自己全额支付;如果有多张优惠券满足条件,则优先消耗获得最早的优惠券。
小叶同学根据优惠政策,编写了计算优惠后需要支付费用的程序,同时将乘车记录按时间先后顺序逐行显示。在Text1里输入乘车记录的数量n,Text2里输入n组数据,每组乘车记录有3个数据,依次是车型(1表示地铁、2表示公交)、开始乘车时间、乘车票价。每个数据以逗号结尾。不会有两次乘车记录出现在同一分钟。数组d存储乘车记录的结构如图a所示:
第1条乘车记录 | 第2条乘车记录 | …… | |||||
数组中的位置 | 1 | 2 | 3 | 4 | 5 | 6 | …… |
对应的值 | 2 | 200 | 3 | 1 | 3 | 7 | …… |
车型 | 开始时间 | 票价 | 车型 | 开始时间 | 票价 | …… |
程序界面如图b所示:
![](https://img.xkw.com/dksih/QBM/2021/11/15/2851795122470912/2853263874916352/STEM/c0c5207ef726414eaa32cfc6e590f30b.png?resizew=343)
(1)在VB表达式Val(Text1.Text)中,Val、Text1、Text依次表示
(2)实现上述功能的程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有误,请改正。
Dim yh(1 To 100)As Integer,flag(1 To 100)As Boolean,dt As Integer
Dim d(1 To 100)As Integer’存储乘车的记录
Private Sub Command1_Click()
Dim i As Integer,j As Integer,k As Integer
Dim sum As Integer,n As Integer,c As String,s As String
n=Val(Text1.Text):s=Text2.Text:j=1:k=1
For i=1 To Len(s)
c=Mid(s,i,1)
If c="," Then
j=i+1:k=k+1
End If
Next i
For i=1 To n-1
For j=3*n-1 To
If d(j)<d(j-3)Then
temp=d(j+1):d(j+1)=d(j-2):d(j-2)=temp
temp1=d(j):d(j)=d(j-3):d(j-3)=temp1
temp2=d(j-1):d(j-1)=d(j-4):d(j-4)=temp2
End If
Next j
Next i
’按行输出乘车记录,代码略
dt=0
For i=1 To k-1 Step 3’yh(dt)存储第dt张优惠券的乘车记录在数组d中的起始位置
If d(i)=1 Then dt=dt+1:yh(dt)=i
Next i
sum=d(3)
For i=2 To n
For j=1 To dt
If yh(j)3<i Then
If(d((i-1)*3+1)=2)And(d((i-1)*3+2)-d(yh(j)+1)<=60)And flag(j)=False And(
![](https://img.xkw.com/dksih/QBM/2021/11/15/2851795122470912/2853263874916352/STEM/16fef43e4c204fb8ae8df54ece1b7a14.png?resizew=247)
flag(j)=True:Exit For
End If
End If
Next j
If j=dt+1 Then sum=sum+d(3*i)
Next i
Label1.Caption=Text1.Text+"次乘车支付的总费用是:"Str(sum)
End Sub
‘生成数组a,a(1)=73,a(2)=58,a(3)=62,a(4)=36…代码略
Private Sub Command1_Click()’对数组进行排序
num = 5: k = 1: f = 1
For i = 1 To num
k = k + i
For m = k - i To ①
For n = k - i To 2 * k - 2 - i - m
If ② Then t = a(n): a(n) = a(n + 1): a(n + 1) = t
Next n
Next m
f = f * (-1)
Next i
’将处理后的数组,以金字塔形显示,代码略
End Sub
A.k-1 f * a(n) < f * a(n + 1) | B.k-1 f * a(n) > f * a(n + 1) |
C.k-2 f * a(n) > f * a(n + 1) | D.k-2 f * a(n) < f * a(n + 1) |
组卷网是一个信息分享及获取的平台,不能确保所有知识产权权属清晰,如您发现相关试题侵犯您的合法权益,请联系组卷网