题目

使用如图a所示的九宫格键盘输入单词,每个单词对应一个按键组合,如“tree对应的按键组合为“8733”;而按键组合“8733”对应的单词有“tree”、“used”等。抽取n个英文单词(可重复),使用九宫格键盘输入,统计最频繁使用的按键组合。 编写VB程序,实现上述功能。运行程序,在列表框List1中显示n个英文单词(单词仅由小写字母组成且字母个数至少为1),单击“统计”按钮Command1,在列表框List2升序显示全部单词的按键组合,在文本框Text1中显示最频繁使用的按键组合,若有多个,则全部输出。程序运行界面如图b所示。 (1) 下列类中生成的对象具有Text属性的是 (单选,填字母: A . Label / B . TextBox/ C . CommandButton )。 (2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。 'n为常量,代码略 Dim a(1 To n) As String       '数组a存储所有单词 Dim b(1To2*n) As String       '数组b存储转换后的按键组合 Private Sub Form_ Load()     '读取所有单词存入数组a,并显示在列表框List1中     '初始化数组b各元素为空字符串,代码略 End Sub Private Sub Command1_Click()     Dim i As Integer, j As Integer, k As Integer, p As Integer, max As Integer     Dim m As Integer, key As String, t As String, s1 As String, s2 As String     key= 222334455566677889999      'key 表示a-z各个字母所对应的键盘数字     max=0     '以下代码实现将数组a中的每个单词转化成按键组合,并依次存入数组b中     For i= 1 To n         t= ""         For j= 1 To Len(a(i))             m = Asc(Mid(a(i), j, 1))- Asc("a")             t=         Next j         b(i)= t     Next i     '以下代码实现对数组元素b( 1)~b(n)升序排序         Do While i>=1         For j= 1 To i             If b(j+ 1)< b(j) Then                 t=b(j+ 1): b(j+ 1)= b(j): b(j)=t             End If         Next j         i=i- 1     Loop     '将排序后数组元素b(1)~b(n)显示在列表框List2中,代码略     s1= b(1)     p=n+ 1     i= 1:j= 2     Do While j<= n      '从数组元素b(n+1)开始存储最高频次的按键组合         s2 = b(j)         If s1 < s2 Then             If  Then                max=j-i                p=n+ 1                b(p)=s1             Else If max=j- i Then                 p=p+ 1                 b(p)= sl             End If             s1= s2                     End If         j=j+ 1     Loop     t=""     If max<j- i Then         t= s1     Else         For k=n+ 1 To p             t=t+ b(k)+" "         Next k         If max=j- I Then t=t+" "+s1     End If     Text1.Text= "最频繁按键组合为: " &t End Sub (3) 程序中加框处代码有错,请改正。 答案: 【1】B 【1】i=n- 1【2】max<j-i【3】i=j t+ Mid(key, m+ 1, 1)
信息技术 试题推荐
最近更新