新物网

当前位置:首页 > 百科

百科

2013年阿里巴巴见习生招聘笔试题目及答案

时间:2023-10-18 09:25:40 静子
去阿里旺旺2013专题讲座有幸参加了阿里巴巴2013年5月5日的实习生招聘笔试,对我来说,笔试的难度系数比较容易,前半部分不属于算法的具体内容。而后三道相关算法练习的答案都很差,显示出自己的一些问题。接下来的三个算法练习回答得很差,显示出一些自己的问题。我也需要马上毕业。我想通过这
去阿里旺旺2013专题讲座

有幸参加了阿里巴巴2013年5月5日的实习生招聘笔试,对我来说,笔试的难度系数比较容易,前半部分不属于算法的具体内容。而后三道相关算法练习的答案都很差,显示出自己的一些问题。接下来的三个算法练习回答得很差,显示出一些自己的问题。我也需要马上毕业。我想通过这些标志记录下我在面试开始时遇到的各种问题和困难,并记录下来以便查看和与您分享。热烈欢迎积极沟通。

 一、单选题

1.以下说法不正确:

A.SATA硬盘的速度约为500Mbps/s

B.加载18XDVD光盘数据库的速度为1Gbps

C.千兆以太网的数据读取速度达到1Gpbs

D.DDR3内存数据速度为100Gbps

我自己做题的想法是:2008年有一台Y430,当时我测量硬盘的速度时,记得我的60MB/s,也就是480mbps/s,项A的选择还不错;在我的印象中,光盘速度更快,只有几十M/s,电脑硬盘还没有达到1Gbps,更不用说光盘了?大多数人都知道B是不正确的;所谓千兆网卡,即1000M=1G,C是正确的;然而,对于DDR3的内存速率,有一次,为了建立rAMDisk,工具的使用区分了运行内存。我隐约记得平均速度是GB/s级。在D列表中,100GBPS实际上是12.5GB/s,毫无疑问,这是合理的。综上所述,可以判断B是不正确的。综上所述,可以判断B是不正确的。

2.()Linux中的过程通信不得使用

A.共享内存

B.命名管道

C.信号量

D.临界区

所谓临界区(critical section),实际上是指一段编码。选D;在《Windows核心程序编写第五版》中,对临界区的解释是:这是一个小编码,在实施之前需要独家访问一些共享权。这种方法可以通过“分子方法”的方式操作更多的编码数据。这儿的分子方法,除现阶段流程外,没有其他流程会同时浏览网络资源。自然,系统软件仍然可以暂停生产和调度现阶段的其他过程。然而,在目前的过程离开临界区之前,操作系统不会生产和调度许多需要浏览相同网络资源的过程。

对于A、B、C,全是过程通信的方法。

在Linux中,进程通信的方法有:需要填写。

3.内存中有三个程序:P1、P2、P3,并按P1、P2、P3的优先顺序运行,内部结构运算IO处理时间如下(CPU运算IO网络资源只能同时由一个程序流程占有):

P1:测算60ms  --> IO 80ms --> 测算20ms

P2:测算120ms --> IO 40ms --> 测算40ms

P3:测算40ms  --> IO 80ms --> 测算40ms

与单道运行相比,三道程序节省了时间

A.80ms

B.120ms

C.160ms

D.200ms

本文调查了计算机操作系统中的进程调度,工作调度的相关内容。做题时,画详解非常清晰通俗易懂。做题时,画详解非常清晰通俗易懂。因为每个过程都有三个阶段:计算、IO、我们将把这三个计算命名为A、B、C。同时要注意的是,问题没有解决,我们假设P1、P2、P3不能占用。

60ms     80ms    40ms       20ms   20ms     20ms       40ms     40ms     40ms

P1(A)--> P1(B)            --> P1(C) 

              P2(A)   P2(A) --> P2(B)   P2(B)              --> P2(C)          

                                                  P3(A)      P3(A) --> P3(B)    P3(B) --> P3(C)

最后用时:60 80 40 20 20 20 40 40 40=360ms;

实施全串行通信时:160 200 160=520ms;

节省520ms-360ms=160ms。

