函数fun的功能是将带头结点的单向链表逆置.docVIP

函数fun的功能是将带头结点的单向链表逆置.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、填空题:给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次  为:10、8、6、4、2。  请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。  注意:源程序存放在考生文件夹下BLANK1.C中。  不得增行或删行,也不得更改程序的结构!  给定源程序:  #include   #include   #define N 5  typedef struct node {  int data;  struct node *next;  } NODE;  /**********found**********/  __1__ fun(NODE *h)  {NODE *p, *q, *r;  p = h;  if (p == NULL)  return NULL;  q = p-next;  p-next = NULL;  while (q)  {  /**********found**********/  r = q-__2__;  q-next = p;  p = q;  /**********found**********/  q = __3__ ;  }  return p;  }  NODE *creatlist(int a[])  {NODE *h,*p,*q; int i;  h=NULL;  for(i=0; i p   {q=(NODE *)malloc(sizeof(NODE));  q-data=a[i];  q-next = NULL;  if (h == NULL) h = p = q;  else {p-next = q; p = q;}  }  return h;  }  void outlist(NODE *h)  {NODE *p;  p=h;  if (p==NULL) printf(The list is NULL!\n);  else  {printf(\nHead );  do  {printf(-%d, p-data); p=p-next;}  while(p!=NULL);  printf(-End\n);  }  }  main()  {NODE *head;  int a[N]={2,4,6,8,10};  head=creatlist(a);  printf(\nThe original list:\n);  outlist(head);  head=fun(head);  printf(\nThe list after inverting :\n);  outlist(head);  }  解题答案:  /**********第一空**********/  NODE* fun(NODE *h)  /**********第二空**********/  r = q-next;  /**********第三空**********/  q = r ;  ******************************************二、改错题:给定程序MODI1.C中函数fun的功能是: 将s所指字符串中位于奇数位置的字符   或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。  例如, 字符串中的数据为: AABBCCDDEEFF,  则输出应当是:ABBCDDEFF。  请改正函数fun中指定部位的错误, 使它能得出正确的结果。  注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!  给定源程序:  #include   #include   #define N 80  void fun(char *s, char t[])  {int i, j=0;  for(i=0; i(int)strlen(s); i++)  /***********found**********/  if(i%2 s[i]%2==0)  t[j++]=s[i];  /***********found**********/  t[i]=\0;  }  main()  {char s[N], t[N];  printf(\nPlease enter string s : ); gets(s);  fun(s, t);  printf(\nThe result is : %s\n,t);  }  解题答案:  /***********found**********/  if(i%2||s[i]%2==0)  /***********found**********/  t[j]=\0;  *****************************

文档评论(0)

中华书局 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档