单选题 在窗体上画一个命令按钮(名称为Command1),并编写如下代码: Function Fun1(ByVal a As Integer,b As Integer)As Integer Dim t As Integer t=a—b b=t+a Fun1=t+b End Function Private Sub Command1_Click() Dim x As Integer x=10 Print Fun1(Fun1(x,(Fun1(x,x一1))),x一1) End Sub 程序运行后,单击命令按钮,输出结果是( )。
【正确答案】 B
【答案解析】解析:本题是过程的嵌套调用,过程嵌套调用时要先计算最内层的过程,然后由里向外执行。因此Fun1(Fun1(x,(Fun1(x,x一1))),x—1)执行过程如下: 先执行Fun1(x,x—1),由于形参a是按值传递,因此不会影响x的值,x=10,即Fun1(10,9)。t=1,b=1+10=11,则函数返回值为1+11=12。 再执行Fun1(x,(Fun1(x,x—1))),由于内层过程返回12,因此又可写成Fun1(x,(12)),由于x仍为原值,因此过程即Fun1(10,12)。t=一2,b=一2+10=8,则函数返回值为一2+8=6。 最后执行Fun1(Fun1(x,(Fun1(x,x—1))),x—1),即Fun1(6,x一1),由于x仍为原值,因此过程即为Fun1(6,9)。t=一3,b=一3+6=3,则函数返回值为一3+3=0。