1、计算机二级(VB)64 及答案解析(总分:4230.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:60,分数:4200.00)1.单击按钮时,以下程序运行后的输出结果是( )。 Private Sub proc1(x As Integer,y As Integer,z As Integer) x=3*z y=2*z z=x+y End Sub Private Sub Command1_Click() Dim x As Integer,y As Integer,Z As Integer x=1:y=2:z=3 Call proc1(x,x,z) Prin
2、t x;x;z Call proc1(x,y,y) Print x;y;y End Sub (分数:70.00)A.Dim NewArray(10)As IntegerB.Dim NewArray(1 T0 10)As IntegerC.Dim NewArray(10)IntegerD.Dim NewArray(1 To 10)Integer2.以下各项,可以作为 Visual Basic 变量名的是( )。(分数:70.00)A.内存跟踪B.内存编译C.语法检查D.上述都不正确3.与 List1Text 属性值相同的是( )。(分数:70.00)A.List1ListCountB.List1
3、List(ListCount-1)C.List1ListIndexD.List1List(ListListIndex)4.下面循环语句中在任何情况下都至少执行一次循环体的是【 】(分数:70.00)A.Do While 循环体 LoopB.While 循环体 WendC.Do 循环体 LoopD.Do Until 循环体 Until Loop5.以下关于 KeyPress 事件过程中参数 KeyAscii 的叙述中正确的是_。 (分数:70.00)A.KeyAscii 参数是所按键的 ASCII 码B.KeyAscii 参数的数据类型为字符串C.KeyAscii 参数可以省略D.KeyAsci
4、i 参数是所按键上标注的字符6.下列说法错误的是( )。(分数:70.00)A.C+语言支持数据封装B.C+语言中引入友元没有破坏封装性C.C+语言允许函数名和运算符重载D.C+语言支持动态联编7.下列说法错误的是( )。(分数:70.00)A.CREATE REPORT PP1B.MODIFY REPORT PP1C.CREATE PP1D.MODIFY PP18.下列有关子菜单的说法中,错误的是( )。(分数:70.00)A.除了 Click 事件之外,菜单项不可以响应其他事件B.每个菜单项都是一个控件,与其他控件一样也有其属性和事件C.菜单项的索引号必须从 1 开始D.菜单的索引号可以不
5、连续9.下列程序段的执行结果为( )。 I=4 x=5 Do I=I+1 x=x+2 Loop Until I=7 Print“I=“;I Print“X=“;x (分数:70.00)A.I=4 x=5B.I=7 x=15C.I=6 x=8D.I=7 x=1110.有如下事件过程: Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) If(Button And 3)=3 Then Print“OK“ End If End Sub 程序运行后,为了在窗体上输出“OK”,应当按下的鼠标键是 ( )。 (分数:70.00)A.i
6、nterfaceB.staticC.finalD.abstract11.设有如下程下段: x=2 For i=1 To 10 Step 2 x=x+i Next 运行以上程序后,x 的值是( )。 (分数:70.00)A.26B.27C.38D.5712.下面叙述正确的是_。 (分数:70.00)A.程序设计就是编制程序B.程序的测试必须由程序员自己去完成C.程序经调试改错后还应进行再测试D.程序经调试改错后不必进行再测试13.下列描述中正确的是_。 (分数:70.00)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构14.单击
7、一次命令按钮后,下列程序的执行结果是( )。 Private Sub Command1_Click() s=P(1) +P(2) +P(3) +P(4) Print s End Sub Public Function P(N As Integer) Static Sum For i=1 To N Sum=Sum+i Next i P=Sum End Function (分数:70.00)A.15B.25C.35D.4515.如果一个变量未经定义就直接使用,则该变量的默认类型为( )。(分数:70.00)A.VariantB.ByteC.BooleanD.Integer16.语句 Print 5
8、/4*6/5 Mod 2 的输出结果是( )。 (分数:70.00)A.0B.1C.2D.317.下面说法不正确的是( )。(分数:70.00)A.Float.MIN_VALUEB.1.8e-6FC.2.0D.abcd18.以下程序的输出结果为( )。 Dim i,c(10),p(3) k=5 For i=0 To 10 c(i) =i Next i For i=0 To 2 p(i) = c(i * (i + 1) Next i For i=0 To 2 k=k+p(i) * 2 Next i Print k (分数:70.00)A.20B.21C.56D.3219.下列说法正确的是( )。
9、(分数:70.00)A.1234B.1324C.1342D.314220.任何控件都有的属性是( )。(分数:70.00)A.数据绑定控件B.ActiveX 控件C.自动化管理器D.报表控件21.已知使用 Show 方法的格式为:窗体名称Show模式,如果要使窗体是“模态型”宙体,则“模式”值为( )。(分数:70.00)A.TrueB.0C.1D.False22.Visual Basic 标题栏上显示了应用程序的( )。(分数:70.00)A.子类的访问权限比父类方法的访问权限要高B.继承性是面向对象方法的一个重要特征,它使代码可重用,可降低程序的复杂性C.子类方法不能产生比父类方法更多的异
10、常D.重写是指子类的成员方法与父类的成员方法名字相同,参数列表相同,方法体不同23.运行下列程序段后,显示的结果为( )。 J1=23 J2=32 If J1J2 Then Print J2 Else Print J1 (分数:70.00)A.Label 控件的 Enabled 属性与 TextBox 控件的 Enabled 属性B.OptionButton 控件的 Value 属性与 CheckBox 控件的 Value 属性C.Command 控件的 Default 属性与 Command 控件的 Cancel 属性D.Command 控件的 Visible 属性与 Form 控件的 Vi
11、sible 属性24.以下说法不正确的是( )。(分数:70.00)A.使用 ReDim 语句可以改变数组的维数B.使用 ReDim 语句可以改变数组的类型C.使用 ReDim 语句可以改变数组的每一维的大小D.使用 ReDim 语句可以改变对数组中的所有元素进行初始化25.下面的数组声明中,正确的是( )。(分数:70.00)A.Dim pict3,4As IntegerB.Dim pict(3,4)As IntegerC.Dim pict34As IntegerD.Dim pict(3:4)As Integer26.假定一个 Visual Basic 应用程序由一个窗体模块和一个标准模块构
12、成。为了保存该应 用程序,以下正确的操作是_。 (分数:70.00)A.只保存窗体模块文件B.分别保存窗体模块、标准模块和工程文件C.只保存窗体模块和标准模块文件D.只保存工程文件27.以下各项,可以作为 Visual Basic 变量名的是( )。(分数:70.00)A.BookB.2_SeekC.123.58D.Book-128.在窗体上画一个名称为 Label1 的标签,然后编写如下事件过程: Private Sub Form_Click() Dim arr(10, 10) As Integer Dim i As Integer, j As Integer For i = 2 To 4
13、For j = 2 To 4 arr(i, j) = i * j Next j Next i Label1.Caption = Str(arr(2, 2) + arr(3, 3) End Sub 程序运行后,单击窗体,在标签中显示的内容是_。 (分数:70.00)A.12B.13C.14D.1529.有如下事件过程: Sub ABD(x,y,z) z=X +y End Sub Private Sub Command1 _ Click( ) a=30:b=40 Call ABD(a,b,c) Print c End Sub 运行上面的程序,单击命令按钮,输出结果为( )。 (分数:70.00)A
14、.70B.70.0C.7,0E+1D.显示错误信息30.表达式(7/2+1)*(8/2+2)的值为( )。(分数:70.00)A.在活动窗体中只能通过拖拉右上角和左下角的小方块来同时在高度和宽度上缩放 控件B.若一个控件上有 4 个黑色的小方块,表明该控件是活动的C.窗体中活动控件只能有一个D.非活动控件在窗体是隐藏的31.建立一个新的标准模块,应该选择哪个菜单下的“添加模块”命令?(分数:70.00)A.菜单与窗体无关,是对立的B.菜单总是于窗体有关,每个菜单都依附于一定的窗体C.菜单分为下拉式菜单和弹出式菜单D.在 Visual Basic 中有专门的设计菜单环境,那就是菜单编辑器32.单
15、击命令按钮时,下列程序的执行结果为( )。 Private Sub Command1_Click() Dim x As Integer,y As Integer x=50:y=78 Call PPP(x,y) Print x;y End Sub Public Sub PPP(ByVal n As Integer,ByValm As Integer) n=n/10 m=m/10 End Sub (分数:70.00)A.多态B.继承C.封装D.垃圾回收33.下列说法不正确的是( )。(分数:70.00)A.对象的操作由对象的属性、事件和方法来描述B.Visual Basic 是面向对象的程序设计,
16、Visual Basic 中只有窗体和控件两种对象C.属性是对象的特征,不同的对象有不同的属性D.对象事件在代码窗口中体现过程34.有以下程序: Sub subP(b()As Integer) For i=1 To 4 b(i)=2*i Next i End Sub Private Sub Commandl Click() Dim a(1 To 4)As Integer a(1)=5 a(2)=6 a(3)=7 a(4)=8 subP a() For i=1 To 4 Print a(i) End Sub 运行上面的程序,单击命令按钮,输出结果为【 】 (分数:70.00)A.2 4 6 8B
17、.5 6 7 8C.10 12 14 16D.出错35.语句 A=B+C 代表的意思是( )。(分数:70.00)A.B.C.D.36.以下为 Visual Basic 学习版的控件的是( )。(分数:70.00)A.数据绑定控件B.ActiveX 控件C.自动化管理器D.报表控件37.下列描述中正确的是_。 (分数:70.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题38.变量 L 的值为-8,则-L2 的值为( )。(分数:70.00)A._NolB.
18、No1C.12345D.int39.有如下程序: Private Sub Command1_Click() Dim k As Integer,m As Integer Dim op As Integer k=4:m=1 op:PPC(k,m):Print op; op:PPC(k,m):Print op End Sub Private Function,PPC(a As Integer,b As Integer) Static m As Integer,i As Integer m=0:i=2 i=i+m+1 m=i+a+b PPC=m End Function 程序运行后,输出的结果为( )
19、。 (分数:70.00)A.4 6B.6 6C.8 8D.10 1240.下面语句正确的是( )。(分数:70.00)A.If xy Then y=x3B.If xy Then y=3xC.If xy Then y=x3D.If xy Then y=x * * 341.在以下描述中正确的是( )。 (分数:70.00)A.标准模块中的任何过程都可以在整个工程范围内被调用B.在一个窗体模块中可以调用在其他窗体中被定义为 Public 的通用过程C.如果工程中包含 Sub Main 过程,则程序将首先执行该过程D.如果工程中不包含 Sub Main 过程,则程序一定首先执行第一个建立的窗体42.有
20、以下程序: Option Base 1 Dim arr()As Integer Private Sub Form_Click() Dim i As Integer,j As Integer ReDim arr(3,2) FOr i=1 To 3 For j=1 To 2 an“(i,J)=i*2+j Next j Next i ReDim Preserve arr(3,4) For j=3 To 4 arr(3,j)=j+9 Next j Print arr(3,2);arr(3,4) End Sub 程序运行后,单击窗体,输出结果为【 】 (分数:70.00)A.8 13B.0 13C.7
21、12D.0 043.如果要将文本框作为密码框使用时,应设置的属性为( )。(分数:70.00)A.DELETE TABLEB.REMOVE TABLEC.DROP TABLED.RELEASE TABLE44.下列对于软件测试的描述中正确的是_。 (分数:70.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则45.下列程序段的执行结果为( )。 X=2 Y=5 If X * Y 1 Then Y=Y - 1 Else Y=-1 Print Y-X0 (分数:70.00)A.UR
22、LB.JDBCC.SOCKETD.RMI46.要使菜单项 MenuOne 在程序运行时失效,使用的语句是( )。(分数:70.00)A.MenuOneVisible=TreeB.MenuOneVisible=FalseC.MenuOneEnabled=TrueD.MenuOneEnabled=False47.下列叙述中正确的是【 】(分数:70.00)A.软件测试的主要目的是发现程序中的错误B.软件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误48.Visual Basic 程序设计采用的编程机制是( )。
23、(分数:70.00)A.方法是对象的一部分B.方法的调用格式和对象的属性的使用格式相同C.方法是一种特殊的过程和函数D.在调用方法时,对象名是不可缺少的49.有如下程序段,该程序段执行完后,执行循环的次数是( )。 total=0 Counter=1 Do Print Counter total=total + Counter Print total Counter=Counter+1 If total10 Then Exit Do End If Loop While Counter =10 (分数:70.00)A.5B.10C.15D.2050.阅读下面的程序段: For a=1 To 2
24、For b=1 To a For C=b To 2 I=I + 1 Next Next Next Print I 执行上面的三重循环后,I 的值为( )。 (分数:70.00)A.4B.5C.6D.951.在窗体上画一个通用对话框,其名称为 CommonDialogl,然后画一个命令按钮,并编写如 下事件过程:Private Sub Commandl_Click() CommonDialogl,Flags=vbOFNHideReadOnly CommontDialoglFilter=“All Files(*)|*|Text Files (*.*)|*txt|“_ s End Sub (分数:1
25、.50)填空项 1:_填空项 1:_填空项 1:_72.在 KeyPress 事件过程中,KeyAscii 是所按键的 1 值。(分数:1.50)填空项 1:_73.在一个工程中有两个窗体,窗体 Form1 上有一个命令按钮 Disp,单击该按钮,Form1 窗体 隐藏,显示Form2 窗体,程序如下,请补充完整。 Private Sub Disp_Click1 MeHide Form2. 2 End Sub (分数:1.50)填空项 1:_74.下列事件过程的功能是:通过 Form _ Load 事件给数组赋初值为 35、48、15、22、67,Form_ Click事件找出可以被 3 整除
26、的数组元素并打印出来。请在空白处填入适当的内容,将程序补充完整。 Dim Arr 1 Private Sub Form _ Load2 3 End Sub Private Sub Form _ Click4 5 If Int(x/3)=x/3 Then Print x End If Next x End Sub (分数:1.50)填空项 1:_75.在一个工程中有两个窗体,窗体 Form1 上有一个命令按钮 Disp,单击该按钮,Form1 窗体 隐藏,显示Form2 窗体,程序如下,请补充完整。 Private Sub Disp_Click1 MeHide Form2. 2 End Sub
27、(分数:1.50)填空项 1:_76. 1 的任务是诊断和改正程序中的错误。(分数:1.50)填空项 1:_77.新建一个工程,内有两个窗体,窗体 Form1 上有一个命令按钮 Command1,单击该按钮, Form1 窗体消失,显示 Form2 窗体,程序如下: Private Sub Command1_Click1 2 Form2 3 End Sub 试补充完整。 (分数:1.50)填空项 1:_填空项 1:_78.在窗体上画一个名称为 Combo1 的组合框,然后画两个名称分别为 Labe1、Label2,标题分别为“城市名称“和空白的标签。程序运行后,在组合框中输入一个新项目并按回车
28、键,如果输入的项目在组合框的列表中不存在,则自动将其添加到组合框的列表中,并在 Label2 中给出提示“已成功添加新输入项。“,如图所示。如果输入的项目已存在,则在 Label2 中给出提示“输入项已在组合框中。“。 (分数:1.50)填空项 1:_79.下面程序是用来打印九九乘法表的,请补充完整。 Dim i As Integer,j As Integer,Strl$ Strl=“ “ For i=1 To 9 Forj=1 To 9 If 1 Then Strl=Strl + Str$(j)+“X“+Str$(i)+“=“+Str$(Val(i * j) Else Strl=Strl s
29、 End Sub (分数:1.50)填空项 1:_ (正确答案:a(i)=Int(Rnd)填空项 1:_ (正确答案:*)填空项 1:_ (正确答案:200+100))解析:求随机数要用到随机函数 Rnd,所以在程序中调用了 Rnd 函数,100300 之间的随机函数表示为:a(i)=Int(Rnd * 200+100);求某个数的倍数要用到取模运算符 Mod,本题中求 7 的倍数,所以表示为:a(i) Mod 7=0;对于条件语句,有 If 开头的必须有 End If 结尾,Select Case 开头的,必须要用 End Select 结尾,所以本题中应添加 End If。72.在 Key
30、Press 事件过程中,KeyAscii 是所按键的 1 值。(分数:1.50)填空项 1:_ (正确答案:ASCII)解析:当按下键盘上的某个键时,触发 KeyPress 事件过程,该事件用到的 KeyAscii 作为参数,此参数是一个预定义的变量,执行 KeyPress 事件过程时,KeyAscii 是所按键的 ASCII 码。 73.在一个工程中有两个窗体,窗体 Form1 上有一个命令按钮 Disp,单击该按钮,Form1 窗体 隐藏,显示Form2 窗体,程序如下,请补充完整。 Private Sub Disp_Click1 MeHide Form2. 2 End Sub (分数:1
31、.50)填空项 1:_ (正确答案:Show)解析:解答此题首先要了解以下方法: Show 方法:将窗体加载到内存并显示。 Hide 方法:将窗体加载到内存并隐藏。 所以本题中,可以用 Hide 方法使 Forml 窗体隐藏;用 Show 方法显示窗体。 74.下列事件过程的功能是:通过 Form _ Load 事件给数组赋初值为 35、48、15、22、67,Form_ Click事件找出可以被 3 整除的数组元素并打印出来。请在空白处填入适当的内容,将程序补充完整。 Dim Arr 1 Private Sub Form _ Load2 3 End Sub Private Sub Form
32、_ Click4 5 If Int(x/3)=x/3 Then Print x End If Next x End Sub (分数:1.50)填空项 1:_ (正确答案:Arc=Array(35,48,15,22,67))解析:Form _ Load 事件给数组赋初值,且限定只能用一条语句完成,显然只能用 Array 函数给数组赋值了。Form _ Click 事件是打印出数组中能被 3 整除的数,程序中只有“Next x”语句,没有与之对应的For 语句。循环体是对数组元素进行处理,但循环体中又没有出现表示数组元素的下标变量,由此判断出应该用 For Each 语句。75.在一个工程中有两个
33、窗体,窗体 Form1 上有一个命令按钮 Disp,单击该按钮,Form1 窗体 隐藏,显示Form2 窗体,程序如下,请补充完整。 Private Sub Disp_Click1 MeHide Form2. 2 End Sub (分数:1.50)填空项 1:_ (正确答案:Show)解析:解答此题首先要了解以下方法: Show 方法:将窗体加载到内存并显示。 Hide 方法:将窗体加载到内存并隐藏。 所以本题中,可以用 Hide 方法使 Forml 窗体隐藏;用 Show 方法显示窗体。 76. 1 的任务是诊断和改正程序中的错误。(分数:1.50)填空项 1:_ (正确答案:程序调试)解析
34、:在完成对程序的测试之后将进行程序调试。程序调试的任务是诊断和改正程序中的错误。77.新建一个工程,内有两个窗体,窗体 Form1 上有一个命令按钮 Command1,单击该按钮, Form1 窗体消失,显示 Form2 窗体,程序如下: Private Sub Command1_Click1 2 Form2 3 End Sub 试补充完整。 (分数:1.50)填空项 1:_ (正确答案:MeHide 或者 Form1Hide 或者 Unload)填空项 1:_ (正确答案:Me)解析:解答此题首先要了解以下方法: Show 方法:将窗体加载到内存并显示。 Hide 方法:将窗体加载到内存并隐
35、藏。 Load 语句:加载窗体到内存。 Unload 语句:从内存卸载窗体,Unload Me 卸载本窗体。所以本题中,可以用 Hide 方法,也可以用 Unload 语句使 Form1 窗体消失;用 Show 方法显示窗体。 78.在窗体上画一个名称为 Combo1 的组合框,然后画两个名称分别为 Labe1、Label2,标题分别为“城市名称“和空白的标签。程序运行后,在组合框中输入一个新项目并按回车键,如果输入的项目在组合框的列表中不存在,则自动将其添加到组合框的列表中,并在 Label2 中给出提示“已成功添加新输入项。“,如图所示。如果输入的项目已存在,则在 Label2 中给出提示
36、“输入项已在组合框中。“。 (分数:1.50)填空项 1:_ (正确答案:Combo1.1,ist(i),AddItem)解析:组合框中的 List 属性用来列出表项的内容。该属性保存了列表框中所有数组的值,可以通过下标访问数组中的值(下标从 0 开始),其格式为:组合框.“St(下标),特别注意的是“下标“相当于索引值,指示着表项中某一项表中内容的位置,第一项的索引值为 0,第二项为 1,依此类推,这个参数非常重要不可省略。此题循环变量 i 从 0 开始循环直至组合框中总的表项数,不难理解这相当于上面提到的下标参数。组合框的 AddItem 方法用于在组合框中插入一行文本,其格式为:组合框.
37、AddItem 项目字符串,索引值。79.下面程序是用来打印九九乘法表的,请补充完整。 Dim i As Integer,j As Integer,Strl$ Strl=“ “ For i=1 To 9 Forj=1 To 9 If 1 Then Strl=Strl + Str$(j)+“X“+Str$(i)+“=“+Str$(Val(i * j) Else Strl=Strl & Chr(13) 2 End If Next j Next i Print Str (分数:1.50)填空项 1:_ (正确答案:j=i)解析:Exit 语句总是出现在 If 语句或 Select Case 语句内部
38、,而 If 语句或 Select Case 语句在循环内嵌套,用 Exit 语句中断循环。函数首先定义了两个 Integer 型变量 i、 j,并将空格赋给 Strl;第一个For 循环的变量 I 从 1 到 9 步长为 1,第二个循环的变量 i 也是从 1 到 9 步长为 l,循环体为选择结构,它是用来输出 i*j 的值,所以 j 的值应该小于此时 i 的值,那么 If 的判断语句为 j=i,当满足条件时执行 Then 后面的语句,即输出 i*j 的值,如果不满足执行 Else 后面的语句,并跳出内循环。80.在窗体上画一个名称为 Text1 的文本框,然后画三个单选按钮,并用这三个单选按钮建立一个控件数组,名称为 Option1,程序运行后,如果单击某个单选按钮,则文本框中的字体将根据所选择的单选按钮切换,如图所示,请填空。 (分数:1.50)填空项 1:_ (正确答案:index)解析: