本站搜索:
          设为首页       加入收藏           全部考试查看
阅读文章

2008年程序员模拟考试试卷——下午题

[日期:2008-04-25] 来源:云南培训认证网  作者: [字体: ]

  试题三(15分,每空3分)

  阅读以下说明和C语言程序,将应填入___(n)___处的字句写在答题纸的对应栏内。

  [说明]

  Fibonacci数列A={11,2,3,5,8,…}有如下性质:

  a0=a1=1

  ai=ai-1+ai-2 i>1

  对于给定的n,另外有一个由n个元素组成的数列xn,该数列中各元素的值为:

  xi=ai/ai+1 i=0,1,…,n

  现要求对xn中的元素按升序进行排序,然后以分数形式输出排序后的xn。例如n=5时,排序前的xn={1/1,1/2,2/3,3/5,5/8},排序后的xn={1/2,3/5,5/8,2/3,1/1}。程序中函数make()首先生成排序前的xn,然后调用函数sort()进行排序,最后输出所求结果。

  [程序]

  #include

  #include

  #include

  struct fact

  {

  long m,n;

  };

  void sort(int n,struct fact *p)

  {

  int a;

  long s,t,u,v;

  struct fact *q,*end;

  for(end=p+(n-1),a=1;a;end--)

  for(a=0,q=p;q

  {

  s=q->m;

  t=q->n;

  u=(q+1)->m;

  v=(q+1)->n;

  if(___(1)___)

  {

  q->m=u;

  ___(2)___

  ___(3)___

  (q+1)->n=t;

  a=1;

  }

  }

  }

  void make(int n)

  {

  int i;

  long a,b,c;

  struct fact *x,*y;

  x=(struct fact *)malloc(sizeof(struct fact)*n);

  x->m=1;

  x->n=1;

  for( a=1,b=1,i=2;i<=n;i++)

  {

  ___(4)___

  a=b;

  b=c;

  (x+(i-1))->m=a;

  (x+(i-1))->n=b;

  }

  ___(5)___

  printf("x%d={%1d/%1d",n,x->m,x->n);

  for(y=x+1;y

  printf(",%1d/%1d",y->m,y->n);

  printf("}\n");

  free(x);

  }

  void main()

  {

  int n;

  printf("input n:");

  scanf("%d",&n);

  make(n);

  }



上一页 [1] [2] [3] [4] [5] [6] [7] 下一页   

阅读:

责任编辑:何老师

【在本站遇到阅读、观看、下载、发表文章等问题   请点此获得帮助 在本站发表文章或者留言    会员登录    会员注册

上一篇:2008年程序员模拟考试试卷——上午题
下一篇:2008年网络管理员模拟考试试卷——上午题
相关阅读       程序员考试模拟试题 
本文评论       全部评论
  没答案给出来干什么?   (大巧若拙 ,05月21日 )
  怎么没有答案呢,, 不然怎么知道自己做对了没有啊   (陈 ,05月13日 )
发表评论


点评: 字数
姓名:    会员登录    会员注册

  • 本站不会回复评论,咨询请到“在本站发表文章或者留言”处提问
  • 评论字数不要超过500字,请不要发广告
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款