第一部分 单选题(前10题,每题2分;后10题,每题3分;共50分。选对得满分,选错倒扣一分,不选得0分。)

  1、字符串”alibaba”有  个不同的排列。

  A. 5040 B. 840 C. 14 D.420

  2、下列一段C++代码的输出是  。

  class Base

  {

  public:

  int Bar(char x) {return (int)(x);}

  virtual int Bar(int x) {return(2*x);}

  };

  class Derived :public Base

  {

  public:

  int Bar(char x) {return(int)(-x);}

  int Bar(int x) {return (x/2);}

  };

  void main(void)

  {

  Derived Obj;

  Base*pObj=&Obj;

  printf(“%d,”,pObj->Bar((char)(100)));

  printf(“%d,”,pObj->Bar(100));

  }

  A. 100,50 B. -100。200 C. -100,50 D. 100,200

  3、有一个二维数组A[10][5],每一个数据元素占1个字节,且A[0][0]的存储地址是1000,则A[i][j]的地址是  。

  A. 1000+10i+j B. 1000+i+j C. 1000+5i+j D. 1000+10i+5j

  4、下列  不是线性表?

  A. 队列 B. 栈 C. 关联数组 D. 链表

  5. 下列有关在一个处理器(processor)上跑两个线程(thread)的说法中。正确的是  。

  A. 一个线程能够改变还有一个线程的程序计数器(program counter)

  B. 一个线程既不能读也不能写还有一个线程的栈(stack)

  C. 一个线程能够读写还有一个线程的寄存器(register)

  D. 以上都不正确

  6、关于双链表的搜索给定元素操作的说法正确的是  。

  A. 从两个方向搜索双链表,比从一个方向搜索双链表的速度慢

  B. 从两个方向搜索双链表,比从一个方向搜索双链表的方差要小

  C. 从两个方向搜索双链表,比从一个方向搜索双链表速度要快

  D. 以上说法都不对

  7、对n个数字进行排序,期中两两不同的数字的个数为k。n远远大于k,而n的取值区间长度超过了内存的大小,时间复杂度最小能够是  。

  A. O(nlogk) B. O(nk) C. O(n) D. O(nlogn)

  8、一台指针式钟表的时钟和分钟的指向重合的时间间隔是 。

  A. 720/13分钟 B. 720/11分钟 C. 60分钟 D. 以上都不对

分析:分钟比时钟多走了60分钟,又分钟的速度是时钟的12倍,故12x-x=60,所以12x为B

  9、两个大小不同的杯子R和S。R中装着一定量的小米,S中装着一定量的沙子。

一名儿童用勺子从S中取出一勺沙子放入R,与小米混合之后,再从R中取出等体积的一勺混合物放入S。假定两勺物品的体积相等。且R和S都没有发生溢出。则下面说法中正确的是 。

  A. R中的沙子和S中的小米一样多

  B. R中的沙子比S中的小米少

  C. R中的沙子比S中的小米多

  D. 无法推断

  10、假定抛出的硬币落地之后正反两面出现的概率各自是1/2。

那么抛10次和100次硬币(分别称为T10和T100)相比。下面说法正确的是  。

  A. T100出现一半的正面比T10出现一半正面的概率更大

  B. T100前3次都是正面的概率比T10前3次都是正面的可能性大

  C. T100正面次数的方差小于T10出现正面次数的方差

  D. T100出现正面的比例比T10出现正面的比例在(0.45,0.55)区间中的可能性更大。

  11、某福彩机构推出了一款简单的猜谜游戏:游戏玩家仅仅需交纳n元。赌红或者黑。假设开奖结果与游戏玩家所赌的颜色同样,则玩家除得到交纳的n元赌资外,还能够获得n元作为奖励;否则该玩家失去交纳的n元赌资。为了游戏公平。开奖是红或者黑的概率均为1/2。某游戏玩家想出了一个玩法:開始出100元參与赌博,然后依照例如以下规则进行游戏。假设输掉,而且赌资充足,就把已经输了的总钱数翻倍作为赌资进行赌博;否则。就停止该游戏。

