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

六一儿童节倾情奉献,校内首发,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次面试,都是技术面试,我感觉面试官很好,一个还是我学姐,二面的时候,我感觉老总很好,给的工资也很高,但是由于不能保证解决户口,加上公司地址在永丰,有点远,我最后没去,但是我很感谢他们,不过人家说什么时候考虑好给人家打电话就可以,真的感谢他们。

部分笔试题:

1.哪些运算符不能重载

大部分的操作符是可以被重载的,例外的只有“.”“::”“?:”“sizeof”

2.写双向链表的插入和删除

3.我在家里看电视,妹妹在家里看书,妈妈在家里做饭。我和妹妹等饭。

妈妈说:饭好了。我关电视,妹妹合上书,到餐桌准备吃饭。

说说用到那些设计模式。

这是个“观察者模式”

2011114  北京**特石油技术公司 (笔试+面试)

笔试题目都比较简单

1. 不正确的字符串常量是:(A)

abc       B 1212                  C   0            D  “”

2.int a=b=c=5 (正确)

3.进程和线程的差别

4.switch语句的书写

5.写个递归(我写的是折半查找,也就是二分法)

6.排序,我用了最简单的冒泡排序,就是2个for循环

面试:

大概问了下MFC,函数退出时候用哪一个函数?让你讲下你对MFC的理解。

退出程序用 AfxGetMainWnd()->SendMessage(WM_CLOSE);

2011118  **通(笔试+机试+面试)

这家公司我感觉很不好,不诚信。因为我被这家公司忽悠了,原因是:技术面试后,那负责人说2天没给通知,结果10号中午给我电话了,谈了很久说下一步跟人事谈具体待遇,结果我一直没等到,发邮件问了2次,第一次说主管领导出差了,第二次说主管领导认为,还需要再进行一下筛选,所以没有给你offer。所以我感觉呗这家公司给玩弄了。下面来说下具体的面试过程。

所有笔试题目都不难,比较容易,上机让做了个排序,就是给你20个数,让你找出最大的,最小的,然后求出平均值。做一个控制台的,做一个MFC的,做一个DLL的,我那时候就做了一个控制台的。面试的时候,先是拿着你做的题目在那里和你讨论,让你说说想法,后来问的都是很简单的问题,比如说struct与class区别了,记得不太清楚了,反正就是很简单。

部分笔试题如下:

1.作用域的种类有哪些?

不同的标识符有着不同的作用域。按作用域的大小可分为如下5种,从大到小依次为:
·程序级·文件级·类级·函数级·程序块级
  程序级的作用域最大,包括组成该程序的若干个文件。属于程序级作用域的有外部变量或对象和外部函数,在定义它的整个程序中都是可见的。
  文件级作用域有内部函数和外部静态变量或对象。这种作用域的范围是在定义它的文件内,并且是从定义时开始到该文件结束。另外,宏名的作用范围也是文件级,它从定义时起,一直到文件结束,除非文件中出现了undef取消定义。
  类级作用域是指在其类体内,类中的私有成员的作用范围仅在其类体内,而公有成员在类体外有时可见。而类的对象的作用域要看其定义范围。关于类的作用域在后面章节中再讨论。
  函数级作用域是在该函数的函数体内,包括函数的形参、函数体内定义的某些自动类变量或对象、内部静态变量或对象以及语句标号等。但是,需要指出的是不包含在函数体内的分程序中、或if语句中、switch语句中以及循环体内所定义的变量或对象。
  程序块级作用域包含那些定义在分程序中、if语句和switch语句以及循环语句中的自动类和内部静态类的变量或对象。它们的作用范围仅在定义它的相应范围内,从定义时起是可见的。

2.勇士只死一次,懦夫死前已死多次,这句谚语意思是:B
A “双鸟在林不如一鸟在手
B “带马到河边容易,逼马饮水难
C “唯勇者早逝直木先砍
D “不要杞人忧天莫自寻烦恼
E “老家伙比小家伙怕死

3.strcat函数的书写,他出的题好像是有问题的。

20111111  北京***信软件技术有限公司(笔试+机试+面试)

