2014年9月全国计算机二级VB选择题第1套

34

 

1.下列叙述中正确的是

 

A.每一个结点有两个指针域的链表一定是非线性结构

 

B.所有结点的指针域都为非空的链表一定是非线性结构

 

C.循环链表是循环队列的链式存储结构

 

D.线性结构的存储结点也可以有多个指针

 

2.使用白盒测试方法时,设计测试用例应根据

 

A.程序的内部逻辑

 

B.程序的复杂结构

 

C.程序的功能 

 

D.使用说明书

 

3.在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗。则实体医生和患者之间的联系是

 

A.多对多

 

B.多对一

 

C.一对多   

 

D.一对一

 

 

 

 

4.设序列长度为n,在最坏情况下,时间复杂度为O(log2n)的算法是

 

 

A.二分法查找 

 

B.顺序查找

 

C.分块查找

 

D.哈希查找

 

5.设数据集合为D={ 1,3,5,7,9 },D上的关系为R,下列数据结构B=(D,R)中为非线性结构的是

 

A.R={ (5,1), (7,9), (1,7), (9,3) }

 

B.R={ (9,7), (1,3), (7,1), (3,5) }

 

C.R={ (1,9), (9,7), (7,5), (5,3) }

 

D.R={ (1,3), (3,5), (5,9) }

 

6.深度为7的二叉树共有127个结点,则下列说法中错误的是

 

A.该二叉树有一个度为1的结点

 

B.该二叉树是满二叉树

 

C.该二叉树是完全二叉树

 

D.该二叉树有64个叶子结点

 

 

 

7.某二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为

 

A.DCBA 

 

B.BDCA

 

C.ABCD

 

D.BADC

 

8.下面能作为软件需求分析工具的是

 

A.PAD图  

 

B.程序流程图

 

C.甘特图

 

D.数据流程图(DFD图)

 

 

 

9. 下面不属于对象主要特征的是

 

A.唯一性

 

B.多态性 

 

C.可复用性 

 

D.封装性

 

 

 

10.

 

 

 

A.(c,c,11,4)

 

B.(c,c,11,4)

 

C.(a,a,2,4)

 

D.(a,a,2,4)和(e,e,6,1)

 

11.表达式Sin(0) + Abs(-1) + Int(Rnd(0)) + Len(Str(3.14))的值是

 

A.-1

 

B.4

 

C.5

 

D.6

 

 

12.以下有关表达式的说法中,正确的是

 

A.表达式LCase("AB12")>Left("abc",2) And Len("12.3")=5的值是True

 

B.表达式Int(Rnd() * 11) + 10表示的值的范围是10~21

 

C.表达式"1234">"ABCD"的值为Flase

 

D.表达式Chr(Asc("B"))=UCase("b")的值为False

 

13.下列符号常量的声明中,不合法的是

 

A.Const e As Single = 2.718, pi = 3.14

 

B.Const a As Double=Sin(1)

 

C.Private Const a="计算机等级考试"

 

D.Const a As String=Visual Basic"

 

14.以下叙述中错误的是

 

A.设计窗体时,单击窗体上任何一个控件后,就可以在属性窗口中设置窗体的属性

 

B.窗体是对象

 

C.窗体可以被移动

 

D.窗体的Name属性在程序运行过程中不能被修改

 

15.以下语句或子句中,符合Visual Basic语法要求的是

 

A.Print a=;10+20

 

B.If x>y Then t=x,x=y,y=t

 

C.y = Log(Exp(x) + Abs(Atn(x))) + Cos(x) ^ 2

 

D.Case Is>60 And Is<100

 

16.设整型变量a、b已赋值(b>0,a>b),下面不能正确计算a除以b的余数的表达式是

 

A.a - a \ b * b

 

B.a Mod b

 

C.a - Int(a / b) * b

 

D.a - (a \ b) * b

 

17.下列表达式中值为-6的是

 

A.Int(-5.678)

 

B.Int(-5.678-0.5)

 

C.Fix(-5.678+0.5)

 

