程序员宝典第19章.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第19 章 程序改错实战题 很多程序员在学校进行专业学习的阶段就开始就熟悉程序改错题了。无论是在学校还 是各种等级、证书考试中,还是求职的面试中,程序改错题都是被习惯考查的题目。程序 改错题考查的是程序员的各项基本功,编程注意事项和变成习惯。这一部分题目练习的主 要目的就是熟能生巧。考查的时候,求职者如果回答不好,甚至可能会出现将正确的程序 部分修改错误的情况,因此积累程序改错题的经验也是很重要的。 面试题279 找出下面代码中的所有错误 以下代码是把一个字符串倒序,如"abcd"倒序后变为"dcba"。 #include "string.h" main() { char src="hello,world"; //定义字符串 * char dest=NULL; * int len=strlen(src); dest=(char )malloc(len); //分配内存空间 * char d=dest; * char s=src[len]; * while(len--!=0) d++=s--; printf("%s",dest); //输出结果 return 0; } 【考题分析】 面试官首先考核应聘人员是否能看懂这段程序,当看到里面应用的函数时,如果经验 比较丰富的能看到可能需要的头文件没有引入,而如果连程序都看不懂,则此题非常难。 【答案】 头部还要加上: #include <stdio.h> 面试题280 找出下面代码中的所有错误 int main() { char src = "hello,world"; * int len = strlen(src); char dest = (char )malloc((len+1) sizeof(char)); //要为\0分配一个空间 * * * 第19 章 程序改错实战题 char d = dest; * char s = &src[len-1]; //指向最后一个字符 * while( len-- != 0 ) d++= s--; * * *d = 0; //尾部要加\0 printf("%s\n",dest); free(dest); //使用完以后,应当释放空间,以免造成内存汇泄露 return 0; } #include <stdio.h> #include <stdlib.h> void getmemory(char p) * { p=(char *) malloc(100); strcpy(p,"hello world"); } int main( ) { char str=NULL; * getmemory(str); printf("%s/n",str); //输出 free(str); return 0; } 【分析与答案】 会造成程序崩溃,具体如下所示: (1)getmemory 中的malloc 不能返回动态内存。 (2 )free()对str 操作很危险。 本题如果回答的很好,

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档