购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2016年3月全国计算机等级考试《二级Visual Basic语言程序设计》真题及详解

(考试时间120分钟满分100分)

一、选择题(每小题1分,共40分)

1.窗体上的3个命令按钮构成名称为Command1的控件数组,如图1所示。

图1

程序如下:

Private Sub Command1_Click(Index As Integer)
If Index= 1 Then
Print"计算机等级考试"
End If
If Index=2 Then
Print Command1(2).Caption
End If
End Sub

运行程序,单击“命令按钮2”,则如下叙述中正确的是( )。

A.Print Command1(2).Caption语句有错

B.在窗体上显示“命令按钮2”

C.在窗体上显示“命令按钮3”

D.在窗体上显示“计算机等级考试”

2.在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码:

Private X As Integer
Private Sub Command1_Click()
X=5:Y=3
Call proc(X,Y)
Label1.Caption=X
Label2.Caption=Y
End Sub
Private Sub proc(a As Integer, ByVal b As Integer)
X=a*a
Y=b+b
End Sub

程序运行后,单击命令按钮,则两个标签中显示的内容分别是( )。

A.25和3

B.5和3

C.25和6

D.5和6

3.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。

A.循环队列

B.栈

C.队列

D.二叉树

4.设有如下通用过程:

Public Function Fun(xStr As String)As String
Dim tStr As String,strL As Integer
tStr=""
strL=Len(xStr)
i=1
Do While i<=strL/2
tStr=tStr & Mid(xStr,i,1)& Mid(xStr,strL-i+1,1)
i=i+1
Loop
Fun=tStr
End Function

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

Private Sub Command1_Click()
Dim S1 As String
S1="abcdef"
Print UCase(Fun(S1))
End Sub

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

A.ABCDEF

B.abcdef

C.AFBECD

D.DEFABC

5.软件设计中模块划分应遵循的准则是( )。

A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

6.窗体上有一个名称为Command1的命令按钮,其事件过程如下:

Private Sub Command1_Click()
x="VisualBasicProgramming"
a=Right(x,11)
b=Mid(x,7,5)
c=MsgBox(a,,b)
End Sub

运行程序后单击命令按钮。以下叙述中错误的是( )。

A.信息框的标题是Basic

B.信息框中的提示信息是Programming

C.c的值是函数的返回值

D.MsgBox的使用格式有错

7.表达式2*3^2+4*2/2+3^2的值是( )。

A.30

B.31

C.49

D.48

8.下面程序的执行结果是( )。

Private Sub Command1_Click()
a=0
k=1
Do While k<4
x=k^k^a
k=k+1
Print x;
Loop
End Sub

A.31427

B.111

C.149

D.000

9.用来设置文字字体是否斜体的属性是( )。

A.FontUnderdine

B.FontBold

C.FontSlope

D.FontItalic

10.现有如下程序:

Private Sub Command1_Click()
s=0
For i=1 To 5
s=s+f(5+i)
Next
Print s
End Sub
Public Function f(x As Integer)
If x>=10 Then
t=x+1
Else
t=x+2
End If
f=t
End Function

运行程序,则窗体上显示的是( )。

A.38

B.49

C.61

D.70

11.窗体上有一个名称为CD1的通用对话框控件和由4个命令按钮组成的控件数组Command1,其下标从左到右分别为0、1、2、3。窗体外观如图2所示。

图2

命令按钮的事件过程如下:

Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0
CD1.Action=1
Case 1
CD1.ShowSave
Case 2
CD1.Action=5
Case 3
End
End Select
End Sub

对上述程序,下列叙述中错误的是( )。

A.单击“打开”按钮,显示打开文件的对话框

B.单击“保存”按钮,显示保存文件的对话框

C.单击“打印”按钮,能够设置打印选项,并执行打印操作

D.单击“退出”按钮,结束程序的运行

12.设窗体上有名称为Option1的单选按钮,且程序中有语句:If Option1.Value=True Then

下面语句中与该语句不等价的是( )。

A.If Option1.Value Then

B.If Option1=True Then

C.If Value=True Then

D.If Option1 Then

