做法是比较中点与当前查找范围第1个数大小关系,用对分法使查找范围逼近拐点;当余下数组只有二个元素时,可根据此二元素大小关系得到拐点的位置。
依据上述描述设计了VB程序,界面如图所示。请回答下列问题:
Dim a(1 To 20) As Integer
Private Sub Command1_Click()
Dim Low As Integer, High As Integer
Low = 1
High = 20
Do While High > Low
If ① Then '当只余下两个元素时
If ② Then
Label1.Caption = "拐点元素为" + Str(a(1)) + ",下标为" + Str(1)
Else
Label1.Caption = "拐点元素为" + Str(a(High)) + ",下标为" + Str(High)
End If
Exit Do
End If
If a(m) >= a(Low) Then
Low = m
Else
③
End If
Loop
End Sub
Private Sub Form_Load()
'生成循环递增的数组a,代码略
End Sub
① ② ③
Private Sub cmd1_Click()
Dim i As Integer, n As Integer
Dim max As Integer, count As Integer
Dim s As String s = Text1.Text
n =
count = 1: max = 1
For i = 2 To n
If Then count = count + 1
Else
If count > max Then max = count
End If
count = End If
Next i
Label1.Caption = "最长连续子串字符数为:" + Str(max) End Sub
图1
输入火柴棍的数量n(n≤24),计算可以拼出多少个“A+B=C”的等式?要求:
① 加号与等号各自需要两根火柴棍。
② A、B、C为非负的整数,且该数非零时,最高位不能是0。
③ 如果A≠B,则A+B=C 与B+A=C 视为不同的等式。
④ n 根火柴棍必须全部用上。
小明发现,数字1用的火柴棍最少,24根火柴棍全部用上的话,能拼出最大的整数A或B不超过1111,C不超过2222。他编写了一个VB 程序,在文本框Text1中输入火柴棍的数量,单击“统计”按钮Command1,在文本框Text2中输出“A+B=C”的方案数,程序界面如图2所示。
图2
实现上述功能的VB程序如下,请回答下列问题:
Private Sub Command1_Click()
Dim a(0 To 2222) As Integer '存储每个整数需用的火柴棍数
Dim n As Integer, ans As Integer
Dim i As Integer, j As Integer
n = Val(Text1.Text)
For i = 0 To 2222
a(i) = 0
Next i
'得到0~9 中每个数字需用的火柴棍数
a(0) = 6: a(1) = 2: a(2) = 5: a(3) = 5: a(4) = 4
a(5) = 5: a(6) = 6: a(7) = 3: a(8) = 7: a(9) = 6
n = '去掉等号与加号后,剩余的火柴棍数量
For i = 10 To 2222 '计算出10~n 中每个数字需用的火柴棍数
a(i) = a() + a(i Mod 10)
Next i
ans = 0
'枚举0~n 中任意两个数,判断~否符合A+B=C 的火柴棍数量
For i = 0 To 1111
For j = 0 To 1111
If a(i) + a(j) + a() = n Then
ans = ans + 1
End If
Next j
Next i
Text2.Text = Str(ans)
End Sub
步骤1:如果待筛选的玻璃球个数小于或等于,则认定已经找出了这颗玻璃球(认定方法参照步骤2中描述),停止筛选,并输出筛选总次数;否则,重复执行步骤2。
步骤2:按编号依次将玻璃球均分成3份,如果有多余的则放入第3份中。比较第1、2份的玻璃球质量:
①如果第1份等于第2份的质量,则选取第3份的玻璃球作为下一次筛选的对象;
②如果第1份小于第2份的质量,则选取第1份的玻璃球作为下一次筛选的对象;
③如果第1份大于第2份的质量,则选取第2份的玻璃球作为下一次筛选的对象。
重复执行步骤1。
例如:第1次筛选的小球编号区间是1~100,均分成3份的待称重小球编号分别是1~33、34~66、67~100;第2次则选取以上3份的其中一份进行再筛选、再均分,……,直至找到。
解决上述问题的VB程序功能如下:运行程序,在列表框List1中显示100组数据,每组数据分别代表每个编号及对应的小球质量(其中有且只有一个小球的质量与其他小球不同),单击“查找”按钮 Command1,在列表框List2中显每次筛选的编号区间和完成筛选的总次数。程序运行界面如图所示。
Const maxn = 100
Dim a (1 To maxn) As Integer
Dim w (1 To 2) As Integer ‘ 数组w用来存储第1份和第2份小球的质量
Private Sub Form Load ( )
‘ 此处代码用来模拟产生100个小球的质量,分别存储在数组元素a(1)~a(100)中
‘ 其中只有1个小球的质量为8,随机存储在数组a的某元素中,其余质量均为10
‘ 此处代码略
End Sub
Private Sub Command1_Click( )
Din 1eft As Integer, right As Integer ‘ left为起始编号, right为结束编号
Dim s As Integer, C As Integer ‘s 为每次查找的区间长度
left = 1:right = maxn
c = 1:s = right:i = 0
List2 AddItem Str(i+1) +"---->” + Str(maxn)
Do While right - left > =3
w(1) = o:w(2) = 0:k =1
i = left
s = ①
Do While i < = (s \3)*2 + left -1
‘Do语句用于将待筛选的数据进行区域划分
w(k) = w(k)+a(i)
If i = (s\3)*k+ left -1 Then k = k+1
i = i+1
Loop
If w(1) = w(2) Then
left = left + (s\3)*2
ElseIf w(1) < w(2) Then
②
Else
right = left+(s\3)
left =s\3+ left
End If
③
List2. AddItem Str (left) & ”---->” & str(right)
Loop
List2. AddItem "经过”+s tr(c) +" 次后找到”
End sub
① ② ③
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表示退出循环
Else If key<a(m) Then
j=m-1:s=s+“L”
Else
i=m+1:s=s+“R”
End If
Loop
Text 1.Text=s
数组元素a(1)到a(7)的值依次为“24,35,38,41,45,69,78”。若该程序段执行后,文本框Text 1中显示的内容可能是( )
i=1: j=12: k=0: S=""
key=Val(Text1.Text) : c= "N" : flag= False
Do While i <= j And flag = False
m=(i+j+1)\2: k=k+1
If key = a(m) Then c= "Y" : flag= True
If key > a(m) Then j=m-1 Else i=m+ 1
s=s & Str(a(m))
Loop
Text2.Text = s : Text3.Text = c
数组a(1)到a(12)的值依次为“99,91,85,76,68,61,53,42,34,27,20,13”,执行该程序段后,下列说法正确的是( )
s = 0: i = 1: j = 11
Do While i <= j
m = (i + j) \ 2
If Key > a(m) Then
i = m + 1: s = 2 * s + 1
Else
j = m - 1: s = 2 * s
End If
Loop
Text2.Text = Str(s)
数组a(1)到a(11)的值依次为“2,13,24,31,35,44,47,50,61,88,101”,在文本框Text1中输入下列选项值,所得输出结果与其他三项不相同的是( )
screen.fill((255,255,0)) #窗口填充黄色*
( ) #加载背景图像
( ) #将背景图画在窗口
pygame.display.update() #窗口刷新
Private Sub Command1_Click()
i=1
j=7
Do While _______
i=_______
j=________
Loop
Text1.Text=Str(i)
Text2.Text=Str(j)
End Sub
则下列说法正确的是( )
Dim a(1 To 10) As Integer
n=0:a(1)= 1
For i=2To 10
a(i)= a(i-1) + Int(Rnd( )* 2)+ 1
Next i
Key = Int(Rnd( )* 5)
Top= 1: bottom= 10
Do While Top <= bottom
m = (Top + bottom) \2
n=n+ 1
If Key = a(m) Then
Exit Do
ElseIf Key > a(m) Then
Top=m+ 1
Else
bottom= m- 1
End If
Loop
运行该程序段后,n的值不可能的是( )
'随机产生包含20个整型元素的升序序列,依次存入数组a.代码略
i = 1:j = 20:s = ""
key = Val(Text1. Text)
Do While i < = j
m = (i + j)\2
s = s + Str(a(m))
If a(m)= key Then Exit Do 'Exit Do表示退出循环
If a(m)> key Then j = m - 1 Else i = m + 1
Loop
Text2. Text = s
在文本框Text1中输入待查找数,执行该程序段后,下列选项中,文本框Text2中显示的内容不可能的是( )
a=1: b=1:c=1
do while a+b+c<=10
a=a+1
b=b*2
c=b/2
loop
key=Val(Text1.Text)
i=1: j=8
Text2.Text=“ ”
Do While i<=j
m=Int(i+j)/2)
If key=a(m) Then Exit Do 'Exit Do 表示退出循环
If key<a(m) Then j=m-1 Else i=m+1
Text2.Text=Str(a(m))+Text2.Text
Loop
数组元素a(1)到a(8)的数据依次为“12,25,36,47,68,79,87,99”,文本框Text1中输入的值是12,执行该程序段后,文本框Text2中显示的是( )
①密码是八位数字,前两位为19
②最后两位数字是91
③能被77和133整除
程序界面如图所示,单击“找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。
解决此问题的相应的程序如下:
Private Sub Command1_Click()
Dim i As Long, s As Long
For i = 0 To 9999
s = ① 's表示该八位数密码
If ② Then '符合密码的条件,s能被77和133整除
List1.AddItem Str(s)
End If
Next i
End Sub
① ②
from flask import Flask,render_template,request
app =
@app.route("/")
def index():
#显示“主页”页面,代码略
@app.route("/introduce")
def introduce():
#显示“介绍”页面,代码略
@app.route("/exercise",methods=["GET","POST"])
def exercise():
#显示“练习”页面,代码略
@app.route("/top")
def toplist():
#显示“排行榜”页面,代码略
if __name__ == "__main__":
app.
A.//127.0.0.1:5000/top toplist() |
a.@app.route("/top") |
B.//127.0.0.1:5000/ exercise() |
b.@app.route("/exercise",methods=["GET","POST"]) |
C.//127.0.0.1:5000/exercise introduce() |
c.@app.route("/introduce") |
D.//127.0.0.1:5000/instance index() |
d.@app.route("/") |
、 、 、