假定该机构赌资无限,而玩家的赌资比較有限。下面关于该玩家退出游戏时的情形的评论中合理的是:  。

  A. 该玩家的策略能够保证游戏结束时赢钱数的期望为正数

  B. 该福彩机构长期会赔钱

  C. 该玩家会有一定概率在游戏结束时输钱,但输得不多

  D. 该玩家赢的可能性比输的可能性大

  12、有16瓶水,当中仅仅有一瓶水有毒。小白鼠喝一滴之后一小时会死。

请问最少用  仅仅小白鼠,在1小时内一定能够找出至少14瓶无毒的水?

  A. 1仅仅

  B. 3仅仅

  C. 4仅仅

  D. 16仅仅

  13、有一台4核CPU的server,上面执行着1种在线服务。

假设该在线服务处理一个请求在非独占IO上的等待时间和CPU计算上消耗的时间比为2:1。假定IO带宽充足,那么至少开  个线程能最大化性能地使用该server?

  A. 4 B. 8 C. 12 D. 线程越多越好

  14、有一种语言称为lua。里面的数字仅仅有一种类型(number),实际上是双精度浮点数。

没有各种位数的整数。如32位、64位整数等。那么关于该语言的说法错误的是  。

  A. 该语言能够用number类型的变量作为数组下标

  B. 该语言能够表示随意32位数字整数的数字ID

  C. 该语言无法实现32位数字整数的按位与、或、异或运算

  D. 该语言能够正常进行双精度浮点数运算

  15、一个在线服务通常须要读取存储着海量数据的数据库。

为了提高服务的处理速度,通常须要加cache(缓存)。

下面场景中不合适使用cache的是  。

  A. 数据库中每条数据被訪问到的概率近似相等,且独立

  B. 使用了多线程机制的服务

  C. 单条数据尺寸大小的数据

  D. 有着大量訪问的服务

  16、例如以下一段奇妙的代码实现的功能是  。

  int miracle(unsigned int n)

  {

  int m=n==0 ? 0:1;

  while (n=(n&(n-1)))

  {

  m++;

  }

  return m;

  }

  A. n的二进制表示中”0″的个数

  B. n的二进制表示的倒序值

  C. n的二进制表示中”1″的个数

  D. 一个均匀的哈希函数

  17、有1023个两两不同的整数,取值范围是1到1024,其按位异或的结果的取值范围是 。

  A. 0到1024

  B. 0,1025到2047

  C. 1到1024

  D. 2到2048之前的所有偶数

分析:首先把1到1024全部的进行异或,得到的结果是s = 1024。题目要求是1023个数,因为异或的特殊性,缺哪个数,相当于s和该数的异或。所以最后的结果就是1024和1~1024的异或。

  18、七夕节n对恋人(n>=2)围成一圈举行篝火晚会。

晚会的规则是:男女同样。且每对恋人处在相邻的位置上。请问有多少种不同的圈子?

  A. (2n-1)!/2 B. 2(n-1)! C. 2n(n-1)! D. (2n)!

分析:首先把每对恋人看成是一个总体,因为是一个圆圈,所以仅仅能固定一个,如果把A当作第一个,则B、C、D、E……等进行全排列,故有(n-1)!种排法。而每对恋人之间的位置能够呼唤,故选C

  19、星期天有10个朋友约好一起郊游,在车站的集合时间是早晨9:50:00到10:00:00。已知每一个人到达车站的时间是9:50:00到10:00:00内的均匀分布,且彼此独立。

