找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[ 名企面试题收录 ] 【守望者 名企笔试题目】阿里巴巴集团2014年校园招聘系统工程师北京笔试题

2014-09-24 11:15| 发布者: zhouy | 查看: 3018 | 收藏

摘要: 第一部分 单选题(前10题,每题2分;后10题,每题3分;共50分。选对得满分,选错倒扣一分,不选得0分。)  1.字符串”alibaba”有()个不同的排列。  A. 5040 B. 840 C. 14 D.420  2.下列一段C++代码的输出是  。 ...
第一部分 单选题(前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.一台指针式钟表的时钟和分钟的指向重合的时间间隔是 B 。
  A. 720/13分钟 B. 720/11分钟 C. 60分钟 D. 以上都不正确


  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的服务器,上面运行着1种在线服务。如果该在线服务处理一个请求在非独占IO上的等待时间和CPU计算上消耗的时间比为2:1,假定IO带宽充足,那么至少开  个线程能最大化性能地使用该服务器?
  A. 4 B. 8 C. 12 D. 线程越多越好
  有一种语言称为lua,里面的数字只有一种类型(number),实际上是双精度浮点数。没有各种位数的整数,如32位、64位整数等。那么关于该语言的说法错误的是  。
  A. 该语言可以用number类型的变量作为数组下标
  B. 该语言可以表示任意32位数字整数的数字ID
  C. 该语言无法实现32位数字整数的按位与、或、异或运算
  D. 该语言可以正常进行双精度浮点数运算


  14.一个在线服务通常需要读取存储着海量数据的数据库。为了提高服务的处理速度,通常需要加cache(缓存)。以下场景中不合适使用cache的是  。
  A. 数据库中每条数据被访问到的概率近似相等,且独立
  B. 使用了多线程机制的服务
  C. 单条数据尺寸大小的数据
  D. 有着大量访问的服务


  15.如下一段神奇的代码实现的功能是  。
  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. 一个均匀的哈希函数


  16.有1023个两两不同的整数,取值范围是1到1024,其按位异或的结果的取值范围是 。
  A. 0到1024
  B. 0,1025到2047
  C. 1到1024
  D. 2到2048之前的全部偶数


  17.七夕节n恋人(n>=2)围成一圈举行篝火晚会。晚会的规则是:男女相同,且每对恋人处在相邻的位置上。请问有多少种不同的圈子?
  A. (2n-1)!/2 B. 2(n-1)! C. 2n(n-1)! D. (2n)!
  

     18. 星期天有10个朋友约好一起郊游,在车站的集合时间是早晨9:50:00到10:00:00。已知每个人到达车站的时间是9:50:00到10:00:00内的均匀分布,且彼此独立。那么最后一人最可能到达的时间是  (精确到分钟,向下取整)。
  A. 各个分钟概率相等 B. 9:57 C. 9:58 D. 9:59


  19.已知某国家每年出生人口数每年递增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分)1.某无聊的程序员在玩Windows上的记事本程序,不用鼠标,每次可以按以下键或组合之一:A、Ctrl+A(全选)、Ctrl+C(拷贝)、Ctrl+V(粘贴),那么在10次按键只能可以制造的最长文本长度为?


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

 
  (8分)3.6度分离假说的含义是,世界上任何两个人要么是朋友,要么是朋友的朋友,或者更高阶的朋友的朋友(如朋友的朋友的朋友),改论断中”朋友”一词出现的次数为两人之间的距离,那么该距离小于等于6。如果某SNS(如QQ、旺旺等),有100万用户,其人际关系网咯符合以下两个假设:
  朋友关系是一种对称关系(如A和B是朋友,那么B和A也是朋友)
  符合2度分离假说
  第i个人拥有的朋友的个数为ni ,所有ni 中最大值为n
  试估算n的最小值



  (9分)4.某电子商务网站进行A、B两种推荐算法的效果对比测试,对用户的访问请求按照1:9的比例随机分配给A和B两种算法处理。产生推荐结果后,按照两种指标对比两种算法产生的结果好坏:第一种指标是CTRPV=该算法下用户的点击展现次数/该算法下所有的展现次数,第二种指标是CTRUV=该算法下有点击的用户数/该算法下所有的用户数。假定每个用户会对该推荐服务2次访问,如果A和B的CTRPV持平(假设为0.01)。那么CTRUV哪个大,大的比小的大百分之多少  。


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


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亿条记录的文本文件,已按照关键字排好字存储,请设计方法,可以快速的从文件中查找指字关键字的记录。
  

