以下程序片段是用允许变量且不允许嵌套函数声明的编程语言编写的。
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);
}
如果编程语言使用动态范围和按名称参数传递机制进行调用,则上述程序输出的值是:
(A) 115、220
(B) 25,220
(C) 25、15
(D) 115、105答案: (A)
解释:
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。
如果您在以上文章中发现任何错误,请在下面发表评论。
这个问题的测验