已知递归函数f的定义如下: int f(int n) { if(n <=1)return 1; //递归结束情况 else return n*f(
已知递归函数f的定义如下:
int f(int n)
{
if(n <=1)return 1; //递归结束情况
else return n*f(n-2); //递归}
则函数调用语句f(5)的返回值是【 】。
已知递归函数f的定义如下:
int f(int n)
{
if(n <=1)return 1; //递归结束情况
else return n*f(n-2); //递归}
则函数调用语句f(5)的返回值是【 】。
(8 )已知递归函数 f 的定义如下:
int f(int n)
{
if (n <= 1) return 1; // 递归结束情况
else return n * f(n-2); // 递归 }
则函数调用语句 f(5) 的返回值是 【 8 】 。
已知函数f的原型是void f(int *a,long&B) ;,变量v1、v2的定义是: int v1:long v2: 下列调用语句中正确的是
A.f(v1,&v2);
B.f(v1,v2);
C.f(&vl,&v2);
D.f(&vl,v2);
● 已知有变量 data1 定义如下:
union data
{ int i;
char ch;
float f;
} data1;
则变量 data1 所占的内存存储空间可表示为 (57) 。
(57)
A. sizeof(int)
B. sizeof(char)
C. sizeof(float)
D. sizeof(int)+sizeof(char)+sizeof(float)
在C程序中有如下语句:char *func(intx,int y); 它是()。
A.对函数func的定义。
B.对函数func的调用。
C.对函数func的原型说明。
D.不合法的。
A.sizeof(int)
B.sizeof(char)
C.sizeof(float)
D.SiZCOf(mt)+sizeof(char)+sizeof(float)
已知函数f()、g()的定义如下所示,执行表达式”x=f(5)”的运算时,若函数调用g(a)是引用调用(call by reference)方式,则执行”x=f(5)”后x的值为 () ;若函数调用g(a)是值调用(call by value)方式,则执行”x=f(5)”后x的值为 () 。
A.20 B.25 C.60 D.75A.20 B.25 C.60 D.75
●函数f()、g()的定义如下所示,已知调用f时传递给形参x的值是l。在函数f中,若以引用调用(callbyreference)的方式调用g,则函数f的返回值为(32);若以值调用(callbyvalue)的方式调用g,则函数f的返回值为(33)。
(32)A.10
B.11
C.20
D.30
(33)A.10
B.11
C.20
D.30
已知Ackerman函数的定义如下:
(1)写出递归算法;
(2)写出非递归算法;
(3)根据非递归算法, 画出求akm(2,1)时栈的变化过程。
能保证对所有的参数能够结束的递归函数是
A.int f(int n){if(n<1)return 1;else return n*f(n+1);}
B.int f(int n){if(n>1)return 1;else return n*f(n-1);}
C.int f(int n){if(abs(n)<1)return 1;else return n*f(n/2);}
D.int f(int n){if(n>1)return 1;else return n*f(n*2);)
请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
例如:t=1000时,函数值为987。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <conio.h>
include <math.h>
include <stdio.h>
int fun(int t)
{
}
main()
{
int n;
clrscr();
n=1000;
printf("n=%d, f=%d\n",n, fun(n));
}