2.6 习题答案

1. B 2. C 3. B 4. B 5. D 6. B 7. D 8. D 9. A 10. D 11. C
12. C 13. A 14. B 15. B 16. B 17.B

1 一个函数在结束本函数之前,直接或间接调用函数自身,称为递归。例如,
函数f在执行中,又调用函数f自身,这称为直接递归;若函数f在执行中,调用函数g,而g在执行中,又调用函数f,这称为间接递归。在实际应用中,多为直接递归,也常简称为递归。
递归程序的优点是程序结构简单、清晰,易证明其正确性。缺点是执行中占内存空间较多,运行效率低。
递归程序执行中需借助栈这种数据结构来实现。
递归程序的入口语句和出口语句一般用条件判断语句来实现。递归程序由基本项和归纳项组成。基本项是递归程序出口,即不再递归即可求出结果的部分;归纳项是将原来问题化成简单的且与原来形式一样的问题,即向着"基本项"发展,最终"到达"基本项。

2 过程p递归调用自身时,过程p由内部定义的局部变量在p的2次调用期
间,不占同一数据区。每次调用都保留其数据区,这是递归定义所决定,用"递归工作栈"来实现。

5 [题目分析]两栈共享向量空间,将两栈栈底设在向量两端,初始时,s1栈顶
指针为-1,S2栈顶为maxsize。两栈顶指针相邻时为栈满。两栈顶相向,迎面增长,栈顶指针指向栈顶元素。


[算法讨论] 请注意算法中两栈入栈和退栈时的栈顶指针的计算。两栈共享空间示意图略,S1栈是通常意义下的栈,而S2栈入栈操作时,其栈顶指针左移(减1),退栈时,栈顶指针右移(加1)。
6
7 1784
( 公式:Loc(Aijkl)=100(基地址)+[(i-c1)v2v3v4+(j-c2)v3v4+(k-c3)v4+(l-c4)]*4 )

>" src="http://i1.w.hjfile.cn/doc/200811/32502.gif" border=0 mce_src="http://i1.w.hjfile.cn/doc/200811/32502.gif">>" src="http://i1.w.hjfile.cn/doc/200811/26508.gif" border=0 mce_src="http://i1.w.hjfile.cn/doc/200811/26508.gif">>" src="http://i1.w.hjfile.cn/doc/200811/52955.gif" border=0 mce_src="http://i1.w.hjfile.cn/doc/200811/52955.gif">>" src="http://i1.w.hjfile.cn/doc/200811/71602.gif" border=0 mce_src="http://i1.w.hjfile.cn/doc/200811/71602.gif">>" src="http://i1.w.hjfile.cn/doc/200811/11087.gif" border=0 mce_src="http://i1.w.hjfile.cn/doc/200811/11087.gif">