(招聘面试)(BTRL-305)面试人员评价表_ (346)_

上传人:精****库 文档编号:136761518 上传时间:2020-07-02 格式:DOC 页数:22 大小:127KB
返回 下载 相关 举报
(招聘面试)(BTRL-305)面试人员评价表_ (346)__第1页
第1页 / 共22页
(招聘面试)(BTRL-305)面试人员评价表_ (346)__第2页
第2页 / 共22页
(招聘面试)(BTRL-305)面试人员评价表_ (346)__第3页
第3页 / 共22页
(招聘面试)(BTRL-305)面试人员评价表_ (346)__第4页
第4页 / 共22页
(招聘面试)(BTRL-305)面试人员评价表_ (346)__第5页
第5页 / 共22页
点击查看更多>>
资源描述

《(招聘面试)(BTRL-305)面试人员评价表_ (346)_》由会员分享,可在线阅读,更多相关《(招聘面试)(BTRL-305)面试人员评价表_ (346)_(22页珍藏版)》请在金锄头文库上搜索。

1、C/C+程序员应聘常见面试题作者:宋宝华发布时间:2006-2-2013:43:21|【字体:大中小】1.引言本文的写作目的并不在于提供C/C+程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分。读者可从本文看到strcpy函数从2分到10分解答的例子,看看自己属于什么样的层次

2、。此外,还有一些面试题考查面试者敏捷的思维能力。分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的深入剖析则可进一步增强自身的内功。2.找错题试题1:voidtest1()charstring10;char*str1=0123456789;strcpy(string,str1);试题2:voidtest2()charstring10,str110;inti;for(i=0;i10;i+)str1i=a;strcpy(string,str1);试题3:voidtest3(char*str1)charstring10;if(strlen(str1)=10)strcpy(s

3、tring,str1);解答:试题1字符串str1需要11个字节才能存放下(包括末尾的0),而string只有10个字节的空间,strcpy会导致数组越界;对试题2,如果面试者指出字符数组str1不能在数组内结束可以给3分;如果面试者指出strcpy(string,str1)调用使得从str1内存起复制到string内存起所复制的字节数具有不确定性可以给7分,在此基础上指出库函数strcpy工作方式的给10分;对试题3,if(strlen(str1)=10)应改为if(strlen(str1)=-EPSINON)&(x=”或“=”形式。如果写成if(x=0.0),则判为错,得0分。试题2:以下

4、为WindowsNT下的32位C+程序,请计算sizeof的值voidFunc(charstr100)sizeof(str)=?void*p=malloc(100);sizeof(p)=?解答:sizeof(str)=4sizeof(p)=4剖析:Func(charstr100)函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。数组名的本质如下:(1)数组名指代一种数据结构,这种数据结构就是数组;例如:charstr10;coutsizeof(str)endl;输出结果为10,str指

5、代数据结构char10。(2)数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改;charstr10;str+;/编译出错,提示str不是左值(3)数组名作为函数形参时,沦为普通指针。WindowsNT32位平台下,指针的长度(占用内存的大小)为4字节,故sizeof(str)、sizeof(p)都为4。试题3:写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。另外,当你写下面的代码时会发生什么事?least=MIN(*p+,b);解答:#defineMIN(A,B)(A)=(B)?(A):(B)MIN(*p+,b)会产生宏的副作用剖析:这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函数的功能,但是它终归不是函数,而宏定义中括弧中的“参数”也不是真的参数,在宏展开的时候对“参数”进行的是一对一的替换。程序员对宏定义的使用要非常小心,特别要注意两个问题:(1)谨慎地将宏定义中的“参数”和整个宏用用括弧括起来。所以,严格地讲,下述解答:#defineMIN(A,B)(A)=(B)?(A):(B)#defineMIN(A,B)(A=B?A:B)都应判0分;(2)防止宏的副作用。宏定义#defineMIN(A,B)(A)=(B)?(A):(B)对MIN(*p+,b)的作用结果是:(*p+)=(b

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号