2013年计算机二级C语言上机题库二十二_第3页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年4月27日
  编程题
  N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点,请编写函数fun,它的功能是找出学生的最高分,由函数返回。
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:#include <stdio.h>
  #include <stdlib.h>
  #define N 8
  struct slist
  {
  double s; 
  struct slist *next;
  };
  typedef struct slist STREC;
  double fun( STREC *h )
  {
  }
  STREC *creat( double *s)
  {
  STREC *h,*p,*q;
  int i=0;
  h=p=(STREC*)malloc(sizeof(STREC));
  p->s=0;
  while(i<N)
  {
  q=(STREC*)malloc(sizeof(STREC));
  q->s=s[i];
  i++;
  p->next=q;
  p=q;
  }
  p->next=0;
  return h;
  }
  outlist(STREC *h)
  {
  STREC *p;
  p=h->next;
  printf("head");
  do
  {
  printf("->%2.0f",p->s);
  p=p->next;
  }
  while(p!=0);
  printf("\n\n");
  }
  main()
  {
  double s[N]={85,76,69,85,91,72,64,87}, max;
  STREC *h;
  FILE *out;
  h=creat(s);
  outlist(h);
  max=fun(h);
  printf("max=%6.1f\n",max);
  out=fopen("out.dat", "w");
  fprintf(out, "max=%6.1f",max);
  fclose(out);
  }
  答案是:
  double fun(STREC *h)
  {
  double max;
  STREC *q=h;
  max=h->s;
  do
  {
  if(q->s>max)
  max=q->s;
  q=q->next;
  }
  while(q!=0);
  return max;
  }
首页 1 2 3 尾页

相关文章