2011年3月全国计算机等级考试二级VB笔试试卷及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年3月全国计算机等级考试二级vb笔试试卷
(考试时间 90分钟,满分100分)
一、选择题(每小题2分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列关于栈叙述正确的是
A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除
C)栈底元素永远不能被删除 D)以上三种说法都不对
答案:A
解析:
栈的特点是“先进后出,后进先出”的线性结构,进栈又称为入栈最先进入栈的数据元素会被压入栈底,最后进入栈的元素所在位置称为栈顶,出栈又称为退栈即将元素从栈中删除,将元素退栈是先将栈顶的元素退栈,对于栈的运行原理可参考快动网公共基础知识视频教程。
所以上边选项正确的是A。
(2)下列叙述中正确的是
A)有一个以上根结点的数据结构不一定是非线性结构
B)只有一个根结点的数据结构不一定是线性结构
C)循环链表是非线性结构
D)双向链表是非线性结构
B)【解析】在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。
解析:
A错误,符合线性结构的特点是:(1)有且只有一个根结点(2)每一个结点最多只有一个前件,也最多只有一个后件,根据题意不一定是非线性结构即指的是线性结构,那么根据线性结构的特点只有一个根结点,所以选项A叙述错误。
B正确,比如二叉树是一个非线性结构,二叉树就是一个根结点,所以该选数正确。
C和D叙述错误,循环链表和双向链表都是线性结构。
(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)
A)3 B)4 C)6 D)7
D)【解析】根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。
题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,因而这个二叉树的深度为7。
解析:
根据二叉树的性质,叶子结点即度为0的结点个数总比度为2的结点个数多1,根据题目内容可知度为2的结点个数为0,因为叶子结点只有1个,由于二叉树的结点类型有三种:度为0,度为1,度
为2,根据题目内容可知二叉树共有7个结点所以度为1的结点个数是6,度为1表示结点只有一个分支,这个分支可以是左子树或右子树,我们画一下该二叉树的图为:
(4)在软件开发中,需求分析阶段产生的主要文档是
A)软件集成测试计划 B)软件详细设计说明书
C)用户手册 D)软件需求规格说明书
D)【解析】在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。
A错误,集成测试计划是在概要设计阶段编写的文档。
B错误,详细设计阶段产生的文档是软件详细设计说明书。
C错误,用户手册是在软件实现阶段要完成文档。
D正确。
需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
(5)结构化程序所要求的基本结构不包括
A)顺序结构 B)GOTO跳转
C)选择(分支)结构 D)重复(循环)结构
B)【解析】结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。
解析:
结构化程序的基本结构包括:顺序结构、选择结构、循环结构三种,以上选项B所说的GOTO结构是错误的,goto只是一种编程指令不是一种程序结构。
(6)下面描述中错误的是
A)系统总体结构图支持软件系统的详细设计
B)软件设计是将软件需求转换为软件表示的过程
C)数据结构与数据库设计是软件设计的任务之一
D)PAD图是软件详细设计的表示工具
A)【解析】系统总体结构图描述了软件系统的结构这是概要设计阶段的任务,详细设计阶段正是在概要设计阶段之后要进行工作。
软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD图,
即问题分析图,是一种主要用于描述软件详细设计的图形工具。
C正确,数据结构和数据库设计是概要设计阶段的任务。
D正确,详细设计的表示具包括:程序流程图,N-S,PAD,HIPO等。
(7)负责数据库中查询操作的数据库语言是
A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言【解析】负责数据库中查询操作的数据库语言是数据操纵语言。
解析:
用户通过数据定义语言可以方便地对数据库中的相关内容进行定义。
例如,对数据库、表、索引进行定义。
用户通过数据操纵语言可以实现对数据库的基本操作。
例如,对表中数据的查询、插入、删除和修改。
数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
所以该题目选择C。
(8)一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是A)1:1联系 B)1:m联系 C)m:1联系 D)m:n联系
D)【解析】一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程的联系是多对多的联系。
(9)有三个关系R、S和T如下:
R S T
则由关系R和S得到关系T的操作是A)自然连接 B)交 C)除 D)并C(2,1,)
2(A,1)
1(B,2)
1(C,3)
解析:
A错误,自然连接是关系的横向运算。
连接运算将两个关系横向地拼接成一个更宽的关系所以T关系不是R和S的自然连接后的结果。
B错误,关系R与关系S经交运算后所得到的关系是既在R中又在S中的元组组成,题目中的T关系的元组在S中不存在。
C正确。
D错误。
并是两个关系的和集,从上图可以看出T不是R和S的和
除(Division)
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。
R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集YX包含S在Y上投影的集合。
记作:
其中YX为x在R中的象集,x=tr[X]。
除操作是同时从行和列角度进行运算。
例6 设关系R,S分别为图2.7中的(a)和(b),R÷S的结果为图2.7(c)。
在关系R中,A可以取四个值{a1,a2,a3,a4}。
其中:
a1的象集为{(b1,c2),(b2,c3),(b2,c1)}
a2的象集为{(b3,c7),(b2,c3)}
a3的象集为{(b4,c6)}
a4的象集为{(b6,c6)}
S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c3)}
显然只有a1的象集(B,C)a1包含了S在(B,C)属性组上的投影,所以R÷S={a1}
图2.7
(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是
A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5}
B)【解析】UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A)和选项C),选项D)是整数集合,所以也排除。
(11)在Visual Basic集成环境中,可以列出工程中所有模块名称的窗口是
A)工程资源管理器窗口 B)窗体设计窗口
C)属性窗口 D)代码窗口
答案:A
(12)假定编写了如下4个窗体事件的事件过程,则运行应用程序并显示窗体后,已经执行的事件过程是
A)Load B)Click C)LostFocus D)KeyPress
答案:A
解析:Load事件用来在启动程序时对属性和变量进行初始化,在装入窗体后,如果运行程序,将自动触发该事件。
(13)为了使标签具有“透明”的显示效果,需要设置的属性是
A) Caption B) Alignment C) BackStyle D) AutoSize
答案:C
解析:Caption属性用来在标签中显示文本;Alignment属性用来确定标签中标签的放置方式
;AutoSize属性设置标签是否根据标题的长度自动调整大小;BackStyle属性可以取两个值,当值为1时,标签将覆盖背景,当值为0时,则标签具有“透明”的显示效果。
(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)
答案:B
解析:Rnd函数用来生成范围在[0,1)之间的随机数。
(15)设窗体上有一个名称为HS1的水平滚动条,如果执行了语句:
HS1.Value=(HS1.Max-HS1.Min)/2+HS1.Min 则
A)滚动块处于最左端
B)滚动块处于最右端
C)滚动块处于中间位置
D)滚动块可能处于任何位置,具体位置取决于Max、Min属性的值
答案:C
解析:本题中语句的设置效果是将滚动条的Value值设为当前滚动条刻度个数的1/2再加上Min值,此值正好为滚动条的中间位置,而Value值用来设置滚动块的位置,故答案为C。
(16)窗体上有一个名称为Cb1的组合框,程序运行后,为了输出选中的列表项,应使用的语句是A)Print Cb1.Selected
B)Print Cb1.List(Cb1.ListIndex)
C)Print Cb1.Selected.Text
D)Print Cb1.List(ListIndex)
答案:B
(17)为了在窗体上建立2组单选按钮,并且当程序运行时,每组都可以有一个单选按钮被选中,则以下做法中正确的是
A) 把这2组单选按钮设置为名称不同的2个控件数组
B) 使2组单选按钮的Index属性分别相同
C) 使2组单选按钮的名称分别相同
D) 使2组单选按钮分别画到2个不同的框架中
答案:D
解析:当窗体上有多个单选按钮时,如果选择其中的一个,其他单选按钮将自动关闭。
当需要在同一个窗体上建立几组相互独立的单选按钮时,则必须通过框架为单选按钮分组,使得在一个框架内的单选按钮为一组,每个框架内的单选按钮操作不影响其他组的按钮。
(18)如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是
A)它的Y1、Y2属性的值相等
B)它的X1、X2属性的值相等
C)它的X1、Y1属性的值分别与X2、Y2属性的值相等
D)它的X1、X2属性的值分别与Y1、Y2属性的值相等
答案:B
解析:平行线的Y1、Y2属性的值相等;垂直线的X1、X2属性的值相等。
(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
答案:A
解析:分别计算表达式3>2*b;a=c And b<>c;c>d的值,其值均为False,则输出为False。
(20)窗体Form1上有一个名称为Command1的命令按钮,以下对应窗体单击事件的事件过程是
A) Private Sub Form1_Click()
…
End Sub
B) Private Sub Form_Click()
…
End Sub
C) Private Sub Command1_Click()
…
End Sub
D) Private Sub Command_Click()
…
End Sub
答案:B
(21)默认情况下,下面声明的数组的元素个数是
Dim a(5,-2 to 2)
A)20 B)24 C)25 D)30
答案:D
解析:VB中数组下标默认从0开始,数组定义的值为数组可取的最大值,因此第一维可取值为6个,第二维可取值为:-2,-1,0,1,2,为5个,故数组元素个数为5*6=30个。
(22)设有如下程序段
Dim a(10)
……
For Each x In a
Print x;
Next x
在上面的程序段中,变量x必须是
A) 整型变量 B)变体型变量 C)动态数组 D)静态数组
答案:B
解析:在For Each…Next语句中,x为一个变体变量,它是为循环提供的,并在For Each…Next结构中重复使用,它实际上代表的是数组中的每个元素。
(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)
答案:A
(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$
答案:D
解析:本题打开的是顺序文件,读取方式有:Input #语句,Line Input #语句,Input函数,故答案选D。
(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
解析:本题For循环的步长为-1,但题中给出的初始值比终止值小,因此循环未执行,故a值未变,仍为10。
k值需被赋值为1后与5作比较才知道大小,故k值为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) 输入错误
答案:C
解析:本题考查的知识点是Select Case语句,其功能是根据“测试表达式”的值(本题中测试表达式为x),从多个语句块中选择符合条件的一个语句块执行。
(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
答案:C
解析:本题需要注意区分Do Until…Loop语句和Do…Loop Until语句。
后者为后判断条件的循环语句,无论初始条件是否满足都至少执行一次循环,当条件满足时跳出循环。
(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
答案: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)在窗体上画一个名为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
答案:A
(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个数中偶数的累加和
答案:A
解析:Mod函数为求余函数,与2取余,值为0表示为偶数,值为1表示为奇数。
因加上0对x的值并无影响,加上1表示有一个奇数,因此答案为A。
(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毫秒向右移动一次
答案:D
解析:Interval属性的单位为毫秒。
(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) 该列表项被删除后又在原位置插入
答案:C
解析:RemoveItem方法作用是删除项;AddItem方法作用是添加项,若省略Index值,则默认为插入到列表的最后面。
(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
B)3 8 2
C)8 8 12
D)3 8 12
答案:B
(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
答案:D
解析:本题要求从当前文件夹中读入文件,因此在Open语句中应使用输入(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)没有任何显示
答案:B
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
(1)有序线性表能进行二分查找的前提是该线性表必须是【1】存储的。
答案:【1】顺序【解析】二分查找只适用于顺序存储的有序线性表。
(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【2】。
答案:【2】DEBFCA
(3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】测试。
答案:【3】单元【解析】单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验的测试。
单元测试的目的是发现各模块内部可能存在的各种错误。
(4)实体完整性约束要求关系数据库中元组的【4】属性值不能为空。
答案:【4】主键【解析】实体完整性约束要求关系的主键中属性值不能为空值,因为主键是惟一决定元组的,如为空值则其惟一性就成为不可能的了。
(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称【5】是关系A的外码。
答案:【5】D【解析】如果表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】。
答案:【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】
Do While flag And a <= Int(Sqr(n))
If n / a = n \ a Then
flag = False
Else
【8】
End If
Loop
If Not flag Then n = n + 1
Loop
Print【9】
End Sub
上述程序的功能是,当在键盘输入任意的1个正整数时,将输出不小于该整数的最小素数。
请填空完善程序。
答案:【7】True 【8】a=a+1【9】n
(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】
End If
Loop While i < 10
For i = 1 To 9
For j = 【11】 To 10
if a(i)>a(j) then temp =a(i),a(i)=a(j);【12】
Next j
Next i
For i = 1 To 10
Print a(i)
Next i
End Sub
答案:【10】num【11】i+1【12】a(j)=temp
(9)窗体上已有名称分别为Drive1、Dir1、File1的驱动器列表框、目录列表框和文件列表框,且有1个名称为Text1的文本框。
以下程序的功能是:将指定位置中扩展名为“.txt”的文件显示在File1中,如果双击File1中某个文件,则在Text1中显示该文件的内容。
请填空。
Private Sub Form_Load()
File1.Pattern = 【13】
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】 As #1
Text1.Text = ""
Do While 【15】
s = Input(1, #1)
Text1.Text = Text1.Text + s
Loop
Close #1
End Sub
答案:【13】*.txt【14】For Input【15】NOT EOF(1)
选择题:
1-5 AADDB
6-10 B CDCB
11-15 AACBC
16-20 BDBA B
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)
(资料素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)。