国家二级VB机试(过程、菜单程序设计)模拟试卷3
选择题
1.以下关于VB特点的叙述中,错误的是( )。(D)
A. VB采用事件驱动的编程机制
B. VB程序能够以解释方式运行
C. VB程序能够以编译方式运行
D. VB程序总是从Form_Load事件过程开始执行
解析:在一般情况下,整个应用程序从设计时的第一个窗体开始执行,需要首先执行的程序代码放在Form_Load事件过程中。如果需要从其他窗体开始执行应用程序,则可通过“工程”菜单中的“工程属性”命令(“通用”选项卡)指定启动窗体。但是,如果有Sub Main过程,则可以(注意,是“可以”,而不是“必须”)首先执行Sub Main过程。
2.如果把程序的启动对象设置为:Sub Main,则Sub Main过程( )。(C)
A. 只能写在Form1窗体中代码的最前面
B. 可以写在Form1窗体中代码的任何位置
C. 只能写在某个标准模块的代码中
D. 可以写在任何窗体或标准模块的代码中
解析:在运行窗体程序之前先执行一些操作,此时可以通过在标准模块中创建一个Sub Main的子过程,不能在窗体模块中创建Sub Main的子过程,然后在创建的Sub Main过程中编写启动时要执行的代码,每个工程只能有一个Sub Main的子过程。
3.设窗体上有3个图像框:Image1、Image2、Image3,并有下面的程序代码:
Private Sub Form_Load()
Image1.Picture=LoadPicture(\\(B)
A. 在Image3中显示Image2中的图片
B. Image1、Image2中原有图片被交换了
C. Image1、Image2中都是原来Imege1中的图片
D. Image1、Image2中都是原来Imege2中的图片
解析:Form_Load过程为在图相框里载入相应图片。点击Image2时,激发Image2_Click事件,在事件中图片进行了交换。选B)。
4.在VB中,函数过程与子程序过程的区别之一是( )。(D)
A. 函数过程必须有参数,而子程序过程可以没有
B. 函数过程的参数传递只采用值传递,而子程序过程只采用地址传递
C. 在程序中,子程序过程调用的代码可以写在表达式中,而函数过程不能
D. 函数过程有返回值,而子程序过程没有
解析:在Visual Basic中有两类过程:一类是系统提供的内部函数和事件过程;另一类是用户根据自己的需要定义的,供事件过程的多次调用。在第二类过程中,涉及最多的是子过程。它们的共同点是完成某种特定功能的一组程序代码,不同的是函数是可以直接返回值的特殊过程,所以函数过程定义时有返回值的类型说明。
两者最大的区别就是Sub过程的过程不能直接返回值,而Function过程能直接返回值。
5.设子程序过程定义的首部为:
Public Sub S(X As Integer,Y As Single)
则以下正确的调用形式为( )。(D)
A. Call S5,4.8
B. Call Sub(5,4.8)
C. Sub5,4.8
D. S5,4.8
解析:(1)用Call语句调用Sub过程:语法:Call过程名([实参表列]),实参的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。
(2)把过程名作为一个语句来用:语法:过程名[实参1[,实参2…]],它与(1)的不同点是:去掉了关键字和实参列表的括号。
6.阅读程序:
Option Base1
Sub P(b()As Integer)
For i=1To4
b(i)=2*i
Next i
End Sub
Private Sub Form Click()
Dim a(4)As Integer
For i=1To4
a(i)=i+4
Next i
P a
For i=1To4
Print a(i)
Next i
End Sub
运行上面的程序,单击窗体,输出结果为( )。
(A)
A.
B.
C.
D.
解析:Form_Click过程中首先对a数组用。For循环赋值。然后调用过程P。注意P参数传递是引用传递,因此数组a的元素值在执行P过程后会被改变。之后的For输出变量值是过程P中对数组元素的赋值。选A)。
7.设有以下过程:
Private Sub proc(x As Integer,Optional y As Integer)
Print x,y
End Sub
针对此过程,下面正确的过程调用语句是( )。(C)
A. Call proc(a!,23)
B. Call proc x%,12
C. proc b%
D. x=proc(12)
解析:(1)用Call语句调用Sub过程:语法:Call过程名([实参表列]),实参的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。
(2)把过程名作为一个语句来用:语法:过程名[实参1[,实参2…]],它与(1)的不同点是:去掉了关键字和实参列表的括号。根据题意,选项C)正确。
8.窗体上有一个名称为Command1的命令按钮,一个名称为Text1的文本框。编写如下程序:
Private Sub Command1_Click()
Dim x As Integer
x=Val(InputBox(\\(A)
A. 语句fun=n有错,因为n是整型,fun没有定义类型
B. 运行程序,输入值为5时,文本框中显示655
C. 运行程序,输入值为6时,文本框中显示42
D. ByRef表示参数按址传递
解析:过程fun的功能是将传入的值运算后返回,当传入数值为3的整数倍时返回该值的2倍,否则返回该值的平方。过程Fun的参数指定为:ByRef方式,即按址传递,因此会影响实参的值。Str函数是将数值转换为字符串。过程fun定义时没有指明返回类型因此默认为Variant类型,它可以表示任何值,因此A)选项的说法不正确。
9.编写如下程序:
Private Sub Command1 Click()
Dim x As Integer,y As Integer
x=InputBox(\\(D)
A. 10 115
B. 20 115
C. 35 15
D. 20 15
解析:程序中过程f的参数a默认为按址传递,参数b指定按值传递,因此调用f(x,y)时,x的值会受到影响,y的值不会。程序中输入10和15,则x=10,y=15。调用f(x,y),在过程中a=a*2,即a=10*2=20,变量x是过程f中的局部变量,没有用处可不用理会,b=b+100,即b=15+100=115。a的值即按钮单击事件中变量x的值,因此x=20,而y的值仍是原来的值15,因此Print x,y输出20 15。
10.窗体
本文档预览:3600字符,共9293字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载