江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2012年9月全国计算机二级VB考试真题

2012年9月全国计算机二级VB考试真题

二级VB

一、选择题(每小题2分,共70分)
1)下列链表中,其逻辑结构属于非线性结构的是
A
)循环链表     B)双向链表   C)带链的栈     D)二叉链表
2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15rear=15,则循环队列中的元素个数为
A
16      B20   C035     D15
3)下列关于栈的叙述中,正确的是
A
)栈顶元素一定是最先入栈的元素     B)栈操作遵循先进后出的原则
C
)栈底元素一定是最后入栈的元素     D)以上三种说法都不对
4)在关系数据库中,用来表示实体间联系的是
A
)二维表     B)树状结构   C)属性     D)网状结构
5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是
A
m:1联系     B1:m联系   C1:1联系     Dm:n联系
6 有两个关系R如下:

A

B

C

a

1

2

b

2

1

c

3

1

A

B

C

c

3

1


    
则由关系R得到关系S的操作是
A
)自然连接     B)选择   C)并     D)投影
7)数据字典(DD)所定义的对象都包含于
A
)程序流程图     B)数据流图(DFD图)  C)方框图     D)软件结构图
8)软件需求规格说明书的作用不包括
A
)软件可行性研究的依据     B)用户与开发人员对软件要做什么的共同理解
C
)软件验收的依据           D)软件设计的依据
9)下面属于黑盒测试方法的是
A
)逻辑覆盖     B)语句覆盖   C)路径覆盖     D)边界值分析
10)下面不属于软件设计阶段任务的是
A
)数据库设计       B)算法设计
C
)软件总体设计     D)制定软件确认测试计划

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

  A)vbp是工程文件,一个工程可以包括.bas文件

  B).frm文件是窗体文件,一个窗体可以包含.bas文件

 C) vbp是工程文件,一个工程可以由多个.frm文件组成

  D).vbg文件是工程组文件,一个工程组可以由多个工程组成

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

  A)Visual Basic的窗体中,一个命令按钮是一个对象

  B)事件是能够被对象识别的状态变化或动作

  C)事件都是由用户的键盘操作或鼠标操作触发

  D)不同的对象可以具有相同的方法

(13)x=3.3, y=4.5, 表达式x-Int(x)+Fix(y)的值是

A)3.5    B)4.8 t    C)4.3    D)4.7