这家公司我印象不是很好,电话通知10点到,到那里先做笔试,笔试题不难,还有部分智力题,做完后是技术面试,面试让我说下软件测试的架构,我哪里知道,聊了会,那人让我做了个机试题目,其实就是strcpy,没啥意思,做完后又让我写了个方案,写方案一个小时,我开始看方案的时候都快12点了,这下我就火了,哥早饭还没吃呢,然后我看了会就说我没写,那人让我说下大概的思路,我连看都没看咋说?结果我就回去了,总体的感觉就是面试那个领导说话太牛,根本不把你放在眼里。说话太牛,跟我介绍公司有多少项目之类的,我听得头都大了,问了句,咱们公司有多少人,他说80多个吧,我说那项目能做的过来吗?那人说这要看领导的领导能力,我当时就无语了,总之总结就是:这家公司的老板仗着自己公司有中科院的背景,也不知道咋地,反正就是牛逼的不得了,不把任何人放在眼里,说话牛逼哄哄的。后来我问了几个同学,去这家公司面试的说的情况和我差不多。

部分笔试题目:

1.求a,b,c,x

int fun(int a,int *b,int &c)

{

int x;

a=a+2;

*b=*b+2;

c=c+2;

x=a+*b+c;

return x;

}

int _tmain(int argc_TCHARargv[])

{

int a,b,c,x;

a=5;

b=5;

c=5;

x=fun(a,&b,c);

cout <<a<<endl<<b<<endl<<c<<endl<<x;

return 0;

}

答案:a=5,b=7,c=7,x=21

智力题:

1.五个洞排成一排,其中一个洞里藏有一只狐狸。每个夜晚,狐狸都会跳到一个相邻的洞里;每个白天,你都只允许检查其中一个洞。怎样才能保证狐狸最终会被抓住? 

答案:按照2, 3, 4, 2, 3, 4的顺序检查狐狸洞可以保证抓住狐狸。为了说明这个方案是可行的,用集合F表示狐狸可能出现的位置,初始时F = {1, 2, 3, 4, 5}。如果它不在2号洞,则第二天狐狸已经跑到了F = {2, 3, 4, 5}。如果此时它不在3号洞,则第三天狐狸一定跑到了F = {1, 3, 4, 5}。如果此时它不在4号洞,则再过一晚后F = {2, 4}。如果此时它不在2号洞,则再过一天F = {3, 5}。如果此时它不在3号洞,再过一天它就一定跑到4号洞了。 
方案不是唯一的,下面这些方案都是可行的: 
2, 3, 4, 4, 3, 2 
4, 3, 2, 2, 3, 4 
4, 3, 2, 4, 3, 2

2.对一批编号为1100,全部开关朝上()的灯进行以下*作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。

解答:1 4 9 16 25 36 49 64 81 100

因为所有灯都是打开的

所以,一个灯如果最后是熄灭的,那么它一定被开关了奇数次

20111115  **技股份有限公司 (笔试+技术HR面试)

那天笔试去了3个人,面试也是三个人面3个人,每人先做个自我介绍,然后有技术面试官发问。

笔试题目:好像是网上的,很简单。

20111115  **团 (笔试)   北方工业大学2

我就参加了笔试,笔试好像是90分钟,先做智力题(好像是30分钟),然后是c++题目,面试那时候由于时间都排满了,通知2次都没去,杯具了,后来有时间了,人家不通知了。

废话少说,部分笔试题目:

1.C编译过程包括哪3个阶段?

  (1)语法分析、语义分析(2)代码生成器(3)优化器

2. f(int y, int *x)

{ y = y +* x; 

*x =*x + y;

}

 main( )

{int x=2,y=4;

f(y,&x);

printf("%d ,%d",&x,&y);     分析:y传值,x传地址,子函数会修改x的内容。

}               

输出结果是x=8,y=4

20111123 北京**网脉技术股份有限公司 (笔试+技术面试)

**讯 (笔试+面试+技术面试+最后面)

笔试题目这两家放一起:

部分笔试题目:

1.堆栈溢出一般是什么原因导致的?

  答:没有回收垃圾资源

2.IP地址的编码分为哪两部分?

:网络号和主机号;要与“子网掩码”按位取与后才能区别哪些是网络位,哪些是主机位。

3. 判断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

4.程序什么时候使用线程,什么时候使用单线程效率高?

(1).耗时的操作使用线程,提高应用程序响应

