您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 阿里巴巴2014校园招聘笔试题及参考答案-研发工程师-哈尔滨站
注:答案仅供参考ByLB@HUST.2013-09-202014哈尔滨阿里笔试题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的整数答案:C2.下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是:A:堆排序B:插入排序C:冒泡排序D:快速排序答案:A3.下面说法错误的是: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成员变量答案:C8:假设下图每个正方形的边长为1,则从A到Z的最短路径条数为A:11B:12C:13D:14答案:C[C(6,2)-2=13]9:某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将: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;不可能答案:A12:对于一个具有n个顶点的无向图,若采用邻接表数据结构表示,则存放表头节点的数组大小为:A:nB:n+1C:n-1D:n+边数答案:A13:考虑一个特殊的hash函数h,能将任何一个字符串hash成一个整数k,其概率P(k)=2^(-k),k=1,2,…,∞。对于一个未知大小的字符串集合S中的每一个元素取hash值所组成的集合为h(S)。若h(S)中的最大元素maxh(S)=10,那么S的大小期望是:A:1024B:512C:5D:10答案:A14:如下函数,在32bit系统foo(2^31-3)的值是:Intfoo(intx){Returnx&-x;}A:0B:1C:2D:4答案:C2^31-3=2^(31-3)=2^28=30,30&(-30)=2,30的二进制表示中1的最低位权值;15:对于顺序存储的线性数组,访问节点和增加节点删除节点的时间复杂度为: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答案:C(内存对齐)17:袋中有红球,黄球,白球各一个,每次任意取一个放回,如此连续3次,则下列事件中概率是8/9的是:A:颜色全相同B:颜色全不相同C:颜色不全相同D:颜色无红色答案:C18:一个洗牌程序的功能是将n张牌的顺序打乱,以下关于洗牌程序的功能定义说法最恰当的是:A:每张牌出现在n个位置上的概率相等B:每张牌出现在n个位置上的概率独立C:任何连续位置上的两张牌的内容独立D:n张牌的任何两个不同排列出现的概率相等答案:D19:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:A:10B:11C:14:D:15答案:C20:递归式的先序遍历一个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。以下哪一个是r1和r2的可能值:A:r1=1,r2=1B:r1=1,r2=0C:r1=0,r2=0D:r1=0,r2=1答案:ABD22.关于Linux系统的负载,以下表述正确的是:A:通过就绪和运行的进程数来反映B:通过TOP命令查看C:通过uptime查看D:Load:2.5,1.3,1.1表示系统的负载压力在逐渐变小答案:ABC(认为答案应当是BCD,load是根据运行的进程数来判定的,不包括就绪,而且D选项,在链接中说明的是对多台机子负载的大小并不能说明机子性能的好坏,但是对同一台主机而言,肯定是数字越小,负载越小)23:关于排序算法的以下说法,错误的是:A:快速排序的平均时间复杂度O(nlogn),最坏O(N^2)B:堆排序平均时间复杂度O(nlogn),最坏O(nlogn)C:冒泡排序平均时间复杂度O(n^2),最坏O(n^2)D:归并排序的平均时间复杂度O(nlogn),最坏O(n^2)答案:D24:假设函数rand_k会随机返回一个【1,k】之间的随机数(k=2),并且每个证书出现的概率相等。目前有rand_7,通过调用rand_7()和四则运算符,并适当增加逻辑判断和循环控制逻辑,下列函数可以实现的有:A:rand_3B:rand_21C:rand_23D:rand_49答案:ABCD25:某二叉树的前序遍历结果为-+a*b-cd/ef,后续遍历结果为abcd-*+ef/-,问其中中序遍历序列为:a+b*c-d-e/f26.某缓存系统采用LRU淘汰算法,假定缓存容量为4,并且初始为空,顺序访问以下数据项的时候:1,5,1,3,5,2,4,1,2,出现缓存直接命中的次数为:3最后缓存数据中即将准备淘汰的数据项为:527.(6分)两个较长的单向链表a和b,为了找出node满足nodeina并且nodeinb。请设计空间使用尽量小的算法(用c/c++,java或者伪代码)答案:先求出链表长度L1和L2,然后较长的链表先前进abs(L1-L2)步,然后逐一对比。28.当存储数据量超出单节点数据管理能力的时候,可以采用的办法有数据库sharding的解决方案,也就是按照一定的规律把数据分散存储在多个数据管理节点N中(节点编号为0,1,2,,,,N-1)。假设存储的数据时a请完成为数据a计算存储节点的程序。C/C++code123456789#defineN5inthash(intelement){returnelement*2654435761;//!此处可能得出负值}intshardingIndex(inta){intp=hash(a);_p=abs(p)_%N____;//这里是空格returnp;}!题目有问题,hash产生的值已经溢出整形表示范围,可能得出负值。29.(8分)宿舍内5个同学一起玩对战游戏。每场比赛有一些人作为红方,另一些人作为蓝方。请问至少需要多少场比赛,才能使任意两个人之间有一场红方对蓝方和蓝方对红方的比赛?答案:4场即可2.一个有10亿条记录的文本文件,已按照关键字排好序存储。请设计算法,可以快速的从文件中查找指字关键字的记录答案:建立B/B+树,通过指针指向偏移量,快速定位。算法工程师附加题:两颗二叉树T1和T2,T1的节点数是百万数量级,T2的节点数一千以内,请给出判断T2是否是T1子树的可行算法。答案:无;
本文标题:阿里巴巴2014校园招聘笔试题及参考答案-研发工程师-哈尔滨站
链接地址:https://www.777doc.com/doc-1984188 .html