您现在的位置: NCRE100 -> 历年真题 -> 二级真题 -> Visual Basic

2011年9月全国计算机等级考试二级VB笔试试卷及参考答案

来源:NCRE100 作者:NCRE100 发布时间:2014-06-21 17:15:28
 
2011年 9月全国计算机等级考试二级笔试试卷
Visual Basic语言程序设计
(考试时间90 分钟,满分100分)
 
 一、选择题(每小题2分,共70分) 
下列各题A) 、B) 、C) 、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 
(1)下列叙述中正确的是(     ) 。
A)算法就是程序 B)设计算法时只需要考虑数据结构的设计
C)设计算法时只需要考虑结果的可靠性 D)以上三种说法都不对
 
(2)下列关于线性链表的叙述中,正确的是
A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C)进行插入与删除时,不需要移动表中的元素
D)以上三种说法都不对
 
(3)下列关于二叉树的叙述中,正确的是
A)叶子结点总是比度为2的结点少一个 B)叶子结点总是比度为2的结点多一个
C)叶子结点数是度为2的结点数的两倍 D)度为2的结点数是度为1的结点数的两倍
 
(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是
A)学生成绩管理系统 B)C语言编译程序
C)UNIX操作系统 D)数据库管理系统
 
(5)某系统总体结构图如下图所示:
该系统总体结构图的深度是
A)7 B)6 C)3 D)2
 
(6)程序调试的任务是
A)设计测试用例 B)验证程序的正确性
C)发现程序中的错误 D)诊断和改正程序中的错误
 
(7)下列关于数据库设计的叙述中,正确的是
A)在需求分析阶段建立数据字典 B)在概念设计阶段建立数据字典
C)在逻辑设计阶段建立数据字典 D)在物理设计阶段建立数据字典
 
(8)数据库系统的三级模式不包括
A)概念模式 B)内模式 C)外模式 D)数据模式
 
(9)有三个关系R、S和T如下:
R S T
A B C A B C A B C
a 1 2 a 1 2 c 3 1
b 2 1 b 2 1
c 3 1
则由关系R和S得到关系T的操作是
A)自然连接 B)差 C)交 D)并
 
(10)下列选项中属于面向对象设计方法主要特征的是
A)继承 B)自顶向下 C)模块化 D)逐步求精
 
(11)以下描述中错误的是
A)窗体的标题通过其Caption属性设置
B)窗体的名称(Name属性)可以在运行期间修改
C)窗体的背景图形通过其Picture属性设置
D)窗体最小化时的图标通过其Icon属性设置
 
(12)在设计阶段,当按Ctrl+R键时,所打开的窗口是
A)代码窗口 B)工具箱窗口
C) 工程资源管理器窗口 D)属性窗口
 
(13)设有如下变量声明语句:
Dim a, b As Boolean
则下面叙述中正确的是
A)a和b都是布尔型变量 B)a是变体型变量,b是布尔型变量
C)a是整型变量,b是布尔型变量 D)a和b都是变体型变量
 
(14)下列可以作为Visual Basic变量名的是
A)A#A B)4ABC C)?xy D)Print_Text
 
(15)假定一个滚动条的LargeChange属性值为100,则100表示
A)单击滚动条箭头和滚动框之间某位置时滚动框位置的变化量
B)滚动框位置的最大值
C)拖动滚动框时滚动框位置的变化量
D)单击滚动条箭头时滚动框位置的变化量
 
(16)在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
    MsgBox Str(123 + 321)
End Sub
程序运行后,单击命令按钮,则在信息框中显示的提示信息为
A)字符串“123+321” B)字符串“444” C)数值“444” D)空白
 
(17)假定有以下程序:
Private Sub Form_Click()
    a = 1: b = a
    Do Until a >= 5
        x = a * b
        Print b; x
        a = a + b
        b = b + a
    Loop
End Sub
程序运行后,单击窗体,输出结果是
A) 1 1 B) 1 1 C) 1 1 D) 1 1
2 3 2 4 3 8 3 6
 
(18)在窗体上画一个名称为List1的列表框,列表框中显示若干城市的名称。当单击列表框中的某个城市名时,该城市名消失。下列在List_Click事件过程中能正确实现上述功能的语句是
A)List1.RemoveItem List1.Text B)List1.RemoveItem List1.Clear
C)List1.RemoveItem List1.ListCount D)List1.RemoveItem List1.ListIndex
 
(19)列表框中的项目保存在一个数组中,这个数组的名字是
A)Column B)Style C)List D)MultiSelect
 
(20)有人编写了如下的程序:
Private Sub Form_Click()
    Dim s As Integer, x As Integer
    s = 0
    x = 0
    Do While s = 10000
        x = x + 1
        s = s + x ^ 2
    Loop
    Print s
End Sub
上述程序的功能是:计算s=1+22+32+…+n2+…,直到s>10000为止。程序运行后,发现得不到正确的结果,必须进行修改。下列修改中正确的是
A)把x = 0改为x = 1
B)把Do While s = 10000改为Do While s <= 10000
C)把Do While s = 10000改为Do While s > 10000
D)交换x = x + 1和s = s + x ^ 2的位置
 
