还剩7页未读,继续阅读
文本内容:
2.找错题试题1:1{
[10];*1=0123456789〃;,1;试题2:2
[10],1
[10];1;0;i10;l[i]二a;},1;试题3:3*1
[10];1=10,1;解答试题I字符串I需要11个字节才能存放下包括末尾的0,而只有10个字节的空间,会导致数组越界;对试题2,如果面试者指出字符数组1不能在数组内结束可以给3分;如果面试者指出,1调用使得从1内存起复制到内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数工作方式的给10分;对试题3,1=10应改为110,因为的结果未统计0所占用的1个字节考查对基本功的掌握4分I字符串以\0结尾;7分2对数组越界把握的敏感度;3库函数的工作方式,如果编写一个标准函数的总分值为10,下面给出几个不10同得分的答案2分一二,**=*’\0’;*,*将源字符串加,表明其为输入参数,加2分*=*’\0’;*,*对源地址和目的地址加非0断言,加3分;*=*’\0’;为了实现链式操作,将目的地址返回,加3分!**,*;二=・*=*’\0’;从2分到10分的几个答案我们可以清楚的看到,小小的竟然暗藏着这么多玄机,真不是盖的!需要多么扎实的基本功才能写一个完美的啊!4对的掌握,它没有包括字符串末尾的\0o读者看了不同分值的版本,应该也可以写出一个10分的函数了,完美的版本为*输入参数;断言字符串地址非0;试题5:*p[]二〃P;;试题6:三P,*P二四;*二;,100;,〃〃;;试题7:.*.
10.;・・・・.〃.;・...省略的其它语句;...省略的其它语句四二*100;,〃〃;的解答然后试试题4传入中*p函数的形参为字符串指针,在函数内部修改形参并不能真仍中正的改变传入形参的值,执行完为题*=・;P口二〃〃;p;的P□数组为函数内的局部自动变量,在函数返回后,内存已经被释放这是许多程序员常犯的错误,其根源在于不理解变量的生存期试题6的避免了试题4的问题,传入的参数为字符串指针的指针,但是在中执行申请内存与赋值语句*p二*;后未判断内存是否申请成功,应加上*P进行申请内存失败处理试题7存在与试题6同样的问题,在执行*=*100;后未进行内存是否申请成功的判断;另外,在0后未置为空,导致可能变成一个“野”指针,应加上试题6的函数中也未对的内存进行释放剖析试题47考查面试者对内存操作的理解程度,基本功扎实的面试者一般都能〜正确的回答其中5060的错误但是要完全解答正确,却也绝非易事〜对内存操作的考查主要集中在1指针的理解;2变量的生存期与作用范围;3良好的动态内存申请和释放习惯再看看下面的一段程序有什么错误5试题*pl*p2下代面执码*P;结行*p=*pl;*pl=*p2;*p2=*p;在函数中,p是一个“野”指针,有可能指向系统区,导致程序运行的崩溃在中运行时提示错误“”该程序应该改为*pl*p2{p;p=*pl;*pl=*p2;*p2=p;果?是否存在错误?Af{«“A;}A{f{«“B”〈〈;}A*B;f;a;0;
3.内功题试题1分别给出,,,指针变量与“零值”比较的语句假设变量名为解答型变量型变量0型变量=
0.00001;x〉=-x=8:指针变量考查对0值判断的“内功”,型变量的0判断完全可以写成0,而型变量也可以写成,指针变量的判断也可以写成0,上述写法虽然程序都能正确运行,但是未能清晰地表达程序的意思一般的,如果想让判断一个变量的“真”、“假”,应直接使用、,表明其为“逻辑”判断;如果用判断一个数值型变量、、等,应该用0,表明是与o进行“数值”上的比较;而判断指针则适宜用0,这是一种很好的编程习惯浮点型变量并不精确,所以不可将变量用或“!二”与数字比较,应该设法转化成“=”或“二”形式如果写成x
0.0,则判为错,得0分试题2以下为下的32位程序,请计算的值
[100]二?*p=100;P=解答=4P=4剖析
[100]函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改数组名的本质如下1数组名指代一种数据结构,这种数据结构就是数组;例如
[10]|;«0«;输出结果为10,指代数据结构
[10]2数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改;
[10];;编译出错,提示不是左值
[10];;编译出错,提示不是左值
(3)数组名作为函数形参时,沦为普通指针答:32位平台下,指针的长度(占用内存的大小)为4字节,故()、(p)都为4试题3:写一个“标准”宏,这个宏输入两个参数并返回较小的一个另外,当你写下面的代码时会发生什么事?=(*,b);。
个人认证
优秀文档
获得点赞 0