(14)窗体上有一令名称为Command1的命令按钮, 其中部分代码如下:

    Private Sub Command1_Click()

      Dim a(10)As Integer

      Dim n As Integer

      ... ...

      Call calc(a, n)  

      ... ...

    End Sub    

    calc过程的首行应该是

    A)Sub talc(x()As Integer, n As Integer)

    B)Public Sub calc(x() As Integer)

    C)Private Sub calc(a(n) As Integer, n As Integer)   

    D)Public Sub calc(a As Integer, n As Integer)

 (15)设有如下程序:

    Sub f(x As Integer,ByVal y As Integer)

      x=2*x

      y=y+x

    End Sub

    Private Sub Command1_Click()

      Dim a As Integer,b As Integer

      a=6:b=35  

      Call f(a, b)

      Print a, b

    End Sub

    程序运行后, 单击命令按钮Command1, 输出结果为

    A)6 47    B)12 47    C)6 35    D)12 35

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

    A)窗体及窗体上所有控件的事件过程代码都保存在窗体文件中

    B)在工程中只有启动窗体可以建立菜单

    c)窗体名称必须与窗体文件的名称相同

    D)程序一定是从某个窗体开始执行的

 (17)窗体上有一个名称为Command1的命令按钮, 其单击事件过程代码如下:

    Private Sub Command1_Click()

      Static x As Variant

      n=0

      x=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

      while n<=4

        x(n)=x(n+5)

        Print x(n);

        n=n+1

      Wend

    End Sub

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

    A)1 2 3 4 5    B)6 7 8 9 10    C)2 3 4 5 6    D)6 2 3 4 5

 (18)窗体上有一个名称为Label1的标签和一个名称为Command1的命令按钮。命令按钮的单击事件过程如下:

    Private Sub Command1_Click()   

      x=InputBox("输入x:", , 0)   

      y=InputBox("输入y:", , 0)

      Label1.Caption=x+y   

    End Sub   

    运行程序, 单击命令按钮, 在输入对话框中分别输入23, 运行的结果是

    A)程序运行有错误, 数据类型不匹配   

    B)程序运行有错误。InputBox函数的格式不时

    C)Labell中显示5    1

    D)Labell中显示23

 (19)窗体上有一个名称为Shape1的形状控件和由三个命令按钮组成的名称为cmdDraw的控件数组。窗体外观如图所示(从上到下的3个命令按钮的下标值分别为012)。有事件过程如下:

    Private Sub cmdDraw_Click(Index As Integer)

      Select Case Index

        Case 0

          Shape1.Shape=0

        Case 1

          Shape1.Shape=1

        Case 2

          Shape1.Shape=3

      End Select

    End Sub

    当单击"画圆"命令按钮时, 会执行cmdDraw_Click事件过程。以下叙述中正确的是

    A)Case 2分支有错, Case后面表达式的值应该与赋给Shape1.Shape的值一致

    B)程序运行有错, 控件数组的下标应该从1开始

    C)Index是形状控件的参数

    D)程序正常运行.形状控件被显示为圆形

    (20)如果一个正整数从高位到低位上的数字依次递减, 则称其为降序数<:9632是降序数, 8516则不是降序数)。现编写如下程序, 判断输入的正整数是否为降序数。

    Private Sub Command1_Click()

      Dim n As Long   

      Dim flag As Boolean

      n=InputBox("输入一个正整数")

      s=Trim(Str(n))

      For i=2 To Len(s)

       If Mid(s, i-1, 1)<Mid(S, i, 1) Then Exit For

      Next i

      If i=Len(s) Then flag=True Else flag=False

      If flag Then

        Print n; "是降序数"  

      Else

        Print n; "不是降序数"

      End If   

    End Sub    .

    运行以上程序, 发现有错误, 需要对给flag变量赋值的If语句进行修改。以下正确的修改是

    A)If i=Len(s)+1 Then flag=False Else flag=True   

    B)If i=Len(s)+1 Then flag=True Else flag=False

    C)If i=Len(s)-1 Then flag=False Else flag=Tihe   

    D)If i=Len(s)-1 Then flag=True Else flag=False   

    (21)现有以下程序:

    Private Sub Command1_Click()

       c1=0 

       c2=0

       For i=1 To 100

        If i Mod 3=0 Then

          c1=c1+1

        Elself i Mod 7=0 Then

          c2=c2+1

        End If

      Next  

      Print c1+c2

    End Sub 

    此程序运行后输出的是在1100范围内

    A)同时能被37整除的整数个数

    B)能被37整除的整数个数(同时被37整除的数只记一次) 

    C)能被3整除, 而不能被7整除的整数个数  

    D)能被7整除, 而不能被3整除的整数个数

(22)设菜单编辑器中各菜单项的属性设置如下表所示: 

序号

标题

名称

复选

有效      

可见

内缩符号

1

File

File

 

2    

Open

OpenFile

 

1

3

Save

SaveFile

 

 

1

4

Exit

EndOfAll

 

 

1

5

Help

ShowHdp

 

1

 

针对上述属性设置, 以下叙述中错误的是

  A)属性设置有错, 存在"标题""名称"重名现象

  B)运行程序, 序号为"3"的菜单项不显示

  C)运行程序, 序号为"4"的菜单项不显示

  D)运行程序, 序号为"5"的菜单项前显示""

(23)窗体上有一个名称为Command1的命令按钮, 并有如下程序:  

  Private Sub Commandl_Click()

    x=15 

    Do While x>0

      x=x-3  

      x=IIf(Int(x/5)=x/5, x+2, x)   

    Loop 

    Print x  

  End Sub

程序运行后, 单击命令按钮Command1, 输出结果为

  A)0    B)-1    C)-2    D)-3  

(24)以下关于通用对话框的叙述中, 错误的是

  A)若没有指定InitDir属性值, 则起始目录为当前目录

  B)用一个通用对话框控件可以建立几种不同的对话框

  C)FileTitle属性指明了文件对话框中所选择的文件名。

  D)文件对话框用属性Filterlndex指定默认过滤器, 它是一个从0开始的整数

(25)窗体上有一个名称为Command1的命令按钮, 并有如下程序:

    Private Sub Command1_Click()

      Dim m As Integer, n As Inleger

      m=InputBox("输入第一个数")

      n=InputBox("输入第二个数")

      Do While m<>n   

        Do While m>n   

          m=m-n 

        Loop 

        Do While n>m   

          n=n-m

        Loop   

      Loop  

      Print m

    End Sub

