1、计算机三级数据库技术-109 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.编写函数 jsValue(),它的功能是:求 Fibonacci 数列中大于 t 的最小的一个数,并返回此数的值。其中 Fibonacci 数列 F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 最后调用函数 writeDat(),把结果输出到文件 OUT.DAT 中。 例如,当 t=1000 时,函数值为 1597。 请勿改动主函数 main()和写函数 WriteDat()的内容。 试题程序 #includestdio.h
2、void writeDat(); int jsValue(int t) void main() int n; n=1000; printf(“n=%d,f=%dn“,n,jsValue(n); writeDat(); void writeDat() FILE*out; int s; out=fopen(“OUT.DAT“,“w“); s=jsValue(1000);printf(“%d“,s); fprintf(out,“%dn“,s); fclose(out); (分数:100.00)_计算机三级数据库技术-109 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,
3、分数:100.00)1.编写函数 jsValue(),它的功能是:求 Fibonacci 数列中大于 t 的最小的一个数,并返回此数的值。其中 Fibonacci 数列 F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 最后调用函数 writeDat(),把结果输出到文件 OUT.DAT 中。 例如,当 t=1000 时,函数值为 1597。 请勿改动主函数 main()和写函数 WriteDat()的内容。 试题程序 #includestdio.h void writeDat(); int jsValue(int t) void main() int n;
4、 n=1000; printf(“n=%d,f=%dn“,n,jsValue(n); writeDat(); void writeDat() FILE*out; int s; out=fopen(“OUT.DAT“,“w“); s=jsValue(1000);printf(“%d“,s); fprintf(out,“%dn“,s); fclose(out); (分数:100.00)_正确答案:()解析:int jsValue(int t) int f1=0,f2=1,fn; /*定义变量存储 Fibonacci 数,初始化数列的前两项*/ fn=f1+f2; /*计算下一个 Fibonacci
5、 数*/ while(fn=t) /*如果当前的 Fibonacci 数不大于 t,则继续计算下一个 Fibonacci 数*/ f1=f2; f2=fn; fn=f1+f2; return fn; /*返回 Fibonacci 数列中大于 t 的最小的一个数*/ 考点 本题考查数学计算问题。考查的知识点主要包括:C 语言循环结构,迭代算法,if 判断结构和逻辑表达式。 此题属于数学计算题型。本题要实现函数 jaValue 的功能:找出 Fibonacci 数列中大于 t 的最小的一个数。本题解题思路是:首先通过一个循环结构作为程序的主体,在其该循环体中实现迭代运算,逐个计算数列的每一项,同时判断本题的条件“大于 t 的最小的一个数“,即第 1 个被计算出的大于 t 的 Fibonacci 数;所以当条件满足时,退出循环并停止计算,此时算出的的 Fibonacci 项就是想要的结果,最后函数返回该结果。