首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 二级考试 >

计算机二级2013年最新C语言上机同步训练题(3)(3)

2013-05-30 
计算机二级2013年最新C语言上机同步训练题(3)小编寄语:现在读书人网(www.reader8.com)陆续为您整理考试相关信息,供大家参考,希望对同学们在这短暂的日子里将这些内容整理掌握。

  给定程序MODI1.C是建立一个带头结点的单向链表, 并用随机函数为各结点数 据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值, 并且作为函数值返回。

  请改正函数fun中指定部位的错误, 使它能得出正确的结果。

  注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!

  给定源程序:

  #include

  #include

  typedef struct aa

  { int data;

  struct aa *next;

  } NODE;

  fun ( NODE *h )

  { int max=-1;

  NODE *p;

  p=h ;

  while(p)

  { if(p->data>max )

  max=p->data;

  p=h->next ;

  }

  return max;

  }

  outresult(int s, FILE *pf)

  { fprintf(pf,"\nThe max in link : %d\n",s);}

  NODE *creatlink(int n, int m)

  { NODE *h, *p, *s, *q;

  int i, x;

  h=p=(NODE *)malloc(sizeof(NODE));h->data=9999;

  for(i=1; i<=n; i++)

  { s=(NODE *)malloc(sizeof(NODE));

  s->data=rand()%m; s->next=p->next;

  p->next=s; p=p->next;

  }

  p->next=NULL;

  return h;

  }

  outlink(NODE *h, FILE *pf)

  { NODE *p;

  p=h->next;

  fprintf(pf,"\nTHE LIST :\n\n HEAD ");

  while(p)

  { fprintf(pf,"->%d ",p->data); p=p->next; }

  fprintf(pf,"\n");

  }

  main()

  { NODE *head; int m;

  head=creatlink(12, 100);

  outlink(head , stdout);

  m=fun(head);

  printf("\nTHE RESULT :\n"); outresult(m, stdout);

  }

  解题思路:

  程序中是使用while循环语句和结合结构指针p来找到数据域中的最大值。

  第一处: p指向形参结构指针h的next指针,所以应改为:p=h->next;。

  第二处: p指向自己的下一个结点,所以应改为:p=p->next,

更多关注:

3月份计算机一级考试微机知识预测整理汇总

2013年计算机等级考试一级微机考题预测汇总

计算机二级C语言上机题考前预测汇总

2013年计算机二级C语言考试预测及答案汇总

3月计算机一级MS Office自测题附答案汇总

3月份计算机二级C语言上机练习题及答案汇总

更多精彩请关注读书人网计算机频道!


热点排行