●在下列程序中:Program test(input,output);var i.j:integer;procedure calc(p1,p2:integer)
●在下列程序中:
Program test(input,output);
var i.j:integer;
procedure calc(p1,p2:integer);
beginp2:=p2*p2 pl:=pl-p2;p2:=p2-p1;end{caic}
begin{main}i:=2;j:=3;
calc(i,j);write(j);
end{main}
当参数传递采用引用方式(Call by reference)时,所得结果j= (6) ;
当参数传递采用换名方式(Call by name)时,所得结果,j= (7) ;
当参数传递采用赋值方式(Call by value)时,所得结果,j= (8) 。
(6) A.3
B.6
C.10
D.16
(7) A.3
B.6
C.10
D.16
(8) A.3
B.6
C.10
D.16
正确答案:D,D,A【解析】 一个过程的过程体若包含对其自身的调用,则称此过程是直接递归的。若一个过程的过程体调用某过程,而该过程又调用原过程或经一系列调用后又回到对原过程的调用,则称此原过程是间接递归的。通常实现递归时采用的数据结构是栈,这是因为栈有先进后出的特性,可以保存调用时的"现场",并在调用结束时恢复"现场",栈是实现递归的简单途径。对于既可用递归方式求解,也可用循环方式求解的问题,就执行效率和资源而言,显然是循环优于递归,因为递归的开销大。当用户在调用点调用一个过程时,会通过参数传送信息,一个过
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
