编程题:
69.请编写函数fun,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
例如:当t=1000时,函数值为1597。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
int fun (int t)
{
}
main()
{
int n;
clrscr();
n=1000;
printf(“n=%d,f=%d\n”,n,fun(n));
}
71.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12,调用该函数后,c=5142。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun(int a, int b, long *c)
{
}
main()
{
int a,b;
long c;
clrscr();
printf(” Input a, b: “);
scanf(“%d%d”, &a,&b);
fun(a,b,&c);
printf(” The result is :%ld\n”, c);
}
改错题:
98.下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
/********found********/
#define FU(m,n) (m/n)
float fun(float a,float b,float c)
{
float value;
value=FU((a+b),(a-b))+FU((c+b),(c-b));
/********found********/
Return (value);
}
main()
{
float x,y,z,sum;
printf(“Input x y z: “);
scanf(“%f%f%f”,&x,&y,&z);
printf(“x=%f,y=%f,z=%f\n”,x,y,z);
if (x==y||y==z){printf(“Data error!\n”);
exit(0);}
sum=fun(x,y,z);
printf(“The result is :%5.2f\n”,sum);
}
99.数列中,第一项值为3,后一项都比前一项的值增5;下列给定程序中,函数fun的功能是:计算前n(4
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#define N 20
int fun(int n,int *a)
{
/********found********/
int i,j,k,sum;
sum=0;
for(k=3,i=0;i
{
sum=sum+k;
/********found********/
if(sum%4=2)
a[j++]=sum;
}
return j;
}
main()
{
int a[N],d,n,i;
printf(“\nEnter n (4
scanf(“%d”,&n);
d=fun(n,a);
printf(“\n\nThe result :\n”);
for(i=0; i
printf(“\n\n”);
}