首页/ 题库 / [单选题]已知递归函数fun的定义如下: int 的答案

已知递归函数fun的定义如下: int fun(int n) { if(n<=1)return 1;//递归结束情况 else return n*fun(n-2);//递归 } 则函数调用语句fun(5)的返回值是( )。

单选题
2022-01-13 00:42
A、5
B、12
C、15
D、30
查看答案

正确答案
C

试题解析
解析:递归函数fun被定义为含有参数int n返回整型.其中 fun函数递归调用本身,当n=1时,fun返回1,如果大于1那么执行n*fun(n-2)。所以,当n等于5时,执行5*fun(3);当n等于3时继续调用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案为15。

标签:
感兴趣题目
已知递归函数fun的定义如下: int fun(int n) { if(n<=1)return 1;//递归结束情况 else return n*fun(n-2);//递归 } 则函数调用语句fun(5)的返回值是( )。
已知递归函数fun的定义如下: int fun(int n) { if(n<=1)return1;//递归结束情况 else return n*fun(n-2);//递归 } 则函数调用语句fun(5)的返回值是( )。
下面是一个递归Java程序,其功能为 ( ) long Factorial(int n){ if(1==n){ return 1; } else return n * Factorial (n-1); }
设有一个递归算法如下: int fact(int n){ if(n<=0)return 1; else return n*fact(n-1); } 下面正确的叙述是(35)。
有说明语句int a[10];及函数int fun(int x[10],int n){return sizeof(x);},则语句cout<<><>
有以下程序:#include int fun(int n){ static int t=1; int i=1; for(;i<=n;i++)t*=i; return t;}main(){ int t=1,i; for(i=2;i<4;i++)  t+=fun(i); printf(%d,t);}程序的运行结果是(  )。
有以下程序 #include<stdi0.h> void fun(int n,int*p) ( int f1,f2; if(n==1|| n==2)*p=1; else { fun(n-1,&f1);fun(n-2,&f2); *p=f1+f2; } } main { int s; fun(3,&s);printf("%d",s); } 程序的运行结果是( )。
以下程序的输出结果是( )。 #include<stdio.h> int fun(int n,int *s) { int f1,f2; if(n==0||n==1) *s=1; else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } void main() { int x; fun(6,&x); printf(" %d" ,x);}
有以下函数 int fun(char*X,char*y) { int n=0; while((*x= = =*y)*x!=O){x++; y++; n++;} return n; } 函数的功能是( )。
假定n=3,,下列程序的运行结果是( )。 #include<iostream.h> int Fun(int m) void main() { cout<<"Please input a number:"; int n,s=0; cin>>n; s=Fun(n); cout<<s<<endl; } int Fun(int m) { iht p=1,s=0; for (int I=1;I<=m;I++) { p*=I; S+=p; } return s; }
函数定义如下: void fun(int x,int& y){x++;y++;} 如果执行代码段: int a=0,b=1; fun(a,b); 则变量a和b的值分别是( )。
有以下函数定义: void fun(int n,doub x) {……} 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。
相关题目
已知下列函数定义: fun(int%,int c,int n,int datA){int k; for(k=0;k<m*n;k++) {*b=data; b++;} } 则调用此函数的正确写法是(假设变量a的说明为int a[50])( )。
已知函数fun的原型为int fun(int,int,int);下列重载函数原型中错误的是
已定义以下函数: int fun(int *p) { return *p;} 函数fun的返回值是( )。
已定义以下函数; int fun(int *p) { return*p; } fun函数返回值是( )。
已定义以下函数: int fun(int*p) {return*P;) fun函数返回值是( )。
已定义以下函数 int fun(int *p) {return *p;} fun函数返回值是______。
已定义下列函数: int fun(int*p) {return *p;) fun函数返回值是( )。
函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是()。
函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是( )。
函数定义为Fun(int &i),变量定义n=100,则下面调用正确的是( )。
函数定义为 Fun(int &i), 变量定义 n=100, 则下面调用正确的是
设n的初始值为正整数,设计一个递归算去如下: int fact (int n) { if (n<=0) return l; else return (n*fact (n-l)) ; 以下叙述中正确的是(49) 。
有以下程序: int m=1; void fun(int *n) { static int m=2; *n*=m-1; m+=2; } main() { int i; for(i=1;i<4;i++) { fun(&m); printf("%d",m); } } 程序的输出结果是( )
阅读下面程序段,则执行后的结果为 #include"stdio.h" main() { int m=4,n=2,k; k=fun(m,n); printf("%d ",k);} fun(int m,int n) { return(m*m*m-n*n*n);}
阅读下面程序段,则执行后的结果为 #inclide"stdio.h" main() { int m=4,n=2,k; k=fun(m,n); printf("%d ",k);} fun(int m,int n) { return(m*m*m-n*n*n);}
假定a=3,下列程序的运行结果是( )。 #inelude<iostream.h> int fun(int n); void main() { cout<<"Please input a number:"; int a,result=0; cin>>a; result=fun(a); tout<<result<<end1; } intfun(int n) { int p=1,result=0; for(int i=1;i<=n;i++) { p*=i; result+=p; } return result; )
假定a=3,下列程序的运行结果是( )。 #include<iostream.h> int fun(int n); void main() { cout<<"Please input a number:"; int a,result=0; cin>>a; result=fun(a); cout<<result<<end1; } int fun(int n) { int p=1,result=0; for(int i=1;i<=n;i++) { p*=i; result +=p; } return result; }
设有一个递归算法如下int fact(intn){//n 大于等于0 if(n<=0)return 1; else return n* fact(n--); }则计算fact(n)需要调用该函数的次数为(30)次。
设有一个递归算法如下 im fact(int n){ if(n<=0)return 1; else return n * fact(n-1); } 下面正确的叙述是(35)。
设有如下函数定义int fun(intk){ if(k<1) return 0;elseif(k==1) return 1;else returnfun(k-1)+1;}若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是()。
广告位招租WX:84302438

免费的网站请分享给朋友吧