以下程序片段是用允许变量但不允许函数的嵌套声明的编程语言编写的。
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);
}
如果编程语言使用动态作用域和按名称调用参数传递机制,则上述程序打印的值为:
(一) 115、220
(乙) 25, 220
(三) 25, 15
(四) 115、105答案:(一)
解释:
global int i = 100, j = 5;
void P(x) // x = i + j
{
int i = 10;
print(x + 10);// print (100+5+10) = 115
i = 200;
j = 20;
print(x); // print (200+20) = 220.
// i and j would be changed as they are global variables
}
main()
{
P(i + j);
}
因此,A 是正确的选项,因为打印了 115 和 220。
如果您发现上面的帖子有任何错误,请在下面发表评论。
这个问题的测验