1、二级 VISUAL+BASIC-53 及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:100.00)1.假定有以下两个过程: Sub S1(ByVal x As Integer,ByVal y As Integer) Dim t As Integer t=x x=y y=t End Sub Sub S2(x As Integer,y As Integer) Dim t As Integer t=x x=y y=t End Sub 则以下说法中正确的是(分数:2.50)A.用过程 S1 可以实现交换两个变量的值的操作,S2 不能实现B.用过程 S2 可以
2、实现交换两个变、量的值的操作,S1 不能实现C.用过程 S1 和 S2 都可以实现交换两个变量的值的操作D.用过程 S1 和 S2 都不能实现交换两个变量的值的操作2.假定有下面的过程: Function Func(a As Integer,b As Integer)As Integer Static m As Integer,i As Integer m=0 i=2 i=i+m+1 m=i+a+b Func=m End Function 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim k As Integer,m As Int
3、eger Dim p As Integer k=4 m=1 P=Func(k,m) Print p; P=Func(k,m) Print p End Sub 程序运行后,单击命令按钮,输出结果为(分数:2.50)A.8 17B.8 16C.8 20D.8 83.以下叙述中错误的是(分数:2.50)A.在 Sub 过程中可以调用 Function 过程B.可以在程序中调用以 Public 声明的过程C.在 Sub 过程中可以嵌套定义 Function 过程D.用 Static 声明的过程中的局部变量都是 Static 类型4.为了通过传值方式来传送过程参数,应使用的关键字为(分数:2.50)A.
4、ValueB.ByValC.ByRefD.Reference5.在通用过程中,为了把某个参数定义为可变参数,应使用的关键字是(分数:2.50)A.OptionalB.ByValC.MissingD.ParamArray6.在通用过程中,为了定义可选参数,应使用的关键字是(分数:2.50)A.OptionalB.ByValC.MissingD.ParamArray7.以下关于函数过程的叙述中,正确的是(分数:2.50)A.函数过程形参的类型与函数返回值的类型没有关系B.在函数过程中,过程的返回值可以有多个C.当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递D.如果不指明函数过程
5、参数的类型,则该参数没有数据类型8.以下叙述中错误的是(分数:2.50)A.如果过程被定义为 Static 类型,则该过程中的局部变量都是 Static 类型B.Sub 过程中不能嵌套定义 Sub 过程C.Sub 过程中可以嵌套调用 Sub 过程D.事件过程也是过程,可以像通用过程一样由用户指定过程名9.下列描述中正确的是(分数:2.50)A.Visual Basic 只能通过调用执行 Sub 过程B.Sub 过程可以嵌套定义也可以嵌套调用C.可以像通用过程一样指定事件过程的名字D.Sub 过程和 Function 过程都必须带返回值10.阅读程序: Function func(n As In
6、teger)As Integer Sum=0 Fox“i=1 To n Sum=Sum+(i+1)*i Next i func=Sum End Function Private Sub Form_Click() Dim a As Integer a=5 s=func(a) Print s End Sub 程序运行后,单击窗体,输出结果为(分数:2.50)A.80B.60C.70D.1511.设有如下通用过程: Public Function Fun(xStr As String)As String Dim tStr As String,strL As Integer tStr=“ strL=L
7、en(xStr) i=1 Do While i=strL/2 tStr=tStr End Sub 程序运行后,在文本框中输入 abcde,则在窗体上显示的内容是(分数:2.50)A.abcdeB.efghiC.EFGHID.ABCDE34.编写如下事件过程: Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) If Button=2 Then Print“AAAA“ End If End Sub Private Sub Form_MouseUp(Button As Inte
8、ger,Shift As Integer,X As Single,Y As Single) Print“BBBB“ End Sub 程序运行后,如果在窗体上单击鼠标右键,则输出结果为(分数:2.50)A.AAAABBBBB.BBBBC.AAAAD.BBBBAAAA35.在窗体上画一个命令按钮和两个文本框,其名称分别为 Command1、Text1 和 Text2,在属性窗口中把窗体的 KeyPrivew 属性设置为 True,然后编写如下程序: Dim S1 As String,S2 As String Private Sub Form_Load() Text1.Text=“ Text2.Te
9、xt=“ Text1.Enabled=False Text2.Enabled=False End Sub Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) S2=S2 P=Func(k,m) Print p End Sub 程序运行后,单击命令按钮,输出结果为(分数:2.50)A.8 17B.8 16C.8 20D.8 8 解析:3.以下叙述中错误的是(分数:2.50)A.在 Sub 过程中可以调用 Function 过程B.可以在程序中调用以 Public 声明的过程C.在 Sub 过程中可以嵌套定义 Function
10、 过程 D.用 Static 声明的过程中的局部变量都是 Static 类型解析:4.为了通过传值方式来传送过程参数,应使用的关键字为(分数:2.50)A.ValueB.ByVal C.ByRefD.Reference解析:5.在通用过程中,为了把某个参数定义为可变参数,应使用的关键字是(分数:2.50)A.OptionalB.ByValC.MissingD.ParamArray 解析:6.在通用过程中,为了定义可选参数,应使用的关键字是(分数:2.50)A.Optional B.ByValC.MissingD.ParamArray解析:7.以下关于函数过程的叙述中,正确的是(分数:2.50)
11、A.函数过程形参的类型与函数返回值的类型没有关系 B.在函数过程中,过程的返回值可以有多个C.当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递D.如果不指明函数过程参数的类型,则该参数没有数据类型解析:8.以下叙述中错误的是(分数:2.50)A.如果过程被定义为 Static 类型,则该过程中的局部变量都是 Static 类型B.Sub 过程中不能嵌套定义 Sub 过程C.Sub 过程中可以嵌套调用 Sub 过程D.事件过程也是过程,可以像通用过程一样由用户指定过程名 解析:9.下列描述中正确的是(分数:2.50)A.Visual Basic 只能通过调用执行 Sub 过程
12、B.Sub 过程可以嵌套定义也可以嵌套调用C.可以像通用过程一样指定事件过程的名字D.Sub 过程和 Function 过程都必须带返回值解析:10.阅读程序: Function func(n As Integer)As Integer Sum=0 Fox“i=1 To n Sum=Sum+(i+1)*i Next i func=Sum End Function Private Sub Form_Click() Dim a As Integer a=5 s=func(a) Print s End Sub 程序运行后,单击窗体,输出结果为(分数:2.50)A.80B.60C.70 D.15解析:
13、11.设有如下通用过程: Public Function Fun(xStr As String)As String Dim tStr As String,strL As Integer tStr=“ strL=Len(xStr) i=1 Do While i=strL/2 tStr=tStr End Sub 程序运行后,在文本框中输入 abcde,则在窗体上显示的内容是(分数:2.50)A.abcdeB.efghiC.EFGHI D.ABCDE解析:34.编写如下事件过程: Private Sub Form_MouseDown(Button As Integer,Shift As Intege
14、r,X As Single,Y As Single) If Button=2 Then Print“AAAA“ End If End Sub Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single) Print“BBBB“ End Sub 程序运行后,如果在窗体上单击鼠标右键,则输出结果为(分数:2.50)A.AAAABBBB B.BBBBC.AAAAD.BBBBAAAA解析:35.在窗体上画一个命令按钮和两个文本框,其名称分别为 Command1、Text1 和 Text2,在属性
15、窗口中把窗体的 KeyPrivew 属性设置为 True,然后编写如下程序: Dim S1 As String,S2 As String Private Sub Form_Load() Text1.Text=“ Text2.Text=“ Text1.Enabled=False Text2.Enabled=False End Sub Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) S2=S2&Chr(KeyCode) End Sub Private Sub Form_KeyPress(KeyAscii As Intege
16、r) S1=S1&Chr$(KeyAscii) End Sub Private Sub Command1_Click() Text1.Text=S1 Text2.Text=S2 S1=“ S2=“ End Sub 程序运行后,先后按“A”、“B”、“C”键,然后单击命令按钮,在文本框 Text1 和 Text2 中显示的内容分别为(分数:2.50)A.abc 和 ABCB.空白C.ABC 和 abc D.出错解析:36.下列不能打开菜单编辑器的操作是(分数:2.50)A.按 Ctrl+E 键B.单击工具栏中的“菜单编辑器”按钮C.执行“工具”菜单中的“菜单编辑器”命令D.按 Shift+Alt
17、+M 键 解析:37.假定有一个菜单项,名为 MenuItem,为了在运行时使该菜单项失效(变灰),应使用的语句为(分数:2.50)A.MenuItem.Enabled=False B.MenuItem.Enabled=TrueC.MenuItem.Visible=TrueD.MenuItem.Visible=False解析:38.以下叙述中错误的是(分数:2.50)A.在同一窗体的菜单中,不允许出现 Name 属性相同的菜单项 B.在菜单的标题栏中,“&”所引导的字母指明了访问该菜单项的访问键C.程序运行过程中,可以重新设置菜单的 Visible 属性D.同一个窗体中的所有弹出式菜单都在同一个菜单编辑器中定义解析:39.设在菜单编辑器中定义了一个菜单项,名称为 menu1。为了在运行时隐藏该菜单项,应使用的语句是(分数:2.50)A.menu1.Enabled=TrueB.menu1.Enabled=FalseC.menu1.Visible=TrueD.menu1.Visible=False 解析:40.下面不是菜单编辑器组成部分的是(分数:2.50)A.编辑区B.菜单项显示区C.菜单栏 D.数据区解析: