现在的位置: 首页 > 综合 > 正文

六一儿童节倾情奉献,校内首发,CSDN再发,2011年冬季c/c++程序员找工作心得

2013年08月01日 ⁄ 综合 ⁄ 共 4972字 ⁄ 字号 评论关闭

六一儿童节倾情奉献,校内首发,CSDN再发,2011年冬季c/c++程序员找工作心得

 

我把2011年末2个月去的公司,遇到的问题整理出来,自己复习下,也供大家参考。其实没什么经验,也就是流水账。对部分公司我也发表了自己的观点,不过纯属自己的体会,给大家参考下。

所有的笔试题目都是部分的,我记录下的都是自己认为比较经典的,要么就是我不太会的,至于一些常考的,简单的不能再简单的,就没有必要记录了。

201110月下旬开始找工作,先后经历了30家公司。Offer也拿了很多,但是都不是很给力,要么工资低,工资高的户口不给力,最后还在飘,打算明年春天再找找看,奔些大公司去。

重点推荐准备书籍:C语言(谭浩强)、c++面向对象程序设计(谭浩强)、数据结构(严蔚敏)、高质量c++/编程指南(林锐博士)、程序员面试宝典第三版(欧立奇)

其他推荐书籍:软件设计师教程(胡圣明)、vc++深入详解(孙鑫)、c++语言 习题与解答第三版(李春葆)、

废话少说进入正题……

20111020    北京**天科公司

这家公司没有笔试,全是面试。先是一个HR面试,让我介绍下项目经验,问我户口问题;

后面是部门经理技术面试,和我谈了很久,介绍了下项目经验,一直给我说自己公司编程时员工是多么的不规范,我说推荐使用林瑞博士的高质量c++/编程指南,大约聊了30多分钟吧;

后面是人事经理面试,随便瞎聊了下,说让我回去等通知,说后面还有2个面试,结果我什么消息都没等到,杯具了毕竟是第一次面试嘛!

20111021   北京宝**软件技术服务公司

这家公司不解决户口,后来问到的,公司出的题量比较大,选择题不少,还有填空题,然后是程序题,但都比较基础。我做的也是的心应手,笔试做完后,是上机,我对此比较反感,不是反感上机,因为公司通知面试时间比较晚,我昨晚笔试题,等了很久前台MM来说再做下上机吧,这时候都差不多11点半了,说上机做一个小时,当时我就火了,老子早晨都没吃饭,过来笔试,还然不让吃中午饭了,不过我忍着做题,心不在焉的,随便选择了个实现strstr(),题目很多,选择2道。做的也不是很好,做完的时候都12点多了,跑前台去说,前台早没人了,后来等了会,一个人过来问我机试的情况,我说太晚了,早晨没吃饭,没心情做,后来就走了,走的时候我看到30道选择题我得分26分。这家公司给我的感觉就是很不好,一点也不人性化,反正我是不会去的。

部分笔试题:

1.Char *p =(char*)malloc(100)

Memset(p,1,100);

Strcpy(p,hello);

Char str[]=hello;

Cout<<sizeof(p)<<strlen(p)<<sizeof(str)<<strlen(str);

答案:4 5 6 5

2.Double dArray[2] = {3,9},*p,*q;

p=&dArrary[0];

q=p+1;

cout<<q-p<<(int)q-(int)p;

答案:1 8

分析:q-p的实际运算是:(q的地址-p的地址)/sizeof(double)

3.STL中以连续形式存储的是:向量(vector),双队列(deque)

分析:向量(vector)连续存储的元素

双队列(deque)连续存储的指向不同元素的指针所组成的数组

4.写出常见的5个设计模式

单例模式,观察者模式,工厂模式,责任链模式,策略模式.

5.随便写一个排序算法

20111024   北京雷***科技有限公司

笔试题相当简单,就是林锐博士高质量c++/c编程指南最后一套题,没啥意思。

