国家二级VB机试(过程)模拟试卷6
选择题
1.假定有如下事件过程:
Private Sub Form_Click()
Dim X As Integer,n As Integer
x=2: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\\
B. x=MsgBox(\\
C. MsgBox(\\
D. Call MsgBox\\
解析: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)则以下正确的调用形式为(D)
A. Call S 5,4.8
B. CaU Sub(5,4.8)
C. Sub 5,4.8
D. S 5,4.8
解析:子过程可以独立使用,也可以使用Call关键字来进行调用,但此时参数需要加括号。本题中子程序的名字是S,故此B、c选项可以排除,A选项中缺少参数的括号。
6.在窗体上画两个标签和一个命令按钮,其名称分别为Label1、Label2和Command1,然后编写如下程序:
Private Sub fune(L As Label) Private Sub Commandl_Click()
L.Caption=\\(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过程:
Pfivate Sub Commandl_Click() Privme Sub fun(x As Integer)
Dim x As Integer Ifx Mod 2=0 Then fun(x/2)
x=Val(InputBox(\\(A)
A. 3 6
B. 6 3
C. 6
D. 程序死循环
解析:本题中的fun过程是一个递归调用,如果参数x为偶数则进入递归;本题中的实参6传入fun过程之后,因其是偶数,所以执行fun(6/2),也就是先输出3,然后返回到fun中输出6。
8.编写如下程序:
Private Sub Command1_Click() Sub subf(s1 As String s2 As String)
Dim str1 As String,str2 As String Dim temp As String
str1InputBox(\\(C)
A. afbecd
B. cdbeaf
C. fedcba
D. adbecf
解析:本题中的子过程subf会进行递归调用,只要在参数sl中取出的字符不是空字符串就进行递归,直到i的值超过s1的长度才停止,然后进行回归操作,相当于每一次向s2中连接的字符都是最后取出的s1中的字符,最终实现字符串的逆序操作。
9.以下关于函数过程的叙述中,正确的是(A)
A. 函数过程形参的类型与函数返回值的类型没有关系
B. 在函数过程中,过程的返回值可以有多个
C. 当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递
D. 如果不指明函数过程参数的类型,则该参数没有数据类型
解析:本题考查的考点是有关函数过程的。函数过程可以返回一个函数值,但这个函数值的类型和参数类型没有任何关系;如果不指明参数的类型,则默认参数为变体型;数组作为丽数参数时只能通过传地址的方式来调用。
10.在VB中,函数过程与子程序过程的区别之一是(D)
A. 函数过程必须有参数,而子程序过程可以没有
B. 函数过程的参数传递只采用值传递,而子程序过程只采用地址传递
C. 在程序中,子程序过程调用的代码可以写在表达式中,而函数过程不能
D. 函数过程有返回值,而子程序过程没有
解析:函数过程和Sub子过程一样,也可以有参数也可以没有参数:参数传递也可以使用地址传递也可以使用值传递;都是在代码中进行调用,只是函数过程必须有一个返回值,子过程没有。
11.在窗体上画一个命令按钮(名称为Commandl),并编写如下代码:
Function Fun 1(ByVal a As Integer, Private Sub Commandl_Click()
b As Integer)As Integer Dim x As Integer
Dim t As Integer x=10
t=a-b:b=t+a:Fun1=t+b Print Fun1(Fun1(x,(Fun1(x,x-1))),x-1)
End Function End Sub
程序运行后,单击命令按钮,输出结果是(B)
A. 10
本文档预览:3600字符,共19268字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载