D. Fix(-5.678)

 

18.在窗体上画一个文本框、一个标签,其名称分别为Text1、Label1,然后编写如下事件过程:

Private Sub Text1_Change()

  Label1.Caption = UCase(Mid(Trim(Text1.Text), 7, 3))

End Sub

程序运行时,如果在文本框中输入字符串"VisualBasic计算机等级考试",则在标签Label1中显示的内容是。

 

A.asi

 

B.ASI

 

C.Bas

 

D. BAS

 

19.为了使组合框成为下拉式列表框,应把其Style属性设置为

 

A.0

 

B.1

 

C.2

 

D.3

 

20. 窗体上有一个名称为Label1的标签控件,其Caption属性的初始值为0,还有一个计时器。为了在程序运行时,标签上的数字每秒加1,应该把语句:Label1.Caption = Label1.Caption + 1 写在一个事件过程中,这个事件过程是

 

A.标签的Timer事件过程

 

B.计时器的Timer事件过程

 

C.标签的Click事件过程

 

D.计时器的Click事件过程

 

21.当直线控件的BorderStyle属性被设置为:2 Dash,控件显示的是

 

A.实线

 

B.虚线

 

C.点线

 

D.不可见

 

22.下面关于列表框控件的叙述中错误的是

 

A. Selected属性是一个字符数组

 

B.List属性是一个字符数组

 

C.在运行时,列表框中的列表项可以多选

 

D.ListCount属性不能在属性窗口中设置

 

23.下列有关控件数组的说法中,正确的是

 

A.控件数组中所包含的控件必须是同一种类型的,且它们的Name属性值相同,但每个控件的Index属性值不同

 

B. 控件数组中所包含的控件必须是同一种类型的,且它们的Name属性值不能相同

 

C.可以将窗体上的各种类型的控件创建到一个控件数组中

 

D.程序运行时,对控件数组中的不同控件操作而触发事件时,执行的是对应于各个控件的事件过程代码

 

24.设有数组声明:Dim s(2, 3),下面错误的程序段是

 

A.For i = 1 To 3

             For j = 1 To 2

                 s(i, j) = 0

             Next j

         Next I

 

B. For i = 1 To 2

             For j = 1 To 3

                 s(i, j) = 0

             Next j

         Next I

 

C. For i = 1 To 3

             For j = 1 To 2

                 s(j, i) = 0

             Next j

         Next I

 

D.For i = 0 To 2

             For j = 0 To 3

                 s(i, j) = 0

             Next j

         Next I

 

25.假定在某个事件过程中需要计算:y = 3! + 5! 的值,下面最好的设计是

 

A. 设计1个计算n! 的函数f(n),调用方式为:y = f(3) + f(5)

 

B. 设计1个专门计算3!+5!的函数f( ),调用方式为:y = f( )

 

C. 设计2个函数f3( )和f5( )分别计算3!,5!,调用方式为:y = f3( ) + f5( )

 

D.不用单独的函数计算阶乘,全部代码放在同一个事件过程中

 

26.下面不能正确计算 1 + ( 1 + 2 ) + ( 1 + 2 + 3 ) + … + ( 1 + 2 + … + 10 ) 的是

 

A. Private Sub Command1_Click()

             s = 0 : t = 0

             For i = 1 To 10

                 For j = 1 To i

                     t = t + j

                 Next j

                 s = s + t

             Next i

             Print s

         End Sub

 

B. Private Sub Command1_Click()

             s = 0

             For i = 1 To 10

                 t = 0

                 For j = 1 To i

                     t = t + j

                 Next j

                 s = s + t

             Next i

             Print s

         End Sub

 

C.Private Sub Command1_Click()

             s = 0

            For i = 10 To 1 Step -1

                 t = 0

                 For j = 1 To i

                     t = t + j

                 Next j

                 s = s + t

             Next i

             Print s

         End Sub

 

D.Private Sub Command1_Click()

             s = 0 : t = 0

             For i = 1 To 10

                 t = t + i

                 s = s + t

             Next i

             Print s

         End Sub

 