20 分钟搞定,答案我都会背了。公司没户口,没谈成。技术面试的时候那人一直问我些莫名其妙的问题,我实习的公司有多大,我们项目小组有几个人,我为什么离职,等等。晕,我之前是实习的,你问我为什么离职?

20111024   中科***股份有限公司

应该是一个员工的面试,结果面试我没通过,面试过程是:介绍下项目经验,针对项目问了几个问题,最后出了一个选择题,做对了,但是没进入下一轮面试。

题目:判断ABCD四个表达式中值是否正确,若正确写出a的值。

int a=4;

A     a+=(a++);     先计算a++,这时候a的值还是4,第二次运算时a=a+(a++)=5+4=9

B     a+=(++a);     先计算++a,这时候a的值是5,第二次运算时a=a+(++a)=5+5=10

C     (a++)+=a;    错误,左侧不是一个有效变量,不能赋值,可改为(++a)+=a;答案为10

D     (++a)+=(a++); 先计算++a,a的值为5,然后再去计算a+=(a++),5+6=11

20111023   **子北京总部     笔试地点:北航

威盛我没进入面试,杯具啊!

1.typedef struct s* tPS define dPS struct s* 哪个好?为什么?

  这两种情况都的意图都是要定义dPStPS作为一个指向结构体s指针,typedef更好。

  因为:dPS P1P2;  Tps P3P4;

第一个扩展为struct s* P1P2;定义P1为一个指向结构的指针,P2为一个实际的结构;

第二个扩展为struct s* P3struct s* P4;正确定义了P3P4两个指针。

2.myStruct *ptr;

 myStruct myArray[10];

 ptr=myArray;

下列哪个指向数组的第二个元素

A ++ ptr

B ptr= ptr+sizeof(myArray);    

C ptr= ptr+sizeof(myStruct);

D ptr= ptr+sizeof(str);

选择A ,B应该为ptr= ptr+10*sizeof(myArray)

3.int a[4][2];

int b=0,x;

int i,y;

for(i=0;i<4;i++)

for(y=0;y<2;y++)

 a[i][j]=b++;

 x=*(*(a+2)+1);

cout<<x;

答案:第三行第二列 7

4.int twofold(int iVal)

 {return iVal*2;}

int main()

{int x,y;

 y= twofold((x=3,x+2));

 printf(x=%i,y=%i\n,x,y)

}

答案:x=3y=10;逗号优先级最低

分析:逗号表达式先求解表达式1值,在求解表达式2的值;

      例如:a=3*5,a*4;表达式的值为60

            (a=3*5,a*4),a+5;表达式的值为20,但是a的值为15.

5.x=5,y= -10,a=4,b=-2;

Z=x+++--y*b/a;

Cout<<z;

答案:z=10

分析:Z = x++    +    --y*b/a;

6.declare a pointer to an integer pointer

A   int *ptr;

B   int **ptr;

C   int *&ptr;

D   int &*ptr;

答案:明显选择B

7.编写strcat函数

8.选择排序

20111023  **信  笔试地点:北邮  应用软件C++工程师

面试官好像是在宣讲会上的那个技术总监,问了些问题,看到我简历上写有测试,让我把题目最后那个mommove测试下,要考虑下哪些情况?

笔试30分钟,题目不难,还有其他测试20分钟(逻辑推理)

1.class A

{

public:

void Fun(void)

{

cout<<"Fun of class A"<<endl;

}

};

int _tmain(int argc_TCHARargv[])

{

A *p;

{

A a;

p = &a;

}

p->Fun();

return 0;

}

答案:Fun of class A

2. char str[] = "abcde中国";

cout << sizeof(str)<<endl;

答案:10,1个汉字占2个字节

3.Fun(int a)

{ Assert(a>=0);}

Fun(int a)

{ Assert(a++>=0);}

分析:Assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序。

