运行下列程序:Dim x, yPrivate Sub Form_Click( )x = 1: y = 1: z = 1fun1 (1)Print x; y; zEnd SubPrivate Sub fun1(a)x = a + x: y = a + x: z = a + yEnd Sub单击窗体后,则输出结果是( )。A.1 1 1B.2 3 1C.2 3 4D.2 2 1

题目

运行下列程序:

Dim x, y

Private Sub Form_Click( )

x = 1: y = 1: z = 1

fun1 (1)

Print x; y; z

End Sub

Private Sub fun1(a)

x = a + x: y = a + x: z = a + y

End Sub

单击窗体后,则输出结果是( )。

A.1 1 1

B.2 3 1

C.2 3 4

D.2 2 1


相似考题
参考答案和解析
正确答案:B
更多“运行下列程序:Dim x, yPrivate Sub Form_Click( )x = 1: y = 1: z = 1fun1 (1)Print x; y; zE ”相关问题
  • 第1题:

    单击按钮时,以下程序运行后的输出结果是 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。

  • 第2题:

    下列程序运行后在立即窗口输出结果是( )。 Private Sub Form_Click() x="a":y="b" z=1:u=2 Debug. Print x; y, z; u Debug. Print z; x, y; u End Sub

    A.a b 1 2 1 ab 2

    B.a b 1 2 1 a b 2

    C.a b 1 2 1 a b 2

    D.a b 1 2 1 a b 2


    正确答案:B
    解析:用print输出多个表达式或字符串时,各表达式用分隔号(逗号、分号、空格)隔开。如果输出的各表达式之间用逗号分隔,则按标准输出格式(以14个字符位置为单位把一个输出行分为若干个区段)显示数据项;如果以分号或空格作分隔符,则按紧凑输出格式输出数据。题中,以“-”表示分区段的14个字符的位置,选项B)符合题童。

  • 第3题:

    单击一次窗体之后,下列程序代码的执行结果为______。 Private Sub Command1_ Click() Dim a As Integer, b As Integer, c As Integer a = 1: b = 2: c = 4 Print Value(a, b,C)End Sub Function Num(x As Integer, y As Integer, z As Integer) Num = x * x + y * y + z * z End Function Function Value(x As Integer, y As Integer, z As Integer) Value = Num(x, y, z) + 2 * x End Function

    A.21

    B.23

    C.19

    D.35


    正确答案:B

  • 第4题:

    以下程序运行后的输出结果是 ______。 Sub add(x,y) x=x+y Print "x=";x;",y=";y End Sub Private Sub Command1_Click() x=1 y=1 Call add((x),(y)) Print"x="; x;",y=";y End Sub

    A.x=1,y=1 x=2,y=2

    B.x=2,y=1 x=1,y=1

    C.x=1,y=1 x=1,y=1

    D.x=2,y=1 x=2,y=1


    正确答案:B
    解析:在过程调用语句中,一般不特别指明,参数是按传地址方式传递的。此题两个实际参数都用圆括号括起,表示为传值方式,形参的变化不影响实参,因此,虽然形参x变为2,在过程add中输出2,但返回事件过程后,输出x的值不受影响,为1。

  • 第5题:

    下面程序: 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。

  • 第6题:

    阅读下面的程序; 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。

  • 第7题:

    在窗体上画一个名称为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。

  • 第8题:

    运行下列程序:

    Private Sub Form_Click( )

    a$ = 2

    b$ = 1

    Call abcd(a, b, c$, d$)

    Print c; d

    End Sub

    Private Sub abcd(x$, y$, z$, s$)

    z = x + y

    s = x - y

    End Sub

    单击窗体后,则在窗体上显示的结果是( )。

    A.3 1

    B.1 3

    C.211

    D.显示出错信息


    正确答案:C

  • 第9题:

    运行下列程序:Dim bPrivate Sub Form_Click( )a = 1: b = 1Call fun1(a)Print "X = &quo

    运行下列程序:

    Dim b

    Private Sub Form_Click( )

    a = 1: b = 1

    Call fun1(a)

    Print "X = "; a; ",Y = "; b

    End Sub

    Private Sub fun1(a)

    b = 2 * a

    a = 3 * b

    End Sub

    单击窗体后,则在窗体上显示的结果是( )。

    A.X = 1,Y = 1

    B.X = 2,Y = 6

    C.X = 6,Y = 2

    D.X = 6,Y = 1


    正确答案:C

  • 第10题:

    下面程序:

    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(By Val a As Integer, By Val b As Integer, c As Integer)

    c=a+b

    End Sub

    运行后的输出结果为______。

    A.0

    B.12

    C.Str(2)

    D.显示错误信息


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

  • 第11题:

    程序段如下,当发生Form_Click事件时,窗体上输出的结果是( )。 Option Explicit Private x As Integer Public y As Integer Sub Test() Dim y as integer x=2:y=2 Print"x1=";x;"y1=";y End Sub Private Sub Form_Click() x=1:y=1 Test Print "X2=";x;"y2=";y End Sub

    A.x1=2 y1=2 x2=2 y2=1

    B.x1=2 y1=2 x2=2 y2=2

    C.x1=2 y1=1 x2=2 y2=2

    D.x1=2 y1=1 x2=2 y2=1


    正确答案:A
    解析:本题首先定义了一个窗体级变量x和一个全局变量y。当发生窗体的单击事件后,给窗体级变量x和全局变量y分别赋值1,然后调用Test函数。在该函数中定义了一个局部变量y,在函数中使用的y是局部变量,给窗体级变量x赋值2,给局部变量y赋值2,输出的x和y的值都是2。函数调用返回后,窗体级的变量x的值为2,全局变量y的值依旧为1。

  • 第12题:

    以下是某个窗体的模块代码,请分析单击窗体后程序运行至"*"号位置时变量X、Y和Z的值分别是【 】。

    DIM X AS INTEGER

    DIM Y AS INTEGER

    PRIVATE SUB FORM_CLICK()

    DIM X AS INTEGER

    X=1

    Y=1

    CALL AA(Y+1)

    Z=BB(X)

    '* * * * * * *

    MSGBOX "X="&X&"/Y="&Y&"/Z="&Z

    END SUB

    PRIVATE SUB AA(BYVAL Z AS INTEGER)

    Y=Z+X

    Z=X+Y

    END SUB

    PRIVATE FUNCTION BB(BYREF Y AS INTEGER

    Y=Y+1

    BB=X+Y

    END FUNCTION


    正确答案:222
    2,2,2 解析:调用AA过程后,全局变量Y的值为2。这时形参为局部变量Y,而实参为局部变量 X,传递采用“传址”调用,即形参Y与实参X占用同一内存地址,并且形参Y会获得实参X的传递值1。当执行BB过程中的Y=Y+1语句时,形参Y与实参x的值均为1+1=2,此时,函数的返回值为BB=X+Y,是全局变量X与形参Y相加,值为0+2=2。综合判断,得出答案为2, 2,2。

  • 第13题:

    有如下程序: Private Sub Commandl_Click( ) Dim i As Integer For i=1 To 2 DS Next i End Sub Sub DS( ) Dim x As Integer,m As String Static y,n X=X + 1 y=y + 1 m=m &"*”:n=n&"#" Print x,y,m,n End Sub 程序运行后,输出的结果是

    A.1 1 * #

    B.1 1 * #

    C.1 1 * # 1 1 * # 1 2 * #

    D.1 1 * # 1 1 * ## 1 2 * ##


    正确答案:D
    解析:当i=1时,调用函数过程DS,由于y,n为静态变量值保存,执行x=x+1;y=y+1后x=1,y=1执行m=m&"*":n=n&"#"后,m="*",n="#";当I=2时同上,只是y=2,n="##"。输出结果如选项D)所示。

  • 第14题:

    单击一次窗体之后,下列程序代码的执行结果为______。 Private Sub Command1_ Click() Dim x As Integer, y As Integer, z As Integer x = 1: y = 2: z = 3 Call fun1 (x, y, z) Print x; y; z Call fun2(x, y, z) Print x; y; z End Sub Private Sub fun1(x As Integer, y As Integer, z As Integer) x = 10 * z y=z*z+ x z=x+ y+ z End Sub Private Sub fun2 (ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) x=10*z y=z*z+ x z=x+ y +z End Sub

    A.1 2 3 30 39 72

    B.1 2 3 1 2 3

    C.30 39 72 1 2 3

    D.30 39 72 30 39 72


    正确答案:D

  • 第15题:

    有如下事件过程: Private Sub Commaild1_Click( ) Dim i As Integer For i =1 To 2 DC Next i End Sub Sub DC( ) Dim x As Integer,m As String Static y,n x=x + 1 y=y + 1 m=m&"*":n=n &"#" Print x,y,m,n End Sub 程序运行后,输出的结果是

    A.1 1 * # 1 1 * #

    B.1 1 * # 1 2 * #

    C.1 1 * # 1 1 * ##

    D.1 1 * # 1 2 * ##


    正确答案:D
    解析:本题考查函数调用和输出格式的语句。当I=1时,调用函数过程DC,由于y,n为静态变量值保存,执行x=x+1;y=y+1后x=1,y=1;执行m=m&"*":n=n&"#"后,m="*",n="#";当I=2时同上,只是y=2,n="##"。

  • 第16题:

    有如下函数:Private Function firstfunc(x As Integer, y As Integer) As Integer Dim n As Integer Do While n <= 4 x=x +y n=-+1 Loop firstfunc = x End Function调用该函数的事件过程如下:Private Sub Command1_lick() Dim x As Integer Dim y As Integer Dim n As Integer Dim z As Integer x=1 y=1 For n = 1 To 3 z = firstfunc(x, y) Next n Print z End Sub该事件过程的执行结果是 ______。

    A.1

    B.3

    C.16

    D.9


    正确答案:C

  • 第17题:

    有下列程序: Private Sub Command1_Click() X$="Nanchang" y$="Beijing" z$="Nanjing" z$=InStr(Left(x$,3)+Right(y$,4),z$) Print z$ End Sub 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.0

    B.1

    C.3

    D.4


    正确答案:B
    解析:Left(x$,3)的返回值为“Nan”,Right(y$,4)的返回值为“jing”,InStr("Nanjing",z$)的返回值为1。

  • 第18题:

    下面程序: 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.Sb(z)

    D.显示错误信息


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

  • 第19题:

    运行下列程序:Private Sub Form_Click( )Dim x As Integer, y As String, z As Stringy = &qu

    运行下列程序:

    Private Sub Form_Click( )

    Dim x As Integer, y As String, z As String

    y = "12345"

    For x = 1 To Len(y)

    z = Mid(Left(y, x), 1)

    Next x

    Print z

    End Sub

    单击窗体后,则在窗体上显示的结果是( )。

    A.1

    B.11111

    C.55555

    D.12345


    正确答案:D

  • 第20题:

    运行下列程序:Private Sub Form_Click( )Dim y As Integer, x As IntegerDo Until x > 20x

    运行下列程序:

    Private Sub Form_Click( )

    Dim y As Integer, x As Integer

    Do Until x > 20

    x = x + 10

    y = y + x

    If x > 20 Then Exit Do

    Loop

    Print x, y

    End Sub

    单击窗体后,则在窗体上显示的结果是( )。

    A.10 20

    B.30 60

    C.10 30

    D.20 60


    正确答案:B

  • 第21题:

    以下程序运行后,单击按钮输出结果是 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。

  • 第22题:

    单击按钮时,以下列程序运行后的输出结果是 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


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

  • 第23题:

    单击按钮时,以下程序运行后的输出结果是 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。