(2).并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求

(3).多CPU系统中,使用线程提高CPU利用率

(4).改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。

其他情况都使用单线程。

5.Linux有内核级线程吗?

线程通常被定义为一个进程中代码的不同执行路线。从实现方式上划分,线程有两种类型:用户级线程内核级线程。用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。

Linux支持内核级线程。

6.一般数据库若出现日志满了,会出现什么情况,是否还能使用?

答:只能执行查询等读操作,不能执行更改,备份等写操作,原因是任何写操作都要记录日志。也就是说基本上处于不能使用的状态。

7.动态连接库的两种方式?

答:调用一个DLL中的函数有两种方法:1.载入时动态链接load-time dynamic linking),模块非常明确调用某个导出函数,使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL的导入库,导入库向系统提供了载入DLL时所需的信息及DLL函数定位。 2.运行时动态链接(run-time dynamic linking),运行时可以通过LoadLibraryLoadLibraryEx函数载入DLLDLL载入后,模块可以通过调用GetProcAddress获取DLL函数的出口地址,然后就可以通过返回的函数指针调用DLL函数了。如此即可避免导入库文件了。

8.TCP\IP建立连接的过程

答:TCP\IP协议提供可靠的连接服务,采用3次握手建立一个连接。

第一次握手:建立连接时,客户端发送syn(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 

第二次握手:服务器收到syn包,必须确认客户的SYNack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 

第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 

完成三次握手,客户端与服务器开始传送数据

9。字符串倒序。

先说中**脉,这家公司面试是2个人,面试官对我说你笔试题目做的很好,我谦虚的寒暄了几句,然后和我谈了很多,结果没给offer,我无语了,可能是因为解决不了户口吧。我后来也就没问。

阳**讯这家公司给我的印象很深,我往丰台跑了3次,第一次是笔试和那个孙先生面试(他是负责招聘的,我还以为是做技术的,给他balabala了半天浪费我时间),第二次是通知技术面试,孙先生和一个做技术的面我,第三次面试是:3个人,2个是领导,好像一个还是老总,还有一个是博士,面完后给我说有什么问题给他们打电话,结果呢,最后没给我发offer,这家公司是我最无语的公司,一次在我们学校招聘会上,我还问了这个负责招聘的孙先生,他说硕士生公司都会解决户口咋了,还没协商好,说不好意思什么的。NND,老子当时心里就是火,不过我也没说啥,心想,公司在丰台那么远,让我往那里跑了3次,面试没问题,走的时候领导还让我忧问题给他们打电话,结果没给我发offer,哥哥咋说现在也有将近10offer了,不在乎你这一个,再说了,我也不一定去。总之对这家公司影响是很不好。

20111124  **技(机试+2技术面试)

公司没有笔试,直接机试,好像一道是设计一个计算器,要考虑大数越界问题。不过我理解错了,做了个运算符重载。笔试完后是技术面试,问了些技术问题,不难,第二天是副总的面试,然后等了一天就发offer了。感觉公司不错,但是公司说由于我学校不是211,没户口,我也就没留下。工资处于中等水平,能接受的范围。

20111124  星河***科技(笔试+技术面试)

笔试题目很简单,我记得的就是把2个有序的链表重新排序,而且是填空题,还有一个是头文件的作用,还有一个是线程间通信如何实现。

技术面试的时候是2个人面的,一个人问完后,就走了,另一个继续面。面试的时候问到了,调试技巧(为什么在release版本下不会报错,在Debug版本下报错);又问到了野指针,也就是内存分配的一些问题,我balabala说了半天。面试完的时候面试官还礼貌的和我握了手,由于公司给的工资有点低,再加上户口原因,没去;但是我感觉公司面试官很和蔼,要不我可能也去这家公司了。

20111125  北京神**惠科技(笔试+2技术面试+HR面)

笔试题目很多,但是都不是很难,具体一道也想不起来了。

面试的时候第一个应该是老员工,问的问题很不难,UML,单例设计模式,冒泡排序,深拷贝与浅拷贝等等,其他记得不太清楚了。二面的时候是部门经理,问了很多,对了,还问了个选择排序,让我写一个memcpy函数,然后让我改进,问了我内存重叠问题。其实就是memmove考虑的问题。这个内存重叠我没研究过,没答上来。最后面试官说我面试是不是做过准备,我无语了。后来我去了这家公司实习了2天,最后离开了,原因不想多说,不过这家公司给我印象不好。公司工资很低。

20111125  北京永**博(面试+HR面)

这家公司是我面试最轻松的,基本没有技术面,面试人好像是领导,问了些问题,没有具体问细节,后来就是HR面,回去没多久就发offer了,工资还行,第一年还提供住宿,或者是住宿补助。但是说给我解决不了北京户口,解决天津户口,我也就没有去。

20111126  **辰 (笔试+技术面试+面试)

其实我还是想去这家公司,毕竟是做网络安全的,我对这方面感兴趣,笔试题我做的肯定没问题,哪个题错了我都知道,估计最多也就是做错了2-3个题目。面试的时候也没问题,最后面试的时候先做一些什么测试题,性格之类的,不也不知道叫啥,反正就是做很久,然后就是面试,其实我挺生气的,面试的时候根本不是c++的,也不是领导,估计领导不在,随便找了个给我面。没谈技术问题,拉家常。无语。启明最后没给我发offer我很不爽,我不知道为什么?

不多说了,进入笔试题,由于我做的快,没事就把部分题目记了下来。

1.C2为字符型,执行语句C2=A+6-3后,C2的值为  (D

 分析:ASCII65+54-51=68->D

       ASCII值  048    对应  字符0

2.c=5,a=2+(c+=c++,c+8,c++);a应该为多少?

答案:a=13;分析:c=5,c+=c++c=11;c+8,c=11,c++,c=12; (c+=c++,c+8,c++)整个逗号表达式的值为11;最后推出a=13;

3. int a=5,b=3,c;

  c=!a&b++;   推出:a=5,b=4,c=0;

c=!a&&b++;   推出:a=5,b=3,c=0;

4.const char* ptr;  指向向量字符串的指针(对);指向向量字符的指针(错)。

5.已知f(int)是类A的公有成员函数,P是指向成员函数的f1()的指针,下列正确的使用方法是(B

  A: P=f1          B: P=A::f1              C: A::f1 ()        D: P=f1()

6.创建派生类对象时,构造函数的执行顺序是:基类、对象成员、派生类本身(构造函数)

7. union

{

int i;                        4个字节

char x[2];                    2个字节

}a;

int main()

{

a.x[0]=10;             

a.x[1]=1;

printf("%d\n",a.i);

}

答案:266(低位低地址,高位高地址,内存占用情况是0x010A

   分析:a的第一个字节是10,第二个字节是1,我们目前的系统大多是小模式序,低地址存高位数据,所以a.i成为0x010A ,得到:16的平方+10*160次方=266

8.常成员函数: 数据类型 函数名(参数表) const;

9.x=x+1;x+=1;x++哪一个效率最高?

  x=x+1;最低,执行过程:(1).读取右x的地址(2). x+1 (3). 读取左x的地址(4).将右值传给左值

x+=1;其次,执行过程:(1).读取右x的地址 (2). x+1 (3). 将得到的值传给x(因为x的地址已读出)

x++;最高,执行过程:(1) .读取右x的地址 (2). X自增1

10.string4个函数

11.求一个数是否为素数

12.vectormap的特点,什么时候用map

13.写一个单例模式

20111128  北京**普乐科技 (笔试+技术面试)

笔试题目很多,什么都有,还比较难,我硬着头皮做了不少,后面面试的时候面试官说其实可以做一部分,所有职位的题都有。还有网络安全的部分题目。

记得的部分笔试题目:

1.windows套接字在两种模式下执行I/0操作:阻塞模式,非阻塞模式;

  阻塞模式:在I/0操作完成前,执行操作的winsock函数会一直等待下去,不回立即返回。

  非阻塞模式:无论操作是否完成都会立刻返回,需要通过其他方式判断具体的操作是否成功。

2.网络字节序

  网络字节序是tcp/ip中规定好的一种数据表示格式,它于具体的CPU类型无关,从而保证数据在不同主机间传输时能够被正确解释。

  不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序,这个叫主机序。

面试的时候好像问到了异步套接字。分布式之类的东西。

20111129  北京**讯电信技术有限公司(笔试+机试)

这家公司我昨晚笔试看了机试就走了,没意思,公司给我机试的机子我看着就够了,太烂了,感觉公司不咋地,后来就直接走了。笔试题目比较简单。

部分笔试题送上:

.考到了绝对路径,相对路径之类的题;

. int main()

{

int *a=(int*)32;

printf("%d\n",a+64);         答案:32+64*4=288

拓展:int main()

{

char *a=(int*)32;

printf("%d\n",a+64);        答案:32+64*1=96

. #define ADD(p) {p++;(*p)++;}

void  Add(int *p

{

p++;

    (*p)++;

}

int a[] = {3,2,1};

int *p = a;

ADD(p);

ADD(p);

printf("%d,%d,%d\n",a[0],a[1],a[2]);       答案: 3 3 2

p=a;

Add(p);

Add(p);

ADD(p);

ADD(p);

printf("%d,%d,%d\n",a[0],a[1],a[2]);      答案:3 5 2 

2011122  北京**技术开发公司 (面试+笔试)

那天是北京今冬的一场雪,去了先面试,然后让你回去,有意向的话再来笔试,然后和老总谈。我那时候直接申请了笔试,哥跑这么远来了,白白回去?结果做了笔试题,笔试题没任何技术含量,一看就知道是在网上扒的题。结果回去没收到通知。

2011126  **算机 (笔试)

1.一个有10个指针的数组,该指针式指向一个函数,该函数有一个整形参数并返回一个整形数。       int (*a[10])(int )

a) 一个整型数(An integer

b) 一个指向整型数的指针(A pointer to an integer

c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer

d) 一个有10个整型数的数组(An array of 10 integers

e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers

f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

答案:a) int a; // An integer

b) int *a; // A pointer to an integer

c) int **a; // A pointer to a pointer to an integer

d) int a[10]; // An array of 10 integers

e) int *a[10]; // An array of 10 pointers to integers

f) int (*a)[10]; // A pointer to an array of 10 integers

g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer

h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer

2.给定一个整形变量a,写两段代码,第一个abit3,第二个清除abit3,在以上2个操作中,要保持其他位不变(a32位的)。

答案:

#define BIT3 (0x1<<3)

Static int a;

Void set_bit3(void){a|=BIT3;}

Void clear_bit3(void){a&=~BIT3;}

或者:a|=0x08;a&=0xF7;  

3. 将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是

答案:ASCII码形式存储,每个数字占1个字节,100025个数字,占5个字节

以二进制形式存储,每个整数不论大小占2个字节,100021个整数,占2个字节

4.指针变量按照定义格式分为哪几类?每类如何定义?

所谓指针就是变量、数组、函数等的内存地址。
指针变量按定义格式大致可分为五种:指针变量、指针数组、指向一维数组的指针变量、返回指针值函数、函数指针变量。

1)指针变量的定义格式如下:
〔存储类型〕 <类型> *<指针变量名;如: int b,a[10],* p;
2)指针数组的定义格式如下:
〔存储类型〕 <类型> *<数组名>[<数组长度>]
例如: char c[3 ][4]={ "ABC","DEF","GHI"};
char *pc[3 ]={c[0],c[1],c[2]};
3)指向一维数组的指针变量可用于处理二维数组的运算问题,其定义格式为:
<类型> (*<指针变量名>)[<数组列数>];
如:int (*p)[3];
4)函数可返回一个指针值,该指针指向一个已定义好的任一类型的数据。定义返回指针值的函数格式为:<类型> *<函数名>(<形参>){<函数体>}
如:float * f ( float x) {… } 定义了一个返回实型指针的函数f (),该函数的形参为实型的x
5)函数指针变量是用于存放函数指针的变量,也即存放函数入口地址的变量。函数指针变量的定义格式为:
<类型> (*<变量名>) (<参数表>)

