结构推理 对于下面的程序:
   Procedure p(x,y,z);
     begin
   y:=y+
   z:=z+x
       end;{p}
       begin
         a:=4;
         b:=5;
         p(a+b,a,a);
         print a
       end.
   如果上述程序参数传递的方法分别为:
【正确答案】参数传递的方法为传名时,输出a的值是15。
【答案解析】参数传递的方法为传名时,相当于调用过程p时将过程p中的形参替换为实参,即过程p被替换为下面这段程序:
   Procedure p(a+b,a,a);
     begin
   a:=a+1;
   a:=a+a+b
     end;{p)
   该过程中语句"a:=a+1"执行后,am值变为5,接下来执行后面的语句"a:=a+a+b",则赋值号右边的两个am值都是5,因此执行该语句后a的值就被修改为15。