(32)设有如下函数定义
int fun(int k)
{ if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是
A)2
B)3
C)4
D)5
第1题:
下列函数的运行结果是
main()
{ int i=2,p;
int j,k;
j=i;
k=++i;
p=f(j,k);
printf("%d",p);
}
int f(int a,int b)
{ int c;
if(a>b)c=1;
else if(a==b)c=0;
else c=-1;
return(c);
}
A.-1
B.1
C.2
D.编译出错,无法运行
第2题:
已知递归函数fun的定义如下: int fun(int n) { if(n<=1)return 1;//递归结束情况 else return n*fun(n-2);//递归 } 则函数调用语句fun(5)的返回值是( )。
A.5
B.12
C.15
D.30
第3题:
以下程序的输出结果是 【 17 】 。
int fun(int *x,int n)
{ if(n==0) return x[0];
else return x[0]+fun(x+1,n-1);
}
main( )
{ int a[]={1,2,3,4,5,6,7}; printf("%d\n",fun(a,3));}
第4题:
阅读下面程序:
include <iostream.h>
int fun2(int m)
{
if(m%3==0)
return 1;
else
return 0;
}
void fun1(int m, int &s)
{
int i;
for (i=1; i<m; i++)
if(fun2(i))
S=S*i;
}
void main()
{
int n=9, s=2;
fun1(n, s);
cout<<s<<end1;
}
该程序的运行结果是【 】。
第5题:
( 21 )计算斐波那契数列第 n 项的函数定义如下:
Int fib(int n){
if (n == 0) return 1;
else if (n == 1) return 2;
else return fib(n-1)+fib(n-2);
}
若执行函数调用表达式 fib(2) ,函数 fib 被调用的次数是
A ) 1
B ) 2
C ) 3
D ) 4
第6题:
已知递归函数f 的定义如下:
int f (int n)
{
If(n<=1)return 1;//递归结束情况
else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是( )。
1
第7题:
有如下程序: #include<iostream> using namespace std; long fun(int n) { if(n>2) return(fun(n-1)+fun (n-2)); else return 2; } int main() { cout<<fun(3)<<end1; return 0; } 则该程序的输出结果应该是 ( )。
A.2
B.3
C.4
D.5
第8题:
以下程序的输出结果是______
nt fun(int*x,int n)
{if(n==0)
return x[0];
else return x[0]+fun(x+1,n-1);
}
main()
{int a[]={1,2,3,4,5,6,7};
printf(“%d\n”,fun(a,3));
}
10
第9题:
下列函数的功能是【 】。
include<iostream. h>
int Func(int a,int b)
{
if (a>b) return 1;
else if(a==b) return 0;
else return -1;
}
第10题:
请补充函数fun(),函数fun()的功能是求7的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
long fun(int n)
{
if(【 】)
return(n*fun(【 】);
else if(【 】)
return 1;
}
main()
{
int k=7;
printf("%d!=%ld\n", k, fun(k));
}