5.写出标准SQLselect,insert,update,delete语句。

6.画出类之间(A类,B类)“关联”、“泛化”、“实现”、“依赖”之间的关系。

7.画出乘客在电梯里的用例图。

2011127  **团 (笔试+面试)

笔试题目都很简单题目都很简单,2页的题目。记得不太清楚了,反正就是很简单。面试时候是3个人面的,这3个人都是做技术的,一个人主面,估计是研发经理和几个老员工面的,无非是介绍下项目,针对项目问些问题,没有问具体的知识,只是大致问了下。

笔试题目:

1.C编写死循环(3中方法)

(1)while(1)

(2)for(;;)

(3)Loop:

...

goto Loop;

2.进程与线程的区别

3.软件测试方法,黑盒测试白盒测试。

4.全局变量与局部变量区别

20111221  **技 (笔试)

题目比较杂,不是以c++为主的,啥题都有,先总结下:

2005年下半年系统分析师上午部分题:

在下面的活动图中,从A到J的关键路径是__(24)__,I和J之间的活动开始的最早时间是__(25)__。

(24)A.ABEGJ   B.ADFHJ    C.ACFGJ    D.ADFIJ
(25)A.13     B.23      C.29      D.40

● 下列关于软件需求管理与需求开发的论述,正确的是__(26)__。
(26)A.所谓需求管理是指对需求开发的管理
   B.需求管理包括:需求获取、需求分析、需求定义和需求验证
   C.需求开发是将用户需求转化为应用系统成果的过程
   D.在需求管理中,要求维持对原有需求和所有产品构件需求的双向跟踪

