一、选择题(每小题2分,共70分)
(1)下列链表中,其逻辑结构属于非线性结构的是
A)二叉链表
(2)设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为 D)0或35
(3)下列关于栈的叙述中,正确的是 C)栈操作遵循先进后出的原则
(4)在关系数据库中,用来表示实体间联系的是
B)二维表
(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多个职员。则实体部门和职员间的联系是 C)1:m联系
(6)有两个关系R和S如下: R S A B C A B C a 1 2 b 2 1
c 3 1
c 3 1
则由关系R得到关系S的操作是 A)选择
(7)数据字典(DD)所定义的对象都包含于 A)数据流图(DFD图)
(8)软件需求规格说明书的作用不包括 D)软件可行性研究的依据
(9)下面属于黑盒测试方法的是 C)边界值分析
(10)下面不属于软件设计阶段任务的是 C)指定软件确认测试计划
(11)以下叙述中错误的是
B).frm文件是窗体文件,一个窗体可以包含.bas文件 (12)以下叙述中错误的是
C)事件都是由用户的键盘操作或鼠标操作触发的 (13)设x=3.3,y=4.5,表达式x-Int(x)+Fix(y)的值是
C)4.3
(14)窗体上有一个名称为Command1的命令按钮,其中部分代码如下: Private Sub Command1_Click() Dim a(10) As Integer Dim n As Integer „„
Call calc(a, n)
„„
End Sub
calc过程的首行应该是
A)Sub calc(x( ) 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,输出结果为
D)12 35
(16)以下叙述中正确的是
A)窗体及窗体上所有控件的事件过程代码都保存在窗体文件中
(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,窗体上显示的是 B)6 7 8 9 10
(18)窗体上有一个名称为为Label1的标签和一个名称为Command1的命令按钮。命令按钮的单击事件过程如下: Private Sub Command1_Click() x = InputBox(\"输入x:\y = InputBox(\"输入y:\Label1.Caption = x + y End Sub
运行程序,单击命令按钮,在输入对话框中分别输入2、3,运行的结果是 D)在Label1中显示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事件过程。以下叙述中正确的是 D)程序正常运行,形状控件被被显示为圆形。
(20)如果一个正整数从高位到低位上的数字依次递减,则称其为降序数(如:9632是降序数,而8516则不是降序数)。现编写如下程序,判断输入的正整数是否为降序数。 Private Sub Command1_Click() Dim a 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 flage = False If flag Then
Print n; \"是降序数\" Else
Print n; \"不是降序数\"
End If End Sub
运行以上程序,发现有错误,需要对给flag变量赋值的If语句进行修改。以下正确的修改是 B)If i = Len(s) + 1 Then flag = True Else flage = False (21)现有如下程序: Private Sub Command1_Click() c1 = 0 c2 = 0
For i = 1 To 100 If i Mod 3 = 0 Then c1 = c1 + 1
ElseIf i Mod 7 = 0 Then c2 = c2 + 1 End If Next
Print c1 + c2 End Sub
此程序运行后输出的是在1~100范围内
B)能被3或7整除的整数个数(同时被3和7整除的数只记一次) (22)设菜单编辑器中各菜单项的属性设置如下表所示: 序号 标题 名称 复选 有效 可见 内缩符号 1 File File √ √ 无 2 3 4 5
Open Save Exit Help
OpenFile SaveFile EndOfAll ShowHelp
√ √ √
√ √ √
1 1 1 1
针对上述属性设置,以下叙述中错误的是
A)属性设置有错,存在“标题”与“名称”重名现象
(23)窗体上有一个名称为Command1的命令按钮,并有如下程序: Private Sub Command1_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,输出结果为
B)-1
(24)以下关于通用对话框的叙述中,错误的是
D)文件对话框用属性FilterIndex指定默认过滤器,它是一个从0开始的整数。 (25)窗体上有一个名称为Command1的命令按钮,并有如下程序: Private Sub Command1_Click() Dim m As Integer, n As Integer 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的最大公约数
(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
运行程序,单击命令按钮,以下叙述中正确的是 C)程序能正常运行,结果是在窗体上显示15 (27)目录列表框Path属性所表示的含义是 A)当前驱动器或指定驱动器上的路径 (28)以下关于函数过程的叙述中错误的是 B)函数过程一定有参数
(29)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序: 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
运行程序,其结果是
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\") + 1) 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
对上述程序,以下叙述中正确的是
C)程序可正常运行,输出内容的第一个是一个字母“B”
(31)窗体上有一个名称为Picture1的图片框控件,一个名称为Timer1的计时器控件,其Interval属性值为1000。要求每隔5秒钟图片框右移100。现编写程序如下: Private Sub Timer1_Timer() Static n As Integer n = n + 1
If (n / 5) = Int(n / 5) And Picture1.Left < Form1.Width Then Picture1.Left = Picture1.Left + 100 End If End Sub
分析以上程序,以下叙述中正确的是
D)If语句条件中“Picture1.Left”用于限制图片框移动的范围
(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
(33)窗体上有一个名称为Command1的命令按钮,其单击事件过程如下: Private Sub Command1_Click()
Dim a, b(2, 3) As Integer
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 Next Loop
Print b(2, 2) End Sub
运行程序,窗体上显示的是
C)37
(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 Print #2, s Loop Close #1, #2 End Sub
关于上述程序,以下叙述中错误的是 B)程序中打开了两个随机文件
(35)以下关于文件及相关操作的叙述中错误的是 A)以Append方式打开的文件可以进行读写操作
二、填空题(每空2分,共30分)
(1)一颗二叉树共有47个结点,其中有23个度为2的结点。假设根节点在第1层,则该二叉树的深度为【1】6。
(2)设栈的存储空间为S(1:40),初始状态为buttom=0,top=0。现经过一系列入栈与出栈运算后,top=20,则当前栈中有【2】20个元素。
(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】Opt1(i)) End If Next End Sub
Private Sub f(x As Control)
Label1.Caption = \"您选择的是:\" & 【7】x.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】 List1.Selected(i)= True Then s = s + 【9】Val(List1.List(i)) End If Next
Label2.Caption = 【10】s 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】181) + 20
If a(i) Mod 3 = 0 【12】And a(i) Mod 5 = 0 Then If a(i) > m Then m = a(i) End If Next
If 【13】m = 0 Then
Print \"没有满足条件的数\" Else
Print \"满足条件的数是\"; m End If End Sub
(9)在窗体上画一个名称为Timer1的计时器控件,其Enabled属性设为False,Interval属性值设为100。要求程序运行后,当鼠标在窗体上移动时,沿鼠标经过的轨迹画出一系列半径为100的小圆。其效果如图所示。以下是实现上述功能的程序,请填空。
Dim a As Integer, b As Integer
Private Sub Form_【14】MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) a = X b = Y
Timer1.Enabled = 【15】True End Sub
Private Sub Timer1_Timer() Form1.Circle (a, b), 100 End Sub
2012年 3月全国计算机等级考试二级笔试试卷
Visual Basic语言程序设计 (考试时间90 分钟,满分100分)
一、选择题(每小题2分,共70分)
下列各题A) 、B) 、C) 、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是( ) 。
(2)下列叙述中正确的是
A)栈是一种先进先出的线性表 C)栈与队列都是非线性结构
(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为
(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是
(5)在满足实体完整性约束的条件下
A)一个关系中应该有一个或多个候选关键字 B)一个关系中只能有一个候选关键字 C)一个关系中必须有多个候选关键字 D)一个关系中可以没有候选关键字
(6)有三个关系R、S和T如下:
R A B C a b c
(7)软件生命周期中的活动不包括
A)市场调研
B)需求分析
C)软件测试
D)软件维护
A)自然连接
1 2 3 2 1 1 A a d S B C 1 2 2 1 A b c C)交
T B C 2 3 1 1
D)差
A)外模式
B)内模式
C)概念模式
D)逻辑模式
A)16
B)10
C)6
D)4
B)队列是一种后进先出的线性表 D)以上三种说法都不对
A)循环队列是队列的一种链式存储结构 C)循环队列是非线性结构
B)循环队列是队列的一种顺序存储结构 D)循环队列是一种逻辑结构
则由关系R和S得到关系T的操作是
B)并
(8)下面不属于需求分析阶段任务的是
(9)在黑盒测试方法中,设计测试用例的主要根据是
(10)在软件设计中不使用的工具是
A)系统结构图
(11)以下合法的VB变量名是
(12)设x是小于10的非负数。对此叙述,以下正确的VB表达式是
(13 以下关于窗体的叙述中,错误的是
(14)下面定义窗体级变量a的语句中错误的是
(15)表达式Int(Rnd(0)*50)所产生的随机数范围是
(16)设x=5,执行语句Print x = x + 10,窗体上显示的是
A)15
B)5
C)True
D)False
A)(0,50)
B)(1,50)
C)(0,49)
D)(1,49)
A)Dim a%
B)Private a% D)Static a%
A)窗体的Name属性用于标识一个窗体
B)运行程序时,改变窗体大小,能够触发窗体的Resize事件 C)窗体的Enabled属性为False时,不能响应单击窗体的事件 D)程序运行期间,可以改变Name属性值 A)0≤x<10
B)0<=x<10
C) x≥0 And x<10
D)x>=0 Or x<=10
A)case
B)name10
C)t-name
D)x*y
B)PAD图 D)程序流程图
A)程序内部逻辑 C)程序数据结构
B)程序外部功能 D)程序流程图
A)确定软件系统的功能需求 C)需求规格说明书评审
B)确定软件系统的性能需求 D)制定软件集成测试计划
C)数据流图(DFD图)
C)Private a As Integer
(17)设有如下数组声明语句:
Dim arr(-2 To 2, 0 To 3) As Integer 该数组所包含的数组元素个数是 A) 20
(18)现有由多个单选按钮构成的控件数组,用于区别该控件数组中各控件的属性是
A)Name
(19)设有分段函数:
B)Index
C)Caption
D)Value
B) 16
C) 15
D) 12
5 x<0 y = x*2 0≤x≤5 x*x+1 x>5 A) Select Case x Case Is < 0 y = 5 y = 2 * x Case Else
End Select
(20)设程序中有如下语句: x = InputBox(\"输入\数据\
Print x
以下表示上述分段函数的语句序列中错误的是
B) If x < 0 Then y = 5 Else
y = x * x + 1 End If
y = 2 * x
ElseIf x <= 5 Then
Case Is <= 5, Is > 0
y = x * x + 1
C) y = IIf(x < 0, 5, IIf(x <= 5, 2 * x, x * x + 1))
D) If x < 0 Then y = 5
If x <= 5 And x >= 0 Then y = 2 * x If x > 5 Then y = x * x + 1
运行程序,执行上述语句,输入5并单击输入对话框上的“取消”按钮,则窗体上输出
A)0
B)5
C)100
D)空白
(21)现有如下一段程序:
Option Base 1
Private Sub Command1_Click() Dim a
a = Array(3, 5, 7, 9) x = 1
For i = 4 To 1 Step -1 s = s + a(i) * x x = x * 10 Next Print s End Sub
执行程序,单击Command1命令按钮,执行上述事件过程,输出结果是
(22)设有一个命令按钮Command1的事件过程以及一个函数过程,程序如下: Option Base 1
Private Sub Command1_Click() Static x As Integer x = f(x + 5) Cls Print x End Sub
Private Function f(x As Integer) As Integer f = x + x End Function
连续单击命令按钮3次,第3次单击命令按钮后,窗体上显示的计算结果是
(23)以下关于菜单设计的叙述中错误的是
A)各菜单项可以构成控件数组 B)每个菜单项可以看成是一个控件 C)设计菜单时,菜单项的“有效”未选,即D)菜单项只响应单击事件
(24)以下关于多窗体的叙述中,正确的是
A)任何时刻,只有一个当前窗体
B)向一个工程添加多个窗体,存盘后生成一个窗体文件 C)打开一个窗体时,其他窗体自动关闭
,表示该菜单项不显示
A)10
B)30
C)60
D)70
A)9753
B)3579
C)35
D)79
D)只有第一个建立的窗体才是启动窗体
(25)窗体上有一个名称为CommonDialog1的通用对话框,一个名称为Command1的命令按钮,并有如下事件过程:
Private Sub Command1_Click() CommonDialog1.DefaultExt=\"doc\" CommonDialog1.FileName=\"VB.txt\"
CommonDialog1.Filter = \"All(*.*)|*.*|Word|*.Doc|\" CommonDialog1.FilterIndex = 1 CommonDialog1.ShowSave End Sub
运行上述程序,如下叙述中正确的是
A)打开的对话框中文件“保存类型”框中显示“All(*.*)” B)实现保存文件的操作,文件名是VB.txt
C)DefaultExt属性FileName属性所指明的文件类型不一致,程序出错 D)对话框的Filter属性没有指出txt类型,程序运行出错
(26)设程序中有如下数组定义和过程调用语句:
Dim a(10) As Integer ...... Call p(a)
如下过程定义中,正确的是 A)Private Sub p(a As Integer)
(27)若要获得组合框中输入的数据,可使用的属性是
(28) 在窗体上画两个名称分别为Text1、Text2的文本框,Text1的属性为“DataBase”,如图所示。
A)ListIndex
B)Caption
C)Text
D)List
B)Private Sub p(a( ) As Integer)
C)Private Sub p(a(10) As Integer) D)Private Sub p(a(n) As Integer)
现有如下事件过程: Private Sub Text1_Change() Text2.Text = Mid(Text1, 1, 5) End Sub
运行程序,在文本框Text1中原有字符之前输入a,Text2中显示的是
A)DataA
B)DataB
C)aData
D)aBase
(29)有如下程序:
Option Base 1
Private Sub Command1_Click() Dim arr(10)
arr = Array(10, 35, 28, 90, 54, 68, 72, 90) For Each a In arr If a > 50 Then Sum = Sum + a End If Next a End Sub
运行上述程序时出现错误,错误之处是
(30)要求产生10个随机整数,存放在数组arr中。从键盘输入要删除的数组元素的下标,将该元素中的数据删除,后面元素中的数据依次前移,并显示删除后剩余的数据。现有如下程序:
Option Base 1
Private Sub Command1_Click() Dim arr(10) As Integer For i = 1 To 10 '循环1 arr(i) = Int(Rnd * 100) Print arr(i); Next Print
X = InputBox(\"输入1-10的一个整数:\") For i = X + 1 To 10 '循环2 arr(i - 1) = arr(i) Next
For i = 1 To 10 '循环3 Print arr(i); Next End Sub
(31)使用驱动器列表框Drive1、目录列表框Dir1、文件列表框File1时,需要设置控件的同步,以下能够正确设置两个控件同步的命令是
A)Dir1.Path = Drive1.Path
B)File1.Path = Dir1.Path
程序运行后发现显示的结果不正确。应该进行的修改是 A)产生随机数时不使用Int函数
B)循环2的初值应为i = x
C)数组定义改为Dim a(11) As Integer
D)循环3的循环终值应改为9
A)数组定义语句不对,应改为Dim arr C)应在For语句之前增加Sum = 0
B)没有指明For循环的终值 D)Next a应改为Next
C)File1.Path = Drive1.Path D)Drive1.Drive = Dir1.Path
(32)以下关于弹出式菜单的叙述中,错误的是
A)一个窗体只能有一个弹出式菜单
(33)有如下程序:
Private Type stu X As String Y As Integer End Type
Private Sub Command1_Click() Dim a As stu a.X = \"ABCD\" a.Y = 12345 Print a End Sub
(34)在窗体上画两个名称分别为Text1、Text2的文本框,一个名称为Label1的标签,窗体外观如图a所示。要求当改变任一个文本框的内容,就会将该文本框的内容显示在标签中,如图b所示。实现上述功能的程序如下:
程序运行时出现错误。错误的原因是 A)Type定义语句没有放在标准模块中 C)赋值语句不对
B)变量声明语句有错
D)输出语句Print不对
B)弹出式菜单在菜单编辑器中建立
C)弹出式菜单的菜单名(主菜单项)的“可见”属性通常设置为False D)弹出式菜单通过窗体的PopupMenu方法显示
图a 图b
Private Sub Text1_Change() End Sub
Private Sub Text2_Change() Call ShowText(Text2) End Sub
Call ShowText(Text1)
Private Sub ShowText(T As TextBox)
Label1.Caption = \"文本框中的内容是:\" & T.Text End Sub
关于上述程序,以下叙述中错误的是
(35)设有打开文件的语句如下:
Open \"text.dat\" For Random As #1
要求把变量a中的数据保存到该文件中,应该使用的语句是
二、填空题(每空2分,共30 分)
请将每空的正确答案写在答题卡【l】至【15】序号的横线上,答在试卷上不得分。 A)Input #1, a C)Put #1,, a
B)Write #1, a
D)Get #1,, a
A)ShowText过程的参数类型可以是Control B)ShowText过程的参数类型可以是Variant
C)两个过程调用语句有错,应分别改为Call ShowText(Text1.Text)、Call ShowText(Text2.Text) D)ShowText过程中的T是控件变量
(1)在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为
【1】 n-1 。
(2)设循环队列的存储空间为Q(1:30),初始状态为front=rear=30,现经过一系列入队与退队运算后,front=16,
rear=15,则循环队列中有 【2】29 个元素。
(3)数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是 【3】 。 (4)在将E-R图转换到关系模式时,实体和联系都可以表示成 【4】 。
(5)常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于
【5】 。
(6)下面的事件过程执行时,可以把Text1文本框中的内容写到文件“file1.txt”中去。请填空。
Private Sub Command1_Click()
Open \"file1.txt\" For 【6】 As #1 Print 【7】 , Text1.Text Close #1
End Sub
(7)设窗体上有一个名称为Label1的标签,程序运行时,单击鼠标左键,再移动鼠标,鼠标的位置坐标会实时地显示在Label1标签中;单击鼠标右键则停止实时显示,并将标签中内容清除。下面的程序可实现这一功能,请填空。
Dim down As Boolean
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Select Case Button Case 1
down = True Case 2
down = False End Select End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If down = True 或down Then
Label1.Caption 或 Label1 = \"X=\" & X & \" Y=\" & Y
Else
Label1.Caption = \"\"
End If End Sub
(8)窗体上有List1、List2两个列表框,程序运行时,在两个列表框中分别选中1个项目,如图a所示,单击名称为Command1的“交换”按钮,则把选中的项目互换,互换后的位置不限,如图b所示。下面的程序可实现这一功能,请填空。
图a 交换前 图b 交换后
Private Sub Command1_Click()
If List1.Text = \"\" Or List2.Text = \"\" Then MsgBox \"请选择交换的物品!\" Else
List1.AddItem List2.Text
List2.RemoveItem 【11】 List2.ListIndex 【12】List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End If End Sub
表框1中被选中的列表项删除。
(9)设窗体上有Text1文本框和Command1命令按钮,并有以下程序:
Private Sub Command1_Click() temp$ = \"\"
For k = 1 To Len(Text1) ch$ = Mid(Text1, k, 1) If Not found(temp, ch) Then
temp = temp & 【13】ch End If Next k
Text1 = 【14】temp End Sub
Private Function found(str As String, ch As String) As Boolean For k = 1 To Len(str)
If ch = Mid(str, k, 1) Then
found = 【15】 True Exit Function End If Next k found = False End Function
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的结点多一个 D)度为2的结点数是度为1的结点数的
C)叶子结点数是度为2的结点数的两倍 两倍
(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是
A)学生成绩管理系统 C)UNIX操作系统
B)C语言编译程序 D)数据库管理系统
(5)某系统总体结构图如下图所示:
XY系统 功能1 功能2 功能3 功能2.1
该系统总体结构图的深度是 A)7
B)6
功能2.2 功能2.3 D)2
C)3
(6)程序调试的任务是 A)设计测试用例
B)验证程序的正确性 D)诊断和改正程序中的错误
C)发现程序中的错误
(7)下列关于数据库设计的叙述中,正确的是
A)在需求分析阶段建立数据字典
B)在概念设计阶段建立数据字典 D)在物理设计阶段建立数据字典
C)在逻辑设计阶段建立数据字典
(8)数据库系统的三级模式不包括 A)概念模式 B)内模式
(9)有三个关系R、S和T如下:
R A B C a b c 1 2 3 2 1 1 a b C)外模式 D)数据模式
S A B C 1 2 2 1 c T A B 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是布尔型变量 D)a和b都是变体型变量
C)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 2 3 2 4
C) 1 3
1
8
D) 1 3
1
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
(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)List
D)MultiSelect
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
(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
C)34
D)35
(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
程序运行后,单击窗体,输出结果是
(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
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
程序运行后,单击窗体,则在窗体上显示的是 A)15 B)16 C)20 A)ABCCDEDEFG C)ABCDEFG
B)AABBCDEFG D)AABBCCDDEEFFGG
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 C)Dim a(9) As Integer
B)Dim a 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)
(31)以下说法中正确的是
A)MouseUp事件是鼠标向上移动时触发的事件
B)MouseUp事件过程中的x,y参数用于修改鼠标位置 C)在MouseUp事件过程中可以判断用户是否使用了组合键 D)在MouseUp事件过程中不能判断鼠标的位置 End Sub
程序运行后,单击命令按钮,在标签中显示的内容是 A)50
B)20
C)14
D)7
(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
程序运行时,如果显示了“打开”对话框,在“文件类型”下拉列表框中的默认文件类
C) *.txt
D) 不确定
型是 A)应用程序(*.exe) B)*.doc
(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 (6)D (11)B (16)B (21)B (26)D
(2)C (7)A (12)C (17)D (22)C (27)A
(3)B (8)D (13)B (18)D (23)A (28)A
(4)A (9)B (14)D (19)C (24)A (29)C
(5)C (10)A (15)A (20)B (25)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
2011年3月全国计算机等级考试二级vb笔试试卷及参考答案
(考试时间 90分钟,满分100分)
一、选择题(每小题2分,共70分) (1)下列关于栈叙述正确的是
A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除 C)栈底元素永远不能被删除 D)以上三种说法都不对
(2)下列叙述中正确的是
A) 有一个以上根结点的数据结构不一定是非线性结构 B)只有一个根结点的数据结构不一定是线性结构 C)循环链表是非线性结构 D)双向链表是非线性结构
(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)
A)3 B)4 C)6 D)7
(4)在软件开发中,需求分析阶段产生的主要文档是 A) 软件集成测试计划 B)软件详细设计说明书 C)用户手册 D)软件需求规格说明书
(5)结构化程序所要求的基本结构不包括 A)顺序结构 B)GOTO跳转
C)选择(分支)结构 D)重复(循环)结构
(6)下面描述中错误的是
A)系统总体结构图支持软件系统的详细设计
B)软件设计是将软件需求转换为软件表示的过程 C)数据结构与数据库设计是软件设计的任务之一 D)PAD图是软件详细设计的表示工具
(7)负责数据库中查询操作的数据库语言是
A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言
(8)一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是
A)1:1联系 B)1:m联系 C)m:1联系 D)m:n联系
(9)有三个关系R、S和T如下:
R S T A B C C A B A 1 2 1 B C 2 3 1 1 c 3 则由关系R和S得到关系T的操作是
A)自然连接 B)交 C)除 D)并
(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是
A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}
(11)在Visual Basic集成环境中,可以列出工程中所有模块名称的窗口是 A)工程资源管理器窗口 B)窗体设计窗口 C)属性窗口 D)代码窗口
(12)假定编写了如下4个窗体事件的事件过程,则运行应用程序并显示窗体后,已经执行的事件过程是
A)Load B)Click C)LostFocus D)KeyPress
(13)为了使标签具有“透明”的显示效果,需要设置的属性是
A) Caption B) Alignment C) BackStyle D) AutoSize
(14)下面可以产生20-30(含20和30)的随机整数的表达式是 A) Int(Rnd*10+20) B) Int(Rnd*11+20) C) Int(Rnd*20+30) D) Int(Rnd*30+20)
(15)设窗体上有一个名称为HS1的水平滚动条,如果执行了语句: HS1.Value=(HS1.Max-HS1.Min)/2+HS1.Min 则 A)滚动块处于最左端 B)滚动块处于最右端 C)滚动块处于中间位置
D)滚动块可能处于任何位置,具体位置取决于Max、Min属性的值
(16)窗体上有一个名称为Cb1的组合框,程序运行后,为了输出选中的列表项,应使用的语句是
A)Print Cb1.Selected
B)Print Cb1.List(Cb1.ListIndex) C)Print Cb1.Selected.Text D)Print Cb1.List(ListIndex)
(17)为了在窗体上建立2组单选按钮,并且当程序运行时,每组都可以有一个单选按钮被选中,则以下做法中正确的是
A) 把这2组单选按钮设置为名称不同的2个控件数组 B) 使2组单选按钮的Index属性分别相同 C) 使2组单选按钮的名称分别相同
D) 使2组单选按钮分别画到2个不同的框架中
(18)如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是 A)它的Y1、Y2属性的值相等 B)它的X1、X2属性的值相等
C)它的X1、Y1属性的值分别与X2、Y2属性的值相等 D)它的X1、X2属性的值分别与Y1、Y2属性的值相等
(19)设a=2,b=3,c=4,d=5,则下面语句的输出是 Print 3>2*b Or a=c And b<>c Or c>d A) False B) 1 C) True D) -1
(20)窗体Form1上有一个名称为Command1的命令按钮,以下对应窗体单击事件的事件过程是
A) Private Sub Form1_Click() C) Private Sub Command1_Click() … … End Sub End Sub B) Private Sub Form_Click() D) Private Sub Command_Click() … … End Sub End Sub
(21)默认情况下,下面声明的数组的元素个数是 Dim a(5,-2 to 2)
A)20 B)24 C)25 D)30
(22)设有如下程序段 Dim a(10) „„
For Each x In a Print x; Next x
在上面的程序段中,变量x必须是
A) 整型变量 B)变体型变量 C)动态数组 D)静态数组
(23) 设有以下函数过程
Private Function Fun(a() As Integer, b As String)As Integer „
End Function
若已有变量声明:
Dim x(5)As Integer,n As Integer,ch As String 则下面正确的过程调用语句是
A. x(0)=Fun(x,\"ch\") B. n=Fun(n,ch) C. Call Fun x,\"ch\" D. n=Fun(x(5),ch)
(24)假定用下面的语句打开文件: Open“Filel.txt”ForInput AS #1 则不能正确读文件的语句是
A) Input #1 ,ch$ B) Line Input #1,ch$ C) ch$=Input$(5,#1) D) Read #1 ,ch$
(25)下面程序执行结果是
Private Sub Command 1_Click() a=10
For k=1 To 5 Step-1 a=a-k Next k Print a ;k End Sub
A) -5 6 B) -5 -5 C)10 0 D) 10 1
(26)设窗体上有一个名为Text1 的文体框和一个名为Command1 的命令按钮,并有以下事件过程:
Private Sub Command 1_Click() X!=Val(Text1.Text) Select Case x Case Is <-10,Is>=20 Print “输入错误” Case Is<0 Print 20-x Case Is <10 Print 20 Case Is<=20 Print x +10 End Select End Sub
程序运行时,如果在文本框中输入-5,则单击命令按钮后的输出结果是
A) 5 B) 20 C) 25 D) 输入错误
(27)设有如下程序
Private Sub Command 1_Click() X=10:y=0 For i=1 To 5 Do
x=x-2 y=y+2
Loop Unti1 y>5 Or x<-1 Next End Sub
运行程序,其中Do循环执行的次数是
A) 15 B) 10 C) 7 D) 3
(28)阅读程序
Private Sub Command 1_ Click Dim arr
Dim i As Integer
Arr=Array (0,1,2,3,4,5,6,7,8,9,10) For i=0 To 2
Printarr(7 –i); Next End Sub
程序运行后,窗体上显示的是:
A) 8 7 6 B) 7 6 5 C) 6 5 4 D) 5 4 3
(29)在窗体上画一个名为Command 1的命令按钮,然后编写以下程序: Private Sub Command 1_Click() Dim a(10) As Integer For k=10 TO 1 Step -1 a(k)=20-2*k Next k K=k+7
Print a(k-a(k)) End Sub
运行程序,单击命令按钮,输出结果是
A) 18 B) 12 C)8 D)6
(30)窗体上有一个名为Command 1 的命令按钮,并有如下程序: Private Sub Command 1_Click() Dim a(10),x%
For k=1 To 10 a(k)=Int(Rnd*90+10) x=x+a(k) Mod 2 Next k
Print x End Sub
程序运行后,单击命令按钮,输出结果是:
A) 10个数中奇数的个数 B) 10个数中偶数的个数 C) 10个数中奇数的累加和 D) 10个数中偶数的累加和
(31) 窗体上有一个名为 Command 1的命令按钮和一个名为Timer 1 的计时器,并有下面的事件过程:
Private Sub Command 1_Click() Timer 1.Enabled=True End Sub
Private Sub Form _Load() Timer 1.Interval=10 Timer 1.Enabled=False End Sub
Private Sub Timer 1_Timer()
Command 1.Left=Command 1.Left+10 End Sub
程序运行时,单击命令按钮,则产生的结果是 A) 命令按钮每10秒向左移动一次 B) 命令按钮每10秒向右移动一次 C) 命令按钮每10毫秒向左移动一次 D) 命令按钮每10毫秒向右移动一次
(32)设窗体上有一个名为List1 的列表框,并编写下面的事件过程: Private Sub List 1_Click() Dim ch AS String
ch=List 1.List(List1.ListIndex) List 1.RemoveItem List1.ListIndex List 1.AddItem ch End Sub
程序运行时,单击一个列表项,则产生的结果是
A) 该列表项被移到列表的最前面 B) 该列表项被删除
C) 该列表项被移到列表的最后面 D) 该列表项被删除后又在原位置插入
(33)窗体上有一个名为Command1的命令按钮,并有如下程序: Private Sub Command1_Click() Dim a As Integer, b As Integer a = 8 b = 12
Print Fun(a, b); a; b End Sub
Private Function Fun(ByVal a As Integer, b As Integer) As Integer a = a Mod 5 b = b \\ 5 Fun = a
End Function
程序运行时,单击命令按钮,则输出结果是 A)3 3 2 C)8 8 12 B)3 8 2 D)3 8 12
(34)为了从当前文件夹中读入文件File1.txt,某人编写了下面的程序: Private Sub Command1_Click() Open \"File1.txt\" For Output As #20 Do While Not EOF(20) Line Input #20, ch$ Print ch Loop End Sub
程序调试时,发现有错误,下面的修改方案中正确的是 A)在Open语句中的文件名前添加路径 B)把程序中各处的“20”改为“1” C)把Print ch 语句改为Print #20,ch D)把Open语句中的Output改为Input
(35)以下程序运行后的窗体如图所示,其中组合框的名称是Combo1,已有列表项如图所示;命令按钮的名称是Command1。 Private Sub Command1_Click() If Not check(Combo1.Text) Then MsgBox (\"输入错误\") Exit Sub End If
For k = 0 To Combo1.ListCount - 1
If Combo1.Text = Combo1.List(k) Then MsgBox (\"添加项目失败\") Exit Sub End If Next k
Combo1.AddItem Combo1.Text MsgBox (\"添加项目成功\") End Sub
Private Function Check(ch As String) As Boolean n = Len(ch) For k = 1 To n
c$ = UCase(Mid(ch, k, 1)) If c < \"A\" Or c > \"Z\" Then Check = False Exit Function End If Next k
Check = True End Function
程序运行时,如果在组合框的编辑区中输入“Java”,则单击命令按钮后产生的结果是
A) 显示“输入错误” B) 显示“添加项目失败” C) 显示“添加项目成功” D) 没有任何显示
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡1:至15:序号的横线上,答在试卷上不得分。 (1)有序线性表能进行二分查找的前提是该线性表必须是[1]顺序存储的。 解析:二分查找只适用于顺序存储的有序线性表。
(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为[2]DEBFCA。
(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为[3]单元 解析:单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验的测试。单元测试的目的是发现各模块内部可能存在的各种错误。
(4)实体完整性约束要求关系数据库中元组的[4]主键属性值不能为空。
解析:实体完整性约束要求关系的主键中属性值不能为空值,因为主键是惟一决定元组的,如为空值则其惟一性就成为不可能的了。
(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称[5] D是关系A的外码。
解析:如果表A中的某属性集是某表B的键,则称该属性集为A的外键或外码。
(6)在窗体上有1个名称为Command1的命令按钮,并有如下事件过程和函数过程:
Private Sub Command1_Click() Dim p As Integer
p = m(1) + m(2) + m(3) Print p End Sub
Private Function m(n As Integer) As Integer Static s As Integer For k = 1 To n s = s + 1 Next m = s
End Function
运行程序,单击命令按钮Command1后的输出结果为[6]10
(7)在窗体上画1个名称为Command1的命令按钮,然后编写如下程序: Private Sub Command1_Click() Dim m As Integer, x As Integer Dim flag As Boolean flag = False
n = Val(Intputbox(\"请输入任意1个正整数\")) Do While Not flag a = 2
flag = [7] True
Do While flag And a <= Int(Sqr(n)) If n / a = n \\ a Then flag = False Else
[8] a=a+1 End If Loop
If Not flag Then n = n + 1 Loop
Print [9] n End Sub
上述程序的功能是,当在键盘输入任意的1个正整数时,将输出不小于该整数的最小素数。请填空完善程序。
(8)以下程序的功能是,先将随机产生的10个不同的整数放入数组a中,再将这10个数按升序方式输出。请填空。 Private Sub Form_Click()
Dim a(10) As Integer, i As Integer Randomize i = 0 Do
num = Int(Rnd * 90) + 10
For j = 1 To I ’检查新产生的随机数是否与以前的相同,相同的无效 If num = a(j) Then Exit For End If Next j
If j > i Then i = i + 1
a(i) = [10] num End If
Loop While i < 10 For i = 1 To 9
For j = [11] i+1 To 10
if a(i)>a(j) then temp =a(i),a(i)=a(j);[12] a(j)=temp Next j Next i
For i = 1 To 10 Print a(i) Next i
End Sub
(9)窗体上已有名称分别为Drive1、Dir1、File1的驱动器列表框、目录列表框和文件列表框,且有1个名称为Text1的文本框。以下程序的功能是:将指定位置中扩展名为“.txt”的文件显示在File1中,如果双击File1中某个文件,则在Text1中显示该文件的内容。请填空。 Private Sub Form_Load() File1.Pattern = [13] *.txt End Sub
Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub
Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub
Private Sub File1_DblClick() Dim s As String * 1
If Right(File1.Path, 1) = \"\\\" Then
f_name = File1.Path + File1.FileName Else
f_name = File1.Path + \"\\\" + File1.FileName End If
Open f_name [14] For Input As #1 Text1.Text = \"\"
Do While [15]NOT EOF(1) s = Input(1, #1)
Text1.Text = Text1.Text + s Loop Close #1 End Sub
2011年3月全国计算机等级考试二级VB笔试试卷答案 选择题:
1-5 AADDB 6-10 BCDCB
11-15 AACBC 16-20 BDBAB 21-25 DBACD 26-30 CCBAA
31-35 DCBDB
填空题
1、顺序 2、DEBFCA 3、单元 4、主键 5、D 6、10 7、Ture 8、a=a+1 9、n 10、num 11、i 12、a(j)=temp 13、”*.txt|*.txt” 14、for input 15、not eof(1)
详细解析:
1.答案:A
解析:栈的特点是“先进后出,后进先出”的线性结构,进栈又称为入栈最先进入栈的数据元素会被压入栈底,最后进入栈的元素所在位置称为栈顶,出栈又称为退栈即将元素从栈中删除,将元素退栈是先将栈顶的元素退栈,对于栈的运行原理可参考快动网公共基础知识视频教程。所以上边选项正确的是A。
2. 答案:B
解析: A错误,符合线性结构的特点是:(1)有且只有一个根结点(2)每一个结点最多只有一个前件,也最多只有一个后件,根据题意不一定是非线性结构即指的是线性结构,那么根据线性结构的特点只有一个根结点,所以选项A叙述错误。
B正确,比如二叉树是一个非线性结构,二叉树就是一个根结点,所以该选数正确。
C和D叙述错误,循环链表和双向链表都是线性结构。
3. 答案: D
解析:根据二叉树的性质,叶子结点即度为0的结点个数总比度为2的结点个数多1,根据题目内容可知度为2的结点个数为0,因为叶子结点只有1个,由于二叉树的结点类型有三种:度为0,度为1,度为2,根据题目内容可知二叉树共有7个结点所以度为1的结点个数是6,度为1表示结点只有一个分支,这个分支可以是左子树或右子树.
4. 答案: D
解析:在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。
A错误,集成测试计划是在概要设计阶段编写的文档。
B错误,详细设计阶段产生的文档是软件详细设计说明书。 C错误,用户手册是在软件实现阶段要完成文档。
D正确。 需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
5. 答案:B
解析:结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。
以上选项B所说的GOTO结构是错误的,goto只是一种编程指令不是一种程序结构。
6.答案:A
解析:系统总体结构图描述了软件系统的结构这是概要设计阶段的任务,详细设
计阶段正是在概要设计阶段之后要进行工作。 软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。
C正确,数据结构和数据库设计是概要设计阶段的任务。
D正确,详细设计的表示具包括:程序流程图,N-S,PAD,HIPO等。
7.答案:C 解析:用户通过数据定义语言可以方便地对数据库中的相关内容进行定义。例如,对数据库、表、索引进行定义。用户通过数据操纵语言可以实现对数据库的基本操作。例如,对表中数据的查询、插入、删除和修改。数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。 所以该题目选择C。
8. 答案:D
解析:一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程的联系是多对多的联系。
9. 答案:C 解析:
A错误,自然连接是关系的横向运算。连接运算将两个关系横向地拼接成一个更宽的关系所以T关系不是R和S的自然连接后的结果。
B错误,关系R与关系S经交运算后所得到的关系是既在R中又在S中的元组组成,题目中的T关系的元组在S中不存在。 C正确。
D错误。并是两个关系的和集,从上图可以看出T不是R和S的和
10.答案:B
解析:UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A)和选项C),选项D)是整数集合,所以也排除。
11.答案:A
12.答案:A
解析:Load事件用来在启动程序时对属性和变量进行初始化,在装入窗体后,如果运行程序,将自动触发该事件。
13.答案:C
解析:Caption属性用来在标签中显示文本;Alignment属性用来确定标签中标签的放置方式
;AutoSize属性设置标签是否根据标题的长度自动调整大小;BackStyle属性可以取两个值,当值为1时,标签将覆盖背景,当值为0时,则标签具有“透明”的显示效果。
14.答案:B
解析:Rnd函数用来生成范围在[0,1)之间的随机数。
15.答案:C
解析:本题中语句的设置效果是将滚动条的Value值设为当前滚动条刻度个数的1/2再加上Min值,此值正好为滚动条的中间位置,而Value值用来设置滚动块的位置,故答案为C。
16.答案:B
17.答案:D
解析:当窗体上有多个单选按钮时,如果选择其中的一个,其他单选按钮将自动关闭。当需要在同一个窗体上建立几组相互独立的单选按钮时,则必须通过框架为单选按钮分组,使得在一个框架内的单选按钮为一组,每个框架内的单选按钮操作不影响其他组的按钮。
18.答案:B
解析:平行线的Y1、Y2属性的值相等;垂直线的X1、X2属性的值相等。
19.答案:A
解析:分别计算表达式3>2*b;a=c And b<>c;c>d的值,其值均为False,则输出为False。 20.答案:B
21.答案:D
解析:VB中数组下标默认从0开始,数组定义的值为数组可取的最大值,因此第一维可取值为6个,第二维可取值为:-2,-1,0,1,2,为5个,故数组元素个数为5*6=30个。
22.答案:B
解析:在For Each„Next语句中,x为一个变体变量,它是为循环提供的,并在For Each„Next结构中重复使用,它实际上代表的是数组中的每个元素。
23.答案:A
24.答案:D 解析:本题打开的是顺序文件,读取方式有:Input #语句,Line Input #语句,Input函数,故答案选D。
25.解析:本题For循环的步长为-1,但题中给出的初始值比终止值小,因此循环未执行,故a值未变,仍为10。k值需被赋值为1后与5作比较才知道大小,故k值为1。
26.答案:C
解析:本题考查的知识点是Select Case语句,其功能是根据“测试表达式”的值
(本题中测试表达式为x),从多个语句块中选择符合条件的一个语句块执行。
27.答案:C
解析:本题需要注意区分Do Until„Loop语句和Do„Loop Until语句。后者为后判断条件的循环语句,无论初始条件是否满足都至少执行一次循环,当条件满足时跳出循环。
28.答案:B
解析:本题中,arr被Array函数定义为数组并被赋初值;For循环中i的值为0到2,那么,7-i的值为7,6,5;Print arr(7-i)也就是输出arr(7),arr(6),arr(5)的值,即输出7,6,5。
29.答案:A
30.答案:A
解析:Mod函数为求余函数,与2取余,值为0表示为偶数,值为1表示为奇数。因加上0对x的值并无影响,加上1表示有一个奇数,因此答案为A。
31.答案:D
解析:Interval属性的单位为毫秒。
32.答案:C 解析:RemoveItem方法作用是删除项;AddItem方法作用是添加项,若省略Index值,则默认为插入到列表的最后面。
33.答案:B
34.答案:D 解析:本题要求从当前文件夹中读入文件,因此在Open语句中应使用输入(Input)打开文件。
35.答案:B
因篇幅问题不能全部显示,请点此查看更多更全内容