
Private Sub Command1_Click()
Dim a(1 To 10) As Integer
Dim s As Integer
Dim max As Integer
n = Val(Text1.Text)
i = 1
Do While i <= n
a(i) = Int(Rnd * 100)
List1.AddItem Str(a(i))
s = s + a(i)
①
Loop
max = a(1)
For i = 2 To n
If a(i) > max Then ②
Next i
List1.AddItem "和为:" + ③
List1.AddItem "最大值为:" + Str(max)
End Sub
供①②选填:A.n=n+1 B. i=i+1 C.max=a(i) D.a(i)=max
①应选;②应选
空格③处应填写的代码为:。
程序界面如下图所示,在Text1中输入原始字符串,在Text2中输入需要改变的字符,单机“改变”按钮后,在Text3中输出处理后的结果。程序代码如下:

Private Sub Command1Click()
Dim s As String, result As String, k As String
Dim zs As String, n As Integer
result = ""
s = Text1.Text
k = Text2.Text
For n = 1 To Len(s)
①
If zs = k Then
If Asc(zs) >= 65 And Asc(zs) <= 90 Then
zs = Chr(Asc(zs) + 32)
ElseIf Asc(zs) >= 97 And Asc(zs) <= 122 Then
zs = Chr(Asc(zs) - 32)
End If
End If
②
Next n
③
End Sub
在程序①、②、③划线处,填入适当的语句或表达式,把程序补充完整:
程序中①划线处应填入。
程序中②划线处应填入。
程序中③划线处应填入。
Const n=12
Dim a(1 To n) As Integer
Dim flag(1 To 100) As Boolean
Private Sub Form_Load()
Dim i As Integer, t As Integer
For i=1 To 100
flag(i)=False
Next i
i=1
Do While i <=n
t=Int(Rnd * 100)+1
If Not flag(t) Then
List1.AddItem Str(t)
flag(t)=True
i=i+1
End If
Loop
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, ans As Integer
ans=0
For i=1 To n
For j=i+1 To n
If a(i)+a(j) <=100 Then
IfThen
ans=ans+1
flag(a(i)+a(j))=False
End If
Next j
Next i
Label1.Caption="共有"+Str(ans)+"个数!"
End Sub
鞋子尺码换算:常用的两种鞋码一种是欧制的码m,而我国采用的标准为厘米数g,鞋子尺码的换算公式:欧制m=中国制g*2-10。例如25是我国采用的厘米数,换算成欧制的码为25*2-10=40(码)。
Private Sub Command1_Click()
Dim g1 As Integer, g2 As Integer
Dim i As Integer, temp As Integer
Dim m As Single
List1.Clear
g1 = Val(Text1.Text)
g2 = Val(Text2.Text)
IfThen
temp = g1: g1 = g2: g2 = temp
End If
i = g1
Do While i <= g2
List1.AddItem Str(i) + “” + Str(m)
i = i + 1
Loop
End Sub
为实现上述功能,请将以下程序补充完整。
Private Sub Command1_Click()
Dim j As Integer, k As Integer
List1.Clear
For k = 1 To 100
j = Int(Sqr(k))
If Then List1.AddItem
Next k
End Sub
|
1 |
2 |
3 |
4 |
5 |
6 |
…… |
2n-1 |
2n |
|
性别 |
身高 |
性别 |
身高 |
性别 |
身高 |
…… |
性别 |
身高 |
该 n位学生站成一排合影:男生全部在一侧,从低到高排序;女生全部在另一侧,从高到低排(所有人的身高h为整数,且100≤h≤200),排序前显示于List1,排序后显示于List2,如图所示。

实现上述功能的VB程序如下,请回答下列问题。
Const n = 10
Dim a(1 To 2 * n) As String Private Sub Form_Load()
'读取身高和性别数据,存储在数组a中,并显示于列表框List1中,代码略
End Sub
Private Sub Comd1_Click()
Dim count As Integer, i As Integer, j As Integer count=0
For i = 1 To n-1
‘改错①
For j = n To i+ 1 Step -1
If a(2 * j - 1) = "男" Then If
Then
‘改错②
t = a(2 * j - 2): a(2 * j - 2) = a(2 * j): a(2 * j) = t
t = a(2 * j - 3): a(2 * j - 3) = a(2 * j - 1): a(2 * j - 1) = t start = j
End If
ElseIf a(2 * j - 3) = "女" Then
If Then '填空
t = a(2 * j - 2): a(2 * j - 2) = a(2 * j): a(2 * j) = t
t = a(2 * j - 3): a(2 * j - 3) = a(2 * j - 1): a(2 * j - 1) = t start = j
End If
End If
Next j i=start-1
count=count+1 Next i
For i = 1 To n
List2.AddItem a(2 * i - 1) + a(2 * i) Next i
End Sub
① ②
For I = 1 To 5
t = 1
For j = i + 1 To 6
If a(t) < a(j) Then ![]()
If i <> t Then
temp = a(i)
a(i) = a(t)
a(t) = temp
End If
Next j
Next i
下列描述正确的是( )
Dim i As Integer, j As Integer, a(1 To 5) As Integer
For i =1 To 5
a(i)=Int(Rnd*5+1)
For j = 1 To i-1
If a(i)=a(j) Then
i=i-1 : Exit For
End If
Next j
Next i
执行程序后,数组中的数据可能是( )
a(1)=”231”:a(2)=”44”:a(3)=”23”:a(4)=”244”:a(5)=”124”
For i=5 To 4 step-1
k=i
For j=i-1 To 1 Step-1
If a(j) >a(k) Then k=j
Next j
If k<>i Then
t=a(k):a(k)=a(i):a(i)=t
End If
Next i
s=“2019.06VisualBasic6.0”:n=0
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch>=“0” And ch<=“9” Then
m=Asc(ch)-Asc(“0”)+1
a(m)=a(m)+1
End If
Next i
Fori=1 To 10
If a(i)>1 Then n=n+i
Next i
数组a各元素的初始值都为0,执行该程序段后,变量n的值为( )
①上靠,例如放回的牌数字为7,可以把牌放在第2堆的最下面,则原来登记的记录变成(1,3),(5,3),(11,1),牌还是3堆。
②下靠,例如放回的牌数字为10,可以把牌放在第3堆的最上面,则原来登记的记录变成(1,3),(5,2),(10,2),牌还是3堆。
③上下不靠,例如放回的牌数字为9,则单独放一堆,登记的记录变成(1,3),(5,2),(9,1),(11,1),牌变成4堆。
④上下靠,例如放回的牌数字为4,则合并第1堆和第2堆,登记的记录变成(1,6),(11,1),牌变成2堆。
小王依据上述描述设计了如下VB程序。请回答下列问题:
Const n=5000
Dim a(0 To n)As Integer 'a(i)保存第i条记录的最顶端的牌
Dim b(0 To n)As Integer 'b(i)保存第i堆牌的张数
Dim c As Integer,k As Integer,sp As Integer 'k为原始记录数
'读取原始k条记录的数据,依次存入a(1),b(1),a(2),b(2)…a(k),b(k),代码略
a(0)= 0:b(0)=0:sp=k +1:a(sp)=10000:b(sp)=0
Private Sub Command1_Click()
Dim i As Integer
c=Val(Text1.Text) 'c 为放回的牌号
i=1
Do While a(i)<c '查找牌c放的位置
i=i+1
Loop
i=i-1
'下面为放牌过程
If a(i)+ b(i)=c Then
If ① Then '第4种情况,上下靠
b(i)=b(i)+1+ b(i+1)
For j=i+1 To sp-1
a(j)=a(j+1):b(j)=b(j+1)
Next j
sp=sp - 1
Else '第1种情况,上靠
b(i)=b(i)+1
End If
Elself c+ 1=a(i+1)Then'第2种情况,下靠
a(i + 1)=c:b(i+1)= b(i+1)+1
Else '第3种情况,上下不靠
For j= ②
a(j)=a(j-1):b(j)=b(j-1)
Next j
a(i+1)=c:b(i+1)=1:sp=sp+1
End If
'下面为输出登记的记录,不包括虚设的两条记录
For i=1 To ③
List3.Addltem“第”&Str(i)&“记录(”&Str(a(i))&“,”&Str(b(i))&“)”
Next i
End Sub
①②③
Randomize
For i=1 To 6
a(i)= lnt(Rnd * 20)+1
If a(i)Mod 2=i Mod 2 Then
a(i)= a(i)-1
Else
a(i)= a(i)+2
End If
Next i
执行该程序段后,a(1)~a(6)各元素可能的是( )
s=Text 1.Text
t=“”
For i=1ToLen(s)
c=Mid(s,i,1)
If c<“a”Or c>“z”The nt=“”
t=c+t
Next i
Label 1.Caption=t
执行此程序段时,在文本框Text 1中输入“2020NihaoWolaile”,则标签Label 1中显示的内容是( )