那么最后一人最可能到达的时间是  (精确到分钟,向下取整)。

  A. 各个分钟概率相等 B. 9:57 C. 9:58 D. 9:59

  20、已知某国家每年出生人口数每年递增3%,且男女比例为1:1。假设每一个男性都希望找比自己小0.5到 3岁的女性结婚。且每一个女性都希望找比自己大0.5到3岁的男性结婚,适婚年龄为20到30岁,那么对该国适婚男女婚配方面的说法正确的是  。

  A. 男女会比較均衡

  B. 会产生较多剩女

  C. 会产生较多剩男

  D. 信息不足。无法推断

  第二部分 不定向选项(4题,每题5分。每题有1-5个正确选项,全然正确计5分。漏选计2分,不选计0分。多选、错选计-2分)

  1、要提高多线程程序的效率,对锁的控制策略很重要。一种策略是在锁的个数不太多、控制结构不太复杂的情况下。尽可能减少加锁的粒度;还有一种策略是在合适的条件下取消用锁。下面情况中不可能取消锁的是  。

  A. 多线程写一个共同的数据结构。且写操作是原子操作

  B. 多线程写一个共同的数据结构,且写操作不是原子操作

  C. 多线程读一个共同的数据结构。且读操作不是原子操作

  D. 一个线程写,多个线程读一个共同的数据结构。写操作是原子操作,读操作不是原子操作

  E. 一个线程写、多个线程读一个共同的数据结构,写操作不是原子操作。读操作是原子操作

  2、一颗非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树可能是  。

  A. 全部的结点均无右孩子

  B. 仅仅有一个叶子结点

  C. 是一颗二叉树索树

  D. 全部的结点均无左孩子

  3、下面数字在表示为double(8字节的双精度浮点数)时存在舍入误差的有  。

  A.B. 10的30次方 C. 0.1 D. 0.5 E. 100

  4、给定例如以下C程序:

  typedef struct node_s{

  int item;

  struct node_s* next;

  }node_t;

  void reverse_list(node_t* head)

  {

  node_t* n=head;

  head=NULL;

  while(n){

  }

  return head;

  }

  下面哪项能实现该函数的功能

  A. node_t* m=head; head=n; head->next=m; n=n->next;

  B. node_t* m=n; n=n->next; m->next=head; head=m;

  C. node_t* m=n->next; n->next=head; n=m; head=n;

  D. head=n->next; head->next=n; n=n->next;

第三部分 填空与问答(5题,共30分)

  (4分)某无聊的程序猿在玩Windows上的记事本程序,不用鼠标。每次能够按下面键或组合之中的一个:A、Ctrl+A(全选)、Ctrl+C(拷贝)、Ctrl+V(粘贴),那么在10次按键仅仅能能够制造的最长文本长度为  。

  (4分)若初始序列为gbfcdae,那么至少须要 次两两交换,才干使该序列变为abcdefg。任给一个自由a–g这7个字母组成的排列。最坏的情况下须要至少 次两两交换。才干使序列变为abcdefg。

分析:每次交换能够把一个字符放在正确的位置。当前面的都放好后。最后一个自己主动放好

  27. (5分)在某恶劣天气,若地图上S点(左上角)到T点(右下角)的交通网例如以下图所看到的,当中每条边表示一条双向通道,其上的数字为该通路可通行的概率。且该概率两两独立。

求S到T的可通行概率 2/3。

  (8分)6度分离假说的含义是。世界上不论什么两个人要么是朋友。要么是朋友的朋友,或者更高阶的朋友的朋友(如朋友的朋友的朋友)。改论断中”朋友”一词出现的次数为两人之间的距离,那么该距离小于等于6。如果某SNS(如QQ、旺旺等)。有100万用户,其人际关系网咯符合下面两个如果:

  朋友关系是一种对称关系(如A和B是朋友,那么B和A也是朋友)

  符合2度分离假说

  第i个人拥有的朋友的个数为ni ,全部ni 中最大值为n

  试估算n的最小值  。

  (9分)某电子商务站点进行A、B两种推荐算法的效果对照測试,对用户的訪问请求依照1:9的比例随机分配给A和B两种算法处理。产生推荐结果后,依照两种指标对照两种算法产生的结果好坏:第一种指标是CTRPV=该算法下用户的点击展现次数/该算法下全部的展现次数,另外一种指标是CTRUV=该算法下有点击的用户数/该算法下全部的用户数。

