假定有以下两个过程: Sub SI (By Val x As Integer,By Val y As Integer) Dim t As Integer t=x x=y y=t End Sub Sub S2(x As Integer,y As Integer) Dim t As Integer t=x x=y y=t End Sub 则以下说法中正确的是______。A.用过程S1可以实现交换两个变量的值的操作,S2不能实现B.用过程S2可以实现交换两个变量的值的操作,S1不能实现C.用过程S1和S2都可

题目

假定有以下两个过程: Sub SI (By Val x As Integer,By Val y As Integer) Dim t As Integer t=x x=y y=t End Sub Sub S2(x As Integer,y As Integer) Dim t As Integer t=x x=y y=t End Sub 则以下说法中正确的是______。

A.用过程S1可以实现交换两个变量的值的操作,S2不能实现

B.用过程S2可以实现交换两个变量的值的操作,S1不能实现

C.用过程S1和S2都可以实现交换两个变量的值的操作

D.用过程S1和S2都不能实现交换两个变量的俏的操作


相似考题
更多“假定有以下两个过程: Sub SI (By Val x As Integer,By Val y As Integer) Dim t As Integer t=x x=y y=t End Sub Sub S2(x As Integer,y As Integer) Dim t As Integer t=x x=y y=t End Sub 则以下说法中正确的是______。A.用过程S1可以实现交换两个变量的值的操作,S2不能实现B.用过程S2可以实现交换两个变量的值的操作,S1不能实现C.用过程S1和S2都可”相关问题
  • 第1题:

    要想在过程Proc调用后返回形参x和y的变化结果,下列定义语句中正确的是______。

    A.Sub Proc(x as Integer, y as Integer)

    B.Sub Proc(By Val x as Integer, y as Integer)

    C.Sub Proc(x as Integer, By Val y as Integer)

    D.Sub Proc(By Val x as Integer, By Val y as Integer)


    正确答案:A
    解析:过程定义时,如果形式参数被声明为传值(ByVal项),则过程调用只是相应位置实参的值“单向”传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的值。由于这个过程中数据的传递只是单向性,故称为“传值调用”的“单向”作用形式。反之,如果形式参数被声明为传址(ByRef项),则过程调用是将相应位置实参的地址传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化又会反向影响实参的值。在这个过程中,数据的传递具有双向性,故称为“传址调用”的“双向”作用形式。在过程定义时,如果未做参数说明,则默认为传址调用。本题要在过程Proc调用后返回形参x和y的变化结果,所以本题的参数x和y的说明方式都需要采用传址(ByRef项),所有B、C、D选项不符合要求,由于未做参数说明,则默认为传址调用,则A选项正确。

  • 第2题:

    在窗体上画一个命令按钮,然后编写如下程序:Sub S1(ByVal x As Integer, By Val y As Integer) Dim t As Integer t=x x=y y=tEnd SubPrivate Sub Command1_ Click() Dim a As Integer, b As Integer a=10 b=30 S1 a,b Print "a=";a="b=";bEnd Sub 程序运行后,单击命令按钮,输出结果是______。

    A.a=30 b=10

    B.a=30 b=30

    C.a=10 b=30

    D.a=10 b=10


    正确答案:C
    解析:过程S1似乎是要将两个变量的值进行交换,但由于参数是用传值的方式来传递变量值的,所以执行完该过程后,a和b的值并未被交换,保持原来的值不变。

  • 第3题:

    假定有以下两个过程: Sub S1(ByVal x As Integer, ByVal y As Integer) Dim t As Integer t=K x=y y=t End Sub Sub S2(x As Integer, y As Integer) Dim t As Integer t=K x=y y=t End Sub 则以下说法中正确的是 ( )

    A.用过程S1可以实现交换两个变量值的操作,S2不能实现

    B.用过程S2可以实现交换两个变量值的操作,S1不能实现

    C.用过程S1和S2都可以实现交换两个变量值的操作

    D.用过程S1和S2都不能实现交换两个变量值的操作


    正确答案:B
    解析:本题主要是对调用方式的考查。在S1中实现的是传值调用,故不影响实际参数值。S2过程中实现的是传址调用,影响到实际参数。故用过程S2可以实现两个变量值的操作,而S1不能实现。选项B正确。

  • 第4题:

    单击命令按钮时,下列程度段的执行结果为( )。 Pfivate Sub Command1_Click() Dima As Integer,b As Integer, c As Integer a=2:b=4:c=6 Call S1(a,B) Print "a=";a;"b=";b;"c=";c Call S2(a,B) Print "a=";a;"b=";b;"c=";c; End Sub Private Sub S1(x As Integer, y As Integer) Dim c As Integer x=2*x:y=y+2:c=x+y End Sub Sub S2(x As Integer, By Val y As Integer) Dim e As Integer x=2*x:y=y+2:e=x+y End Sub

    A.a=4 b=6 c=6 a=4 b=6 c=6

    B.a=8 b=6 c=6 a=8 b=6 c=6

    C.a=4 b=6 c=6 a=8 b=6 c=6

    D.a=8 b=6 c=6 a=4 b=6 c=6


    正确答案:C
    解析:在定义子过程的参数时,如果在参数前加上ByVal,表示是“传值”参数,主调函数中参数的值不被改变,否则表示是“传地址”参数,参数值会被调用的子过程改变。

  • 第5题:

    有如下函数过程: Function Fun(By Val x As Integer,By Val y As Integer)As Integer Do While Y<>0 reminder=x Mod y x=y y=reminder Loop Fun=x End Function 以下调用函数的事件过程,该程序的运行结果是 Private Sub Command7_Click() Dim a As Integer,b As Integer a=100:b=25 x=Fun(a,B) Print x End Sub

    A.0

    B.25

    C.50

    D.100


    正确答案:B
    解析:函数的参数传递分为按值传递和按地址传递两种。按值传递是指实参直接将值传递给形参,形参不改变实参的值;按地址传递是指实参将变量的地址传递给形参。在调用函数时要注意参数的传递方式,不同的传递方式使得语句执行结果不同。

  • 第6题:

    单击命令按钮时,下列程度段的执行结果是( )。

    Pdvate Sub Command1_Clik()

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

    a=2;b=4;c=6

    CaII S1(a,B)Print"a=";"b=";b;"c=";c

    Call S2(a,B)Print"a=";a;"b=";b;"c=";c;

    End Sub

    Private Sub S1(x As Integer,y As Integer)

    Dim c As Integer

    x=2*x:y=y+2:c=x+y

    End Sub

    Sub S2(x As Integer,ByVal y As Integer)

    Dim e As Integer

    x=2*x:y=y+2:e=x+y

    End Sub

    A.a=4 b=6 c=6 a=4 b=6 c=6

    B.a=8 b=6 c=6 a=8 b=6 c=6

    C.a=4 b=6 c=6 a=8 b=6 c=6

    D.a=8 b=6 c=6 a=4 b=6 c=6


    正确答案:C
    解析:在定义子过程的参数时,如果在参数前加上ByVal,表示是“传值”参数,主调函数中参数的值不被改变;否则表示是“传地址”参数,参数值会被调用的子过程改变。题中S1过程的参数是“传地址”,因此调用后a、b、c的值都改变了,分别为4、6、6;S2过程的参数中a是“传地址”参数,b是“传值”参数,因此调用后a值改变,b值不变,因为c是过程变量,所以也没有变化,因此输出的值为8、6、6。

  • 第7题:

    有如下函数: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

  • 第8题:

    有如下函数过程: Function gys(ByVal x As Integer,ByVal y As Integer) As Integer Do While y<>0 reminder = x Mod y x=y y=reminder Loop gys=x End Function以下是调用该函数的事件过程,该程序的运行结果是______。 Private Sub Command7_Click() Dim s As Integer Dim b As Integer a=100 b=25 x=gys(a,B)Print x End Sub

    A. 0

    B.25

    C.50

    D.100


    正确答案:B

  • 第9题:

    有以下函数过程: Function Gys(ByVal x As Integer,ByVal y As Integer)As Integer Do While y< >0 Remender=x Mod v x=y Y=Reminder Loop Gys=x End Function 以下是调用该函数的事件过程,该程序的运行结果是 Private Sub Command1_Click( ) Dim a As Integer Dim b As Integer a=50 b=10 x=Cys(a,B)Print x End sub

    A.0

    B.10

    C.50

    D.100


    正确答案:B
    解析:首先要读懂Gys函数过程的意思,Gys函数过程返回参数y的值,具体过程是先令参数x的值为y的值,y的值为xMody的值,再令Gys值为x的值,据此本题的正确结果为10。

  • 第10题:

    有如下函数过程: Function fun1(By Val x As Integer,By Val 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。

  • 第11题:

    有下列两个过程: Sub S1(By Val x As Integer, By Val y As Integer) Dim t As Integer t=X x=y y=t End Sub Sub S2(x As Integer, y As Integer) Dim t As Integer t=x x=y y=t End Sub 则下列叙述中正确的是( )。

    A.用过程S1可以实现交换两个变量的值的操作,S2不能实现

    B.用过程S2可以实现交换两个变量的值的操作,S1不能实现

    C.用过程S1和S2都可以实现交换两个变量的值的操作

    D.用过程S1和S2都不能实现交换两个变量的值的操作


    正确答案:B
    解析:在S2过程中,参数的传递是以“按地址”形式传递的,这种形式在参数传递后,形参的改变可以影响实参的改变;而S1过程中,参数的传递是以“传值”形式传递的,这种形式在参数传递后,形参的变化不会影响实参的变化。

  • 第12题:

    在VB中,使用变量前一般应对变量进行定义。以下变量定义语句错误的是()。

    • A、Dim  x As Integer
    • B、Dim  x As Integer,y As Single
    • C、Var  x,y:Integer
    • D、Dim  x As Integer,y As Integer

    正确答案:C

  • 第13题:

    有以下函数过程: Function Gys (ByVal x As Integer, ByVal y As Integer) As Integer Do While y<>0 Reminder = x Mod y x = y y= Reminder Loop Gys=x End Function 以下是调用该函数的事件过程,该程序的运行结果是 Private Sub Command1_Click() Dim a As Integer Dim b As Integer a = 50 b = 10 x=Gys (a,B)Print x End Sub

    A.0

    B.10

    C.50

    D.100


    正确答案:B
    解析:本首先要读懂Gys函数过程的意思,Gys函数过程返回参数y的值,具体过程是先令参数x的值为y的值,y的值为xMody的值,再令Gys值为x的值,据此本题的正确结果为10,选B。

  • 第14题:

    单击命令按钮时,下列程序段的执行结果为( )。 Private Sub Command1_Click() Dim a As Integer, b As Integer, c As Integer a-2:b=4:c=6 Call S1(a,b)Print "a="; a; "b="; b; "c="; c Call S2(a,b)Print "a ="; a; "b="; b; "c="; c; End Sub Private Sub S1(x As Integer, y As Integer) Dim c As Integer x=2*x:y=y+2:c=x+y End Sub Sub S2(x As Integer, ByVal y As Integer) Dim e As Integer x=2*x:y=y+2:e=x+y End Sub

    A.a=4 b=6 c=6 a=4 b=6 c=6

    B.a=8 b=6 c=6 a=8 b=6 c=6

    C.a=4 b=6 c=6 a=8 b=6 c=6

    D.a=8 b=6 c=6 a=4 b=6 c=6


    正确答案:C
    解析:在定义子过程的参数时,如果在参数前加上ByVal,表示是“传值”参数,主调函数中参数的值不被改变,否则表示是“传地址”参数,参数值会被调用的子过程改变。题中S1过程的参数是“传地址”,因此调用后a、b、c的值都改变了,分别为4、6、6;S2过程的参数中a是“传地址”参数,b是“传值”参数,因此调用后:值改变,b值不变,因为c是过程变量,所以也没有变化,因此输出的值为8、6、6。

  • 第15题:

    在窗体上画一个命令按钮,然后编写如下程序: Sub S1(By Val x As Integer, By Val y As Integer) Dim t As Integer t=x x=y y=r End Sub Private Sub Command1_Click() Dim a As Integer, b As Integer a=10 b=30 S1 a,b Print"a=";"b=";b End Sub 程序运行后,单击命令按钮,.输出结果是______。

    A.a=30 b=10

    B.a=30 b=30

    C.a=10 b=30

    D.a=10 b=10


    正确答案:C
    解析:过程S1似乎是要将两个变量的值进行交换,但由于参数是用传值的方式来传递变量值的;所以执行完该过程后,a和b的值并未被交换,保持原来的值不变。

  • 第16题:

    假定有以下两个过程:

    则以下说法中正确的是( )。

    A.用过程S1可以实现交换两个变量的值的操作,S2不能实现

    B.用过程S2可以实现交换两个变量的值的操作,S1不能实现

    C.用过程S1和s2都可以实现交换两个变量的值的操作

    D.用过程S1和s2都不能实现交换两个变量的值的操作


    正确答案:B
    B)【解析】本题考察参数传递知识,在VB中,参数通过传地址和传值两种方式传送,其中传地址习惯上称为引用,引用方式通过关键字ByRef来实现,通过该方式传送实参时,可以改变传送过程的变量的值(当参数引用没有标明引用方式的关键字时,默认为传地址方式);传值就是通过值传送实际参数,它不会改变原来变量的值。

  • 第17题:

    有如下事件过程: Function UNC (ByVal x As Integer,ByVal y As Integer) As Integer Do While y<>0 sic=x/y x=y y=sic Loop UNC=x End Function 以下是该函数的调用过程,该程序的运行结果是 PriVate Sub COmmand1_Click() Dim a As Integer Dim b As Integer a=12 b=2 x=UNC (a,B)Print x End Sub

    A.0

    B.6

    C.2

    D.80


    正确答案:B
    解析:本题考查函数调用和输出格式的语句:调用UNC的过程如下:x=12,y=2时,sic=6,x=2,y=6;x=2y=6时,sic=0,x=6,y=0;y=o,所以跳出循环,输出x=6外结束程序。注意:过程的定义和调用。

  • 第18题:

    有如下函数过程。 Function Fun( By Val x As Integer,By Val y As Integer) As Integer Do While y <> 0 reminder = x Mod y xmy y = reminder Loop Fun = x End Function 以下调用函数的事件过程,该程序的运行结果是 Private Sub CommandT_Click( ) Dim a As Integer,b As Integer a = 100:b =25 x =Fun(a,B)Print x End Sub

    A.0

    B.25

    C.50

    D.100


    正确答案:B
    解析:函数的参数传递分为按值传递和按地址传递。按值传递是指,实参直接将值传递给形参,形参不改变实参的值;按地址传递是指,实参将变量的地址传递给形参。在调用函数时要注意参数的传递方式,不同的传递方式,语句执行结果不同。

  • 第19题:

    单击命令按钮时,下列程序段的执行结果是( )。 Private Sub Command1 Click( ) Dim a As Integer,b As Integer,C As Integer a=2:b=4:c=6 Call S1(a.b) Print"a=";a;"b=";b;"c=";c Call S2(a,b) Print"a=";a;"b=";b;"c=";c; End Sub Private Sub S1(X.As Integer,Y As Integer) Dim C As Integer x=2*X:y=y+2:c=x+y End Sub Sub S2(x As Integer,ByVal Y As Integer) Dim e As Integer x=2*x:Y=Y+2:e=x+y End Sub

    A.a=4 b=6 c=6 a=4 b=6 c=6

    B.a=8 b=6 c=6 a=8 b=6 c=6

    C.a=4 b=6 c=6 a=8 b=6 c=6

    D.a=8 b=6 c=6 a=4 b=6 c=6


    正确答案:C
    c。【解析】在定义子过程的参数时,如果在参数前加上ByVal,表示“传值”参数,主调函数中参数的值不被改变;否则表示是“传地址”参数,参数值会被调用的子过程改变。题中S1过程的参数是“传地址”,因此调用后a、b、C的值都改变了,分别为4、6、6:s2过程的参数a是“传地址”参数,b是“传值”参数,因此调用后a值改变,b值不变,因为C是过程变量,所以也没有变化,因此输出的值为8、6、6。

  • 第20题:

    有如下函数过程: Function Fun (By Val x As Ingeger, ByVal y As Integer)As Integer Do While…y<>0 reminder=x Mod y x=y y=reminder Loop Fun=x End Function 以下是调用该函数的事件过程,该程序的运行结果是 Private Sub Command1_Click() Dim a As Integer Dim b As Integer a=100:b=25 x=Fun(a,b)Print x End Sub

    A.0

    B.25

    C.50

    D.100


    正确答案:B
    解析:本题的难点是子函数调用过程。子函数Fun的功能是求x和y的公约数,由“欧几里德”求最大公约数的算法可知,当余数r为0时,x为x和y的最大公约数。变量,的值通过子函数名Fun返回。

  • 第21题:

    有下列两个过程:

    Sub S1(ByVal x As Integer,ByVal y As Integer)

    Dim t As Integer

    t=x

    x=y

    y=t

    End Sub

    Sub S2(x As Integer,y As Integer)

    Dim t As Integer

    t=x

    x=y

    y=t

    End Sub

    则下列叙述中正确的是( )。

    A.用过程S1可以实现交换两个变量的值的操作,S2不能实现

    B.用过程S2可以实现交换两个变量的值的操作,S1不能实现

    C.用过程S1和S2都可以实现交换两个变量的值的操作

    D.用过程S1和S2都不能实现交换两个变量的值的操作


    正确答案:B
    解析:在S2过程中,参数的传递是以“按地址”形式传递的,这种形式在参数传递后,形参的改变可以影响实参的改变;而S1过程中,参数的传递是以“传值”形式传递的,这种形式在参数传递后,形参的变化不会影响实参的变化。

  • 第22题:

    假定有以下两个过程: Sub S1(ByVal x As Integer,ByVal y As Integer) Dim t As Integer t=x x=y y=t End Sub Sub S2(x As Integer,y As Infeger) Dim t As Integer t=x x=y y=t End Sub 则以下说法中正确的是______。

    A.用过程S1可以实现交换两个变量的值的操作,S2不能实现

    B.用过程S2可以实现交换两个变量的值的操作,S1不能实现

    C.用过程S1和S2都可以实现交换两个变量的值的操作

    D.用过程S1和S2都不能实现交换两个变量的值的操作


    正确答案:B
    解析:过程定义时,如果形式参数被说明为传值(ByVal项),则过程调用只是相应位置实参的值“单向”传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的值。由于这个过程,数据的传递只是单向性,故称为“传值调用”的“单向”作用形式。反之,如果形式参数被说明为传址(ByRef项),则过程调用是将相应位置实参的地址传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化又会反向影响实参的值。在这个过程中,数据的传递具有双向性,故称为“传址调用”的“双向”作用形式。在过程定义时,如果未做参数说明,则默认为传址调用。所以本题过程s1采用的是传值的方式,当然无法实现交换两个变量的值的操作。过程S2形式参数未说明,则默认采用的是传址的方式,可以实现两个变量的值的交换操作。

  • 第23题:

    假定有以下两个过程: Sub Sl(ByVal x As Integer,ByVal y As Integer) Dim t As Integer t=x x=y y=t End Sub Sub S2(x As Integer,y As Integer) Dim t As Integer t=x x=y y=t End Sub 则以下说法中正确的是______。

    A.用过程S1可以实现交换两个变量的值的操作,S2不能实现

    B.用过程S2可以实现交换两个变量的值的操作,S1不能实现

    C.用过程S1和S2都可以实现交换两个变量的值的操作

    D.用过程S1和S2都不能实现交换两个变量的值的操作


    正确答案:B
    解析:过程定义时,如果形式参数被说明为传值(ByVal项),则过程调用只是相应位置实参的值“单向”传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的值。由于这个过程,数据的传递只是单向性,故称为“传值调用”的“单向”作用形式。反之,如果形式参数被说明为传址(ByRef项),则过程调用是将相应位置实参的地址传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化又会反向影响实参的值。在这个过程中,数据的传递具有双向性,故称为“传址调用”的“双向”作用形式。在过程定义