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

2009年3月计算机等级考试二级VB笔试试题及答案

来源:NCRE100 作者:NCRE100 发布时间:2014-06-17 20:39:13
一、选择题(每题2分,共计70分)
 
 
(1)下列叙述中正确的是
 
A)栈是先进先出的线性表
 
B)队列是"先进后出"的线性表
 
C)循环队列是非线性结构
 
D)有序线性表即可以采用顺序存储结构,也可以采用链式存储结构 
 
(2)支持子程序调用的数据结构是
 
A)栈
 
B)树
 
C)队列
 
D)二叉树
 
 
 
(3)某二叉树有5个读为2的结点,则该二叉树中的叶子结点数是
 
A)10
 
B)8
 
C)6
 
D)4 
 
(4)下列排序方法中,最坏情况下比较次数最少的是
 
A)冒泡排序
 
B)简单选择排序
 
C)直接插入排序
 
D)堆排序
 
(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列
 
  属于应用软件的是
 
A)编译程序
 
B)操作系统
 
C)教务管理系统
 
D)汇编程序
 
 
 
(6)下面叙述中错误的是
 
A)软件测试的目的是发现错误并改正错误
 
B)对被调试程序进行"错误定位"是程序调试的必要步骤
 
C)程序调试也成为Debug
 
D)软件测试应严格执行测试计划,排除测试的随意性
 
(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是
 
A)提高耦合性降低内聚性有利于提高模块的独立性
 
B)降低耦合性提高内聚性有利于提高模块的独立性
 
C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度
 
D)内聚性是指模块间互相连接的紧密程度
 
(8)数据库应用系统中的核心问题是
 
A)数据库设计
 
B)数据库系统设计
 
C)数据库维护
 
D)数据库管理员培训
 
(9)有两个关系R,S如下:
 
2009年3月二级VB语言笔试真题及答案 - 宵魅 - 宵魅
 
由关系R通过运算得到关系S,则所使用的运算为
 
A)选择
 
B)投影
 
C)插入
 
D)连接 
 
(10)将E-R图转换为关系模式时,实体和联系都可以表示为
 
A)属性
 
B)键
 
C)关系
 
D)域
 
(11)执行语句 Dim X,Y As Integer 后,
 
A)X和Y均被定义为整型变量
 
B)X和Y均被定义为变体类型变量
 
C)X被定义为整型变量,Y被定义为变体变量
 
D)X被定义为变体类型变量,Y被定义为整型变量
 
(12)以下关系表达式中,其值为True的是
 
A)"XYZ">"XYz"
 
B)"VisualBasic"<>"visualbasic"
 
C)"the"="there"
 
D)"Integer"<"Int"
 
(13)执行以下程序段
 
a$="Visual Basic Programming"
 
b$="C++"
 
C$=UCase(Left$(a$,7)) & b$ & Right$(a$,12)
 
后,变量C$的值为
 
A)Visual BASIC Programming
 
B)VISUAL C++ Programming
 
C)Visual C++ Programming
 
D)VISUAL BASIC Programming
 
(14)下列叙述中正确的是
 
A)MsgBox语句的返回值是一个整数
 
B)执行MsgBox语句并出现信息框后,不用关闭信息框即可执行其他操作
 
C)MsgBox语句的第一个参数不能省略
 
D)如果省略MsgBox语句的第三个参数(Title),则信息框的标题为空
 
(15)在窗体上画一个文本框(名称为Text1)和一个标签(名称为Label1),程序运行后,
 
  在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数,以下可以实
 
  现上述操作的事件过程是
 
A)Private Sub Text1_Change()
 
  Label1.Caption=str(Len(Text1.Text))
 
 End Sub
 
B)Private Sub Text1_Click()
 
  Label1.Caption=str(Len(Text1.Text))
 
 End Sub
 
C)Private Sub Text1_Change()
 
  Label1.Caption=Text1.Text
 
 End Sub
 
D)Private Sub Label1_Change()
 
  Label1.Caption=str(Len(Text1.Text))
 
 End Sub
 
