2011年3月全国计算机等级考试二级笔试试卷
Visual Basic 语言程序设计 (考试时间 90分钟,满分100分)
一、 选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列关于栈叙述正确的是 A
A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除 C)栈底元素永远不能被删除 D)以上三种说法都不对 (2)下列叙述中正确的是A
A) 有一个以上根结点的数据结构不一定是非线性结构 B)只有一个根结点的数据结构不一定是线性结构 C)循环链表是非线性结构 D)双向链表是非线性结构
(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)D
A)3 B)4 C)6 D)7
(4)在软件开发中,需求分析阶段产生的主要文档是D
A) 软件集成测试计划 B)软件详细设计说明书 C)用户手册 D)软件需求规格说明书
(5)结构化程序所要求的基本结构不包括B
A)顺序结构 B)GOTO跳转
C)选择(分支)结构 D)重复(循环)结构
(6)下面描述中错误的是6-10 B
A)系统总体结构图支持软件系统的详细设计 B)软件设计是将软件需求转换为软件表示的过程 C)数据结构与数据库设计是软件设计的任务之一 D)PAD图是软件详细设计的表示工具
(7)负责数据库中查询操作的数据库语言是C
A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言
(8)一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是D
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的操作是C
A)自然连接 B)交 C)除 D)并
(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是B
A)-369 B)369 C)0.369 D)整数集合{1,2,3,4,5} (11)在Visual Basic集成环境中,可以列出工程中所有模块名称的窗口是A
1
A)工程资源管理器窗口 B)窗体设计窗口 C)属性窗口 D)代码窗口
(12)假定编写了如下4个窗体事件的事件过程,则运行应用程序并显示窗体后,已经执行的事件过程是A
A)Load B)Click C)LostFocus D)KeyPress (13)为了使标签具有“透明”的显示效果,需要设置的属性是C
A) Caption B) Alignment C) BackStyle D) AutoSize
(14)下面可以产生20-30(含20和30)的随机整数的表达式是B
A) Int(Rnd*10+20) B) Int(Rnd*11+20) C) Int(Rnd*20+30) D) Int(Rnd*30+20)
(15)设窗体上有一个名称为HS1的水平滚动条,如果执行了语句:C HS1.Value=(HS1.Max-HS1.Min)/2+HS1.Min 则
A)滚动块处于最左端 B)滚动块处于最右端 C)滚动块处于中间位置
D)滚动块可能处于任何位置,具体位置取决于Max、Min属性的值
(16)窗体上有一个名称为Cb1的组合框,程序运行后,为了输出选中的列表项,应使用的语句是B
(17)A)Print Cb1.Selected
B)Print Cb1.List(Cb1.ListIndex) C)Print Cb1.Selected.Text D)Print Cb1.List(ListIndex)
(17)为了在窗体上建立2组单选按钮,并且当程序运行时,每组都可以有一个单选按钮被选中,则以下做法中正确的是D
A) 把这2组单选按钮设置为名称不同的2个控件数组 B) 使2组单选按钮的Index属性分别相同 C) 使2组单选按钮的名称分别相同
D) 使2组单选按钮分别画到2个不同的框架中
(18)如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是B
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,则下面语句的输出是A 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
A) Private Sub Form1_Click()
…
End Sub
B) Private Sub Form_Click()
…
End Sub
C) Private Sub Command1_Click()
2
… End Sub
D) Private Sub Command_Click() …
End Sub
(21)默认情况下,下面声明的数组的元素个数是D 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必须是B
A) 整型变量 B)变体型变量 C)动态数组 D)静态数组
(23) 设有以下函数过程
Private Function Fun(a()As Integer As String)As Integer
…
End FunctionA 若已有变量声明:
Dim x(5)As Integer,n As Integer,ch As String 则下面正确的过程调用语句是A
A) x(0)=Fun(x,“ch”) B) n=Fun(n,ch) C) Call Fun x,“ch” D) n=Fun(x(5),ch)
(24)假定用下面的语句打开文件:C
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)下面程序执行结果是D
Private Sub Command 1_Click() a=10
For k=1 To 5 Step-1 A=a-k Nest 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 “输入错误”
3
Case Is<0 Print 20-x Case Is <10 Print 20 Case Is<=20 Print x +10 End Select
End Sub
程序运行时,如果在文本框中输入-5,则单击命令按钮后的输出结果是C 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循环执行的次数是C
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
程序运行后,窗体上显示的是:B
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
A) 18 B) 12 C)8 D)6
(30)窗体上有一个名为Command 1 的命令按钮,并有如下程序: Private Sub Command 1_Click() Dim a(10),x%
4
For k=1 To 10 a(k)=Int(Rnd*90+10) x=x+a(k) Mod 2
Next k
Print x End Sub
程序运行后,单击命令按钮,输出结果是:A
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
程序运行时,单击命令按钮,则产生的结果是D A) 命令按钮每10秒向左移动一次 B) 命令按钮每10秒向右移动一次 C) 命令按钮每10毫秒向左移动一次 D) 命令按钮每10毫秒向右移动一次
(32)设窗体上有一个名为List1 的列表框,并编写下面的事件过程:C 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
5
程序运行时,单击命令按钮,则输出结果是B A)3 3 2 B)3 8 2 C)8 8 12 D)3 8 12
(34)为了从当前文件夹中读入文件File1.txt,某人编写了下面的程序:
Private Sub Command1_Click()
Open \Do While Not EOF(20) Line Input #20, ch$ Print ch Loop End Sub
程序调试时,发现有错误,下面的修改方案中正确的是D 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 < \ Check = False Exit Function End If Next k
Check = True End Function
程序运行时,如果在组合框的编辑区中输入“Java”,则单击命令按钮后产生的结果是B A) 显示“输入错误” B) 显示“添加项目失败”
6
C) 显示“添加项目成功” D) 没有任何显示
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。 (1)有序线性表能进行二分查找的前提是该线性表必须是顺序存储的。
(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为DEBFCA (3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为单元测试。 (4)实体完整性约束要求关系数据库中元组的主键属性值不能为空。
(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称D 是关系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后的输出结果为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 = Ture
Do While flag And a <= Int(Sqr(n)) If n / a = n \\ a Then flag = False Else a=a+1 End If Loop
If Not flag Then n = n + 1 Loop
Print _n_ End Sub
上述程序的功能是,当在键盘输入任意的1个正整数时,将输出不小于该整数的最小素数。请填空完善程序。
(8)以下程序的功能是,先将随机产生的10个不同的整数放入数组a中,再将这10个数按升序方式输出。请填空。
7
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) = 【num】 End If
Loop While i < 10 For i = 1 To 9
For j = 【i】 To 10
if a(i)>a(j) then temp =a(i),a(i)=a(j);【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 = 【”*.txt|*.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) = \ f_name = File1.Path + File1.FileName Else
f_name = File1.Path + \End If
Open f_name 【for input】 As #1 Text1.Text = \
Do While 【not eof(1)】 s = Input(1, #1)
8
Text1.Text = Text1.Text + s Loop
Close #1 End Sub
2011年全国计算机等级考试二级VB参考答案
选择题:
1-5 AADDB 6-10 BCDCB 11-15 AACBC 16-20 BDBAA 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)
9
2011年3月全国计算机等级考试二级VB笔试试卷及答案(word版)