使用Assert的缺点:频繁调用会极大影响程序性能,增加额外的开销。

用法总结与注意事项:

(1) 在函数开始处检查传入参数的合法性;

(2) 每个Assert只检查一个条件,因为同时检查多个条件时,如果断言失败,无法直观的判断是哪个条件失败;

(3) 不能使用改变环境的语句,因为Assert只在Debug下生效,如果这么做,会使程序正在运行时遇到问题。

错误:Assert(i++ <100)这是因为如果出错,比如执行前i=100,那么条件语句就不执行,那么i++这条命令就没有执行;

正确:Assert(i<100);i++;

4.软件代码编写规范

具体可参考林锐博士的高质量c++/c编程指南

5.STUDENT S与STUDENT *P区别

结构体和类的本质差不多的,就像定义一个类的一般实例变量,就会调用默认的构造函数对实例进行初始化,每一个成员都有自己的地址空间,但定义一个类的指针,如果没有new之前,只获得了一个存储该指针的32位地址,类还没有初始化,new之后跟上面一样。

定义一个结构体指针后,程序实际只是给指针本身分配了机器字长的空间,用来存储一个地址,如果全局变量或静态变量的话,默认初始化为0;

结构指针式用来存储你真正结构的地址的,而当你刚刚定义指针时,它是没有志向任何结构的,对于你定义的指针,它本身的内容实际为0;

而定义结构体变量就不一样了,如果你定义了一个结构变量,那它本身就分配了内存,当然它的内部变量也是分配内存的。

6.memove原型

20111026北京**时代信息科技有限公司 (笔试+面试) 

笔试题目比较多,面比较广,但是都不是很难。笔试完,技术主管面试,然后是副总面试。

Char str[]=abc\0

Sizeof(str);    答案:5   \0占一个空间

Char str1[]=abc\0d\e

Sizeof(str1);   答案:7    \0、\e各占一个空间

这家公司我感觉面试的很好,技术主管面完后还说我基础挺扎实的,还在黑板上给我讲了将近10分钟公司做什么的。副总面完后说有需要我们会联系你,结果我就杯具了。

20111026     北京图**科技有限公司  (笔试+面试)

笔试题不太好做,具体不记得了,技术初面是个女的,就是针对你做的题在那里和你讨论,那天我做的很烂,不过人家还是给了我机会让我进了2面,下面是技术2面的题目

1. 单一模式:保证一个类仅有一个实例并且提供一个访问它的全局访问点。

2. static成员函数

3. 野指针产生的原因

4. 快速排序,时间、空间复杂度

这段时间也比较累,做题也心不在焉,技术面试的时候被鄙视的一塌糊涂,那时候连个选择排序都不会,只会冒泡。更不要说时间,空间复杂度了。

2011112  北京**鑫公司   (笔试+面试) 

公司是做图像处理,网上阅卷机的。笔试题目比较少,偏C语言点。考到了枚举,结构体

面试题目:

信号与信号量区别:信号与信号量是不同的,他们虽然都可以用来实现同步和互斥,但前者是使用信号处理器来完成的,后者是使用PV操作来实现的。

2011113   北京**华夏科技有限责任公司 (笔试+面试)

笔试题目,比较杂,什么都考,网络方面我记得的就是考各个端口号。其他不记得了。

面试时间抽不开没去。

2011113  **洋 笔试+面试

笔试:题目很多,时间是3个小时,一般人在不到2个小时都交卷了。题目太多我记得不大清楚了,反正做的很垃圾。后来**把我的简历扔到了子公司**上洋,最后上洋发了offer。

技术面试的时候,感觉答的都还可以,后来简历被大洋扔到了子公司**上洋,最后在上洋面试2次,电话通知offer。

**上洋面试的时候是2次面试,都是技术面试,我感觉面试官很好,一个还是我学姐,二面的时候,我感觉老总很好,给的工资也很高,但是由

抱歉!评论已关闭.