计算机二级

3773考试网计算机等级考试计算机二级正文

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

来源:2exam.com 2013-12-31 14:42:32

给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在 值为ch的结点,函数返回0值。  
  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。  
  注意:源程序存放在考生文件夹下的BLANK1.C中。  
  不得增行或删行,也不得更改程序的结构!  
  给定源程序:  
  #include   
  #include   
  #define N 8  
  typedef struct list  
  { int data;  
  struct list *next;  
  } SLIST;  
  SLIST *creatlist(char *);  
  void outlist(SLIST *);  
  int fun( SLIST *h, char ch)  
  { SLIST *p; int n=0;  
  p=h->next;  
  while(p!=___1___)  
  { n++;  
  if (p->data==ch) return ___2___;  
  else p=p->next;  
  }  
  return 0;  
  }  
  main()  
  { SLIST *head; int k; char ch;  
  char a[N]={’m’,’p’,’g’,’a’,’w’,’x’,’r’,’d’};  
  head=creatlist(a);  
  outlist(head);  
  printf("Enter a letter:");  
  scanf("%c",&ch);  
  k=fun(___3___);  
  if (k==0) printf("\nNot found!\n");  
  else printf("The sequence number is : %d\n",k);  
  }  
  SLIST *creatlist(char *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("\nThe list is NULL!\n");  
  else  
  { printf("\nHead");  
  do  
  { printf("->%c",p->data); p=p->next; }  
  while(p!=NULL);  
  printf("->End\n");  
  }  
  }

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