答案:24  B                 25   D                   26 B

● 某商场的部门、员工和商品三个实体之间的关系如下图所示。假设每个部门有若干名员工,每种商品只能由一个部门负责销售,那么部门到员工、部门到商品之间分别存在这__(33)__的联系。如果用户要求得到表4所示的结果,需要__(34)__,并增加关系模式__(35)__。如果查询某部门负责销售的商品,需要__(36)__。

(33)A.1:1和1:1   B.1:1和1:n   C.1:n和1:1   D.1:n和1:n
(34)A.修改表1的结构,在表1中增加一个员工号
   B.修改表2的结构,在表2中增加一个员工号
   C.修改表2的结构,在表2中增加一个部门号
   D.修改表3的结构,在表3中增加一个部门号
(35)A.Sale_record(员工号,名称,数量)
   B.Sale_record(员工号,名称,商品号,数量)
   C.Sale_record(员工号,部门号,数量)
   D.Sale_record(员工号,部门号,商品号,数量)
(36)A.修改表1的结构,在表1中增加一个员工号
   B.修改表2的结构,在表2中增加一个员工号
   C.修改表2的结构,在表2中增加一个部门号
   D.修改表3的结构,在表3中增加一个部门号

  

答案:33.C 34.C 35.D 36.C 

某工厂仓库有一名保管员,该仓库可存放n箱零件。该工厂生产车间有m名工人,只要仓库空闲,工人将生产好的整箱零件放入仓库,并由保管员登记入库数量;该工厂销售部有k名销售员,只要仓库库存数能满足客户要求,便可提货,并由保管员登记出库数量。规定工人和销售员不能同时进入仓库,但是工人和工人,销售员和销售员可以同时进入仓库,其工作流程如下图所示。