(16)在窗体上画两个单选按钮(名称分别为Option1,Option2,标题分别为"宋体"和"黑体"),
 
  1个复选框(名称为Check1,标题为粗体)和1个文本框(名称为Text1,Text属性为"改变
 
  文字字体"),窗体外观如图所示。程序运行后,要求“宋体”单选按钮和“粗体”复选框被
 
  选中,则以下能够实现上述操作的语句序列是
 
2009年3月二级VB语言笔试真题及答案 - 宵魅 - 宵魅
 
A)Option1.Value=False
 
 Check1.Value=True
 
B)Option1.Value=True
 
 Check1.Value=0
 
C)Option2.Value=False
 
 Check1.Value=2
 
D)Option1.Value=True
 
 Check1.Value=1
 
(17)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
 
Private Sub Command1_Click()
 
  c=1234
 
  c1=Trim(Str(c))
 
  For i=1 To 4
 
     Print ____
 
  Next
 
End Sub
 
程序运行后,单击命令按钮,要求在窗体上显示如下内容:
 
1
 
12
 
123
 
1234
 
则在横线处应填入的内容为
 
A)Right(c1,i)
 
B)Left(c1,i)
 
C)Mid(c1,i,1)
 
D)Mid(c1,i,1)
 
(18)假定有一下程序段
 
For i=1 To 3
 
    For j=5 To 1 Step -1
 
    Print i*j
 
Next j
 
Next i
 
则语句Print i*j 的执行次数是
 
A)15
 
B)16
 
C)17
 
D)18
 
(19)在窗体上画两个文本框(名称分别为Text1和Text2)和一个命令按钮(名称为
 
  Command1),然后编写如下事件过程:
 
Private Sub Command1_Click()
 
  x=0
 
  Do While x<50
 
     x=(x+2)*(x+3)
 
 n=n+1
 
  Loop
 
  Text1.Text=Str(n)
 
  Text2.Text=Str(x)
 
End Sub
 
程序运行后,单击命令按钮,在两个文本框中显示的值分别为
 
A)1和0
 
B)2和72
 
C)3和50
 
D)4和168
 
(20)阅读程序:
 
Private Sub Command1_Click()
 
  a=0
 
  For j=1 To 15
 
      a=a+j Mod 3
 
  Next j
 
  Print a
 
End Sub
 
程序运行后,单击窗体,输出结果是
 
A)105
 
B)1
 
C)120
 
D)15
 
 
 
(21)以下说法中正确的是
 
A)当焦点在某个控件上时,按下一个字母键,就会执行该控件的KeyPress事件过程
 
B)因为窗体不接受焦点,所以窗体不存在自己的KeyPress事件过程
 
C)若按下的键相同,KeyPress事件过程中的KeyAscii参数与KeyDown事件过程中
 
 的KeyCode参数的值也相同
 
D)在KeyPress事件过程中,KeyAscii参数可以省略
 
 
 
 
(22)语句Dim a(-3 To 4,3 To 6) As Integer 定义的数组的元素个数是
 
A)18
 
B)28
 
C)21
 
D)32
 
 
 
(23)在窗体上画一个命令按钮,其名称为Command1,然后编写如下代码:
 
Option Base 1
 
Private Sub Command1_Click()
 
   Dim a
 
   a = Array(1, 2, 3, 4)
 
   j = 1
 
   For i = 4 To 1 Step -1
 
     s = s + a(i) * j
 
     j = j * 10
 
   Next i
 
   Print s
 
End Sub
 
程序运行后,单击命令按钮,其输出结果是
 
A)4321
 
B)1234
 
C)34
 
D)12
 
 
 
(24)假定通过复制,粘贴操作建立了一个命令按钮数组Command1,以下说法中错误的是
 
A)数组中每个命令按钮的名称(Name属性)均为Command1
 
B)若未做修改,数组中每个命令按钮的大小都一样
 
C)数组中各个命令按钮使用同一个Click事件过程
 
D)数组中每个命令按钮的Index属性值都相同
 
 
 