该程序的功能是   

  A)求数值mn的最大公约数        B)求数值mn的最小公倍数  

  C)求数值mn中的较大数          D)求数值mn中的较小数

(26)窗体上有一个名称为Command1的命令按钮, 其单击事件过程及有关函数过程如下:

    Private Sub Command1_Click()

      Dim n As Integer

      n=add(5,10)

      Print n

    End Sub 

    Function add(v1 As Integer, v2 As Integer, Optional v3)As Integer  

      If Not IsMissing(v3)Then

        add=v1+v2+v3  

      Else   

        add=v1+v2

      End If   

    End Function 

运行程序, 单击命令按钮, 以下叙述中正确的是。 

  A)程序不能正常运行, 因为函数add的参数定义有错

  B)程序不能正常运行, 因为函数定义与函数调用语句的参数个数不匹配

  C)程序能正常运行, 结果是在窗体上显示15

  D)程序能正常运行, 结果是在窗体上显示510v3  

(27)目录列表框Path属性所表示的含义是.

  A)当前驱动器或指定驱动器上的路径

  B)当前驱动器或指定驱动器上的某目录下的文件列表

  C)根目录下的文件列表 

  D)指定路径下的文件列表

(28)以下关于函数过程的叙述中错误的是

    A)函数过程一定有返回值 

    B)函数过程一定有参数 

    C)函数过程可以在窗体模块和标准模块中定义。 

    D)函数过程参数的类型与返回值的类型无关

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

    Public Enum S  

      a=4

      b=3

    End Enum   

    Private Sub Command1_Click()

      Dim x As Integer

      x=a

      If x>=3 Then MsgBox "Pass!" 

    End Sub 

  运行程序, 其结果是

    A)运行错误, 因为Enum定义有错    B)运行错误, 因为x=a类型不匹配   

    C)运行正常结束, 不显示任何信息  D)运行正常, 显示内容为"Pass!"的信息框

(30)设有如下程序:  

    Option Base 1  

    Private Sub Form_Click()

      Dim a(5) As String, i As Integer

      For i=1 To 5   

        a(i)=Chr(Asc("A")+i)

        Call f(a,i)

      Next i

    End Sub

    Sub f(ta() As String, n As Integer)

      Dim i As Integer

      For i=1 To n

        Print ta(i);

      Next i  

      Print 

    End Sub

  对上述程序, 以下叙述中正确的是

    A)程序有错, 因为在过程f的定义中数组参数格式不正确

    B)程序可正常运行, 输出内容的第一行是一个字母"A"

    C)程序可正常运行, 输出内容的第一行是一个字母"B"

    D)程序可正常运行, 输出内容的第一行是数字65

(31)窗体上有二个名称为Picture1的图片框控件, 一个名称为Timer1的计时器控件, Interval属性值

1000。要求每隔5秒钟图片框右移100。现编写程序如下: 

    Private Sub Timer1_Timet()

      Static n As Integer

      n=n+1

      If (n/5)=Int(n/5)  And  Picture1.Left<Form1.Width Then

        Picturet.Left=Picture1.Left+100

      End If 

    End Sub

    分析以上程序, 以下叙述中正确的是

    A)程序中没有设置5秒钟的时间, 所以不能每隔5秒移动图片框一次

    B)此程序运行时图片框位置保持不动

    C)此程序运行时图片框移动方向与题目要求相反

    D)语句条件中的"Picture1.Left<Form1.Width"用于限制图片框移动的范围 

 (32)窗体上有一个名称为Command1的命令按钮, 其事件过程如下:

    Private Sub Command1_Click()

      Dim i As Integer, j As Integer, k As Integer

      Dim S As Double

      s=0: i=1: j=0: k=-1

      Do While i<6 

        s=s+k*(j/i)   

        i=i+1

        j=j+1

        k=-k

      Loop

      print s

    End Sub

以上程序所计算的表达式是

   A)1/2-2/3+3/4-4/5          B)-1/2+2/3-3/4+4/5

   C)1-1/2+2/3-3/4+4/5        D)-1+1/2-2/3+3/4-4/5

