问题 单项选择题

在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim x As Integer,y As Integer
x=41:y=54
Call sub1(x,y)
x=x+1
Print x;y
End Sub
Private Sub sub 1(n As Integer, ByVal m As Integer)
n=n Mod 10
m=m\10
End Sub
程序运行后,单击命令按钮,则窗体上显示的内容是______。

A) 41 54
B) 2 54
C) 1 3
D) 42 3

答案

参考答案:B

解析: 本题考查调用Sub过程中的参数传递。ByVal为传值,当把函数外的一个变量,如n传给ByVal的参数时,在函数体内对该参数所做的任何变更,不会影响函数体外的这个变量n的值。而ByRef为传址,即把函数体外变量n的地址传给ByRef函数的参数,在函数内对该参数所做的变更就会体现在函数体外部的这个变量n上。在本题自定义函数proc中,定义m为ByVal,默认n为ByRef。因此,在用Call语句调用Sub函数时,x的值改变,x=41 Mod 10+1=2;而y的值不改变,仍为54,所以本题正确答案选择B) 。

单项选择题 B型题
单项选择题