假设系统中P操作表示申请一个资源,当执行P操作时对信号量减1,若信号量S0,则执行P操作的进程继续执行,否则等待。系统中V操作表示释放一个资源,当执行V操作时对信号量加1,若信号量S>0,则执行V操作的进程继续执行;若信号量S0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续。
  为了利用PV操作正确地协调工人和销售员进程之间的工作,设置了信号量S1,S2和S3,它们的初值分别为n、0和1。图中的a和b应填写__(40)__;图中的e和f应分别填写__(41)__;图中的c、d、g和h应分别填写__(42)__。


(40)A.P(S1) 、V(S1)         B.P(S1)、V(S2)
   C.P(S2) 、V(S2)         D.P(S2)、V(S1)
(41)A.P(S1) 、V(S1)         B.P(S1)、V(S2)
   C.P(S2) 、V(S2)         D.P(S2)、V(S1)
(42)A. P(S1)、V(S1)、P(S2)、V(S2)  B.P(S1)、V(S1)、P(S3)、V(S3)
   C.P(S2)、V(S2) 、P(S3)、V(S3)  D.P(S3)、V(S3)、P(S3)、V(S3)

答案:40.B 41.D 42.D 

Microsoft's COM is a software __(66)__ that allows applications to be built from binary software components. COM is the underlying architecture that forms the foundation for higher-level software services, like those provided by OLE. COM defines a binary standard for function calling between components, a way for components to dynamically discover the interfaces implemented by other components, and a mechanism to identify components and their interfaces uniquely.
  OLE is a compound __(67)__ standard developed by Microsoft. OLE makes it possible to create __(68)__ with one application and link or embed them in a second application. Embedded objects retain their original format and __(69)__ to the application that created them. Support for OLE is built into the Windows and MacOS Operating Systems. A __(70)__ compound document standard developed mainly by Apple and IBM is called OpenDoc.
  (66)A.architecture  B.protocol   C.procedure   D.structure
  (67)A.text      B.graphic   C.document   D.database
  (68)A.table     B.event    C.objects    D.function
  (69)A.characteristics B.address   C.page     D.links
  (70)A.completing   B.competing  C.connecting  D.contained

