1、2023年9月全国计算机等级考试二级VB真题 一、选择题(每题2分,共70分) (1)下列数据结构中,属于非线性结构的是 A)循环队列 B) 带链队列 C) 二叉树 D)带链栈 (2)下列数据结果中,可以按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C) 队列 D) 二叉树 (3)对于循环队列,下列叙述中对的的是 A)队头指针是固定不变的 B)队头指针一定大于队尾指针 C)队头指针一定小于队尾指针 D)队头指针可以大于队尾指针,也可以小于队尾指针 (4
2、算法的空间复杂度是指 A)算法在执行过程中所需要的计算机存储空间 B)算法所解决的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的临时工作单元数 (5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 (6)下列选项中不属于结构化程序设计原则的是 A) 可封装 D) 自顶向下 C) 模块化 D) 逐步求精 (7)软件具体设计产生的图如下: 该图是 A) N-S图 B) PAD图 C) 程
3、序流程图 D) E-R图 (8)数据库管理系统是 A)操作系统的一部分 B) 在操作系统支持下的系统软件 C) 一种编译系统 D) 一种操作系统 (9)在E-R图中,用来表达实体联系的图形是 A) 椭圆图 B) 矩形 C) 菱形 D) 三角形 (10)有三个关系R,S和T如下: 其中关系T由关系R和S通过某种操作得到,该操作为 A)选择 B)投影 C)交 D)并 (11)以下变量名中合法的是 A)x2-1 B)print C)str_n D)2
4、x (12)把数学表达式 图1 表达为对的的VB表达式应当是 A)(5x+3)/(2y-6) B)x*5+3/2*y-6 C)(5*x+3) l图2 (2*y-6) D)(x*5+3)/(y*2-6) (13)下面有关标准模块的叙述中,错误的是 A)标准模块不完全由代码组成,还可以有窗体 B)标准模块中的Private过程不能被工程中的其他模块调用 C)标准模块的文献扩展名为.bas D)标准模块中的全局变量可以被工程中的任何模块引用 (14)下面控件中,没有Caption属性的是 A)复选框
5、 B)单选按钮 C)组合框 D)框架 (15)用来设立文字字体是否斜体的属性是 A)FontUnderline B)FontBold C)FontSlope D)FontItalic (16)若看到程序中有以下事件过程,则可以肯定的是,当程序运营时 Private Sub Click_MouseDown(Button As Integer,_Shift As Integer,X As Single,Y As Single) Print “VB Program” End Sub A)用鼠标左键单击名称为“Command1
6、的命令按钮时,执行此过程 B)用鼠标左键单击名称为“MouseDown”的命令按钮时,执行此过程 C)用鼠标左键单击名称为“MouseDown”的控件时,执行此过程 D)用鼠标左键或右键单击名称为“Click”的控件时,执行此过程 (17)可以产生30-50(含30和50)之间的随机整数的表达式是 A)Int(Rnd*21+30) B)Int(Rnd*20+30) C)Int(Rnd*50-Rnd*30) D)Int(Rnd*30+50) (18)在程序运营时,下面的叙述中对的的是 A)用鼠标右键单击窗体中无控件的部
7、分,会执行窗体的Form_Load事件过程 B)用鼠标左键单击窗体的标题栏,会执行窗体的Form_Click事件过程 C)只装入而不显示窗体,也会执行窗体的Form_Load事件过程 D)装入窗体后,每次显示该窗体时,都会执行窗体的Form_Click事件过程 (19)窗体上有名称为Command1的命令按钮和名称为Text1的文本框 Private Sub Command1_Click() Text1.Text=”程序设计” Text1.SetFocus End Sub Private Sub Text1_GotFocus()
8、 Text1.Text=”等级考试” End Sub 运营以上程序,单击命令按钮后 A)文本框中显示的是“程序设计”,且焦点在文本框中 B)文本框中显示的是“等级考试”,且焦点在文本框中 C)文本框中显示的是“程序设计”,且焦点在命令按钮上 D)文本框中显示的是“等级考试”,且焦点在命令按钮上 (20)设窗体上有名称为Option1的单选按钮,且程序中有语句: If Options.Value=True Then 下面语句中与该语句不等价的是 A)If Option.Value Then B)If Option1=True The
9、n C)If Value=True Then D)If Option1 Then (21)设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设立为1,Min属性设立为100。下面叙述对的的是 A)程序运营时,若使滚动块向左移动,滚动条的Value属性值就增长 B)程序运营时,若使滚动块向左移动,滚动条的Value属性值就减少 C)由于滚动条的Max属性值下于Min属性值,程序会犯错 D)由于滚动条的Max属性值下于Min属性值,程序运营时滚动条的长度会缩为一点,滚动块无法移动 (22)有如下过程代码: Sub var
10、dim() Static numa As Integer Dim numb As Integer numa=numa+2 numb=numb+1 print numa;numb End Sub 连续3次调用var_dim过程,第3次调用时的输出是 A)2 1 B)2 3 C)6 1 D)6 3 (23)在窗体上画1个命令按钮,并编写如下事件过程: Private Sub Command1_Click() For i=5 to 1 step -0.8 Print Int(i); Next i
11、End Sub 运营程序,单击命令按钮,窗体上显示的内容为 A)5 4 3 2 1 1 B)5 4 3 2 1 C)4 3 2 1 1 D)4 4 3 2 1 1 (24)在窗体上画1个命令按钮,并编写如下事件过程: Private Sub Command1_Click() Dim a(3,3) For m=1 To 3 For n=1 To 3 If n=m Or n=4-m Then a(m,n)=0 End If Print a(m,n); Next n Print Next m En
12、d Sub 运营程序,单击命令按钮,窗体上显示的内容为 A)2 0 0 0 4 0 0 0 6 B)2 0 4 0 4 0 4 0 6 C)2 3 0 3 4 0 0 0 6 D)2 0 0 0 4 5 0 5 6 (25)设有以下函数过程 Function fun(a As Integer,b As Integer) Dim c As Integer If a
13、Until c Mod b=0 fun=c End function 若调用函数fun时的实际参数都是自然数,则函数返回的是 A)a、b的最大公约数 B)a、b的最小公倍数 C)a除以b的余数 D)a除以b的商的整数部分 (26)窗体上有1个名称为Text1的文本框;1个名为Timer1的计时器控件,其Interval属性值为5000,Enable属性值是True。Timer1的事件过程如下: Private Sub Timer1_Timer() Static flag As Integer If flag=0 Then flag=
14、1 flag=-flag If flag=1 Then Text1.ForeColor=&HFF& ‘&HFF&为红色 Else Text1.ForeColor=&HC000& ‘&HC000&为绿色 End If End Sub 以下叙述对的的是 A)每次执行些事件过程时,flag的初始值为0 B)flag的值只也许取0或1 C)程序执行后,文本框的文字每5秒改变一次颜色 D)程序有逻辑错误,Else分支总也不能被执行 (27)为计算1+2+22+23+24+…+210的值,并把结果显示在文本框Text
15、1中,若编写如下事件过程: Private Sub Command1_Click() Dim a%,s%,k% s=1 a=2 For k=2 To 10 a=a*2 s=s+a Next k Text1.Text=s End Sub 执行此事件过程后发现结果是错误的,为可以得到对的结果,应做的修改是 A)把s=1改为s=0 B)把For k=2 To 10改为For k=1 To 10 C)互换语句s=s+a和a=a*2的顺序 D)同时进行B)、C)两种修改 (28)标准模块中有如下程序代码:
16、Public x As Integer,y As Integer Sub var_pub() x=10:y=20 End Sub 在窗体上有1个命令按钮,并有如下事件过程: Private Sub Command1_Click() Dim x As Integer Call var_pub x=x+100 y=y+100 Print x;y End Sub 运营程序后单击命令按钮,窗体上显示的是 A)100 100 B)100 120 C)110 100 D)110 120 (
17、29)设a、b都是自然数,为求a除以b的余数,某人编写了以下函数: Function fun(a As Integer,b As Integer) While a>b a=a-b Wend fun=a End Function 在调试时发现函数是错误的。为使函数能产生对的的返回值,应做的修改是 A)把a=a-b改为a=b-a B)把a=a-b改为a=a\b C)把While a>b改为While ab改为While a>=b (30)下列关于通用对话框CommonDialog1的叙述中,错误的是
18、 A)只要在“打开”对话框中选择了文献,并单击“打开”按钮,就可以将选中的文献打开 B)使用CommonDialog1.ShowColor方法,可以显示“颜色”对话框 C)CancelError属性用于控制用户单击“取消”按钮关闭对话框时,是否显示犯错误警告 D)在显示“字体”对话框前,必须先设立CommonDialog1的flags属性,否则会犯错 (31)在运用菜单编辑器设计菜单时,为了把组合键“Alt+X”设立为“退出(X)”菜单项的访问键,可以将该菜单项的标题设立为 A)退出(X&) B)退出(&X) C)退出(X#) D)退出
19、X) (32)在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,再编写如下程序: Dim ss As String Private Sub Text1_KeyPress(KeyAscii As integer) If chr(KeyAscii)<>””Then ss=ss+chr(KeyAscii) End Sub Private Sub Command1_Click() Dim m As String,i As Integer For i=Len(ss) To 1 step -1 m=m+M
20、id(ss,i,1) Next Text1.Text=Ucase(m) End Sub 程序运营后,在文本框中输入“Number100”,并单击命令按钮,则文本框中显示的是 A)NUMBER 100 B)REBMUN C)REBMUN 100 D)001 REBMUN (33)窗体的左右两端各有1条直线,名称分别为Line1、Line2;名称为Shape1的圆靠在左边的Line1直线上(见图);另有1个名称为Timer1的计时器控件,其Enable属性值是True。规定程序运营后,圆每秒向右移动100,当圆碰到Line2时则停止移动。
21、
为实现上述功能,某人把计时器的Interval属性设立为1000,并编写了如下程序:
Private Sub Timer1_Timer()
For k=Line1.X1 To Line2.X1 Step 100
If Shape1.Left+Shape1.Width 22、nterval属性设立为1
B)把For k=Line1.X1 To Line2.X1 Step 100和Next k两行删除
C)把For k=Line1.X1 To Line2.X1 Step 100改为For k=Line2.X1 To Line1.X1 Step 100
D)把If Shape1.Left+Shape1.Width 23、方式打开的文献,既可以进行读操作,也可以进行写操作
C)在随机文献中,每个记录的长度是固定的
D)无论是顺序文献还是随机文献,其打开的语句和打开方式都是完全相同的
(35)窗体如图1所示。规定程序运营时,在文本框Text1中输入一个姓氏,单击“删除”按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。若编写以下程序来实现此功能:
Private Sub Command1_Click()
Dim n%,k%
n=Len(Text1.Text)
For k=0 To List1.ListCount-1
If Lef 24、t(List1.List(k),n)=Text1.Text Then
List1.RemoveItem k
End If
Next k
End Sub
在调试时发现,如输入“陈”,可以对的删除所有姓“陈”的项目,但输入“刘”,则只删除了“刘邦”、“刘备”2项,结果如图2所示。这说明程序不能适应所有情况,需要修改。对的的修改方案是把For k=0 To List1.ListCount-1改为
A)For k=List1.ListCount-1 To 0 Step -1
B)For k=0 To List1.ListCount
C)For k=1 T 25、o List1.ListCount-1
D)For k=1 To List1.ListCount
二、填空题(每空2分,共30分)
(1)某二叉树有5个度为2的结点以及3个度为1的结点为,则该二叉树共有 【1】 个结点。
(2)程序流程图中的菱形框表达的是 【2】 。
(3)软件开发过程重要分为需求分析、设计、编码与测试四个阶段,其中 【3】 阶段产生“软件需求规格说明书”。
(4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为 【4】 。
(5)人员基本信息一般涉 26、及:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是 【5】 。
(6)工程中有Form1、Form2两个窗体。Form1窗体外观如图1所示。程序运营时,在Form1中名称为Text1的文本框中输入一个数值(圆的半径),然后单击命令按钮“计算并显示”(其名称为Command1),则显示Form2窗体,且根据输入的圆的半径计算圆的面积,并在Form2的窗体上显示出来,如图2所示。假如单击命令按钮时,文本框中输入的不是数值,则用信息框显示“请输入数值数据!”请填空。
Private Sub Command1_Click()
If Text1.Text 27、 Then
MsgBox “请输入半径!”
Else If Not IsNumeric( 【6】 ) Then
MsgBox “请输入数值数据!”
Else
r=val( 【7】 )
Form2.show
【8】 .Print “圆的面积是”&3.14*r*r
End If
End Sub
(7)设有整形变量s,取值范围为0~100,表达学生的成绩。有如下程序段:
If s>=90 Then
Level=”A”
Else If s>=75 Then
Level=”B”
Else If s>=60 28、Then
Level=”B”
Else
Level=”D”
End If
下面用SelectCase结构改写上述程序,使两段程序所实现的功能完全相同。请填空。
Select Case s
Case 【9】 >=90
Level=”A”
Case 75 To 89
Level=”B”
Case 60 To 74
Level=”B”
Case 【10】
Level=”D”
【11】
(8)窗体上有名称为Command1的命令按钮。事件过程及2个函数过程如下:
Private Sub Comma 29、nd1_Click()
Dim x As Integer,y As Integer,z
x=3
y=5
z=fy(y)
print fx(fx(x)),y
End Sub
Function fx(ByBal a As Integer)
a=a+a
fx=a
End Function
Function fy(ByRef a As Integer)
a=a+a
fy=a
End Function
运营程序,并单击命令按钮,则窗体上显示的2个值依次是 【12】 和 【13】 。
(9)窗 30、体上有名称为Command1的命令按钮及名称为Text1、能显示多行文本的文本框。程序运营后,假如单击命令按钮,则可打开磁盘文献c:\test.txt,并将文献中的内容(多行文本)显示在文本框中。下面是实现此功能的程序,请填空。
Private Sub Command1_Click()
Text1=””
Number=FreeFile
Open “c:\test.txt”For Input As Number
Do While Not Eof( 【14】 )
Line Input #Number,s
Text1.Text=Text1.Text+ 【15 31、 +Chr(13)+Chr(10)
Loop
Close Number
End Sub
一、选择题
(1)
C
(2)
B
(3)
D
(4)
A
(5)
B
(6)
A
(7)
C
(8)
B
(9)
C
(10)
D
(11)
C
(12)
D
(13)
A
(14)
C
(15)
D
(16)
D
(17)
A
(18)
C
(19)
B
(20)
C
(21)
A
(22)
C
(23)
A
(24)
B
(25)
D
(26)
C
(27)
D
(28)
B
(29)
D
(30)
A
(31)
B
(32)
D
(33)
B
(34)
C
(35)
A
二、填空题
(6)Text1.Text
Text1.Text
Form2
(7)IS
ELSE
END Select
(8)12
10
(9)Number
s学习使人进步,相信能就一定能成功






