题库首页 › GESP等级认证(C++) › 题目 25424

关于递归函数调用,下列说法错误的是( )。

A:递归调用层次过深时,可能会耗尽栈空间导致栈溢出
B:尾递归函数可以通过编译器优化来避免栈溢出
C:所有递归函数都可以通过循环结构来改写,从而避免栈溢出
D:栈溢出发生时,程序会抛出异常并可以继续执行后续代码

正确答案:D

答案解析

递归函数每次调用自身时,会在调用栈中创建新的栈帧,用于保存局部变量和返回地址。若递归深度过大,栈帧累积超出栈空间限制,则引发栈溢出。尾递归在特定条件下可被编译器优化为循环,避免新增栈帧。任何递归逻辑均可通过显式栈结构与循环模拟,实现相同计算过程。栈溢出属于运行时严重错误,导致程序控制流中断,无法保证后续代码的正常执行。

试卷来源:202603 CCF-GESP编程能力等级认证C++五级真题

本卷相关题目

在线做题 同科目题库