机密★启用前
2006 年 4 月全国计算机等级考试二级笔试试卷
Visual Basic 语言程序设计
26
注意事项
一、考生应严格遵守考场规则,得到监考人员指令后方可作答。
二、考生拿到试卷后应首先将自己的姓名、准考证号等内容涂写在答题卡的相应位置上。
三、选择题答案必须用铅笔填涂在答题卡的相应位置上,填空题的答案必须用蓝、黑色钢笔或圆珠笔写在答题卡的相应位置上,答案写在试卷上无效。
四、注意字迹清楚,保持卷面整洁。
五、考试结束将试卷和答题卡放在桌上,不得带走。待监考人员收毕清点后,方可离场。
* * * 版权所有,任何单位或个人不得保留、复制和出版,违者必究 * * *
教育部考试中心
二 00 六年二月制
二级 Visual Basic 语言程序设计试卷 第 1 页(共 11 页)
2006年4月全国计算机等级考试二级笔试试卷
公共基础知识和Visual Basic语言程序设计
(考试时间 90 分钟,满分 100 分)
一、选择题(每小题 2 分,共 70 分)
( 1)下列选项中不属于结构化程序设计方法的是( )。
A)自顶向下
B)逐步求精
C)模块化
D)可复用
( 2)两个或两个以上模块之间关联的紧密程度称为( )。
A)耦合度
B)内聚度
C)复杂度
D)数据传输特性
( 3)下列叙述中正确的是( )。
A)软件测试应该由程序开发者来完成
B)程序经调试后一般不需要再测试
C)软件维护只包括对程序代码的维护
D)以上 3 种说法都不对
( 4)按照“后进先出”原则组织数据的数据结构是( )。
A)队列
B)栈
C)双向链表
D)二叉树
( 5)下列叙述中正确的是( )。
A)线性链表是线性表的链式存储结构
B)栈与队列是非线性结构
C)双向链表是非线性结构
D)只有根结点的二叉树是线性结构
( 6)对下列二叉树,
进行后序遍历的结果为( ) 。
A) ABCDEF
B) DBEAFC
C) ABDECF
D) DEBFCA
二级 Visual Basic 语言程序设计试卷 第 2 页(共 11 页)
( 7)在深度为 7 的满二叉树中,叶子结点的个数为( )。
A) 32 B) 31
C) 64 D) 63
( 8)“商品”与“顾客”两个实体集之间的联系一般是( )。
A)一对一
B)一对多
C)多对一
D)多对多
( 9)在 E-R 图中,用来表示实体的图形是( )。
A)矩形
B)椭圆形
C)菱形
D)三角形
( 10)数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是( )。
A) DB 包含 DBS 和 DBMS
B) DBMS 包含 DB 和 DBS
C) DBS 包含 DB 和 DBMS
D)没有任何关系
( 11)下列关于 Visual Basic 特点的叙述中,错误的是( )。
A) Visual Basic 是采用事件驱动编程机制的语言
B) Visual Basic 程序既可以编译运行,也可以解释运行
C)构成 Visual Basic 程序的多个过程没有固定的执行顺序
D) Visual Basic 程序不是结构化程序,不具备结构化程序的 3 种基本结构
( 12)下列叙述中错误的是( )。
A)一个 Visual Basic 应用程序可以含有多个标准模块文件
B)一个 Visual Basic 工程可以含有多个窗体文件
C)标准模块文件可以属于某个指定的窗体文件
D)标准模块文件的扩展名是,bas
( 13)下列叙述中错误的是( )。
A)在 Visual Basic 中,对象所能响应的事件是由系统定义的
B)对象的任何属性既可以通过属性窗口设定,也可以通过程序语句设定
C) Visual Basic 中允许不同对象使用相同名称的方法
D) Visual Basic 中的对象具有自己的属性和方法
( 14)有下列语句,
Dim a,b As Integer
c="VisualBasic"
d=#7/20/2005#
下列关于这段代码的叙述中错误的是( ) 。
A) a 被定义为 Integer 类型变量
B) b 被定义为 Integer 类型变量
C) c 中的数据是字符串
D) d 中的数据是日期类型
( 15)下列能从字符串 "VisualBasic"中直接取出子字符串 "Basic"的函数是( )。
A) Left
二级 Visual Basic 语言程序设计试卷 第 3 页(共 11 页)
B) Mid
C) String
D) Instr
( 16)设 a=4,b=3,c=2,d=1,下列表达式的值是( )。
a>b+1 Or c<d And b Mod c
A) True B) 1
C) -1 D) 0
( 17)下列可以作为 Visual Basic 变量名的是( )。
A) A#A B) counstA
C) 3A D)?AA
( 18)设 x=4,y=6,则下列不能在窗体上显示出,A=10”的语句是( )。
A) Print A=x+y
B) Print"A=";x+y
C) Print"A="+Str(x+y)
D) Print"A="&x+y
( 19)有下列的命令按钮(名称为 Command1)事件过程,
Private Sub Command1_Click( )
x=InputBox("输入,","输入整数 ")
MsgBox "输入的数据是,",,"输入数据,"+x
End Sub
程序运行后,单击命令按钮,如果从键盘上输入整数 10,则下列叙述中错误的是
( ) 。
A) x 的值是数值 10
B)输入对话框的标题是“输入整数”
C)消息框的标题是“输入数据,10”
D)消息框中显示的是“输入的数据是:”
( 20)在窗体上画 1 个命令按钮(名称为 Command1)和 1 个文本框(名称为 Text1),然后编写下列事件过程,
Private Sub Command1_Click( )
x=Val(Text1.Text)
Select Case x
Case 1,3
y=x*x
Case Is>=10,Is<=-10
y=x
Case -10 To 10
y=-x
End Select
End Sub
程序运行后,在文本框中输入 3,然后单击命令按钮,则下列叙述中正确的是 ( ) 。
A)执行 y=x*x
B)执行 y=-x
C)先执行 y=x*x,再执行 y=-x
D)程序出错
二级 Visual Basic 语言程序设计试卷 第 4 页(共 11 页)
( 21)命令按钮 Command1 的单击事件过程的代码下列,
Private Sub Command1_Click( )
Dim a(30) As Integer
For i=1 To 30
a(i)=Int(Rnd*100)
Next
For Each arrItem In a
If arrItem Mod 7=0 Then Print arrItem;
If arrItem>90 Then Exit For
Next
End Sub
对于该事件过程,下列叙述中错误的是( ) 。
A) a 数组中的数据是 30 个 100 以内的整数
B)语句 For Each arrItem In a 有语法错误
C) If arrItem Mod 7=0……语句的功能是输出数组中能够被 7 整除的数
D) If arrItem>90……语句的作用是当数组元素的值大于 90 时退出 For 循环
( 22)命令按钮 Command1 的单击事件过程的代码如下,
Private Sub Command1_Click( )
Dim a(3,3)As Integer
For i=1 To 3
For j=1 To 3
a(i,j)=i*j+i
Next j
Next i
Sum=0
For i=1 To 3
Sum=Sum+a(i,4-i)
Next i
Print Sum
End Sub
运行程序,单击命令按钮,输出结果是( ) 。
A) 20 B) 7
C) 16 D) 17
( 23)在窗体上画 1 个名称为 Command1 的命令按钮,然后编写下列事件过程,
Private Sub Command1_Click( )
a=0
For i=1 To 2
For j=1 To 4
If j Mod 2<>0 Then
a=a-1
End If
a=a+1
Next j
Next i
二级 Visual Basic 语言程序设计试卷 第 5 页(共 11 页)
Print a
End Sub
程序运行后,单击命令按钮,输出结果是( ) 。
A) 0 B) 2
C) 3 D) 4
( 24)窗体上有名称分别为 Text1,Text2 的 2 个文本框,有一个由 3 个单选按钮构成的控件数组 Option1,如图 1 所示。程序运行后,如果单击某个单选按钮,则执行 Text1
中的数值与该单选按钮所对应的运算(乘以 1,10 或 100),并将结果显示在 Text2
中,如图 2 所示。 为了实现以上功能,在程序中的问号 (?) 处应填入的内容是 ( ) 。
图 1 图 2
Private Sub Option1_Click(Index As Integer)
If Text1.Text<>“,Then
Select Case?
Case 0
Text2.Text=Val(Text1.Text)
Case 1
Text2.Text=Val(Text1.Text)*10
Case 2
Text2.Text=Val(Text1.Text)*100
End Select
End If
End Sub
A) Index
B) Option1.Index
C) Option1(Index)
D) Option1(Index).Value
( 25)在窗体上画 1 个命令按钮,其名称为 Command1,然后编写下列程序,
Private Sub Command1_Click( )
Dim a(10) As Integer
Dim x As Integer
For i=1 To 10
a(i)=8+i
Next
x=2
Print a(f(x)+x)
End Sub
Function f(x As Integer)
x=x+3
f=x
End Function
二级 Visual Basic 语言程序设计试卷 第 6 页(共 11 页)
程序运行后,单击命令按钮,输出结果为( ) 。
A) 12 B) 15
C) 17 D) 18
( 26)下列关于过程的叙述中,错误的是( )。
A)事件过程是由某个事件触发而执行的过程
B)函数过程的返回值可以有多个
C)可以在事件过程中调用通用过程
D)不能在事件过程中定义函数过程
( 27)在窗体上画 3 个标签,3 个文本框(名称分别为 Text1,Text2 和 Text3)和 1 个命令按钮(名称为 Command1),外观如图所示。
编写下列程序,
Private Sub Form_Load( )
Text1.Text=“,
Text2.Text=“,
Text3.Text=“,
End Sub
Private Sub Command1_Click( )
x=Val(Text1.Text)
y=Val(Text2.Text)
Text3.Text=f(x,y)
End Sub
Function f(ByVal x As Integer,ByVal y As Integer)
Do While y<>0
tmp=x Mod y
x=y
y=tmp
Loop
f=x
End Function
运行程序,在 Text1 文本框中输入 36,在 Text2 文本框中输入 24,然后单击命令按钮,
则在 Text3 文本框中显示的内容是( ) 。
A) 4 B) 6
C) 8 D) 12
( 28)窗体上有名称分别为 Text1,Text2 的 2 个文本框,要求文本框 Text1 中输入的数据小于 500,文本框 Text2 中输入的数据小于 1000,否则重新输入。为了实现以上功能,
在下列程序中问号(?)处应填入的内容是( )。
Private Sub Text1_LostFocus( )
Call CheckInput(Text1,500)
End Sub
二级 Visual Basic 语言程序设计试卷 第 7 页(共 11 页)
Private Sub Text2_LostFocus( )
Call CheckInput(Text2,1000)
End Sub
Sub CheckInput(t As?,x As Integer)
If Val(t.Text)>x Then
MsgBox"请重新输入 !"
End If
End Sub
A) Text B) SelText
C) Control D) Form
( 29)在窗体上画 1 个文本框,其名称为 Text1,然后编写下列过程,
Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)
Print Chr(KeyCode)
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer,Shift As Integer)
Print Chr(KeyCode+2)
End Sub
程序运行后,把焦点移到文本框中,此时如果敲击,A”键,则输出结果为( ) 。
A) A B) A
A B
C) A D) A
C D
( 30)为了使列表框中的项目呈多列显示,需要设置的属性为( )。
A) Columns B) Style
C) List D) MultiSelect
( 31)在窗体上画 1 个命令按钮,名称为 Command1,然后编写下列程序,
Dim Flag As Boolean
Private Sub Command1_Click( )
Dim intNum As Integer
intNum=InputBox("请输入,")
If Flag Then
Print f(intNum)
End If
End Sub
Function f(X As Integer)As Integer
If X<10 Then
Y=X
Else
Y=X+10
End If
f=Y
End Function
Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single)
Flag=True
二级 Visual Basic 语言程序设计试卷 第 8 页(共 11 页)
End Sub
运行程序,首先单击窗体,然后单击命令按钮,在输入对话框中输入 5,则程序的输出结果为( ) 。
A) 0 B) 5
C) 15 D)无任何输出
( 32)在菜单编辑器中建立 1 个名称为 Menu0 的菜单项,将其“可见”属性设置为 False,
并建立其若干子菜单,然后编写下列事件过程,
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
If Button=1 Then
PopupMenu Menu0
End If
End Sub
则下列叙述中错误的是( ) 。
A)该过程的作用是弹出一个菜单
B)单击鼠标右键时弹出菜单
C) Menu0 是在菜单编辑器中定义的弹出菜单的名称
D)参数 X,Y 指明鼠标当前位置的坐标
( 33)窗体上有 1 个名称为 CD1 的通用对话框,1 个名称为 Command1 的命令按钮。命令按钮的单击事件过程下列,
Private Sub Command1_Click( )
CD1.FileName=“,
CD1.Filter="All Files|*.*|(*.DoC)|*.Doc|(*.Txt)|*.txt"
CD1.FilterIndex=2
CD1.Action=1
End Sub
关于以上代码,错误的叙述是( ) 。
A)执行以上事件过程,通用对话框被设置为“打开”文件对话框
B)通用对话框的初始路径为当前路径
C)通用对话框的默认文件类型为 *.Txt
D)以上代码不对文件执行读写操作
( 34)下列叙述中错误的是( )。
A)用 Shell 函数可以执行扩展名为,exe 的应用程序
B)若用 Static 定义通用过程,则该过程中的局部变量都被默认为 Static 类型
C) Static 类型的变量可以在标准模块的声明部分定义
D)全局变量必须在标准模块中用 Public 或 Global 声明
( 35)下列关于文件的叙述中错误的是( )。
A)使用 Append 方式打开文件时,文件指针被定位于文件尾
B)当以输入方式( Input)打开文件时,如果文件不存在,则建立一个新文件
C)顺序文件各记录的长度可以不同
D)随机文件打开后,既可以进行读操作,也可以进行写操作
二、填空题 (每空 2 分,共 30 分 )
( 1)对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 【 1】 。
( 2)在面向对象方法中,【 2】 描述的是具有相似属性与操作的一组对象。
二级 Visual Basic 语言程序设计试卷 第 9 页(共 11 页)
( 3)在关系模型中,把数据看成是二维表,每一个二维表称为一个 【 3】 。
( 4)程序测试分为静态分析和动态测试。其中 【 4】 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
( 5)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 【 5】 。
( 6)下列语句的输出结果是 【 6】 。
Print Format(Int(12345.6789*100+0.5)/100,"00,000.00")
( 7)在窗体上画 1 个命令按钮,其名称为 Command1,然后编写下列事件过程,
Private Sub Command1_Click( )
Dim arr(1 To 100) As Integer
For i=1 To 100
arr(i)=Int(Rnd*1000)
Next i
Max=arr(1)
Min=arr(1)
For i=1 To 100
If 【 7】 Then
Max=arr(i)
End If
If 【 8】 Then
Min=arr(i)
End If
Next i
Print"Max="; Max,"Min="; Min
End Sub
程序运行后,单击命令按钮,将产生 100 个 1000 以内的随机整数,放入数组 arr 中,
然后查找并输出这 100 个数中的最大值 Max 和最小值 Min,请填空。
( 8)在窗体上画 1 个名称为 Command1 的命令按钮和 2 个名称分别为 Text1,Text2 的文本框,如图所示,然后编写下列程序,
Function Fun(x As Integer,ByVal y As Integer)As Integer
x=x+y
If x<0 Then
Fun=x
Else
Fun=y
End If
End Function
Private Sub Command1_Click( )
Dim a As Integer,b As Integer
二级 Visual Basic 语言程序设计试卷 第 10 页(共 11 页)
a=-10:b=5
Text1.Text=Fun(a,b)
Text2.Text=Fun(a,b)
End Sub
程序运行后,单击命令按钮,Text1 和 Text2 文本框显示的内容分别是 【 9】 和
【 10】 。
( 9)在窗体上画 1 个命令按钮和 1 个文本框,其名称分别为 Command1 和 Text1,然后编写下列事件过程,
Dim SaveAll As String
Private Sub Command1_Click( )
Text1.Text=Left(UCase(SaveAll),4)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
SaveAll=SaveAll+Chr(KeyAscii)
End Sub
程序运行后,在文本框中输入 abcdefg,单击命令按钮,则文本框中显示的内容是
【 11】 。
( 10)在窗体上画 1 个命令按钮和 1 个通用对话框,其名称分别为 Command1 和
CommonDialog1,然后编写下列事件过程,
Private Sub Command1_Click( )
CommonDialog1,【 12】 ="打开文件 "
CommonDialog1.Filter="All Files(*.*)|*.*"
CommonDialog1.InitDir="C:\"
CommonDialog1.ShowOpen
End Sub
该程序的功能是:程序运行后,单击命令按钮,将显示“打开”文件对话框,其标题是
“打开文件”,在“文件类型”栏内显示,AIl Files(*.*)”,并显示 C 盘根目录下的所有文件,请填空。
( 11)在窗体上画 1 个文本框,名称为 Text1,然后编写下列事件过程,
Private Sub Form_Load( )
Open"d:\temp\dat.txt"For Output As#1
Text1.Text=“,
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
lf 【 13】 =13 Then
If UCase(Text1.Text)= 【 14】 Then
Close 1
End
Else
Write#1,【 15】
Text1.Text=" "
End If
End If
End Sub
二级 Visual Basic 语言程序设计试卷 第 11 页(共 11 页)
以上程序的功能是:在 D 盘 temp 目录下建立 1 个名为 dat.txt 的文件,在文本框中输入字符,每次按回车键(回车符的 ASCII 码是 13)都把当前文本框中的内容写入文件 dat.txt,
并清除文本框中的内容;如果输入,END”,则结束程序。请填空。