77范文网 - 专业文章范例文档资料分享平台

51CTO下载-C程序员面试题(2)

来源:网络收集 时间:2021-09-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

return NULL ;

if ( strDest == strSrc)

return strDest ;

char *tempptr = strDest ;

while( (*strDest++ = *strSrc++) != ‘/0’)

;

return tempptr ;

}

挺好的 程序员可以用哈

2 分

void strcpy( char *strDest, char *strSrc )

{

while( (*strDest++ = * strSrc++) != ‘\0’ );

}

4 分

void strcpy( char *strDest, const char *strSrc )

//将源字符串加const,表明其为输入参数,加2 分

{

while( (*strDest++ = * strSrc++) != ‘\0’ );

}

7 分

void strcpy(char *strDest, const char *strSrc)

{

//对源地址和目的地址加非0 断言,加3 分

assert( (strDest != NULL) && (strSrc != NULL) );

while( (*strDest++ = * strSrc++) != ‘\0’ );

}

找错题答案:

试题4 传入中GetMemory( char *p )函数的形参为字符串指针,在函数内部修改形参并不能真正的改

变传入形参的值,执行完

char *str = NULL;

GetMemory( str );

后的str 仍然为NULL;

试题5 中

char p[] = "hello world";

return p;

的p[]数组为函数内的局部自动变量,在函数返回后,内存已经被释放。这是许多程序员常犯的错误,

其根源在于不理解变量的生存期。

试题6 的GetMemory 避免了试题4 的问题,传入GetMemory 的参数为字符串指针的指针,但是在

GetMemory 中执行申请内存及赋值语句

*p = (char *) malloc( num );

挺好的 程序员可以用哈

后未判断内存是否申请成功,应加上:

if ( *p == NULL )

{

...//进行申请内存失败处理

}

试题7 存在与试题6 同样的问题,在执行

char *str = (char *) malloc(100);

后未进行内存是否申请成功的判断;另外,在free(str)后未置str 为空,导致可能变成一个“野”指

针,应加上:

str = NULL;

试题6 的Test 函数中也未对malloc 的内存进行释放。

剖析:

试题4~7 考查面试者对内存操作的理解程度,基本功扎实的面试者一般都能正确的回答其中50~60 的

错误。但是要完全解答正确,却也绝非易事。

对内存操作的考查主要集中在:

(1)指针的理解;

(2)变量的生存期及作用范围;

(3)良好的动态内存申请和释放习惯。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说医药卫生51CTO下载-C程序员面试题(2)在线全文阅读。

51CTO下载-C程序员面试题(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/yiyao/1252926.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: