2012年9月全国计算机二级VB考试真题
二级VB
一、选择题(每小题2分,共70分) (1)下列链表中,其逻辑结构属于非线性结构的是 A)循环链表 B)双向链表 C)带链的栈 D)二叉链表 (2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为 A)16 B)20 C)0或35 D)15 (3)下列关于栈的叙述中,正确的是 A)栈顶元素一定是最先入栈的元素 B)栈操作遵循先进后出的原则 C)栈底元素一定是最后入栈的元素 D)以上三种说法都不对 (4)在关系数据库中,用来表示实体间联系的是 A)二维表 B)树状结构 C)属性 D)网状结构 (5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是 A)m:1联系 B)1:m联系 C)1:1联系 D)m:n联系 (6) 有两个关系R和S 如下:
则由关系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
运行程序, 单击命令按钮, 在输入对话框中分别输入2、3, 运行的结果是
A)程序运行有错误, 数据类型不匹配 ’
B)程序运行有错误。InputBox函数的格式不时
C)在Labell中显示5 1
D)在Labell中显示23
(19)窗体上有一个名称为Shape1的形状控件和由三个命令按钮组成的名称为cmdDraw的控件数组。窗体外观如图所示(从上到下的3个命令按钮的下标值分别为0、1、2)。有事件过程如下:
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
此程序运行后输出的是在1~100范围内
A)同时能被3和7整除的整数个数
B)能被3或7整除的整数个数(同时被3和7整除的数只记一次)
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)求数值m和n的最大公约数 B)求数值m和n的最小公倍数
C)求数值m和n中的较大数 D)求数值m和n中的较小数
(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=0,top=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)以下程序的功能是从随机产生的20个20~200(含20和
200)的整数中, 找出能够同时被3和5整除的数的最大值, 并显示
出来。请填空。
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
|