在窗体上画一个命令按钮,名称为Command1。Private Sub Command1 Click()Dim x As Integer,y As In

题目

在窗体上画一个命令按钮,名称为Command1。 Private Sub Command1 Click() Dim x As Integer,y As Integer x=10:y:0 Do x=x+2:y=y+x Print "x=", x; "y=",y If y>20 Then Exit Do Loop Until x=18 End Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是 ______。

A.x=12y=12 x = 14 y = 16 x=16 y=18

B.x=12 y=12 x= 16 y =28 x= 18 y=24

C.x=12 y=12 x= 14 y=44

D.x= 12 y=12 x= 14 y=26

参考答案和解析
正确答案:D
解析:给变量x和y赋值后,执行Do...Loop循环。第一个循环后,x的值为12,y的值为12,输出:x=12y=12。执行“语句,因为条件表达式“y>20”为False,所以不执行后面的DoExit,判断循环结束条件“x>14”为False,接着执行循环。第二次循环后,x的值为14,y的值为26,输出结果为x=14y=26,判断If语句的条件“y>20”为Ture,执行DoExit语句,退出循环。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

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

在窗体上画1个命令按钮,名称为Command1,然后编写如下程序: Dim Flag As Boolean Private Sub Command1_Click() Dim intNum As Integer intNum=InputBox(“请输入:”) If Flag Then Print f(intNum) End If End Sub Function f(X as Integer)As Integer If X<10 Then Y=X Else Y=X+10 End If f=Y End Function Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X as Single,Y As Single) Flag=True End Sub 运行程序,首先单击窗体,然后单击命令按钮,在输入对话框中输入5,则程序的输出结果为______。

A.0

B.5

C.15

D.无任何输出


正确答案:B
解析:单击窗体在释放鼠标时,将会触发Form_MouseUp事件,将Flag值置True,从而允许输出。在Command1的Click事件中,通过输入框输入5,并在窗体上输出f(5),函数f的作用是,如果自变量x10,则直接返回 x,否则返回x+10。故本题应输出5。

第3题:

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

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

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


正确答案:

第4题:

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

Private Sub Command1-Click()

Dim a(10) As Integer

Dim x As Integer

For i=1 To 10

a(i)=i

Next i

x=1

MsgBox a(f(x)+x)

End Sub

Function f(y As Integer)

y=y+2

f=y

End Function

程序运行后,单击命令按钮,消息框的输出结果为______。


正确答案:6
6 解析:本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参:若用ByRcf声明,说明此参数为传址调用,此时形参的变化将会返回到实参:没有说明传递类型,则默认为传址传递。本题中函数f的形参y没有使用ByVal声明,则默认为传址传递。当求a(f(x)+x)值的时候,先要求出f(x)+x的值。由于x的值为1,那么调用函数f以后得到f(x)的返回值为3,同时由于函数f中改变了形参y的值,在传址传递的前提下这一改变会影响到对应的实参x,故此函数调用结束后x的值变为3,也就是最后输出的应该是a(6)的值也就是 6。举一反三,如果最后输出的不是a(f(x)+x)而是 a(x+fx)),则会先取得x的值1,然后再计算f(x)的值为3,那么最后输出的就不是a(6)的值而是a(4)的值了。

第5题:

在窗体上画一个名称为Command1的命令按钮,然后编写如下程序: Private Sub Command1_Click() Dim x As Integer Static y As Integer Cls x=x+5 y=y+3 Print x,y End Sub 程序运行时,两次单击命令按钮Command1后,窗体显示的结果是( )。

A.10 6

B.5 6

C.5 3

D.10 3


正确答案:B

第6题:

在窗体上画1个命令按钮,其名称为Command1,然后编写如下程序: Private Sub Command1 Click() Dim a(10) As Integer Dim x As Integer For i=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 Function 程序运行后,单击命令按钮,输出结果为______。

A.12

B.15

C.17

D.18


正确答案:D
解析:函数f的作用是将x的值加3(由于Vb中默认的参数传递方式为ByRef,故对形参的改变将影响到实参),同时将该值作为函数的结果返回。由于开始时x的值为2,执行f(x)后,x的值为5,f(x)的结果亦为5。故最后输出的结果应为a(10),而在for循环中a(10)=8+10=18。

第7题:

在窗体中添加一个命令按钮(名为Command1)和一个文本框(名为text1),编写如下事件过程:

Private Sub Command1_Click()

Dim x As Integer,y As Integer,z As Integer

Call f(x,y,z)

End Sub

Sub f(a As Integer,b As Integer,c As Integer)

c=b*a

End Sub

打开窗体运行后,单击命令按钮,文本框中显示的内容是( )。


正确答案:15
15

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

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

Private Sub Command1_Click()

Dim a(10)As Integer

Dim x As Integer

For i=1 To 10

a(i)=i

Next i

x=1

MsgBoxa(f(x)+x)

End Sub

Function f(y As Integer)

y=y+2

f=y

End Function

程序运行后,单击命令按钮,消息框的输出结果为______。


正确答案:6
6 解析:本题考查VBA中参数传递的知识。在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。本题中函数f的形参y没有使用ByVal声明,则默认为传址传递。当求a(f(x)+x)值的时候,先要求出f(x)+x的值。由于x的值为1,那么调用函数f以后得到f(x)的返回值为3,同时由于函数f中改变了形参y的值,在传址传递的前提下这一改变会影响到对应的实参x,故此函数调用结束后x的值变为3,也就是最后输出的应该是a(6)的值也就是6。举一反三,如果最后输出的不是a(f(x)+x)而是 a(x+f(x)),则会先取得x的值1,然后再计算f(x)的值为3,那么最后输出的就不是a(6)的值而是a(4)的值了。

第10题:

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

Private Sub Commandl_Click( )

Static X As Integer

Static Y As Integer

Cls

Y=1

Y=Y+5

X=5+X

Print X, Y

End Sub

程序运行时,3次单击命令按钮Command1后,窗体上显示的结果为【 】。


正确答案:15 6
15 6 解析:在本题过程中使用了两个Static变量,其中的变量Y每次都被重新赋值,因此不管执行多少次,Y的结果只会是6;而变量X的值则一直累计,执行3次后,x为15。

更多相关问题