C程序员语言面试100题课件.pptVIP

  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文档。上传文档
查看更多
100条经典C语言笔试题目 85、华为面试题:怎么判断链表中是否有环? 【参考答案】答:用两个指针来遍历这个单向链表,第一个指针p1,每次走一步;第二个指针p2,每次走两步;? 当p2 指针追上 p1的时候,就表明链表当中有环路了。 int testLinkRing(Link *head) { ?? Link *t1=head,*t2=head; ?? while( t1-next t2-next) ? ? { ? ?? ? t1 = t1-next; ? ?? ?? ?? ? if (NULL == (t2 = t2-next-next)) ? ?? ?? ?? ?? ? return 0;? ?//无环 ? ?? ?? ?? ? if (t1 == t2) ? ?? ?? ?? ?? ? return 1; ? ?? ?} ?? return 0; } 100条经典C语言笔试题目 86、有一浮点型数组A,用C语言写一函数实现对浮点数组A进行降序排序,并输出结果,要求要以数组A作为函数的入口.(建议用冒泡排序法) 【参考答案】 void ? BubbleSort(double ? arr[], ? int ? n) ? { int ? i,j; ? ? ? ? ? ? ? int ? exchange ? = ? 1; ? //交换标志 ? ? ? ? ? ? ? for(i=1;in;i++) { ? //最多做n-1趟排序 ? ? ? ? ? ? ? ? ? exchange=0; ? //本趟排序开始前,交换标志应为假 ? ? ? ? ? ? ? ? ? for(j=n-1;j=i;j--) ? //对当前无序区R[i..n]自下向上扫描 ? ? ? ? ? ? ? ? ? ? if(arr[j+1] ? ? arr[j]) {//交换记录 ? ? ? ? ? ? ? ? ? ? arr[0]=arr[j+1]; ? //R[0]不是哨兵,仅做暂存单元 ? ? ? ? ? ? ? ? ? ? ? ? arr[j+1]=arr[j]; ? ? ? ? ? ? ? ? ? ? ? ? arr[j]=arr[0]; ? ? ? ? ? ? ? ? ? ? ? ? exchange=1; ? //发生了交换,故将交换标志置为真 ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? if(!exchange) ? //本趟排序未发生交换,提前终止算法 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return; ? ? ? ? ? ? ? } ? //endfor(外循环) ? ? } 100条经典C语言笔试题目 87、实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 【参考答案】 //删除操作 Status?ListDelete_DuL(DuLinkList?L,int?i,ElemType?e) { ?? if(!(p=GetElemP_DuL(L,i)))?return?ERROR; ? ?e=p-data; ? ?p-prior-next=p-next; ?? p-next-prior=p-pror; ?? free(p); ?? return?OK; } //插入操作 Status?ListInsert_DuL(DuLinkList?L,int?i,ElemType?e) { ?? if(!(p=GetElemP_DuL(L,i))) ??? ?return?ERROR; ?? if(!(s=(DuLinkList)malloc(sizeof(DuLNode))))???? ?return?ERROR; ?s-data=e; ? ?s-prior=p; ?? p- next - prior =s; p-next=s;?? s-next=p-next-next;?? ?? return?OK; } 100条经典C语言笔试题目 88、把一个链表反向 。 【参考答案】从第一个元素开始,ps指向他,将他(ps)指向头节点(ps-next = head),将ps设为头节点(head = ps;)操作下一个元素(ps = pe-next;)等于是依次将每个元素翻到原头节点前面。 void reverse(test* head) { test* pe = head; test* ps

文档评论(0)

kbook + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档