13.窗体上有一个名称为Picture1的图片框控件。一个名称为Label1的标签控件,如图3所示。

图3

现有如下程序:

Public Sub display(x As Control)
If TypeOf x Is Label Then
x.Caption="计算机等级考试"
Else
x.Picture=LoadPicture("pic.jpg")
End If
End Sub
Private Sub Label1_Click()
Call display(Label1)
End Sub
Private Sub Picture1_Click()
Call display(Picture1)
End Sub

对以上程序,下列叙述中错误的是( )。

A.程序运行时会出错

B.单击图片框,在图片框中显示一幅图片

C.过程中的x是控件变量

D.单击标签,在标签中显示一串文字

14.在窗体上画一个文本框,其名称为Text1,为了在程序运行后隐藏该文本框,应使用的语句为( )。

A.Text1.Clear

B.Text1.Visible=False

C.Text1.Hide

D.Text1.Enabled=False

15.设有如图4所示窗体和以下程序:

Private Sub Command1_Click()
Text1.Text="Visual Basic"
End Sub
Private Sub Text1_LostFocus()
If Text1.Text<>"BASIC" Then
Text1.Text=""
Text1.SetFocus
End If
End Sub

程序运行时,在Text1文本框中输入“Basic”(如图4所示),然后单击Command1按钮,则产生的结果是( )。

图4

A.文本框中无内容,焦点在文本框中

B.文本框中为“Basic”,焦点在文本框中

C.文本框中为“Basic”,焦点在按钮上

D.文本框中为“Visua1 Basic”,焦点在按钮上

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

Private Sub Command1_Click()
Dim M(10)As Integer
For k=1 To 10
M(k)=12-k
Next k
x=8
Print M(2+M(x))
End Sub

运行程序,单击命令按钮,在窗体上显示的是( )。

A.6

B.5

C.7

D.8

17.设a=4,b=5,c=6,执行语句Print a<b And b<c后,窗体上显示的是( )。

A.True

B.False

C.出错信息

D.0

18.窗体上有一个名称为Timer1的计时器控件,一个名称为Shape1的形状控件,其Shape属性值为3(Circle)。编写程序如下:

Private Sub Form_Load()
Shape1.Top=0
Timer1.Interval=100
End Sub
Private Sub Timer1_Timer()
Static x As Integer
Shape1.Top=Shape1.Top+100
x=x+1
If x Mod 10=0 Then
Shape1.Top=0
End If
End Sub

以下关于上述程序的叙述中,错误的是( )。

A.每执行一次Timer1_Timer事件过程,x的值都在原有基础上增加1

B.Shape1每移动10次回到起点,重新开始

C.窗体上的Shape1由下而上移动

D.Shape1每次移动100

19.在Visual Basic中,表达式3*2\5 Mod 3的值是( )。

A.1

B.0

C.3

D.出现错误提示

20.为了对多个控件执行操作,必须选中这些控件。下列不能选中多个控件的操作是( )。

A.按住Alt键,不要松开,然后单击每个要选中的控件

B.按住Shift键,不要松开,然后单击每个要选中的控件

C.按住Ctrl键,不要松开,然后单击每个要选中的控件

D.拖动鼠标画出一个虚线矩形,使所选中的控件位于这个矩形内

21.设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为100。下面叙述中正确的是( )。

A.程序运行时,若使滚动块向左移动,滚动条的Value属性值就增加

B.程序运行时,若使滚动块向左移动,滚动条的Value属性值就减少

C.由于滚动条的Max属性值小于Min属性值,程序会出错

D.由于滚动条的Max属性值小于Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动

22.若在窗体模块的声明部分声明了如下自定义类型和数组:

Private Type rec
Code As Integer
Caption As String
End Type
Dim arr(5)As rec

则下面的输出语句中正确的是( )。

A.Print arr.Code(2),arr.Caption(2)

B.Print arr.Code,arr.Caption

C.Print arr(2).Code,arr(2).Caption

D.Print Code(2),Caption(2)