(25)在窗体上画一个命令按钮,名称为Command1,然后编写如下代码:
 
Option Base 0
 
Private Sub Command1_Click()
 
   Dim A1(4) As Integer, A2(4) As Integer
 
   For k = 0 To 2
 
     A1(k + 1) = InputBox("请输入一个整数")
 
     A2(3 - k) = A1(k + 1)
 
   Next k
 
   Print A2(k)
 
End Sub
 
程序运行后,单击命令按钮,在输入对话框中依次输入2、4、6则输出结果为
 
A)0
 
B)1
 
C)2
 
D)3
 
 
 
(26)以下关于函数过程的叙述中,正确的是
 
A)函数过程形参的类型与函数返回值的类型没有关系
 
B)在函数过程中,过程的返回值可以有多个
 
C)当数组作为函数过程的参数是,既能以传值方式传递,也能以传址方式传递
 
D)如果不指明函数过程参数的类型,则该参数没有数据类型
 
 
 
(27)在窗体上画两个标签按钮和一个命令按钮,其名称分别为Label1、Label2和Command1,
 
  然后编写如下程序:
 
Private Sub func(L As Label)
 
   L.Caption = "1234"
 
End Sub
 
Private Sub Form_Load()
 
  Label1.Caption = "ABCDE"
 
  Label2.Caption = 10
 
End Sub
 
Private Sub Command1_Click()
 
  a = Val(Label2.Caption)
 
  Call func(Label1)
 
  Label2.Caption = a
 
End Sub
 
程序运行后,单击命令按钮,则在两个标签中显示的内容分别为
 
A)ABCD和10
 
B)1234和100
 
C)ABCD和100
 
D)1234和10
 
 
 
(28)在窗体上画一个命令按钮(名称为Command1),并编写如下代码:
 
Function fun1(ByVal a As Integer, b As Integer) As Integer
 
   Dim t As Integer
 
   t = a - b
 
   b = t + a
 
   fun1 = t + b
 
End Function
 
Private Sub Command1_Click()
 
   Dim x As Integer
 
   x = 10
 
   Print fun1(fun1(x, (fun1(x, x - 1))), x - 1)
 
End Sub
 
程序运行后,单击命令按钮,输出结果是
 
A)10
 
B)0
 
C)11
 
D)21
 
 
 
(29)以下关于过程及过程参数的描述中,错误的是
 
A)过程的参数可以是控件名称
 
B)调用过程时使用的实参的个数应与过程形参的个数相同
 
C)只有函数过程能够将过程中处理的信息返回到调用程序中
 
D)窗体可以作为过程的参数
 
 
 
(30)设有如下通用过程
 
Public Function Fun(xStr As String) As String
 
   Dim tStr As String, strL As Integer
 
   tStr = ""
 
   strL = Len(xStr)
 
   i = strL / 2
 
   Do While i <= strL
 
     tStr = tStr & Mid(xStr, i + 1, 1)
 
     i = i + 1
 
   Loop
 
   Fun = tStr & tStr
 
End Function
 
在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮。然后编写如
 
下事件过程
 
Private Sub Command1_Click()
 
   Dim S1 As String
 
   S1 = "ABCDEF"
 
   Text1.Text = LCase(Fun(S1))
 
End Sub
 
程序运行后,单击命令按钮,文本框中显示的是
 
A)ABCDEF
 
B)abcdef
 
C)defdef
 
D)defabc
 
 
 
(31)在窗体上画一个命令按钮和一个文本框(名称分别为Command1和Text1),并把窗体
 
  的KeyPreview属性设置为True,然后编写如下代码:
 
Dim SaveAll As String
 
Private Sub Form_Load()
 
  Show
 
  Text1.Text = ""
 
  Text1.SetFocus
 
End Sub
 
Private Sub Command1_Click()
 
   Text1.Text = LCase(SaveAll) + SaveAll
 
End Sub
 
Private Sub Form_KeyPress(KeyAscii As Integer)
 
   SaveAll = SaveAll + Chr(KeyAscii)
 
