单选题以下叙述中正确的是( )。A简单递归不需要明确的结束递归的条件B任何情况下都不能用函数名作为实参C函数的递归调用不需要额外开销,所以效率很高D函数既可以直接调用自己,也可以间接调用自己
单选题
以下叙述中正确的是( )。
A
简单递归不需要明确的结束递归的条件
B
任何情况下都不能用函数名作为实参
C
函数的递归调用不需要额外开销,所以效率很高
D
函数既可以直接调用自己,也可以间接调用自己
参考解析
解析:
A项错误,递归必定要有一个明确的结束递归的条件;B项错误,递归就是把函数名作为实参的一种特殊情况;C项错误,函数的递归调用过程中,系统要为每一层调用中的变量开辟存储单元,记住每一层调用后的返回点,要增加许多额外的开销,通常会降低程序的运行效率;D项正确,C语言中的函数可以直接或间接地自己调用自己,前者称简单递归,后者称间接递归。答案选择D选项。
A项错误,递归必定要有一个明确的结束递归的条件;B项错误,递归就是把函数名作为实参的一种特殊情况;C项错误,函数的递归调用过程中,系统要为每一层调用中的变量开辟存储单元,记住每一层调用后的返回点,要增加许多额外的开销,通常会降低程序的运行效率;D项正确,C语言中的函数可以直接或间接地自己调用自己,前者称简单递归,后者称间接递归。答案选择D选项。
相关考题:
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。A.函数调用可以嵌套和递归B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参
在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言中不允许这样的递归调用
一个C++程序由函数A( ),B( ),C( )和函数P( )构成,在函数A( )中分别调用了函数B( )和函数C ( ),在函数B( )中调用了函数A( ),且在函数P( )中也调用了函数A( ),则可以说A.函数B( )中调用的函数A( )是函数A( )的间接递归调用B.函数A( )被函数B( )调用是直接递归调用C.函数P( )直接递归调用了函数A( )D.函数P( )中调用的函数A( )是函数P( )的嵌套
在C语言的函数定义过程中,如果函数finA调用了函数funB,函数funB又调用了函数funA,则()。 A.称为函数的直接递归B.称为函数的间接递归C.称为函数的递归定义D.C语言中不允许这样的递归形式
C语言规定,程序中各函数之间_______。A.既允许直接递归调用也允许间接递归调用B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用
C语言中规定,程序中各函数之间( )。A.既允许直接递归调用也允许间接递归调用B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用
在函数调用过程中,如果函数fun A调用了函数fun B,函数fun B又调用了函数fun A,则A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言中不允许这样的递归调用
一个C程序由函数A、B、C和函数P构成,在函数A中分别调用了函数B和函数C,在函数B中调用了函数A,且在函数P中也调用了函数A,则可以说( )A.函数B中调用的函数A是函数A的间接递归调用B.函数A被函数B调用是函数A间接递归调用C.函数P直接递归调用了函数AD.函数P中调用的函数A是函数P的嵌套
某个C程序中有4个函数t、u、v和w,执行时t调用了u和v,u调用了t和w,v调用了w,w调用了t和v。以下叙述中正确的是( )A.这4个函数都间接递归调用了自己B.除函数t外,其他函数都间接递归调用了自己C.除函数u外,其他函数都间接递归调用了自己D.除函数v和w外,其他函数都间接递归调用了自己
单选题关于递归调用不正确的描述是()A递归调用和嵌套调用都是通过堆栈管理实现的B函数直接或间接调用自己称为递归调用C递归终止条件必须为参数值等于0D递归算法的问题规模必须是逐步缩小的