有如下Sub过程:Sub ind(a As Integer)Static x As Integerx= x + aPrint x:End Sub以下是调用它的事件过程,程序运行后,单击命令按纽Command1三次,输出结果为【 】。Private Sub Command1_Click()Ind 2End Sub

题目

有如下Sub过程:

Sub ind(a As Integer)

Static x As Integer

x= x + a

Print x:

End Sub

以下是调用它的事件过程,程序运行后,单击命令按纽Command1三次,输出结果为【 】。

Private Sub Command1_Click()

Ind 2

End Sub


相似考题
更多“有如下Sub过程: Sub ind(a As Integer) Static x As Integer x= x + a Print x: End Sub 以下是 ”相关问题
  • 第1题:

    要求当鼠标在图片框P1中移动时,立即在图片框中显示鼠标的位置坐标。下面能正确实现上述功能的事件过程是

    A.Private Sub P1_MouseMove(Button As Integer,Shift As Integer,x As Single,Y As Single) Print X,Y End Sub

    B.Private Sub P1_M0useDown(Button As Integer,Shift As Integer,X As Single,Y As Single) Picture.Print X,Y End Sub

    C.Private Sub P1_MouscMove(Button As integer,Shift As Integer,X As Single,Y As Single) P1.Print X.Y End Sub

    D.Private Sub Form_MouseMove(Button As Integer,Shift As Integer,x As Single,Y As Single) P1.Print X.Y End Sub


    正确答案:C
    解析:鼠标在图片框中移动,对象应为图片框控件,而不是窗体,选项D)是错误的;鼠标移动触发的是MouseMove事件,选项B)是错误的;在图片框内显示坐标,Print的对象名为图片框,如果没有对象名,则默认输出到窗体上,所以正确的答案为C)。

  • 第2题:

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

  • 第3题:

    有如下一个Sub过程: Sub mlt(ParamArray numbers()) n=1 For Each x In numbers n=n*x Next x Print n End Sub 在一个事件过程中如下调用该Sub过程: Private Sub Command1_Click() Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer a=1 b=2 c=3 d=4 mlt a,b,c,d End Sub 该程序的运行结果为( )。

    A.12

    B.24

    C.36

    D.48


    正确答案:B

  • 第4题:

    执行下列程序后,鼠标单击窗体,输出结果为

    Private Sub Form_Click()

    Print "Click";

    End Sub

    Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)

    Print "Donw"

    End Sub

    Private Sub Form_MouseUp(ButtonAs Integer,Shift As Integer,X As Single,Y As Single)

    Print "Up"

    End Sub

    A.DownUpClick

    B.ClickDownUp

    C.DownClickUp

    D.UpDownCliek


    正确答案:A
    解析:鼠标单击时,依次引发MouseDown、MouseUp和Click事件,即Click事件包含鼠标按下和放开事件。

  • 第5题:

    有如下事件过程: 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="##"。

  • 第6题:

    在窗体上画一个命令按钮,然后编写下列程序 Private Sub Command3_Click( ) Tcl 2 Tcl 3 Tel 4 End Sub Sub Tcl(a As Integer) Static x As Integer x=x + a Print x; End Sub 程序运行后,单击命令按钮,输出结果为

    A.2 3 4

    B.2 5 9

    C.3 5 4

    D.2 4 3


    正确答案:B
    解析:在过程TCL中,将Integer型变量x定义为静态变量(StatiC),Static语句的格式与Dim语句完全一样,但Static语句只能出现在事件过程,Sub过程或Func-tion过程中,在过程中的Static变量只有局部的作用域,即只能在本过程中可见,但可以和模块级变量传递,即使过程结束后,其值仍能保留。Tcl过程是将变量a的值加上x赋给x,然后输出x的值;第一次调用Tcl过程时,x未赋值,默认为0,所以输出结果为2,第二次调用Tcl过程时,因为x为静态变量,所以它的值为上次调用后的值,即为2,加上a后,x的值变为5,输出结果为5,同理,第三次调用后输出结果为9。

  • 第7题:

    在窗体上画一个命令按钮,然后编写如下程序: Private Sub Comrnand3_Click( ) Cop 2 Cop 3 Cop 4 End Sub Sub Cop (a As Integer) Static x As Integer x=x + a Print x; End Sub 程序运行后,单击命令按钮,输出结果为

    A.2 3 4

    B.2 5 9

    C.3 5 4

    D.2 4 3


    正确答案:B
    解析:在过程Sub中,将Integer型变量x定义为静态变量(Static),Static语句的格式与Dim语句完全一样,但Static语句只能出现在事件过程,Sub过程或Function过程中,在过程中的Static变量只有局部的作用域,即只能在本过程中可见,但可以和模块级变量传递,即使过程结束后,其值仍能保留。Cop过程是将变量a的值加上x赋给x,然后输出x的值;第一次调用Cop过程时,x未赋值,默认为0,所以输出结果为2,第二次调用Tcl过程时,因为x为静态变量,所以它的值为上次调用后的值,即为2,加上a后,x的值变为5,输出结果为5,同理,第三次调用后输出结果为9。

  • 第8题:

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

  • 第9题:

    在窗体上画一个命令按钮,其名称为Commandl,然后编写如下程序: Pfivate Sub Commandl_Click() Dima(10) As Integer Dimx As Integer Fori=1 To 10 a(i)=8+i NeXt X=2 Print a(f(x)+x) End Sub Function f(X As Integer) X=X+3 f=X End Fu

    A.12

    B.15

    C.17

    D.18


    正确答案:D

  • 第10题:

    执行下列程序后,鼠标单击窗体,输出结果为 Private Sub Form_Click() Print"Click": End Sub Private Sub Form_MouseDown(Button As Integer,Shift_As Integer,X As Single,Y As Single) Print"Donw" End Sub Private Sub Form_MouseUp(Button As Integer,Shift_As Integer,X As Single,Y As Single) Print"Up" End Sub

    A.DownUpClick

    B.CfickDownUp

    C.DownClickUp

    D.UpDownClick


    正确答案:A

  • 第11题:

    设有一个命令按钮Command1的事件过程以及一个函数过程。程序如下: Private Sub Command1 Click( ) Static x A S Integer x=f(x+5) Cls Print X End Sub Private Function f(x As Integer)As Integer f=x+x End Function 连续单击命令按钮3次,第3次单击命令按钮后,窗体显示的计算结果是( )。

    A.10

    B.30

    C.60

    D.70


    正确答案:D
    D。【解析】本题考查静态变量,静态变量能将执行后的值储存到变量中。所以当第一次单击按钮时,x=5,x=f(x+5)=5+5=10,所以x=10,第二次单击按钮时,x=f(x+5)=15+15=30,此时x=30,当第三次单击按钮时,x=f(x+5)=35+35=70,所以答案为D。

  • 第12题:

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

  • 第13题:

    Command1_Click()事件代码如下: Private Sub Command1_Click() Dim x As Integer, Y As Integer x = 6 : Y : 8 Call ABC(X, Y) Print X; Y End Sub Private Sub ABC(ByVal X As Integer,Y As Integer) X = X + 4 Y = Y = 2 End Sub 事件发生后,X和Y的值分别为 ______。

    A.6, 8

    B.10, 10

    C.10, 8

    D.6, 10


    正确答案:D
    解析:事件发生时,首先定义两个变量X,Y并给他们赋值6和8。然后调用过程ABC,在过程ABC中有两个形参X,Y。X是按值传递,Y是按地址传递,所以在ABC过程中,对形参x的修改并不影响对应的实参x,但对形参Y的修改将影响到相应的实参Y。所以过程调用后,输出的X、Y值分别为6、100。

  • 第14题:

    有如下程序: 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)所示。

  • 第15题:

    在窗体上画一个命令按钮,然后编写下列程序: Private Sub Command12_Click() Tt 3 End Sub Sub Tt(a As Integer) Static X As Integer X=X * a + 1 Print x; End Sub 连续三次单击命令按钮,输出的结果是

    A.1 5 8

    B.1 4 13

    C.3 7 4

    D.2 4 8


    正确答案:B
    解析:在过程Tt中,将Integer型变量x定义为静态变量(StatiC,Static语句的格式与Dim语句完全一样,但Static语句只能出现在事件过程,Sub过程或Function过程中,在过程中的Static变量只有局部的作用域,即只能在本过程中可见,但可以和模块级变量传递,即使过程结束后,其值仍能保留。Tt过程是将变量a的值乘以x然后加1赋给x,然后输出x的值。第一次调用Tt过程时,x未赋值,默认为0,所以输出结果为1;第二次调用Tt过程时,因为x为静态变量,所以它的值为上次调用后的值,即为1,加上乘以a加1后,x的值变为4,输出结果为4;同理,第三此调用后输出结果为13。

  • 第16题:

    标准模块中有如下程序代码: Public x As Integer,y As Integer Sub var pub( ) x=10:y=20 End Sub 在窗体上有1个命令按钮,并有如事件过程: Private Sub Command1 Click( ) Dim x As Integer Call var pub x=x+100 y=y+100 Print x;y End Sub 运行程序后单击命令按钮,窗体上显示的是( )。

    A.100 100

    B.100 120

    C.110 100

    D.110 120


    正确答案:D
    D。【解析】本题考查的是变量的作用域。在Callvar_pub中使用的是全局变量x,所以x=x+100=10+100=110,y=y+100=20+100=120。

  • 第17题:

    在窗体上画一个名称为Command1的命令按钮,并编写如下过程: Private Sub Command1_Click() Dim x AS Integer Static y As Integer x=10 y=5 Call f1(x, y) Print x,y End Sub Private Sub f1(ByRef x1 As Integer, y1 As Integer) x1=x1+2 y1=y1+2 End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是______。

    A.10 5

    B.12 5

    C.10 7

    D.12 7


    正确答案:D
    解析:在形参中,默认的传送方式为传地址传送,所以形参x1和y1都按传地址传送。最后,实参x为12,实参y为7。

  • 第18题:

    对窗体编写如下事件过程: Private Sub Form_ Mouse Down(Button As Integer,Shift As Integer,X AS Single,Y As Single) If Button=2 Then Print "AAAAA" End if End Sub Private Sub Form. _ MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single) Print "BBBBB" End Sub 程序运行后,如果单击鼠标右键,则输出结果为 ______。

    A.AAAAA BBBBB

    B.BBBBB AAAAA

    C.AAAAA

    D.BBBBB


    正确答案:A
    解析:在窗体上单击鼠标右键时,实际上先后触发了两个事件,即先触发MouseDown事件,执行Print方法输出AAAAA;当释放鼠标键时,触发MouseUp事件,再次执行Print方法,输出BBBBB。其实在Visual Basic中类似的还有DblCtick事件,也是先后触发了两个事件,即当双击鼠标时,先触发Click事件,再触发 DblClick事件。

  • 第19题:

    有如下自定义过程: Sub test(x As Integer) x =X *2+1 If x<6 Then Call test(x) End If x=x* 2 + 1 Print x; End Sub调用该过程的事件过程如下:Private Sub Command1_Click() test 2End Sub则该段程序的执行结果是______ 。

    A.12

    B.23 47

    C.23

    D.5 10


    正确答案:B

  • 第20题:

    编写如下事件过程: Option Base 1 Private Sub Form Click() Dim x1()As Integer Dim i As Integer Dim s As Integer ReDim x1(3) For i = 1 To UBound(x1) x1(i)=i + 1 Next i Call sub1(x1) For i = 1 To UBound(x1) s = s + x1(i) Next i Print s End Sub Private Sub sub1(n()As Integer) Dim i As Integer ReDim Preserve n(5) For i = 3 To 5 n(i)=n(i-1)*2 Next i End Sub 程序运行后,单击窗体,则窗体上显示的内容是

    A.6

    B.12

    C.24

    D.47


    正确答案:D
    解析:在主过程中,数组x1的下标最大值为3,赋初值分别为2、3、4,通过实参和形参的调用,数组x1的值传给了数组n。在子过程中,数组n的下标最大值被重新定义为5,下标3~5的值计算的结果分别为6、12、24。在主过程中,将数组x1的各值相加得:2+3+6+12+24=47。

  • 第21题:

    执行下列程序后,鼠标单击窗体,输出结果为

    Private Sub Form_Click()

    Print "Click";

    End Sub

    Private Sub Form_mouseDown(Button As Integer,Shift

    As Integer, X As Single, Y As Single)

    Print "Donw"

    End Sub

    Private Sub Form_MouseUp(ButtonAsInteger,Shift

    As Integer, X As Single, Y As Single)

    Print "Up"

    End Sub

    A.DownUpClick

    B.ClickDownUp

    C.DownClickUp

    D.UpDownClick


    正确答案:A
    解析:鼠标单击时,依次引发MouseDown、MouseUp和Click事件,即Click事件包含鼠标按下和放开事件。

  • 第22题:

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

  • 第23题:

    在窗体上画一个名称为Command1的命令按钮,并编写如下程序: Private Sub Command1_Click( ) Dim x As integer Static y As integer x=10 y=5 Call f1(x,y) Print x,y End Sub Private Sub f1(ByRef xl As Integer,y1 As Integer) x1=x1+2 y1=y1+2 End Sub 程序运行后,单击命令按钮,在窗体上显示的内容是

    A.10 5

    B.12 5

    C.10 7

    D.12 7


    正确答案:D
    解析:传地址方式一般用ByRef表示,形参在默认情况下也是以传地址的方式传送参数。本题中F1子过程的x1与y1参数都是传地址的方式。这就意味着在调用该过程后,实参的数值会使着过程内的相关处理而发生变化。本题单击一次按钮后,实参x加2,变为12,实参y加2,变为7,当再次输出x与y时,x与y的值已不再是10与5,而是变为12与7。