各大IT公司校园招聘软件工程师面试有关问题集锦

各大IT公司校园招聘程序员面试问题集锦
中国教育在线讯 2014校园招聘不乏优秀品牌企业参加,为此,大学生在求职面试前,增加自己的含金量是非常重要的,了解常见面试题目,摸清考官心理,才能让面试回答更符合招聘人才标准,下面,中国教育在线就业频道汇总各大IT公司常见的校园招聘面试题,希望对大家有所帮助。 各大IT公司校园招聘程序员面试问题集锦

各大IT公司校园招聘程序员面试问题:阿里巴巴B2B 

阿里巴巴B2B一面

  1、各种排序算法的比较次数

  2、static、auto未初始化的初始值

  http://blog.csdn.net/hackbuteer1/article/details/7487694

  3、x*=y+8,给出x,y的值,求该表达式计算后二者的值

  4、enum类型的default赋值规则

  5、定义函数F(intx){return(x*x);}求F(3+5)

  6、fgets(s,n,f)函数的功能

  7、定义*s="ab\0cdef",输出该字符可以看到什么结果

  8、还是static相关知识——在此说明一下static这个关键字相当重要,在笔试中出现率为100%,在面试中出现率为50%。

  9、数据库中索引,簇索引,非簇,唯一,复合,覆盖索引的区别

  10、SQL语句和范式是对数据库有要求的公司笔试必考点之一

  阿里巴巴B2B二面

  1、通配符的含义

  2、死锁的基本知识——死锁是各大笔试面试中出现率50%的知识点

  3、信号量P、V原语的相关知识点

  4、有向图的邻接表表示

  5、STL中迭代器的工作原理,迭代器与普通指针有什么区别?

  回答思路:迭代器和指针相同的地方:

  1、指针和iterator都支持与整数进行+,-运算,而且其含义都是从当前位置向前或者向后移动n个位置

  2、指针和iterator都支持减法运算,指针-指针得到的是两个指针之间的距离,迭代器-迭代器得到的是两个迭代器之间的距离

  3、通过指针或者iterator都能够修改其指向的元素

  通过上面这几点看,两者真的很像,但是两者也有着下面的几个不同地方

  1、out操作符可以直接输出指针的值,但是对迭代器进行在操作的时候会报错。通过看报错信息和头文件知道,迭代器返回的是对象引用而不是对象的值,所以cout只能输出迭代器使用*取值后的值而不能直接输出其自身。

  2、指针能指向函数而迭代器不行,迭代器只能指向容器

  这就说明了迭代器和指针其实是完全不一样的概念来的。指针是一种特殊的变量,它专门用来存放另一变量的地址,而迭代器只是参考了指针的特性进行设计的一种STL接口。

  笔者曾在网上看到这样一种说法:迭代器是广义指针,而指针满足所有迭代器要求。迭代器是STL算法的接口,而指针是迭代器,因此STL算法可以使用指针来对基于指针的非STL容器进行操作。

  笔者觉得上面说法也有几分道理,但是到底正不正确就留给看官自己判断了。但是有一点希望大家注意的是:千万不要把指针和迭代器搞混了。也许某些编译器使用指针来实现迭代器以至于有些人会误以为指针和迭代器是一个概念来的。

  6、什么是友元?

  7、delete、new的用法

  8、typename的用法

  9、编程判断一个数是否为2的幂

  10、你怎样重新改进和设计一个ATM银行自动取款机?

  12、10000Mbps万兆交换机怎么实现?

  13、操作符重载的相关知识点,大题,具体记不清了

各大IT公司校园招聘程序员面试问题:网新恒天

网新恒天一面

  1、考察指针int(*p)[10]和int*p[10]的区别,用法

  2、sizeof(),strlen()的区别和用法

  3、堆、栈的区别和用法

  4、多继承的优点与缺点

  5、(1)IO2:30ms,CPU20ms,IO120ms,CPU30ms

  (2)IO120ms,CPU20ms,IO210ms

  (3)CPU30ms,IO120ms

  求三种情况的CPU和IO占用率

  网新恒天二面:

  1、内联函数与宏的区别

  2、与信号量相关知识的考察,具体题目记不清了,反正知道基本概念就会做

  3、填空,考察页式虚拟内存的缺页情况,也是知道这部分知识点就会做的题

  4、类的继承相关知识点的考察,是一道程序输出分析题

  5、栈的类的成员函数的实现,程序填空题。

  6、模板函数与函数模板的区别

  7、函数模板与类模板的区别

大IT公司校园招聘程序员面试问题:迅雷

迅雷面试题

  1、写一个字符串插入的函数

  2、问了我关于虚函数底层的实现

  3、写了快排、堆排

  4、问我TCP、UDP的一些知识

  5、还问了我一些Linux的知识

  6、让我实现红黑树的删除操作

各大IT公司校园招聘程序员面试问题:网易有道

网易有道

  1、试着用最小的比较次数去寻找数组中的最大值和最小值。

  解法一:

  扫描一次数组找出最大值;再扫描一次数组找出最小值。

  比较次数2N-2

  解法二:

  将数组中相邻的两个数分在一组,每次比较两个相邻的数,将较大值交换至这两个数的左边,较小值放于右边。

  对大者组扫描一次找出最大值,对小者组扫描一次找出最小值。

  比较1.5N-2次,但需要改变数组结构

  解法三:

  每次比较相邻两个数,较大者与MAX比较,较小者与MIN比较,找出最大值和最小值。

各大IT公司校园招聘程序员面试问题:58同城

