- 相關推薦
2016計算機三級網絡技術上機考試題及答案
編寫函數jsValue(),它的功能是求Fibonacci數列中大于t的最小的一個數,結果由函數返回,其中Fibonacci數列F(n)的定義為:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后調用函數writeDat(),把結果輸出到文件OUT80.DAT中。
例如:當t = 1000時,函數值為1597。
注意:部分源程序已給出。
請勿改動主函數main()和寫函數WriteDat()的內容。
試題程序:
#include
void writeDat();
int jsValue(int t)
{
}
void main()
{
int n;
n=1000;
printf("n=%d, f=%d\n", n, jsValue(n));
writeDat();
}
void writeDat()
{
FILE *out;
int s;
out = fopen("OUT80.DAT", "w");
s = jsValue(1000); printf("%d",s);
fprintf(out, "%d\n", s);
fclose(out);
}
【參考答案及解析】
int jsValue(int t)
{
int f1=0,f2=1,fn; /*定義變量存儲Fibonacci數,初始化數列的前兩項*/
fn=f1+f2; /*計算下一個Fibonacci數*/
while(fn<=t)>
{
f1=f2;
f2=fn;
fn=f1+f2;
}
return fn; /*返回Fibonacci數列中大于t的最小的一個數*/
}
【解析】解答本題的關鍵是要充分理解題意,只有理解了題意本身的數學過程,才能把數學過程轉化為程序邏輯。根據已知數列,我們不難發現:在 Fibonacci數列中,從第三項開始,每一項都可以拆分為前兩項之和。本題要求找到該數列中"大于t的最小的一個數"。這里可以借助一個while循環來依次求數列中的數,直到出現某一項的值大于t,那么這一項就是"大于t的最小的一個數"。
【計算機三級網絡技術上機考試題及答案】相關文章:
計算機三級網絡技術上機題庫及答案05-13
計算機三級網絡技術上機考試題08-16
計算機三級網絡技術上機模擬題及答案10-12
計算機網絡三級上機考試題及答案07-04
計算機三級網絡技術備考試題及答案07-26
計算機三級Access上機試題及答案07-01