4.2等额线程并发执行以下程序流程,a为局部变量,原始为0,假设printf、  、--所有操作都是原子性的,导出肯定不是()
void foo() {
    if(a <= 0) {
        a  ;
    }
    else {
        a--;
    }
    printf("%d", a);
}

A.01

B.10

C.12

D.22

当时我写的答案是D,网上很多普通版都讲C。后来自己想了想,觉得A很可能是合理的,下面就来看看我的想法。

对B答案,P1程序运行,导出1,P2程序运行,导出0;

对于C答案,原始为0,P1执行判断句,并下定决心实施a ,最后,P2做出判断。此时,a仍然相当于0。执行判断句,执行导出,获得1,然后执行P1。此时,应执行a ,此时a=1,实施并输出,结果显示2;

对于D回答,原始为0,P1执行判断句,决心实施a ,最后,P2作出判断,此时a仍相当于0,实施a ,获得a=1,终断,P1执行a=1 ,a=2.P1导出,2,P1完成,P2执行输出语句,2;

我现在反复思考A的答案,煞费苦心地忘记了为什么分辨它不是答案。o(╯□╰)o。o(╯□╰)o。

5.给出fun函数公式如下所示,fun(10)的输入参数为()

int fun(int x) {
    return (x==1) ? 1 : (x   fun(x-1));
}

A.0

B.10

C.55

D.3628800

递归算法进行,f(10)=10 f(9)=10 9 f(8) …… 1=55。

6.在c  如果经常使用整形变量,最好将其定义为()

A.auto

B.extern

C.static

D.register

C语言带来了存储四种修饰符:auto,register,extern,static:

auto修改符只用于句块内,复位可以是所有关系类型。其特点是,当执行过程进入句块时,没有初始值。

使用register修改符装饰自变量将意味着汇编程序对应的自变量应该经常使用。如果可能的话,应该存储在CPU的存储器中,以加快存储速度。

使用register修改符装饰自变量将意味着汇编程序对应的自变量应该经常使用。如果可能的话,应该存储在CPU的存储器中,以加快存储速度。static静态变量申报符。程序块、程序段块或函数内部结构合理,值维护,芯片内部空间在所有程序流程中分配,编译程序初始值为0。是C/C 用于调节变量的数据存储模式和可视性的常见修饰符。static被引入以告的编译程序,在流程中保存自变量

静态存储区

室内空间不是栈上的。

extern可以在其他文档中放置自变量或函数之前,提醒编译程序在遇到此变量和函数公式时,在其他部分探索其定义,以表示自变量或函数的概念。此外,extern也可用于连接特定。

7.长度为n的字符串与长度为m的字符串的复杂性为() A.O(n) B.O(m n) C.O(n logm) D.O(m logn)

在笔试的情况下,KMP优化算法还在准备考试,现在几乎被遗忘了,答案是蒙蔽的。字符串匹配优化算法最近必须再次准备考试。m=1时,配对必须O(n),m扩大,也要有明确的费用;C很像,所以买C。(注:这部分以后再填)。

8.分辨一个包含n个整数金额的a[]中是否存在i、j、k达到a[i] a[j] = a[k]算法的复杂性为() A.O(n) B.O(n^2) C.O(nlog(n)) D.O(n^2log(n))

待填补。

9.以下快速排序算法中最不复杂的不是n(n-1)/2是指 A.快速排序算法 B.冒泡排序 C.直接插入排序 D.堆排序

不言而喻。快速排序算法的比较需要填写。

10.三次枪击中至少一次的概率是0.95。下一次枪击中的概率是多少? A.0.32 B.0.5 C.0.63 D.0.85

公式计算非常简单,1-(1)-p)^3=0.95。下面需要一定的估计方法。A选项可视为1/3,C选项可视为2/3,D选项可视为4/5。

 二、不定项

1.以下工艺状态转换合理() A.准备就绪操作 B.运行到准备就绪 C.运行到堵塞 D.堵塞到运作 E.堵塞到准备就绪

对linux全面进程调度问题进行了调查,A、B、C、E都可以。在D中,堵塞到操作,需要在中间通过就绪状态。在D中,堵塞到操作,需要在中间通过就绪状态。

