模拟试题

3773考试网计算机等级考试模拟试题正文

2014年3月全国计算机二级C语言上机模拟试题十五之4

来源:2exam.com 2013-10-30 19:52:38

解题思路: 

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

  我们给出的程序是利用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"); 

  } 

触屏版 电脑版
3773考试网 琼ICP备12003406号-1