k = 0 '用来计数
Max = Val(Text1.Text) '指定范围
n = 9 '①
Do While n <= Max
If n Mod 3 = 2 And n Mod 5 = 3 Then '②
List1.AddItem Str(n)
End If
n = n + 7 ' ③
k = k + 1 ④
Loop
Label1.Caption = Str(Max) & "范围内满足问题的数有" & Str(k) & "个"
运行程序,在文本框中输入自然数600,结果统计的个数与列表框中输出的个数不相符,如图所示:
请问出现此问题的原因是 ( )
n=0
i=1
j=6
key=Val(Text1.Text)
f=False
Do While i<=j And Not f
m=(i+j+1)\2
n=n+1
If key=d(m)Then
f=True
ElseIf key>d(m)Then
i=m-1
Else
i=m+1
EndIf
Loop
数组元素d(1)到d(6)的值依次为“87,72,53,41,29,18”,若该程序段运行结束后,n的值为2,则key的值是( )
实现上述功能的VB程序如下:
Const n=10
Dim a(1 To 10)As Integer
Private Sub Command1 Click()
For i=1 To n
‘①
List1.Addltem Str(a(i))
Next i
End Sub
Private Sub Command2 Click()
tmp=1
For i=1 To n-1
For j=n To i+1 Step-1
If >0 Then ①
t=a(j):a(j)=a(j-1):a(j-1)=t
End If
Next j
②
Next i
For i=1 To 10
List2.Addltem Str(a(i))
Next i
End Sub
① ②
i = 1
Do While i <= 6
t = Int(Rnd * 10) + 1
If t Mod 2 = i Mod 2 Then a(i) = t : i = i + 1
Loop
For i = 1 To 2
k = 1
For j = 1 To 6 - i * 2
If a(j) * k > a(j + 2) * k Then
t = a(j) : a(j) = a(j + 2) : a(j + 2) = t
End If
k = -k
Next j
Next i
执行该程序段后,数组元素a(1)到a(6)的值可能是( )
key = Val (Text1. Text)
i = 1: j = n
Do While i < = j
m = (i+j) \2
If a(m) > key Then
j = m - 1
ElseIf a(m) < key Then
i = m + 1
Else
if Then
j = m-1
Else
Label2. Caption = str(key) +“的起始位置是”+ str(m)
Exit Do
End If
End if
Loop
If i > j Then
Label2. Caption = “找不到” + str(key)
End If
要使程序实现上述算法思想,则方框中的正确语句是( )
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”,则以上程序段执行后,下列说法不可能正确的是( )
a[1] | a[2] | a[3] | a[4] | a[5] | a[6] | a[7] | a[8] |
168 | 162 | 177 | 155 | 179 | 166 | 191 | 188 |
For i=1 to 3
For j=1 to 5-i
If a(j)>a(j+1) Then
t=a(j) : a(j)=a(j+1) : a(j+1)=t
End If
Next j
Text1.Text = Str(a(i))+Text1.Text
Next i
数组元素a(1)到a(5)的值依次为“2,9,7,8,5”。若该程序段执行后,文本框Text1显示的内容是( )
n=Val(Text1.Text)
ans=0
For i=1 To n-1
For k=n To i+1 Step-1
If a(k)>a(k-1)Then
tmp=a(k):a(k)=a(k-1):a(k-1)=tmp
ans=ans+1
End If
Next k
Next i
Text2.Text=Str(ans)
在文本框Text1中输入“8”,则在文本框Text2中输出的值是( )
For i = 1 To 2
k = i
For j = i + 1 To 7
If a(j) < a(k) Then k = j
Next j
If i <> k Then
t = a(i) : a(i) = a(k) : a(k) = t
End If
Next i
数组元素a(1)到a(7)的值依次为“19,85,86,90,24,22,62”,经过该程序段“加工”后,数组元素a(1)到a(7)的值依次为( )
i=1: j=6: n=0: f=False
key=Val(Text1.Text)
Do While i<=j and Not f
n=n+1
m=Fix((i+j)/2)
If key=a(m)then f=True
If key<a(m)then j=m-1 Else i=m+1
Loop
数组元素a(1)到a(6)的值依次为“12,19,27,31,46,55”,文本框Text 1中输入“31”后运行该程序,则以上程序段运行结束后,下列说法不正确的是( )
L=1: R=10: n=10: key=78
Do While L<=R
m=Fix((L+R)/2)
If Then
R=m-1
Else
L=m+1
End If
Loop
For i=1 To R
List1.Additem Str(a(i))
Next i
数组元素a(1)到a(10)的值依次为86,78,78,77,73,69,60,54,54,51,若执行该程序段后,列表框List1中输出的数据个数为3,则方框处的代码为( )
i=1: j=8: c=0
key= Val(Textl. Text)
Do While i<=j
m=Int((i+j)/2)
t=b(m)
c=c+1
If a(t)=key Then p=t:Exit Do
If a(t)<key Then
i=m+1
Else
j=m-1
End If
Loop
当文本框 Text1中输入的值为32时,程序运行结束后变量c的值为( )
Private Sub Command1Click()
Dim a(1 To 50) As Integer, i%, j%, t%, p%, n%, x%
n=0
Randomize
Do While n<50
x=
For i= 1 To n
If Then Exit For
Next i
If i> n Then
a(n)=x
End If
Loop
For i= 1 To 49
For j=i+ 1 To 50
If a(p)> a(j) Then
Next j
t= a(p): a(p) = a(i): a(i)=t
Next i
For i= I To 50
Print a(i);
if Then Print
Next i
End Sub
n =10
Text1. Text =" "
For i=1 To 5
For j=n To i+1 Step-1
If a(j) < a(i) Then
temp = a(j) : a(j) = a(i) : a(i) = temp
End If
Next j
Next i
For i=1 To 10
Text1. Text = Text1. Text+Str(a(i))
Next i
数组元素a(1)到a(10) 的值依次为“965,155,195,444,106,734,172,983,898,360”,执行该程序段,文本框Text1中显示的是( )