图1图2
16.【加试题】小明编写一个VB程序,功能如下:在文本框Text1j中输入一段英文,并在文本框Text2中输入英文段落中的某个单词(或字符串),单击“最大间距”按钮(Command1)后,在文本框Text3中显示该单词在文中某两次出现的最大间距,若只出现一次或不出现则显示值为0。程序运行界面如下图所示:
实现上述功能的VB程序如下: Private Sub Command1_Click()
Dim a(1 To 1000)As String '数组a存储文中出现该指定单词(或字符串)的各个位置 Dim s As String.c As String,ch As String Dim n As Integer,max As Integer,i As Integer s=Text1.Text c=Text2.Text n=0:Max=0
For i=1 To Len(s)-Len(c)+1 ch=____①____ If ch=c Then n=n+1 a(n)=i If n>=2 Then
If a(n)=a(n-1)-Len(c)>Max Then Max=a(n)-a(n-1)-Len(c) End If End IF Next i
Text3.Text=____②____ End Sub
以上程序段运行时,为了实现上述功能,划线处①和②应填入的代码分别为: (1)_____________________________________________________________; (2)_____________________________________________________________。
6/8
17.【加试题】小方同学使用VB编程研究素数问题,程序运行界面如图所示。他发现1~100之内的素数一共有25个,并且将这些素数全部保存到数组a中,在列表框List1中显示所有素数(按大小从低到高排列)。在文本框Text1中输入需要查找的数据,单击“查找”按钮Command2,在标签框Label3中显示查找结果。
程序代码如下:
Function search(k As Integer)As Integer i=1:j=25 Do While i<=j m=____①____ If a(m)=k Then search=m:Exit Function ElseIf k
j=m-1
Else
i=m+1 End If Loop
search=0 End Function
Private Sub Command1_Click() '生成素数事件过程 Dim i As Integer,j As Integer,k As Integer List1.Clear k=0
For i=2 To 100 For j=2 To i-1 If i Mod j=0 Then Exit For End If Next j Next j
7/8
Dim a(1 To 25)As Integer '数组a用于存储1~100之内的素数
If____②____Then k=k+1 a(k)=i
List1.AddItem“a(”& k &“)=”& a(k) End If Next i End Sub
Private Sub Command2_Click() '查找数据事件过程 Dim t As Integer,r As Integer t=Val(Text1.Text) r=____③____ If r=0 Then
Label3.Caption=“1~100中的素数无此数据!” Else
Label3.Caption=“素数序列和第”&Str(r)&“个数!” End If End If End Sub
(1)自定义函数search采用的算法是________。(填:顺序查找/对分查找) (2)程序中①划线处应填入_________________________________________。
(3)程序中②划线处应填入_________________________________________。(4)程序中③划线处应填入_________________________________________。
8/8