在下面的程序中,若实参a与形参x以引用调用(call by reference)的方式传递信息,则输出结果为(1);若实参a与形参x以值调用(call by value)的方式传递信息,那么输出结果为(2)。 Main program Pr

admin2007-03-10  69

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

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

答案D

解析 所有函数的定义都是独立的、平行的。在一个函数定义中不允许定义另外一个函数,但可以对别的函数进行调用或做引用说明;它也可以对自身进行调用,即递归调用。函数原型的形式如下:
   函数 函数名(形参表);
   形参表中的形参名可以省略。函数原型提供了更强的函数检查功能,在编译阶段就能发现函数的返回值的类型以及参数个数和类型是否正确。
   传值调用是指把实形参数的值传递给相应的形式参数,子程序不能通过这种方式传回任何结果。
   引用调用是指把实形参数的地址传递给相应的形式参数,此时子程序对形式参数的一次引用或赋值都是对形式参数的间接访问。
   实参a与形参x以引用调用的方式传递信息,那么,addone(a)则会通过语句“a:= x+1;”和“x:=x+2;”改变a的值。因此,变量a的值变为4。
   实参a与形参x以传值调用的方式传递信息,则a的值保持不变。
   这里需要说明的是,变量a没有进行声明而在“Main program”和“addone”中进行引用,在这里应当视为全局变量。
转载请注明原文地址:https://kaotiyun.com/show/K2jZ777K
0

最新回复(0)