58同城面试题

  一面:

  1、set(底层基于红黑树实现)的操作;

  2、手写快排递归与非递归实现;

  3、KMP原理解释

  4、聚类分类协同过滤算法;

  二面:

  1、提示词实现Trie树+hash

  2、最快速度求两个数组之交集;

  3、文章最短摘要生成;

各大IT公司校园招聘程序员面试问题:微软

微软面试题

  微软面试题汇总

  1、给你一个凸多边形,你怎么用一条线,把它分成面积相等的两部分

  2、有一条数轴,上有一整数点s,点s两侧分别放了两个机器人,不知道两个机器人分别距离s的距离,两机器人不能相互通信。

  现在,给你以下指令:

  R(往右一格)

  L(往左一格)

  IF(S)是否在S点

  GOTOA,跳到A代码段。

  设计一套指令给两个机器人,让两个器机可以最终在某一点相遇。

  3、怎么判断两棵二叉树是否是同构的

  4、按层次打印一个二叉树

  5、给你一个数n(最大为10000),怎么求其阶乘

  6、判断两个单链表是否有交叉

各大IT公司校园招聘程序员面试问题:腾讯

腾讯一面

  1、关系型数据库的特点

  2、父类的析构函数为什么要定义为虚函数

  3、把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。(比较难)

  4、快排算法实现程序

  5、KMP算法实现程序

  6、override和overload的区别

  7、编程并实现一个八皇后的解法

  8、链表的归并排序

  腾讯二面:

  1、在数据库中如何创建一个表

  2、创建后如何添加一个记录、删除一个记录

  3、编写C++中的两个类一个只能在栈中分配空间一个只能在堆中分配。(比较难)

  4、请编写实现malloc()内存分配函数功能一样的代码。

  5、请编写能直接实现strstr()函数功能的代码。

  6、已知:每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

  7、static的作用——再一次出现~

  8、写string类的构造,析构,拷贝函数——这题大约出现过4次左右,包括编程和程序填空,程序员面试宝典上有这题,也算是个经典笔试题,出现几率极大~

各大IT公司校园招聘程序员面试问题:思科

思科一面:

  1、C++和Java最大的区别是什么?

  2、static、extern、global的作用?(再一次出现了static,上镜率真高挖~)

  http://blog.csdn.net/hackbuteer1/article/details/7487694

  3、inline内联函数是否占用运行时间?

  思科二面:

  1、进程和线程有什么区别?

  2、进程的调度算法,把记得的全说出来

  3、页面的替换算法都有哪些?

  4、用户态和内核态的区别?

  5、平面上N个点没两个点都确定一条直线求出斜率最大那条直线所通过两个点斜率不存在情况不考虑时间效率越高越好

  解法:先把N个点按x排序。

  斜率k最大值为max(斜率(point[i],point[i+1]))0<=i

  复杂度Nlog(N)。

  以3个点为例,按照x排序后为ABC,假如3点共线,则斜率一样,假如不共线,则可以证明在AB或BC中,一定有一个点的斜率大于AC,一个点的斜率小于AC。

各大IT公司校园招聘程序员面试问题:新浪技术部

新浪技术部面试题

  一、数据结构和算法

  1、简述什么是hashtable,如何解决hash冲突

  2、什么叫二叉树,满二叉树,完全二叉树

  4、数组和链表有什么区别,分别用在什么场合

  二、操作系统

  1、什么叫虚拟内存

  2、块设备和字符设备有什么区别

  3、进程和线程的区别

  4、简述TCP网关连接交互细节

  三、Lunix

  1、写出10个常用的linux命令和参数

  2、如何查看磁盘剩余空间

  3、如何查看端口是否被占用

  4、如何查看某个进程所占用的内存

  四、程序题(具体题目记不太清了)

  1、用两个线程实现1-100的输出

  2、把一个文件夹中所有01结尾的文件前十行内容输出

各大IT公司校园招聘程序员面试问题:百度

百度一面

  1、给定一个字符串比如“abcdef”,要求写个函数编程“defabc”,位数是可变的。这个比较简单,我用的是strcpy和memcpy,然后他问有什么优化的办法,我就不知道了。

  2、socket过程就是socket的server和client整个流程写下来,这个还是没啥问题的。

  3、数据结构二叉树的遍历,给了个二叉树,前序、中序、后序写出来,这个没什么难度。

  4、树的层次遍历,这个开始真忘了,想了半天才想起来用队列。然后他又让我详细写出入队出队的过程,总之还是搞定了。

  5、两圆相切转圏问题——一个小圆半径是1厘米,一个大圆半径是5厘米,小圆沿着大圆转圈,请问要转几圈可以转完大圈?这个问题在行测题做过,就是公转自转的问题,不管大小圆半径是多少,外切转圏要转R/r+1圏,外切转圏转R/r-1圈。

  百度二面

  1、二叉树的前序遍历的递归和非递归的可执行程序

  2、写出快速排序的实现代码,一个是字符串拼接函数的实现strcat(),还有大数相乘,都是基本题。

  3、归并排序的实现。

  4、文件按a~z编号,aa~az,ba~bz...za...zz...aaa...aaz,aba~abz...这样的方法进行编号。给定任意一个编号,输出文件是第几个文件。并写出测试方法。简单,把编号看成26进制,这题就是一个十进制和26进制的进制转换问题了。

  5、编程:两个链表,按升序排序,合并后仍按升序,不准用递归,并求复杂度

  百度电面:

  1、谈谈你对数据库中索引的理解

  2、现在普通关系数据库用得数据结构是什么类型的数据结构

  3、索引的优点和缺点

  4、session、cookie和cache的区别是什么

  5、如果有几千个session,怎么提高效率?

  6、session是存储在什么地方,以什么形式存储的?