2013年阿里巴巴实习生招聘笔试题

本文分享了2013年阿里巴巴实习生招聘笔试题,涉及选择题和问答题,涵盖内存管理、进程通信、算法复杂度、概率计算等知识点。适合备考者进行练习与讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果有哪位大侠对这些题目有兴趣,欢迎评论。本人希望多多交流,共同进步!

一,单项选择

1. 以下描述错误的是:

A、读取SATA硬盘数据的速度约为500Mbps.

B、读取18XDVD光盘数据的速度约为1Gbps.

C、千兆以太网的数据读取速度约为1Gbps.

D、读取DDR3内存数据的速度约为100Gbps.

这一题没找到答案。请大侠指点!

2.不能用于Linux中进程间通信的有:

A共享内存    B命名管道    C信号量        D临界区

解析:用于linux中进程间通信机制有:

# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
# 有名管道 (namedpipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
# 信号量( semophore) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
# 消息队列( messagequeue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
# 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
# 共享内存( sharedmemory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。
# 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同进程间的进程通信

3. 内存中有P1,P2,P3三个程序,按照P1,P2,P3优先级运行,内部计算机CPU和I/O操作时间如下( CPU计算和I/O资源同时都仅有一个程序占用),则完成三道程序比单独完成程序节省的时间为:

A.  80ms  B. 120ms   C. 160ms   D. 200ms

4. 两等价线程并发执行下列程序,设a为全局变量,初始值为0。假设printf、“++”和“--”操作都是原子的,则输出结果不可能是:

void foo(){

if (a<=0) {a++;}

else {a--;}

printf(“%d”,a);

}

A、01   B、10  C、12 D、22

5. 给定fun函数如下,那么fun(10)的输出结果是:

Int fun(int x)

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

A、0    B、10      C、55          D、3628800

6、在C++中,如果有一个整型变量频繁使用,最好将它定义为:

A、auto     B、extern   C、static  D、register

7、长为n的字符串匹配长度为m子串的算法复杂度:

A 、O(n)           B、O(m+n)            C、O(n+logm)                D、O(m+logn)

8. 判断一包含n个整数的数组a[]中是否存在i、j、k满足a[i]+a[j]=a[k]的时间复杂度最小值为:

A、O(n3)    B、O(n2log n)    C、O(n2)      D、O(nlog n)

9、下列排序算法中,最坏情况下时间复杂度不是n(n-1)/2的是:

A、快速排序    B、冒泡排序   C、直接插入排序    D、堆排序

