阿里巴巴实习笔试

时间:2022-07-03 05:49:55 笔试 我要投稿
  • 相关推荐

2015阿里巴巴实习笔试

1、设栈S初始状态为空。元素a,b,c,d,e,f依次通过栈S,若出栈的顺序为c,f,e,d,b,a,则栈S的容量至少应该为______ 。

2015阿里巴巴实习笔试

3

4

5

6

2、10个相同的糖果,分给三个人,每个人至少要得一个。有 种不同分法。

33

34

35

36

3、小数值1.5625的二进制表示是____。

101.1001

0.001

101.111

1.1001

4、某二叉树的先序遍历是12453,中序遍历是42513,那么其后续遍历是______。

45231

42351

12345

54321

5、主机甲和主机乙间已建立一个TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,第一个段的序列号为200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是 。

500

700

800

1000

6、在N个乱序数字中查找第k大的数字,时间复杂度可以减小至 。

O(N*logN)

O(N)

O(1)

O(N^2)

7、平均速度最快的排序算法是______。

Shell排序

快速排序

冒泡排序

插入排序

8、以下指令集架构属于复杂指令集架构的是____。

ARM

MIPS

SPARC

以上皆不是

9、有两个N*N的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该如何存储(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)

A按行存,B按行存。

A按行存,B按列存。

A按列存,B按行存。

A按列存,B按列存。

10、设一棵二叉树中有3个叶子节点,有8个度为1的节点,则该二叉树中总的节点数为______。

12

13

14

15

11、IP数据报头采用______字节序,在此字节序下从低地址到高地址0×1234的表示形式为______。

big_endian, 0×12 0×34 0 0

little_endian,0×34 0×12 0 0

big_endian, 0 0 0×12 0×34

little_endian,0 0 0×34 0×12

12、下列叙述中正确的是____。

循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

循环队列中元素的个数是由队头指针和队尾指针共同决定

13、将一个从大到小的数组,用以下排序方法排序成从小到大的,______最快。

插入排序

冒泡排序

快速排序

堆排序

14、在一个元素个数为N的数组里,找到升序排在N/5位置的元素的最优算法时间复杂度是______。

O(n)

O(n log n)

O(n(log n)2)

O(n 3/2)

15、 已有变量定义和函数调用语句;编程-代码

int a=25;

print_value(&a);

则下面函数的正确输出结果是______。

void print_value(int* x)

{

printf(“%x ”,++*x);

}

25

26

19

1a

16、在二进制数据中,小数点向右移一位,则数据______。

除以10

除以2

乘以2

乘以10

17、设集合A={1,2,3},A上的关系R={(1,1),(2,2),(2,3),(3,2),(3,3)},则R不具备 。

自反性

传递性

对称性

反对称性

18、下列叙述中正确的是 。

循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

循环队列中元素的个数是由队头指针和队尾指针共同决定

19、假定x=500,求下面函数的返回值______ 。

int fun(int x)

{

int countx = 0;

while (x)

{

countx++;

x = x & (x 1);

}

return countx;

2

3

5

6

20、有一台带一个千兆网卡的服务器A,会把接收到的消息转发给另外两台带一个千兆网卡的服务器B和C,B和C上面的一个服务进程处理一条10K字节的消息需要2毫秒。如果在B和C上面各跑80个服务进程,在不考虑CPU负载和进程切换、内存占用、传输损耗和交互损耗的情况下,B和C服务器每秒一共大约可以处理______条10K字节的消息。

50000

60000

70000

80000

21、以下措施中,有可能改进分布式系统读写(IO)性能的有____。

网络从千兆网升级为万兆网

优化调度系统,尽量做到任务与数据相近(Locality)

数据预取机制

实现异步读写机制

22、无锁化编程有哪些常见方法?______ 。

针对计数器,可以使用原子加

只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(Ring Buffer)

RCU(Read-Copy-Update),新旧副本切换机制,对于旧副本可以采用延迟释放的做法

CAS(Compare-and-Swap),如无锁栈,无锁队列等待

23、程序

struct T {

char a;

int *d;

int b;

int c:16;

double e;

};

T *p;

在64位系统上以下描述正确的是 。

sizeof(p) == 8

sizeof(*p) == 32

sizeof(p->a) == 1

sizeof(p->e) == 4

24、下面所述步骤中,是创建进程所必须的步骤是_____。

由调度程序为进程分配CPU

建立一个进程控制块

为进程分配内存

为进程分配文件描述符

25、有一种用左右值表示树形结构的存储格式,其中左右值有一些相当有用的场景,但是每个节点的左右值需要遍历树形结构计算出来。一个示例:

N[1,12]

|__N[2,7]

| |__N[3,4]

| |__N[5,6]

|__N[8,11]

|__N[9,10]

请完成遍历算法给节点赋左右值。

typedef struct node_t {

int left;

int right;

int n_children;

1 children;

} NODE;

int visit(NODE * node, int value) {

node->left = value;

int i = 0;

for(i=0; in_children; i++) {

2

}

3

return value;

}

int initLR(NODE* root) {

return visit(root, 1);

}

26、我们需要在淘宝的商品中提取一批优质商品(有特色、质量好、服务好等),比如需要提取100万件,准确率要求是95%。我们有n个不同的方法可以提取这些商品,但每个方法在保持准确率满足要求的情况下都不能做到提取完整的100万件商品。因此可以把这n个方法得到的满足要求的商品集按如下方法合并起来:如果一个商品被k个方法选为优质商品,则将它的分数设为k;按照k从大到小排序选取前100万件。但实际中发现这样选出的100万件商品不符合精度要求,请解释可能的原因。还可以向哪个方向努力?

27、有个学校的15个女生一直3个一群上学。请问该如何安排才能使这些女生每周7天每天都和两个不同的同伴结伴同行呢?例如:用A到O来标识这些女孩,7天A正好和B到O这14个女孩各同行一次。而B到O每个人和都和其他14个女孩各同行一次。

28、长度为100的环形双向链表,A指针顺时针方向每次走3步,B指针逆时针方向每次走5步,每次走完判断是否相遇,初始状态B在A逆时针方向相距20,走100次,AB指针能相遇几次?

29、某招聘笔试共有120人参加,考试有6道题。1-6道分别有86人,88人,92人,76人,72人和70人答对,如果答对3道或3道以上通过笔试,问至少有多少人通过?

30、Wait()和sleep()的区别