1、二级 VISUAL+BASIC-22-2 及答案解析(总分:67.50,做题时间:90 分钟)一、选择题(总题数:25,分数:46.50)1.数据库系统的核心是(分数:1.00)A.数据库B.数据库管理系统C.数据模型D.软件工具2.以下语句的输出结果是 Print Format$(5874.567,“0.00E-00“)(分数:1.00)A.5874.57B.5.87456E03C.5874.567D.5.87E033.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是(分数:2.00)A.编辑软件B.操作系统C.教务管理系统D.浏览器4.设 a=10,b=
2、5,c=1,执行语句 Print abc 后,窗体上显示的是 _。(分数:1.00)A.TrueB.FalseC.1D.出错信息5.以下叙述中正确的是(分数:2.00)A.窗体的 Name 属性指定窗体的名称,用来标识一个窗体B.窗体的 Name 属性的值是显示在窗体标题栏中的文本C.可以在运行期间改变对象的 Name 属性的值D.对象的 Name 属性值可以为空6.设 a=2,b=3,c=4,d=5,下列表达式的值是 Not a=C Or 4*c=b2 And ba+c(分数:2.00)A.-1B.1C.TrueD.False7.在窗体上添加一个命令按钮,名为 command1,一文本框,名
3、为 text1,则执行如下事件过程后,文本框中的输出为_。 For i = 1 To 3 For j = 1 To 3 For k = 1 To 2 x=x+ 3 Next k Next j Next i Text1. Text =str (x)(分数:2.00)A.21B.42C.54D.728.以下关于过程的叙述中,错误的是 _ 。(分数:2.00)A.事件过程是由某个事件触发而执行的过程B.函数过程的返回值可以有多个C.可以在事件过程中调用通用过程D.不能在事件过程中定义函数过程9.执行如下两条语句后,窗体上显示的是 _。 a=8.4326 Print Format(a,“$00,00.
4、00“)(分数:1.00)A.0,008.43B.$8.43C.8.43D.$0,008.4310.假定有以下通用过程: Function Fun(n As Integer)As Integer x=n*n:Fun=x-11 End Function 在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程: Private Sub Command1_Click() Dim i As Integer For i=1 To 2 y=Fun(i) Printy; Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是(分数:3.00)A.1 3B.10 8C.
5、-10 -7D.0 511.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为_。(分数:2.00)A.PAD 图B.N-S 图C.结构图D.数据流图12.单击命令按钮,并在对话框内输入 6,下列程序段的执行结果为_。 Private Sub Command1_Click() Dim n As Integer n=InputBox (“请输入日期“) Select Case n Case Is = 0 n=InputBox(“错误!请重新输入日期!“) Case Is7 n=InputBox(“错误!请重新输入日期!“) Case 1 To 3 P
6、rint “江苏“ Case 4 To 5 Print “浙江“ Case 6 To 7 Print “双休日“ End Select End Sub(分数:2.00)A.错误!请重新输入日期!B.江苏C.浙江D.双休日13.对话框在关闭之前,不能继续执行应用程序的其他部分,这种对话框属于 _ 。(分数:2.00)A.输入对话框B.输出对话框C.模式(模态)对话框D.无模式对话框14.在窗体中添加一个通用对话框 Commondialog1 和一个命令按钮 Command1,当单击按钮时,打开颜色对话框,能实现此功能的程序段是(分数:2.00)A.Private Sub Command1_Cli
7、ck()Commondialogl.ShowOpenEnd SubB.Private Sub Command1_Click()Commondialog1.ShowColorEnd SubC.PrivateSubCommand1_Click()Commondialog1.ShowOpenCommondialog1.ShowFontEnd SubD.Private Sub Command1_Click()Commondialog1.ShowColorCommondialog1.ShowHelpEnd Sub15.下列叙述中错误的是 _ 。(分数:2.00)A.线性表是由 n 个元素组成的一个有限序
8、列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件D.线性表可以是空表16.有如下的程序: Private Sub Command1_Click( ) Dim k As Integer,m As Integer Dim P As Integer k=4:m=1 P=Pid(k,m) :Print P; P=Pid(k,m) :Print P End Sub Private Function Pid(a As Integer,b As Integer) Static m As Integer,i As Integer m=5:i=2 i=i + m + 1 m=i + a +
9、b Pid=m/2 End Function 单击命令按钮后,输出结果为(分数:1.00)A.2 2B.4 4C.5 5D.6 617.设已经在菜单编辑器中设计了窗体的快捷菜单,某顶级菜单为 a1,且取消其“可见”属性。运行时,哪个事件过程可以使快捷菜单的菜单项响应鼠标左键单击和右健单击的事件过程是 ) Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) If Button=2 Then PopupMenu a1,2 End Sub ) Private Sub Form_M
10、ouseDown(ButtonAsInteger,ShiftAsInteger,X As Single,Y As Single) PopupMenu a1,0 End Sub ) Private Sub Form_Mouse Down(Button As Integer,Shift As Integer,X As Single,Y As Single) PopupMenu a1 End Sub ) Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) If(Button=vb
11、LetfButton) Or (Button=vbRightButton) Then PopupMenu a1 End Sub (分数:2.00)A.B.C.D.18.软件调试的目的是(分数:2.00)A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性19.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() For i=1 To 4 x=4 For i=1 To 3 x=3 For k=1 To 2 x=x+6 Next Next Next Print X End Sub 程序运行后,单击命令按钮,输出的结果是 _ 。(分数:2
12、.00)A.7B.15C.157D.53820.使用 FileListBox,如果只显示系统文件,需要设置的属性为_。(分数:2.00)A.PathB.PatternC.SystemD.FileName21.如果文本框的 Locked 属性设置为 True,则下列说法正确的是 _ 。(分数:2.00)A.此时在属性窗口中不可以修改文本框的 Text 属性值B.运行时用户不可以在界面上修改文本框中的内容C.在程序代码中不可以修改文本框的内容,如不可以使用语句 Text1.Text=“aaa“D.以上均不正确22.需求分析阶段的任务是_。(分数:2.50)A.软件开发方法B.软件开发工具C.软件开
13、发费用D.软件系统功能23.有如下程序: Private Sub Commandl_Cick() a=10:b=50 Rem Print a;b Print bla Print a;b End Sub 运行后,单击命令按钮后的输出结果是 _(分数:2.00)A.10 50 50 10 10 50B.10 50C.10 50 50 10D.50 1024.要在命令按钮控件上显示图像应 _ 。(分数:2.00)A.设置 Picture 属性B.实现不了C.先将 Style 设置为 1,然后再设置 Picture 属性D.以上都不对25.Sub 过程与 Function 过程最根本的区别是(分数:2
14、.00)A.Sub 过程可以用 Call 语句直接使用过程名调用,而 Function 过程不可以B.Function 过程可以有形参,Sub 过程不可以C.Sub 过程不能返回值,而 Function 过程能返回值D.两种过程参数的传递方式不同二、填空题(总题数:12,分数:21.00)26.若有一个动态数组 a 有两个元素 a(0)和 a(1),现要令数组 a 有三个元素 a(0)、a(1)和 a(2),则应当使用 _ 1_ 语句。 (分数:2.00)27.在窗体上画一个命令按钮,其名称为 Commandl,然后编写如下程序: Function a(x As Integer, y As I
15、nteger) As Integer a = IIf(x y, x, y) End Function Private Sub Command1_Click() Dim n As Integer, m As Integer n = 10 m = 20 Print a(n, m) End Sub 程序运行后,单击命令按钮,输出结果是 1。 (分数:2.00)28.新建一个工程,内有两个窗体,窗体 Form1 上有一个命令按钮 Command1,单击该按钮,Form1 窗体消失,显示 Form2 窗体,程序如下: Private Sub Command1_Click() 1 Form2. 2 End
16、 Sub 试补充完整。 (分数:4.00)29.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于 1 测试。 (分数:2.00)30.下面程序运行后,单击命令按钮,输出的结果是 _ 1_ Private Sub Command1_Click() Dim a%(1 To 4),b%(2 To 6),i%,str1#,str2# For i=1 To 4 a(i)=i Next For i=2 To 6 b(i) =i Next str1 = YAG(a) str2 = YAG(b) Print “str1 =“; str1; “str2 =“; str2 End Sub Func
17、tion YAG (a ( ) As Integer) Dim t#, i% t=1 For i = LBound(a) To UBound(a) t=t * a(i) Next YAG = t End Function (分数:1.00)31.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() n=5 f=1 s=0 For i=1 To n f= _ 1_ s=s+f Next Print s End Sub 该事件过程的功能是计算 (分数:1.00)32.能够将文本框控件隐藏起来的属性是 _ 1_ 。 (分
18、数:1.00)33.下列程序的功能是计算两个自然数的最大公约数,界面如下图所示。给定的程序不完整,将程序补充完整。 (分数:1.00)34.Printer.Print“*“星号输出到 1。 (分数:2.00)35.下列程序的输出结果是 1。 Sub Prin() Dim B As String A=1 B=A Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是(分数:3.00)A.1 3B.10 8C.-10 -7 D.0 5解析:解析 本题共调用 Fun 函数 2 次,每次的函数值都是参数的平方减去 11 的值,故此输出-10,-7。11.为了避免流程图在描述程序逻
19、辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为_。(分数:2.00)A.PAD 图B.N-S 图 C.结构图D.数据流图解析:12.单击命令按钮,并在对话框内输入 6,下列程序段的执行结果为_。 Private Sub Command1_Click() Dim n As Integer n=InputBox (“请输入日期“) Select Case n Case Is = 0 n=InputBox(“错误!请重新输入日期!“) Case Is7 n=InputBox(“错误!请重新输入日期!“) Case 1 To 3 Print “江苏“ Case 4 To 5 P
20、rint “浙江“ Case 6 To 7 Print “双休日“ End Select End Sub(分数:2.00)A.错误!请重新输入日期!B.江苏C.浙江D.双休日 解析:13.对话框在关闭之前,不能继续执行应用程序的其他部分,这种对话框属于 _ 。(分数:2.00)A.输入对话框B.输出对话框C.模式(模态)对话框 D.无模式对话框解析:解析 无模式窗体显示时,随后遇到的代码都要执行;模式窗体(modal form)显示时,则随后的代码直到该窗体被隐藏或卸载时才能执行。窗体的模式通过设置 Show 方法的参数实现。14.在窗体中添加一个通用对话框 Commondialog1 和一个
21、命令按钮 Command1,当单击按钮时,打开颜色对话框,能实现此功能的程序段是(分数:2.00)A.Private Sub Command1_Click()Commondialogl.ShowOpenEnd SubB.Private Sub Command1_Click()Commondialog1.ShowColorEnd Sub C.PrivateSubCommand1_Click()Commondialog1.ShowOpenCommondialog1.ShowFontEnd SubD.Private Sub Command1_Click()Commondialog1.ShowColo
22、rCommondialog1.ShowHelpEnd Sub解析:解析 本题考查通用对话框 Commondialog 的种类。Visual Basic 主要提供了打开文件、保存文件、颜色、字体、打印、帮助等通用对话框,其对应的方法分别为 ShowOpen、ShowSave, ShowColor、ShowFont、ShowPrinter、ShowHelp据此,本题的答案为 B。15.下列叙述中错误的是 _ 。(分数:2.00)A.线性表是由 n 个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件 D.线性表可以是空表解析:解析 线性表是一种线性结构,由 n
23、(n0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项 C)是错误的。16.有如下的程序: Private Sub Command1_Click( ) Dim k As Integer,m As Integer Dim P As Integer k=4:m=1 P=Pid(k,m) :Print P; P=Pid(k,m) :Print P End Sub Private Function Pid(a As Integer,b As Integer) Static m As Integer,i As Inte
24、ger m=5:i=2 i=i + m + 1 m=i + a + b Pid=m/2 End Function 单击命令按钮后,输出结果为(分数:1.00)A.2 2B.4 4C.5 5D.6 6 解析:解析 在 Sub 过程中,程序段先定义了 3 个 Integer 型变量 k,m,p,并给 k 赋给初值 4,m 的初值为 1,然后调用事件过程 Pid,并将它的值赋给 p;在事件过程 Pid 中定义了两个形参,参数的传送是通过引用实参,即将 k,m 的地址作为 a,b 的地址;在 Pid 中,将 m,I 定义为静态变量,所以第一次调用后的值仍然保留,但是 m,I 分别都有赋值语句,将它们的
25、值变为 5,2,所以返回值不变都是 6 6。17.设已经在菜单编辑器中设计了窗体的快捷菜单,某顶级菜单为 a1,且取消其“可见”属性。运行时,哪个事件过程可以使快捷菜单的菜单项响应鼠标左键单击和右健单击的事件过程是 ) Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) If Button=2 Then PopupMenu a1,2 End Sub ) Private Sub Form_MouseDown(ButtonAsInteger,ShiftAsInteger,X A
26、s Single,Y As Single) PopupMenu a1,0 End Sub ) Private Sub Form_Mouse Down(Button As Integer,Shift As Integer,X As Single,Y As Single) PopupMenu a1 End Sub ) Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) If(Button=vbLetfButton) Or (Button=vbRightButton) Then
27、PopupMenu a1 End Sub (分数:2.00)A.B.C. D.解析:解析 MouseDown 事件用来响应鼠标单击,其中 Button 的参数用来确认鼠标按钮(1:左键;2:右键),PopupMenu 方法用以在指定坐标位置显示弹出式菜单,语法如下:对象.PopupMenu 菜单名,标志,x,y。 其中 x,y 提供菜单显示位置,标志指定快捷菜单的行为。18.软件调试的目的是(分数:2.00)A.发现错误B.改正错误 C.改善软件的性能D.验证软件的正确性解析:解析 软件测试与软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误导致程序失效的原因,并修
28、改程序以修正错误,调试是测试之后的活动。19.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() For i=1 To 4 x=4 For i=1 To 3 x=3 For k=1 To 2 x=x+6 Next Next Next Print X End Sub 程序运行后,单击命令按钮,输出的结果是 _ 。(分数:2.00)A.7B.15 C.157D.538解析:解析 x 在前面两个循环中均被赋值,最终为 x=3,只看最后一个循环体中,经 2 次循环后x=15。20.使用 FileListBox,如果只显示系统文件,需要设置的属性为_
29、。(分数:2.00)A.PathB.PatternC.SystemD.FileName 解析:21.如果文本框的 Locked 属性设置为 True,则下列说法正确的是 _ 。(分数:2.00)A.此时在属性窗口中不可以修改文本框的 Text 属性值B.运行时用户不可以在界面上修改文本框中的内容 C.在程序代码中不可以修改文本框的内容,如不可以使用语句 Text1.Text=“aaa“D.以上均不正确解析:解析 该属性主要用来指定在程序运行时文本框是否可以被编辑。当设置为 False 时,可以编辑文本框中的文本,当设置为 True 时,可以滚动和选择控件中的文本,但不能编辑。当然,在设计阶段,
30、在属性窗口中或者在程序代码中可以修改控件的文本。22.需求分析阶段的任务是_。(分数:2.50)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能 解析:解析 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。23.有如下程序: Private Sub Commandl_Cick() a=10:b=50 Rem Print a;b Print bla Print a;b End Sub 运行后,单击命令按钮后的输出结果是 _(分数:2.00)A.10 50 50 10
31、 10 50B.10 50 C.10 50 50 10D.50 10解析:解析 本题主要是对注释语句的考查,注释语句是非执行语句,用来给程序或语句做注解,其格式为:Rem 注释内容,使用注释语句需注意: 注释语句可单独占一行,也可以放在语句的后面; 若在其他语句行后使用 Rem 关键字,则必须使用冒号“:”与语句隔开; 若在其他语句行后使用单引号,则不必使用冒号; 单引号应是半角英文的直撇号, 在以上知识的基础上,我们可知 Rem Print a; b 与“Print b; a 都是注释语句并不执行,实质上程序只执行了语句 Print a;b。故结果值应为 B 项答案。24.要在命令按钮控件上
32、显示图像应 _ 。(分数:2.00)A.设置 Picture 属性B.实现不了C.先将 Style 设置为 1,然后再设置 Picture 属性 D.以上都不对解析:解析 style 属性的值可设置成标准模式 0(vbButtonStandard)或图形模式 1(vbButtonGraphical)。命令按钮控件默认的 Style 属性值为 0,只能显示标准的按钮,不能设置颜色和图形。使用 Picture 属性可以给命令按钮指定一个图形。25.Sub 过程与 Function 过程最根本的区别是(分数:2.00)A.Sub 过程可以用 Call 语句直接使用过程名调用,而 Function 过
33、程不可以B.Function 过程可以有形参,Sub 过程不可以C.Sub 过程不能返回值,而 Function 过程能返回值 D.两种过程参数的传递方式不同解析:解析 在 Visual Basic 中有两类过程,一类是系统提供的内部函数和事件过程;另一类是用户根据自己的需要定义的,供事件过程的多次调用,而第二类过程中,我们现在涉及最多的是子过程。它们的共同点都是完成某种特定功能的一组程序代码;不同的是函数是带有返回值的特殊过程,所以函数过程定义时有返回值的类型说明。二、填空题(总题数:12,分数:21.00)26.若有一个动态数组 a 有两个元素 a(0)和 a(1),现要令数组 a 有三个
34、元素 a(0)、a(1)和 a(2),则应当使用 _ 1_ 语句。 (分数:2.00)解析:ReDim a(2) 解析 ReDim 语句:在过程级别中使用,用于为动态数组变量重新分配存储空间。 语法: ReDim Preserve varname(subscripts) As type , varname(subscripts) As type. 可以使用 ReDim 语句反复地改变数组的元素以及维数的数目,但是不能在将一个数组定义为某种数据类型之后,再使用 ReDim 将该数组改为其他数据类型,除非是 Variant 所包含的数组。 如果将数组改小,则被删赊的元素中的数据就会丢失。如果按地址
35、将数组传递给某个过程,那么不要在该过程内重定义该数组的各维的大小。 Erase 语句重新初始化大小固定的数组的元素,以及释放动态数组的存储空间(但不能重新定义数组)。 语法: Erase arraylist 所需的 arraylist 参数是一个或多个用逗号隔开的需要清除的数组变量。 说明: Erase 根据是固定大小(常规的)数组还是动态数组,来采取完全不同的行为。Erase 无需为固定大小的数组恢复内存。 Erase 释放动态数组所使用的内存。在下次引用该动态数组之前,程序必须使用 ReDim 语句来重新定义该数组变量的维数。27.在窗体上画一个命令按钮,其名称为 Commandl,然后编
36、写如下程序: Function a(x As Integer, y As Integer) As Integer a = IIf(x y, x, y) End Function Private Sub Command1_Click() Dim n As Integer, m As Integer n = 10 m = 20 Print a(n, m) End Sub 程序运行后,单击命令按钮,输出结果是 1。 (分数:2.00)解析:2028.新建一个工程,内有两个窗体,窗体 Form1 上有一个命令按钮 Command1,单击该按钮,Form1 窗体消失,显示 Form2 窗体,程序如下:
37、Private Sub Command1_Click() 1 Form2. 2 End Sub 试补充完整。 (分数:4.00)解析:Me. Hide 或 Form1. Hide show 解析 本题考查关于窗体的操作,其显示和隐藏分别用 Show 和 Hide。29.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于 1 测试。 (分数:2.00)解析:白盒解析 自盒测试法即结构测试,它与程序内部结构相关,要利用程序结构的实现细节设计测试实例。白盒测试法主要有逻辑覆盖、基本路径测试等。30.下面程序运行后,单击命令按钮,输出的结果是 _ 1_ Private Sub Comma
38、nd1_Click() Dim a%(1 To 4),b%(2 To 6),i%,str1#,str2# For i=1 To 4 a(i)=i Next For i=2 To 6 b(i) =i Next str1 = YAG(a) str2 = YAG(b) Print “str1 =“; str1; “str2 =“; str2 End Sub Function YAG (a ( ) As Integer) Dim t#, i% t=1 For i = LBound(a) To UBound(a) t=t * a(i) Next YAG = t End Function (分数:1.00
39、)解析:str1=24 str2=720 解析 考查考生对定义数组和调用函数的掌握情况。 程序首先调用循环语句为数组 a、b 赋值,其中 a(i)=i;b(i)=i,且数组 a 的上下界分别为 1 和 4,数组6 的上下界分别为 2 和 6;接着将数组。作为参数调用 YAG 过程,在 YAG 过程中,定义了两个变量 t 及i,i 作为循环语句 For 的变量,它的初始值和终值分别为数组的上下界,循环体为 t=t*a(i),即将 a (i)的值乘以 t,然后再赋给 t,当循环结束后,程序返回的就是数组。中的各元素的积;同理程序将数组 b 作为参数传递给 YAG 过程后返回数组中各元素的积,运行程
40、序结束后,输出结果为:strX=24 str2=720。 数组定义、函数调用31.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() n=5 f=1 s=0 For i=1 To n f= _ 1_ s=s+f Next Print s End Sub 该事件过程的功能是计算 (分数:1.00)解析:f/i 评析:本题程序的功能是求和 ,而代码中有语句 s=s+f.故变量 f 中存储的应为32.能够将文本框控件隐藏起来的属性是 _ 1_ 。 (分数:1.00)解析:Visible解析 Visible 为隐藏属性,
41、Hide 为隐藏方法。33.下列程序的功能是计算两个自然数的最大公约数,界面如下图所示。给定的程序不完整,将程序补充完整。 (分数:1.00)解析:fun1(x,y) ab fun1=b34.Printer.Print“*“星号输出到 1。 (分数:2.00)解析:打印机35.下列程序的输出结果是 1。 Sub Prin() Dim B As String A=1 B=A & Space(4)& A Print A Print Trim(B) End Sub (分数:2.00)解析:1 1 1 解析 Space(Integer)函数的功能是返回指定数目空格;Trim 函数的功能是去掉字符串两边
42、的空白字符,注意 Trim(B)不能将字符中间的空白字符去掉。B=A&Space(4)A 的结果是“1 1”(中间有 4 个空格)。 LTrim(String)函数的功能是去掉 String 字符串左边的空白字符;RTrim(String)函数的功能是去掉String 字符串右边的空白字符。36.软件测试是由一系列的测试所组成,而其最基本的测试是 _ 1_ 。 (分数:1.00)解析:单元测试/模块测试解析 单元测试也称为模块测试,在单元测试中,测试人员应根据设计文档或源程序了解模块的功能和逻辑结构,是最基本的测试。37.欲打开各种 Visual Basic 窗口或显示工具栏,其对应的菜单命令均放置于主菜单项 1。的下拉菜单中。(分数:2.00)解析:视图