假定每一个用户会对该推荐服务2次訪问,如果A和B的CTRPV持平(如果为0.01)。

那么CTRUV哪个大,大的比小的大百分之多少  。

  第四部分:JAVA附加题(注,阿里有大量JAVA研发project师需求;选作下面题目有机会添加该方向面试机会)

  1.下面每一个线程输出的结果是什么?(不用关注输出的顺序,仅仅需写出输出的结果集就可以)

  public class TestThread{

  public static vod main(String[] args){

  // test1

  Thread t1 = new Thread(){

  @Override

  public void run(){

  try{

  int i=0;

  while(i++<100000000){

  // nothing

  }

  System.out.println(“A1″);

  }catch(Exception e){

  System.out.println(“B1″);

  }

  };

  };

  t1.start();

  t1.interrupt();

  // test2

  Thread t2 = new Thread(){

  public void run(){

  try{

  Thread.sleep(5000);

  System.out.println(“A2″);

  }catch(Exception e){

  System.out.println(“B2″);

  }

  };

  };

  t2.start();

  // t2.interrupt(); //不确定是否有这句话

  // test3

  Thread t3 = new Thread(){

  public void run(){

  try{

  Thread.sleep(50000);

  System.out.println(“A3″);

  }catch(Exception e){

  System.out.println(“B3″);

  }

  };

  };

  t3.start();

  t3.interrupt();

  // test4

  Thread t4 = new Thread(){

  public void run(){

  try{

  Thread.sleep(50000);

  System.out.println(“A4″);

  }catch(Exception e){

  System.out.println(“B4″);

  }

  };

  };

  t4.start();

  t4.interrupt();

  // test5

  try{

  t4.start();

  System.out.println(“A5″);

  }catch(){

  System.out.println(“B5″);

  }

  }

  }

  一个10亿条记录的文本文件,已依照keyword排好序存储,请设计方法,能够高速的从文件里查找指字keyword的记录。

分析:能够建立B树索引。10亿在 G量级, 分成100份, 为10M量级, 基本上放入内存无压力了。在这10亿记录中, 均分为100份, 把每份的第一条记录keyword和此记录相应的文件偏移量先扫入内存(类似索引), 这里须要磁盘随机io 100次.这样能够立即定位出指定keyword所在的记录块, 把相应的记录块拿到内存, 二分查找就可以.

  【系统project师】 附加题

  在互联网时代系统的稳定性要求越来越高,为了提升系统的稳定性。高可用技术被广泛运用。请列举至少4中相关的技术解决硬件、系统或网络等层面的单点问题。

  请描写叙述一下TCP建立连接三次握手的过程。

  3.搜索引擎是非经常常使用的web应用。

大部分搜索引擎须要设计一个抓虫(Crawler)。从非常多站点抓去网页,分析数据,供搜索引擎使用。

  设想你来做一个搜索引擎的爬虫,须要抓去约一百万家站点的网页内容。

  1) 请画出一个抓虫系统的架构图。

  2) 重点说明你的爬虫须要怎样优化来提升性能。

