试题 百分网手机站

计算机二级C语言上机题库及答案

时间:2022-01-26 08:29:26 试题 我要投稿

2017计算机二级C语言上机题库及答案

  我们将要迎来计算机考试,大家准备好了吗,以下是小编分享给大家的2017计算机二级C语言上机题库及答案,欢迎测试!

  一、填空题

  给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun 函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。

  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

  注意:源程序存放在考生文件夹下BLANK1.C中。

  不得增行或删行,也不得更改程序的结构!

  给定源程序:

  #include

  #include

  #define N 8

  typedef struct list

  {int data;

  struct list *next;

  }SLIST;

  void fun(SLIST *p)

  {SLIST *t, *s;

  t=p->next; s=p;

  while(t->next != NULL)

  {s=t;

  /**********found**********/

  t=t->___1___;

  }

  /**********found**********/

  printf(" %d ",___2___);

  s->next=NULL;

  /**********found**********/

  free(___3___);

  }

  SLIST *creatlist(int *a)

  {SLIST *h,*p,*q; int i;

  h=p=(SLIST *)malloc(sizeof(SLIST));

  for(i=0; i

  {q=(SLIST *)malloc(sizeof(SLIST));

  q->data=a[i]; p->next=q; p=q;

  }

  p->next=0;

  return h;

  }

  void outlist(SLIST *h)

  {SLIST *p;

  p=h->next;

  if (p==NULL) printf(" The list is NULL! ");

  else

  {printf(" Head");

  do {printf("->%d",p->data); p=p->next;}while(p!=NULL);

  printf("->End ");

  }

  }

  main()

  {SLIST *head;

  int a[N]={11,12,15,18,19,22,25,29};

  head=creatlist(a);

  printf(" Output from head: "); outlist(head);

  printf(" Output from tail: ");

  while (head->next != NULL){

  fun(head);

  printf(" ");

  printf(" Output from head again : "); outlist(head);

  }

  }

  解题答案:

  /**********第一空**********/

  t=t->next;

  /**********第二空**********/

  printf(" %d ",t->data);

  /**********第三空**********/

  free(t);

  ******************************************