End Sub
 
程序运行后,直接用键盘输入:VB,再单击命令按钮则文本框中显示的内容为
 
A)vbVB
 
B)不显示任何信息
 
C)VB
 
D)出错
 
 
 
(32)设有以下程序
 
Private Sub Form_Click()
 
  x = 50
 
  For i = 1 To 4
 
    y = InputBox("请输入一个整数")
 
    y = Val(y)
 
    If y Mod 5 = 0 Then
 
      a = a + y
 
      x = y
 
    Else
 
      a = a + x
 
    End If
 
   Next i
 
   Print a
 
End Sub
 
程序运行后,单击窗体,在输入对话框中依次输入15,24,35,46,输出结果为
 
A)100
 
B)50
 
C)120
 
D)70
 
 
 
(33)以下关于菜单的叙述中,错误的是
 
A)当窗体为活动窗体时,用Ctrl+E键可以打开菜单编辑器
 
B)把菜单项的Enabled属性设置为False,则可删除该菜单项
 
C)弹出式菜单在菜单编辑器中设计
 
D)程序运行时,利用控件数组可以实现菜单项的增加或减少
 
 
 
 
(34)以下叙述中错误的是
 
A)在程序运行时,通用对话框控件是不可见的
 
B)调用同一个通用对话框控件的不同方法(如ShowOpen或ShowSave)可以打开不
 
 同的对话框窗口
 
C)调用通用对话框控件的ShowOpen方法,能够直接打开在该通用对话框中指定的
 
 文件
 
D)调用通用对话框控件的ShowColor方法,可以打开颜色对话框窗口
 
 
 
 
(35)设在工程文件中有一个标准模块,其中定义了如下记录类型:
 
Type Books
 
  Name As String*10
 
  TelNum As String*20
 
End Type
 
在窗体上画一个名为Command1的命令按钮,要求当执行事件过程Command1_Click时,
 
在顺序文件Person.txt中写入一条Books类型的记录,下列能够完成该操作的事件过程是
 
A)Private Sub Command1_Click()
 
   Dim B As Books
 
   Open "Person.txt" For Output As #1
 
   B.Name = InputBox("输入姓名")
 
   B.Name = InputBox("输入电话号码")
 
   Write #1, B.Name, B.TelNum
 
   Close #1
 
 End Sub
 
B)Private Sub Command1_Click()
 
   Dim B As Books
 
   Open "Person.txt" For Output As #1
 
   B.Name = InputBox("输入姓名")
 
   B.Name = InputBox("输入电话号码")
 
   Print #1, B.Name, B.TelNum
 
   Close #1
 
 End Sub
 
C)Private Sub Command1_Click()
 
   Dim B As Books
 
   Open "Person.txt" For Output As #1
 
   B.Name = InputBox("输入姓名")
 
   B.Name = InputBox("输入电话号码")
 
   Write #1, B
 
   Close #1
 
 End Sub
 
D)Private Sub Command1_Click()
 
   Dim B As Books
 
   Open "Person.txt" For Output As #1
 
   B.Name = InputBox("输入姓名")
 
   B.Name = InputBox("输入电话号码")
 
   Print #1, Name,TelNum
 
   Close #1
 
 End Sub
 
 
    
 
二、填空题(每空2分,共计30分)
 
 
(1)假设用一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底
 
  指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数
 
  租下标),则栈中具有【1】个元素
 
(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于【2】测试
 
(3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和【3】
 
(4)数据库系统的核心是【4】
 
(5)在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是【5】框
 
(6)窗体如图所示,其中汽车是名称为Image1的图像框,命令按钮的名称Command1,
 
  计时器的名称为Timer1,直线的名称为Line1。程序运行时,单击命令按钮,则
 
  汽车每0.1秒向左移动100,车头到达左边的直线时停止移动。请填空完成下面
 
  的属性设置和程序,以便实现上述功能。
 
 
1)Timer1的Interval属性的值应事先设置为【6】
 
2)Private Sub Command1_Click()
 