27.如果窗体模块A中有一个过程:

Private Sub Proc( )

    ……

End Sub

则下面叙述中错误的是

 

A.在窗体模块B中可以调用此过程

 

B.在窗体模块B中可以有与此相同名称的过程

 

C.窗体模块A中任何其他过程都可以调用此过程

 

D.在标准模块中不能调用此过程

 

28.以下叙述中错误的是

 

A.程序运行过程中,可以利用代码重新设置菜单项的Visible属性的值

 

B. 在菜单标题中,由&所引导的字母指明了访问该菜单项的访问键

 

C. 在同一窗体的菜单项中,不允许出现标题相同的菜单项

 

D.弹出式菜单也在菜单编辑器中进行设计

 

29.下面叙述中正确的是

 

A.一个工程由一个窗体模块和一个标准模块组成

 

B.一个窗体是一个窗体模块

 

C.一个工程中只能有一个标准模块

 

D. 窗体模块中包含本窗体的所有事件过程,标准模块中包含本标准模块的所有事件过程

 

30.有如下程序代码:

Private Sub Form_Click()

    Dim flag As Boolean

    Dim Num As Integer

    flag = True

    Num = 0

    Do

        Do While Num < 20

            Num = Num + 1

            If Num > 10 Then

                flag = False

                Exit Do

            End If

        Loop

    Loop Until flag = False

    Print Num

End Sub

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

 

A.11

 

B.10

 

C.True

 

D.False

 

31.有如下程序代码:

Private Sub Form_Click()

    n = 0

    k = 1

    While n <= 2

        n = n + 1

        k = k + n * (n + 1)

    Wend

    Print n; k

End Sub

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

 

A.0  1

 

B.3  13

 

C.3   21

 

D.3  7

 

32.设x值为6,y值为0,则以下可使y值为1的程序段是

 

A.Do While x < 6

         y = y + 1

     Loop

 

B.Do

         y = y + 1

     Loop While x <= 6

 

C.Do Until x <= 6

         y = y + 1

     Loop

 

D.Do

         y = y + 1

     Loop Until x <= 6

 

33.有下面程序代码:

Private Sub Command1_Click()

    Dim a, s As Integer

    a = 7: b = 4

    Do

        c = a

        Do

            c = c - b

        Loop Until c < b Or c = 0

        Print c;

        a = a - 1

    Loop Until c = 0

End Sub

程序运行产生的输出是

 

A.0 1 2 3

 

B.3 2 1 0

 

C.1 2 3 0

 

D.2 3 0 1

 

34.设整型数组a有10个元素,其中前9个元素中数已按小到大顺序排列,下面程序段的作用是

    x = InputBox("请输入一个整数")

    k = 8

    Do

        If x >= a(k) Then

            a(k + 1) = x

            Exit Do

        Else

            a(k + 1) = a(k)

            If k = 0 Then a(k) = x

            k = k - 1

        End If

    Loop Until k < 0

 

A.把x中的数插入数组a,使数组中的数仍然保持从小到大的顺序

 

B.在数组a中找到小于或等于x的数,把x中的数放到这个数的后面

 

C.把x中的数放到下标为0的数组元素中

 

D.把数组a中的数依次后移,然后把x中的数放到数组的最前面

 

35.假定编写了如下通用过程:

Sub Sp(x, y)

    y = 1

    For i = 1 To x

        y = y * i

    Next i

End Sub

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

Private Sub Command1_Click()

    m = 0

    a = 0

    For i = 1 To 3

        Sp i, a

        m = m + a

    Next i

    Print m

End Sub

运行程序,单击命令按钮,输出结果是

 

A.7

 

B.8

 

C.9

 

D.10

 

36.有如下事件过程:

Private Sub Form_Load()

    Show

    Dim Arr() As Variant

    Arr = Array(1, 3, 5, 7, 9, 11, 13, 15)

    Call converse(Arr)

    For i = 0 To 7

        Print arr(i);

    Next i

End Sub

