题库 高中信息

题干

某同学编写一个“查找子串出现位置”的程序。功能如下:在文本框Text1中输入字符串s1,在文本框Text2中输入字符串s2,点击按钮Command1后在标签Label3上显示查找的结果。运行界面所示。

(1)在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的 属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。

Private Sub Command1_Click()

Dim s1 As String, s2 As String

Dim i as integer , j as integer

s1 = Text1.Text

s2 = Text2.Text

For i = 1 To Len(s1) - Len(s2) + 1

     

    Do While  Mid(s1, i + j, 1) = Mid(s2, j + 1, 1)  And  j < Len(s2)

j = j + 1

    Loop

    If j = Len(s2) Then Exit For

 Next i

   If  j=Len(s2)  Then

Label3.Caption = "找到,起始位置:" +  

    Else

Label3.Caption = "不存在该子串"

    End If

End Sub

(3)运行该程序,在文本框Text1中输入“10100101”,在Text2中输入“01”(两次输入均不包含引号),点击“查找子串位置”按钮后,在label3上显示   
上一题 下一题 0.99难度 填空题 更新时间:2019-04-24 10:09:58

答案(点此获取答案解析)

同类题3

在数组a中按顺序找出一组升序子序列,可以不连续,但要求长度最长。例如:数组a的值分别为2,11,4,13,5,7。升序子序列分别有2,11、2,4、2,11,13、2,4,13、2,4,5、
2,4,5,7、11,13、4,13、4,5、4,5,7、5,7,其中最长升序子序列的数据是2,4,5,7。

算法思路如下:

(1)求以a(i)为结尾元素的最长升序子序列时,找到所有序号j(j=1,2……i-1),且a(j)<a(i)。

如果这样的元素存在,且d(j)>=d(i)(d(i)记录i位置的最长升序子序列长度),那么就增加i位置的最长升序子序列长度,并记录该升序子序列倒数第二个位置。

(2)在d数组中找出最大值,即最长升序子序列长度。

(3)例如,2、11、4、13、5、7,d(1)=1,d(2)=2,d(3)=2,d(4)=3,d(5)=3,d(6)=4,所以最长升序子序列长度为4,是以a(6)为结尾元素。

现设计了如下VB程序,界面如图所示,请回答下列问题:


(1)观察上图,最长升序子序列的数据是____________________________。
(2)请在划线处填入合适的代码。
Const n = 9
Dim a(1 To n) As Integer
Private Sub Form_Load()

‘生成n个1,10范围的随机数,存储在a数组,并显示在列表框List1。代码略

End Sub
Private Sub Command1_Click()
Dim d(1 To n) As Integer ‘记录i位置的最长升序子序列长度
Dim pre(1 To n) As Integer ‘记录i结尾的最长升序子序列前一数据的位置
Dim st As String,i As Integer,k As Integer,maxlen As Integer
For i = 1 To n

d(i) = 1

Next i
For i = 2 To n

For j = 1 To i-1

If a(j) < a(i) And d(j) >= d(i) Then
d(i) = ___________ 
pre(i) = j
End If

Next j

Next i
maxlen = 0:k = 0
For i = 1 To n

If ___________ Then maxlen = d(i):k = i

Next i
Do While k <> 0

st = a(k) & "," & st

_____________

Loop
Text1. Text = Mid(st,1,Len(st)-1)
End Sub

同类题4

甲乙双方进行一场球类比赛,一局计分的规则是:赢1球得1分,用“1”表示;输1球失1分,用“0”表示。当任一方得分大于等于6分,且领先对方2分及以上,领先方赢一局。如甲选手一局比赛数据为“101110101”,表示甲选手得6分失3分,局比分
小王用一个字符串记录了甲选手多局比赛数据,其中有一处错误,位于连续多个“0”的最后一个。为了找出错误,小王的处理方法如图a所示,对示例中疑似错误位置6和20分别修改数据,并统计每局比分。他编写了VB程序,功能如下:在窗体Form l的文本框Text l中输入记录数据,单击“分析”按钮Command 1,在列表框List 1中输出修改位置以及修改后每局的比分。程序运行界面如图b所示。
(1)下列对象中有Text属性的是________(单选,填字母:
A.Command 1/B.Form 1/C.Text 1)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
   
图a 图b
Private Sub Command 1_Click()
Dim sp As String,s As String s    s存储甲选手多局比赛的记录数据,长度小于50
Dim a(1 To 50)As Integer,e(1 To 20)As Integer
Dim I As Integer,j As Integer,k As Integer,n As Integer,m As Integer
Dim fl As Integer,f2 As Integer



  
Next i



    找出疑似错误位置

Loop
If     Then

End If

Loop
    对每个疑似错误位置分别修改数据,并统计每局比分






If  Then


End If
Next j

List 1.AddItem sp
   
Next i
End Sub