腾讯2014校园招聘软件开发类笔试试题考试时长:120分钟一不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)1已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)A.CFHGEBDAB.CDFEGHBAC.FGHCDEBAD.CFHGEDBA2下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)A.有序数组B.有序链表C.AVL树D.Hash表3下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)A.快速排序B.堆排序C.归并排序D.冒泡排序4初始序列为18625473一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)A.83251647B.32851467C.38251674D.823514765当n=5时,下列函数的返回值是:(A)intfoo(intn){if(n2)returnn;returnfoo(n-1)+foo(n-2);}A.5B.7C.8D.106S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为0.01%,B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)A.37.5%B.32.5%C.28.6%D.26.1%7Unix系统中,哪些可以用于进程间的通信?(BCD)A.SocketB.共享内存C.消息队列D.信号量8静态变量通常存储在进程哪个区?(C)A.栈区B.堆区C.全局区D.代码区9查询性能(B)A.在Name字段上添加主键B.在Name字段上添加索引C.在Age字段上添加主键D.在Age字段上添加索引10IP地址131.153.12.71是一个(B)类IP地址。A.AB.BC.CD.D11下推自动识别机的语言是:(C)A.0型语言B.1型语言C.2型语言D.3型语言12下列程序的输出是:(D)#defineadd(a+b)a+bintmain(){printf(“%d\n”,5*add(3+4));return0;}A.23B.35C.16D.1913浏览器访问某页面,HTTP协议返回状态码为403时表示:(B)A找不到该页面B禁止访问C内部服务器访问D服务器繁忙14如果某系统15*4=112成立,则系统采用的是(A)进制。A.6B.7C.8D.915某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码:(A)Aa(000)b(001)h(01)i(10)o(11)Ba(0000)b(0001)h(001)o(01)i(1)Ca(000)b(001)h(01)i(10)o(00)Da(0000)b(0001)h(001)o(000)i(1)16TCP和IP分别对应了OSI中的哪几层?(CD)AApplicationlayerBPresentationlayerCTransportlayerDNetworklayer17一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C)A.EDCBAB.DECBAC.DCEABD.ABCDE18同一进程下的线程可以共享以下?(BD)A.stackB.datasectionC.registersetD.filefd19对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)1:成员对象的构造函数2:基类的构造函数3:派生类本身的构造函数A.123B.231C.321D.21320如何减少换页错误?(BC)A进程倾向于占用CPUB访问局部性(localityofreference)满足进程要求C进程倾向于占用I/OD使用基于最短剩余时间(shortestremainingtime)的调度机制21递归函数最终会结束,那么这个函数一定?(B)A使用了局部变量B有一个分支不调用自身C使用了全局变量或者使用了一个或多个参数D没有循环调用22编译过程中,语法分析器的任务是(B)A分析单词是怎样构成的B分析单词串是如何构成语言和说明的C分析语句和说明是如何构成程序的D分析程序的结构23同步机制应该遵循哪些基本准则?(ABCD)A.空闲让进B.忙则等待C.有限等待D.让权等待24进程进入等待状态有哪几种方式?(D)ACPU调度给优先级更高的线程B阻塞的线程获得资源或者信号C在时间片轮转的情况下,如果时间片到了D获得spinlock未果25设计模式中,属于结构型模式的有哪些?(BC)A状态模式B装饰模式C代理模式D观察者模式二、填空题(共4题10个空,每空2分,共20分)1设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW。2关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。3二进制地址为011011110000,大小为(4)10和(16)10块的伙伴地址分别为:_________,_________。4设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。N2,NL,NR、N0都是全局量,且在调用count(t)之前都置为0。typedefstructnode{intdata;structnode*lchild,*rchild;}node;intN2,NL,NR,N0;voidcount(node*t){if(t-lchild!=NULL)if(t-rchild!=NULL)N2++;elseNL++;elseif(t-rchild!=NULL)NR++;elseN0++;if(t-lchild!=NULL)count(t-lchild);if(t-rchild!=NULL)count(t-rchild);}/*callform:if(t!=NULL)count(t);*/三、其他方向简答题(共2题,每题20分),选作题,不计入总分)1请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。2A,B两个整数集合,设计一个算法求他们的交集,尽可能的高效。阿里巴巴2014秋季校园招聘-软件研发工程师笔试题2013-09-2122:381089人阅读评论(4)收藏举报校园招聘阿里巴巴软件研发算法百度1.单选题1.假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数A:h(K)=K/N;B:h(K)=1;C:h(K)=KmodN;D:h(K)=(K+rand(N))modN,rand(N)返回0到N-1的整数答案:D2.下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是:A:堆排序B:插入排序C:冒泡排序D:快速排序答案:A(插入排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)冒泡排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)快速排序:最优时间复杂度O(nlogn)最差时间复杂度O(n^2)平均时间复杂度O(nlogn)堆排序:最优时间复杂度O(nlogn)最差时间复杂度O(nlogn)平均时间复杂度O(nlogn))3.下面说法错误的是:A:CISC计算机比RISC计算机指令多B:在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增加寻址空间C:增加流水线段数理论上可以提高CPU频率D:冯诺依曼体系结构的主要特征是存储程序的工作方式答案:B4.不属于冯诺依曼体系结构必要组成部分是:A:CPUB:CacheC:RAMD:ROM答案:B5.一个栈的入栈序列式ABCDE则不可能的出栈序列是:A:DECBAB:DCEBAC:ECDBAD:ABCDE答案:C6.你认为可以完成编写一个C语言编译器的语言是:A:汇编B:C语言C:VBD:以上全可以答案:D7.关于C++/JAVA类中的static成员和对象成员的说法正确的是:A:static成员变量在对象构造时候生成B:static成员函数在对象成员函数中无法调用C:虚成员函数不可能是static成员函数D:static成员函数不能访问static成员变量答案:A8:答案:C9:某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将:A:从就绪变为运行B:从运行变为就绪C:从运行变为阻塞D:从阻塞变为就绪答案:C10:下面算法的时间复杂度为:Intf(unsignedintn){If(n==0||n==1)Return1;ElseReturnn*f(n-1);}A:O(1)B:O(n)C:O(N*N)D:O(n!)答案:B11:n从1开始,每个操作可以选择对n加1或者对n加倍。若想获得整数2013,最少需要多少个操作。A:18B:24C:21D;不可能答案:A,对2013用除法,显示2013-2012-1006-503-502-251-250-125-124-62-31-30-15-14-7-6-3-2-1正向只能是+1和×2,所以逆向只能-1和/2,由上过程可得18次12:对于一个具有n个顶点的无向图,若采用邻接表数据结构表示,则存放表头节点的数组大小为:A:nB:n+1C:n-1D:n+边数答案:A13:答案:A.对于几何中的每个字符串取hash可以看作是同分布的独立重复事件,所以每一个事件出现10的概率都是p=1/1024,那么当出现的时候,期望的次数就是1/p,1024.14:如下函数,在32bit系统foo(2^31-3)的值是:Intfoo(intx){Returnx&-x;}A:0B:1C:2D:4答案:B15:对于顺序存储的线性数组,访问节点和增加节点删除节点的时间复杂度为:A:O(n),O(n)B:O(n),O(1)C:O(1),O(n)D:O(n),O(n)答案:C16:在32为系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是:StructA{Inta;shortb;intc;chard;};StructB{inta;shortb;charc;intc;};A:16,16B:13,12C:16,12D:11,16答案:C17:袋中有红球,黄球,白球各一个,每次任意取一个放回,如此连续3次,则下列事件中概率是8/9的是:A:颜色不全相同B:颜色全不相同C:颜色全相同D:颜色无红色答案:A18:一个洗牌程序的功能是将n张牌的顺序打乱,以下关于洗牌程序的功能定义说法最恰当的是:A:每张牌出现在n个位置上的概率相等B:每张牌出现在n个位置上的概率独立C:任何连续位置上的两张牌的内容独立D:n张牌的任何两个不同排列出现的概率相等答案:A19:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:A:10B:11C:14:D:15答案:C解释:应该有14种方案,设只有黑白两色,默认白色,那么,用p(n)表示有n个黑棋的种类p(0)=p(6)=1p(1)=p(5)=1p(2)=p(4)=3//相邻的一种,隔一个的一种,两个的一种p(3)=4//都相邻的一种,BB0B的一种,BB00B的一种,B0B0B的一种,一共4种综上是14种20:递归式的先序遍历一个n节点,深度为d的二叉树,则需要栈空间的大小为:A:O(n)B:O(d)C:O(logn)D:(nlogn)答案:B第二部分:多选21:两个线程运行在双核机器上,每个线程主线程如下,线程1:x=1;r1=y;线程2:y=1;r2=x;X和y是全局变量,初始为0。以下哪一个是r