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

📅  最后修改于: 2021-09-27 05:59:01             🧑  作者: 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;
}

(一) 10、3
(二) 31, 3
(三) 27, 7
(D)以上都不是答案:(乙)
说明:这里,我们通过引用调用来传递变量。这意味着我们将在参数中进行的更改将反映在传递的参数中。

这里,函数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。

如果您发现上面的帖子有任何错误,请在下面发表评论。
这个问题的测验