有如下函数过程:Function fun1(By Val x As Integer,By Val y As Integer)As Integer Do While y

题目

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

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

第1题:

有如下函数过程: FunctiOngyS(By Val X As Integer,ByValy As Integer)As Integer DOWhiley<>0 reminder=x Mody X=y y=reminder Loop gys=x End FunctiOn 以下是调用函数的事件过程,该程序的运行结果是,( )。 PriVate Sub Command7_Click() Dim

A.0

B.25

C.50

D.100


正确答案:B

第2题:

(27)有下列函数过程( )。 Function fun1(By Val x As Integer,By Valy As Integer) As Integer Do While y<>0 reminder=x Mody x=y y=reminnder Loop Fun1=x End Function 在下列按钮单击事件中调用该函数,则该程序的运行结果是。 Private Sub Command1_Click() Dim a As Integer Dim b As Integer a=100 b=25 x=funl(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。

第3题:

有下列函数过程:Function funl(ByVal x As Integer, ByVal y As Integer) Do While y <> 0 Reminder=x Mody x=y y=reminder Loop Funl=xEnnd Function在下列按钮单击事件中调用该函数,则该程序的运行结果是 Privatr Sub Commandl_Click() Dim a As Integer Dim b As Integer a=100 b=25 x=funl(a,b) Print x End SubA.0 B.25 C.50 D.100


正确答案:D
【解析】可以通过两种方式来传递参数,即按值传递参数和按地址传递参数。
按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用BayVal关键字指出参数是按值来传递的。按地址传递参数使过程用变量的内存地址去访问实际变量的内容,在将变量传递给过程时,通过过程可永远改变变量值。默认时是按地址传递参数。

第4题:

下列过程语句中正确的是( )。

A.Sub fl(By Val () As Integer)

B.Sub fl(n() As Integer)As Integer

C.Function fl(fl As Integer)As Integer

D.Function fl(By Val f As Integer)


正确答案:D
解析:Sub过程定义的一般格式如下:[Private|Public|Friend][Static]Sub过程名[(参数表)]语句块[ExitSub][语句块]EndSub其中,Private|Public|Friend说明Sub过程的访问权限,如果没有Private|Public|Friend显式指定,则Sub过程按缺省(公用的)访问权限定义。参数表含有在调用时要传递给该Sub过程的参数的类型和个数,多个变量则用逗号隔开。参数的格式为:[ByVal|ByRef]变量名[()][As数据类型]格式中[]里的内容表示可选,变量可以是简单变量或者数组.选项A)中参数没有参数名,所以是错误的;因为Sub过程没有返回值,所以选项B)是错误的。Function过程的定义的一般格式如下:[Public|Private|Friend][Static]Function过程名[(参数表)][As类型][语句块][过程名=表达式][ExitFunction][语句块]EndFunction“As类型”是Function过程返回的值的数据类型,如果省略,则默认为Variant。Function函数中参数名不能与函数名相同,因此选项C)错误;选项D)中省略了返回值类型,是正确的。

第5题:

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

第6题:

下列子过程语句中正确的是 A.Sub f1(By Val()As Integer) B.Sub f1(n()As Integer)As Integer C.Function f1(f1 As Integer)As Integer D.Function f1(By Val f As Integer)


正确答案:D
【解析】Sub过程定义的一般格式如下:
  [PrivateIPublicIFriend][Static]Sub 过程名[(参数表)]
  语句块
  [Exit Sub]
  [语句块]
  End Sub
  其中,Private|Public|Friend说明Sub过程的访问权限,如果没有Private|Public|Friend显式指定,则Sub过程按默认(公用的)访问权限定义。
  参数表含有在调用时要传递给该Sub过程的参数的类型和个数,多个变量则用逗号隔开。参数的格式为:
  [ByVal|ByRef]变量名[()][As数据类型]
  格式中[]里的内容表示可选,变量可以是简单变量或者数组。选项A)中参数没有参数名,所以是错误的;
  Sub过程没有返回值,所以选项B)是错误的。
  Function过程的定义的一般格式如下:
  [Public|Private|Friend][Static]Function过程名[(参数表)][As类型]
  [语句块]
  [过程名=表达式]
  [Exit Function]
  [语句块]
  End Function
  “As类型”是Function过程返回的值的数据类型,如果省略,则默认为Variant.Function函数中参数名不能与函数名相同,因此选项C)错误,选项D)中,省略了返回值类型,是正确的。

第7题:

要想在过程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选项正确。

第8题:

有如下函数过程:

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的最大公约数。变量z的值通过子函数名Fun返回。

第9题:

有以下函数过程: 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。

第10题:

有如下函数过程: Function funl(ByVal x As Integer,ByVal 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=funl(a,B)Print x End Sub

A.0

B.25

C.50

D.100


正确答案:B
解析:可以通过两种方式来传递参数,即按值传递参数和按地址传递参数。按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用ByVal关键字指出参数是按值来传递的。按地址传递参数使过程用变量的内存地址去访问实际变量的内容,在将变量传递给过程时,通过过程可永远改变变量值。默认时是按地址传递参数。 题中funl函数的参数都是按值传送的,函数使用“过程名二表达式”的形式获得函数的返回值,如题中“funl=x”语句。调用函数“x=funl(a,B)”后,x=25。

更多相关问题