在窗体中添加一个命令按钮,编写如下程序:Private Sub Sub1(p,m,n)p=p+1:m=m+1:n=n+1Print "sub1:

题目

在窗体中添加一个命令按钮,编写如下程序: Private Sub Sub1(p,m,n) p=p+1:m=m+1:n=n+1 Print "sub1:";p;m;n End Sub Private Sub Command1_Click() a1=1:b=2:c1=3 Call Sub1(a,b1+3,c1) Print"Main:";a1;b1;c1 End Sub 程序运行后,输出结果为

A.Sub: 2 6 4 Main: 2 6 4

B.Sub: 2 6 4 Main: 2 6 4

C.Sub: 2 6 4 Main: 1 2 3

D.Sub: 2 6 4 Main: 2 2 3

参考答案和解析
正确答案:D
解析:这是在实现子过程被调用时参数虚实结合的问题。a1为变量按址传送,b1+3和c1为表达式按值传送。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub CommaLndl_Click() For n=1 To 20 If n Mod 3<>0 Then m=m+n\3 Next n Print n End Sub 程序运行后,如果单击命令按钮,则窗体上显示的内容是______。

A.15

B.18

C.21

D.24


正确答案:C
解析:对本题来讲,最后打印出的变量n值就是循环变量的终值20加步长1的值,即n=20+1=21,而与循环体中的内容和计算结果无关。

第2题:

运行以下程序后,输出结果为_____________。 Private Sub Command1_Click() a=1:b=2:c=3 Call test(a,b+3,(c)) Print "main:";a;b;c End Sub Private Function test(p,m,n) p=p+1:m=m+1:n=n+1 Print "sub:";p;m;n End Function

:A. sub:2 6 4 main:1 2 3

B. sub:2 6 4 main:2 2 3

C. sub:2 6 4 main:2 6 4

D. sub:2 6 4 main:1 6 4


参考答案:B

第3题:

( 11 )在窗体中添加一个名称为 Command1 的命令按钮,然后编写如下事件代码:

Private Sub Command1_Click( )

Dim x As Integer, y As Integer

x=12 : y=32

Call p(x, y)

MsgBox x*y

End Sub

Public Sub p (n As Integer, By Val m As Integer)

n=n Mod 10

m=m Mod 10

End Sub

窗体打开运行后,单击命令按钮,则消息框的输出结果为 ___________ 。


正确答案:

第4题:

在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1 Click() a = 2 For i=1 To 3 Call funl(i,A)Next i x = i + 2 Print x;a End Sub Private Sub fun1(n,m) m=m + n * 2 n = n + m End Sub 程序运行后,单击命令按钮,则窗体上显示的内容是

A.1 5

B.4 5

C.8 4

D.3 4


正确答案:C
解析:在本题中,由于两个形参都没有指明用哪种方式进行参数传送,按VisualBasic规定,在默认的情况下,变量的数据传送按传址方式进行。当第一次调用fun1过程时,循环变量i将1传给形参n,变量a将2传给形参m。经计算后,变量m和n值分别为4和5。返回被调过程后,变量i和a的值分别为5和4。经过“Nexti”语句后,循环变量i加了步长得6,大于终值3,退出循环,所以变量x=6+2=8。值得注意的是:在函数的调用过程中,不要使用循环变量作为实参,否则会产生意想不到的结果。

第5题:

在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click( ) Dim m As Integer,n As Integer,p As Integer m=3:n=5:p=O Call Y(m,n,p) Print Str(p)End SubSub Y(ByVal i As Integer,ByVal j As Integer,k As Integer) k=i + jEnd Sub程序运行后,如果单击命令按钮,则在窗体上显示的内容是

A.4

B.6

C.8

D.10


