- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精解几道华为经典C语言面试题
重解几道华为经典C语言面试题
2009-04-17 17:09:19 作者:HYPERLINK /member/member.php?username=Rosy 来源:HYPERLINK 软件屋 浏览次数:171 文字大小:【HYPERLINK javascript:fontZoom(16)大】【HYPERLINK javascript:fontZoom(14)中】【HYPERLINK javascript:fontZoom(12)小】
1、找错
1、找错
void test1(){ char string[10]; char* str1=0123456789; strcpy(string, str1);} 这里string数组越界,因为字符串长度为10,还有一个结束符‘\0’。所以总共有11个字符长度。string数组大小为10,这里越界了。
PS:使用strcpy函数的时候一定要注意前面目的数组的大小一定要大于后面字符串的大小,否则便是访问越界。
void test2(){ char string[10], str1[10]; for(i=0; i10;i++) { str1[i] =’a’; } strcpy(string, str1);} 这里有一个一眼就能看出的问题,那就是变量i没有定义,这在代码编译阶段编译器可以帮你发现,很容易搞定。然而很多问题是自己造成的漏洞,编译器是帮不上什么忙的。这里最大的问题还是str1没有结束符,因为strcpy的第二个参数应该是一个字符串常量。该函数就是利用判断第二个参数的结束符来得到是否拷贝完毕。所以在for循环后面应加上str1p[9] = ‘\0’;
PS:字符数组和字符串的最明显的区别就是字符串会被默认的加上结束符‘\0’。
void test3(char* str1){ char string[10]; if(strlen(str1)=10) { strcpy(string, str1); }} 这里的问题仍是越界问题。strlen函数得到字符串除结束符外的长度。如果这里是=10话,就很明显越界了。
小结:上面的三个找错的函数,主要是考查对字符串和字符数组的概念的掌握以及对strcpy函数和strlen函数的理解。
2、找错
DSN get_SRM_no(){ static int SRM_no; int I; for(I=0;IMAX_SRM;I++) { SRM_no %= MAX_SRM; if(MY_SRM.state==IDLE) { break; } } if(I=MAX_SRM) return (NULL_SRM); else return SRM_no;} 这里for循环的判断语句是后来我加上的,估计在网上流传的时候被人给弄丢了,根据对程序的分析,给补上了。估计错误应该不是这儿。
简单的阅读一下这个函数,可以大概的可以猜测出这个函数的功能是分配一个空闲的SRAM块。方法:从上次分配的RAM块后的RAM块开始检测SRAM每个RAM块,看是否是IDLE状态,如果是IDLE则返回当前的RAM块的号SRM_no.如果所有的RAM块都不是IDLE状态,则意味着无法分配一个RAM给函数调用者,返回一个表示没有RAM可分配的标志(NULL_SRM)。
经过上面的分析,则这里可以知道,这个函数的错误是for循环里面没有给SRM_no这个变量累加1.
3、写出程序运行结果
int sum(int a){ auto int c=0; static int b=3; c+=1; b+=2; return(a+b+c);}void main(){ int I; int a=2; for(I=0;I5;I++) { printf(%d,, sum(a)); }}
运行结果是:8,10,12,14,16,
在求和函数sum里面c是auto变量,根据auto变量特性知每次调用sum函数时变量c都会自动赋值为0.b是static变量,根据static变量特性知每次调用sum函数时变量b都会
您可能关注的文档
- 问题学生的诊断与疏导_372944.ppt
- (转)宝宝学英文你不可不知的17个关键词.doc
- (炎德·英才大联考)湖南省长郡中学2016届高三上学期月考(四)政治试题(Word).doc
- 2014年人力资源管理(一)00147 完整笔记.doc
- 画感觉(说课稿).doc
- 韩顺平linux视频学习笔记整理.docx
- 英语教育见习听课记录.doc
- MBA开题报告范例.doc
- 2014年医学检验士相关笔记.doc
- 马原(课堂笔记).doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
最近下载
- 铁路工程概预算编制办法(铁建设[2006]113号文终稿).pdf
- 【智慧树】【知到】大学生劳动就业法律问题解读(2024必威体育精装版版) 章节测试答案.docx VIP
- 北师大版七年级上册数学课件第六章 数据的收集与整理.pptx
- 正川ZC200系列通用变频器使用说明书 选件.doc
- 2024年疾控大学习新兴技术在传染病预测预警中的应用答案.docx VIP
- 统编版语文六年级上册《童年》整本书阅读推进课(课件).pptx
- 新教材人教版高中物理必修第三册讲义(知识点考点汇总及配套习题含解析).pdf
- 临床基础知识题库及答案 .pdf
- 金色的鱼钩课本剧红色经典长征英语剧本.docx VIP
- 相亲简历模板(男).docx VIP
文档评论(0)