对于以下递归函数f,intf(intn){returnf(n-1

题目

对于以下递归函数f,intf(intn){returnf(n-1)+n;},调用f(4),其返回值为()

  • A、10
  • B、11
  • C、0
  • D、以上均不是
参考答案和解析
正确答案:D
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

int f (int n)

{

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

else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是( )。


正确答案:

1  

第2题:

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

int f(int n){

if(n<= 1)return 1;//递归结束情况f5=5*f3=5*3*f1

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

}

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


正确答案:15
15 解析:函数递归调用,f(5)=5*f(3)=5*(3*f(1))=15。

第3题:

●已知递归函数f(n)的功能是打印n,n-1,…,1,且n>=1,应采用的代码段是 (42) 。

(42) A.if n>1 then f(n-1);printf("%d",n);

B.if n<1 then f(n+1);printf("%d",n);

C.printf("%d",n);if n>1 then f(n-1);

D.printf("%d",n);if n<1 then f(n+1);


正确答案:C
【解析】n等于1时,递归结束,当n>1时递归打印n-1。

第4题:

将f=1+1/2+1/3+…+1/n转化成递归函数,其递归体是()。

A、f(1)=0

B、f(1)=1

C、f(0)=1

D、f(n)=f(n-1)+1/n


参考答案:D

第5题:

( 9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:

int sum ( int n ) {

if ( n==0 )

return 0;

else

return n+sum ( n-1 ) ;

}

在执行 sum ( 10 )的过程中,递归调用 sum 函数的次数是【 9 】 。


正确答案:

第6题:

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

int f(int n)

{

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

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

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


正确答案:

第7题:

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成以下两个函数。 (1)funl(intn)求出n的阶乘,必须使用递归调用。 (2)fun2(intn)求出n的阶乘,不能使用递归调用。如果n小于1则返回0。 注意:不能修改函数的其他部分。 试题程序: include<iostream.h> //必须使用递归 intfunl(intn) { } //不能使用递归 intfun2(intn) { } voidmain { inti; cout<<"请输入一个整数:"<<endl; cin>>i; cout<<"输入数字的阶乘是:"<<funl(i)<<endl; cout<<"输入数字的阶乘是:"<<fun2(i)<<endl; return; }


正确答案:
//必须使用递归
jntfunl(intn)
{
if(n<=0)
return0;
if(n==1)
return1;
returnn*funl(n-1);
};
//不能使用递归
intfun2(intn)
{
if(n<=0)
retturn0;
intres=1:
for(inti=1;i<=n;i++)
{
res*=i;
}
returnres;
}
【解析】本题考查的是递归函数和阶乘算法。递归的阶乘算法可以通过判断传入参数,如果大于1,则返回n*funl(n-1),意思是返回n乘以n-1的阶乘;如果等于1,则返回1。这样递归下去就能最终得出n的阶乘。非递归算法可以先建立一个累乘变量,并初始化为1,然后循环遍历1~n,将遍历的数累乘到变量中即可。

第8题:

若有以下程序includevoidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}则以下叙述中不的是()。

A、若只在主函数中对函数f进行说明,则只能在主函数中调用函数f

B、若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以调用函数f

C、对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明

D、函数f无返回值,所以可用void将其类型定义为无值型


参考答案:C

第9题:

若有以下程序#includevoidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf(“%d\n“,n);}则以下叙述中不正确的是()

A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B、若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f

C、对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明

D、函数f无返回值,所以可用void将其类型定义为无值型


参考答案:C

第10题:

有以下程序includestdio.hintf(intt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,4);printf(“%d\n“,s);}intf(intt[],intn){if(n0)returnt[n-1]+f(t,n-1);elsereturn0;}程序运行后的输出结果是()。

A、4

B、10

C、14

D、6


参考答案:B

更多相关问题