以上程序的功能是,通过调用Converse过程,将数组Arr中的元素逆序存放并输出。过程Converse的正确代码是

 

A.Private Sub converse(dim a() as Variant )

         Dim T

         For i = LBound(A) To UBound(A)

             T = a(i)

             a(i) = a(UBound(A) - i)

             a(UBound(A) - i) = T

         Next i

     End Sub

 

B. Private Sub converse(dim a() as Variant)

         Dim T

         Dim J As Integer

         J = (LBound(A) + UBound(A)) / 2

         For i = LBound(A) To J

             T = a(i)

             a(i) = a(UBound(A) - i)

             a(UBound(A) - i) = T

         Next i

     End Sub

 

C. Private Sub converse(a() As Variant)

         Dim T

         For i = LBound(A) To UBound(A)

             T = a(i)

             a(i) = a(UBound(A) - i)

             a(UBound(A) - i) = T

         Next i

     End Sub

 

D.Private Sub converse(a() As Variant)

         Dim T

         Dim J As Integer

         J = Int((LBound(A) + UBound(A)) / 2)

         For i = LBound(A) To J

             T = a(i)

             a(i) = a(UBound(A) - i)

             a(UBound(A) - i) = T

         Next i

     End Sub

 

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

Private Sub Command1_Click()

  Dim s1 As String, s2 As String

  Open "D:\data.txt" For Input As #1

  Seek #1, 5

  s1 = Input$(2, #1)

  s2 = Input$(3, #1)

  Print Seek(1)

  Close #1

End Sub

假设有磁盘文件D:\data.txt,且文件足够长,当程序运行时,单击Command1,在窗体上输出的结果是

 

A.5

 

B.9

 

C.10

 

D.11

 

38.在窗体上画一个名称为Command1的命令按钮,然后编写以下程序代码:

Option Base 1

Private Sub Command1_Click()

  Dim data As Variant, m As Integer, n As Integer

  m = Val(InputBox("输入"))

  data = Array(-2, -1, 0, 1, 2)

  Call ser(data, m, n)

  Print n

End Sub

Private Sub ser(d, a, b)

  Dim m As Integer, n As Integer, k As Integer

  Dim i As Integer

  m = LBound(d): n = UBound(d)

  k = (m + n) / 2

  Do While m < n And d(k) <> a

        If a < d(k) Then n = k - 1

        If a > d(k) Then m = k + 1

        k = (m + n) / 2

  Loop

  If d(k) = a Then b = k Else b = -1

End Sub

程序运行过程中单击命令按钮Command1,在出现的输入对话框中输入"-1"并回车后,则程序的输出结果为

 

A.-1

 

B.1

 

C.2

 

D.-2

 

39.窗体上有一个名称为Text1的文本框,要求在获得焦点时选中文本框中所有内容,以下能实现该功能的事件过程是

 

A. Private Sub Text1_Change()

         Text1.SelStart = 0

         Text1.SelLength = Len(Text1.Text)

     End Sub

 

B.Private Sub Text1_LostFocus()

         Text1.SelStart = 0

         Text1.SelLength = Len(Text1.Text)

     End Sub

 

C.Private Sub Text1_GotFocus()

         Text1.SelStart = 0

         Text1.SelLength = Len(Text1.Text)

     End Sub

 

D.Private Sub Text1_SetFocus()

         Text1.SelStart = 0

         Text1.SelLength = Len(Text1.Text)

     End Sub

 

40.

 

 

 

A.把南京两字改成了天津

 

B.删除了南京列表项

 

C.在南京列表项的后面添加了一个新列表项

 

D.删除了南京列表项,并在最后面又添加了一个新列表项

 

1.D  2.A  3.A  4.A  5.D  6.A  7.C  8.D  9.C  10.A  11.D  12.C  13.B  14.A  15.C  16.A  17.A  18.D  19.C  20.B  21.B  22.A  23.A  24.A  25.A  26.A  27.A  28.C  29.B  30.A  31.C  32.D  33.B  34.A  35.C  36.D  37.C  38.C  39.C  40.A