答案:66-67 ACCDA

C语言题目:

一:已知一棵二叉树是以二叉链表的形式存储的,其结点结构说明如下:

struct node { int data; // 结点的数据场。
struct node *left; // 给出结点的左儿子的地址。
struct node * right; // 给出结点的右儿子的地址。
};
请在1、2二题的 [ ] 处进行填空,完成题目要求的功能。注意,每空只能填一个语句,多填为 0 分。
1、 求出以T 为根的二叉树或子树的结点个数。
int size (struct node * T ) {
if ( [ T == NULL ] ) return 0;
else [ return 1 +size(T->left) + size(T->right) ];
}
2、 求出以T为根的二叉树或子树的高度。注:高度定义为树的总的层次数。
int height(struct node * T ) {
if ( T == NULL ) [ return 0 ];
else [ return 1 +( ( height(T->left) > height(T->right))? height(T->left): height(T->right) ) ];
}

二:一个盲人使用的冰箱,写出设计思路?

三:智力题:

(1)小明对哥哥说:我长到你现在这么大年龄时,你就31岁了。哥哥说:是啊,我像你这么大的时候,你只有1岁呢。问:小明与他的哥哥现在各几岁?

解答:设小明X岁,哥哥Y岁。他们的岁数差为d,则有X+d=Y。根据题意可知小明到了Y岁时哥哥31岁,小明1岁时哥哥为X岁。由此再有两个等式:Y+d=31,1+d=X.整理三个等式可得3d=30,d=10.即岁数差为10.就可知X=11,Y=21

(2)有一个细胞,一秒中可以复制两个一样大小的细胞现在把这个细胞放在一个杯子里面,2分钟就可以填满这个杯子,那么放两个细胞多长时间可以填满这个杯子

解答:1分59秒

数据库题目:

1、什么是事务?

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

事务的开始和结束可以由用户显示控制,如果用户没有显示定义事务,则有DBMS按默认的规定自动划分事务。事务具有原子性、一致性、独立性及持久性等特点。

2.解释第一范式,第二范式,第三范式

3.常用的SQL语句

表1名称:employee 包含的字段名称employee_GUID(主键), name(姓名),age(年龄),email(邮件),address(地址),department_GUID(外键)

表2名称:department 包含的字段名称 department_GUID(主键), name(部门名称),telephone(部门电话)

写出SQL语句:

1〉、所有年龄等于25岁的人姓名

Select name from employee where age=25;

2〉、所有年龄等于25岁并且属于“电子政务事业部”的人的姓名、邮件地址

Select e.name,e.email from employee e,department d where e.age=25 and d.name= 电子政务事业部 and e.department_GUID =d.department_GUID;

3>、统计年龄等于25岁的人的个数

Select count(*) form employee where age=25;

5>、查询所属部门等于“电子政务事业部”人的姓名,年龄

Select e.name,e.age from employee e,department d where d.name= 电子政务事业部 and e.department_GUID =d.department_GUID;

名词解释:下面是我会的,还有些我不会,所以没记得太清楚。

XML,J2EE,ERP

网络部分题目:

给你ip地址和子网掩码,让你求出主机地址,网络地址和广播地址。

 

此博客曾在校内首发。

现发表在2012答辩、工作尘埃落定后。今天是六一儿童节作为一个纪念,纪念20多年来的求学生涯,也算是画上一个句号。

欢迎转载,请指明出处。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值