斐波那契数列-专题讲解
1、斐波那契数列特点:
a、除第一项和第二项之外,任意一项是前面两项之和。
b、第一项和第二项的值是首先给定的。
2、真题解析
本题的考点是斐波那契数列和子函数的结合。本题主要考了斐波那契数列。
2009年秋试题3
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案
【程序说明】
计算并输出Fibonacci序列前10项之和。要求定义和调用函数fun(fib,n)。该函数将Fibonacci序列前n项的值存放在一维数组fib中。Fibonacci序列:1,1,2,3,5,8,13,21,34,55,……。该序列的第一个数和第二个数都是1,从第三个数开始,每个数都是前两个数之和。
运行示例:
sum=143
【程序】
#include <stdio.h>
main()
{ int i,sum,a[10];
(9)
(10)
sum=0;
for(i=0;i<10;i++)
sum=sum+ (11) ;
printf("sum=%d ",sum);
}
void fun(int fib[],int n)
{ int i=0;
fib[0]=fib[1]=1;
for(i=2;i<n;i++)
(12)
}
【供选择的答案】
(9) A、fun(int fib[],int n); B、void fun(int fib[],int n)
C、; D、void fun(int fib[],int n);
(10)A、fun(fib,n); B、fun(a[],10);
C、fun(a,10); D、fun(a[10],10);
(11)A、fib[i] B、a[i] C、a[10] D、fib[0]
(12)A、fib[i]=fib[i-1]+fib[i-2];
B、fib[i-1]=fib[i-2]+fib[i-3];
C、fib[i+1]=fib[i]+fib[i-1];
D、fib[i]=fib[i-1]+fib[i+1];
3、参考答案以及说明
#include <stdio.h>
main()
{
int i,sum,a[10];
void fun(int fib[],int n); //9 由于子函数定义在后面,这里是函数说明
fun(a, 10); //10 调用子函数,计算出前10项斐波那契数列的值,放在数组a里面
sum=0;
for(i=0;i<10;i++)
sum=sum+ a[i] ; // 11 对a数组的前面10项求和
printf("sum=%d ",sum);
}
void fun(int fib[],int n)
{
int i=0;
fib[0]=fib[1]=1;
for(i=2;i<n;i++)
fib[i]=fib[i-1]+fib[i-2]; //12 根据斐波那契数列的定义,计算任意一项
}
4、注意本题的函数说明
函数的说明有两种方法
第一种:
#include <stdio.h>
void fun(int fib[],int n);
main()
{
....
}
第二种:
#include <stdio.h>
main()
{
void fun(int fib[],int n);
....
}