算法设计与分析

数据结构与算法里,关于递归说法正确的是()。A、递归是函数自身调用编程技术B、有返回值的函数可以是递归的函数C、无返回值函数是不能使用递归的D、递归分为直接递归和间接递归

题目

数据结构与算法里,关于递归说法正确的是()。

  • A、递归是函数自身调用编程技术
  • B、有返回值的函数可以是递归的函数
  • C、无返回值函数是不能使用递归的
  • D、递归分为直接递归和间接递归
参考答案和解析
正确答案:A,B,D
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在C语言的函数定义过程中,如果函数finA调用了函数funB,函数funB又调用了函数funA,则()。

A.称为函数的直接递归

B.称为函数的间接递归

C.称为函数的递归定义

D.C语言中不允许这样的递归形式


正确答案:B

第2题:

C语言规定,程序中各函数之间_______。

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用


正确答案:A
解析:C语言规定,程序中各函数之间既允许直接递归调用也允许间接递归调用。

第3题:

( 8 )已知递归函数 f 的定义如下:

int f(int n)

{

if (n <= 1) return 1; // 递归结束情况

else return n * f(n-2); // 递归 }

则函数调用语句 f(5) 的返回值是 【 8 】 。


正确答案:

第4题:

关于递归调用不正确的描述是()

  • A、递归调用和嵌套调用都是通过堆栈管理实现的
  • B、函数直接或间接调用自己称为递归调用
  • C、递归终止条件必须为参数值等于0
  • D、递归算法的问题规模必须是逐步缩小的

正确答案:C

第5题:

在函数调用过程中,如果函数fun A调用了函数fun B,函数fun B又调用了函数fun A,则

A.称为函数的直接递归调用

B.称为函数的间接递归调用

C.称为函数的循环调用

D.C语言中不允许这样的递归调用


正确答案:B

第6题:

在函数体中把出现调用自身函数的情况称为()。

A、非递归调用

B、直接递归调用

C、间接递归调用

D、末尾递归调用


正确答案:B

第7题:

C语言中规定,程序中各函数之间( )。

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用


正确答案:A
解析:本题考查函数调用的基本概念。在函数调用时,只要符合函数的使用,程序中的各个函数间既可以直接调用其他函数,也可以递归调用其自身。

第8题:

在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则

A.称为函数的直接递归调用

B.称为函数的间接递归调用

C.称为函数的循环调用

D.C语言中不允许这样的递归调用


正确答案:B
解析:在C语言中,所谓函数的递归是在指在调用一个函数的过程中,又出现了直接或间接地调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用。显然题目中所说得函数调用为函数的间接递归调用。

第9题:

已知递归函数f的定义如下:

int f(int n)

{

if(n <=1)return 1; //递归结束情况

else return n*f(n-2); //递归}

则函数调用语句f(5)的返回值是【 】。


正确答案:15
15 解析:本题考查的是递归算法的分析。一个直接或间接地调用自身的算法称为递归算法。在一个递归算法中,至少要包含一个初始值和一个递归关系。本题的,f()函数在n小于等于1时返回1,而在其余情况下返回n*f(n-2)。所以本题的递归算法可以表示为:

题目要求的结果是f(5),即f(5)=5*f(3)=5*3*f(1)=5*3*1=15。故应该填15。

第10题:

C程序中各函数之间既允许直接递归调用也允许间接递归调用。


正确答案:正确

更多相关问题