Direction: The following program fragment is written in a progrmming language that allows global variable and does not allow nested declrations of functions.
global int i = 100, j = 5;
void P (x) {
int i = 10;
print (x + 10);
i = 200;
j = 20;
print (x);
}
main () {P (i + j);}
-
If the programme language uses dynamic scoping and call by name parameter passing mechanism, the values printed by the above program are
-
- 115, 220
- 25, 220
- 25, 15
- 115, 105
- 115, 220
Correct Option: B
In dynamic scoping, the local values are considered & variables are initialized at run time.
Since x = i + j & in P (x)
i = 200 &j = 20 x = 200 + 20 = 220
& printing (x + 10)
9. = i + j + 10 = 10 + 5 + 10 = 25
Hence (b) is correct option