解析:A,最好情况:O(nlog n), 最坏情况:O(n2

B,最好情况:O(n),最坏情况:O(n2

C,最好情况:O(n),最坏情况:O(n2

D,最好情况:O(nlog n),最坏情况:O(nlog n)

10. 假设炮弹发射3次,射中目标区域的概率是0.95.那么,发射1次射中目标区域的概率是:

A,0.63            B,0.50           C,0.32          D,0.86

二,不定项选择题

11. 在进程状态转换时,下列转换可能发生的有:

A,就绪态->运行态               B,运行态->就绪态

C,运行态->阻塞态               C,阻塞态->运行态

12. 设输入序列为1,2,3,4,5,6,经过入栈的操作后,下列出栈顺序中可能出现的是:

A,1,2,3,4,6,5          B,1,5,4,6,2,3     C,3,1,2,5,4,6     D,3,2,5,6,4,1

13. 下列代码中,可以用来交换两个变量值的有:

A、b=a+b; a=a+b; b=b-a;          B、a=a|b; b=b+a;a=b-a;

C、a=a-b; b=a+b; a=b-a;          D、a=a+b; b=a-b;a=b|a;  

14. 夜深人静,A和B两个同学闲来无聊,开始数星星。每人每次只能数k颗星星(20<=k<=30),数完最后一批星星的人获胜。A同学先数,判断当星星总数中为下列【】选项时,A必胜。

A、2013     B、2888   C、3935    D、4026     E、25051

三、填空与问答

15、已知一个整数数组A和数组长度为n, 设计一个简洁的程序(<20行代码)完成数组元素在原地倒序,比如输入时A为{1,2,3,4},则程序结束时A为{4,3,2,1}。要求:使用加减乘除赋值和逻辑控制语句,不得调用类库函数。

答:

void reverse(int * A, int n)

{

if(A!=NULL&&n>=0)

{

       int i=0;

       for(; i<n/2; i++)

       {

             int temp;

             temp = A[i];

             A[i] = A[n – 1 - i];

             A[n-1-i] = A[i];

}

return;

}

}

16. 有三道作业,他们提交时间和执行时间如下表(单位:分钟)。作业一旦执行便不会终止直到运行完成。

作业号

提交时间

执行时间

1

85

20

2

92

16

3

94

5

试计算在单道程序环境下,采用先来先服务调度算法和最短作业优先调度算法时的平均周转时间,以分钟为单位。周转时间=完成时间点-提交时间点。

答:

先来先服务:

作业号

提交时间点

执行时间

开始时间点

完成时间点

周转时间

1

85

20

 

 

 

2

92

16

 

 

 

3

94

5

 

 

 

平均周转时间:

最短作业优先:

作业号

提交时间点

执行时间

开始时间点

完成时间点

周转时间

1

85

20

 85

 105

 20

2

92

16

110 

 126

 34

3

94

5

 105

 110

 16







平均周转时间:20+34+16/3=23.3

17. 某工程师总结了一下近半年上班的苦逼经历,得出了一些苦逼的数据。他忘记设闹铃的概率是0.2;上班路上堵车的概率是0.5;他还记录了下面的一个表。

事件

迟到的概率

忘记设闹铃,堵车

1.0

忘记设闹铃,没堵车

0.9

设了闹铃,堵车

0.8

设了闹铃,没堵车

0.0

请计算他60个工作日内迟到天数的期望。

18、在某战场有n个战士,n>4,每个战士都知道一些不同的战报。他们期望通过一些双方交流(如:打电话)来共享战报,达到每个人都知道所有战报的效果。每次交流都能使双方得知对方知道的所有战报。请设计一个高效的算法来达到这个目标,并求出双方交流次数和最小值(不用写代码)。

19、房间里有N-1为群众和1位明星。每位群众都认识该明星,群众之间的认识状况未知, 而该明星却不认识任何一位群众。假设你是机器人,具有问一个人是否认识另一个人的功能,每次耗费时间O(1)。请设计一个最优算法在这N个人中找到该明星,并分析复杂度。(不用写代码,不分析复杂度不得分)

四、综合题

淘宝网某金冠卖家,在各城市共建有n个仓库,形成如图所示的一个环形。开始时,每个仓库的存货量不等。因为供销的需要,卖家想调整各仓库,使所有仓库的存货量都一样。请帮卖家设计一种算法,用最少的费用(即最小搬运量)到达他的目的。搬运货物时,只能在相邻的仓库间搬运。

(请用文字描述思路并编写程序)



资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 HttpServletRequestWrapper 是 Java Servlet API 中的一个工具类,位于 javax.servlet.http 包中,用于对 HttpServletRequest 对象进行封装,从而在 Web 应用中实现对 HTTP 请求的拦截、修改或增强等功能。通过继承该类并覆盖相关方法,开发者可以轻松地自定义请求处理逻辑,例如修改请求参数、添加请求头、记录日志等。 参数过滤:在请求到达处理器之前,可以对请求参数进行检查或修改,例如去除 URL 编码、过滤敏感信息或进行安全检查。 请求头操作:可以修改或添加请求头,比如设置自定义的 Content-Type 或添加认证信息。 请求属性扩展:在原始请求的基础上添加自定义属性,供后续处理使用。 日志记录:在处理请求前记录请求信息,如 URL、参数、请求头等,便于调试和监控。 跨域支持:通过添加 CORS 相关的响应头,允许来自不同源的请求。 HttpServletRequestWrapper 通过继承 HttpServletRequest 接口并重写其方法来实现功能。开发者可以在重写的方法中添加自定义逻辑,例如在获取参数时进行过滤,或在读取请求体时进行解密。当调用这些方法时,实际上是调用了包装器中的方法,从而实现了对原始请求的修改或增强。 以下是一个简单的示例,展示如何创建一个用于过滤请求参数的包装器: 在 doFilter 方法中,可以使用 CustomRequestWrapper 包装原始请求: 这样,每当调用 getParameterValues 方法时,都会先经过自定义的过滤逻辑。 HttpServletRequestWrapper 是 Java Web 开发中一个强大的工具,它提供了灵活的扩展性,允许开发者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值