1 条题解
-
0
解析(文字) 第1题:栈溢出通常导致程序崩溃,不会抛出异常继续执行,D 错误。选 D。
第2题:递归代码量少但效率低(指数级),C 说“执行效率更高”错误。选 C。
第3题:阶乘递归标准写法 return n * factorial(n-1)。选 A。
第4题:递归必须有终止条件,A 最直接。选 A。
第5题:计算 fun(7)=fun(5)-fun(6),逐层计算得 -11。选 D。
第6题:fun(4) 输出序列:先输出4,然后调用 fun(2) 输出2,返回2,再调用 fun(3) 输出3,然后 fun(1) 输出1,返回1,fun(3)=fun(1)-fun(2)=1-2=-1,最终 fun(4)=fun(2)-fun(3)=2-(-1)=3。输出序列为 4 2 3 1,即 4231。选项 D 为 42321?不对,应该是 4231。但选项 D 是 42321,可能多了一个2?真题中输出为 42321,因为 fun(2) 输出2后,返回2,然后 fun(3) 内部还会输出?重新分析:调用 fun(4):输出4;调用 fun(2):输出2,返回2;调用 fun(3):输出3;调用 fun(1):输出1,返回1;调用 fun(2):输出2,返回2;fun(3)=1-2=-1;fun(4)=2-(-1)=3。输出序列为 4,2,3,1,2 → 42312。选项 C 是 42312,D 是 42321。正确答案应为 42312。选 C?我上面写 D 错误。根据常见真题答案,选 C(42312)。修正:第6题选 C。
第7题:两者时间复杂度均为 O(n),但递归空间复杂度 O(n),迭代 O(1)。A 正确。选 A。
第8题:fun(7)=7fun(5)=75fun(3)=753fun(2)=7532fun(1)=75321=210。选 C。
第9题:factorialB 是迭代方式,不是递归,D 错误。选 D。
第10题:函数使用循环实现,属于迭代算法。选 C。
第11题:所有递归可转非递归,但不一定需要显式栈(如尾递归可优化),说法“一定需要”错误。选 B。
第12题:递归占用更多内存,正确。选 A。
第13题:递归必须有结束条件,正确。选 A。
第14题:同13,正确。选 A。
第15题:递归占用栈空间,可能溢出,正确。选 A。
- 1
信息
- ID
- 6100
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者