在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Commandl_Click() Dim m As Integer, n As Integer, p As Integer m=3: n=5: p=0 Call Y(m, n, p) Print Str(p) End Sub Sub Y(ByVal i As Integer, ByVal j As Integer, k As Integer) k=i+j End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是( )A.4

题目

在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Commandl_Click() Dim m As Integer, n As Integer, p As Integer m=3: n=5: p=0 Call Y(m, n, p) Print Str(p) End Sub Sub Y(ByVal i As Integer, ByVal j As Integer, k As Integer) k=i+j End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是( )

A.4

B.6

C.8

D.10


相似考题
更多“在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Commandl_Click() Dim m As Integer, n As Integer, p As Integer m=3: n=5: p=0 Call Y(m, n, p) Print Str(p) End Sub Sub Y(ByVal i As Integer, ByVal j As Integer, k As Integer) k=i+j End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是( )A.4”相关问题
  • 第1题:

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

    Function a(x As Integer, y As Integer) As Integer

    a = IIf(x > y, x, y)

    End Function

    Private Sub Command1_Click()

    Dim n As Integer, m As Integer

    n = 10

    m = 20

    Print a(n, m)

    End Sub

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


    正确答案:20
    20

  • 第2题:

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

  • 第3题:

    在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim in As Integer,n As Integer,p As Integer m=3:n=5:p=0 Call Y(m,n,p) Print Str(p) End Sub Sub Y(ByVal i As Integer,ByVal j As Integer,k As Integer) k=i+j End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是

    A.4

    B.6

    C.8

    D.10


    正确答案:C
    解析:[命题目的] 考查考生对调用通用过程中参数传递方式的掌握情况。
      [解题要点] 此程序考查了函数的调用,函数过程有3个形参,功能是将第1个与第2个形参的和赋给第3个形参,其中前两个形参是按值传递,不会影响实参的数值,即在调用函数过程的过程中,不改变实参的数值;而第3个形参是按址传递,传递的是实参的地址,这样实参会随着过程中形参的变化而变化,即改变实参的数值。在主调过程中定义了3个整型变量,分别赋值3、5、0,调用过程后m、n的数值仍然是3、5,而p的值不再是0,变为8,即m、n的和,这也是被调函数的作用。
      [错解分析] 参数按传值方式传递时,不改变实参中的值;按传地址的方式传递时,实参和形参指向同一个存储地址,所以实参指向的内容被改变。
      [考点链接] 参数传递方式的概念和应用。

  • 第4题:

    在窗体上有一个命令按钮Command1,编写事件代码如下: Private Sub Command 1_Click() Dim x As Integer,y As Integer x=12:y=32 Call Proe(X,Y) Debug.Print x;y End Sub Public Sub Proc(n As Integer,ByVal m As Integer) n=n Mod 10 m=in Mod 10 End Sub 打开窗体运行后,单击命令按钮,立即窗口上输出的结果是( )。

    A.2 32

    B.12 3

    C.2 2

    D.12 32


    正确答案:A

  • 第5题:

    在窗体上画一个名称为CoilTlilandl的命令按钮,然后编写如下事件过程: Private Sub command1 Click() Dim m As Integer, i As Integer, x(3)As Integer For i=0 To 3:x(i)=i:Next i For i = 1 To 2: Call sub1(x,i):Next i For i = 0 To 3: Print x(i);: Next i End Sub Private Sub sub1(a()As Integer,k As Integer) Dim i As Integer Do a(k)=a(k)+a(k+1) j = j + 1 Loop While j < 2 End Sub 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.0 3 7 5

    B.0 1 2 3

    C.3 2 4 5

    D.0 5 8 3


    正确答案:D
    解析:数组也可以作为函数或者过程的参数,使用方法是直接使用数组名加括号,也可以直接使用数组名,采用sub1(x)和sub1(x())的调用形式都正确。变量i的作用只控制循环次数。

  • 第6题:

    在窗体上画一个名称为Command1 的命令按钮和一个名称为Text1的文本框,然后编写如下程序: Private Sub Command1_Click( ) Dim x,y,z As Integer x=5 y=7 z=0 Texttext = " " Call P1 (x,y,z) TextText = 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
    解析:在Visual Basic中,进行函数调用时,形式参数默认的是按传地址ByRef的方式进行传递,如果要传值调用,必须用ByVal指明。本题中a和b为传值调用,即先将x和y的值传递给a和b,然后通过c传地址调用,将a和b之和传递给主调函数的变量z,因此z的值为12,

  • 第7题:

    在窗体上画一个命令按钮,然后编写如下事件过程。 Private Sub Command1_Click( ) Dim m As Integer, n As Integer, p As Integer m=3: n=5:p=0 Call Y(m, n, p) Print Str(p) End Sub Sub Y(ByVal i As Integer, ByVal j As Integer, k As Integer) k=i+j End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是

    A.4

    B.6

    C.8

    D.10


    正确答案:C
    解析:此程序考查了函数的调用,函数过程有3个形参,功能是将第1个与第2个形参的和赋给第 3个形参,其中前两个形参是按值传递,不会影响实参的数值,即在调用函数过程的过程中,不变化实参的数值;而第3个形参是按址传递,传递的是实参的地址,这样实参会随着过程中形参的变化而变化,即改变实参的数值。在主调过程中定义了3个整型变量,分别赋值 3、5、0,调用过程后m、n的数值仍然是3、5,而p的值不再是0而变为8,即m、n的和,这也是被调函数的作用。注意: 参数按传值方式传递时,不改变实参中的值;按传地址的方式传递时,实参和形参指向同一个存储地址,所以实参指向的内容被改变。注意:参数传递方式的概念和应用

  • 第8题:

    有如下的函数过程: Function Func2(a As Integer, b As Integer)'As Integer Static m As Integer, i As Integer m=0 i=2 a=i+m+1 b=i+a+b Func2=m End Function 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim p As Integer, k As Integer, m As Integer k=4 m=1 p=Fune2(k, m) Print k; m p = Func2(k, m) Print k; m End Sub 程序运行后,单击命令按钮,输出结果为( )。

    A.3 6<CR>3 6

    B.3 6<CR>3 11

    C.3 11<CR>3 6

    D.3 11<CR>3 11


    正确答案:B
    解析:本愿意在考查调用Func2时,参数是按地址传递的,所以两次调用Fune2时,实参k、m的值都改变了。程序运行过程如下:第一次调用Func2(k,m),k被行参a改变为3,m被行参改变为 6;第二次调用函数后,a为3,m为11。

  • 第9题:

    在窗体上画一个名称为Commandl的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim n As Integer For n = 0 To 9 Step 3 Print rel(n); Next n End Sub Private Function rel(ByVal i As Integer)As Integer Dim x As Integer x = 0 For j = 1 To i If i < 5 Then rel = i: EXit Function x = x + i Next i rel = x End Function 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.1 3 5 7

    B.2 8 14 53

    C.0 3 21 45

    D.0 5 11 34


    正确答案:C
    解析:ExitFunction的功能是立即终止函数的运行并回到调用函数的地方继续执行其他语句。在Function过程的任何位置都可以设置ExitFunction语句。变量n传值为0、3、6、9,4次调用rel函数过程,由于0和3都小于5,使得i5不成立,被执行了“ExitFunction”语句,函数名将0和3返回。而6和9没有使得i5成立,变量x的计算结果分别为21和45,也被函数名返回。

  • 第10题:

    在窗体上画一个命令按钮,然后编写如下程序: Private Sub Commandl_Click( ) Dim a AS Integer,b As Integer a=15 b=2 t 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.15

    D.8


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

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

    在窗体中添加一个名称为Commandl的命令按钮,然后编写如下事件代码:

    Private Sub Command1_Click()

    Dim x As Integer,y As Integer

    x=12:y=32

    Call p(x,y)

    MsgBox x*y

    End Sub

    Public Sub p(n As Integer,By Val m As Integer)

    n=n Mod 10

    m=m Mod 10

    End Sub

    窗体打开运行后,单击命令按钮,则消息框的输出结果为【 】。


    正确答案:64
    64 解析:子过程p有两个参数m和n,参数m,n是整型,而通过“ByVal”可知,参数m是按值传递的参数。由于在过程定义时未做参数说明的情况下,默认为传址调用,所以参数n是按址传递。(按址传递的过程调用是将相应位置实参的地址传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化又会反向影响实参的值。在这个过程中,数据的传递具有双向性。)在命令按钮单击事件过程中,程序通过两个实参x,y为形参m,n赋值,“n=n Mod 10”表示12与10取余,结果为2,由于n是传址调用,所以返回实参的结果:x=2,而形式参数m因为被“ByVal”修饰,所以过程调用只是将实参y的值“单向”传送给形参 m处理,而被调用过程内部对形参m的取余操作引起的形参值的变化均不会反馈、影响实参y的值,也就是说实参y=32,通过语句“MsgBox x*y”,可以得出:x*y=2*32=64,也就是窗体打开运行后,单击命令按钮,则消息框的输出结果为64。

  • 第13题:

    在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click( ) Dim m As Integer,n As Integer,p As Integer m=3:n=5:p=O Call Y(m,n,p) Print Str(p)End SubSub Y(ByVal i As Integer,ByVal j As Integer,k As Integer) k=i + jEnd Sub程序运行后,如果单击命令按钮,则在窗体上显示的内容是

    A.4

    B.6

    C.8

    D.10


    正确答案:C
    解析:此程序考查了函数的调用,函数过程有3个形参,功能是将第一个和第二个形参的和赋给第三个形参,其中前两个形参是按值传递,不会影响实参的数值,即在调用函数过程的过程中,不变化实参的数值;而第三个形参是按址传递,传递的是实参的地址,这样实参会随着过程中形参的变化而变化,即改变实参的数值。在主调过程中定义了三个整型变量,分别赋值3、5、0,调用过程后m、n的数值仍然是3、5,而p的值不再是0而变为8,即m、n的和,这也是被调函数的作用。

  • 第14题:

    在窗体上有一个命令按钮Commandl,编写事件代码如下:

    Private SuB commandl_Click()

    Dim x As Integer,y As Integer

    x=12:y=32

    Call Proc(x,y)

    OeBug.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.2 32

    B.12 3

    C.2 2

    D.12 32


    正确答案:A
    解析:参数有两种传递方式:传址传递ByRef和传值传递ByVal。如果没有说明传递类型,则默认为传址传递。在函数.Proc(n As Integer,ByVal m As Integer)参数中,形参n默认为传址传递,形参的变化将会返回到实参,即形参n mod 10(12 rood 10)得到的结果2将返回给实参x,即x=2;而y为传值类型,不为形参的变化而变化,所以输出的x和y应为2和32。

  • 第15题:

    单击命令按钮,下列程序的执行结果为 Private Sub Commandl_Click() Dim x As Integer,y As Integer x=32:y=42 Call PCS(x,y) Print x;y End Sub Public Sub PCS(Byval n As Integer,ByVal m As Integer) n=n Mod 10+1 m=m Mood 10+1 End Sub

    A.32 42

    B.2 32

    C.2 3

    D.12 3


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

  • 第16题:

    在窗体上有一个命令按钮Commandl,编写事件代码如下:Private Sub Commandl Click( ) Dim X As Integer,Y As Integer x=12:y=32 Call Proc(x,Y) Debug.Print X;Y End Sub Public Sub proc(n As Integer,ByVal in As Integer) n=n Mod 10 m=m Mod 1O End Sub 打开窗体运行后,单击命令按钮,立即窗口上输出的结果是( )。

    A.232

    B.123

    C.22

    D.1232


    正确答案:A
    A。【解析】由程序可知proc过程作用是将参数的个位求出并赋给本身。它的第一个参数是默认按地址传递,所以它可以改变实参的值,而第二个是按值传递,形参的改变对实参无影响。于是当Callproc(x,y)后X由12变为2,而y仍为32。

  • 第17题:

    以下用户自定义函数 Function Func(a As Integer, b As Integer) As Integer Static m As Integer, i As Integer m=0:i=2 i=i+m+i m=i+a+b Func=m End Function 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim k As Integer,m As Integer,p As Integer k=4:m=1 P=Func(k,m) Print p End Sub 程序运行后,单击命令按钮,输出结果为

    A.8

    B.9

    C.10

    D.11


    正确答案:A
    解析:变量i的计算过程为i=2+0+1=3,变量m的计算过程为m=3+4+1=8,m的值通过于函数名Fune返回。

  • 第18题:

    有如下的程序。 Private Sub Commandl_Click( ) Dim k As Integer, m As Integer Dim P As Integer k=4: m=1 P=Fun(k, m) : Print P; P = Fun ( k, m) : Print P End Sub Private Function Fun( a As Integer, b As Integer) Static m As Integer, i As Integer m=5:i=2 i=i+m+1 m=i + a + b Fun=m\2 End Function 单击命令按钮后,输出结果为

    A.2 2

    B.4 4

    C.5 5

    D.6


    正确答案:D
    解析:在Sub过程中,程序段先定义了3个 Integer型变量k,m,P,并给A赋给初值4,m的初值为1,然后调用事件过程Fun,并将它的值赋给9;在事件过程 Fun中定义了两个形参,参数的传送是通过引用实参,即将k,m的地址作为a,b的地址;在Fun中,将m,i定义为静态变量,所以第一次调用后的值仍然保留,但是 m,i分别都有赋值语句,将它们的值变为5,2,所以返回值不变都是6 6。注意: 调用函数只能返回一个结果值。注意:函数调用、参数传递

  • 第19题:

    在窗体上画一个命令按钮,然后编写如下事件过程: Sub BTC(old Copy( ) As Integer,new Copy( ) As Integer) Dim i AS Integer For i=LBound(oldCopy( ))To UBound(oldCopy( )) newCopy(i)=oldCopy(i) Next i End Sub Private Sub Command1 _ Click( ) Dimm(10) As Integer,n(10)As Integer For i=1 To 10 m(i) =i*i Next i Call BTC(m,n) Print n(5) End Sub 程序运行后,单击命令按钮输出结果为

    A.0

    B.2

    C.10

    D.25


    正确答案:D
    解析:在此题中定义了一个数据拷贝函数,用数组来保存数据,在主调过程中,先用For…Next循环语句给m()赋给,然后调用BTC函数,将m()中的数据赋给n(),最后输出n(5)。在数据拷贝函数中,用了函数LBound(oldCopy())和UBound(old-Copy())分别获得数组的下界和上界,控制循环次数。用newCopy(i)=oldCopy(i)赋值语句,将m数组中的数据赋给n数组。因为m(5)=25,数组n与数组m等价,所以n(5)也是25。

  • 第20题:

    当发生Form_Click事件时,下列程序的输出结果是( )。 Private m As Integer,n As Integer Private Sub Form_Click() Dim k As Integer,p As Integer k=6:p=60 Call sub1(k,p) Print m,n,m,k,p Call sub1(k,p) Print m,n,k,p End Sub Private Sub Form_Load() m=7 n=70 End Sub Public Sub sub1(x As Integer,ByVal y As Integer) Dim m As Integer n=n+5 m=n+x+y x=x+y y=x+y End Sub

    A.7 75 66 60 7 80 126 60

    B.7 75 66 60 7 75 126 60

    C.7 75 66 60 7 80 66 60

    D.7 75 66 60 7 75 66 60


    正确答案:A
    解析:本题定义了两个窗体级变量m和n,并在窗体的Load事件中给窗体级变量m和n分别赋值7和70。当发生Form_Click事件时,首先进行第一次sub1过程的调用,把k的值6按地址传递给形参x,把p的值60按值传递给形参y。在sub1中定义了一个局部变量m,因此在该函数中使用的m是局部变量而非窗体级变量。执行下面的4条赋值语句后,窗体级变量n的值为75,局部变量m的值为142,形参x的值为66,形参y的值为126。函数调用返回后,由于p是按值传递,所以它的值没有变化,k是按地址传递,所以它的值变为邱,输出m、n、k和p的值分别是7、75、66和60。同理,分析第二次sub1过程调用,可知过程调用返回后,变量m、n、k和p的值分别是7、80、126、60。

  • 第21题:

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

  • 第22题:

    单击命令按钮时,下列程序的执行结果为 Private Sub Command1 Click() Dim x As Integer,y As Integer x=12:y=32 Call PCS(x,y) Print x;y End Sub Public Sub PCS(ByVal n As Integer,ByVal m As Integer) n=n Mod 10 m=m Mod 10 End Sub

    A.1232

    B.232

    C.23

    D.123


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

  • 第23题:

    在窗体上画一个名称为Commandl的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim x As Integer,y As Integer x = 41: y = 54 Call sub1(x,y) x = x + 1 Print x; y End Sub Private Sub sub1(n As Integer, ByVal m As Integer) n=n Mod 10 m=m\10 End Sub 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.41 54

    B.2 54

    C.1 3

    D.42 3


    正确答案:B
    解析:在Function((参数表列))过程中,“参数表列”指明了调用时传送给过程的参数类型和个数,每个参数的格式为:[ByVal][ByRef]变量名[()][As数据类型]其中系统默认为ByRef,它指明参数传送是以传地址进行的,实际参数变量的值会由于过程中对形参的操作而改变。而ByVal则不同,参数传送,是以传值传送的,实际参数变量的值不再由于过程中对形参的操作而改变,本题目中过程sub1的参数n是传地址引用,而参数m是传值引用,因此x的值改变,x=21\10+1=2;而y值不改变,仍为54。答案为选项B。