a(1)=12:a(2)=32:a(3)=70:a(4)=88:a(5)=90:a(6)=97
i=1:i=6:n=0
key=Val(Text1.Text)
Do While i<=j
n=n+1
m=Fix((i+j)/2)
If key=a(m)Then Exit Do ‘Exit Do表示退出循环
If key<a(m)Then j=m-1 EIse i=m+1
Loop
Text2.Text=Str(n)
运行程序,在文本框Text1中输人100,程序段运行后,文本框Text2中显示的内容为( )
Dim a(1 To 10) As Integer
Dim s As String, n, key As Integer
a(1) = 23: a(2) = 33: a(3) = 44: a(4) = 55: a(5) = 66: a(6) = 77
i = 1: j = 6: c = 0: key = 35
Do While i <= j
c = c + 1
m = (i + j) \ 2
If (j - i + 1) Mod 2 = 0 Then m = m + 1
If a(m) = key Then Exit Do
If key < a(m) Then j = m - 1 Else i = m + 1
Loop
该程序段运行后,下列各变量的值不正确的是( )
a(1)=2: a(2)=6: a(3)=8: a(4)=9: a(5)=12
a(6)=15: a(7)=17: a(8)=18: a(9)=22: a(10)=30
k=Val(Text1.Text)
i=1: j=10
Do While i <=j
m=(i+j) \ 2
If a(m) <=k Then
i=m+1
Else
j=m-1
End If
Loop
Text2.Text=Str(a(i))+"← →"+Str(a(j))
程序运行时,文本框Text1中输入5,文本框Text2中显示的内容是( )
Function fg(n as Integer)As Integer
If n=1 fg=1
If n=2 fg=2
If n>=3 fg=fg(n-1)+fg(n-2)
End Function
请问走完这8阶楼梯的走法有( )
Private Sub Command1_Click()
Dim s As String, a As String, b As String
Dim p As Integer, sum As Integer
s=Text1.Text + "e" ′加一个结尾非数字字符
i=1
p=0
sum=0
Do While i<Len(s)
a=Mid(s,i,1)
b=Mid(s,i+1,1)
If (a>="0" And a<="9") And (b>="0" And b<="9") Then
p=p*10+Val(a)
p=p*10+Val(a)
sum=sum+p
i=i+1
End If
i=i+1
Loop
Text2.Text=Str(sum)
End Sub
奇数阶幻方的构造是所有幻方中最简单的,可以按照如下规则来实现:
⑴将1放在第一行中间一列;(如图2)
⑵从2开始直到n*n为止,各数按下列规则存放:
假设当前要存放的数为k,则k存放在k-1)数的右上方并按照规则
①若(k-1)放在第1行且不是最后一列,则将k存放在n行,(k-1)所在列右侧;(如图3)
②若(k-1)放在第n列且不是第一行,则将k存放在第1列,k-1)的上1行;(如图4)
③若(k-1)即不在第1行也不在最后1列:
若(k-1)右上方有数,则将k放在(k-1)的下1行的同一列。(如图5)
若(k-1)右上方没有数,则将k放在(k-1)的右上方;(如图6)
④若(k-1)在第1行第n列,将k填在(k-1)的正下方(如图7)
Private Sub Command1_Click()
Dim i As Integer, i As Integer, n As Integer ‘i表示行,j表示列
Dim a(1 To 1000) As Integer, k As Integer ‘数组a依次保存幻方中的数
Dim s As String
n= Val(Text1.Text)
j= ① : a(j)=1
i=1
For k =2 To n*n
If i=1 And j<>n Then
i=n: j=j+1
a((i-1)*n+j)=k
ElseIf j= n And i<> 1Then
② : j=1
a((i-1)*n+j)=k
ElseIf i=1 And j=n Then
i+1 =1
a((i-1)*n+j)=k
ElseIf i <> 1 And j<> n Then
If ③ Then
i=i-1:j=j+1
va((i-1)*n+j)=k
Else
i=i+1
a((i-1)*n+j)=k
End If
End If
Next k
List1. Clear
For i=1 To n
s=“”
For j=1 To n
s=s+ format(a((i-1)*n+j))
Next j
List1AddItem s
Next i
End Sub
Function format( x As Integer) As String ‘将数字字符串格式化为3个字符长度
Dim n As integer, i As Integer
format =Str(x)
n=Len(format)
For i=1 To ④
format ="”+ format
Next i
End Function
① ② ③ ④
Private Sub Command1_Click ( )
Dim st (1 To 6) As string
st(1)= “she”: st(2)= “her”: st(3)=“your”
st(4)=“me”: st(5)= “you”: st(6) =“i”
Key Text1 Text
t= False
i = 0
Do While i < 6 And t= False
i=i+1
If st(i) = Key Then t = True
Loop
If t= False Then i =0
Text2. Text Str(i)
End Sub
程序运行时,在文本框中输入“you”后单击按钮Command1,则文本框Text2中显示的内容是( )
i = 1: j = 9: flag = False
Key = Val(Text1.Text)
Do While i < j
m = (i + j + 1) \ 2
If a(m) > Key Then j = m - 1 Else i = m + 1
If a(m) = Key Or a(m + 1) = Key Then flag = True: Exit Do
Loop
If flag Then
If a(m) = Key Then Text2.Text = Str(m) Else Text2.Text = Str(m + 1)
Else
Text2.Text = "找不到"
End If
程序运行时,数组元素a(1)到a(9)中的数据为12,24,27,34,39,46,68,73,84,在文本框Text1中输入“68”,执行该程序段,则下列表达式正确的是( )
Dim a(1 To 10)As Integer
Private Sub Form_Load()
a(1)=2: a(2)=3: a(3)=3: a(4)=3: a(5)=3
a(6)=6: a(7)=7: a(8)=7: a(9)=8: a(10)=9
End Sub
Private Sub Command1_Click()
Dim key As Integer, i As Integer, j As Integer
Dim m As Integer, p As Integer
key=Val(Text1.Text)
i=1: j=10
Do While i<=j
m=(i+j)\2
If a(m)= key Then
p=m
j=m-1
ElseIf key<a(m)Then
j=m-1
Else
i=m+1
End If
Loop
Text2.Text=Str(p)
End Sub
程序运行时,在文本框 Text1中输入3,单击按钮,文本框Text2中显示的内容是( )
Private Sub Command1_Click()
Dim a(1 To 9) As Integer, key As Integer, i As Integer, j As Integer
Dim mid1 As Integer, mid2 As Integer
a(1)=4: a(2)=22: a(3)=27: a(4)=32: a(5)=35: a(6)=44: a(7)=56: a(8)=59: a(9)=78
key=Val(Text1.Text)
i=1: j=9
flag=False
Do While i<=j And Not flag
Mid1=i+(j-i)\3
mid2=j-(j-i)\3
If key=a(mid1) Then
flag=True
ElseIf key<a(mid1) Then
j=mid1-1
ElseIf key=a(mid2) Then
flag=True
ElseIf key>a(mid2) Then
i=mid2+1
Else
i=mid1+1
j=mid2-1
End If
Loop
If flag Then Label1.Caption=″查找成功!″Else Label1.Caption=″查找失败!″
End Sub
该程序段执行时,在文本框Text1中输入36,单击命令按钮Command1,程序运行结束后,i和j的值为( )
1=1:r=6
Key=Val(Text1.Text)
Do While <=r
m=Int((1+r)\2)
If a(m)=Key Then
Exit Do
Elself a(m)>=a(1) Then
ElseIf a(m)<a(1) Then
End If
Loop
上述程序中方框处可选语句为:
①If a(m)<Key And a(r)>Key Then 1=m+1
Else r=m-1
②List1.AddItem "第"+Str(m)+ "值是"+Str(a(m))
③If a(m)>Key And a(1)<=Key Then r=m-1
Else=m+1
则(1)、(2)、(3)处语句依次是( )
Private Sub Command1_Click()
Dim i As Integer,s As string
s = ""
For i = 1 To 3 Step 2
s = str(f(i)) + s
Next i
Text1. Text = s
End Sub
Function f(n As Integer) As Integer
If n = 1 Then
f = 2
Else
f = f(n - 1) + n
End If
End Function
则执行该程序段后,s 的值为( )
Const n = 9
Dim a(1 To n) As Integer,i As Integer, j As Integer
Private Sub Form_Load()
Dim s As String, k As Integer
a(1) = 9: a(2) = 13: a(3) = 11: a(4) = 3: a(5) = 20
a(6) = 6: a(7) = 18: a(8) = 15: a(9) = 8
For i = n To 2 Step -1
k = i
For j =
If a(j) < a(k) Then t = a(j): a(j) = a(k): a(k) = t
Next j
'③改错
Next i
Label1.Caption = s End Sub
Private Sub Command1_Click()
Dim L As Integer, R As Integer, m As Integer, key As Integer
key = Val(Text1.Text)
For i = 1 To n - 1
L = 1: R = n
Do While L <= R
m = (L + R) \ 2
If a(i) + a(m) = key Then
Label2.Caption = Str(a(i)) & Str(a(m))
Exit For
ElseIf Then
L = m + 1
Else
R = m - 1
End If
Loop
Next i
If L > R Then Label2.Caption = "没有找到数对"
End Sub
low = 1: high = 8
key = Int(Rnd * 15 + 1) * 2
Do While low <= high
m = (low + high) \ 2
If a(m) >= key Then
high = m - 1
Else
low = m + 1
End If
Loop
Text1.Text = Str(low)
若数组元素a(1)到a(8)的值依次为 1,10,11,12,15,30,32,37,执行该程序段后,文本框Text1中显示的内容可能是( )
图b为标准ASCII码表供你参考(其中ASCII为1-32,127的字符为特殊符号,不能用作密码):
实现上述功能的VB程序代码如下,请回答以下问题:
Private Sub Command1_Click()
Dim t As Integer, flag as Boolean
Dim pwd as String ,n as Integer
Dim a(1 To 4) As Integer
flag= True
n=0
pwd=" "
Randomize
Do While flag
t= '随机生成33~126的ASCII码
pwd= pwd+Chr(t)
s= 0
For i=1 To 4
s=s+a(i)
Next i
n=n+1
If n>=6 And s=4 Then
Loop
Text1. Text= pwd
End Sub
'获取字符类型:1-小写字母,2-大写字母,3-阿拉伯数字,4-符号
Function check(x As Integer) As Integer
If x>=97 And x <= 122 Then
check= 1
ElseIf x >=65 And x <=90 Then
check= 2
ElseIf x>=48 And x <=57 Then
check= 3
Else
check= 4
End If
End Function
①H2? N64Aj
②[26wv9,Q
③$ 14G/uv④zX}rb! T&}d2
i=1:j=7 : s=””
key = Int (Rnd * 100)
Do While i <=j
m=(i+j)\2
If key = a(m) Then
s = s+"M":Exit Do 'Exit Do表示退出循环
ElseIf key < a(m) Then
j=m-1:s=s+"L"
Else
i=m+1:s=s+"R"
End If
Loop
Text1.Text = s
数组元素a(1)到a(7)的值依次为“24, 35, 38, 41,45, 69, 78”。若该程序段执行后,文本框Text1中显示的内容是LLR,则Key的值可能是( )