学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术
给定一个词典(单词按字典顺序排列,数量不超过12000个),寻找词典中所有的复合单词,并将复合单词以字典逆序显示输出。复合单词:被定义为由词典中两个单词连接而成的单词。
例如:

分析:如果词典中的单词数量比较少,我们可以采取将第i个单词与第j个单词拼接成“新单词”并在字典中查找,但如果词典中单词数量多(如12000个)此种方法速度慢,我们发现词典中的单词是有序排列,可以加快查找复合单词的速度,本题的算法策略是:对第i个单词,从第j(j=i+1)个开始判断,如果第j个单词前半部分(长度为第i个单词的长度)跟第i个单词一致,则在词典中查找第j个单词的后半部分。如果找到,则为一个复合单词。

编写vb程序,寻找词典中所有复合单词并输出显示。运行程序,在列表框list1中显示从词典数据库中导入的单词,单击“统计”按钮command1,在列表框list2中按降序显示该词典中所有复合单词。程序运行界面如图所示。



(1)如图所示,复合单词有________
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim n As Integer
Dim a(1 To 200) As String
Function search(key As String) As Boolean
       _______
       i = 1: j = n
       Do While i <= j
             m = Int(i + (j - i) / 2)
             If key = a(m) Then
                    search = True: Exit Do
             ElseIf key > a(m) Then
                    i = m + 1
             Else
                    j = m - 1
             End If
       Loop
End Function
Private Sub Command1_Click()
Dim i As Integer, j As Integer, temp2 As String
Dim out(0 To 100)
For i = 1 To n
       For j = i + 1 To n
             If a(i) = Mid(a(j), 1, Len(a(i))) Then
                    ________
                    If search(temp2) = True Then
                           cnt = cnt + 1
                           k = cnt
                           Do While a(j) > out(k) And k > 0 '找到a(j)应该插入的位置k
                                 k = k - 1
                           Loop
                           For p = cnt To k + 1 Step -1 'k到末尾元素均后移一位
                                 out(p) = out(p - 1)
                           Next p
                           _______
                    End If
             End If
       Next j
Next i
For i = 1 To cnt
       List2.AddItem out(i)
Next i
End Sub
Private Sub Form_Load()
       Dim i As Integer
连接字典数据库
打开数据库中字典数据表,代码略
       n = 0
       Do While Not rs.EOF
             n = n + 1
             a(n) = rs.Fields("words")
             rs.MoveNext
       Loop
     关闭数据连接,代码略
       List1.Clear
       For i = 1 To n
             List1.AddItem a(i)       '在列表框List1中显示单词
       Next i
End Sub
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交