33)窗体上有一个名称为Command1的命令按钮,其单击事件过程如下:

     Private Sub Command1_Click()

        Dim a,b(2,3) as initeger

        a=Array(3,7,5,11,31,43,17,62,9,23,37,41)

        i=0

        do while i<=Ubound(a)

           for j=0 to 2

             for k=0 to 3

                b(j,k)=a(i)

                i=i+1

             next

        Loop

        print b(2,2)

End Sub

运行程序,窗体上显示的是

 A)43    B)17    C)37      D)23

(34) 窗体上有一个名称为Command1的命令按钮,其单击事件过程如下:

  Private Sub Command1_Click()

     Dim s as string

     Open “C:\File1.txt” For Input As #1

     Open “C:\File2.txt” For OutPut As #2

     Do while not Eof(1)

        Input #1,s

        Input #2,s

     Loop

     Close #1,#2

  End Sub

关于以上程序,以下叙述中错误的是

A)     程序把File1.txt文件的内容存放在File2.txt文件中

B)      程序中打开了两个随机文件

C)     程序中打开了两个顺序文件

D)     “EOF(1)”中的1”对应于File1.txt文件

(35)以下关于文件与文件相关操作的叙述中错误的是

 A)Append方式打开的文件可以进行读写操作

B)文件记录的各个字段的数据类型可以不同

 C)随机文件各记录的长度是相同的

 D)随机文件可以通过记录号直接访问文件中的指定记录

 

二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
注意:以命令关键字填空的必须拼写完整
1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1     
2)设栈的存储空间为S(1:40),初始状态为bottom=0top=0,现经过一系列入栈与出栈运算后,top=20,则当前栈中有【2】个元素。
3)数据独立性分为逻辑独立性和物理独立性。当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序不必修改,称为【3 
4)关系数据库中能实现的专门关系运算包括【4】、连接和投影。
5)软件按功能通常可以分为应用软件、系统软件和支撑软件(或工具软件),Unix操作系统属于【5】软件。

(6)窗体上有从左到右4个单选按钮组成的控件数组Opt1,下标从0开始,程序运行时,单击命令按钮选择”(名称为Command1),则在标签Label1中显示所选中的信息,如图所示

  以下是完成上述功能的程序,请填空

  Private Sub Command1_Click()

     For i=0  to 3

        if Opt1(i).value=true then

          Call  f(___6___)

        End If

     Next

  End Sub

  Private Sub f(x as Control)

     Label1.Caption=”您选择的是:” & ___7___.Caption

  End Sub

(7)窗体上有一个名称为List1的列表框, 列表框中有若干数据项, 列表框的Style属性为1#有一个名称Label2的标签,还有一个名称为Command1, Caption属性为"计算"的命令按钮(见图)。运行程序,在列表框中选中某些数据项后,单击命令按钮, 则可以计算所选数据之和, 并将结果显示在标签Label2,以下是实现上述功能的程序, 请填空

    Private Sub Command1_Click()

      s=0

      For i=0 To List1.ListCount-1

       If ___8___  =True Then

         s=s+___9___

       End If

      Next

      Label2.Caption=___10___

    End Sub

    (8)以下程序的功能是从随机产生的2020200(20

200)的整数中, 找出能够同时被35整除的数的最大值, 并显示

出来。请填空。

    Option Base 1

    Private Sub Command1_Click()

      Dim a(20) As Integer

      m=0  

      For i=1 To 20

        a(i)=Int(Rnd*___11___)+20

        If a(i) Mod 3=0] ___12___ a(i) Mod 5=0 Then

            If a(i)>m Then m=a(i)

        End If

      Next

      If  ___13___ Then

         print "没有满足条件的数"

      Else

         Print "满足条件的数是";m

      End lf

    End Sub

9.窗体上画一个名称为Timer1的计时器控件, Enabled属性值设为False, Interval属性值设为100。要求程序运行后, 当鼠标在窗体上移动时, 沿鼠标经过的轨迹画出一系列半径为100的小圆。其效果如图所示.以下是实现上述功能的程序,请填空

 

 

    Dim a As Integer, b As Integer

    Private Sub Form____14___ (Button As Integer, Shift As Integer, x As Single, Y as single)

      a=X

      b=Y

      Timer1.Enabled= ___15___

    End Sub

    Private Sub Timer1_Timer()

      Form1.Circle(a, b), 100    '(a, b)为圆心画一个半径为100的圆

    End Sub