(21)设有如下程序:
Private Sub Form_Click()
    Dim s As Long, f As Long
    Dim n As Integer, i As Integer
    f = 1
    n = 4
    For i = 1 To n
        f = f * i
        s = s + f
    Next i
    Print s
End Sub
程序运行后,单击窗体,输出结果是
A)32 B)33 C)34 D)35
 
(22)阅读下面的程序段:
    a = 0
    For i = 1 To 3
        For j = 1 To i
            For k = j To 3
                a = a + 1
            Next k
        Next j
    Next i
执行上面的程序段后,a的值为
A)3 B)9 C)14 D)21
 
(23)设有如下程序:
Private Sub Form_Click()
    Cls
    a$ = "123456"
    For i = 1 To 6
        Print Tab(12 - i);        
    Next i
End Sub 
程序运行后,单击窗体,要求结果如图所示,则在       处应填入的内容为
A)Left(a$, i) B)Mid(a$, 8 - i, i) C)Right(a$, i) D)Mid(a$, 7, i)
 
(24)设有如下程序:
Private Sub Form_Click()
    Dim i As Integer, x As String, y As String
    x = "ABCDEFG"
    For i = 4 To 1 Step -1
        y = Mid(x, i, i) + y
    Next i
    Print y
End Sub
程序运行后,单击窗体,输出结果是
A)ABCCDEDEFG B)AABBCDEFG
C)ABCDEFG D)AABBCCDDEEFFGG
 
(25)设有如下程序:
Private Sub Form_Click()
    Dim ary(1 To 5) As Integer
    Dim i As Integer
    Dim sum As Integer
    For i = 1 To 5
        ary(i) = i + 1
        sum = sum + ary(i)
    Next i
    Print sum
End Sub
程序运行后,单击窗体,则在窗体上显示的是
A)15 B)16 C)20 D)25
 
(26)有一个数列,它的前3个数为0,1,1,此后的每个数都是其前面3个数之和,即0,1,1,1,2,4,7,13,24,……
要求编写程序输出该数列中所有不超过1000的数。
某人编写程序如下:
Private Sub Form_Click()
    Dim i As Integer, a As Integer, b As Integer
    Dim c As Integer, d As Integer
    a = 0: b = 1: c = 1
    d = a + b + c
    i = 5
    While d <= 1000
        Print d;
        a = b: b = c: c = d
        d = a + b + c
        i = i + 1
    Wend
End Sub
运行上面的程序,发现输出的数列不完整,应进行修改。以下正确的修改是
A)把While d <= 1000改为While d > 1000
B)把i = 5改为i = 4
C)把i = i + 1移到While d <= 1000的下面
D)在i = 5的上面增加一个语句:Print a; b; c;
 
(27)下面的语句用Array函数为数组变量a的各元素赋整数值:
a = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
针对a的声明语句应该是
A)Dim a B)Dim a As Integer
C)Dim a(9) As Integer D)Dim a() As Integer
 
(28) 下列描述中正确的是
A)Visual Basic只能通过过程调用执行通用过程
B)可以在Sub过程的代码中包含另一个Sub过程的代码
C)可以像通用过程一样指定事件过程的名字
D)Sub过程和Function过程都有返回值
 
(29)阅读程序:
Function fac(ByVal n As Integer) As Integer
    Dim temp As Integer
    temp = 1
    For i% = 1 To n
        temp = temp * i%
    Next i%
    fac = temp
End Function
Private Sub Form_Click()
    Dim nsum As Integer
    nsum = 1
    For i% = 2 To 4
        nsum = nsum + fac(i%)
    Next i%
    Print nsum
End Sub
程序运行后,单击窗体,输出结果是
A)35 B)31 C)33 D)37
 
(30)在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编写如下代码:
Sub S(x As Integer, y As Integer)
    Static z As Integer
    y = x * x + z
    z = y
End Sub
Private Sub Command1_Click()
    Dim i As Integer, z As Integer
    m = 0
    z = 0
    For i = 1 To 3
        S i, z
        m = m + z
    Next i
    Label1.Caption = Str(m)
End Sub
程序运行后,单击命令按钮,在标签中显示的内容是
A)50 B)20 C)14 D)7
 
(31)以下说法中正确的是
A)MouseUp事件是鼠标向上移动时触发的事件
B)MouseUp事件过程中的x,y参数用于修改鼠标位置
C)在MouseUp事件过程中可以判断用户是否使用了组合键
D)在MouseUp事件过程中不能判断鼠标的位置
 
(32)假定已经在菜单编辑器中建立了窗体的弹出式菜单,其顶级菜单项的名称为a1,其“可见”属性为False。程序运行后,单击鼠标左键或右键都能弹出菜单的事件过程是
A)Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 And Button = 2 Then
        PopupMenu a1
    End If
End Sub
B)Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    PopupMenu a1
End Sub
C)Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        PopupMenu a1
    End If
End Sub
D)Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 2 Then
        PopupMenu a1
    End If
End Sub
 
