单击命令按钮时,下列程序的执行结果是Private Sub Command1_Click()BT 4End SubPrivate Sub BT(x As Integer)x=x*2+1If x<6 ThenCall BT(x)End Ifx=x*2Print x;End SubA.15B.16C.17D.18

题目

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

Private Sub Command1_Click()

BT 4

End Sub

Private Sub BT(x As Integer)

x=x*2+1

If x<6 Then

Call BT(x)

End If

x=x*2

Print x;

End Sub

A.15

B.16

C.17

D.18


相似考题
更多“单击命令按钮时,下列程序的执行结果是Private Sub Command1_Click()BT 4End SubPrivate Sub BT(x As Integer)x=x*2+1If x<6 ThenCall BT(x)End Ifx=x*2Print x;End SubA.15B.16C.17D.18”相关问题
  • 第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题:

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

    Dim x As Integer

    Sub inc(a As Integer)

    x=x+a

    End Sub

    Private Sub Command1_Click()

    inc 2

    inc 3

    inc 4

    Msgbox x;

    End Sub

    程序执行后,单击Command1命令按钮,消息框显示结果是【 】。


    正确答案:9
    9 解析:inc函数每执行一次就向x上累加一次传入的参数,所以最后x的值为:2+3+4=90

  • 第3题:

    单击命令按钮时,下列的执行结果为 Private Sub Command1_Click() Dim x As Integer,y As Integer x=86:y=29 Call Proc(x,y) Print x;y End Sub Public Sub Proc(n As Integer,ByVal m As Integer) n=n Mod 10 m=m Mod 10 End Sub

    A.12 32

    B.6 29

    C.2 3

    D.12 3


    正确答案:B
    解析:在调用过程时,一般主调与被调过程之间有数据传递,即将主调过程的实参传递给被调用的过程,完成实参与形参的结合,然后执行被调过程,在VisualBasic中,实参与形参的结合有两种方式:即传址与传值。这两种方法的特点如下:传址的结合过程是,当调用一个过程是,它将实参的地址传给形参,在被调用的过程中,对形参的任何操作都变成了对相应实参的操作,因此实参的值会随形参的改变而改变。传值的结合过程是,当调用一个过程时,系统将实参的值赋值给形参并断开了联系,被调用过程中的操作时在形参自己的存储单元中进行的,当过程调用结束时,这些形参所占用的存储单元也同时被释放,因此在过程中对形参的任何操作不会影响实参。而题中被调过程Proc中有两个形参,其中第一个形参n为传址方式,第二个形参m为传值方式。主调过程分别把实参x、y传递给Proc,所以当过程调用结束后,实参x的值应随着被调过程变化而变化,而实参y值在主调函数中始终不变,所以输出y的值仍为29;在被调过程中"n=nModl0"被调用时,相当于“x=xModl0”,所以x的值最终为6。

  • 第4题:

    执行下面程序,第一行输出结果是【 】,第二行输出结果是47。

    Option Explicit

    Private Sub Form_Click( )

    Dim A As Integer

    A=2

    Call Sub1 (A) End Sub

    Private Sub1 (x As Integer)

    x=x*2+1

    If x<10 Then

    Call Sub1 (x)

    End If

    x=x*2+1

    Print x

    End Sub


    正确答案:23
    23 解析:递归是一种十分有用的程序设计技术。递归过程是在过程定义中调用(或间接调用)本过程的过程。递归过程的关键部分就是要子过程函数 Sub1()被调用了多少次。当x=2时调用了第1次,当 x=5时调用了第2次,当x=11时不再调用,退出之前分别按x=23和x=47输出。注意:通用过程的调用和通用过程中的参数调用。

  • 第5题:

    单击命令按钮时,下列程序的执行结果为 Private Sub Command1_Click() Dim x As Integer,y As Integer x=50:y=78 Call PPP(x,y) Print x;y End Sub Public Sub PPP(ByVal n As Integer,ByValm As Integer) n=n\10 m=m\10 End Sub

    A.08

    B.50 78

    C.450

    D.78 50


    正确答案:B
    解析:在调用过程时,一般主调与被调过程之间有数据传递,即将主调过程的实参传递给被调用的过程,完成实参与形参的结合,然后执行被调过程,在VisualBasic中,实参与形参的结合有两种方式,即传址与传值。这两种方法的特点如下:传址的结合过程时,当调用一个过程时,它将实参的地址传给形参,因此在被调用的过程中,对形参的任何操作都变成了对相应实参的操作,因此实参的值会随形参的改变而改变。传值的结合过程时,当调用一个过程时,系统将实参的值复制给形参并断开了联系,被调用过程中的操作是在形参自己的存储单元中进行的,当过程调用结束时,这些形参所占用的存储单元也同时被释放,因此在过程中对形参的任何操作不会影响实参。而题中被调过程PPP中有两个形参,两者均为传值方式。主调过程分别把实参x、y传递给PPP,所以当过程调用结束后,实参x、y的值都没有改变,最后输出的值应为5078。

  • 第6题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Book( x As Integer) x=x*2+1 If x<6 Then Call Book(x) End If x=x * 2 + 1 Print x; End Sub Private Sub Command2_Click( ) Book 2 End Sub

    A.23 47

    B.10 36

    C.22 44

    D.24 50


    正确答案:A
    解析:此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用Book过程,把实参2传递给Book过程中的形参x,由x=x*2+1语句推出x=5,此时满足Book过程体中判断语句的判断条件,执行Call Book(x)语句,第二次调用Book过程。由x=x*2+1语句得到x值为11,判断条件116为假,故返回此调用过程执行x=x*2+1语句得x=23并输出,结束此次调用过程。由于两次调用Book过程,第二次仍返回调用时的断点语句,即执行x=x*2+ 1,Print x,输出x的值为47,返回到主调过程,结束程序,两次输出为23 47,正确答案为选项A。注意: 递归调用法是Visual Basic中一种特殊的函数调用方法。这种函数采用嵌套调用函数本身的方式调用函数。

  • 第7题:

    执行下面这段程序后,单击命令按钮,窗体中输出结果是 ______。 Private Sub Command1_Click() a=1 : b=4 : c = 9 : d = 5 If a < b Then If c<d Then x=True Else If a<c Then x=False Else x=True End If End If End If Print Val(x) End Sub

    A.True

    B.False

    C.0

    D.1


    正确答案:C
    解析:当ab为真时,程序继续进行;当cd为假时,执行else分支;当ac为真时,执行x=False,跳出三层If语句,执行输出语句。Val函数返回字符对应的数值,Val(x)为0,在窗体中输出结果。

  • 第8题:

    单击命令按钮时,下列程序代码的执行结果为______。 Private Function FirProc (x As Integer,y As Integer,z As Integer) FirProc=2*x+y+3*z End Function Private Function SecProc(x As Integer,y As Integer,z As Integer) SecProc=FirProc(z,x,y)+x End Function Private Sub Command1_Click() Dim a As Integer Dim b As Integer Dim 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

  • 第9题:

    单击命令按钮,下列程序的执行结果是 Private Sub Blck (x As Integer) x = x * 2 + l If x <6 Then Call Blck(x) End If x = x * 2 + 1 Print x; End Sub Private Sub Commandl_Click() Blck 2 End Sub

    A.23 47

    B.10 36

    C.22 44

    D.24 50


    正确答案:A
    解析:考查考生对过程的理解。@解析@此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用Blck过程,把实参2传递给Blck过程中的形参x,由x=x*2+1语句推出x=5,此时满足Blck过程体中判断语句的判断条件,执行CallBlck(x)语句,第二次调用Blck过程。由x=x*2+1语句得到x值为11,判断条件116为假,故返回此调用过程,执行x=x*2+l语句,的x=23并输出,结束此次调用过程。由于两次调用Blck过程,第二次仍返回调用时的断点语句,即执行x=x*2+1,Printx,输出x的值为47,返回到主调过程,两次输出为2347。

  • 第10题:

    单击命令按钮时,下列程序的执行结果是 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

  • 第11题:

    单击命令按钮时,下列程序的执行结果是 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 Integer, z As Integer) SecProc = FirProc ( z, x, y) + x + 7 End Function

    A.20

    B.25

    C.37

    D.32


    正确答案:C
    解析:此题程序代码中用了嵌套调用,我们对这样的问题要多加小心,不能掉以轻心,千万不要把实参和相对应的形参弄混淆。主调过程Command1_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、z,此时在过程FirProc中,FirProc=2*x+y+3*z+2,所以FirProe(a,c,b)=6+4+15+2=27,SecProc(a,c,b)=27+3+7=37。

  • 第12题:

    执行下面程序,第一行输出结果是 [ ] ,第二行输出结果是 [ ] 。

    Option Explicit

    Private Sub Form_Click()

    Dim A As Integer

    A=2

    Call Sub1(A)End Sub

    Private Sub1(x As Integer)

    x=x*2+1

    If x<10 Then

    Call Sub1(x)

    End If

    x=x*2+1

    Print x

    End Sub


    正确答案:23 47
    23 , 47 解析:递归是一种十分有用的程序设计技术。递归过程是在过程定义中调用(或间接调用)本过程的过程。递归过程的关键部分就是要子过程函数Sub1()被调用了多少次。当x=2时调用了第一次,当x=5时调用了第二次,当x=11时不再调用,退出之前分别按x=23和x=47输出。

  • 第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 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计算后输出到调用的地方。

  • 第15题:

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

  • 第16题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Command1_Click() BT 4 End Sub Private Sub BT(x As Integer) x=x*2+1 If x<6 Then Call BT(x) End If x=x*2 Print x; End Sub

    A.15

    B.16

    C.17

    D.18


    正确答案:D
    解析:此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用BT过程,把实参4传递给BT过程中的形参x,由x=x*2+1语句推出x=9,此时不满足BT过程中判断语句的判断条件,执行x=x*2;Print x;语句。由x=x*2语句得到x值为18并输出,结束此次调用过程,返回到主调过程结束程序,输出结果为18。

  • 第17题:

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

    Private Sub Command1_Click()

    BT 4

    End Sub

    Private Sub BT(x As Integer)

    x=x*2 + 1

    If x < 6 Then

    Call BT(x)

    End If

    x=x  2

    Print x;

    End Sub

    A.15

    B.16

    C.17

    D.18


    正确答案:D
    解析:此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用BT过程,把实参4传递给BT过程中的形参x,由x=x2+1语句推出x=9,此时不满足BT过程中判断语句的判断条件,执行x=x2;Print x;语句。由x=x2语句得到x值为18并输出,结束此次调用过程,返回到主调过程结束程序,输出结果为18。

  • 第18题:

    在窗体上画一个命令按钮,名称为Command1。然后编写如下程序: Private Sub Command1_Click() Dim a As Integer,b As Integer,c As Integer If a=0 Then x=x-1 Else If b<>0 Then End If End If If c<>0 Then x=3 Else x=4 End If Print x End Sub 程序运行后,单击命令按钮,其输出结果为 ______。

    A.34

    B.4

    C.35

    D.3


    正确答案:B
    解析:本题先定义了三个变量a、b和c,由于没有给它们赋值,因此他们的值都为0。接着执行后面的If语句,条件“a=0”为True,执行“x=x-1”后x的值为-1。接着执行第二个If语句,判断条件“c>0”为False,执行Else后面的语句后x的值为4。所以最后输出x的值为4。

  • 第19题:

    单击命令按钮执行下列程序,其输出结果是( )。 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过程中定义的参数名。

  • 第20题:

    在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序: Public x As Integer Private Sub Command1_Click() x=10 Call s1 Call s2 MsgBox x End Sub Private Sub sl() x=x+20 End Sub Private Sub s2() Dim x As Integer x=x+20 End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果为( )。

    A.10

    B.30

    C.40

    D.50


    正确答案:B
    解析: 本题考查变量作用域的知识。在整个程序中定义了一个全局变量x,在命令按钮的单击事件中对这个x赋值为10,然后依次调用s1和s2;在s1中对x自加了20;在s2中用Dim定义了一个局部变量x,按照局部覆盖全局的原则,在s2中的操作都是基于局部变量x而不是全局变量x。故此最终的输出结果为30。

  • 第21题:

    单击命令按钮时,下列程序的执行结果为 Private Sub Command1_Click( ) Dim x As Integer,y As Integer x=50:y=78 Call PPP(x,y) Print x;y End Sub Public Sub PPP(ByVM n As Integer,ByVal m As Integer) n=n\l0 m=m\l0 End Sub

    A.08

    B.50 78

    C.450

    D.78 50


    正确答案:B
    解析:在调用过程时,一般主调与被调过程之间有数据传递,即将主调过程的实参传递给被调用的过程,完成实参与形参的结合,然后执行被调过程,在VisualBasic中,实参与形参的结合有两种方式,即传址与传值。这两种方法的特点如下:1)传址的结合过程时:当调用一个过程时,它将实参的地址传给形参,因此在被调用的过程中,对形参的任何操作都变成了对相应实参的操作,因此实参的值会随形参的改变而改变。2)传值的结合过程时:当调用一个过程时,系统将实参的值复制给形参并断开了联系,被调用过程中的操作是在形参自己的存储单元中进行的,当过程调用结束时,这些形参所占用的存储单元也同时被释放,因此在过程中对形参的任何操作不会影响实参。而题中被调过程PPP中有两个形参,两者均为传值方式。主调过程分别把实参x、y传递给PPP,所以当过程调用结束后,实参x、y的值都没有改变,最后输出的值应为5078。

  • 第22题:

    在窗体上画一个命令按钮,名称为Command1。然后编写如下程序: Private Sub Command1_Click() Dim a As Integer,b As Integer,c As Integer If a=0 Then x=x-1 Else If b<>0 Then End If End If If c<>0 Then x=3 Else x=4 End If Print x End Sub程序运行后,如果单击命令按钮,则在窗体上显示的内容是( )。

    A.34

    B.4

    C.35

    D.3


    正确答案:B
    解析:本题先定义了三个变量a、b和c,由于没有给它们赋值,因此它们的值都为0。接着执行后面的If语句,条件“a=0”为True,执行“x=x-1”后x的值为-1。接着执行第二个If语句,判断条件“c>0”为False,执行Else后面的语句后x的值为4。所以最后输出x的值为4。

  • 第23题:

    单击命令按钮时,下列程序的执行结果是 Private Sub Commandl_Click( ) BT 4 End Sub PriVate Sub BT(x As Integer) X=X * 2 + 1 If x <6 Then Call BT(x) End If X=x * 2 Print x; End Sub

    A.15

    B.16

    C.17

    D.18


    正确答案:D
    解析:此题在函数调用过程中采用了简单递归的方式,具体流程如下:主调过程调用BT过程,把实参4传递给BT过程中的形参x,由x=x*2+1语句推出x=9,此时不满足BT过程体中判断语句的判断条件,执行x=x*2;Printx;语句。由x=x*2语句得到x值为18并输出,结束此次调用过程,返回到主调过程结束程序,输出结果为18。