• 2015阿里校招研发工程师笔试题


    1、C++内存分配中说法错误的是()

      A 对于栈来说,生长方向是向上的,也就是向着内存地址增加的方向  

      //错,对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;对于栈来讲,它的生长方向是向下的,是向着内存地址减小的方向增长

      B 对于堆 ,大量的new/delete操作会造成内存空间不连续

      //对,对于堆来讲,频繁的new/delete势必会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低。对于栈来讲,则不会存在这个问题,因为  //栈是先进后出的队列,他们是如此的一一对应,以至于永远都不可能有一个内存块从栈中间弹出,在他弹出之前,在他上面的后进的栈内容已经被弹   //出,详细的可以参考数据结构

      C 堆容易产生memory leak

      //对,对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak

      D 堆的效率比栈要低很多

      //对,栈是机器系统提供的数据结构,计算机会在底层对栈提供支持:分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的  //效率比较高。堆则是C/C++函数库提供的,它的机制是很复杂的,例如为了分配一块内存,库函数会按照一定的算法(具体的算法可以参考数据结构操  //作系统)在堆内存中搜索可用的足够大小的空间,如果没有足够大小的空间(可能是由于内存碎片太多),就有可能调用系统功能去增加程序数据段的  //内存空间,这样就有机会分到足够大小的内存,然后进行返回。显然,堆的效率比栈要低得多。

      E 栈变量引用容易逃逸

      //对

      F 以上都对

     研究栈和堆可以从下面的几个方面来:

    1、管理方式不同; 2、空间大小不同; 3、能否产生碎片不同; 4、生长方向不同; 5、分配方式不同; 6、分配效率不同;

    2、全班100个学生,老师让玩如下一个游戏:每个学生在纸上写一个1到100之间的整数(含1和100),不能参考别人写的数字,谁的数字最接近所有数字的3/4,谁就会获得100元。下面的数字中,最糟糕的选择是()

    A 1

    B 2

    C 10

    D 20

    E 50

    F 80

    3、下列正则表达式不可以匹配“www.alibaba-inc.com”的是()

    A ^w+.W+-w+.w+$

    B [w]{0,3}.[a-z-]*.[a-z]+

    C [c-w.]{3,10}[.][c-w.][.][a]

    D [w][w][w][alibaba-inc]+[com]+

    E ^w.*com$

    F [w]{3}.[a-z-]{11}.[a-z]{3}   //错

    4、关于UNIX系统代码段和数据段分开的目的,错误的说法有()

    A 可共享正文  //对

    B 可共享数据

    C 可重入  

    D 可保护代码为只读

    E 方便编程

    F 更好支持内存回收策略

    5、下列关键字序列为堆的是()

    A 100,60,70,50,32,65  //对

    B 60,70,65,50,32,100 

    C 65,100,70,32,50,60 

    D 70,65,100,32,50,60

    E 32,50,100,70,65,60

    F 50,100,70,65,60,32

    堆是这样的二叉树:所有孩子节点的值都大于(或小于)本节点的值,都孩子节点的值都大于的本节点的堆,叫小根堆,否则叫大根堆

     

    6、用6块1*2的完整瓷砖,铺满2*6的地面,一共有()种不同铺法,不允许将瓷砖划分为小瓷砖。

    A 13   B 15   C 22   D 24   E 25   F 26

    7、设m和n都是int类型,那么一下for循环语句()

    for(m=0,n=-1;n=0;m++,n++)n++;

    A 循环体一次也不执行

    B 循环体执行一次

    C 无限循环

    D 有限次循环

    E 循环结束判断条件不合法

    F 运行出错

    8、带头结点的单链表head为空的判断条件是()

    A head==NULL

    B head->next=NULL  //对

    C head->next==head

    D head!=NULL

    E *head==NULL

    F *(head->next)==NULL

    9、硬币游戏:连续仍硬币,直到某一人获胜。A获胜条件是先正后反,B获胜条件是出现连续两次反面,问AB游戏时A获胜的概率()

    A 1/6  B 1/4  C 1/3  D 1/2 //对 E 2/3  F 3/4 

    10、一个函数定义的返回值是float,它不能在return语句中返回的值得类型是()

    A char B int  C float  D long  E double  F 以上都可以

    11、在一下操作中,数组比线性表速度更快的是()

    A 原地逆序   B 头部插入   C 返回中间节点

    D 返回头部节点//对  E 选择随机节点

    12、已知某二叉树前序为(1-2-3-4-5-6-7-8-9),中序为(2-3-1-6-7-8-5-9-4),则它的后续为()

    A 3-2-8-7-6-9-5-4-1  //对

    B 1-2-6-5-4-3-8-7-9

    C 5-4-2-1-3-7-6-9-8

    D 2-3-5-4-6-7-9-1-8

    E 3-2-1-4-5-9-8-6-7

    F 3-2-1-8-7-6-9-5-4

    13、某团队有2/5的人会写java程序,有3/4的人会写C++程序,这个团队里同时会写java和C++的最少()人。

    A 3  B 4  C 5  D 8  E 15  F 20

    14、某团队负责人接到一个紧急项目,他要考虑在代号为ABCDEF这6个团队成员中的部分人员参加项目开发工作。人选必须满足一下各点:

    AB两人中至少一个人参加

    AD不能都去

    AEF三人中要派两人

    BC两人都去或都不去

    CD两人中有一人参加

    若D不参加,E也不参加

    那么最后()参加紧急项目开发。

    A ECEF    B AF     C ECF    D F    E ABCF    F ECDEF

    15、若干个等待访问的磁盘依次要访问的磁道为19,43,40,4,79,11,76,当前磁头位于40号柱面,若用最短寻道时间优先磁盘调度算法,则访问序列为()

    A 19 43 40 4 79 11 76

    B 40 43 19 11 4 76 79 //对

    C 40 43 76 79 19 11 4

    D 40 43 76 79 4 11 19

    E 40 43 76 79 11 4 19

    F 40 19 11 4 79 76 43

    最短寻道时间优先磁盘调度算法:其要求访问的磁道与当前磁头所在的磁道距离最近,一时每次的寻道时间最短!

    16、把校园同一区域的两张不同比例尺的地图叠放在一起,并且使其中较小尺寸的地图完全在较大尺寸的地图的覆盖下。在每张地图上都有经纬坐标,显然,这两个坐标系并不同。我们把恰好重叠在一起的两个相同的坐标称之为重合点,下面关于重合点的说法正确的是()

    A 可能不存在重合点

    B 必然有且仅有一个重合点

    C 可能有无穷多个重合点

    D 重合点构成了一条直线

    E 重合点可能在小地图之外

    F 重合点是一小片连续的区域

    17、若路由器接收的IP报文的目的地址不是路由器的接口IP地址,并且未匹配的路由项,则采取策略是(A

    A 丢掉该分组 B 将该分组分片 C 转发该分组 D 将分组转发或分片 E 将分组保留存储 F 都有可能

    18、计算三个稠密矩阵A、B、C的乘积ABC,假定三个矩阵的尺寸分别为m*n,n*p,p*q,且m<n<p<q,一下计算顺序效率最高的是()

    A (AB)C  B A(BC)   C (AC)B

    D (BC)A   E (CA)B  F 以上效率相同

    19、有字符序列(Q,H,C,Y,P,A,M,S,R,D,F,X),新序列(F,H,C,D,P,A,M,Q,R,S,Y,X)是下列()排序算法一趟扫描结果。

    A 二路归并排序    B 快速排序   C 步长为4的希尔排序  D 步长为2的希尔排序 E 冒泡排序 F 堆排序

    20、不记得了。

     

    附加题:

    1、 给定一个query和一个text,均由小写字母组成。要求在text中找出以同样顺序连续出现在query中最长连续字母序列的长度。例如,query 为“acbac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字符序列,因此,返回结果应该为其长 度3。请注意程序效率。

    2、写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵树中相差最大的两个节点间的差的绝对值。请注意程序效率。

  • 相关阅读:
    android openGL ES2 一切从绘制纹理開始
    HTML5 界面元素 Canvas 參考手冊
    python进阶十_正則表達式(一)
    HDU 3016 Man Down(线段树)
    android 自己定义dialog并实现失去焦点(背景透明)的功能
    上海传智程序员携手设计狮美女雨中烧烤!!
    vim visual操作备忘
    MySQl Study学习之--MySQl二进制日志管理
    Android View measure (三) 经常用法
    Analyze提示:Value stored to &quot;***&quot;is never read
  • 原文地址:https://www.cnblogs.com/sxmcACM/p/3946383.html
Copyright © 2020-2023  润新知