试题

计算机三级网络技术上机考试题及答案

时间:2024-12-10 22:19:03 试题 我要投稿
  • 相关推荐

2016计算机三级网络技术上机考试题及答案

  编写函数jsValue(),它的功能是求Fibonacci数列中大于t的最小的一个数,结果由函数返回,其中Fibonacci数列F(n)的定义为:

2016计算机三级网络技术上机考试题及答案

  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

计算机三级网络技术上机考试题04-04

最新计算机三级网络技术上机试题及答案01-03

2016计算机三级网络技术上机题及答案07-28

计算机三级网络技术考试题及答案08-01

计算机三级网络技术上机模拟题及答案04-18

计算机三级网络技术考试题及答案201606-09

计算机三级网络技术备考试题及答案07-26

计算机网络三级上机考试题及答案07-04