面试宝典之阿里巴巴2014校园招聘笔试题

时间:2021-07-24 18:47:57
  1. 一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是
    A、几微秒,几毫秒,几十毫秒
    B、几十纳秒,几十微秒,几十毫秒
    C、几十纳秒,几十微秒,几十毫秒
    D、几微秒,几十微秒,几十毫秒

    分析:内存访问速度通常在50ns到80ns范围内,SSD硬盘的访问速度一般是SATA硬盘的一千多倍。

  2. 8进制数256,转化成7进制数是
    A、356
    B、336
    C、338
    D、346

  3. 某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数、每个子网内最大可分配地址个数各为
    A、8, 32
    B、32, 8
    C、32, 6
    D、8, 30

    分析:248 = 11111000,因此最大子网个数为2^5=32,每个子网主机数最大为2^3-2=6。

  4. 以下关于链式存储结构说法错误的是
    A、查找节点时链式存储比顺序存储快
    B、每个节点是由数据域和指针域组成
    C、比顺序存储结构的存储密度小
    D、逻辑上不相邻的节点物理上可能相邻

  5. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为
    A、6
    B、4
    C、2
    D、8

  6. 下面函数的功能是

    <code class="hljs perl has-numbering"><span class="hljs-keyword">int</span> fun (char <span class="hljs-variable">*s</span>) {
    char <span class="hljs-variable">*p</span> = <span class="hljs-keyword">s</span>;
    <span class="hljs-keyword">while</span> (<span class="hljs-variable">*p</span>++);
    <span class="hljs-keyword">return</span> p - <span class="hljs-keyword">s</span> - <span class="hljs-number">1</span>;
    }</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>

    A、计算字符串的位(bit)数
    B、复制一个字符串
    C、求字符串的长度
    D、求字符串存放的位置

  7. 判断有向图是否存在回路,利用____方法最佳
    A、拓扑排序
    B、求最短路径
    C、求关键路径
    D、广度优先遍历

  8. 依次读入数据元素序列{a,b,c,d,e,f,g}进栈,元素进栈或出栈顺序是未知的,下列序列中,不可能成为栈空时弹出的元素构成序列的有
    A、{d,e,c,f,b,g,a}
    B、{c,d,b,e,f,a,g}
    C、{e,f,d,g,c,b,a}
    D、{f,e,g,d,a,c,b}

  9. 下列有关图的遍历说法中,不正确的是
    A、有向图和无向图都可以进行遍历操作
    B、基本遍历算法两种:深度遍历和广度遍历
    C、图的遍历必须用递归实现
    D、图的遍历算法可以执行在有回路的图中

  10. 在16位机器上跑下列foo函数的结果是

    <code class="hljs cpp has-numbering"><span class="hljs-keyword">void</span> foo () {
    <span class="hljs-keyword">int</span> i = <span class="hljs-number">65536</span>;
    <span class="hljs-built_in">cout</span> << i <<”,”;
    i = <span class="hljs-number">65535</span>;
    <span class="hljs-built_in">cout</span> << i;
    }</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>

    A、-1, 65535
    B、0, -1
    C、-1, -1
    D、0, 65535

    分析:16位int的表示范围:-32768~32767
    (65535)DEC = (1111 1111 1111 1111)BIN
    (65536)DEC = (1 0000 0000 0000 0000)BIN
    转换为补码,除最高位外其它位取反+1,补码分别为0,-1。

  11. 有一段年代久远的C++代码,内部逻辑复杂,现在需要利用其实现一个新的需求,假定有以下可行的方案,应当优先选择
    A、修改老代码的接口,满足新的需求
    B、将老代码抛弃,自己重新实现类似的逻辑
    C、修改老代码的内部逻辑,满足新的需求
    D、在这段代码之外写一段代码,调用该代码的一些模块,完成新功能需求

  12. 在5个页框上使用LRU页面替换算法,当页框初始为空时,引用序列为0、1、7、8、6、2、3、7、2、9、8、1、0、2,系统将发生____次缺页
    A、13
    B、12
    C、11
    D、8

    分析:缺页为0、1、7、8、6、2、3、9、8、1、0,共11次

  13. 阿里巴巴有相距1500km的机房A和B,现有100GB数据需要通过一条FTP连接在100s的时间内从A传输到B。已知FTP连接建立在TCP协议之上,而TCP协议通过ACK来确认每个数据包是否正确传送。网络信号传输速度2×10^8m/s,假设机房间带宽足够高,那么A节点的发送缓冲区可以设置为最小
    A、18M
    B、12M
    C、6M
    D、24

    分析:要求在100s传输100GB数据,则传输速率至少为1000MBps。数据包在缓冲区的时间是传输时间与ACK传输时间之和:
    2×1500,000/(2×10^8)=0.015s
    此时缓存的数据量至少是1000×0.015=15MB,缓冲区可以设置为18MB。

  14. 有3个节点的二叉树可能有____
    A、5
    B、13
    C、12
    D、15

  15. 设某文件经内排序后得到100个初始归并段(初始顺串),若使用多路归并排序算法,且要求三趟归并完成排序,问归并路数最少为
    A、8
    B、7
    C、6
    D、5

    分析:n个元素k路归并趟数为logk(n)。要使[logk(100)]=3,则k至少为5。

  16. 一个优化的程序可以生成一n个元素集合的所有子集,那么该程序的时间复杂度是
    A、O(n!)
    B、O(2^n)
    C、O(n^2)
    D、O(n log n)

  17. 快速排序在已经有序的情况下效率最差,复杂度为
    A、O(n logn)
    B、O(n^2)
    C、O(n^1.5)
    D、O(n^2 log n)

  18. 从一副牌(52张,不含打小怪)里抽出两张牌,其中一红一黑的概率是
    A、25/51
    B、1/3
    C、1/2
    D、26/51

    分析:P = C(26, 1)×C(26, 1) / C(52, 2) =26/51。

  19. 有一堆石子共100枚,甲乙轮流从该堆中取石子,每次可取2、4或6枚,若取得最后的石子的玩家为赢,若甲先取,则
    A、谁都无法取胜
    B、乙必胜
    C、甲必胜
    D、不确定

    分析:与多年前的花生米(一)类似的题目。等价问题是从50个石子中每次取1、2或3个。仅当石子数为4、8、12……时,如果甲先取则不一定获胜,此时应由乙先取。50不是4的倍数,若甲先取2个就一定获胜。

  20. 现有一完全的P2P共享协议,每次两个节点通讯后都能获取对方已经获取的全部信息,现在使得系统中每个节点都知道所有节点的文件信息,共17个节点,假设只能通过多次两个对等节点之间通讯的方式,则最少需要____次通讯
    A、32
    B、31
    C、30
    D、29