【系统工程师】 附加题


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


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


  3.搜索引擎是很常用的web应用。大部分搜索引擎需要设计一个抓虫(Crawler),从很多网站抓去网页,分析数据,供搜索引擎使用。


  4.设想你来做一个搜索引擎的爬虫,需要抓去约一百万家网站的网页内容。
  1) 请画出一个抓虫系统的架构图。
  2) 重点说明你的爬虫需要如何优化来提升性能。

 

你有新的观点?  

已有0参与讨论

赞过此文的人

推荐阅读

[守望者 内推职位]中电科网络信息安全有限责任公司
[守望者 内推职位]中电科网络信息安全
中国电子科技集团公司第三十研究所(以下简称:三十所)创建于1965年,是集通
[守望者 猎头职位] 某民机航电公司  研发技术副总监 VxWorks软件高级工程师 Linux软件 ...
[守望者 猎头职位] 某民机航电公司 研
以下职位为猎头职位。有兴趣可将简历发送到362528717@qq.com或者加QQ交流,匹
[猎头职位] 高级嵌入式系统架构师
[猎头职位] 高级嵌入式系统架构师
高级嵌入式系统架构师
[猎头职位] 英国金融公司 liquid(利源软件)Linux C++高级开发
[猎头职位] 英国金融公司 liquid(利源
Liquid Capital Group 是一家总部位于伦敦的专门从事金融衍生品交易和做市业
【守望者 内推职位】腾讯平台架构后台开发工程师
【守望者 内推职位】腾讯平台架构后台
守望者:腾讯后端开发,职位在深圳,年薪30~35W,成都主要为游戏开发相关职位
[猎头职位] 系统测试__安全产品测试
[猎头职位] 系统测试__安全产品测试
系统测试__安全产品测试
[猎头职位] 加拿大 宏利金融  .Net 高级开发
[猎头职位] 加拿大 宏利金融 .Net 高
守望者:本职位为金融开发相关陪伴,要求有较强的架构设计能力,开发能力,分
[内部推荐]重庆金鑫智慧java高级程序员
[内部推荐]重庆金鑫智慧java高级程序员
守望者:重庆金鑫智慧是重庆南桐矿业集团公司旗下的子公司,有专业的队伍进行

行业聚焦  面试交流  职位推荐  开发视频   技术交流  腾讯微博  新浪微博

友情链接:课课家教育  阿里云  鲜果  W3Cfuns前端网  中国企业家  环球企业家  投资界  传媒梦工场  MSN中文网  Android开发者社区  cnbeta  投资中国网  又拍云存储  美通说传播  IT茶馆  网商在线  商业评论网  TechOrange  IT时代周刊  3W创新传媒  开源中国社区  二维工坊  Iconfans  推酷  智能电视网  FreeBuf黑客与极客  财经网  DoNews  凤凰财经  新财富  eoe移动开发者社区  i黑马  网易科技  新浪科技  搜狐IT  创业家  创业邦  腾讯财经  福布斯中文网  天下网商  TechWeb  雷锋网  新浪创业  和讯科技  品途O2O  极客公园  艾瑞网  抽屉新热榜  卖家网  人民网通信频道  拉勾网  创新派  简单云主机  

手机版|黑名单|守望者在线 在线教育 linux 高级程序设计 C/C++ 大数据 ( 蜀ICP备14029946号

成都守望者科技有限公司 © 2013-2016 All Rights Reserved