1、二级 VISUAL+BASIC 笔试-74 及答案解析(总分:76.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.下列叙述中正确的是(分数:2.00)A.在窗体的 Form Load 事件过程中定义的变量是全局变量B.局部变量的作用域可以超出所定义的过程C.在某个 Sub 过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但其作用域只限于该过程D.在调用过程时,所有局部变量被系统初始化为 0 或空字符串2.设有如下程序:Option Base 0Private Sub Form Click()Dim aDim i As Integera = Array(
2、1, 2, 3, 4, 5, 6, 7, 8, 9)For i = 0 To 3Print a(5 - i);NextEnd Sub程序运行后,单击窗体,则在窗体上显示的是(分数:2.00)A.4 3 21B.543 2C.6 54 3D.7 6 543.设有语句Open “c:/Test.Dat“ For Output As #1“则以下叙述错误的是(分数:2.00)A.该语句打开 C 盘根目录下一个已存在的文件 Test.DatB.该语句在 C 盘根目录下建立一个名为 Test.Dat 的文件C.该语句建立的文件的文件号为 1D.执行该语句后,就可以通过 Print#语句向文件 Test.
3、Dat 中写入信息4.以下叙述中错误的是(分数:2.00)A.下拉式菜单和弹出式菜单都用菜单编辑器建立B.在多窗体程序中,每个窗体都可以建立自己的菜单系统C.除分隔线外,所有菜单项都能接收 Click 事件D.如果把一个菜单项的 Enabled 属性设置为 False,则该菜单项不可见5.执行以下程序段Dim x As Integer, i As Integerx=0For i=20 To Step -2x=x+i/5Next i后,x 的值为(分数:2.00)A.16B.17C.18D.196.在窗体上画三个单选按钮,组成一个名为 chkOption 的控件数组。用于标识各个控件数组元素的参
4、数是(分数:2.00)A.TagB.IndexC.ListlndexD.Name7.以下关于窗体的描述中,错误的是(分数:2.00)A.执行 UnLoadForml 语句后,窗体 Forml 消失,但仍在内存中B.窗体的 Load 事件在加载窗体时发生C.当窗体的 Enabled 属性为 False 时,通过鼠标和键盘对窗体的操作都被禁止D.窗体的 Height、Width 属性用于设置窗体的高和宽8.下列叙述中正确的是(分数:2.00)A.软件交付使用后还需要进行维护B.软件一旦交付使用就不需要再进行维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令9.假定有如下事
5、件过程:Privte Sub Form_Click()Dim x As Integer,n As Integerx=1n=0Do While x28x=x*3n=n+1LoopPrint x,nEnd Sub程序运行后,单击窗体,输出结果是(分数:2.00)A.81 4B.56 3C.28 1D.243 510.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下程序:Private Sub Command1_Click()Static X As IntegerStatic Y As IntegerClsY = 1Y = Y + 5X = 5 + XPrint X, YEnd Su
6、b程序运行时,三次单击命令按钮 Commandl 后,窗体上显示的结果为(分数:2.00)A.15 16B.15 6C.15 15D.5 611.在窗体上画一个名称为 Command1 的命令按钮和两个名称分别为 Text1、Text2 的文本框,然后编写如下事件过程:Private Sub Command1_Click()n = Text1.TextSelect Case nCase 1 To 20x = 10Case 2, 4, 6x = 20Case Is 10x = 30Case 10x = 40End SelectText2.Text = xEnd Sub程序运行后,如果在文本框 T
7、ext1 中输入 10,然后单击命令按钮,则在 Text2 中显示的内容是(分数:2.00)A.10B.20C.30D.4012.代数|3e+lgx+arctgy|对应的 Visual Basic 表达式是(分数:2.00)A.Abs(e3+Lg(x)+L/Tg(y) )B.Abs(Exp(3)+Log(x)/Log(10)+Atn(y)C.Abs(Exp(3)+Log(x)+Atn(y) )D.Abs(Exp(3)+Log(x)+1/Atn(y) )13.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()x =
8、0n=InputBox(“ “)For i = 1 To nFor j=1 To ix = x + 1Next iNext iPrint xEnd Sub程序运行后,单击命令按钮,如果输入 3,则在窗体上显示的内容是(分数:2.00)A.3B.4C.5D.614.设有如下关系表:(分数:2.00)A.B.C.D.15.在窗体上面一个名称为 Commandl 的命令按钮,然后编写如下程序:Option.Base 1Private Sub Command1_Click()Dim a As Varianta=Array(1,2,3,4,5)Sum = 0For i = 1 To 5Sum=Sum+a
9、(i)Next ix=Sum/5For i=1 To 5If a(i) x Then Print a(i);Next iEnd Sub程序运行后,单击命令按钮,在窗体上显示的内容是(分数:2.00)A.1 2B.1 2 3C.3 4 5D.4 516.设有如下通用过程:Public Sub Fun(a(), ByVal x As Integer)For i=1 To 5x = x + a(i)NextEnd Sub在窗体上画一个名称为 Text1 的文本框和一个名称为 Command1 的命令按钮,然后编写如下的事件过程:Private Sub Commandl Click()Dim arr(
10、5) As VariantFor i=1 To 5arr(i) =iNextn = 10Call Fun(arr(), n)Text1.Text=nEnd Sub程序运行后,单击命令按钮,则在文本框中显示的内容是(分数:2.00)A.10B.15C.25D.2417.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下通用过程和命令按钮的事件过程:Private Function f(m As Integer)If m Mod 2 = 0 Thenf = mElsef = 1 End IfEnd FunctionPrivate Sub Commandl Click()Dim i A
11、s IntegerS = 0For i=1 To 5s = s + f(i)NextPrint sEnd Sub程序运行后,单击命令按钮,在窗体上显示的是(分数:2.00)A.11B.10C.9D.818.阅读下面的程序段:For i=1 To 3For j=i To 3For k= 1 To 3a=a+iNext kNext jNext i执行上面的 3 重循环后,a 的值为(分数:2.00)A.3B.9C.14D.3019.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下代码:Option Base 1Prirate Sub Command1 Click()d = 0c =
12、 10x=Array(10, 12, 21, 32,24)For i=1 To 5If x(i) c Thend = d + x(i)c = x(i)Elsed = d - cEnd IfNext iPrint dEnd Sub程序运行后,如果单击命令按钮,则在窗体上输出的内容为(分数:2.00)A.89B.99C.23D.7720.窗体的 MouseDown 事件过程Form MouseDown (Button As Integer,Shift As Integer,X As Single,Y As Single)有 4 个参数,关于这些参数,正确的描述是(分数:2.00)A.通过 Butt
13、on 参数判定当前按下的是哪一个鼠标键B.Shift 参数只能用来确定是否按下 Shift 键C.Shift 参数只能用来确定是否按下 Alt 和 Ctrl 键D.参数 X、Y 用来设置鼠标当前位置的坐标21.编写了如下事件过程:Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)If(Button And 3)=3 ThenPrint “AAAA“End IfEnd Sub程序运行后,为了在窗体上输出“AAAA“,应按下的鼠标键是(分数:2.00)A.左B.右C.同时按下左和右D.按鼠标键没有反应22.在窗体上有一个文本框
14、控件,名称为 TxtTime;一个计时器控件,名称为 Timer1,要求每一秒钟在文本框中显示一次当前的时间。程序为:Private Sub Timerl _TxtTime.text=TimeEnd Sub在下划线上应填入的内容是(分数:2.00)A.EnabledB.VisibleC.IntervalD.Timer23.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下事件过程:Private Sub Command1 Click()Move 500,500End Sub程序运行后,单击命令按钮,执行的操作为(分数:2.00)A.命令按钮移动到距窗体左边界、上边界各 500 的
15、位置B.窗体移动到距屏幕左边界、上边界各 500 的位置C.命令按钮向左、上方向各移动 500D.窗体向左、上方向各移动 50024.假定窗体上有一个文本框,名为 txtl,为了使该文本框的内容能够换行,并且具有垂直滚动条,没有水平滚动条正确的属性设置为(分数:2.00)A.Txtl.MultiLine=TrueTxtl.ScrollBars=0B.Txtl.MultiLine=TrueTxtl.ScrollBars=2C.Txtl.MulfiLine=FalseTxtl.ScrollBars=0D.Txtl.MultiLine=FalseTxtl.ScrollBars=325.函数 Stri
16、ng(n,“str“)的功能是(分数:2.00)A.把数值型数据转换为字符串B.返回由 n 个字符组成的字符串C.从字符串中取出 n 个字符D.从字符串中第 n 个字符的位置开始取子字符串26.编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在选择标识符的名字时应考虑(分数:2.00)A.名字长度越短越好,以减少源程序的输入量B.多个变量共用一个名字,以减少变量名的数目C.选择含义明确的名字,以正确提示所代表的实体D.尽量用关键字作名字,以使名字标准化27.下面程序运行时,内层循环的循环总次数是For M=1 To 3For N=0 To M-1Next NNext M
17、(分数:2.00)A.6B.5C.3D.428.以下定义数组或给数组元素赋值的语句中,正确的是(分数:2.00)A.Dim a As Varianta=Array(1,2,3,4,5)B.Dim a (10) As Integera=Array(1,2,3,4,5)C.Dim a%(10)a(1)=“ABCDE“D.Dim a (3),b(3) As Integera(0)=0a(1)=1a(2)=2b=a29.在窗体上画一个名称为 Labell、标题为“ViSBalBasic 考试”的标签,两个名称分别为 Command1 和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一
18、个名称为 Timer1 的计时器控件,并把其 Interval 属性设置为 500,如图所示。(分数:2.00)A.B.C.D.30.下列模式中,能够给出数据库物理存储结构与物理存取方法的是(分数:2.00)A.内模式B.外模式C.概念模式D.逻辑模式二、填空题(总题数:8,分数:16.00)31.在窗体上画两个标签,其名称分别为 Label1 和 Label2,Caption 属性分别为“数值”及空白;然后画_个名称为 Hscrolll 的水平滚动条,其 Min 的值为 0,Max 的值为 100。程序运行后,如果单击滚动条两端的箭头,则在标签 Label2 中显示滚动条的值,如图所示。请在
19、_处填入适当的内容,将程序补充完整。(分数:2.00)填空项 1:_32.把窗体的 KeyPreview 属性设置为 True,然后编写如下两个事件过程:Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)Print Chr(KeyCode)End SubPrivate Sub Form KeyPress(KeyAscii As Integer)Print Chr(KeyAscii)End Sub程序运行后,如果直接按键盘上的“A”键(即不按住 Shift 键),则在窗体上输出的字符分别是_和_。(分数:2.00)填空项 1
20、:_33.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。(分数:2.00)填空项 1:_34.标准模块和窗体模块的功能是计算和打印两个复数之和,在横线上填上适当内容。标准模块_。Type compre As Singleim As SingleEnd TypePublic C As comp窗体模块Private Sub Commandl_Click()Dim a As comp,b As comp a.re=InputBox(“输入 a 的实部”)a.im=InputBox(“输入 a 的虚部”) b.re=InputBox(“输入 b 的实部”)b.im=InputBox(“输入
21、 b 的虚部”)_Print “c“=“; c.re; “+“;c.im; “i“End SubPrivate Sub s(_)c.re = r1.re + r2.rec.im = r1.im + r2.imEnd Sub(分数:2.00)填空项 1:_35.在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为 Textl、Labell 和 Commandl,然后编写如下两个事件过程:Private Sub Commandl_Click()S$=InputBox(“请输入一个字符串”)Textl.Text=S$End SubPrivate Sub Text1_Change()Labell
22、.Caption=UCase(Mid(Text1.Text,7)End Sub程序运行后,单击命令按钮,将显示一个输入对话框,如果在该对话框中输入字符串“VisualBasic“,则在标签中显示的内容是_。(分数:2.00)填空项 1:_36.在窗体上画一个列表框、一个命令按钮和一个标签,其名称分别为 Listl、Commandl 和 Labell,通过属性窗口把列表框中的项目设置为:“第一个项目”、“第二个项目”、“第三个项目”、“第四个项目”。程序运行后,在列表框中选择一个项目,然后单击命令按钮,即可将所选择的项目删除,并在标签中显示列表框当前的项目数,运行情况如下图所示(选择“第三个项目
23、”的情况)。下面是实现上述功能的程序,请填空。(分数:2.00)填空项 1:_37.设有如下程序Option Base 1Private Sub Command1_Click()Dim arrlDim Min As Integer,i As Integerarrl=Array(12,435,76,-24,78,54, 866, 43)Min=_For i=2 To 8If arrl(i)Min ThenNext iPrint “最小值是:”;MinEnd Sub以上程序的功能是:用 Arcay 函数建立一个含有 8 个元素的数组,然后查找并输出该数组中各元素的最小值。请填空。(分数:2.00)
24、填空项 1:_38.在窗体上画一个名称为 Lablel 的标签和一个名称为 Listl 的列表框。程序运行后,在列表框中添加若干列表项。当双击列表框中的某个项目时,在标签 Labell 中显示所选中的项目,如图所示。请在_处填入适当的内容,将程序补充完整。(分数:2.00)填空项 1:_二级 VISUAL+BASIC 笔试-74 答案解析(总分:76.00,做题时间:90 分钟)一、选择题(总题数:30,分数:60.00)1.下列叙述中正确的是(分数:2.00)A.在窗体的 Form Load 事件过程中定义的变量是全局变量B.局部变量的作用域可以超出所定义的过程C.在某个 Sub 过程中定义
25、的局部变量可以与其他事件过程中定义的局部变量同名,但其作用域只限于该过程 D.在调用过程时,所有局部变量被系统初始化为 0 或空字符串解析:解析 本题考查局部变量与全局变量。在事件过程中定义的变量都不是全局变量,故 A 项表述错误。局部变量的作用域仅限于所定义的过程,故 B 项叙述不正确。在 Sub 过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但其作用域只限于该过程,不能在其他过程中被调用,C 项表述正确。在调用过程时,如果局部变量用 Static 关键字定义,就不会被初始化为 0 或空字符串,D 项表述错误。2.设有如下程序:Option Base 0Private Sub
26、Form Click()Dim aDim i As Integera = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)For i = 0 To 3Print a(5 - i);NextEnd Sub程序运行后,单击窗体,则在窗体上显示的是(分数:2.00)A.4 3 21B.543 2C.6 54 3 D.7 6 54解析:解析 本题综合考查 For 循环控制语句与用 Array 函数为数组进行初始赋值注意,由于“Option Base 0”,故数组的下标下界为 0,所以 a(5)应该是数组 a 的第六个元素“6”,以此类推,可知正确答案为 C。3.设有语句Open “c:
27、/Test.Dat“ For Output As #1“则以下叙述错误的是(分数:2.00)A.该语句打开 C 盘根目录下一个已存在的文件 Test.Dat B.该语句在 C 盘根目录下建立一个名为 Test.Dat 的文件C.该语句建立的文件的文件号为 1D.执行该语句后,就可以通过 Print#语句向文件 Test.Dat 中写入信息解析:解析 本题考查文件的打开与建立。Open 语句兼有打开文件和建立文件两种功能。如果以输出方式(Output)打开的文件不存在,则 Visual Basic 会建立相应的文件故本题有误的选项是 A。4.以下叙述中错误的是(分数:2.00)A.下拉式菜单和弹
28、出式菜单都用菜单编辑器建立B.在多窗体程序中,每个窗体都可以建立自己的菜单系统C.除分隔线外,所有菜单项都能接收 Click 事件D.如果把一个菜单项的 Enabled 属性设置为 False,则该菜单项不可见 解析:解析 下拉式菜单与弹出式菜单都用菜单编辑器建立,不同的是,弹出式菜单还需要用PopupMenu 方法激活。答案 A 表述正确。在多重窗体程序中,每个窗体都可以建立自己的菜单,答案 B 也是正确的。菜单中,除了分隔线外,所有菜单项都能接收 Click 事件,选项 C 表述正确。选项 D 处犯了一个典型的错误,就是没有区别 Visible 属性与 Enabled 属性。前者表示该菜单
29、项不可见,或者表示该菜单项功能失效,此时显示为灰色。故本题选择 D 项。5.执行以下程序段Dim x As Integer, i As Integerx=0For i=20 To Step -2x=x+i/5Next i后,x 的值为(分数:2.00)A.16B.17C.18 D.19解析:解析 本题考查 For 循环结构。For 循环是最基本的循环语句,一般格式为:For 循环变量=初值 To 终值 Step 步长,步长省略时默认为 1。在本题考生应该注意 i/5 的值,“/”是整除,而不是四舍五入。第 1 次循环,i=20,i/5=4,第 2 次循环,i=18,i/5=3 而不是 4,第
30、3 次循环 i=16, i/5=3,依次类推,最后结果是 18,选项 C 正确6.在窗体上画三个单选按钮,组成一个名为 chkOption 的控件数组。用于标识各个控件数组元素的参数是(分数:2.00)A.TagB.Index C.ListlndexD.Name解析:解析 主要考查控件数组的标识。控件数组由于有相同的 Name 属性,故可以通过 Index 作为下标访问不同的控件。故本题选 B。7.以下关于窗体的描述中,错误的是(分数:2.00)A.执行 UnLoadForml 语句后,窗体 Forml 消失,但仍在内存中 B.窗体的 Load 事件在加载窗体时发生C.当窗体的 Enabled
31、 属性为 False 时,通过鼠标和键盘对窗体的操作都被禁止D.窗体的 Height、Width 属性用于设置窗体的高和宽解析:解析 本题考查窗体的方法与属性。在执行 UnLoadForm1 语句后,窗体 Form1 从内存中卸载,并从屏幕中消失。只有在执行 Hide 方法时,Form1 才会消失但仍在内存中,故选择 A。8.下列叙述中正确的是(分数:2.00)A.软件交付使用后还需要进行维护 B.软件一旦交付使用就不需要再进行维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令解析:解析 维护是软件生命周期的最后。一个阶段,也是持续时间最长、付出代价最大的阶段,在软件
32、交付使用后,还需要进行维护。软件维护通常有以下四类:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。综上所述,本题的正确答案是 A,其余选项的说法错误。9.假定有如下事件过程:Privte Sub Form_Click()Dim x As Integer,n As Integerx=1n=0Do While x28x=x*3n=n+1LoopPrint x,nEnd Sub程序运行后,单击窗体,输出结果是(分数:2.00)A.81 4 B.56
33、 3C.28 1D.243 5解析:解析 本题考查 DoLoop 循环控制结构。DoLoop 循环控制结构是考试重点内容,历次考试都会有至少 2 个题目涉及该知识点,务必掌握。题目非常简单,目的是对 x 进行一定的计算,同时输出循环次数。x 初值为 1,满足条件,执行后面语句,当 x=27,n=3 时,继续执行循环,执行 x=x*3,后,x为 81,n=4,已经不满足条件,循环结束。所以最后的结果 x=81,n=4,选项 A正确。10.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下程序:Private Sub Command1_Click()Static X As Integ
34、erStatic Y As IntegerClsY = 1Y = Y + 5X = 5 + XPrint X, YEnd Sub程序运行时,三次单击命令按钮 Commandl 后,窗体上显示的结果为(分数:2.00)A.15 16B.15 6 C.15 15D.5 6解析:解析 本题考查 Static 的用法。Static 用于在过程中定义静态变量及数组变量。与 Dim 不同,如果用 Static 定义了一个变量,则每次引用该变量时,其值都会继续保留本题中,三次单击命令按钮意味着每次 Y 值加 5,X 值也加 5。由于在事件过程中事先给 Y 赋值 1,所以每次单击按钮,Y 值都被初始化为 1,
35、但 X 继续保留上次的值,即在第三次单击命令按钮时,X 连加了 3 次 5, Y 值为 1 加 5,故正确选项为 D。11.在窗体上画一个名称为 Command1 的命令按钮和两个名称分别为 Text1、Text2 的文本框,然后编写如下事件过程:Private Sub Command1_Click()n = Text1.TextSelect Case nCase 1 To 20x = 10Case 2, 4, 6x = 20Case Is 10x = 30Case 10x = 40End SelectText2.Text = xEnd Sub程序运行后,如果在文本框 Text1 中输入 10
36、,然后单击命令按钮,则在 Text2 中显示的内容是(分数:2.00)A.10 B.20C.30D.40解析:解析 本题为一简单的多分支控制结构语句。Case 语句的表达式有三种形式,一种为“表达式(,表达式)”;一种为“表达式 To 表达式”;还有一种比较特殊,为 Is 关系运算表达式。三者可以混用。由于在 Text1 中输入 10,满足“Case 1 To 20”的条件,故执行“x=10”的语句。最终 Text2 的Text 属性值为 10,故正确答案为 A。12.代数|3e+lgx+arctgy|对应的 Visual Basic 表达式是(分数:2.00)A.Abs(e3+Lg(x)+L
37、/Tg(y) )B.Abs(Exp(3)+Log(x)/Log(10)+Atn(y) C.Abs(Exp(3)+Log(x)+Atn(y) )D.Abs(Exp(3)+Log(x)+1/Atn(y) )解析:解析 本题考查 Visual Basic 内部数学函数。Visual Basic 有它自己的一套数学符号,编程时要遵守这套规则,否则系统将无法编译程序。本题中绝对值用 Abs 表示;3e 用 Exp(3)表示。由于 Visual Basic 没有提供与 lg 对应的函数,故 lgx 表示为 Log(x)/Log(10),arctg 用 Atn 表示。故答案为 B。13.在窗体上画一个名称为
38、 Commandl 的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()x = 0n=InputBox(“ “)For i = 1 To nFor j=1 To ix = x + 1Next iNext iPrint xEnd Sub程序运行后,单击命令按钮,如果输入 3,则在窗体上显示的内容是(分数:2.00)A.3B.4C.5D.6 解析:解析 本题考查 For 循环控制语句的嵌套。当输入 3 时,For i 执行三次,对应的 Forj 循环执行一次,二次、三次,Forj 每执行一次,x 都加 1,故最终结果为 6,选 D。14.设有如下关系表:(分数
39、:2.00)A.B. C.D.解析:解析 选项 A、B、C 分别进行交运算、并运算、笛卡尔积运算,选项 D 不是关系运算。T 由属于关系 R 以及关系 S 的元组组成,简单来说,就是 S 和 R 的元组之和,是并运算,选项 B 正确。15.在窗体上面一个名称为 Commandl 的命令按钮,然后编写如下程序:Option.Base 1Private Sub Command1_Click()Dim a As Varianta=Array(1,2,3,4,5)Sum = 0For i = 1 To 5Sum=Sum+a(i)Next ix=Sum/5For i=1 To 5If a(i) x Th
40、en Print a(i);Next iEnd Sub程序运行后,单击命令按钮,在窗体上显示的内容是(分数:2.00)A.1 2B.1 2 3C.3 4 5D.4 5 解析:解析 本题主要考查考生对程序代码的阅读理解能力。用 Array 函数为数组 a(5)赋值,其元素分别为 1、2、3、4、5。第一个 For i 循环把 a(i)数组中的元素逐个加到变量 Sum 上,然后求出 Sum 浮点除5 的结果(为 3),赋值给变量 x。第二个 Fori 循环表示当 a(i)大于 3 时,则用 Print 语句输出该元素。据此,正确答案为 D。16.设有如下通用过程:Public Sub Fun(a(
41、), ByVal x As Integer)For i=1 To 5x = x + a(i)NextEnd Sub在窗体上画一个名称为 Text1 的文本框和一个名称为 Command1 的命令按钮,然后编写如下的事件过程:Private Sub Commandl Click()Dim arr(5) As VariantFor i=1 To 5arr(i) =iNextn = 10Call Fun(arr(), n)Text1.Text=nEnd Sub程序运行后,单击命令按钮,则在文本框中显示的内容是(分数:2.00)A.10 B.15C.25D.24解析:解析 本题主要考查传值与传地址的区
42、别。Fun 过程中参数 a()的传送方式为传地址,参数 x 的传送方式为传值。当在 Command1 的 Click 事件过程调用该过程时,变量仅仅复制了一个变量副本传送给Fun 过程,而它自己本身并没有发生变化所以当调用完毕 Fun 过程后,再将 n 值赋给 Textl 的 Text 属性时,文本框中显示的内容仍为 10。正确答案为 A。17.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下通用过程和命令按钮的事件过程:Private Function f(m As Integer)If m Mod 2 = 0 Thenf = mElsef = 1 End IfEnd Fun
43、ctionPrivate Sub Commandl Click()Dim i As IntegerS = 0For i=1 To 5s = s + f(i)NextPrint sEnd Sub程序运行后,单击命令按钮,在窗体上显示的是(分数:2.00)A.11B.10C.9 D.8解析:解析 本题考查 Function 函数过程的建立与调用。f 函数过程令参数 m 在是 2 的倍数的情况下返回 m 值,在 m 不是 2 的倍数的情况下,返回 1。在 For 循环中调用,此过程,执行五次循环,i 值分别为1,2、3、4、5。当 i 为 2、4 的时候,f(i)值为 2、4,其他情况下为 1,故
44、s 值为 1+1+1+2+4=9,正确答案为 C。18.阅读下面的程序段:For i=1 To 3For j=i To 3For k= 1 To 3a=a+iNext kNext jNext i执行上面的 3 重循环后,a 的值为(分数:2.00)A.3B.9C.14D.30 解析:解析 本题考查 For 循环的嵌套。对于多重 For 循环,解题的关键是确定循环的次数。本题的Forj 循环初值是 i 变量,所以要考虑 i 数值变化对循环次数的影响。当 For i 循环执行 3 次时,对应的For。i 循环初值分别是 1,2,3。所以本题的三重循环总共执行了 18 次。前 9 次,a 值每次加
45、1;中间 6次,a 值每次加 2;最后 3 次,a 值每次加 3故结果为 30,答案为 D。19.在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下代码:Option Base 1Prirate Sub Command1 Click()d = 0c = 10x=Array(10, 12, 21, 32,24)For i=1 To 5If x(i) c Thend = d + x(i)c = x(i)Elsed = d - cEnd IfNext iPrint dEnd Sub程序运行后,如果单击命令按钮,则在窗体上输出的内容为(分数:2.00)A.89B.99C.23 D.77解
46、析:解析 本题考查 For 循环控制语句。首先使用 Array 为数组 x 赋值。For 循环表示当 x(i)值大于c 时就执行:d=d+x(i)c=x(i)表示如果 x(i)c 则令 d 加 x(i),并且赋 x(i)给变量 c。否则,执行 d=d-c 语句要注意 c 的值在不断发生变化,根据题意,最终答案为 C。20.窗体的 MouseDown 事件过程Form MouseDown (Button As Integer,Shift As Integer,X As Single,Y As Single)有 4 个参数,关于这些参数,正确的描述是(分数:2.00)A.通过 Button 参数判
47、定当前按下的是哪一个鼠标键 B.Shift 参数只能用来确定是否按下 Shift 键C.Shift 参数只能用来确定是否按下 Alt 和 Ctrl 键D.参数 X、Y 用来设置鼠标当前位置的坐标解析:解析 本题考查 MouseDown 事件过程的 4 个参数。Button 参数用来判定当前按下的是哪一个鼠标键。Button 值为 1 时表示按下左键;为 2 时,表示按下右键;为 4 时,表示按下中间键故 A 项是正确的。Shift 参数用来判断 Shift、 Ctrl 和 Alt 键的状态,故 B、C 项说法有误。X、Y 参数用来获取鼠标的位置,而不是设置鼠标当前的位置,两者有根本的区别,考生
48、应予以关注,D 项说法错误。21.编写了如下事件过程:Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)If(Button And 3)=3 ThenPrint “AAAA“End IfEnd Sub程序运行后,为了在窗体上输出“AAAA“,应按下的鼠标键是(分数:2.00)A.左B.右C.同时按下左和右D.按鼠标键没有反应 解析:解析 本题表明考查考生对鼠标键的理解,实际上设置了一个陷阱,即该事件过程响应的是KeyDown 事件,按下鼠标键,不会调动该事件过程,故选 D。另外,值得一提的是,(Button And 3)=
49、3 表示同时按下鼠标左右键。22.在窗体上有一个文本框控件,名称为 TxtTime;一个计时器控件,名称为 Timer1,要求每一秒钟在文本框中显示一次当前的时间。程序为:Private Sub Timerl _TxtTime.text=TimeEnd Sub在下划线上应填入的内容是(分数:2.00)A.EnabledB.VisibleC.IntervalD.Timer 解析:解析 对于一个含有计时器控件的窗体,每经过一段由属性 Interval 指定的时间间隔,就能触发一次。Timer 事件,通过这种方法,可以获取系统的时间,故本题选择 D 项。C 项 Interval 属性用来设置计时器事件的时
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1