Const n=640
Dim class(1 to n )As String
Dim score(0 to n) As Integer
‘从数据库中读取学号和成绩数据,存入class和Score数组,并在Lis2中显示,代码略
Private Sub Command1Click()
Dim x As integer, m AS Integer, i As Integer,j As Integer
Dim t1 As Integer, t2 As Integer, flag As Boolean
x=Val(Text1.Text)
m=Val(Text2.Text)
i=1: flag=True
Do While flag
k=i
For j=i+1 To n
If t=x Then
It score (j)>score(k) Or Val(Mid(class(k),1,2))<>x Then k=j
End If
Next j
IfAnd score(k) <> score(i-1) Then flag=Fale
If k<>i Then
t1=sore(i): score(i)=score(k): score(k)=t1
t2=class(i): class(i)=class(k): class(k)=t2
End If
i=i+1
Loop
List1.Clear
For j=1 To
List1.Additem class(j)+""+Str(score(j))
Next j
End Sub
1)找出等式中单个数字的最大值;
2)从最大值加1的数制开始,按该数制的运算规则,把等式中所有数字转换成十进制数;
3)如果等式两边的结论是成立的,那么该数制就是符合上述等式的最小数制,否则从下一个数制重新计算,直到十六进制为止。
小明为此编写了一个VB程序,程序运行时,在文本框Text1中输入一个等式,单击“计算”按钮Command1,在文本框Text2中显示该等式中数字所属的数制。程序运行界面如下图所示。
Private Sub Command1_Click()
Dim s1 As String, ysf As String, t1 As String, t2 As String, t3 As String
Dim ch As String, t As String, max As Integer, jz As Integer, i As Integer
s1=Text1.Text
t1=0: max=0
For i=1 To Len(s1)
ch=Mid(s1, i, 1)
If ch=“+” Or ch=“-” Or ch=“*” Or ch=“\\” Then
ysf=ch: t1=t: t=“ ”
ElseIf ch=“=” Then
t2=t: t=“ ”
ElseIf ch >= “A” And ch <= “F” Then
t=t+ch
temp=
If max < temp Then max=temp
Else
t=t+ch
If max < Val(ch) Then max=Val(ch)
End If
Next i
t3=t: jz=0
Do While i <= 16
If ysf=“+” Then
If XtoD(i, t1)+XtoD(i, t2)=XtoD(i, t3) Then jz=i: Exit Do
ElseIf ysf=“-” Then
If XtoD(i, t1) - XtoD(i, t2)=XtoD(i, t3) Then jz=i: Exit Do
ElseIf ysf=“*” Then
If XtoD(i, t1) * XtoD(i, t2)=XtoD(i, t3) Then jz=i: Exit Do
Else
If XtoD(i, t1) / XtoD(i, t2)=XtoD(i, t3) Then jz=i: Exit Do
End If
i=i+1
Loop
If jz <> 0 Then
Text2.Text=“该数属于” +Str(jz)+ “进制”
Else
Text2.Text=“没有找到合适的进制”
End If
End Sub
Function XtoD(x As Integer, s As String) As Integer
Dim j As Integer
j=0
For i=Len(s) To 1 Step -1
XtoD=XtoD+Val(Mid(s, i, 1)) * x ^ j
Next i
End Function
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
k = (Val(ch) - 1) Mod (Len(s) - 4) + 1
s1 = Mid(s, k, 1) + s1
End If
Next i
Text1.Text = s1
程序执行完后,Text1 中显示的内容是( )
Private Sub Form_Click()
a = "123": b = "456"
c = Val(a) + Val(b)
Text1.Text=str(c\100)
End Sub
B .
C .
D .