




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重解几道华为经典重解几道华为经典 C C 语言面试题语言面试题 2009 04 17 17 09 19 作者 来源 软件屋 浏览次数 171 文字大小 大 中 小 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 i 10 i str1 i a strcpy string str1 这里有一个一眼就能看出的问题 那就是变量 i 没有定义 这在代码编译阶段编译器可 以帮你发现 很容易搞定 然而很多问题是自己造成的漏洞 编译器是帮不上什么忙的 这 里最大的问题还是 str1没有结束符 因为 strcpy 的第二个参数应该是一个字符串常量 该 函数就是利用判断第二个参数的结束符来得到是否拷贝完毕 所以在 for 循环后面应加上 s tr1p 9 0 PS 字符数组和字符串的最明显的区别就是字符串会被默认的加上结束符 0 void test3 char str1 char string 10 if strlen str1 10 strcpy string str1 这里的问题仍是越界问题 strlen 函数得到字符串除结束符外的长度 如果这里是 1 0话 就很明显越界了 小结 上面的三个找错的函数 主要是考查对字符串和字符数组的概念的掌握以及对 strcpy 函数和 strlen 函数的理解 2 找错 DSN get SRM no static int SRM no int I for I 0 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 I 5 I printf d sum a 运行结果是 8 10 12 14 16 在求和函数 sum 里面 c 是 auto 变量 根据 auto 变量特性知每次调用 sum 函数时变量 c 都会自动赋值为0 b 是 static 变量 根据 static 变量特性知每次调用 sum 函数时变量 b 都 会使用上次调用 sum 函数时 b 保存的值 简单的分析一下函数 可以知道 若传入的参数不变 则每次调用 sum 函数返回的结果 都比上次多2 所以答案是 8 10 12 14 16 4 func 1 int func int a int b switch a case 1 30 case 2 20 case 3 16 default 0 return b 在 case 语句中可能忘记了对变量 b 赋值 如果改为下面的代码 int func int a int b switch a case 1 b 30 case 2 b 20 case 3 b 16 default b 0 return b 因为 case 语句中漏掉了 break 语句 所以无论传给函数的参数是多少 运行结果均为0 5 a q p int a 3 a 0 0 a 1 1 a 2 2 int p q p a q if year 0 month 12 date 31 hour 23 minute 59 second 60 return if year 400 0 year 100 0 if second 60 second 0 minute 1 if minute 60 minute 0 hour
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 任务栈安全性提升策略-洞察及研究
- 博物馆藏品数字化项目管理-洞察及研究
- 多元化固体废弃物资源化路径-洞察及研究
- 核能教育信息化建设-洞察及研究
- 农业主导产业产能分布与转移的区域经济影响评估-洞察及研究
- 利用天文望远镜观测星系间生命信号-洞察及研究
- 智能家居认证协议优化分析-洞察及研究
- 农村金融数字化风险识别-洞察及研究
- 2025至2030中国环卫车市场竞争力分析及发展策略研究报告
- 合作发展土地种植项目协议
- GB/T 15268-2024桑蚕鲜茧
- 教学课件-电子商务法律法规(王庆春)
- 2024考研数二真题及答案
- 餐饮业合伙人入股协议书
- 《智能网联汽车智能传感器测试与装调》电子教案
- 2024年江苏省淮安市中考语文试题卷(含答案解析)
- 2第二章-微生物生态学研究方法
- 膝关节穿刺术课件
- 洁净室区甲醛熏蒸消毒标准操作规程
- (高清版)JTG D81-2017 公路交通安全设施设计规范
- 2024年成都温江兴蓉西城市运营集团有限公司招聘笔试冲刺题(带答案解析)
评论
0/150
提交评论