1、二级 VISUAL+BASIC 笔试-254 及答案解析(总分:80.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.在窗体上画一个命令按钮,名称为 Commandl,然后编写如下事件过程Option Base 0Private Sub Command1_ClickDim city As Variantcity=Array(“北京”,“上海”,“天津”,“重庆”)Print city(1)End Sub程序运行后,如果单击命令按钮,则在窗体上显示的内容是(分数:2.00)A.空白B.错误提示C.北京D.上海2.以下叙述中错误的是(分数:2.00)A.双击鼠标可以触发
2、 DblClick 事件B.窗体或控件的事件的名称可以由编程人员确定C.移动鼠标时,会触发 MouseMove 事件D.控件的名称可以由编程人员设定3.以下叙述中错误的是(分数:2.00)A.在同一窗体的菜单项中,不允许出现标题相同的菜单项B.在菜单的标题栏中,“&”所引导的字母指明了访问该菜单项的访问键C.程序运行过程中,可以重新设置菜单的 Visible 属性D.弹出式菜单也在菜单编辑器中定义4.设 a=“Microsoft Visual Basic“,则以下使变量 b 的值为 Visual Basic 的语句是(分数:2.00)A.b=LeR(a,10)B.b=Mid(a,10)C.b=
3、Right(a,10)D.b=Mid(a,11,10)5.程序运行后,在窗体上单击鼠标,此时窗体不会接收到的事件是(分数:2.00)A.MouseDownB.MouseUpC.LoadD.Click6.在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()a$=“321“:b$=“abc“For j=1 To 5Print Mid$(a$,6 -j,1)+Mid$(b$,j,1);Next iEnd Sub程序运行后,输出的结果是;(分数:2.00)A.a1b2c3B.ab1c23C.c1b2a3D.a12bc17.以下关于焦点的叙述中,错误的是
4、(分数:2.00)A.如果文本框的 TabStop 属性为 False,则不能接收从键盘上输入的数据B.当文本框失去焦点时,触发 LostFocus 事件C.当文本框的 Enabled 属性为 False 时,其 Tab 顺序不起作用D.可以用 TabIndex 属性改变 Tab 顺序8.下列程序段的执行结果为Dim A(10, 10)For I=2 To 4For J=4 To 5A(I,J)=I*JNext JNext IPrint A(2, 5)+ A(3, 4) + A(4, 5)(分数:2.00)A.22B.42C.32D.529.在窗体上画一个名称为 Commandl 的命令按钮,
5、然后编写如下事件过程:Private Sub Command1_Click()For n = 1 To 20If n Mod 3 0 Then m = m + n / 3Next nprint nEnd Sub程序运行后,如果单击命令按钮,则窗体上显示的内容是(分数:2.00)A.15B.18C.21D.2410.用树形结构表示实体之间联系的模型是(分数:2.00)A.关系模型B.网状模型C.层次模型D.以上三个都是11.数据库系统的核心是(分数:2.00)A.数据模型B.数据库管理系统C.软件工具D.数据库12.以下关于菜单的叙述中,错误的是(分数:2.00)A.在程序运行过程中可以增加或减
6、少菜单项B.如果把一个菜单项的 Enabled 属性设置为 False,则可删除该菜单项C.弹出式菜单在菜单编辑器中设计D.利用控件数组可以实现菜单项的增加或减少13.将数学表达式 cos2(a+b)+5e2 写成 VisualBasic 的表达式,其正确的形式是(分数:2.00)A.cos(a+b)2+5*exp(2)B.cos2(a+b)+5*exp(2)C.cos(a+b)2+5*1n(2)D.cos2(a+b)+5*1n(2)14.以下数据结构中不属于线性数据结构的是(分数:2.00)A.队列B.线性表C.二叉树D.栈15.设有如下程序:Option Base 1Private Sub
7、 Command1 Click()Dim a(10) As IntegerDim n As Integern=InputBox(“输入数据”)If n 10 ThenCall,GetArray(a, n)End IfEnd SubPrivate Sub GetArray(b() As Integer, n As Integer)Dim c(10)As Integerj=0For i=1 To nb(i)=CInt(Rnd()*100)If b(i) /2 =b(i) /2 Thenj=j + 1c(j) = b(i)End IfNextPrint jEnd Sub以下叙述中错误的是(分数:2.
8、00)A.数组 b 中的偶数被保存在数组 c 中B.程序运行结束时,在窗体上显示的是 c 数组中元素的个数C.GetArray 过程的参数 n 是按值传送的D.如果输入的数据大于 10,则窗体上不显示任何信息16.下列程序段的执行结果为A=0:B=1DoA=A+BB=B+1Loop While A10Print A;B(分数:2.00)A.105B.ABC.01D.10 3017.执行语句 s=Len(Mid(“Visual Basic“,1,6)后,s 的值是(分数:2.00)A.VisualB.BasicC.6D.1118.一个工程中包含两个名称分别为 Forml、Form2 的窗体,一个
9、名称为 mdlFunc 的标准模块。假定在Forml、Form2 和 md1Func 中分别建立了自定义过程,其定义格式为:Form1 中定义的过程:Private Sub frmFunctionl().End SubForm2 中定义的过程:Public Sub frmFunction2().End Submd1Func 中定义的过程:Public Sub mdlFunction().End Sub在调用上述过程的程序中,如果不指明窗体或模块的名称,则以下叙述中正确的是(分数:2.00)A.上述三个过程都可以在工程中的任何窗体或模块中被调用B.frmFunction2 和 mdlFuncti
10、on 过程能够在工程中各个窗体或模块中被调用C.上述三个过程都只能在各自被定义的模块中调用D.只有 mdlFunction 过程能够被工程中各个窗体或模块调用19.在窗体中添加一个命令按钮(其 Name 属性为 Command1),然后编写如下代码:Option Base 1Private Sub Command1 Click()Dim aa=Array(2, 4, 6, 8)j=1For i = 4 To 1 Step -3s=s+a(i) (jj = j ( 10Next iPrint sEnd Sub运行上面的程序,单击命令按钮,其输出结果是(分数:2.00)A.22B.24C.26D.
11、2820.以下关于 KeyPress 事件过程中参数 KeyAscii 的叙述中正确的是(分数:2.00)A.KeyAscii 参数是所按键的 ASCII 码B.KeyAscii 参数的数据类型为字符串C.KeyAscii 参数可以省略D.KeyAscii 参数是所按键上标注的字符21.在窗体中添加一个名称为 Command1 的命令按钮,然后编写如下代码:Function F(a As Integer)b=0Static cb=b+1c=c+1F=a+b+cEnd FunctionPrivate Sub Command1 Click()Dim a As IntegerDim b As Int
12、egera=2For i=1 To 3b=F((分数:2.00)A.Print bNext iEnd Sub程序运行后22.假定有以下函数过程:Function Fun(S As String) As StringDim s1 As StringFor i=1 To Len(S)s1 = UCase(Mid(S, i, 1) +s1Next iFun =s1 End Function在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim Str1 As String, Str2 As StringStrl = InputBox(“请输入一个
13、字符串”)Str2=Fun(Str1)Print Str2End Sub程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”,则单击“确定”按钮后在窗体上的输出结果为,(分数:2.00)A.abcdefgB.ABCDEFGC.gfedcbaD.GFEDCBA23.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为(分数:2.00)A.log2nB.n/2C.nD.n+124.在窗体上画一个列表框和一个命令按钮,其名称分别为 List1 和 Command1,然后编写如下事件过程:Private Sub Form Load()List1.AddItem “It
14、em 1“List1.Addltem “Item 2“Listl.Addltem “Item 3“End SubPrivate Sub Command1 Click()Listl.List(Listl.ListCount)=“AAAA“End Sub程序运行后,单击命令按钮,其结果为(分数:2.00)A.把字符串“AAAA”添加到列表框中,但位置不能确定B.把字符串“AAAA”添加到列表框的最后(即“Item3”的后面)C.把列表框中原有的最后一项改为“AAAA”D.把字符串“AAAA”插入到列表框的最前面(即“Item 1”的前面)25.在窗体中添加一个名称为 Commandl 的命名按钮,
15、然后编写如下程序:Private Sub Command1 Click()Print Tab(1);“第一”Print Tab(6);“第二”End Sub程序运行后,如果单击命令按钮,在窗体上显示的内容是(口表示空格)(分数:2.00)A.第一第二B.第一第二C.第一第二D.第一第二26.以下不能在“工程资源管理器”窗口中列出的文件类型是(分数:2.00)AbasBresCfimDocx27.在窗体上画两个文本框,其名称分别为 Text1 和 Text2,然后编写如下程序:Private Sub Form_Load()ShowText1.Text=“ “Text2.Text=“Text1.S
16、etFocusEnd SubPrivate Sub Text1_Change()Text2.Text=Mid(Text1.Text,8)End Sub程序运行后,如果在文本框 Text1 中输入 BeijingChina,则在文本框 Text2 中显示的内容是(分数:2.00)A.BeijingChinaB.ChinaC.BeijingD.BeijingC28.在窗体上绘制一个名称为 Labell 的标签,然后编写如下事件过程:Private Sub Form_Click()Dim arr(10,10)As IntegerDim i As Integer,j As IntegerFor i=2
17、 To 4For j=2 To 4arr(i,j)=i*jNext iNext iLabell.Caption=Str(arr(2,2)+arr(3,3)End Sub程序运行后,单击窗体,在标签中显示的内容是(分数:2.00)A.12B.13C.14D.1529.在窗体上绘制一个名称为 Command1 的命令按钮和一个名称为 Text1 的文本框,在文本框中输入以下字符串:Microsoft Sub Command1_Click()然后编写如下事件过程:Private Sub Command1_Click()Open “d:/temp/outf.txt“ For Output As #1F
18、or i=1 To Len(Text1.Text)c=Mid(Text1.Text,i,1)If c=“A“ And c=“Z“ ThenPrint #1,LCase(c)End IfNext iCloseEnd Sub程序运行后,单击命令按钮,文件 outf.txt 中的内容是(分数:2.00)A.MVBPB.mvbpC.MVBPD.mvbp30.采用面向对象技术开发的应用系统的特点是(分数:2.00)A.重用性更强B.运行速度更快C.占用存储量小D.维护更复杂二、填空题(总题数:10,分数:20.00)31.Visual Basic 应用程序中标准模块文件的扩展名是 1。(分数:2.00)
19、填空项 1:_32.在菜单编辑器中建立一个菜单,其主菜单项的名称为 mnuEdit,Visible 属性为 False,程序运行后,如果用鼠标右键单击窗体,则弹出与 mnuEdit 对应的菜单。以下是实现上述功能的程序,请填空。Private Sub Form_ (Button As Integer, Shift As Integer,X As Single,Y As Single)If Button=2 Then_ mnuEditEnd IfEnd Sub(分数:2.00)填空项 1:_33.如果一个工人可管理多个设备,而一个设备只被一个工人管理,则实体“工人”与实体“设备”之间存在 1 的
20、联系。(分数:2.00)填空项 1:_34.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 1。(分数:2.00)填空项 1:_35.在窗体上画一个名称为 Commandl 的命令按钮和一个名称为 Text1 的文本框。程序运行后,Command1为禁用(灰色)。当向文本框中输入任何字符时,命令按钮 Command1 变为可用。请在_处填入适当的内容,将程序补充完整。Private Sub Form_Load()Command1.Enabled=FalseEnd SubPrivate Sub Text1_ _()Command1.Enabled=TrueEnd sub(分数:2.00
21、)填空项 1:_36.将 C 盘根目录下的图形文件 moon.jpg 装入图片框 Picture1 的语句是 1。(分数:2.00)填空项 1:_37.在窗体上画一个名称为 Text1 的文本框,然后画三个单选按钮,并用这三个单选按钮建立一个控件数组,名称为 Option1。程序运行后,如果单击某个单选按钮,则文本框中的字体将根据所选择的单选按钮切换,如图所示,请填空。(分数:2.00)填空项 1:_38.在窗体上画两个组合框,其名称分别为 Combo1、Combo2,然后画两个标签,名称分别为Label1、Label2,如图所示。程序运行后,如果在某个组合框中选择一个项目,则把所选中的项目在
22、其下面的标签中显示出来。请填空。(分数:2.00)填空项 1:_39.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程:Private Sub Command1 Click()n = 5f = 1s = 0For i=1 To nf = f_s = s + fNextPrint sEnd Sub该事件过程的功能是计算 (分数:2.00)填空项 1:_40.在窗体上面两个名称分别为 Command1 和 Command2、标题分别为“初始化”和“求和”的命令按钮。程序运行后,如果单击“初始化”命令按钮,则对数组 a 的各元素赋值;如果单击“求和”命令按钮,则求出数组 a
23、的各元素之和,并在文本框中显示出来,如图所示。请填空。(分数:2.00)填空项 1:_二级 VISUAL+BASIC 笔试-254 答案解析(总分:80.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.在窗体上画一个命令按钮,名称为 Commandl,然后编写如下事件过程Option Base 0Private Sub Command1_ClickDim city As Variantcity=Array(“北京”,“上海”,“天津”,“重庆”)Print city(1)End Sub程序运行后,如果单击命令按钮,则在窗体上显示的内容是(分数:2.00)A.空白B.
24、错误提示C.北京D.上海 解析:解析 本题主要考查数组的初始赋值。由于有“Option Base 0”,所以以 Array 函数赋值的数组下标下界为 0。所以 city(1)指 Array 赋给 city 的第二个元素,即“上海”,故本题选 D。2.以下叙述中错误的是(分数:2.00)A.双击鼠标可以触发 DblClick 事件B.窗体或控件的事件的名称可以由编程人员确定 C.移动鼠标时,会触发 MouseMove 事件D.控件的名称可以由编程人员设定解析:解析 本题考查事件的概念。 Visual Basic 中的事件是事先定义好的,不同的控件对应不同事件。事件名称不能由编程人员确定。故选项
25、B 的说法是错误的。但控件的名称可以由编程人员自己设定,D 项说法准确。3.以下叙述中错误的是(分数:2.00)A.在同一窗体的菜单项中,不允许出现标题相同的菜单项 B.在菜单的标题栏中,“&”所引导的字母指明了访问该菜单项的访问键C.程序运行过程中,可以重新设置菜单的 Visible 属性D.弹出式菜单也在菜单编辑器中定义解析:解析 同一窗体可以出现相同标题的菜单项,A 项表述错误。在菜单的标题栏中,“&”所引导的字母指明了访问该菜单项的访问键,一般与 Alt 键配合使用。程序运行过程中,可以通过程序代码重新设置菜单的 Visible 属性。所以 B、C 项表述正确。弹出式菜单也在菜单编辑器
26、中定义,使用时可以用PopupMenu 方法打开。4.设 a=“Microsoft Visual Basic“,则以下使变量 b 的值为 Visual Basic 的语句是(分数:2.00)A.b=LeR(a,10)B.b=Mid(a,10) C.b=Right(a,10)D.b=Mid(a,11,10)解析:解析 本题考查考生对常用字符串函数的应用能力。考生应该对 VB 中的标准函数熟练掌握。Left函数是从字符串的左边取出一个字符串,选项 A 结果是 Microsoft;Right 函数是从字符串的右边取出一个字符串,选项 C 结果是 isual Basic;Mid 函数是取出字符串一部分
27、连续字符组成新的字符串,函数形式为 Mid(String,n,m),从第 n 个字符开始,截取 m 个字符,如果略去 m 的话,则认为从第 n 个字符到字符串末尾,选项 D 结果是 VisualBasi。字符串函数是考试重点内容,也是 VB 语言的基础,考生应该熟练使用。5.程序运行后,在窗体上单击鼠标,此时窗体不会接收到的事件是(分数:2.00)A.MouseDownB.MouseUpC.Load D.Click解析:解析 本题考查鼠标事件。在窗体上单击鼠标,窗体可以接收到的事件为 MouseDown、MouseUp、Click。Load 事件是在窗体被装入内存中系统自动引发的。6.在窗体上
28、画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()a$=“321“:b$=“abc“For j=1 To 5Print Mid$(a$,6 -j,1)+Mid$(b$,j,1);Next iEnd Sub程序运行后,输出的结果是;(分数:2.00)A.a1b2c3B.ab1c23 C.c1b2a3D.a12bc1解析:解析 Mid 函数是 Visual Basic 考试的热点之一。Mid(a$,i,n)表示从字符串 a$的笫 i 个字符开始向后截取 n 个字符,据此不难看出答案为 B。注意 Print 方法后面以分号结束,意味着每执行一次For 循环
29、输出的字符都以紧凑方式与上一次 For 循环输出的字符相连。7.以下关于焦点的叙述中,错误的是(分数:2.00)A.如果文本框的 TabStop 属性为 False,则不能接收从键盘上输入的数据 B.当文本框失去焦点时,触发 LostFocus 事件C.当文本框的 Enabled 属性为 False 时,其 Tab 顺序不起作用D.可以用 TabIndex 属性改变 Tab 顺序解析:解析 本题考查焦点与 Tab 顺序。TabStop 是可获得焦点的控件都具备的属性,当设置其为 False时,控件仍保持在实际 Tab 顺序中的位置,只不过按 Tab 时会被跳过,但该控件仍可以通过键盘输入获得焦
30、点从而接受数据的输入。故 A 项说法错误。8.下列程序段的执行结果为Dim A(10, 10)For I=2 To 4For J=4 To 5A(I,J)=I*JNext JNext IPrint A(2, 5)+ A(3, 4) + A(4, 5)(分数:2.00)A.22B.42 C.32D.52解析:解析 根据题意,该二维数组的赋值方法为 A(I,J)=I(J,故 A(2,5)、A(3,4)、A(4,5)的值分别为 10、12、20。相加的结果为 42,故答案为 B。9.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下事件过程:Private Sub Command1_C
31、lick()For n = 1 To 20If n Mod 3 0 Then m = m + n / 3Next nprint nEnd Sub程序运行后,如果单击命令按钮,则窗体上显示的内容是(分数:2.00)A.15B.18C.21 D.24解析:解析 本题考查 For 循环控制语句,做好此题的关键是掌握 For 循环语句的执行过程。For 循环首先把“初值”赋给循环变量,接着检查循环变量的值是否超过终值,如果超过就停止执行循环体,跳出循环,执行 Next 后面的语句;否则执行一次循环体,然后把“循环变量+步长”的值赋给循环变量,重复上述过程。据此,如果 For 循环的终值等于初值,For
32、 循环也会执行一次循环。本题需要输出执行完 For n 循环后 n 值,应为 21。根据前述,当执行完 n=20 的循环时,n 被赋值 21,然后再取检验它是否超过了终值。故正确答案为 C。10.用树形结构表示实体之间联系的模型是(分数:2.00)A.关系模型B.网状模型C.层次模型 D.以上三个都是解析:解析 在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统 (DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是
33、C。11.数据库系统的核心是(分数:2.00)A.数据模型B.数据库管理系统 C.软件工具D.数据库解析:解析 数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,因此数据库管理系统是数据库系统的核心。12.以下关于菜单的叙述中,错误的是(分数:2.00)A.在程序运行过程中可以增加或减少菜单项B.如果把一个菜单项的 Enabled 属性设置为 False,则可删除该菜单项 C.弹出式菜单在菜单编辑器中设计D.利用控件数组可以实现菜单项的增加或减少解析:解析 主要考查菜单项的增减。在菜单设计时,如果把一个菜单项的 Enabled 属性设置为Fals
34、e,则该项菜单呈灰色,表示不可用,并非是删除该项菜单。所以本题答案为 B。13.将数学表达式 cos2(a+b)+5e2 写成 VisualBasic 的表达式,其正确的形式是(分数:2.00)A.cos(a+b)2+5*exp(2) B.cos2(a+b)+5*exp(2)C.cos(a+b)2+5*1n(2)D.cos2(a+b)+5*1n(2)解析:解析 主要考查算术运算符。有关算术运算符,历年都有相关试题。e2 在 Visual Basic 中表示为 exp(2),cos2(a+b)在 Visual Basic 中表示为 cos(a+b)2 而非 cos2(a+b),故本题选 A。14
35、.以下数据结构中不属于线性数据结构的是(分数:2.00)A.队列B.线性表C.二叉树 D.栈解析:解析 所谓的线性结构是指:如果一个非空的数据结构满足下列两个条件,即 1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件。同时满足两个条件的有队列、线性表和栈,而二叉树的结点可能存在两个后件,所以不是线性结构。15.设有如下程序:Option Base 1Private Sub Command1 Click()Dim a(10) As IntegerDim n As Integern=InputBox(“输入数据”)If n 10 ThenCall,GetArray(a, n)
36、End IfEnd SubPrivate Sub GetArray(b() As Integer, n As Integer)Dim c(10)As Integerj=0For i=1 To nb(i)=CInt(Rnd()*100)If b(i) /2 =b(i) /2 Thenj=j + 1c(j) = b(i)End IfNextPrint jEnd Sub以下叙述中错误的是(分数:2.00)A.数组 b 中的偶数被保存在数组 c 中B.程序运行结束时,在窗体上显示的是 c 数组中元素的个数C.GetArray 过程的参数 n 是按值传送的 D.如果输入的数据大于 10,则窗体上不显示任
37、何信息解析:解析 GetArray 过程返回 c 数组中元素的个数。c 数组元素由 b(i)赋值,但只有 b(i)中为偶数的元素才能赋值给 c 数组中的元素。单击按钮时,如果输入的 n 值小于 10,则调用 GetArray 过程。据此A、B、D 项都是正确的。C 项的错误比较明显,GetArray 过程的参数 n 前没有关键字“ByVal”,则默认为“ByRef”,即 n 是按传地址的方式传送参数的。16.下列程序段的执行结果为A=0:B=1DoA=A+BB=B+1Loop While A10Print A;B(分数:2.00)A.105 B.ABC.01D.10 30解析:解析 本题考查
38、Do 循环语句的同时考查了 Print 方法的应用。当 A=10 时, Do 循环终止,此时 B 值为 5,A 值为 10,同时 A 与 B 之间用分号隔开,表示用 Print 输出 A 与 B 的值时以紧凑的方式输出,故答案为 A。17.执行语句 s=Len(Mid(“Visual Basic“,1,6)后,s 的值是(分数:2.00)A.VisualB.BasicC.6 D.11解析:解析 本题考查字符串函数。 Mid(s$,i,n)表示从字符串 s$的第 i 个字符开始向后截取 n 个字符,Len(s$)返回字符串 s$的长度。本题通过 Mid 函数返回字符串 Visual,再通过 Le
39、n 函数返回字符串的个数:6。故答案为 C。18.一个工程中包含两个名称分别为 Forml、Form2 的窗体,一个名称为 mdlFunc 的标准模块。假定在Forml、Form2 和 md1Func 中分别建立了自定义过程,其定义格式为:Form1 中定义的过程:Private Sub frmFunctionl().End SubForm2 中定义的过程:Public Sub frmFunction2().End Submd1Func 中定义的过程:Public Sub mdlFunction().End Sub在调用上述过程的程序中,如果不指明窗体或模块的名称,则以下叙述中正确的是(分数:
40、2.00)A.上述三个过程都可以在工程中的任何窗体或模块中被调用B.frmFunction2 和 mdlFunction 过程能够在工程中各个窗体或模块中被调用C.上述三个过程都只能在各自被定义的模块中调用D.只有 mdlFunction 过程能够被工程中各个窗体或模块调用 解析:解析 本题考查过程的调用。只有在标准模块中用 Public 定义的 Sub 过程才能被工程中各个窗体或模块调用,故本题选 D。19.在窗体中添加一个命令按钮(其 Name 属性为 Command1),然后编写如下代码:Option Base 1Private Sub Command1 Click()Dim aa=Ar
41、ray(2, 4, 6, 8)j=1For i = 4 To 1 Step -3s=s+a(i) (jj = j ( 10Next iPrint sEnd Sub运行上面的程序,单击命令按钮,其输出结果是(分数:2.00)A.22B.24C.26D.28 解析:解析 根据题意,For 循环在 i 为 4 和 1 时分别执行 1 次 For 循环语句,第 1 次执行时 j 值为1,a(i)为 8;第 2 次执行时,j 值为 10, a(i)值为 2,故最终用 Print 输出 s 时,s 的值为 20 加 8,答案为 D。注意,本题事先声明了 Option Base 1,故数组 a 的下标下界为
42、 1。20.以下关于 KeyPress 事件过程中参数 KeyAscii 的叙述中正确的是(分数:2.00)A.KeyAscii 参数是所按键的 ASCII 码 B.KeyAscii 参数的数据类型为字符串C.KeyAscii 参数可以省略D.KeyAscii 参数是所按键上标注的字符解析:解析 本题考查对于 KeyPress 事件过程的理解。21.在窗体中添加一个名称为 Command1 的命令按钮,然后编写如下代码:Function F(a As Integer)b=0Static cb=b+1c=c+1F=a+b+cEnd FunctionPrivate Sub Command1 Cli
43、ck()Dim a As IntegerDim b As Integera=2For i=1 To 3b=F((分数:2.00)A.Print bNext iEnd Sub程序运行后解析:解析 本题综合考查了 Function 函数过程的建立与调用及 For 循环控制语句。但解题的关键是理解 Static 定义变量,使变量具有的数值存储功能。本题在 Fori 的三次循环中,每调用一次函数过程 F(a),c 的值都会在上次调用的基础上加 1, b 的数值保持不变,a 的数值也保持不变,故单击按钮时,窗体上显示的内容为 B 项内容,即数值分别为 4,5、6。22.假定有以下函数过程:Functio
44、n Fun(S As String) As StringDim s1 As StringFor i=1 To Len(S)s1 = UCase(Mid(S, i, 1) +s1Next iFun =s1 End Function在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim Str1 As String, Str2 As StringStrl = InputBox(“请输入一个字符串”)Str2=Fun(Str1)Print Str2End Sub程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”,则单击“确定
45、”按钮后在窗体上的输出结果为,(分数:2.00)A.abcdefgB.ABCDEFGC.gfedcbaD.GFEDCBA 解析:解析 本题主要考查对函数过程的调用,但关键点在于正确理解 s1=UCase(Mid (S,i,1)+s1 所表达的字符串相加顺序。当输入“abcde 龟”后,首先通过 Fori 循环语句,逐一将该字符串中的字符按照从右往左的顺序变为大写字母后相加,最终结果为 Str2=“GFEDCBA“,故选择 D 项。做本题时,很容易选 B,应加以注意。23.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为(分数:2.00)A.log2nB.n/2C.n D.n+
46、1解析:解析 在长度为 n 的线性表中进行顺序查找,最坏情况下需要比较 n 次。选项 C 正确。24.在窗体上画一个列表框和一个命令按钮,其名称分别为 List1 和 Command1,然后编写如下事件过程:Private Sub Form Load()List1.AddItem “Item 1“List1.Addltem “Item 2“Listl.Addltem “Item 3“End SubPrivate Sub Command1 Click()Listl.List(Listl.ListCount)=“AAAA“End Sub程序运行后,单击命令按钮,其结果为(分数:2.00)A.把字符
47、串“AAAA”添加到列表框中,但位置不能确定B.把字符串“AAAA”添加到列表框的最后(即“Item3”的后面) C.把列表框中原有的最后一项改为“AAAA”D.把字符串“AAAA”插入到列表框的最前面(即“Item 1”的前面)解析:解析 List 属性用来列出表项的内容,可以加下标用“()”括起来配合使用。 ListCount 是列表框一个很重要的属性,它返回列表框中表项的数量。同时还要注意列表框 ListIndex 属性值是从 0 开始,而不是从 1 开始。Listl.ListCount 返回值为 3,所以应该是插入到第 4 个位置,即选项 B 是正确的。25.在窗体中添加一个名称为 C
48、ommandl 的命名按钮,然后编写如下程序:Private Sub Command1 Click()Print Tab(1);“第一”Print Tab(6);“第二”End Sub程序运行后,如果单击命令按钮,在窗体上显示的内容是(口表示空格)(分数:2.00)A.第一第二B.第一第二C.第一第二 D.第一第二解析:解析 本题考查 Tab 函数以及 Print 方法使用。Tab(n)表示把光标移到由参数 n 指定的位置,如果当前的显示位置已经超过 n,则自动下移一行。本题由于第一个 Print 方法后接逗号,为 14 个字符的区段,所以第二个 Print 方法显示的字符串会自动换行,故答案 C。26.以下不能在“工程资源管理器”窗口中列出的文件类型是(分数:2.00)AbasBresCfimDocx 解析:解析 本题考查工程资源管理器中的文件类型,该题在历年考试中多次出现。工程资源管理器中的文件类型主要有.bas、.res、.cls、.frm、.vbg、.vbp 等 6 种,分别对应标准模块文件、资源文件、类模块文件、窗体文件、工程组文件以及工程文件,故本题选 D。27.在窗体上画两个文本框,其名称分别为 Text1 和 Text2,然后编写如下程序:Private Sub Form_Load()ShowText1.Text=“ “Te