实现上述功能的VB程序如下,但加框处代码有错,请改正。
Function f(x As Double)As Double
Dim Y As Double
y=x^3-4*x^2+x+5: ‘(1)
End Function
Private Sub Command1_Click()
Dim a As Double,b As Double,m As Double,x As Double
a=Val(Text1.Text):b=Val(Text2.Text)
If f(a)*f(b)<0 And a<b Then
Do While a<=b
m=(a+b)/2
If Abs(f(m))<0.00001 Then Exit Do
If <0 Then ‘(2)
b=m
Else
a=m
EndIf
Loop
x=Format(m,“0.00000”) ‘Format函数用于定义输出的小数位数
List1.AddItem"["&Text1.Text&","&Text2.Text&"]" & "解为:"&x
Else
List1.AddItem"["&a&","&b&"]" & "重新输入区间"
EndIf
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
① ② ③
n=0:i=1:j=8
Key=Val(Text 1.Text)
Do While i<=j
m=(i+j)\2
If Key=d(m) Then Exit Do ‘Exit Do表示退出循环
If Key>d(m) Then
j=m-1:n=n-1
Else
i=m+1:n=n+1
End If
Loop
Label 1.Caption=Str(n)
当输入不同的Key值, 运行该程序段后, 在标签Label1中显示的不同结果共有( )
Private Sub Command 1_Click()
Const n = 15
Dim a(1 To n)As Integer,search As Integer,key As Integer
Dim i As Integer,j As Integer,m As Integer
'读取一组正整数,按上述规则存入数组a中,代码略
key = Val(Text1.Text)
i = 1:j = n:search = 0
Do While i <= j
m =(i+j)\2
If m Mod3<>0 Then m= ‘⑴把m调整到三个数一组的最后一个数的位置
If key = a m)Then
search = m:Exit Do
Elself key <a(m)Then
j = m - 3
Elself Then ‘⑵
i= m + 1
ElseIf key = a(m-2)Then
search = m-2 :Exit Do
ElseIf key = a(m- 1)Then
search = m-1:Exit Do
Else
search = 0:Exit Do
End If
Loop
If search <>0 Then
Text2.Text = Str(search)
Else
Text2.Text ="找不到"
End If
End Sub
⑴ ⑵
i=1:j=n
flag=False
Do While i<=j And Not flag
m=(i+j+1)\2
If a(m) <a(m-1) And a(m) >a(m+1) Then
⑴
ElseIf a(m) >a(m-1) And a(m) >a(m+1) Then
⑵
ElseIf a(m) >a(m-1) And a(m) <a(m+1) Then
⑶
End If
Loop
list1.Add Item Str(a(m) ) &Str(m)
上述程序方框出可选语句为:i=m+1②j=m-1③flag=true
则(1)、(2)、(3)处语句依次是( )
i= 1 : j =9 : n =0
key=Val(Text1.Text)
Do While i<= j
N=n+1
M=Fix((i + j) / 2)
If key = d(m) Then Exit Do
If key<d(m) Then j= m - 1 Else i=m+1
Loop
数组元素d(l)到d(9)的值依次为“7,12,18,25,39,58,61,72,86”。若该程序段运行结束后,n的值为2,则key的值是( )
n = 0: i = 1: j = 6
Key = Val(Text1.Text)
Do While i <= j
m = (i + j) \ 2
n = n + 1
If Key = d(m) Then Exit Do
If Key < d(m) Then j = m - 1 Else i = m + 1
Loop
If i <= j Then s = m - n Else s = n
数组d(1)到d(6)的值依次为“4,6,9,13,20,25”,输入某个Key值后,运行该程序段后,变量s结果为3,则输入key的值不可能是( )。
Dim a(1 To 10) As Integer
Dim i As Integer, j As Integer
Dim key As Integer
i = 1: j = 10: n = 0
Randomize
key = Int(Rnd * 10) * 2 + 1
Do While i <= j
m = Int((i + j) / 2 + 0.5)
If key = a(m) Then
Exit Do
ElseIf key > a(m) Then
j = m - 1: n = n - 1
Else
i = m + 1: n = n + 1
End If
Loop
Text1. Text = Str (n)
已知数组元素a(1)至a(10)的值依次为20,19,17,16,14,11,8,5,2,0若执行该程序后,文本框Text1中显示的内容不可能是( )
a[1] | a[2] | a[3] | a[4] | a[5] | a[6] | a[7] |
188 | 177 | 175 | 172 | 168 | 166 | 155 |
F(0)=0 (n=0)
F(1)=1 (n=1)
F(n)=F(n-1)+F(n-2) (n≥2)
输出斐波那契数列中第10个数的Python程序如下:
def fib(n):
a,b= 0,1
for i in range(n):
return a
print(fib(10))
关于加框处的代码,下列说法正确的是( )
def search(x,nums):
low = 0
heigh = len(nums)-1
while low <=heigh:
mid = ①
if x == nums[mid]:
return mid
elif x > nums[mid]:
low = ②
else:
heigh = ③
return -1
nums =[2,4,8,9,10,20,30,77,88,100]
num = int(input("请输入你要查找的数:"))
print("你要找的数在数组从0开始的第",search(num,nums),"个位置")
下列说法正确的是( )
s=0;i=1:j=7
Do While i<=j
m=(i+j)\2
If Key = a(mi) Then Exit Do
If Key < a(m) Then j=m-1:s=3ks+2Else i=m+1:s=3ks
Loop
数组a(1)到a(10)的值依次为“2,6,7,15,20,24,27”,执行该程序段后,s的值为6,则key的值可能是( )
For p = 1 To 6
i = 1: j = 6: q = 0
Do While i <= j
m = (i + j) \ 2
q = q + 1
If p = m Then
f(p) = q: Exit Do ' Exit Do 表示退出循环
End If
If p > m Then i = m + 1 Else j = m - 1
Loop
Next p
数组元素f(1)到f(6)初始为0,执行该程序段后,其值依次是( )
i = 1: j = 8 : n = 0
key = Val(Text1.Text)
Do While i <= j
m = (i + j- 1) \ 2
n=n+1
If a(m) >=key Then
i = m + 1
Else
j = m - 1
End If
Loop
Label1.Caption=Str(n)+Str(i)
数组元素a(1)到a(8)的值依次为“ 35,32,29,26,21,19,16,12”。在文本框Text1中输入17,执行该程序段后,标签Label1上显示的内容是( )
Function f(n As Integer) As Long
If n<=1 Then
f= 1
Else
f=n* f(n-1)
End If
End Function
n= Va1(Text1. Text)
k=0
left= 1
right= n
Do While left < = right
k=k+1
m=(left+ right)\2
If m-left< right- m Then
left=m+1
Else
right= m- 1
End If
Loop
在文本框Text1l中输入16,执行该程序段,下列说法错误的是( )
Const n= 10
i=1 : j=n-1
Do While j-i>=2
m=(i+j) \ 2
If ⑴ Then
i= m
Else
⑵
End If
Loop
Text1. Text= Str(3) )
上述程序中(1)(2)(3)划线处可选语句有:
①a(j)-a(m)=j-m②a(m)-a(i)=m-i③j=m-1④j=m⑤a(i)+1⑥a(i)
则上述程序中(1)、(2)、(3)划线处的代码依次为( )
i =1 : j=8 : x=27 : mark = False
Do While i <= j And Not mark
m=(i+j+1)\2
If a(m) = x Then mark = True
If a(m)>x Then j=m-1 Else i=m+1
Text1. Text = Text1. Text+Str(m)
Loop
执行该程序段,文本框Text1中显示的是( )