
互联网笔试面试汇总
石圣
移动游戏开发从业者,同时对Android开发有一定的研究。
展开
-
[互联网面试笔试汇总C/C++-1] 搜狗笔试-1
1.找出下列程序中的错误:"a.c":int global_1 = 100;"b.c":extern int global_1;int global_2 = global_1 * 2;int main(){ return 0;}解答:乍一看以为是extern的问题,但是实际上并不是这个问题,问题出在下面这句话int global_2 = global_1 * 2原创 2013-09-07 08:51:19 · 1927 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-8] 寻找两个链表的第一个交点-微策略
题目:有两个链表,找出他们的第一个交点,要求每个链表只能遍历一次,可以对链表进行任何操作,空间O(n).思路:这个题目刚开始看觉得要遍历一次有点困难,但是仔细一想,人家告诉说可以对链表进行任何操作,这是一个没有用到的条件。于是乎,方法如下:1.遍历第一个链表List1,将每一个节点的next都置为NULL。2.遍历第二个链表List2,List2的尾节点就是第一个交点。原创 2013-10-10 10:58:36 · 1811 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-17] 链表交点,链表环问题汇总
1.给定两个链表,判断是否有相交。思路:首先明确一点,如果两个链表相交,那么从第一个交点开始到尾结点结束,所有的结点都是公共结点。这也就是说,如果两个链表相交,那么这两个链表的尾结点肯定是公共结点,如果尾结点不是公共结点,那么这两个链表肯定不相交。所以我们可以如下操作:依次遍历两个链表,最后判断尾结点是否相同,如果相同,则相交,如果不相同,则不相交。复杂度:时间:O(m+n),m,原创 2013-10-18 12:09:33 · 1763 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-23] Web代理的种类-雅虎
Web上的代理服务器是代表客户端完成事务处理的中间人。如果没有Web代理,HTTP客户端就要直接与HTTP服务器进行对话。有了Web代理,客户端就可以与代理进行对话,然后由代理代表客户端与服务器进行交流。客户端仍然会完成对事物的处理,但它是通过代理服务器提供的优质服务来实现的。HTTP的代理服务器既是Web服务器又是Web客户端。HTTP客户端会向代理发送请求豹纹,代理服务器必须像We原创 2013-10-25 11:04:27 · 1564 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-22] 拷贝构造函数调用的时机-完美世界
题目:下面哪种情况下不会调用拷贝构造函数?A:当用类的一个对象初始化该类的另一个对象时B:如果函数的形参是类的对象,调用函数时,进行形参和实参结合时C:如果函数的返回值是类的对象,函数执行完成返回调用者时D:用类的一个对象给另一个对象赋值的时答案:D分析:A:当用类的一个对象初始化该类的另一个对象时.例如:int main(){ point A(1,2)原创 2013-10-24 15:45:29 · 2741 阅读 · 2 评论 -
[互联网面试笔试汇总C/C++-24] Linux守护进程工作原理和方式-雅虎
在Client/Server模式下。服务器监听(Listen)在一个特定的端口上等待客户连接。连接成功后服务器和客户端通过端口进行数据通信。守护进程的工作就是打开一个端口,并且等待(Listen)进入连接。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听其他的服务请求。守护进程工作方式:(1)运行独立的守护进程:stand-alon原创 2013-10-25 11:43:18 · 3304 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-16] 判断一棵二叉树是否是平衡二叉树
首先,看一下平衡二叉树的定义:平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。思路:利用递归的思想代码:int DepthTree(BSTreeNode *pbs) { if (pbs==N原创 2013-10-17 16:35:41 · 1895 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-18] 生产者消费者模型
一、明确定义要理解生产消费者问题,首先应弄清PV操作的含义:PV操作是由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减1,即S=S-1; ②如果S³0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S=S+1; ②转载 2013-10-18 15:18:41 · 2787 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-19] 指针和引用的区别
从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数转载 2013-10-19 16:27:26 · 1351 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-26] Socket 长连接与短连接,心跳(keep-alive)
长连接与短连接所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。 短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。 比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。转载 2013-10-26 17:52:27 · 5190 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-25] TCP三次握手及四次挥手详细图解
TCP三次握手 所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。第一次握手:客户端发送一个T转载 2013-10-26 17:28:49 · 1924 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-27] 为什么TCP链接要三次握手而不是两次握手-雅虎
第三次握手——革命斗争中的通信故事在革命战争影片中,经常会看到英勇的解放军战士背着步话机在喊“长江长江,我是黄河,听到请回答。”很明显,这是呼号为黄河的一方想找呼号为长江的另一方说事,为了保证影片的节奏,导演往往把后面的联络过程省略了,其实后面还有两步,长江听到黄河的呼叫后要回答“黄河黄河,我是长江,我听到了你,请回答。”这叫做第二次握手。黄河听到长江的呼叫后还要回答“长江长江转载 2013-10-26 19:18:56 · 1977 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-20] 如何申请一个大小为n的数组(一维或二维)
在面试或者笔试的过程中,经常会遇到一些需要申请数组的情况,而通常情况下数组的大小又是一个变量n而不是一个常量,这样我们在申请数组的时候就不能像下面这样了:int a[n];int a[n][m];因为n和m不是常量,所以上面的写法是有问题的。这里我就简要的说几种常见的申请方法。1.一维数组 & C#includeint *a = (int*)malloc(n*sizeo原创 2013-10-21 12:13:08 · 4243 阅读 · 2 评论 -
[互联网面试笔试汇总C/C++-21] FIFO 、LRU、LFU的含义、原理和实现-完美世界
题目:请简要介绍FIFO、LRU、LFU的含义和原理含义:FIFO:First In First Out,先进先出LRU:Least Recently Used,最近最少使用LFU:Least Frequently Used,最不经常使用以上三者都是缓存过期策略。原理:一、FIFO:按照“先进先出(First In,First Out)”的原理淘汰数据,正好原创 2013-10-24 10:19:07 · 5923 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-3] 网易有道-2
1、求正数数组内和为指定数字的合并总数比如num = [5, 5, 10, 2, 3],给定的合并值为 15 :有4种 : {5 + 10, 5 + 10, 5 + 5 + 2 + 3, 10 + 2 + 3}分析:这道题使用动态规划思想,大家看如下的状态转移方程:dp[n][m]=dp[n-1][m]+dp[n-1][m-num[n-1]]dp[n][m]表示原创 2013-09-08 17:47:21 · 1806 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-2] 网易有道-1
1 打印如下形式的矩阵; n=5: 1 2 9 10 25 4 3 8 11 24 5 6 7 12 23 16 15 14 13 22 17 18 19 20 21 n=6: 1 2 9 10 25 26 4 3 8 11 24 27 5 6 7 12 23 28 16 15 14原创 2013-09-07 21:57:57 · 2247 阅读 · 1 评论 -
[互联网面试笔试汇总C/C++-5] 网易有道-3
1. 题目:一个长度为n的数组A,里面的元素只能是0或者1,另一个长度为n的数组B,B[i] = a[i-1]+a[i]+a[i+1],B[0] = A[0]+A[1],B[n-1] = A[n-2]+ A[n-1],给定B,求A。2. 题目:三个字符串a,b,c,其中c由a和b里面的字符组成,要求c里面a和b中的字符要保持原相对位置不变。给定a,b,c,判断c是否符合条件,注意,ab里面原创 2013-09-25 21:01:39 · 1785 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-4] 进程和线程的区别
简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻原创 2013-09-22 10:39:51 · 2070 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-7] 堆栈的区别-百度
当被问到这个问题的时候我首先问了一下面试官,这个堆栈指的是内存还是数据结构。万万没想到的是面试官说你都分别介绍一下吧。数据结构:栈:一种先进后出的数据结构,有push,pop,top等函数堆:用二叉树形式组织的数据结构,分为最大堆和最小堆。内存:摘自《面试宝典》一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自原创 2013-09-29 14:48:25 · 2038 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-9] 实现赋值运算符函数-剑指offer
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。class CMyString{ public: CMyString(char* pData = NULL); CMyString(const CMyString & str); ~CMyString(void); private: char* m_pData;};分析:赋值原创 2013-10-11 10:33:39 · 1505 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-10] 糖果拆包-美团
题目:糖果进货时有6个一包,9个一包和140个一包三种包装,问用户一次购买超过多少个糖果可以不拆包装组合出用户需要的数量。分析:这道题抽象成数学表达式就应该是:6X+9Y+140Z=N,求N的最小值。在这里我们可以类比:考虑到任意大于1的整数都能以2X+3Y的形式得出,所以除3以外,任何3的倍数都可以写成6Y+9Y的形式,原创 2013-10-11 11:41:43 · 2374 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-11] 字符串全排列和组合算法
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *转载 2013-10-11 19:14:04 · 1999 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-12] 哈希表冲突解决办法-网易游戏
一、冲突是如何产生的?哈希函数是指如何对关键字进行编址的规则,这里的关键字的范围很广,可视为无限集,如何保证无限集的原数据在编址的时候不会出现重复呢?规则本身无法实现这个目的。举一个例子,仍然用班级同学做比喻,现有如下同学数据张三,李四,王五,赵刚,吴露.....假如我们编址规则为取姓氏中姓的开头字母在字母表的相对位置作为地址,则会产生如下的哈希表位置字原创 2013-10-13 14:46:58 · 2868 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-6] 迅雷
转载请标明出处,原文地址:http://blog.youkuaiyun.com/hackbuteer1/article/details/11482103温馨提示:客观题和主观题得分都要超过一定标准,才能获得面试资格,如果一项得分很高,而另外一项得分很低,可能无法获得面试资格。一、单选题(20题,每题2分)1、有变量int i = 0; int a = i++; int b=++a; int c =原创 2013-09-27 15:30:53 · 1268 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-13] 写一个程序来判断机器的大小端-微策略
首先我们应该来明确一下大小端的区别:大端:数据的低位保存在高地址,高位保存在低地址。优势是符号位存在于第一个字节,容易判断正负。小端:数据的低位保存在低地址,高位保存在高地址。优势是强制转换数据不需要调整字节内容。代码:void IsBigEndian(){ short int a = 0x1234; char b = *(char *)&a; if(b =原创 2013-10-17 14:40:08 · 1945 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-15] 判断一棵二叉树是否是完全搜索树-微策略
首先,看一下完全二叉树的定义:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。思路:可以采用广度优先的遍历方法,从根节点开始将所有的节点按层添加到队列里面,当遇到第一个没有左儿子或者右儿子的节点时,设置标志位,继续遍历,如果后面遇到了有子节点的节点,则不是完全二叉树。代码:原创 2013-10-17 16:14:48 · 1736 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-14] 判断一棵二叉树是否是二叉搜索树-微策略
首先看一下二叉搜索树的定义:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。原理:一棵二叉搜索树的中续遍历结果是从小到大排序好的,反之亦然。代码:时间复杂度O(n),空间复杂度O(1)[cpp] vi原创 2013-10-17 15:28:48 · 2348 阅读 · 0 评论 -
[互联网面试笔试汇总C/C++-28] TCP拥塞控制,慢启动算法
当一个网络面对的负载超过了它的处理能力时,拥塞就会发生。Internet也不例外。理论上,通过使用一条从物理学中套用过来的法则:分组守恒法则,拥塞现象就可以得到控制。它的基本思想是,只有当一个老的分组离开之后才允许向网络注入一个新的分组。TCP企图通过动态的维护窗口的大小来实现这个目标。管理拥塞的第一步是检测用色。在过去,检测拥塞是非常困难的。由于丢失分组而引起的超时可能有两种情况:(1)原创 2013-10-27 15:44:42 · 5019 阅读 · 0 评论