1、二级 VISUAL+BASIC-27 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:51,分数:100.00)1.下面的数组声明语句中正确的是_。(分数:1.50)A.Dim A3,4As IntegerB.Dim A(3,4)As IntegerC.Dim A3;4As IntegerD.Dim A(3;4)As Integer2.有如下程序: Dim arr(3, 3) For j=1 To 3 For k=1 To 3 arr(j,k)=(j-1)* 3+k Next k Next j For j=2 To 3 For k=2 To 3 Print arr(k
2、, j); Next k Print Next j 运行程序后,输出的结果是_。(分数:1.50)A.25 36B.58 69C.47 58D.59 683.有如下的程序段: Dim a(4)As Integer Dim b(4)As Integer For k=0 To 2 a(k+1)=Val(InputBox(“Enter data:“) b(3-k)=a(k+1) Next k Print b(k) 程序运行后,依次输入 1、3、5,输出的结果是_。(分数:1.50)A.1B.3C.5D.04.有如下的程序段: Dim t(10) For k=2 T0 10 t(k)=10-k Nex
3、t k x=6 Print t(2+t(x) 程序运行后,输出结果为_。(分数:1.50)A.2B.3C.4D.55.设有命令按钮 Command1 的单击事件过程,代码如下: Private Sub Command1_Click() Dim a(30)As Integer For i=1 To 30 a(i)=Int(Rnd* 100) Next For Each amrItem In a If arrItem Mod 7=0 Then Print arrItem; If arrItem90 Then Exit For Next End Sub 对于该事件过程,以下叙述中错误的是_。(分数:
4、2.00)A.a 数组中的数据是 30 个 100 以内的整数B.语句 For Each arrItem In a 有语法错误C.Ifarrhem Mod 7=0语句的功能是输出数组中能够被 7 整除的数D.Ifarrhem90语句的作用是当数组元素的值大于 90 时退出 For 循环6.设有如下程序: Option Base 0 Private Sub Form_Click() Dim a Dim I As Integer a=Array(1,2,3,4,5,6,7,8,9) For i=0 To 3 Print a(5-i); Next End Sub 程序运行后,单击窗体,则在窗体上显示
5、的内容是_。(分数:2.00)A.4321B.5432C.6543D.76547.下列过程定义语句中合法的是_。(分数:2.00)A.Sub Proc(ByVal n()B.Sub Proc(n)As IntegerC.Function Proc(Proc)D.Function Proc(ByVal n)8.Sub 过程与 Function 过程最根本的区别是_。(分数:2.00)A.Sub 过程可以使用 Call 语句或直接使用过程名调用,而 Function 过程不可以B.Function 过程可以有参数,Sub 过程不可以C.两种过程参数的传递方式不同D.Sub 过程的过程名不能返回值,
6、而 Function 过程能通过过程名返回值9.运行以下程序后,输出结果为_。 Private Sub Command1_Click() a=1:b=2:c=3 Call test(a,b+3,(c) Print “main:“;a;b;c End Sub Private Function test(p,m,n) p=p+1:m=m+1:n=n+1 Print “sub:“;p;m;n End Function(分数:2.00)A.sub:2 6 4main:1 2 3B.sub:2 6 4main:2 2 3C.sub:2 6 4main:2 6 4D.sub:2 6 4main:1 6 4
7、10.以下关于 Visual Basic 的参数传递的描述不正确的是_。(分数:2.00)A.形式参数表和实际参数表中对应的变量名必须相同B.形式参数表和实际参数表中对应的变量个数必须相同C.形式参数表和实际参数表中对应的变量类型必须相同D.形式参数表和实际参数表中对应的书写顺序必须对应相同11.下列关于过程的叙述中不正确的是_。(分数:2.00)A.过程的传值调用是将实参传送给形参B.过程的传址调用是将实参在内存的地址传递给形参C.过程的传值调用参数是单向传递的,过程的传址调用参数是双向的D.无论过程传值调用还是传址调用,参数传递都是双向的12.要想在过程调用后返回两个结果,下面的过程定义语
8、句中合法的是_。(分数:2.00)A.Sub Proc(ByVal n, ByVal m)B.Sub Proc(n, ByVal m)C.Sub Proc(n, m)D.Sub Proc(ByVal n, m)13.阅读下列程序: Private Sub Commandl_Click() Dim i As Integer, t As Integer t=1 For i=1 To 3 Print Hck(t); Next i End Sub Function Hck(j As Integer) a=0 Static b a=a2+1 b=b+2 Hck=a* b* j End Function
9、运行程序后,单击命令按钮,输出结果是_。(分数:2.00)A.2 3 4B.2 4 6C.5 6 7D.3 5 614.下列说法正确的是_。(分数:2.00)A.KeyDown 事件在 KeyPress 事件前发生B.KeyPress 过程不可以使用 Call 语句来调用C.MouseUp 事件在 Click 事件之后发生D.控件响应 Click 事件后不再响应 MouseUp 事件15.窗体上有文本框 Text1,执行下列程序后在文本框输入 123abc,单击按钮后输出结果为_。 Private Sub From_Load() Text1. Text=“ End Sub Private Su
10、b Text1_KeyPress(KeyAscii As Integer) Char=Chr(KeyAscii) KeyAscii=Asc(UCase(Char) Eud Sub Private Sub Commandl Click() Print Text1.Text End Sub(分数:2.00)A.123ABCB.ABCC.!#ABCD.123abc16.运行下列程序,按下回车键后输出结果为_。 Option Base 1 Private Sub Form_KeyPress(KeyAscii As Integer) a=Array(237,126,87,48,498) m1=a(1)
11、m2=1 If KeyAscii=13 Then For i=2 To 5 If a(i)m1 Then m1=a(i) m2=i End If Next i End If Print m1 Print m2 End Sub(分数:2.00)A.48 4B.237 1C.498 5D.498 417.运行下列程序,在文本框中输入字符“a”,则输出结果为_。 Private Sub Form_Load() Text1. Text=“ End Sub Private Sub Text1 KeyDown(KeyCode As Integer, Shift As Integer) Text1. Tex
12、t=KeyCode Print Text1. Text End Sub(分数:2.00)AaB.65CAD.9718.以下叙述中错误的是_。(分数:2.00)A.在 KeyPress 事件过程中不能识别键盘的按下与释放B.在 KeyPress 事件过程中不能识别回车键C.在 KeyDown 和 KeyUp 事件过程中,将键盘输入的“A”和“a”视为相同的字母D.在 KeyDown 和 KeyUp 事件过程中,从大键盘上输出的“1”和从右侧小键盘上输入的“1”被视为不同的字符19.有如下事件过程: Private Sub Form KeyDown(KeyCode As Integer, Shif
13、t As Integer) If(Button And 1)=1 Then Print “你好棒啊!“ End If End Sub 程序运行后,为了在窗体上输出“你好棒啊!”,应当按下的鼠标键是_。(分数:2.00)A.左键B.右键C.同时按下左键和右键D.按什么都不显示20.下列控件不支持 MouseDown 事件的是_。(分数:2.00)A.HsrcollBarB.Command ButtonC.PictureBoxD.TextBox21.下列操作会执行“Form_MouseUp”过程的是_。(分数:2.00)A.单击“结束”按钮B.单击窗体可用区域C.在窗体的可用区域移动鼠标D.放开鼠
14、标按键时22.打开菜单编辑器的快捷键是_。(分数:2.00)A.Ctrl+EB.shift+EC.Alt+ED.Tab+E23.下列不能打开菜单编辑器的操作是_。(分数:2.00)A.单击工具栏中的“菜单编辑器”按钮B.单击“工具”下拉菜单中的“菜单编辑器”命令C.单击鼠标右键,从弹出的快捷菜单中单击“菜单编辑器”命令D.单击“窗口”下拉菜单中的“菜单编辑器”命令24.在用菜单编辑器设计菜单时,必须输入的项是_。(分数:2.00)A.快捷键B.标题C.索引D.名称25.如果有一个菜单项,名称为 MenuItem,为了运行时使该菜单项失效(变灰),应使用的语句为_。(分数:2.00)A.Menu
15、ltem. Enabled=FalseB.MenuItem. Enabled=TrueC.Menultem. Visible=FalseD.Menultem. Visible=True26.如果要使一个菜单(假设菜单名为 mnuM)在运行时不可见,应使用的语句是_。(分数:2.00)A.mnuM. Enabled=FalseB.mnuM. Enabled=TrueC.mnuM. Visible=FalseD.mnuM. Visible=True27.在对下拉菜单(假设菜单名为 mnuH)快捷键设置中以下不正确的是_。(分数:2.00)A.mnuH. Shortcut=“F1“B.mnuH. S
16、hortcut=“Ctrl+B“C.mnuH. Shortcut=“T“D.mnuH. Shortcut=“Del“28.下列关于陕捷键的描述错误的是_。(分数:2.00)A.快捷键又称为热键,对应于一定的菜单项命令B.快捷键是针对子菜单而言的,不能对顶级菜单设置快捷键C.用快捷键可以直接执行菜单命令D.快捷键可以随便设置在任何位置29.以下叙述中错误的是_。(分数:2.00)A.在同一窗体的菜单项中,不允许出现标题相同的菜单项B.在菜单的标题栏中,“x;yC.Write#1, “x“; “y“D.Write#1, “x“; “y“48.以下叙述中,不正确的是_。(分数:2.00)A.在一个程
17、序执行 End 语句后,系统自动将所有打开的文件关闭B.可以使用 Close 语句关闭一个或几个指定的文件C.使用不带语句体的 Close 语句可关闭所有文件D.执行完一个程序段的所有语句后程序自动关闭文件49.以下能将顺序文件进行写入的语句是_。(分数:2.00)A.Put #B.Get #C.Write #D.Read #50.在顺序文件中,当使用 Write #语句时,文件打开的方式必须是_。(分数:2.00)A.Output 和 InputB.Output 或 AppendC.OutputD.Append51.下列关于随机文件中使用 Put 语句、Get 语句、Print 语句和 Wr
18、ite 语句的说法中,错误的是_。(分数:2.00)A.每执行一次 Put#语句,会在随机文件中产生一个记录B.每执行一次 Get#语句,会在随机文件中读取一个记录的数据C.一条 Print#(或 Write#)语句可以将若干个数据项写入数据文件中,但这些数据项类型必须是相同的D.一条 Print#(或 Write#)语句可以将若干个数据项写入数据文件中,但这些数据项类型可以是不同的二级 VISUAL+BASIC-27 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:51,分数:100.00)1.下面的数组声明语句中正确的是_。(分数:1.50)A.Dim A3,4As
19、 IntegerB.Dim A(3,4)As Integer C.Dim A3;4As IntegerD.Dim A(3;4)As Integer解析:2.有如下程序: Dim arr(3, 3) For j=1 To 3 For k=1 To 3 arr(j,k)=(j-1)* 3+k Next k Next j For j=2 To 3 For k=2 To 3 Print arr(k, j); Next k Print Next j 运行程序后,输出的结果是_。(分数:1.50)A.25 36B.58 69 C.47 58D.59 68解析:3.有如下的程序段: Dim a(4)As I
20、nteger Dim b(4)As Integer For k=0 To 2 a(k+1)=Val(InputBox(“Enter data:“) b(3-k)=a(k+1) Next k Print b(k) 程序运行后,依次输入 1、3、5,输出的结果是_。(分数:1.50)A.1 B.3C.5D.0解析:4.有如下的程序段: Dim t(10) For k=2 T0 10 t(k)=10-k Next k x=6 Print t(2+t(x) 程序运行后,输出结果为_。(分数:1.50)A.2B.3C.4 D.5解析:5.设有命令按钮 Command1 的单击事件过程,代码如下: Pri
21、vate Sub Command1_Click() Dim a(30)As Integer For i=1 To 30 a(i)=Int(Rnd* 100) Next For Each amrItem In a If arrItem Mod 7=0 Then Print arrItem; If arrItem90 Then Exit For Next End Sub 对于该事件过程,以下叙述中错误的是_。(分数:2.00)A.a 数组中的数据是 30 个 100 以内的整数B.语句 For Each arrItem In a 有语法错误 C.Ifarrhem Mod 7=0语句的功能是输出数组
22、中能够被 7 整除的数D.Ifarrhem90语句的作用是当数组元素的值大于 90 时退出 For 循环解析:6.设有如下程序: Option Base 0 Private Sub Form_Click() Dim a Dim I As Integer a=Array(1,2,3,4,5,6,7,8,9) For i=0 To 3 Print a(5-i); Next End Sub 程序运行后,单击窗体,则在窗体上显示的内容是_。(分数:2.00)A.4321B.5432C.6543 D.7654解析:7.下列过程定义语句中合法的是_。(分数:2.00)A.Sub Proc(ByVal n(
23、)B.Sub Proc(n)As IntegerC.Function Proc(Proc)D.Function Proc(ByVal n) 解析:8.Sub 过程与 Function 过程最根本的区别是_。(分数:2.00)A.Sub 过程可以使用 Call 语句或直接使用过程名调用,而 Function 过程不可以B.Function 过程可以有参数,Sub 过程不可以C.两种过程参数的传递方式不同D.Sub 过程的过程名不能返回值,而 Function 过程能通过过程名返回值 解析:9.运行以下程序后,输出结果为_。 Private Sub Command1_Click() a=1:b=2
24、:c=3 Call test(a,b+3,(c) Print “main:“;a;b;c End Sub Private Function test(p,m,n) p=p+1:m=m+1:n=n+1 Print “sub:“;p;m;n End Function(分数:2.00)A.sub:2 6 4main:1 2 3B.sub:2 6 4main:2 2 3 C.sub:2 6 4main:2 6 4D.sub:2 6 4main:1 6 4解析:10.以下关于 Visual Basic 的参数传递的描述不正确的是_。(分数:2.00)A.形式参数表和实际参数表中对应的变量名必须相同 B.
25、形式参数表和实际参数表中对应的变量个数必须相同C.形式参数表和实际参数表中对应的变量类型必须相同D.形式参数表和实际参数表中对应的书写顺序必须对应相同解析:11.下列关于过程的叙述中不正确的是_。(分数:2.00)A.过程的传值调用是将实参传送给形参B.过程的传址调用是将实参在内存的地址传递给形参C.过程的传值调用参数是单向传递的,过程的传址调用参数是双向的D.无论过程传值调用还是传址调用,参数传递都是双向的 解析:12.要想在过程调用后返回两个结果,下面的过程定义语句中合法的是_。(分数:2.00)A.Sub Proc(ByVal n, ByVal m)B.Sub Proc(n, ByVal
26、 m)C.Sub Proc(n, m) D.Sub Proc(ByVal n, m)解析:13.阅读下列程序: Private Sub Commandl_Click() Dim i As Integer, t As Integer t=1 For i=1 To 3 Print Hck(t); Next i End Sub Function Hck(j As Integer) a=0 Static b a=a2+1 b=b+2 Hck=a* b* j End Function 运行程序后,单击命令按钮,输出结果是_。(分数:2.00)A.2 3 4B.2 4 6 C.5 6 7D.3 5 6解析
27、:14.下列说法正确的是_。(分数:2.00)A.KeyDown 事件在 KeyPress 事件前发生 B.KeyPress 过程不可以使用 Call 语句来调用C.MouseUp 事件在 Click 事件之后发生D.控件响应 Click 事件后不再响应 MouseUp 事件解析:15.窗体上有文本框 Text1,执行下列程序后在文本框输入 123abc,单击按钮后输出结果为_。 Private Sub From_Load() Text1. Text=“ End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) Char=Chr(KeyAs
28、cii) KeyAscii=Asc(UCase(Char) Eud Sub Private Sub Commandl Click() Print Text1.Text End Sub(分数:2.00)A.123ABC B.ABCC.!#ABCD.123abc解析:16.运行下列程序,按下回车键后输出结果为_。 Option Base 1 Private Sub Form_KeyPress(KeyAscii As Integer) a=Array(237,126,87,48,498) m1=a(1) m2=1 If KeyAscii=13 Then For i=2 To 5 If a(i)m1
29、Then m1=a(i) m2=i End If Next i End If Print m1 Print m2 End Sub(分数:2.00)A.48 4B.237 1C.498 5 D.498 4解析:17.运行下列程序,在文本框中输入字符“a”,则输出结果为_。 Private Sub Form_Load() Text1. Text=“ End Sub Private Sub Text1 KeyDown(KeyCode As Integer, Shift As Integer) Text1. Text=KeyCode Print Text1. Text End Sub(分数:2.00)
30、AaB.65 CAD.97解析:18.以下叙述中错误的是_。(分数:2.00)A.在 KeyPress 事件过程中不能识别键盘的按下与释放B.在 KeyPress 事件过程中不能识别回车键 C.在 KeyDown 和 KeyUp 事件过程中,将键盘输入的“A”和“a”视为相同的字母D.在 KeyDown 和 KeyUp 事件过程中,从大键盘上输出的“1”和从右侧小键盘上输入的“1”被视为不同的字符解析:19.有如下事件过程: Private Sub Form KeyDown(KeyCode As Integer, Shift As Integer) If(Button And 1)=1 The
31、n Print “你好棒啊!“ End If End Sub 程序运行后,为了在窗体上输出“你好棒啊!”,应当按下的鼠标键是_。(分数:2.00)A.左键B.右键C.同时按下左键和右键D.按什么都不显示 解析:20.下列控件不支持 MouseDown 事件的是_。(分数:2.00)A.HsrcollBar B.Command ButtonC.PictureBoxD.TextBox解析:21.下列操作会执行“Form_MouseUp”过程的是_。(分数:2.00)A.单击“结束”按钮B.单击窗体可用区域C.在窗体的可用区域移动鼠标D.放开鼠标按键时 解析:22.打开菜单编辑器的快捷键是_。(分数
32、:2.00)A.Ctrl+E B.shift+EC.Alt+ED.Tab+E解析:23.下列不能打开菜单编辑器的操作是_。(分数:2.00)A.单击工具栏中的“菜单编辑器”按钮B.单击“工具”下拉菜单中的“菜单编辑器”命令C.单击鼠标右键,从弹出的快捷菜单中单击“菜单编辑器”命令D.单击“窗口”下拉菜单中的“菜单编辑器”命令 解析:24.在用菜单编辑器设计菜单时,必须输入的项是_。(分数:2.00)A.快捷键B.标题C.索引D.名称 解析:25.如果有一个菜单项,名称为 MenuItem,为了运行时使该菜单项失效(变灰),应使用的语句为_。(分数:2.00)A.Menultem. Enable
33、d=False B.MenuItem. Enabled=TrueC.Menultem. Visible=FalseD.Menultem. Visible=True解析:26.如果要使一个菜单(假设菜单名为 mnuM)在运行时不可见,应使用的语句是_。(分数:2.00)A.mnuM. Enabled=FalseB.mnuM. Enabled=TrueC.mnuM. Visible=False D.mnuM. Visible=True解析:27.在对下拉菜单(假设菜单名为 mnuH)快捷键设置中以下不正确的是_。(分数:2.00)A.mnuH. Shortcut=“F1“B.mnuH. Short
34、cut=“Ctrl+B“C.mnuH. Shortcut=“T“ D.mnuH. Shortcut=“Del“解析:28.下列关于陕捷键的描述错误的是_。(分数:2.00)A.快捷键又称为热键,对应于一定的菜单项命令B.快捷键是针对子菜单而言的,不能对顶级菜单设置快捷键C.用快捷键可以直接执行菜单命令D.快捷键可以随便设置在任何位置 解析:29.以下叙述中错误的是_。(分数:2.00)A.在同一窗体的菜单项中,不允许出现标题相同的菜单项 B.在菜单的标题栏中,“x;y C.Write#1, “x“; “y“D.Write#1, “x“; “y“解析:48.以下叙述中,不正确的是_。(分数:2.
35、00)A.在一个程序执行 End 语句后,系统自动将所有打开的文件关闭B.可以使用 Close 语句关闭一个或几个指定的文件C.使用不带语句体的 Close 语句可关闭所有文件D.执行完一个程序段的所有语句后程序自动关闭文件 解析:49.以下能将顺序文件进行写入的语句是_。(分数:2.00)A.Put #B.Get #C.Write # D.Read #解析:50.在顺序文件中,当使用 Write #语句时,文件打开的方式必须是_。(分数:2.00)A.Output 和 InputB.Output 或 Append C.OutputD.Append解析:51.下列关于随机文件中使用 Put 语句、Get 语句、Print 语句和 Write 语句的说法中,错误的是_。(分数:2.00)A.每执行一次 Put#语句,会在随机文件中产生一个记录B.每执行一次 Get#语句,会在随机文件中读取一个记录的数据C.一条 Print#(或 Write#)语句可以将若干个数据项写入数据文件中,但这些数据项类型必须是相同的D.一条 Print#(或 Write#)语句可以将若干个数据项写入数据文件中,但这些数据项类型可以是不同的解析: