• 阿里巴巴2013年实习生笔试题B


    阿里巴巴集团2013实习生招聘技术类笔试题(B

    一、单向选择题

    1、在常用的网络协议中,___B__是面向连接的、有重传功能的协议。

      A. IP     B. TCP     C. UDP     D. DXP

     

    2、500张骨牌整齐地排成一行,按顺序编号为123......499500,第一次拿走所有奇数位置上的骨牌,第二次再从剩余骨牌中拿走所有奇数位置上的骨牌,依次类推,请问最后剩下的一张骨牌的编号为__B__

      A. 128     B. 250     C. 256     D. 500

    解析:

      第一次后剩下250个偶数:2,4,6,8......498,500

      将它们除以2得到1-250的一列

      第二次后剩下125个偶数:2,4,6,8......248,250

      将它们除以2得到1-125的一列

      第三次后剩下62个偶数2,4,6,8.......122,124

      将它们除以2得到1-62的一列

      第四次后剩下31个偶数2,4,6,8......60,62

      将它们除以2得到1-31的一列

      同理,第五次后到15 第六次除后到第七次除后到第八次除后最后一张

      所以,它的编号为1*2^8=256

     

    3、两个线程并发执行以下代码,假设a是全局变量,初始值为1,那么以下输出中__D__是不可能的。

    1 void foo()
    2 
    3 {
    4 
    5 ++a;
    6 
    7 printf(“%d_”,a);
    8 
    9 }

      A. 3_2_     B. 2_3_     C. 3_3_     D. 2_2_

    解析:

      对于A选项:线程1先执行++a,此时a=2

      对于B选项:线程1先执行++a,此时a=2,然后线程1输出;线程2执行++a,此时a=3,最后线程2输出;

      对于C选项:线程1先执行++a,此时a=2,然后中断,线程2执行++a,此时a=3,线程2输出,最后线程1输出;

      对于D选项:这个是不可能的。

     

    4、某系统采用36进制数字来表示一个字符串,36个字符0-9a-z分别由数字0-35表示,则10进制数字872581表示字符串___B___

      A. imc     B. ipad     C. iphone     D. ipod

    解析:(87258110=18 25 10 1336,所以为ipad

     

    5、以下代码输出的结果是:___B___

     

      A. 81     B. 27     C. 9     D. 3

     

    6、关于数据结构的以下说法,错误的是___C___

      A. 红黑树插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(logn)

      B. B+树插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(logn)

      C. Hash表插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(n)

      D. 排序链表插入操作的平均时间复杂度为O(n),最坏时间复杂度为O(n)

    解析:

      Hash表的查找、插入和删除都是O(1)

     

    7、哈夫曼编码是一种无损二进制熵编码算法,其加权路径长度最小,字符串“alibaba”的二进制哈夫曼编码有___C__位(bit)。

      A. 11     B. 12     C. 13     D. 14

    解析:

      a的个数为3b的个数为2l的个数为1i的个数为1

      最后构造的哈夫曼树,编码如下所示。

      编码: 个数

      a1     3

      b01   2

      l000   1

      i001   1

      所以,哈夫曼编码长度为:3*1 + 2*2 + 3*1 + 3*1 = 13

     

    8、节点按中序遍历为xyz的二叉树可能有__D__种。

      A. 2     B. 3     C. 4     D. 5

    解析:

      注意左右子树的问题就OK了。

     

    9、在4个元素的集合上可定义的互不相同的划分有___B___种。

      A. 14     B. 15     C. 16     D. 17

    解析:

      集合A的一个划分确定A的元素间的一个等价关系。

      如果划分为4个子集,只有一种划分;

      如果划分为3个子集,那么三个子集的元素必须是112个。有C(4,2)=6种划分;

      如果划分为2个子集,那么可能是1+3,也可能是2+2.1+3的情况,有四种方法去选择集合的元素,所有有4种。如果是2+2,有C(4,2)=3种。所以,总共有7种两个子集的划分;

      如果划分为1个子集,只有一种划分;

      所以,总共有1+6+7+1 = 15种划分。

     

    10、以下关于C语言中指针的说法错误的是:___C__

      A. 指针的值是一个地址

      B. 非法指针是指该指针的值不是一个已经分配内存的地址

      C. 两个指向同类型地址的指针之间做减法是没有意义的

      D. 指针的指针占用的内存空间和其他指针占用的内存空间相同

     

    二、不定向选择题

    13、以下关于内存泄露的说法正确的是_____。《此题不确定》

      A. 内存泄露是操作系统内存管理出错导致的问题

      B. 单线程程序不可能内存泄露

      C. 如果一个进程在运行过程中占用的内存无限制的上升,那么该进程有内存泄露

      D. 只有进程在退出之前释放了所有分配的内存,那么就不会有内存泄露

      E. 内存泄露仅仅出现在C/C++程序的问题,Java程序不会出现内存泄露 

    解析:

      对于A选项,内存泄露通常是指分配出去的内存使用完毕后没有释放掉,未被回收,所以,A应该不对。

      对于B选项,肯定是不对的,单线程也会出现内存泄露;

      对于E选项,肯定是不对的,Java程序也会出现内存泄露的问题;

     

    14、关于进程和线程,下面说法正确的是__BCD__

      A. 线程是资源分配和拥有的单位

      B. 线程和进程都可以并发执行

      C. 在linux系统中,线程是处理器调度的基本单位

      D. 线程的粒度小于进程,通常多线程比多进程并发性更高

      E. 不同的线程共享相同的栈空间

     解析:

      对于A选项,进程是系统资源分配和调度的基本单位;而线程是处理器调度的基本单位;

      对于E选项,应该是属于同一进程的不同线程共享相同的栈空间;

     

    第三部分 填空与问题

    16、某种物理机一年的无故障概率为p,每台物理机通过虚拟技术可以虚拟出v台虚拟机,假定在物理机没出现故障的情况下虚拟机不会出现故障,那么每台虚拟机一年无故障的概率为___p___。如果有m台这样的物理机,虚拟出mv台虚拟机,通过某种分布式容错技术,可以使基于这些虚拟机搭建的服务只要有一台虚拟机无故障,这个服务便可以无故障。那么这个服务一年的无故障概率为__1-1-p^m_。如果想通过同样数量的虚拟机实现更高的无故障概率,但不限制物理机的数量,可以采用的方法是_降低每台物理机虚拟出的虚拟机的数量_

    解析:

     

    17、宿舍内5个同学一起玩对战游戏,每场比赛有一些人作为红方,另一些人作为蓝方,请问至少有多少场比赛,才能使任意两个人之间有一场红方对蓝方和一场蓝方对红方的比赛?请写出思路及结果。

    解析:

       4场。

     

    18、读取并处理一个文件中的记录,每条记录处理会产生一个对应的结果,不同记录的处理过程之间互不依赖,结果输出到另一个文件中,某程序员实现了该处理程序的单线程版本,运行时发现CPU使用率达到80%

    (1)为何CPU使用率不是100%

    (2)假定程序运行的机器的核数在416不等,如何设计程序,使该处理程序运行的最快?

    (3)在一个n核机器上,速度最快是原来的程序的多少倍?

    解析:

      (1CPU使用率达不到100%,有可能是CPU分配给该进程的时间片用完,其他进程抢占了CPU,从而导致该程序阻塞;

      (2)假设该机器的核数为n,其中4<=n<=16,以及文件中有m条记录,那么可以创建n个线程,每个线程并发 最多 处理不同的m/n+1条记录,这样会使该处理程序运行的最快;

      (3)最多为n倍。

     

    19、请实现一个程序,能对点分字符串按段翻转。如”www.taobao.com”翻转为”com.taobao.www”,”sports.sina.com.cn”翻转为”cn.com.sina.sports”。要求时间复杂度为O(n),空间复杂度为O(1),结果保存在参数指针所指的空间中。

    解析:

      解决方法是这样的,分为两步:

    1)首先将整个字符串逐个反转,例如www.taobao.com 处理后就是 moc.oaboat.www

    2)再在段内进行一次反转,结果就是com.taobao.www了;

      

     1 void Swap(char *a, char *b)
     2 {
     3     char tmp = *a;
     4     *a = *b;
     5     *b = tmp;
     6 }
     7 void reverse(char *str, int first, int last)
     8 {
     9     if(str == NULL || first > last){
    10         return;
    11     }
    12     int i = first, j = last;
    13     while(i < j){
    14         Swap(&str[i], &str[j]);
    15         i++;
    16         j--;
    17     }
    18 }
    19 char* RerveAll(char *str)
    20 {
    21     if(str == NULL){
    22         return NULL;
    23     }
    24     //反转整个字符串
    25     reverse(str, 0, strlen(str) - 1);
    26     //段内逐步反转
    27     size_t i = 0;
    28     int istart = 0;
    29     for(i = 0; i < strlen(str); i++){
    30         if(str[i] == '.')
    31         {
    32             reverse(str, istart, i - 1);
    33             istart = i + 1;
    34         }
    35     }
    36     //最后一个'.'后面的字符串
    37     reverse(str, istart, i - 1);
    38     return str;
    39 }

     

    第四部分 综合题

      某B2C网站有1亿用户和200万商品,每一个用户都有自己喜欢的若干件商品,如果两个用户都喜欢同一件商品,我们定义中两个用户有一个“同好商品”,“同好度”为两个用户的同好商品数和这两个用户中至少有一人喜欢的商品数的比值。同好度衡量了两个用户之间的商品喜好的接近程序,这有着十分重要的用途。

      请设计一个算法,计算每一个用户的同好用户集合及同好度。

      输入数据:多个文件,每个文件的数据有多行,每一行的数据格式如下:用户ID喜欢的商品ID1 喜欢的商品ID2 .......喜欢的商品n,其中用户ID和商品ID均为32位整数,中间以空格分隔。

      如:

      16 1001 1002 3003

      输出数据:一个或多个文件,每一行的数据格式如下:

      用户ID 同好用户ID1:同好度 同好用户ID2:同好度......同好用户IDn:同好度

      中间以空格隔开。算法可以描述为伪代码。

     

     


     

      转载请注明:http://www.cnblogs.com/iloveyouforever/

  • 相关阅读:
    Tarjan算法求双连通分量
    Tarjan
    前端技术实现js图片水印
    记录一下ionic canvas图片,还有canvas里面的图片跨域的问题
    ionic cordova screenshot 使用和操作
    关于ionic2 更新到ionic3 后组件不能用的解决方案
    背景图处理,这是个好东西记录一下
    radio样式的写法,单选和多选如何快速的改变默认样式,纯CSS,
    ionic使用cordova插件中的Screenshot截图分享功能
    ionic中执行pop返回上一个页面,还需要执行操作
  • 原文地址:https://www.cnblogs.com/iloveyouforever/p/3430116.html
Copyright © 2020-2023  润新知