运行下列程序:Dim bPrivate Sub Form_Click( )a = 1: b = 1Call fun1(a)Print "X = &quo运行下列程序:Dim bPrivate Sub Form_Click( )a = 1: b = 1Call fun1(a)Print "X = "; a; ",Y = "; bEnd SubPrivate Sub fun1(a)b = 2 * aa = 3 * bEnd Sub单击窗体后,则在窗体上显示的结果是( )。A.X = 1,Y = 1B.X =

题目
运行下列程序: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
更多“运行下列程序:Dim bPrivate Sub Form_Click( )a = 1: b = 1Call fun1(a)Print "X = &quo ”相关问题
  • 第1题:

    (27)有下列函数过程( )。 Function fun1(By Val x As Integer,By Valy As Integer) As Integer Do While y<>0 reminder=x Mody x=y y=reminnder Loop Fun1=x End Function 在下列按钮单击事件中调用该函数,则该程序的运行结果是。 Private Sub Command1_Click() Dim a As Integer Dim b As Integer a=100 b=25 x=funl(a,b) Print x End Sub A.0 B.25 C.50 D.100


    正确答案:B
    【解析】可以通过两种方式来传递参数,即按值传递参数和按地址传递参数。按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用ByVal关键字指出参数是按值来传递的。按地址传递参数使过程用变量的内存地址去访问实际变量的内容,在将变量传递给过程时,通过过程可永远改变变量值。默认时是按地址传递参数。
      题中fun1函数的参数都是按值传送的,函数使用“过程名=表达式”的形式获得函数的返回值,如题中“fun1=x”语句。调用函数“x=fun1(a,b)”后,x=25。

  • 第2题:

    下面程序段的运行结果是【 】。

    Option Base 1

    Private Sub Swap (a() As Integ

    For I=1 to 10\2

    t=a(I)

    a(I)=a(10-I+1)

    a(10-I+1)=t

    Next I

    End Sub

    Private Sub Form_Click()

    Dim x(10) As Integer

    For I=1 to 10

    x(I)=I*2

    Next I

    Swap x()

    For I=1 to 10

    Print x(I)

    Next I

    End Sub


    正确答案:20 18 16 14 12 10 8 6 4 2
    20 18 16 14 12 10 8 6 4 2 解析:本题考查考生数组虚实结合的问题,在该事件过程中,定义并生成了x数组,该数组共10个元素,分别是 2 4 6 8 10 12 14 16 18 20,接着使用了不带Call的调用语句,实际参数和虚拟参数都是数组,是地址传送,在过程中访问的数组就是事件过程中的x数组。在该过程中,将数组的第一个元素和最后一个元素交换位置,依此类推,返回事件过程后输出交换后的数组全部元素。

  • 第3题:

    下列程序的运行结果为______。Private Sub Command1_ Click() Dim s As Long Dim x As Integer s = 0 for x = 99 To 1 step - 2 s=s+ x Next x Print sEnd Sub

    A.100

    B.500

    C.2500

    D.5000


    正确答案:C
    解析:单循环次数“r=int((终值-初值+步长)/步长)”。计算结果是将1~100内的奇数相加。

  • 第4题:

    下列程序的运行结果是 Private Sub Form_Click() Dim k As Integer n=5 m=1 k=1 Do m=m+2 k=k+1 Loop Until k>n Print m End Sub

    A.1

    B.12

    C.11

    D.32


    正确答案:C
    解析:本题主要是对Do...Loop Until循环语句的考查。当Loop Until后的条件不成立时,即退出循环。该题在k为1、2、3、 4、5时,都执行了循环语句,故一共执行了五次,同时m=m+2也执行了五次,最后m的值增加了10,故运行结果为11。

  • 第5题:

    执行下面程序,第一行输出结果是【 】,第二行输出结果是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输出。注意:通用过程的调用和通用过程中的参数调用。

  • 第6题:

    有下列函数过程:

    Function fun1(ByVal x As Integer,ByVal y As Integer)As Integer

    Do While y<>0

    reminder=x Mod y

    x=y

    y=reminder

    Loop

    fun1=x

    End Function 在下列按钮单击事件中调用该函数,则该程序的运行结果是( )。

    Private Sub Command1_Click()

    Dim a As Integer

    Dim b As Integer

    a=100

    b=25

    x=fun1(a,B)Print x

    End Sub

    A.0

    B.25

    C.50

    D.100


    正确答案:B
    解析:可以通过两种方式来传递参数,即按值传递参数和按地址传递参数。按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用ByVal关键字指出参数是按值来传递的。按地址传递参数使过程用变量的内存地址去访问实际变量的内容,在将变量传递给过程时,通过过程可永远改变变量值。默认时是按地址传递参数。
    题中fun1函数的参数都是按值传送的,函数使用“过程名=表达式”的形式获得函数的返回值,如题中“fun1=x”语句。调用函数“x=fun1(a,B)”后,x=25。

  • 第7题:

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

  • 第8题:

    运行下列程序:Private Sub form_Click( )Dim sl As String, s2 As Strings1 = "1234&quo

    运行下列程序:

    Private Sub form_Click( )

    Dim sl As String, s2 As String

    s1 = "1234"

    m = 0

    For i = 3 To 1 Step -1

    m = m + 1

    s2 = fun1(s1, m)

    Debug.Print s2;

    Next i

    End Sub

    Private Function fun1(x, y) As String

    fun1 = Right(x, y)

    End Function

    单击窗体后,则在立即窗口内显示结果是( )。

    A.1234

    B.4321

    C.434234

    D.1111


    正确答案:C

  • 第9题:

    运行下列程序:

    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

  • 第10题:

    运行下列程序: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

  • 第11题:

    在窗体上画一个命令按钮(名称为Command1),并编写下列代码:

    Function Fun1(ByVa1 a As Integer,b As Integer)As Integer

    Dim t As Integer

    t=a-b

    b=t+a

    Fun1=t+b

    End Function

    Private Sub Command1Click( )

    Dim X As Integer

    x=10

    Print Fun1(Vun1(X,(Fun1(x,x-1))),x-1)

    End Sub

    程序运行后,单击命令按钮,输出结果是( )。

    A.10

    B.0

    C.11

    D.21


    正确答案:B
    B。【解析】在VisualBasic中,参数通过两种方式传送,即传地址和传值。其中,传地址习惯上称为引用,当通过引用来传送实参时,可以改变传送给过程的变量值;传值就是把需要传送的变量复制到一个临时的单元中,然后把该临时单元的地址传送给被调用的通用过程,它不会改变原来变量的值,所有的变化都是在变量的副本上进行的。本题自定义函数Fun1的第1个参数按值传递,第2个参数虽然按址传递,但调用该函数时第2个参数均为表达式,因此变量x的值不受调用函数的影响。第1次调用Funl函数时,Fun1(10,9)=12;第2次调用Fun1函数时,Fun1(10,12):16;第3次调用Fun1函数时,Fun1(6,9)=0。

  • 第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题:

    有如下函数过程: Function fun1(ByVal x As Integer,ByVal y As Integer) As Integer Do While y<>0 reminder=x Mod y x=y y=reminder Loop fun1=x End Function 在下列按钮单击事件中调用该函数,则该程序的运行结果是( )。 Private Sub Command1_Click() Dim a AS Integer Dim b As Integer a=100 b=25 x=fun1(a,B) Print x End Sub

    A.0

    B.25

    C.50

    D.100


    正确答案:B
    解析:可以通过两种方式来传递参数,即按值传递参数和按地址传递参数。按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用ByVal关键字指出参数是按值来传递的。按地址传递参数使过程用变量的内存地址去访问实际变量的内容,在将变量传递给过程时,通过过程可永远改变变量值。默认时是按地址传递参数。题中fun1函数的参数都是核值传送的,函数使用“过程名=表达式”的形式获得函数的返回值,如题中“fun1=x”语句。调用函数“x=fun1(a,B)”后,x=25。

  • 第14题:

    在窗体上画一个命令按钮(名称为Command1),并编写下列代码: Function Fun1(ByVa1 a As Integer,b As Integer)As Integer Dim t As Integer t=a-b b=t+a Fun1=t+b End Function Private Sub Command1Click( ) Dim X As Integer x=10 Print Fun1(Vun1(X,(Fun1(x,x-1))),x-1) End Sub 程序运行后,单击命令按钮,输出结果是( )。

    A.10

    B.0

    C.11

    D.21


    正确答案:B
    B。【解析】在VisualBasic中,参数通过两种方式传送,即传地址和传值。其中,传地址习惯上称为引用,当通过引用来传送实参时,可以改变传送给过程的变量值;传值就是把需要传送的变量复制到一个临时的单元中,然后把该临时单元的地址传送给被调用的通用过程,它不会改变原来变量的值,所有的变化都是在变量的副本上进行的。本题自定义函数Fun1的第1个参数按值传递,第2个参数虽然按址传递,但调用该函数时第2个参数均为表达式,因此变量x的值不受调用函数的影响。第1次调用Funl函数时,Fun1(10,9)=12;第2次调用Fun1函数时,Fun1(10,12):16;第3次调用Fun1函数时,Fun1(6,9)=0。

  • 第15题:

    在窗体上画一个名称为Command1命令按钮,然后编写如下事件过程: Private Function fun1(n As Integer)As Integer Dim k As Integer If n = 1 Then k = 1 Else k = 1 + fun1(n - 1)* 2 End If fun1 = k End Function Private Sub Command1_Click () Dim m As Integer, x As Integer x = 4 m = fun1 (x) Print m End Sub 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.4

    B.6

    C.9

    D.15


    正确答案:D
    解析:fun1是一个递归过程,fun1函数过程共调用了5次,在Command1的单击事件中调用了fun1(4),其他3次调用的分别是fun1(3)、fun1(2)和fun1(1),由fun1函数过程自身调用。在fun1的调用过程中,相当于k=1、k=1+1×2=3、k=1+3×2=7、k=1+2×7=15。

  • 第16题:

    在窗体上画—个命令按钮(名称为Command1),并编写如下代码:Function Fun1 (ByVala As Integer, b As Integer)As Integer Dim t As Integer t=a-b b=t+ a Fun 1=t+ bEnd FunctionPrivate Sub Command1_ Click() Dim x As Integer x=10 Print Fun1(Fun1 (x,(Fun1(x,x-1))),x-1)End Sub程序运行后,单击命令按钮,输出结果是 ______。

    A.10

    B.0

    C.11

    D.21


    正确答案:B
    解析:ByVal表示所声明的参数是按值传递的。因此参数值的变化只在被调用的函数或过程中有效,即只是形参的值有变化,而实参不受影响。ByRef表示所声明的参数是按地址传递的,形参值的变化都会反映在实参上。如果形参名前面缺省修饰词,默认为ByRef形式。
      程序声名了一个拥有两个形参变量的函数Fun1(),形参变量a按值传递参数,变量b按地址传递参数。执行命令按钮Command1的Click事件后,三次调用函数Fun1(),程序执行的过程如下:
    1、首先调用最里面一层的Fun1函数Fun1(x,x-1),此时,a=10,b=9,t=10-9=1,b=t+ a=1+10=11,Fun1=t+ b=12,所以第一个Fun1返回值为12。
    2、接着调用中间一层Fun1函数Fun1(x,(Fun1(x,x-1)),因为形参变量a按值传递参数,形参的变化并不影响实参,所以x的值仍为10,Fun1(x,x-1)得到的返回值为12,此时,a=10,b=12,t=10-12=-2,b=t+ a=-2+10=8,Fun1=-2+8=6,所以中间一层的Fun1返回值为6。
    3、最后调用最外一层Fun1(Fun1(x,(Fun1(x,x-1))),x-1),Fun1(x,(Fun1(x,x-1)))的返回值为6,x-1=9,此时a=6,b=9,t=10-9=-3,b=t+ a=3+6=3,Fun1=3+3=0,所以最后的值为0。

  • 第17题:

    假定有如下事件过程: Privte Sub Form_Click() Dim x As Integer,n As Integer x=1 n=0 Do While x<28 x=x*3 n=n+1 Loop Print x,n End Sub 程序运行后,单击窗体,输出结果是

    A.81 4

    B.56 3

    C.28 1

    D.243 5


    正确答案:A
    解析:本题考查Do……Loop循环控制结构。Do…Loop循环控制结构是考试重点内容,历次考试都会有至少2个题目涉及该知识点,务必掌握。题目非常简单,目的是对x进行一定的计算,同时输出循环次数。x初值为1,满足条件,执行后面语句,当x=27,n=3时,继续执行循环,执行x=x*3,后,x为81,n=4,已经不满足条件,循环结束。所以最后的结果x=81,n=4,选项A正确。

  • 第18题:

    以下程序运行后输出的结果是 ______。 Option Base 1 Private Sub Form_Click() Dim A(20) For K=1 To 20 A(K)=K^2 Next K Print A(K) End Sub

    A.20

    B.441

    C.400

    D.出错信息


    正确答案:D
    解析:本题定义A是一个一维数组,数组元素的下标范围允许为1~20。在循环中,将下标变量的平方赋给该数组的每个元素。当循环结束后,输出A数组的第K个元素的值,但此时K的值是21,A数组无此元素,故产生下标越界的错误。

  • 第19题:

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

  • 第20题:

    运行下列程序:

    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

  • 第21题:

    运行下列程序:

    Private Sub form_Click( )

    x = 8: y = 2

    Call fun1((x), y)

    Print x, y

    End Sub

    Private Sub fun1(x, y)

    s = x

    x = s / y

    y = s Mod y

    End Sub

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

    A.4 2

    B.8 2

    C.8 0

    D.2 4


    正确答案:C

  • 第22题:

    运行下列程序:

    Private Sub Form_Click( )

    Dim a As Integer

    a = 1

    For i = 1 To 5

    Call fun1(a)

    Next i

    Print a

    End Sub

    Private Sub fun1(x)

    y = 2

    Do

    x = x + y

    Loop Until x > 10

    End Sub

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

    A.5

    B.1 2 3 4 5

    C.19

    D.7


    正确答案:C

  • 第23题:

    有如下函数过程: Function fun1 (ByVal x As Integer, ByVal y As Integer) As Integer Do While y <> 0 reminder=x Mod y x=y y=reminder Loop fun1=x End Function 在下列按钮单击事件中调节器用该函数,则该程序的运行结果是( )。 Private Sub Command1_Click() Dim a As Integer Dim b As Integer a=100 b=25 x=fun1(a,b)Print x End Sub

    A.0

    B.25

    C.5O

    D.100


    正确答案:B
    解析:可以通过两种方式来传递参数,即按值传递参数和按地址传递参数。按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身.用ByVel关键字指出参数是按值来传递的。按地址传递参数使过程用变量的内存地址去访问实际变量的内容,在将变量传递给过程时,通过过程可,永远改变变量值.默认时是按地址传递参数。题中fun1函数的参数都是按值传送的,函数使用“过程名=表达式”的形式获得函数的返回值,如愿中“fun1=x”语句。调用函数“x=fun1(s,b)”后,x=25。