(33)在窗体上画一个名称为CD1的通用对话框,并有如下程序:
Private Sub Form_Load()
    CD1.DefaultExt = "doc"
    CD1.FileName = "c:\file1.txt"
    CD1.Filter = "应用程序(*.exe)|*.exe"
End Sub
程序运行时,如果显示了“打开”对话框,在“文件类型”下拉列表框中的默认文件类型是
A)应用程序(*.exe) B)*.doc C) *.txt D) 不确定
 
(34)以下描述中错误的是
A)在多窗体应用程序中,可以有多个当前窗体
B)多窗体应用程序的启动窗体可以在设计时设定
C)多窗体应用程序中每个窗体作为一个磁盘文件保存
D)多窗体应用程序可以编译生成一个EXE文件
 
(35)以下关于顺序文件的叙述中,正确的是
A)可以用不同的文件号以不同的读写方式同时打开同一个文件
B)文件中各记录的写入顺序与读出顺序是一致的
C)可以用Input#或Line Input#语句向文件写记录
D)如果用Append方式打开文件,则既可以在文件末尾添加记录,也可以读取原有记录
二、填空题(每空2分,共30 分) 
请将每空的正确答案写在答题卡【l】至【15】序号的横线上,答在试卷上不得分。
(1)数据结构分为线性结构与非线性结构,带链的栈属于   【1】   。
(2)在长度为n的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中   【2】   个元素。
(3)常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD),则应采用   【3】   方法。
(4)数据库系统的核心是   【4】   。
(5)在进行关系数据库的逻辑设计时,E-R图中的属性常被转换为关系中的属性,联系通常被转换为   【5】   。
(6)为了使标签能自动调整大小以显示标题(Caption属性)的全部文本内容,应把该标签的
   【6】   属性设置为True。
(7)在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
Private Sub Command1_Click()
    x = 1
    Result = 1
    While x <= 10
        Result =    【7】   
        x = x + 1
    Wend
    Print Result
End Sub
上述事件过程用来计算10的阶乘,请填空。
(8)在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
Private Sub Command1_Click()
    t = 0: m = 1: Sum = 0
    Do
        t = t +    【8】   
        Sum = Sum +    【9】   
        m = m + 2
    Loop While    【10】   
    Print Sum
End Sub
该程序的功能是,单击命令按钮,则计算并输出以下表达式的值:
1+(1+3)+(1+3+5)+...+(1+3+5+...+39)    请填空。
(9)在窗体上画一个命令按钮(其Name属性为Command1),然后编写如下代码:
Private Sub Command1_Click()
    Dim M(10) As Integer
    For k = 1 To 10
        M(k) = 12 - k
    Next k
    x = 6
    Print M(2 + M(x))
End Sub
程序运行后,单击命令按钮,输出结果是   【11】   。
(10)在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
Private Sub Command1_Click()
    Dim n As Integer
    n = Val(InputBox("请输入一个整数:"))
    If n Mod 3 = 0 And n Mod 2 = 0 And n Mod 5 = 0 Then
        Print n + 10
    End If
End Sub
程序运行后,单击命令按钮,在输入对话框中输入60,则输出结果是   【12】   。
(11)在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
Private Sub Command1_Click()
    Dim ct As String
    Dim nt As Integer
    Open "e:\stud.txt"    【13】   
    Do While True
        ct = InputBox("请输入姓名:")
        If ct =    【14】    Then Exit Do
        nt = Val(InputBox("请输入总分:"))
        Write #1,    【15】   
    Loop
    Close #1
End Sub
以上程序的功能是,程序运行后,单击命令按钮,则向e盘根目录下的文件stud.txt中添加记录(保留已有记录),添加的记录由键盘输入;如果输入“end”,则结束输入。每条记录包含姓名(字符串型)和总分(整型)两个数据。请填空。
 
 
参考答案
一、选择题(每小题2分,共70分) 
(1)D (2)C (3)B (4)A (5)C
(6)D (7)A (8)D (9)B (10)A
(11)B (12)C (13)B (14)D (15)A
(16)B (17)D (18)D (19)C (20)B
(21)B (22)C (23)A (24)A (25)C
(26)D (27)A (28)A (29)C (30)B
(31)C (32)B (33)A (34)A (35)B
 
二、填空题(每空2分,共30 分) 
请将每空的正确答案写在答题卡【l】至【15】序号的横线上,答在试卷上不得分。
【1】线性结构
  【2】n
  【3】结构化
  【4】数据库管理系统
  【5】关系
  【6】AutoSize
  【7】Result * x
  【8】m
  【9】t
  【10】m<40 或m<=39
  【11】4
  【12】70
  【13】For Append As #1
  【14】"end"
  【15】ct, nt
关于我们付款方式广告联系合作联系教师合作网站地图网站声明友情链接考试论坛帮助中心
全国计算机等级考试NCRE100门户网站 www.ncre100.com 客服QQ:279206599
NCRE100是一家公益网站,为广大考试提供考试信息服务 NCRE100版权所有 ? 2004-2014 Ncre100.com 京ICP备13021823-3号
扫描关注微信