Explanation : Program P( )
{
x = 10;
y = 3;
funb (y, x, x)
print x;
print y;
}
funb (x, y, z)
{
y = y + 4;
z = x + y + z;
}
Since, It is call by reference then address will be pass as argument:
i.e. P( )
{
x = 10;
y = 3;
funb (&y, &x, &x)
print x;
print y;
}
funb (x, y, z) //funb (&y, &x, &x) //
{
y = y + 4; //at &x 14 will be assigned //
z = x + y + z; // Now &x will be assigned with 3 + 14 + 14 = 31.
}
There is no change in y and x is updated twice when printf called it will print x = 31 and y = 3.
So, option (B) is correct.