正确答案:C
解析:此程序考查了函数的调用,函数过程有3个形参,功能是将第一个和第二个形参的和赋给第三个形参,其中前两个形参是按值传递,不会影响实参的数值,即在调用函数过程的过程中,不变化实参的数值;而第三个形参是按址传递,传递的是实参的地址,这样实参会随着过程中形参的变化而变化,即改变实参的数值。在主调过程中定义了三个整型变量,分别赋值3、5、0,调用过程后m、n的数值仍然是3、5,而p的值不再是0而变为8,即m、n的和,这也是被调函数的作用。

第6题:

在窗体上添加一个命令按钮(名为Conunand1)和一个文本框(名为Text1),并在命令按钮中编写如下事件代码: Private Sub Command1_Click() m=2170 n=Len (Str$ (m) +Space (5)) Me! Text1=n End Sub打开窗体运行后,单击命令按钮,在文本框中显示( )。

A.5

B.8

C.9

D.10


正确答案:C
解析:2170转换为字符串,再在后面加5个空格,所以长度为9。

第7题:

在窗体中添加一个名称为Com1的命令按钮,然后编写如下程序:

Private Sub s(ByVal p As Integer)

p=p*2

End Sub

Private Sub Com1_Click()

Dim i As Integer

i=3

Call s(i)

If i>4 Then i=i^2

End sub

窗体打开运行后,单击命令按钮,则消息框的输出结果为( )。


正确答案:3
3 解析: 本题考查VBA程序的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参:没有说明传递类型,则默认为传址传递。此题中形参p被说明为ByVal传值形式的整型量,当运行Com1_Click()过程时调用s()函数,实参i传送其值给形参p,p发生变化p=p*2=3*2=6。但因为使用的是ByVal传值传递,所以实参i的值不发生变化,if语句中的判断条件为假,所以会直接执行MsgBox i语句后输出3。

第8题:

在窗体上画一个命令按钮,然后编写如下事件过程:

Private Sub Command1_Click()

Dim m As Integer, n As Integer, p As Integer

m=3: n=5: p=0

Call Y(m, n, p)

Print Str(p)

End Sub

Sub Y(ByVal i As Integer, ByVal j As Integer, k As Integer)

k=i + j

End Sub

程序运行后,如果单击命令按钮,则在窗体上显示的内容是( )。

A.4

B.6

C.8

D.10


正确答案:C

第9题:

在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Commandl_Click() Dim m As Integer, n As Integer, p As Integer m=3: n=5: p=0 Call Y(m, n, p) Print Str(p) End Sub Sub Y(ByVal i As Integer, ByVal j As Integer, k As Integer) k=i+j End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是( )

A.4

B.6

C.8

D.10


正确答案:C
解析:此程序考查了函数的调用,函数过程有3个形参,功能是将第一个和第二个形参的和赋给第三个形参,其中前两个形参是按值传递,不会影响实参的数值,即在调用函数过程的过程中,不变化实参的数值;而第三个形参是按址传递,传递的是实参的地址,这样实参会随着过程中形参的变化而变化,即改变实参的数值。在主调过程中定义了三个整型变量,分别赋值3、5、0,调用过程后 m,n的数值仍然是3、5,而p的值不再是0而变为8即m、n的和,这也是被调函数的作用。

第10题:

在窗体中添加一个命令按钮,编写如下程序: Private Sub Subl(p,m,n) p=p+1:m=m+1:n=n+1 Print"subl:";p;m;n End Sub Private Sub Command1_Click() al=1:b=2:c1=3 Call Subl(a,b1+3,c1) Print"Main:";a1;b1;c1 End Sub 程序运行后,输出结果为

A.Sub:2 6 4 Main:2 6 4

B.Sub:2 6 4 Main:2 6 4

C.Sub:2 6 4 Main:1 2 3

D.Sub:2 6 4 Main:2 2 3


正确答案:D
解析:考查考生对参数传递的掌握情况。
  [解题要点] 这是在实现子过程被调用时参数虚实结合的问题。a1为变量按址传送,b1+3和c1为表达式按值传送。
  [错解分析] 参数的传值方式和传址方式的区别。
  [考点链接] 函数调用和参数传递。

更多相关问题