2014年9月全国计算机二级VB上机真题第2套

97

下载该套环境

一、基本操作

(1)在名称为Form1,标题为"滚动条属性设置"的窗体上画1个名称为VScroll1的垂直滚动条,设置属性,使得滚动块在最上面时,其位置值为10;滚动块在最下面时,其位置值为30;窗体刚显示时,滚动块处在中间位置,如图所示。

注意:存盘时必须存放在考生文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。

 

 

(2)在名称为Form1的窗体上,画1个名称为Label1的标签,其标题为"等级考试",显示为宋体10号字,且能根据标题内容自动调整标签的大小,并有凹陷效果,如图2所示。再画1个名称为Timer1的计时器控件,通过属性窗口设置有关属性,使其不可用,时间间隔为1秒。

要求:编写适当的事件过程,使得程序运行时,单击Label1标签,则每隔1秒,Label1中所显示的内容在原有基础上增大1个字号;单击窗体,Label1中的内容停止增大。

 

 

    注意:要求程序中不得使用变量,事件过程中只能写一条语句。存盘时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。

 

 

   二、简单应用

(1)考生文件夹下有一个工程文件sjt3.vbp,其窗体上有1个名称为Text1的控件数组;一个标题为"排序"的命令按钮。程序运行时,在文本框数组中输入8个整数,如图1所示;然后单击"排序"按钮,则8个整数按降序排序,如图2所示。在给出的窗体文件中已经有了全部控件,但程序不完整。请将事件过程中的注释符去掉,把?改为正确的内容,以实现上述程序功能。

 

注意:考生不得修改窗体文件中已经存在的控件和程序,最后将程序按原文件名存盘。

 

 

 

 

(2)在考生文件夹下有工程文件sjt4.vbp。其窗体界面如图所示,可以实现以下功能:"添加项目"按钮可以把在组合框编辑区中输入的新项目添加到组合框列表中,但不能添加重复项目;"删除项目"按钮从列表中删除选中的项目;"添加爱好"按钮把组合框编辑区中的内容追加到下面的文本框原有内容之后;"清除爱好"按钮清除该文本框内容。在给出的窗体文件中已经有了全部控件,但程序不完整。请将事件过程中的注释符去掉,把?改为正确的内容,以实现上述程序功能。

注意:考生不得修改窗体文件中已经存在的控件和程序,最后将程序按原文件名存盘。

 

 

   三、综合应用

在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有2个标题分别是"读数据"和"统计"的命令按钮,1个名称为Text1的文本框,2个标签控件,如图所示。

程序功能如下:1)单击"读数据"按钮,则将考生文件夹下in5.dat文件的内容(该文件中含有不超过800个英文单词,单词之间用1个空格隔开)显示在Text1文本框中;2)单击"统计"按钮,则自动统计Text1中所有5字母单词的个数,并显示在右下角的Label1标签中。"读数据"按钮的Click事件过程已经给出,"统计"按钮的Click事件过程不完整,函数GetWords的功能是从字符串s中分离出每个单词,依次放入数组words的数组元素中,返回值为单词的总数目。

 

要求:1)请将程序中的注释符去掉,把 ?改为正确的内容;2)补全"统计"按钮Click事件过程中的代码,以实现上述程序功能。

注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行之前,必须进行"统计",且必须用窗体右上角的关闭按钮结束程序,否则无成绩。最后,程序按原文件名存盘。

 

 

  (1)【解题思路】垂直滚动条的最大刻度值和最小刻度值分别由Max和Min属性设置, 垂直滚动条位置值由Value属性设置。


【操作步骤】


步骤1:新建一个窗体,按照题目要求添加一个垂直滚动条控件,并按表在属性窗口中设置相应属性。


控件 垂直滚动条 窗体 
属性 Max Min Value Caption 
设置值 30 10 20 滚动条属性设置 
步骤2:调试并运行程序,关闭程序后按题目要求存盘。

(2)【解题思路】Label标签字体由Font属性设置,内容由Caption属性设置,自动调整属性由AutoSize设置,凹陷效果由BorderStyle设置,计时器控件不可用由Enabled属性设置,时间间隔属性由Interval属性设置。
【操作步骤】

步骤1:新建一个窗体,按照题目要求添加Label控件和Timer控件,并按表在属性窗口中设置相应属性。

控件 Label控件 Timer控件 
属性 Caption Font AutoSize BorderStyle Enabled Interval 
设置值 等级考试 宋体,10号 true 1 false 1000 
步骤2:打开代码编辑窗口,在指定位置编写如下代码。


参考答案

Private Sub Form_Click()

Timer1.Enabled = False '设置计时器控件的Enabled属性使其不可用

End Sub
Private Sub Label1_Click()

Timer1.Enabled = True '单击Label1时使控件可用

End Sub
Private Sub Timer1_Timer()

Label1.Font.Size = Label1.Font.Size + 1 '字号增大1个

End Sub


步骤3:调试并运行程序,关闭程序后按题目要求存盘。

 

二、简单应用

(1)【解题思路】此题的排序方法是交换排序法,交换排序法的思想是两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。


【操作步骤】


步骤1:打开本题项目工程。


步骤2:打开代码编辑窗口,去掉程序中的注释符"'",将问号改为正确的内容。


参考答案(阴影部分是需考生填入的内容)


Private Sub Command1_Click()

        For i = 0 To 6
            k = i
             For j = i + 1 To 7
                If Val(Text1(j).Text) > Val(Text1(k).Text) Then
                    k = j
                End If
            Next j
            j = Text1(i).Text
            Text1(i).Text = Text1(k).Text
            Text1(k).Text = j
        Next i


End Sub


步骤3:调试并运行程序,关闭程序后按题目要求存盘。


(2)【解题思路】组合框控件的增加项是AddItem过程,删除项目是RemoveItem过程。当前选择项属性是ListIndex属性。"添加项目"中命令中处理AddItem过程,"删除项目"中处理RemoveItem过程,"添加爱好","清除爱好"处理文本框中Text属性。


【操作步骤】


步骤1:打开本题工程文件。


步骤2:打开代码编辑窗口,去掉程序中的注释符"'",将问号改为正确的内容。


参考答案(阴影部分是需考生填入的内容)


Private Sub Command1_Click()

        For k = 0 To Combo1.ListCount - 1
             If Combo1.Text = Combo1.List(k) Then
                Exit For
            End If
        Next k
        If k >= Combo1.ListCount Then
             Combo1.AddItem (Combo1.Text)
        Else
            MsgBox ("此项目已存在!")
        End If

End Sub

 

Private Sub Command2_Click()

        If Combo1.ListIndex >= 0 Then
             Combo1.RemoveItem (Combo1.ListIndex)
        End If

End Sub

 

Private Sub Command3_Click()

        Text1.Text = Text1.Text & " " & Combo1.Text

End Sub

 

Private Sub Command4_Click()

        Text1.Text = ""

End Sub


步骤3:调试并运行程序,关闭程序后按题目要求存盘。

 

三、综合应用

【解题思路】从文件中读取一串文本到文本框中,将文本框中的内容划分到数组中,遍历数组中的内容,如果字符串长度等于5,长度为5的单词个数增加1.


【操作步骤】


步骤1:打开本题工程文件。

步骤2:打开代码编辑窗口,去掉程序中的注释符"'",将问号改为正确的内容,并在指定位置编写代码。


参考答案(阴影部分是需考生填入的内容)


Private Function GetWords(s As String, words() As String) As Integer

        Dim m%, ch$
        ch = ""
        For k = 1 To Len(s)
            c = Mid(s, k, 1)
            If c <> " " Then
                ch = ch + c
            Else
                m = m + 1
                words(m) = ch
                ch = ""
            End If
        Next k
         GetWords = m

End Function

Private Sub Command2_Click()

        Dim ch(800) As String, n As Integer
        If Len(s) = 0 Then
            MsgBox "请先使用"读数据"功能!"
        Else
             m = GetWords(Text1.Text, ch)
             n = 0
             Dim value
             For k = 1 To m
             If Len(ch(k)) = 5 Then
             n = n + 1
             End If
             Next k
             Label1.Caption = n
        End If 


End Sub '统计Text1中所有5字母单词的个数,并显示在Label1标签中

步骤3:调试并运行程序,关闭程序后按题目要求存盘。