问题 单项选择题

在下面的程序中,若调用f1(x)时参数传递采用引用方式,调用f2(y)时参数传递采用传值方式,则输出结果为 (47) ;若调用f1(x)和f2(y)时参数传递都采用引用方式,则输出结果为 (48)

main() Procedure f1(x) Procedure f2(y)
int a = 3
f1 (a);
write a;
x = x+1;
f2(x);
x = 2*x;
return;
y = y+1;
return;

A.3

B.6

C.8

D.10

答案

参考答案:C

解析: 在高级语言中,使用参数是函数(子程序)之间传递信息的一种手段。最常用的参数调用方法有传值调用和引用调用:使用传值调用时,被调用的函数内部对形参的修改不影响实参的值;使用引用调用时,函数中对形参的访问和修改实际上就是对相应时参所作的访问和修改。
因此,若调用n(x)时参数传递采用引用方式,调用f2(y)时宰数传递采用传值方式,则程序运行过程中 a的值变化如图1所示:

选择题
判断题