阿里巴巴集团2014年校园招聘系统project师北京笔试题的更多相关文章

  1. 笔试真题解析 ALBB-2015 系统project师研发笔试题

    4)在小端序的机器中,假设 union X {     int x;     char y[4]; }; 假设 X a; a.x=0x11223344;//16进制 则:() y[0]=11 y[1] ...

  2. 2015-8-29阿里校园招聘研发project师笔试题

    前言:原题来自于网络:http://www.cnblogs.com/nausicaa/p/3946694.html.本人依据自己理解对题目进行解答.因为水平有限.题目有不会做.做错的地方.欢迎大家留言 ...

  3. 2014 WAP校园招聘笔试题

    2014 WAP校园招聘笔试题 Problem's Link:   http://www.doc88.com/p-6751117015483.html WAP公司笔试题 We are planning ...

  4. 校园招聘 - 比較easy的面试题

    又到校园招聘的季节了, 自从和一些同事出版了<编程之美>一书之后, 我常常收到一些关于面试, 编程,  和"题库"的询问. 事实上我自己对算法没有什么研究, 有些问题都 ...

  5. 各大IT公司校园招聘程序猿笔试、面试题集锦

    转自:http://blog.csdn.net/hackbuteer1/article/details/7959921#t4 百度一面 1.给定一个字符串比如“abcdef”,要求写个函数编程“def ...

  6. 阿里巴巴2014年校园招聘(秋季招聘)在线笔试--測试研发project师

    第一部分是单选题:40分钟答题时间. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveG1oMTk1NA==/font/5a6L5L2T/fontsize/ ...

  7. 《使用Hibernate开发租房系统》内部测试笔试题

    笔试总结 1.在Hibernate中,以下关于主键生成器说法错误的是( C). A.increment可以用于类型为long.short或byte的主键 B.identity用于如SQL Server ...

  8. 前端project师的价值体如今哪里?

    这是一个非常老的话题"前端project师的价值体现在哪里?".有人说:"前端project师之于站点的价值宛如化妆师之于明星的价值."一位好的Web前端开发p ...

  9. 阿里巴巴集团2016校园招聘-Python工程师笔试题(附加题+部分答案)

    前言 第一次网上笔试,被虐的很惨.一是不太习惯,最主要的是还是自己对Python的掌握,还不够熟练.下面是这次阿里笔试相关信息 笔试时间是,2015年8月23日,10:00——12:00 对于笔试题, ...

随机推荐

  1. 3.3 文件I/O

    错误的解决方法请参考:http://liangruijun.blog.51cto.com/3061169/673776 3.3.2 访问手机中的存储文件夹 3.3.3 读取assets中的文件 pac ...

  2. Appium + python - automator定位操作

    # coding:utf-8from appium import webdriverfrom time import sleep desired_caps = { 'platformName': 'A ...

  3. Django day08 多表操作 (二) 添加表记录

    一: 一对多 1. 一对多新增 两种方式:  publish = 对象    publish_id = id 1. publish_id 和 publish 的区别就是: 1)publish_id 可 ...

  4. JavaScript表格搜索高亮功能模拟

    在网页表格中模拟excle的搜索高亮显示功能.当在搜索框中输入需要的姓名时,若表格中存在对应的数据,则该表格背景色变为黄色. 下面为表的HTML源码: <!doctype html> &l ...

  5. django的admin后台管理如何更改为中文

    新建Django的admin后端控制为英文显示,为了可以使其显示中文,可以将 setting.py配置文件修改 # LANGUAGE_CODE = 'en-us' # # # # # TIME_ZON ...

  6. SQLServer2008 关于Having

    转自百度百科 与where 相比 HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似. WHERE 子句搜索条件在进行分组操作之前应用: ...

  7. Laravel5.1 学习笔记2, 路由

    安装的说明请看文档, laravel 安装 #基本路由 你将在 app/Http/routes.php 文件定义大部分路由, 这些路由将被App\Providers\RouteServiceProvi ...

  8. 【Oracle】RedHat 6.5 安装 11gR2数据库

    1. 挂载操作系统光盘 [root@drz ~]# mount /dev/cdrom /mnt mount: block device /dev/sr0 is write-protected, mou ...

  9. 【Oracle】 手工建库

    操作系统:OEL 5.6 数据库版本:Oracle11gR2  11.2.0.4.0 新建数据库名称:lgr 1 生成pfile和口令文件 1)生成pfile文件,在模板文件init.ora中提取 [ ...

  10. Oracle存储过程给变量赋值的方法

    截止到目前我发现有三种方法可以在存储过程中给变量进行赋值: 1.直接法     := 如:v_flag := 0; 2.select into 如:假设变量名为v_flag,select count( ...