23.设窗体上有一个标签Label1和一个计时器Timer1,Timer1的Interval属性被设置为1000,Enabled属性被设置为True。要求程序运行时每秒在标签中显示一次系统当前时间。以下可以实现上述要求的事件过程是( )。

A.

Private Sub Timer1_Timer()
Label1.Caption=True
End Sub

B.

Private Sub Timer1_Timer()
Label1.Caption=Time $
End Sub

C.

Private Sub Timer1_Timer()
Label1.Interval=1
End Sub

D.

Private Sub Timer1_Timer()
For k=1 To Timer1.Interval
Label1.Caption=Timer
Next k
End Sub

24.执行下列语句:

strInput=InputBox("请输入字符串","字符串对话框","字符串")

将显示输入对话框。此时如果直接单击“确定”按钮,则变量strInput的内容是( )。

A."请输入字符串"

B."字符串对话框"

C."字符串"

D.空字符串

25.数据库应用系统中的核心问题是( )。

A.数据库设计

B.数据库系统设计

C.数据库维护

D.数据库管理员培训

26.把数学表达式 表示为正确的VB表达式应该是( )。

A.(5x+3)/(2y-6)

B.x*5+3/2*y-6

C.(5*x+3)÷(2*y-6)

D.(x*5+3)/(y*2-6)

27.数据流图中带有箭头的线段表示的是( )。

A.控制流

B.事件驱动

C.模块调用

D.数据流

28.为把圆周率的近似值3.14159存放在变量pi中,应该把变量pi定义为( )。

A.Dim pi As Integer

B.Dim pi(7)As Integer

C.Dim pi As Single

D.Dim pi As Long

29.下面是求最大公约数的函数的首部:

Function gcd(ByVal x As Integer, ByVal y As Integer)As Integer

若要输出8、12、16这3个数的最大公约数,下面正确的语句是( )。

A.Print gcd(8,12),gcd(12,16),gcd(16,8)

B.Print gcd(8,12,16)

C.Print gcd(8),gcd(12),gcd(16)

D.Print gcd(8,gcd(12,16))

30.在软件开发中,需求分析阶段可以使用的工具是( )。

A.N-S图

B.DFD图

C.PAD图

D.程序流程图

31.在E-R图中,用来表示实体联系的图形是( )。

A.椭圆形

B.矩形

C.菱形

D.三角形

32.下列数据结构中,属于非线性结构的是( )。

A.循环队列

B.带链队列

C.二叉树

D.带链栈

33.有三个关系R、S和T如下:

其中关系T由关系R和S通过某种操作得到,该操作为( )。

A.选择

B.投影

C.交

D.并