需要填写进程切换图。

2.一个栈的入栈数量包括:1、2、3、4、5、6;以下哪一个是可能的出栈顺序。(不记得选项了)

这类题目是常考,熟悉stack后先出标准。

3.下面哪些编码可以使a和b交换标值。(不记得选项了)

用两个相比看每个选项的编码是否可以交换其标值,并选择答案。若不放心,可再选一组确认。

4.晚上无聊的A和B开始数星星。每次只能数K(20<=kA和B轮流数=30。最后谁数完星辰谁就能赢,那么当星辰数量达到多少时A就能赢呢?(不记得选项了) A、2013   B、2888  C、4062 D、***    E、***

对上述答案,A有取胜的想法,A、B、C、D、E都要选择。第一,A再取,让剩下的星星成为50倍。然后数星星的顺序是B、A、B、A……。B数k星,A属于50-k,使剩余的星星自始至终为50倍,最后,一定是A数的最后一颗星。A取胜。

三、填空题简答题

1.给你一个整形数组A[N],完成一个小程序代码(20行以内),促进A[N]反向,即原二维数组为1、2、3、4,反向后为4、3、2、1 void revense(int * a,int n) { }

待填补。

2.选择与生产调度相关的问题。问题类型很长,这是给你三个过程,分别采用先分配的想法和至少实施之间的想法调度策略,然后计算每个过程从提交到完成的时间。 题型真的太长了,有几份报告。测试是计算机操作系统中先进先出的工作调度算法和最低工作优先级。

待填补。

3.有一个工薪族,他每天忘记设置闹钟的概率为0.2,工作堵车的概率为0.5, 假如他既没有设置闹钟工作又拥堵,那么他迟到的概率是1.0,假如他订了闹钟但工作拥堵,那么他迟到的概率是0.9, 假设他没有设置闹钟,但是工作没有阻止他迟到的概率是0.8,假如他明确了闹铃工作又不堵,那么他迟到的概率是0.0, 计算出她在60岁时迟到的期望。

待填补。

待填补。

4.战争条件沟通:N名士兵在战场上的不同位置工作(n>4),每个士兵职业都知道现阶段的一些记录。现在,n个士兵职业应该根据语音通话进行交流,并相互传达他们清晰的记录信息内容。
每次语音通话,语音通话的双方都可以了解对方的所有信息,设计算法,使语音通话的频率尽可能少。是的,战场上的n名士兵知道所有记录信息的内容,并获得最小的语音通话频率,而无需编写编程代码。

待填补。

5.有n个人,其中一个明星和n-1个人。人们都知道明星。明星们不认识所有的人,人与人之间的认知关系也不清楚。 现在,如果你是一个智能机器人R2T2,每次你问一个人是否知道另一个人的代价是O(1),试着设计一个优化算法来找到明星,并制定算法的复杂性(没有复杂性零分)。




解释:
这种情况相当于在未知编码序列数中找到最小数字。我们将要求reg等于以下整个过程:,如果我理解j,记住i高于或等于j,同样的j不一定高于或等于i,符合要求,我不认为j记住i
int finds(S,N)
{
int flag=0;//用以判断是否存在明星,即现阶段最小数此外发生几回
int temp=0;//储放最小数在S中位置
for(i=1;i
if(!reg(S[i],S[temp])//假如temp标号的数低于i标号的数

temp=i;
flag=0;//拆换怀疑对象(最小数)时,标识清零

elseif(reg(S[temp],S[i])//假如temp里储存的的确是唯一最小数一般不会跑到这儿的

{

flag ;` }
if(flag>0) return -1;//意味着没有明星,比如所有的数字都是一样的

return temp;///回到明星在S中的位置

}

四、大题

有一个淘宝商家,在某个地方有n个仓库,每个仓库的仓储业务量都不一样。今天,根据货运,每个仓库的仓储业务量都应该变得一致。n个仓库的运输通道有一个圈,即1->2->3->4->...->n->1->..,货物只能通过连接仓库运输,设计方案的最低运输成本(运货量*路程)达到淘宝商家的规定,并编写编码。