全国计算机等级考试二级笔试样卷Visual Basic语言程序设计
2009-03-03来源:教育部考试中心

  选择题(每小题2分,共70分)

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

  (1)下列选项中不符合良好程序设计风格的是

  A) 源程序要文档化      B) 数据说明的次序要规范化

  C) 避免滥用goto语句   D) 模块设计要保证高耦合、高内聚

  (2)从工程管理角度,软件设计一般分为两步完成,它们是

  A) 概要设计与详细设计  B) 数据设计与接口设计

  C) 软件结构设计与数据设计  D) 过程设计与数据设计

  (3)下列选项中不属于软件生命周期开发阶段任务的是

  A)软件测试     B)概要设计 C)软件维护 D)详细设计

  (4)在数据库系统中,用户所见的数据模式为

  A) 概念模式    B)外模式  C)内模式   D)物理模式

  (5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和

  A) 编码设计    B) 测试阶段    C)运行阶段 D)物理设计

  (6)设有如下三个关系表

 

    下列操作中正确的是

  A)T=R∩S      B)T=R∪S

  C)T=R×S      D)T=R/S

  (7)下列叙述中正确的是

  A)一个算法的空间复杂度大,则其时间复杂度也必定大

  B)一个算法的空间复杂度大,则其时间复杂度必定小

  C)一个算法的时间复杂度大,则其空间复杂度必定小

  D)上述三种说法都不对

  (8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为

  A)63   B)64   C)6    D)7

  (9)数据库技术的根本目标是要解决数据的

  A)存储问题 B)共享问题 C)安全问题        D)保护问题

  (10)对下列二叉树

  

  进行中序遍历的结果是

  A)ACBDFEG  B)ACBDFGE  C)ABDCGEF  D)FCADBEG

  (11)以下叙述中正确的是

  A)窗体的Name 属性指定窗体的名称,用来标识一个窗体

  B)窗体的Name 属性值是显示在窗体标题栏中的文本

  C)可以在运行期间改变窗体的Name 属性的值

  D)窗体的Name 属性值可以为空

  (12)以下叙述中错误的是

  A)打开一个工程文件时,系统自动装入与该工程有关的窗体文件

  B)保存Visual Basic程序时,应分别保存窗体文件及工程文件

  C)Visual Basic应用程序只能以解释方式执行

  D)窗体文件包含该窗体及其控件的属性

  (13)设a = 2, b = 3, c = 4, 下列表达式的值是

  Not a <= c Or 4*c = b^2 And b <> a + c

  A)-1   B)1    C)True D)False

  (14)设有如下的用户定义类型:

  Type Student

  number As String

  name As String

  age As Integer

  End Type

  则以下正确引用该类型成员的代码是

  A)Student.name = "李明"    B)Dim s As Student

  s.name = "李明"

  C)Dim s As Type Student    D)Dim s As Type

  s.name = "李明"             s.name = "李明"

  (15)设a = 5,b = 6,c = 7,d = 8,执行下列语句后,x的值为

  x = IIf((a > b) And (c > d), 10, 20)

  A)10   B)20   C)True D)False

  (16)执行以下程序段后,变量c$的值为

  a$ = "Visual Basic Programming"

  b$ = "Quick"

  c$ = b$ & UCase(Mid$(a$, 7, 6)) & Right$(a$, 12)

  A)Visual BASIC Programming B)Quick Basic Programming

  C)QUICK Basic Programming D)Quick BASIC Programming

  (17)在窗体上画一个文本框(其名称为Text1)和一个标签(其名称为Label1),程序运行后,如果在文本框中输入指定的信息,则立即在标签中显示相同的内容。以下可以实现上述操作的事件过程是

  A)Private Sub Text1_Click()   B)Private Sub Text1_Change()

       Label1.Caption = Text1.Text        Label1.Caption = Text1.Text

     End Sub        End Sub

  C)Private Sub Label1_Change() D)Private Sub Label1_Click()

       Label1.Caption = Text1.Text        Label1.Caption = Text1.Text

     End Sub        End Sub

  (18)在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编写如下事件过程:

    Private Sub Command1_Click()

       Counter = 0

       For i = 1 To 4

          For j = 6 To 1 Step -2

               Counter = Counter + 1

          Next j

       Next i

       Label1.Caption = Str(Counter)

     End Sub

  程序运行后,单击命令按钮,标签中显示的内容是

  A) 11  B)12   C) 16  D)20

  (19)在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:

  Private Sub Command1_Click()

      Dim i As Integer, n As Integer

      For i = 0 To 50

          i = i + 3

          n = n + 1

          If i > 10 Then Exit For

      Next

      Text1.Text = Str(n)

    End Sub

  程序运行后,单击命令按钮,在文本框中显示的值是

  A)5    B)4    C)3    D)2

  (20)在窗体上画一个命令按钮和两个标签,其名称分别为Command1、Label1和Label2,然后编写如下事件过程:

   Private Sub Command1_Click()

       a = 0

       For i = 1 To 10

           a = a + 1

           b = 0

           For j = 1 To 10

               a = a + 1

               b = b + 2

           Next j

         Next i

         Label1.Caption = Str(a)

         Label2.Caption = Str(b)

    End Sub

  程序运行后,单击命令按钮,在标签Label1和Label2中显示的内容分别是

  A)10和20  B)20和110 C)200和110    D)110和20

  (21)在窗体上画一个名称为List1的列表框,一个名称为Label1的标签,列表框中显示若干城市的名称。当单击列表框中的某个城市名时,该城市名从列表框中消失,并在标签中显示出来。下列能正确实现上述操作的程序是

  A)Private Sub List1_Click()    B)Private Sub List1_Click()

       Label1.Caption = List1.ListIndex        Label1. Name = List1. ListIndex

       List1.RemoveItem List1.Text         List1.RemoveItem List1.Text

    End Sub         End Sub

  C)Private Sub List1_Click()    D)Private Sub List1_Click()

       Label1.Caption = List1.Text         Label1.Name = List1.Text

       List1.RemoveItem List1.ListIndex        List1.RemoveItem List1.ListIndex

     End Sub         End Sub

  (22)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:

  Private Sub Command1_Click()

      Dim i As Integer, j As Integer

      Dim a(10, 10) As Integer

      For i = 1 To 3

         For j = 1 To 3

            a(i, j) = (i - 1) * 3 + j

            Print a(i, j);

         Next j

         Print

       Next i

     End Sub

  程序运行后,单击命令按钮,窗体上显示的是

  A) 1  2  3

        

        2  4  6

        3  6  9

  B)  2  3  4

       

       3  4  5

       4  5  6

  C) 1  4  7

 

        2  5  8

        3  6  9

  D)1  2  3

  

     4  5  6

     7  8  9

  (23)在窗体上画一个命令按钮,名称为Command1,然后编写如下代码:

  Option Base 0

  Private Sub Command1_Click()

       Dim A(4) As Integer,B(4) As Integer

       For k = 0 To 2

           A(k + 1) = InputBox("请输入一个整数")

           B(3 - k) = A(k + 1)

       Next k

       Print B(k)

  End Sub

  程序运行后,单击命令按钮,在输入对话框中分别输入2、4、6,输出结果为

  A)0    B)2    C)3    D)4

  (24)有以下程序:

  Option Base 1

  Dim arr() As Integer

  Private Sub Form_Click()

       Dim i As Integer, j As Integer

       ReDim arr(3, 2)

       For i = 1 To 3

           For j = 1 To 2

               arr(i, j) = i * 2 + j

            Next j

       Next i

       ReDim Preserve arr(3, 4)

       For j = 3 To 4

           arr(3, j) = j + 9

       Next j

       Print arr(3, 2); arr(3, 4)

   End Sub

  程序运行后,单击窗体,输出结果为

  A)8  13    B)0  13    C)7  12    D)0  0

  (25)以下叙述中正确的是

  A)一个Sub过程至少要有一个Exit Sub语句

  B)一个Sub过程必须有一个End Sub语句

  C)可以在Sub过程中定义一个Function过程,但不能定义Sub过程

  D)调用一个Function过程可以获得多个返回值

  (26)有以下程序:

  Sub subP(b() As Integer)

      For i = 1 To 4

         b(i) = 2 * i

      Next i

  End Sub

  Private Sub Command1_Click()

      Dim a(1 To 4) As Integer

      a(1) = 5

      a(2) = 6

      a(3) = 7

      a(4) = 8

      subP a()

      For i = 1 To 4

          Print a(i)

      Next i

   End Sub

  运行上面的程序,单击命令按钮,输出结果为      

  A)     2

           4

           6

           8

  B)    5

           6

           7

           8

  C)    10

           12

           14

           16

   D)    出错

  (27)设有如下通用过程:

  Public Function Fun(xStr As String) As String

      Dim tStr As String, strL As Integer

      tStr = ""

      strL = Len(xStr)

      i = 1

      Do While i <= strL / 2

          tStr = tStr & Mid(xStr, i, 1) & Mid(xStr, strL - i + 1, 1)

          i = i + 1

      Loop

      Fun = tStr

   End Function

     在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮。然后编写如下的事件过程:

  Private Sub Command1_Click()

      Dim S1 As String

      S1 = "abcdef"

      Text1.Text = UCase(Fun(S1))

  End Sub

      程序运行后,单击命令按钮,则Text1中显示的是

      A)ABCDEF   B)abcdef   C)AFBECD   D)DEFABC

  (28)在窗体上画一个名称为TxtA的文本框,然后编写如下的事件过程:

      Private Sub TxtA_KeyPress(KeyAscii As Integer)

          ......

      End Sub

     假定焦点已经位于文本框中,则能够触发KeyPress事件的操作是

  A)单击鼠标     B)双击文本框

  C)鼠标滑过文本框       D)按下键盘上的某个键

  (29)在窗体上画一个命令按钮和两个文本框,其名称分别为Command1、Text1和Text2,然后编写如下程序:

  Dim S1 As String, S2 As String

  Private Sub Form_Load()

      Text1.Text = ""

      Text2.Text = ""

    End Sub

  Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

      S2 = S2 & Chr(KeyCode)

   End Sub

  Private Sub Text1_KeyPress(KeyAscii As Integer)

      S1 = S1 & Chr(KeyAscii)

    End Sub

  Private Sub Command1_Click()

      Text1.Text = S2

      Text2.Text = S1

      S1 = ""

      S2 = ""

  End Sub

     程序运行后,在Text1中输入“abc”,然后单击命令按钮,在文本框Text1和Text2中显示的内容分别为

     A)abc和ABC    B)abc和abc    C)ABC和abc    D)ABC和ABC

  (30)以下说法中正确的是

  A)任何时候都可以通过执行“工具”菜单中的“菜单编辑器”命令打开菜单编辑器

  B)只有当某个窗体为当前活动窗体时,才能打开菜单编辑器

  C)任何时候都可以通过单击标准工具栏上的“菜单编辑器”按钮打开菜单编辑器

  D)只有当代码窗口为当前活动窗口时,才能打开菜单编辑器

  (31)在窗体上画一个通用对话框,其名称为CommonDialog1,然后画一个命令按钮,并编写如下事件过程:

  Private Sub Command1_Click()

  CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _

              "(*.txt)|*.txt| Executable Files(*.exe)|*.exe"

     CommonDialog1.FilterIndex = 3

     CommonDialog1.ShowOpen

     MsgBox CommonDialog1.FileName

  End Sub

  程序运行后,单击命令按钮,将显示一个“打开”对话框,此时在“文件类型”框中显示的是

  A)All Files(*.*)       B)Text Files(*.txt)

  C)Executable Files(*.exe)  D)不确定

  (32)以下叙述中错误的是

  A)一个工程中可以包含多个窗体文件

  B)在一个窗体文件中用Public定义的通用过程不能被其他窗体调用

  C)窗体和标准模块需要分别保存为不同类型的磁盘文件

  D)用Dim定义的窗体层变量只能在该窗体中使用

  (33)以下叙述中错误的是

  A)语句“Dim a, b As Integer”声明了两个整型变量

  B)不能在标准模块中定义Static型变量

  C)窗体层变量必须先声明,后使用

  D)在事件过程或通用过程内定义的变量是局部变量

  (34)设有语句:Open "d:\Test.txt" For Output  As #1 ,以下叙述中错误的是

  A)若d盘根目录下无Test.txt文件,则该语句创建此文件

  B)用该语句建立的文件的文件号为1

  C)该语句打开d盘根目录下一个已存在的文件Test.txt,之后就可以从文件中读取信息

  D)执行该语句后,就可以通过Print #语句向文件Test.txt中写入信息

  (35)以下叙述中错误的是

  A)顺序文件中的数据只能按顺序读写

  B)对同一个文件,可以用不同的方式和不同的文件号打开

  C)执行Close语句,可将文件缓冲区中的数据写到文件中

  D)随机文件中各记录的长度是随机的

  二、填空题(每空2分,共30分)

  请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。

  (1)下列软件系统结构图

  的宽度为  【1】  。

  (2)  【2】  的任务是诊断和改正程序中的错误。

  (3)一个关系表的行称为   【3】   。

  (4)按“先进后出”原则组织数据的数据结构是  【4】    。

  (5)数据结构分为线性结构和非线性结构,带链的队列属于  【5】   。

  (6)描述“X是小于100的非负整数”的Visual Basic表达式是 【6】  。

  (7)在窗体上有一个名称为Command1的命令按钮和一个名称为Text1的文本框。程序运行后,Command1为禁用(灰色),此时如果在文本框中输入字符,则命令按钮Command1变为可用。请填空。

  Private Sub Form_Load()

      Command1.Enabled = False

  End Sub

  Private Sub Text1_  【7】 ()   

      Command1.Enabled = True

  End Sub

  (8)在窗体上画一个名称为“Command1”的命令按钮,然后编写如下事件过程:

  Private Sub Command1_Click()

      Dim a As String

      a = "123456789"

      For i = 1 To 5

         Print Space(6 - i); Mid$(a,  【8】 , 2 * i - 1)

      Next i

  End Sub

  程序运行后,单击命令按钮,窗体上的输出结果是

      5

     456

    34567

   2345678

  123456789

  请填空。

  (9)以下程序的功能是:将一维数组A中的100个元素分别赋给二维数组B的每个元素并打印出来,要求把A(1)到A(10)依次赋给B(1,1)到B(1,10),把A(11)到A(20)依次赋给B(2,1)到B(2,10),……,把A(91)到A(100)依次赋给B(10,1)到B(10,10)。请填空。

  Option Base 1

  Private Sub Form_Click()

  Dim i As Integer, j As Integer

  Dim A(1 To 100) As Integer

  Dim B(1 To 10, 1 To 10) As Integer

  For i = 1 To 100

  A(i) = Int(Rnd * 100)

  Next i

  For i = 1 To   【9】

     For j = 1 To  【10】

         B(i, j) =  【11】

         Print B(i, j);

      Next j

      Print

    Next i

  End Sub

  (10)在窗体上画一个名称为Combo1的组合框,然后画两个名称分别为Label1、Label2,标题分别为“城市名称”和空白的标签。程序运行后,在组合框中输入一个新项目并按回车键,如果输入的项目在组合框的列表中不存在,则自动将其添加到组合框的列表中,并在Label2中给出提示“已成功添加新输入项。”,如图所示。如果输入的项目已存在,则在Label2中给出提示“输入项已在组合框中。”。请填空。

  Private Sub Combo1_KeyPress(KeyAscii As Integer)

     If KeyAscii = 13 Then

       For i = 0 To Combo1.ListCount - 1

         If Combo1.Text =  【12】  Then

            Label2.Caption = "输入项已在组合框中。"

            Exit Sub

         End If

      Next i

      Label2.Caption = "已成功添加新输入项。"

      Combo1. 【13】  Combo1.Text

     End If

    End Sub

  (11)在窗体上画一个命令按钮和一个文本框,其名称分别为Command1和Text1,然后编写如下事件过程:

  Private Sub Command1_Click()

      Dim inData As String

      Text1.Text = ""

      Open "d:\myfile.txt" For  【14】  As #1

      Do While  【15】  

          Input #1, inData

          Text1.Text = Text1.Text + inData

      Loop

      Close  #1

  End Sub

  程序的功能是,打开D盘根目录下的文本文件myfile.txt,读取它的全部内容并显示在文本框中。请填空。