📜  门| GATE-CS-2001 |第42章

📅  最后修改于: 2021-06-29 17:38:12             🧑  作者: Mango

假定通过引用参数传递调用,程序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。

如果您在以上文章中发现任何错误,请在下面发表评论。
这个问题的测验