34.在窗体上画一个文本框(名称为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

35.以下变量名中合法的是( )。

A.x2-1

B.print

C.str_n

D.2x

36.在软件开发中,需求分析阶段产生的主要文档是( )。

A.可行性分析报告

B.软件需求规格说明书

C.概要设计说明书

D.集成测试计划

37.设窗体上有一个列表框控件List1,含有若干列表项。以下能表示当前被选中的列表项内容的是( )。

A.List1.List

B.List1.ListIndex

C.List1.Text

D.List1.Index

38.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。

A.提高耦合性降低内聚性有利于提高模块的独立性

B.降低耦合性提高内聚性有利于提高模块的独立性

C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D.内聚性是指模块间互相连接的紧密程度

39.为计算n!(0<n<=12)编写如下函数过程:

Private Function fun(n As Integer)As Long
Dim p As Long
p=1
For k=n-1 To 2 Step-1
p=p*k
Next k
fun=p
End Function

在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3种是正确的,错误的方案是( )。

A.把p=1改为p=n

B.把For k=n-1 T0 2 Step-1改为For k=1 To n-1

C.把For k=n-1 T0 2 Step-1改为For k=1 To n

D.把For k=n-1 T0 2 Step-1改为For k=2 To n

40.以下叙述中错误的是( )。

A.标准模块文件的扩展名是.bas

B.标准模块文件是纯代码文件

C.在标准模块中声明的全局变量可以在整个工程中使用

D.在标准模块中不能定义过程

二、基本操作题(共18分)

(1)请在名称为Form1的窗体上添加一个名称为H1的水平滚动条,并在属性窗口中设置它的属性值,使其满足下列要求:它的最小刻度值为1,最大刻度值为100,在程序运行时,用鼠标单击滚动条上滚动框以外的区域(不包括两边按钮),滚动框移动10个刻度。再在滚动条下面画两个名称分别为L1和L2的标签,并分别显示1和100。运行时的窗体如图5所示。

图5

注意:存盘时必须存放在考生文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。

答: 步骤1:打开Visual Basic开发环境,按照题目的要求新建窗体并添加一个水平滚动条控件,如图10所示。

图10(a)

图10(b)

图10

步骤2:在属性窗口中,按照题目的要求设置水平滚动条的相关属性,如图11所示。

图11(a)

图11(b)

图11

步骤3:按照题目的要求,在窗体上添加两个标签控件,如图12所示。

图12

步骤4:按照题目的要求设置两个标签的相关属性,如图13所示。

图13(a)

图13(b) 图13

程序中用到的控件及属性如表2所示:

表2

步骤5:按下键盘上的F5键运行程序,程序运行后的窗体界面如图14所示。

图14

步骤6:按题目要求保存工程和窗体,如图15所示。

图15(a)

图15(b)

图15(c) 图15

(2)在名称为Form1的窗体上添加两个名称分别为Text1和Text2的文本框,初始内容均为空;再建立一个下拉菜单,菜单标题为“操作”,名称为M1,此菜单下含有两个菜单项,名称分别为Copy和Clear,标题分别为“复制”、“清除”,请编写适当的事件过程,使得在程序运行时,单击“复制”选项菜单,则把Text1中的内容复制到Text2中;单击“清除”选项菜单,则清除Text2中的内容(即在Text2中填入空字符串)。运行时的窗体如图6所示。要求在程序中不得使用任何变量,每个事件过程中只能写一条语句。

图6

注意:存盘时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。

答: 步骤1:新建窗体,按表3建立菜单项并设置其属性,如图16所示。

表3

图16(a)

图16(b)

图16(c) 图16

步骤2:同步骤1,输入第3项的标题和名称,单击“确定”按钮即可。

步骤3:添加文本框控件,按表4设置文本框的属性。

表4

步骤4:打开代码编写窗口,如图17所示,编写程序代码。

图17

【参考答案】

Private Sub Clear_Click()
Text2.Text=""
End Sub
Private Sub Copy_Click()
Text2.Text=Text1.Text
End Sub

步骤5:调试并运行程序,关闭程序后按题目要求存盘。

三、简单应用题(共24分)

(1)在考生文件夹下有一个工程文件sjt3.vbp,窗体上已经有一个标签Label1,请添加一个单选按钮数组,名称为Op1,含3个单选按钮,它们的Index属性分别为0、1、2,标题依次为“飞机”、“火车”、“汽车”。再添加一个名称为Text1的文本框。窗体文件中已经给出了Op1的Click事件过程,但不完整,要求去掉程序中的注释符,把程序中的问号改为正确的内容,使得在程序运行时单击“飞机”或“火车”单选按钮时,在Text1中显示“我坐飞机去”或“我坐火车去”;单击“汽车”单选按钮时,在Text1中显示“我开汽车去”,如图7所示。

图7

注意:不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。

答: 步骤1:打开本题工程文件,按照题目要求建立单选按钮数组,如图18所示。

图18(a)

图18(b)

图18(c)

图18(d)

图18(e) 图18

步骤2:按照题目要求建立其他控件并设置其属性,见表5。

表5

步骤3:打开代码编辑窗口,去掉程序中的注释符,将?改为正确的内容。

程序提供代码如下:

Private Sub Op1_Click(Index As Integer)
Dim a As String, b As String, c As String
a="我坐"
b="我开"
Select Case ?
‘通过Index 值决定响应哪一个控件数组
Case 0
Text1.Text=a+Me.Op1(0).Caption+"去"
Case 1
Text1.Text=?+Me.Op1(1).Caption+"去"
‘当Index 值为1 时,选择"我坐"
Case 2
Text1.Text=b+Me.Op1(2).Caption+"去"
End Select
End Sub

【参考答案】

第1个?号处填入:Index

第2个?号处填入:a

步骤4:调试并运行程序,关闭程序后按题目要求存盘。

(2)在考生文件夹下有一个工程文件sjt4.vbp,Form1窗体中有一个文本框,名称为Text1;请先在窗体上添加两个框架控件,名称分别为F1、F2,标题分别为“性别”、“身份”;然后在F1中添加两个单选按钮控件Op1、Op2,标题分别为“男”、“女”;其次在F2中添加两个单选按钮控件Op3、Op4,标题分别为“学生”、“教师”;最后再添加一个命令按钮,名称为C1,标题为“确定”,如图8所示。请编写适当的事件过程,使得运行时,在F1、F2中各选一个单选按钮,然后单击“确定”接钮,就可以按照表1把结果显示在文本框中。

图8

表1

最后把修改后的文件以原来的文件名存盘。

注意:考生不得修改窗体文件中已经存在的程序和Text1的属性,在结束程序运行之前,必须进行能够产生上表中一个结果的操作。必须用窗体右上角的关闭按钮结束程序,否则无成绩。

答: 步骤1:打开本题工程文件,按照题目要求建立框架控件并设置其属性,如图19所示。

图19(a)

图19(b) 图19

步骤2:按照步骤1建立其他控件并设置相关属性,程序中用到的控件及属性如表6和表7所示。

表6

表7

步骤3:打开代码编辑窗口,在指定位置编写如下代码:

Private Sub C1_Click()
Text1.Text="我是"′首先确定不论选什么情况,Text1 的内容一定以"我是"开头
If Op1.Value Then
Text1.Text=Text1.Text & Op1.Caption
Else
Text1.Text=Text1.Text & Op2.Caption
End If ′通过单选按钮的Value 值(选择为true,否则为false)确认性别,最后把其Caption 值接至Text1 后
If Op3.Value Then
Text1.Text=Text1.Text & Op3.Caption
Else
Text1.Text=Text1.Text & Op4.Caption
End If ′确认身份,思路同上
End Sub

步骤4:调试并运行程序,关闭程序后按题目要求存盘。

四、综合应用题(共18分)

以下数列:1,1,2,3,5,8,13,21···的规律是从第3个数开始,每个数都是其前面两个数之和。

在考生文件夹下有一个工程文件sjt5.vbp。窗体中已经给出了所有控件,如图9所示。请编写适当的事件过程完成如下功能:选中一个单选按钮后,单击“计算”按钮,则计算出上述数列第n项的值,并在文本框中显示,n是选中的单选按钮后面的数值(提示:因计算结果较大,应使用长整型变量)。

图9

注意:不能修改已经给出的程序和已有的控件的属性;在结束程序运行之前,必须选中一个单选按钮,并单击“计算”按钮以获得一个结果;必须使用窗体右上角的关闭按钮结束程序,否则无成绩。最后把修改后的文件按原文件名存盘。

答: 步骤1:打开本题工程文件。

步骤2:打开代码编辑窗口,在指定位置编写如下代码:

Private Sub Command1_Click()
Dim a() As Long
Dim i As Integer
Dim n As Integer
‘Op1.Count 是单选按钮数目,这里用的是控件数组
For i=0 To Op1.Count-1
‘判断哪一项被选择,把它后面的数值赋给n,确定n 值
If Op1(i).Value=True Then
n=Val(Op1(i).Caption)
Exit For
End If
Next
ReDim a(n)’重新申请空间,这里是动态申请
a(1)=1
a(2)=1 ‘数到第一项,第二项值确定
For i=3 To n
a(i)=a(i-1)+a(i-2)′后一项值是前两项值之和
Next
Text1.Text=a(n)
End Sub

步骤3:调试并运行程序,关闭程序后按题目要求存盘。 V/GjP6LVYMh45vDydrwK8CtNVpzYF/qumMA51F4Qda6CfVMXEGDgSHbox5rQ1RTI

点击中间区域
呼出菜单
上一章
目录
下一章
×