用高级语言编写程序时,子程序调用语句中的实际参数必须与子程序说明中的形式参数在 (1) 上保持一致。在允许子程序递归调用的高级语言环境中,需用动态存储管理方法,它通常使用一个 (2) 存入子程序的调用记录,调用记录可包括:
·全局量存储区域的 (3) ;
·调用点所在子程序的 (4) ;
·调用点的 (5) ;
·形式参数和实际参数的通信区域;
·返回值;
·本子程序的局部量和临时变量存储区域等。
5()
A.子程序首地址
B.调用记录首地址
C.参数地址
D.寄存器地址
E.返回地址
F.开始地址
参考答案:E
解析:
除少数程序语言之外,形式参数和实际参数之间的对应关系通常按位置来确定。子程序定义中有形式参数表,而子程序调用是用实际参数表。进入子程序时,第一个形式参数就和第一个实际参数所表示的数据或其他信息相关联,一一对应。这样,子程序调用语句中的实际参数必须与子程序说明中的形式参数在个数、类型和顺序上保持一致,否则就不能在主程序和子程序之间正确地传递信息。
对于允许子程序递归调用的程序语言,一般采用动态存储管理方法,用堆栈来实现。由于某一子程序可能被调用了若干次,但只有最近一次调用正处于执行状态,而其余各次调用正等待下次调用的返回。这样,前几次该子程序调用的属于该子程序的局部变量存储区中的内容必须保存起来,以便下次调用返回时再继续使用。子程序执行需要一个用来存放有关信息的区域,这个区域为过程的调用记录,一般包含以下几部分:
·全局变量存储区域的开始地址;
·调用点所在子程序的调用记录的地址;
·调用点机器状态,如返回地址和寄存器当时值;
·形式参数和实际参数的通信区域;
·返回值;
·本子程序的局部变量和临时变量存储区。