计算机二级

有如下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

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub subl(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 subl(1, 2,a) Print a End Sub 程序运行后,单击命令按钮,则窗体下显示的内容是______。

A.8

B.2

C.5

D.11


正确答案:A
解析:因为Subl过程的形参都是传值传送,所以在其内的所有计算结果都不将返回,并不影响对应的实参值,变量a的值并没有改变,仍然是8。

第2题:

要求当鼠标在图片框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)。

第3题:

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

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.ClickDownUp

C.DownClickUp

D.UpDownClick


正确答案:A

第4题:

有如下一个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

第5题:

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

第6题:

对窗体编写如下事件过程: Private Sub Form_ MouseDown(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

C.AAAAA

D.BBBBB AAAAA


正确答案:A

第7题:

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。

第8题:

设有如下通用过程: Public Function f(x As Integer) Dim y As Integer x=20 y=2 f=x*y End Function 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Static x As Integer x=10 y=5 y=f(x) Print x; y End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是______。

A.10 5

B.20 5

C.20 40

D.10 40


正确答案:C
解析:虽然变量x被定义为静态变量,但并不改变传地址传送的关系。x作为实参传给f子函数后,形参x的值先为5,执行“x=20”后,由于传地址传送的关系,实参x的值也为20。子函数返回之前,f的值为40,返回后变量y的值为40。最后打印出20和40。

第9题:

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

第10题:

在窗体上画一个命令按钮,然后编写下列程序: 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。

更多相关问题