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

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

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

  N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。

  注意: 部分源程序在文件PROG1.C文件中。

  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

  给定源程序:

  #include

  #include

  #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  { 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;

  h=creat( s ); outlist(h);

  max=fun( h );

  printf("max=%6.1f\n",max);

  NONO();

  }

  解题思路:

  本题是考察如何从链表中求出学生的最高分。

  我们给出的程序是利用while循环语句以及临时结构指针p变量来求出最高分。

  1. 将链表中的第1个值赋给变量max。

  2. 将链表指针p的初始位置指向h的next指针(h->next)。

  3. 判断p指针是否结束,如果结束,则返回max,否则做下一步。

  4. 判断max是否小于p->s,如果小于,则max取p->s,否则不替换。

  5. 取p->next赋值给p(取下一结点位置给p),转3继续。

  参考答案:

  double fun( STREC *h )

  {

  double max=h->s;

  STREC *p;

  p=h->next;

  while(p)

  { if(p->s>max )

  max=p->s;

  p=p->next;

  }

  return max;

  }

  STREC * creat( double *s)

  { STREC *h,*p,*q; int i=0;

  h=p=(STREC*)malloc(sizeof(STREC));p->s=0;

  while(i  { 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");

  }

更多关注:

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

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

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

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

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

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

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


热点排行