假定通过引用参数传递调用,程序P1中的打印语句将打印什么?
Program P1()
{
x = 10;
y = 3;
func1(y,x,x);
print x;
print y;
}
func1(x,y,z)
{
y = y+4;
z = x+y+z;
}
(A) 10、3
(B) 31、3
(C) 27、7
(D)以上都不是答案: (B)
说明:在这里,我们通过引用调用传递变量。这意味着我们将在参数中进行的更改将反映在传递的参数中。
在此,在函数func1中传递的第一个变量(即y)指向变量x的地址。
类似地,传递给函数func1(即x)的第二个变量指向变量y的地址,传递给函数func1(即x)的第三个变量指向变量z的地址。
因此,我们有y = y + 4⇒y = 10 + 4 = 14
z = x + y + z⇒z = 14 + 14 + 3 = 31
z将返回到x。因此,x = 31,y将保持为3。
因此,正确的选择是B。
如果您在以上文章中发现任何错误,请在下面发表评论。
这个问题的测验