
Private Sub Command1 click( )
Dim a(1 to 3) as integer,k as integer,t as integer,s as integer
a(1)=15: a(2)=36: a(3)=7
s=0
For k=2 to 3
if a(k)>a(1) then
t=a(1):a(1)=a(k):a(k)=t
s=s+1
End if
Next k
text1.text=str(a(1))
text2.text=str(s)
End sub
n = 0
m = 0
For i = 1 To 100
If Rnd > 0.5 Then
n = n + 1
Else
m = m + 1
Next i
小金仔细分析该程序段后,发现其中缺少了( )

Private Sub Command1_Click()
Dim n As Integer, i As Integer
Dim flag As Boolean ‘用于标记是否为素数
Randomize
n = Int( ① )*2+1
Text1.Text = Str(n)
flag = True ‘标记为素数
i = 3
Do While i <= n - 1 And flag = True
If n Mod i = 0 Then
flag = False
End If
i = i + 2
Loop
If ② Then
Text2.Text = Str(n) + “是素数”
Else
Text2.Text = Str(n) + “不是素数”
End If
End Sub
① ②
Private Sub Command_Click( )
Dim i As Integer, j As Integer, ans As Integer
Dim ch As String, s As String
s= Text1 Text
ans = 0:j = 1
For i =l To Len(s)
①
If ch = "," Then
ans =ans Val (Mid(s, j, i-j))
j= ②
End If
Next i
Label1. Caption ="计算结果是:"+Str( ans)
End sub
① ②
Private Sub Command1_ Click( )
Dim n As Integer, i As Integer
Dim a(1 To 50) As Integer
Randomize
For i=1 To 5
①
List1 AddItem Str(a(i))
Next i
If a(1) < a(2) Then
firstmin=a(1)
secondmin =a(2)
Else
firstmin=a(2)
secondmin=a(1)
End if
For i=3 To 50
If a(i) < secondmin Then
If ② then
Secondmin = firstmin
firstmin = a (i)
Else
③
End If
End If
Next i
Label1. Caption = "第二小的数是" str(secondmin)
End Sub
① ② ③
arr[M]和待查找数据key比较:
①arr[M]= key,返回M的值;
②若M位置的右侧有序,当待查找数据在右侧时则下次在右侧查找,否则在M左侧查找;
③若M位置的左侧有序,当待查找数据在左侧时,下次在左侧查找,否则在M右侧查找。
Function Search (key As Integer, L As Integer, R As Integer) As Integer
① ‘填写合适的代码
Do While L < R And Search =-1
M=(L+R)\2
If arr(M) = key Then
Search = M
Else
If ② Then ‘填写合适的代码
If arr(L) < = key And key arr(M)Then
R=M-1
Else
L=M+1
End If
Else
If ③ Then ‘填写合适的代码
L=M+1
Else
R = M-1
End if
End if
End If
Loop
End Function
① ② ③
|
a(1) |
a(2) |
a(3) |
… |
a(n-2) |
a(n-1) |
a(n) |
|
3 |
25 |
38 |
… |
55 |
31 |
12 |
依据对分查找思想,设计一个在数组a中查找数据key的程序,实现该功能的VB程序如下,但加框处代码有错,请改正
Private Sub Command1_Click( )
Const n = 6
Dim a (1 To n) As Integer, flag As Boolean
Dim i As Integer, j As Integer, m As Integer, key As Integer
‘读取一组正整数,按上述规则存入数组a中
‘代码略
key = Val(Text1. Text)
i = 1
j = (n+1) \2
flag= False
Do
While
And Not flag ‘①
m = (i+j) \2
If key = a(m) Then
flag= True
ElseIf key < a(m) Then
j = m-1
Else
i = m+1
Loop
If Not flag And j > 0 Then
m =
‘②
If key = a(m) Then flag = True
End If
If flag Then
Text2.ext = str(m)
Else
Text2.Text= “找不到”
End if
End sub
①加框处应改为。
②加框处应改为。
s = "491053"
For i = 1 To 3
n = Len(s)
k = 1
For j = 2 To n
If Mid(s, k, 1) >= Mid(s, j, 1) Then
k = j
Else
Exit For 'Exit For表示退出循环
End If
Next j
s = Mid(s, 1, k - 1) + Mid(s, k + 1, n - k)
Next i
Label1.Caption = s
执行该程序段后,标签Label1中显示的值是( )
i=1:j=8
k=Int(Rnd * 100)
Do While i<=j
m=(i+j+1)\2
If k=a(m)Then Exit Do
If k<=a(m)Then j=m-1 Else i=m+1
Loop
数组元素a(1)到a(8)的值依次是“13,27,36,42,48,51,66,83”,则以上程序段执行后,下列说法不可能正确的是( )
s= Text1.Text
For i= 1 To Len(s)
a(i) = Val(Mid(s, i, 1))
Next
L=1: R= Len(s) + 1
Do While L<R
m= (L+R) \2
If
Then
R= m
Else
L=m+ 1
End If
Loop
Label1 .Caption = "原字符串的第"+
+ "个字符被删除"
上述程序段2个方框处的代码分别为( )
Private Sub Command1_Click()
Dim a As Integer, s As String
Dim n As Integer, t As Integer, v As Integer
n = Val(Text1.Text)
t = 0
s = ""
Do While n > 0
a = n Mod 2
n = n \ 2
t =
s = Str(a) + s
Loop
v = t Mod 2
Text2.Text = s
Label3.Caption = "校验位值:" +
End Sub

Private Sub Form_Click( )
a= 1: b= 1
Print"A="; a; "B="; b
Call mult(a, b)
Print"A=";a; "B=";b
End Sub
Sub mult(x, y)
x=2* x
y=3*y
End Sub
A=1 B=1
B . A=1 B=1A=1 B=3
C . A=1 B=1A=2 B=3
D . A=1 B=1A=2 B=1