Timer1.Enabled = True
 
End Sub
 
3)Private Sub Timer1_Timer()
 
If Image1.Left > 【7】 Then
 
Image1.Left = 【8】 - 100
 
End If
 
End Sub
 
 
 
7.上题【7】的答案是
 
 
 
8.上一题【8】的答案是
 
 
 
9.
 
(7)设窗体上有一个名称为Combo1的组合框,并有以下程序:
 
Private Sub Combo1_KeyPress(KeyAscii As Integer)
 
If 【9】 = 13 Then
 
For k = 0 To Combo1.ListCount - 1
 
If Combo1.Text = Combo1.List(k) Then
 
Combo1.Text = ""
 
Exit For
 
End If
 
Next k
 
If Combo1.Text <> "" Then
 
Combo1.AddItem 【10】
 
End If
 
End If
 
End Sub
 
程序的功能是:在组合框的编辑区中输入文本后按回车键,则检查列表中
 
有无与此文本相同的项目,若有,则把编辑区中的文本删除,否则把编辑
 
区中的文本添加到列表的尾部。请填空。
 
 
 
10.
 
上一题【10】的答案是
 
 
 
11.
 
(8)在当前目录下有一个名为"myfile.txt"的文本文件,其中有若干行文本。下面程序的
 
功能是读入此文件中的所有文本行,按行计算每行字符的ASCII码之和,并显示在窗体上。
 
请填空
 
Private Sub Command1_Click()
 
    Dim ch$, ascii As Integer
 
    Open "myfile.txt" For 【11】 As #1
 
    While Not EOF(1)
 
       Line Input #1, ch
 
       ascii = toascii(【12】)
 
       Print ascii
 
    Wend
 
    Close #1
 
End Sub
 
Private Function toascii(mystr$) As Integer
 
  n = 0
 
  For k = 1 To 【13】
 
    n = n + Asc(Mid(mystr, k, 1))
 
  Next k
 
  toascii = n
 
End Function
 
 
 
12.
 
上一题【12】的答案是
 
 
 
13.
 
上一题【13】的答案是
 
 
 
14.
 
(9)本程序实现文本加密。先给定序列:a1,a2,...,an,它们的取值范围是1~n,而且互
 
不相同。加密算法是:把原文本中第k个字符放到加密后文本的第ak个位置处。若原
 
文本长度大于n,则只对前面n个字符加密,后面的字符不变;若原文本长度小于n,则
 
在后面补字符"*"使文本长度为n后再加密。
 
例如:若给定序列a1,a2,...a7分别为2,5,3,7,6,1,4
 
  当文本为“PROGRAM"时,加密后的文本为"APOMRRG"
 
  当文本为"THANK"时,加密后的文本为"*TA*HKN"
 
下面的过程code实现这一算法。其中参数数组a()中存放给定序列(个数与数组a的元素
 
个数相等)a1,a2,a3...的值,要加密的文本放在参数变量mystr中,过程执行完毕,加
 
密后的文本仍然放在变量mystr中。请填空。
 
Option Base 1
 
Private Sub code(a() As Integer, mystr As String)
 
  Dim ch As String, c1 As String
 
  n = UBound(a) - Len(mystr)
 
  If n > 0 Then
 
     mystr = mystr & String$(n, "*")
 
  End If
 
  ch = mystr
 
  For k = 【14】 To UBound(a)
 
     c1 = Mid(mystr, k, 1)
 
     n = 【15】
 
     Mid(ch, n) = c1
 
  Next k
 
  mystr = ch
 
End Sub
 
 
15.
 
上一题【15】的答案是
 
关于我们付款方式广告联系合作联系教师合作网站地图网站声明友情链接考试论坛帮助中心
全国计算机等级考试NCRE100门户网站 www.ncre100.com 客服QQ:279206599
NCRE100是一家公益网站,为广大考试提供考试信息服务 NCRE100版权所有 ? 2004-2014 Ncre100.com 京ICP备13021823-3号
扫描关注微信