阿里巴巴2017实习生笔试题
Posted 虫儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里巴巴2017实习生笔试题相关的知识,希望对你有一定的参考价值。
共享
装载速度快
开发模式好
减少页面交换
解析:
1 静态链接库的优点
(1) 代码装载速度快,执行速度略比动态链接库快;
(2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。
2 动态链接库的优点
(1) 更加节省内存并减少页面交换;
(2) DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;
(3) 不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数;
(4)适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。
3 不足之处
(1) 使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费;
(2) 使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息。而使用运行时动态链接,系统不会终止,但由于DLL中的导出函数不可用,程序会加载失败;速度比静态链接慢。当某个模块更新后,如果新模块与旧的模块不兼容,那么那些需要该模块才能运行的软件,统统撕掉。这在早期Windows中很常见。
O(n)
O(nlogn)
O(logn)
O(mlogn)
O(nlogm)
O(mn)
解析:
3 工程师M发明了一种游戏:M将一个小球随机放入完全相同的三个盒子中的某一个,玩家选中装有球的盒子即获胜;开始时M会让玩家选择一个盒子(选择任何一个获胜概率均为1/3);玩家做出选择后,M会打开没有被选择的两个盒子中的一个空盒,此时M会询问玩家是否更改选择(可以坚持第一次选择,也可以选择另一个没有打开的盒子),下列叙述正确的有()。
正确答案: E 你的答案: E (正确)
改选后,玩家获胜的概率还是1/3
若不改选,玩家的获胜概率是1/2
无论怎么选择,获胜的概率都是1/2
坚持原来的选择获胜概率更高
选择另一个没有被打开的盒子获胜概率更高
获胜概率取决于随机因素(如小球的实际位置)
解析:
4
中断控制方式
DMA方式
通道方式
程序直接访问方式
循环检查I/O方式
以上访问方式都一样
解析:
5
正确答案: A 你的答案: A (正确)
1 4
1 3
4 1
3 1
4 4
1 1
解析:大端从大地址开始存储,小端相反,两者都是从数据低位开始存起;
假设从上至下地址递增,则
PowerPC(大): Intel X86(小):
04 01 低
03 02 |
02 03 |
01 04 高
a+3指向最大的地址,所以分别为1 4
6
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#pragma pack(2) class BU { int number; union UBffer { char buffer[13]; int number; }ubuf; void foo(){} typedef char *(*f)( void *); enum {hdd,ssd,blueray}disk; }bu; |
20
21
22
23
24
非以上选项
解析:
信号
堆
文件描述符
进程组id
代码段
栈空间
解析:
线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。
理解这个现象的两个基本概念是:在一个进程的线程共享堆区,而进程中的线程各自维持自己堆栈。
Symbian 的线程一般使用独立的堆空间。这样每个线程可以直接在自己的堆里分配和释放,可以减少同步所引入的开销。当线程退出的时候,系统直接回收线程的堆空间,线程内没有释放的内存空间也不会造成进程内的内存泄漏。
但是两个线程使用共用堆的时候,就必须用 critical section 或者 mutex 进行同步保护。否则程序崩溃时早晚的事。如果你的线程需要在共用堆上无规则的分配和释放任何数量和类型的对象,可以定制一个自己的 allcator,在 allocator 内部使用同步保护。线程直接使用这个 allocator 分配内存就可以了。这相当于实现自己的 malloc,free。但是更建议你重新审查一下自己的系统,因为这种情况大多数是不必要的。经过良好的设计,线程的本地堆应该能够满足大多数对象的需求。如果有某一类对象需要在共享堆上创建和共享,这种需求是比较合理的,可以在这个类的 new 和 delete 上实现共享保护。
8
VLAN是由局域网网段构成的与物理位置无关的逻辑组
利用以太网交换机可以很方便地实现VLAN
每一个VLAN的工作站可处在不同的局域网中
不同VLAN内的用户可以相互之间直接通信
vLAN可以强化网络安全和网络管理
VLAN能灵活控制广播活动
解析:
int * pint = 0; pint += 6; cout << pint << endl; |
12
72
24
0
6
任意数
解析:第一句的意思是将指针指向0处,指针加6,一个整型指针加1代表4个字节,即程序执行完后,指针应该指在24的位置。
11
(11 5 7 2 3 17)
(11 5 7 2 13 3)
(17 11 7 2 3 5)
(17 11 7 5 3 2)
(17 7 11 3 5 2)
(17 7 11 3 2 5)
解析:
以上是关于阿里巴巴2017实习生笔试题的主要内容,如果未能解决你的问题,请参考以下文章