国家二级VB机试(过程)模拟试卷8
选择题
1.假定有如下事件过程:
Private Sub Form_Click()
Dim X As Integer,n As Integer
x=1:n=0
Do While x<28
x=x*3:n=n+1
loop
Print x,n
End Sub
程序运行后,单击窗体,输出结果是(A)
A. 81 4
B. 56 3
C. 28 1
D. 243 5
解析:本题考查Do While循环。在窗体的Click事件代码里面,定义了变量x和n,分析Do While循环可知,n保存循环次数,x是循环控制变量,如果x的值小于28则进入循环体,因此x和n的变化过程是:3和1、9和2、27和3、81和4,经过4次循环后x值变成81,循环条件不成立,循环结束。
2.以下叙述中错误的是(D)
A. 标准模块文件的扩展名是.bas
B. 标准模块文件是纯代码文件
C. 在标准模块中声明的全局变量可以在整个工程中使用
D. 在标准模块中不能定义过程
解析:本题考查的考点是有关标准模块的。VB中的标准模块也称全局模块或总模块,由全局变量声明、模块层声明及通用过程等几部分组成,其扩展名为.bas,里面只有代码而没有任何控件。其中全局声明放在标准模块的首部,可以在整个工程中使用。
3.下面不能在信息框中输出“VB”的是(D)
A. MsgBox”VB”
B. x=MsgBox(”VB”)
C. MsgBox(”VB”)
D. Call MsgBox”VB”
解析:MsgBox()函数用于显示提示信息,并可返回一个代表用户单击了哪个按钮的Integer类型值,当其作为函数使用时必须将参数放在括号内部,而返回值可以赋值给一个变量,也可以单独使用此函数而不将其返回值赋值给变量;MsgBox过程也用于显示提示信息,作为过程可以独立使用,也可以使用Call关键字来进行调用,但此时参数需要加括号。
4.以下关于过程的叙述中,错误的是(C)
A. 在Sub过程中不能再定义Sub过程
B. 事件过程也是Sub过程
C. 过程调用语句的形参个数必须与实参个数相同
D. 函数过程一定有返回值
解析:Sub过程分为事件过程和通用过程,过程不允许嵌套定义,即在Sub过程中再定义Sub过程;函数过程必须有一个返回值,当过程的声明语句中使用了可选参数的时候,允许实参个数与形参不同。
5.设子程序过程定义的首部为:Public Sub s(x As Integer,Y As Single)~0以下正确的调用形式为(D)
A. Call S 5,4.8
B. Call Sub(5,4.8)
C. Sub 5,4.8
D. S 5,4.8
解析:子过程可以独立使用,也可以使用Call关键字来进行调用,但此时参数需要加括号。本题中子程序的名字是S,故此B、C选项可以排除,A选项中缺少参数的括号。
6.在窗体上画两个标签和一个命令按钮,其名称分别为Label1、Label2和Commandl,然后编写如下程序:
Private Sub func(L As Label)
L.Caption=”1234”
End Sub
Private Sub Form_Load()
Label1.Caption=”ABCDE”
Label2.Caption=10
End Sub
Private Sub Command1_Click()
a=Val(Label2.Caption)
Call func(Labell)
Label2.Caption=a
End Sub
程序运行后,单击命令按钮,则在两个标签中显示的内容分别为(D)
A. ABCD和10
B. 1234和100
C. ABCD和100
D. 1234和10
解析:本题考查的考点是有关过程调用的。窗体加载时首先执行了Load事件里面的代码,设置Label1的标题为“ABCDE”,Label2的标题为“10”;当单击命令按钮时,调用了func过程,在这个过程中把传入的Label1的标题设置为“1234”,Label2的标题没有发生变化。
7.设有如下Commandl的单击事件过程及fun过程:
Private Sub Commandl_Click()
Dim XAs Integer
x=Val(InputBox(”请输入一个整数”))
fun(x)
End Sub
Private Sub fun(x As Integer)
If x Mod 2=0 Then fun(x/2、
Print x;
End Sub
执行上述程序,输入6,结果是(A)
A. 3 6
B. 6 3
C. 6
D. 程序死循环
解析:本题中的fun过程是一个递归调用,如果参数x为偶数则进入递归;本题中的实参6传入fun过程之后,因其是偶数,所以执行fun(6/2),也就是先输出3,然后返回到fun中输出6。
8.编写如下程序:
Private Sub Commandl_Click()
Dim strl As String,str2 As String
strl=InputBox(”输入一个字符串”)
subfstrl,str2:Print str2
End Sub
Sub subf(s1 As String,s2 As String)
Dim temp As String
Static i As Integer i=i+1
temp=Mid(sl,i,1)
Iftemp\\(C)
A. afbecd
B. cdbeaf
C. fedcba
D. adbecf
解析:本题中的子过程subf会进行递归调用,只要在参数s1中取出的字符不是空字符串就进行递归,直到i的值超过s1的长度才停止,然后进行回归操作,相当于每一次向s2中连接的字符都是最后取出的s1中的字符,最终实现字符串的逆序操作。
9.以下关于函数过程的叙述中,正确的是(A)
A. 函数过程形参的类型与函数返回值的类型没有关系
B. 在函数过程中,过程的返回值可以有多个
C. 当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递
D. 如果不指明函数过程参数的类型,则该参数没有数据类型
解析:本题考查的考点是有关函数过程的。函数过程可以返回一个函数值,但这个函数值的类型和参数类型没有任何关系;如果不指明参数的类型,则默认参数为变体型;数组作为函数参数时只能通过传地址的方式来调用。
10.在VB中,函数过程与子程序过程的区别之一是(D)
A. 函数过程必须有参数,而子程序过程可以没有
B. 函数过程的参数传递只采用值传递,而子程序过程只采用地
本文档预览:3600字符,共23015字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载