在下面的程序中,若实参a与形参x以引用调用的方式传递信息,则输出结果为(1);若实参a与形参x以值调用的方式传递信息,那么输出结果为(2)。 Mainprogram a:=1; addone(a); write(a

admin2019-04-09  70

问题 在下面的程序中,若实参a与形参x以引用调用的方式传递信息,则输出结果为(1);若实参a与形参x以值调用的方式传递信息,那么输出结果为(2)。
   Mainprogram
      a:=1;
      addone(a);
      write(a);
   Procedure addone(x)
      a:=x+1;
      x:=x+2;
      return;

选项 A、1
B、2
C、3
D、4

答案B

解析 引用调用是指把实参的地址传递给相应的形参,此时子程序对形参的改变会同时改变实参的值。值调用是指把实参的值传递给相应的形参,此时子程序对形参的改变不会影响实参的值。所以,如果本题以引用调用,则在addone过程中,首先执行a:=x+1会将a加1,然后执行x:=x+2会对形参x加2,因为是引用调用,所以实参a也会加2,故a最终被加3,第1空应该选择D。如果以值调用,在addone过程中,只有a:=x+1语句会影响a的值,x:=x+2只影响形参x的值,并不会影响实参a,故a最终被加1,第2空应该选择B。
转载请注明原文地址:https://jikaoti.com/ti/EzL7FFFM
0

最新回复(0)