单击按钮时,以下列程序运行后的输出结果是 Private Sub proc1(x As Integer,y As Integer,z As Integer) x=3*z y=2*z z=X+y End Sub Private Sub Command1_Click( ) Dim x As Integer,y As Integer,z As Integer x=1:y=2:z=3 Call proc1(x,x,2) Print x;x;z Call proc1(x,y,y) Print x;y;y End S

题目

单击按钮时,以下列程序运行后的输出结果是 Private Sub proc1(x As Integer,y As Integer,z As Integer) x=3*z y=2*z z=X+y End Sub Private Sub Command1_Click( ) Dim x As Integer,y As Integer,z As Integer x=1:y=2:z=3 Call proc1(x,x,2) Print x;x;z Call proc1(x,y,y) Print x;y;y End Sub

A.6 6 12 6 6 10

B.9 5 10 5 10 10

C.9 6 12 9 10 15

D.9 5 10 5 4 10


相似考题
更多“单击按钮时,以下列程序运行后的输出结果是Private Sub proc1(x As Integer,y As Integer,z As In ”相关问题
  • 第1题:

    单击命令按钮时,下列程序代码的执行结果为( )。 Private Function FirProc(x As Integer,y As Integer,z As Integer) FirProc=2*x+y+3*z End Funcfion Private Function SecProc(x As Integer,y As Integer,z As Integer) SecProc=FirProc(z,x,y)+x End Funcfion Private Sub Command1_Click() Dim a As Integer Dim b As Integer Dim c As Integer a=2 b=3 c=4 Printf SecProc(c,b,a) End Sub

    A.21

    B.19

    C.17

    D.34


    正确答案:A

  • 第2题:

    下面程序: Private Sub Form. _Click () Dim x, y, z As Integer x=5 y=7 z=0 Call P1(x, y, z) Print Str (z) End Sub Sub P1 (ByVal a As Integer, ByVal b As Integer , c As Integer) c= a+b End Sub 运行后的输出结果为______。

    A.0

    B.12

    C.Str(z)

    D.显示错误信息


    正确答案:B
    解析:在本题中,用Call过程名的方法调用过程P1,在P1中,将参数C的值改变为12。因为参数C是按地址传送(默认为按地址传送,即ByRef),故z的值变为12了,所以输出值为12。

  • 第3题:

    单击命令按钮时,下列程序的执行结果为 Private Sub Command1_Click() Dim a As Integer,b As Integer,c As Integer a=2:b=3:C=4 Print P2(c,b,A)End Sub Private Function P1(x As Integer,y As Integer,z As Integer) P1=2 * X + y + 3 * z End Function Private Function P2(x As Integer,y As Integer,z As Integer) P2=P1(z,x,y) + X End Function

    A.21

    B.19

    C.17

    D.34


    正确答案:A
    解析:对于多个过程或函数依次调用和处理与简单过程调用处理一样,本题先调用函数P2,而函数P2又调用函数P1,结果返回的顺序是从P1到P2,P2计算后输出到调用的地方。

  • 第4题:

    单击按钮时,以下程序运行后的输出结果是 Private Sub proc1(x As Integer,y As Integer,z As Integer) x=3*z y=2*z z=x+y End Sub Private Sub Command1_Click() Dim x As Integer,y As Integer,Z As Integer x=1:y=2:z=3 Call proc1(x,x,z) Print x;x;z Call proc1(x,y,y) Print x;y;y End Sub

    A.6 6 12 `

    B.9 5 10 6101051010

    C.9 6 12

    D.9 10 10 910155410


    正确答案:A
    解析:从整体上看,可得主调过程将两次调用过程Proc1后,实参的值将随形参变化而变化,现在分析一下这两次调用实参和形参是怎么变化的。第一次调用被调过程proc1,主调过程把实参x,x,z的地址分别传给形参x,y,z,此时形参x,y,z值分别为1,1,3,执行语句x=3*z后,形参x值变为9,此时相对应的实参x也变为9,执行语句y=2*z后,形参y值变为6,则相对应的实参x值变为6。执行x=x+y后,形参z值应为12,当然这次调用后,程序代码输出的数值为6,6,12;第二次调用被调过程proc1,主调过程把实参x,x,z的地址分别传给形参x,y,z。我们应注意一下,此时实参x的值为6而不是1,所以此时形参x,y,z值分别为6,2和2,执行语句x=3*z后,形参x值为6,相对实参x值也相应的变为6。执行语句y=2*z后,形参y值变为4,相应的实参y值也变为4,执行z=x+y后,形参z值变为10,相应的实参y的值变为10,而形参y和x的地址相同,最后它们值都应为10,所以此次调用后,程序代码将输出的数值为6,10和10。

  • 第5题:

    阅读下列程序: Dim SW As Boolean Function func(X As Integer)As Integer If X<20 Then Y=X Else Y=20+X End If func=Y End Function Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single, Y As Single) SW=False End Sub Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X As Single, Y As Single) SW=True End Sub Private Sub Command1_Click() Dim intNum As Integer intNum=InputBox(" ") If SW Then Print func(intNum) End If End Sub 程序运行后,单击一次窗体,再单击命令按钮,将显示一个输入对话框,如果在对话框中输入20,则程序的输出结果为

    A.0

    B.20

    C.40

    D.无任何输出


    正确答案:C
    解析:上述程序由一个通用过程和3个事件过程组成,在命令按钮事件过程中调用通用过程,并将一个参数传送给通用过程。这里要注意,只有在一定的条件下,才能调用通用过程,这个条件就是,窗体的Boolean变量SW的值必须为True,否则不能调用。而为了使SW的值为True,必须执行Form.MouseUp事件过程,这只能通过单击窗体来实现。单击窗体时,按下鼠标左键执行FormMouseDown事件过程,使得SW=False,松开鼠标后执行Form.MouseUp事件过程,使得=True。程序运行后,由于单击了一次窗体,执行了Form_Mouseup事件过程,再单击命令按钮,因而SW的值为True,调用通用过程后,在窗体上显示的内容是40。若没有事先单击窗体,而直接单击按钮,窗体上就没有任何内容输出。

  • 第6题:

    单击命令按钮执行下列程序,其输出结果是( )。

    Private Sub Command1_Click()

    Dim a As Integer,b As Integer,c As Integer

    a=3

    b=4

    c=5

    Prim SecProc(c,b,A)

    End Sub

    Function FirProc(x As Integer,y As Integer,z As Integer)

    FirProc=2*x+y+3*z

    End Function

    Function SecProc(x As Integer,y As Integer,z As Integer)

    SecProc=FirProc(z,x,y)+x

    End Function

    A.20

    B.22

    C.28

    D.30


    正确答案:C
    解析:本题是在Command1过程中调用SecProc函数,而在SecProc函数中又调用了FirPmc函数。函数调用时,实参和形参要一一对应传递。程序运行过程是:①Ptint SecProc(c,b,s)→Print SecProc(5,4,3);②Sec Proc=FinProc(z,x,y)+x→SecProc=FirProc(3,5,4)+5;③FirProc=2*x+y+3*z→FirProz=3*3+5+3*4=23;④SecProc=28→Print SeProc(c,b,A)→Print28。形参是在被调用的Sub、Function过程中定义的参数名;实参则是在调用的Sub或Function过程中定义的参数名。

  • 第7题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Command1_Click( ) Dim a As Integer,b As Integer,c As Integer a=3 b=4 C=5 Print SecProc(c,b,A)End Sub Function Fir Proc(x As Integer,y As Integer,z As Integer) Fir Proc=2*x+y+3*z End Function Function SecProc(x As Integer,y As Integer,z As Integer) SecProc=FirProc(z,x,y)+x End Function

    A.20

    B.22

    C.28

    D.30


    正确答案:C
    解析:主调过程Command1_Click输出的是SecProc(c,b,a)的返回值,调用过程SecProc时,主调过程分别把实参c、b、a地址传给形参x、y、z,此时在过程SecProc中,SecProc=FirProc(a,c,b)+c。由此看出,程序段执行此语句时,将调用过程FirProc。把实参a、c、b的地址分别传给形参x、y、z,此时在过程FirProc中,FirProc=2*x+y+3*z,所以FirProc(a,c,b)=6+4+15=25,SecProc(a,c,b)=25+3=28。

  • 第8题:

    单击命令按钮执行下列程序,其输出结果是( )。 Private Sub Command1_Click() Dim a As Integer, b As Integer, c As Integer a=3 b=4 c=5 Print SecProc(c,b,A)End Sub Function FirProc(x As Integer, y As Integer, z As Integer) FirProc=2*x+y+3*Z End Function Function SecProc(x As Integer,y As Integer, z As Integer) SecProc=FirProc(z,x,y)+x End Function

    A.20

    B.22

    C.28

    D.30


    正确答案:C
    解析:本题是在Command1过程中调用SecProc函数,而在SecProc函数中又调用了FirProc函数。函数调用时,实参和形参要一一对应传递.程序运行过程如下:①PrintSecProc(c,b,A)→PrintSecProc(5,4,3);②SecProc=FirProc(z,x,y)+x→SecProc=FirProc(3,5,4)+5;③FirProc=2*x+y+3*z→FirProc=2*3+5+3*4=23;④SecProc=28→PrintSecProc(c,b,A)→Print28。形参是在被调用的Sub,Function过程中定义的参数名;实参则是在调用的Sub或Function过程中定义的参数名。

  • 第9题:

    阅读下面的程序; Function Func(x As Integer,y As Integer)As Integer Dim n As Integer Do While n < = 4 x=x + y n = n + 1 Loop Func=x End Function Private Sub Command1_Click() Dim x As Integet, y As Integer Dim n As Integer,z As Integer x=1 y=1 For n = 1 To 6 z=Func(x,y) Next n Print z End Sub 程序运行后,单击命令按钮,输出的结果为.

    A.16

    B.21

    C.26

    D.31


    正确答案:D
    解析:过程Func有两个参数,使用的是引用方式,参数和返回值均为整型,在命令按钮事件过程的For循环中调用Func过程,共循环6次,每次循环调用一次。两个过程中使用的变量(包括参数)基本相同,但由于是局部变量,不会发生冲突。无论在事件过程还是通用过程中,y的值始终保持不变,总等于1。在Func过程中,DoLoop循环共执行5次,通过变量n控制(从0~4),每次都执行x=x+1,因此,每调用一次Func过程,都使得x=x+5,并将返回值赋给事件过程中的变量z。6次调用中,循环变量n的计算过程为:1、2、3、4、5、6:返回值z的结果为:6、11、16、21、26、31。

  • 第10题:

    在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub sub1(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) z=x * x+ y * y End Sub Private Sub Command1_Click() Dim a As Integer a = 8 Call sub1(1, 2,A)Print a End Sub 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.8

    B.2

    C.5

    D.11


    正确答案:A
    解析:因为sub1过程的形参都是传值传送,所以在其内的所有计算结果都将不返回,并不影响对应的实参值,变量a的值并没有改变,仍旧是8。

  • 第11题:

    在窗体上画一个按钮,然后编写如下的事件代码。在按钮上单击,输出为,( )。 Private Sub fun(ByVal x As Integer,ByVal y As Integer,Byval z As Integer) z=x^3*y^3 End Sub Private Sub Command1_Click() Dim m As Integer Call fun(2,3,m) Print m End Sub

    A.216

    B.0

    C.35

    D.程序不能运行


    正确答案:B
    解析:当发生了Command1.的单击事件时,调用fun过程,把常量2、3和变量m按值传给形参x、y和z,在过程fun中把表达式“x^3*y^3”的值赋给z,z的值为316。过程调用返回后,由于m是值传递,所以对z的修改并没有改变它的值,m依旧保留原来的值是0。

  • 第12题:

    单击按钮时,以下程序运行后的输出结果是 Private Sub Commandl_Click( ) Dim X As Integer,y As Integer,z As Integer x=1:y=2: Z=3 Call God(x,x,z) Print x;x;z Call God(x,y,y) Print X;y;y End Sub Private Sub God(x As Integer,y As Integer,z As Integer) x=3 * Z + 1 y=2 * Z z=x + y End Sub

    A.6 6 12 7 11 11

    B.8 5 10 5 11 11

    C.9 6 12 9 10 15

    D.8 10 10 5 9 10


    正确答案:A
    解析:从整体上看,可得主调过程将两次调用过程God后,实参的值将随形参变化而变化,现在分析一下这两次调用实参和形参是怎么变化的:第一次调用被调过程God,主调过程把实参x,x和z的地址分别传给形参x,y和z,此时形参x,y和z值分别为1,1和3,执行语句x=3*z+1后,形参x值变为10,此时相对应的实参x也变为10,执行语句y=2*z后,形参y值变为6,则相对应的实参x值变为6。执行z=x+y后,形参z值应为12,当然这次调用后,程序代码输出的数值为6,6,12;第二次调用被调过程God,主调过程把实参x,x和y的地址分别传给形参x,y和z。应注意,此时实参x的值为6而不是1,所以此时形参x,y和z值分别为6,2和2,执行语句x=3*z+1后,形参x值为7,相对实参x值也相应的变为7。执行语句y=2*z后,形参y值变为4,相应的实参y值也变为4,执行z=x+y后,形参z值变为11,相应的实参y的值变为11,而形参y和z的地址相同,所以最后它们值都应为11,所以此次调用后,输出的数值为7,11和11。

  • 第13题:

    单击命令按钮时,下列程序的执行结果是

    Private Sub Command1_Click()

    Dima As Integer,b As Integer,c As Integer

    a=3:b=4:c=5

    Print SecProc(c,b,A)End Sub

    Function FirProc(x As Integer,y As Integer,z As Integer)

    FirProc=2*x+y+3*z+2

    End Function

    Function SecProc(x As Integer,y As Integer,z As Integer)

    SecProc=FirProc(z,x,y) +x+7

    End Function

    A.20

    B.25

    C.37

    D.32


    正确答案:C
    解析:此题程序代码中用了嵌套调用,我们对这样的问题要多加小心,千万不要把实参和相对应的形参弄混。主调过程Commandl_Click输出的是SecProc(c,b,A)的返回值,调用过程SecProc时,主调过程分别把实参c、b、a地址传给形参x、y、z,此时在过程SecProc中,SecProc=FirProc(a,c,B)+7。由此看出,程序段执行此语句时,将调用过程FirProc。把实参a,c,b的地址分别传给形参x、y、2,此时在过程FirProc中,FirProc=2*x+y+3*z+2,所以FirProc(a,c,B)=6+4+15 +2=27,SecProc(a,c,B)=27+3+7=37。

  • 第14题:

    在窗体上画一个命令按钮,然后编写如下程序 Private Sub Command4 Click() Dim a As Integer,b As Integer a=1 b=2 Print N(a,B)End Sub Function N(x As Integer,y As Integer)As Integer N=IIf(x>y,x,y) End Function 程序运行后,单击命令按钮,输出结果为

    A.l

    B.2

    C.5

    D.8


    正确答案:B
    解析:事件过程N的作用是输出两个数中最大的,它调用了IIF函数,条件部分是(x>y),如果满足,那么N的值即为x的值,否则为y的值。在Sub过程中,定义了两个变量a,b,并赋给它们初值1,2,并调用Print函数,输出N(a,B)的值,因为xy,所以输出y=2。

  • 第15题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Command1_Click() Dim a As Integer,b As Integer,C As Integer a=3 b=4 c=5 Print SecProc(c,b,A)End Sub Function FirProc (x As Integer,y As Integer,z As Integer) FirProc=2 * x + y + 3 * z+2 End Function Function SecProc (x As Integer,y As hteger,z As Integer) SecProc=FirProc(z,x,y)+x+7 End Function

    A.20

    B.25

    C.37

    D.32


    正确答案:C
    解析:此题程序代码中用了两层调用,我们对样的问题要多加小心,不能掉以轻心,千万不要把实参和相对应的形参弄混淆。主调过程Commandl_Click;输出的是SecProc(c,b,A)返回值,调用过程SecProc时,主调过程分别把实参c、b、a地址传给形参x、y、z,此时在过程SecProc中,SecProc(a,C.B)+7。由此看出,程序段执行此语句时,将调用过程FirProe。把实参a,c,b的地址分别传给形参x、y、z,,此时在过程FirProe中,Firproc=2*x+y+3*z+2,所以FirProc(a,c,B)=6+4+15+2=27,SecProc(a,c,B)=27+3+7=37。注意:过程的定义和调用。

  • 第16题:

    单击命令按钮时,下列程序代码的执行结果为 ( ) Function FirProc(x As Integer, y As Integer, z As Integer) FirProc=2*x+y+3*z End Function Function SecProc(x As Integer, y As Integer, z As Integer) SecProc=FirProc(z, x, y)+x End Function Private Sub Commandl Click() Dim a As Integer, b As Integer, c As Integer a=2 :b=3 :c=4 Print SecProc(c, b,A)End Sub

    A.21

    B.19

    C.17

    D.34


    正确答案:A
    解析:执行语句Print SecProc (c,b,a)时,调用SecProc函数,此时将实参c, b,a的值对应传递给形参x,y,z。得SecProc =FirProc(a,c,b)+c,此时又需要调用Fir- Proc函数将a,c,b的值传递给对应形参x,y, z。在FirProc函数中执行语句FirProc=2*x +y+3*z即执行语句FirProe=2*a+c+3 *b其结果值为2*2+4+3*3即17。故 FirProe(a,c,b)的返回值为17。再与c相加即得SecProc函数的返回值结果21。选项A正确。

  • 第17题:

    单击命令按钮时,下列程序的执行结果是

    Private Sub Commandl_Click()

    Dim a As Integer,b As Integer,c As Integer

    a=3:b=4:c=5

    Print SecProc(c,b,A)End Sub

    Function FirProc(x As Integer,y As Integer,z As Integer)

    FirProc=2*x+y+3*z

    End Function

    Function SecProc(x As Integer,y As Integer,z As Integer)

    SecProc=FirProc(z,x,y) +x

    End Function

    A.20

    B.22

    C.28

    D.30


    正确答案:C
    解析:此题程序代码中用了双层调用,我们对这样的问题要多加小心,千万不要把实参和相对应的形参弄混。主调过程Command1_Click输出的是SecProc(c,b,A)的返回值,调用过程SecProc时,主调过程分别把实参c、b、a地址传给形参x、y、z,此时在过程SecProc中,SecProc=FirProc(a,c,B)+c。由此看出,程序段执行此语句时,将调用过程FirProc。把实参a、c、b的地址分别传给形参x、y、z,此时在过程FirProc中,FirProc=2*x+y+3*z,所以FirProc(a,c,B)=6+4+ 15=25,SecProc(a,c,B)=25+3=28,所以选项C)是正确的。

  • 第18题:

    在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click () Dim a As Integer, b As Integer, c As Integer a = 1: b = 2: c = 3 Print fun2 (c, b,A)End Sub Private Function funl (x As Integer, y As Integer, z As Integer) fun1 = 2 * x + y + 3 * z End Function Private Function fun2(x As Integer, y As Integer, z As Integer) fun2 = fun1(z, x, y)+ x End Function程序运行后,单击命令按钮,则窗体上显示的内容是

    A.7

    B.14

    C.17

    D.30


    正确答案:B
    解析:对于多个过程或函数依次调用的处理和简单过程调用处理一样,本题先调用函数fun2,而函数fun2又调用函数fun1,结果返回的顺序是从fun1到fun2,fun2计算后输出到调用的地方。只要注意函数的调用关系依次处理即可解决此类问题。

  • 第19题:

    以下程序运行时,单击窗体后,在窗体上输出的结果是 ______。 Private SubForm_Click() Dim a As Integer,b As Integer a=10 :b=20 Call ff(a,B)Print a,b End Sub Private Sub ff(x As Integer,y As Integer) x=x+y y=x+y End Sub

    A.30 50

    B.30 30

    C.20 20

    D.10 20


    正确答案:A
    解析:本题中x、y的最后取值也就是a、b的输出值。执行x=x+y=10+20=30,接着执行y=x+y= 30+20=50。所以在窗体上输出的结果是30和50。

  • 第20题:

    下面程序: Private Sub Form_Click() Dim x,y,z As Integer x=5 y=7 z=0 CallPI(x,y,z) Print Str(z) End Sub SubP1(By Val a As Integer, By Val b As Integer, c As Integer) C=a+b End Sub 运行后的输出结果为______。

    A.0

    B.12

    C.Str(z)

    D.显示错误信息


    正确答案:B
    解析:在本题中,用Call过程名的方法调用过程P1,在P1中,将参数C的值改变为12。因为参数C是按地址传送(默认为按地址传送,即ByRed,故x的值变为12了,所以输出值为12。

  • 第21题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Command1_Click() Dim a As Integer,b As Integer,c As Integer a=3:b=4:c=5 Print SecProc(c,b,a) End Sub Function FirProc(x As Integer,y As Integer,z As Integer) FirProc=2*x+y+3*z End Function Function SecProc(x As Integer,y As Integer,z As Integer) SecProc=FirProc(z,x,y)+x End Function

    A.20

    B.22

    C.28

    D.30


    正确答案:C
    解析:此题程序代码中用了双层调用,我们对这样的问题要多加小心,千万不要把实参和相对应的形参弄混。主调过程Command1_Click输出的是SecProc(c,b,a)的返回值,调用过程SecProc时,主调过程分别把实参c、b、a地址传给形参x、y、z,此时在过程SecProc中,SecProc=FirProc(a,c,b)+c。由此看出,程序段执行此语句时,将调用过程FirProc。把实参a、c、b的地址分别传给形参x、y、z,此时在过程FirProc中,FirProc=2*x+y+3*z,所以FirProc(a,c,b)=6+4+15=25,SecProc(a,c,b)=25+3=28,所以选项C)是正确的。

  • 第22题:

    以下程序运行后,单击按钮输出结果是 Private Sub Commandl_Click( ) Dim x As Integer,y As Integer,z As Integer X=4:y=2: Z=3 Call Gopd(x,x,z) Print x;X;Z Call Gopd(x,y,y) Print x;y;y End Sub Private Sub Gopd(x As Integer,y As Integer,z As Integer) X=3 * Z + 1 y=2 * z z=x + y End Sub

    A.6 6 12 7 11 11

    B.8 5 10 5 11 11

    C.9 6 12 9 10 15

    D.8 10 10 5 9 10


    正确答案:A
    解析:第一次调用被调过程Gopd,主调过程把实参x,x,z的地址分别传给形参x,y,z,此时形参x,y,z值分别为4,4和3,执行语句x=3*z+1后,形参x值变为10,此时相对应的实参x也变为10执行语句y=2*z后,形参y值变为6,则相对应的实参x值变为6;执行z=x+y后,形参z值应为12,当然这次调用后,程序代码输出的数值为6,6,12;第二次调用被调过程Gopd,主调过程把实参x,x,z的地址分别传给形参x,y,z,此时实参x的值为6而不是1,所以此时形参x,y,z值分别为6,2和2,执行语句x=3*z+1后,形参x值为7,相对实参x值也相应的变为7;执行语句y=2*z后,形参y值变为4,相应的实参y值也变为4;执行x=x+y后,形参z值变为11,相应的实参y的值变为11,而形参y和z的地址相同,最后它们值都应为11,所以此次调用后,程序输出的数值为7,11和11。

  • 第23题:

    在窗体上画一个命令按钮,然后编写如下程序 Private Sub Command1_Click( ) Dim a As Integer,b As hiteger a=1 b=2 Print N(a,B)End Sub Function N(x As Integer,y As Integer)As Integer N=IIf(x>y,x,y) End Function 程序运行后,单击命令按钮,输出结果为

    A.1

    B.2

    C.5

    D.8


    正确答案:B
    解析:事件过程N的作用是输出两个数中最大的,它调用了IIF函数,条件部分是(x>y),如果满足,那么N的值即为x的值,否则为y的值。在Sub过程中,定义了两个变量a,b,并赋给它们初值1,2,并调用Print函数,输出N(a,b)的值,因为xy,所以输出y=2。