阿里巴巴校招笔试(9月22号)题目_阿里校招笔试附加题
阿里巴巴校招笔试(9月22号)题目由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“阿里校招笔试附加题”。
1.现在计算机中整数采用的编码方式:
A.原码 B.反码 C.Unicode 码 D.补码
2.下面程序的运行结果:
#include
using namespace std;
void test(char c, char *d)
{
++c;
++*d;
cout
}
int main()
{
char a='A', b = 'a';
test(b, &a);
cout
return 0;
}
A....B....C.bBBa D....3.下面的说法那个正确:
#define NUMA 10000000
#define NUMB 1000
int a[NUMA], b[NUMB];
void pa()
{
int i, j;
for(i = 0;i
for(j = 0;j
}
void pb()
{
int i, j;
for(i = 0;i
for(j = 0;j
++b[j];
}
A.pa 和 pb 运行的一样快 B.pa 比 pb 快 C.pb 比 pa 快 D.无法判断
4.10 个小球中只有一个红球,现在有放回地抽取一个小球,问至到第 n 次才取到 k 个红球(k ≤ n)的概率是多少 ?
A.B.C.D.5.某指令流水线由 5 段组成,各段所需要的时间分别是:t、3t、t、2t 和 t。问如果连续执行 10 条指令,则吞吐率是多少 ?
A.0.1428/t B.0.2041/t C.0.2857/t D.0.3333/t
6.现有两道四个选项的火星文单选题,你已经至少答对一题了,那么你两题都对的概率是多少 ?
A.1/3 B.1/4 C.1/7 D.1/8
7.以下是一个 tree 的遍历算法,queue 是一个 FIFO 队列。参考下面的 tree,程序输出结果是神马。
queue.push(tree.root);
while(true){
node = queue.pop();
output(node.value);// 输出结点对应的数字
if(null = node)
break;
for(child_node in node.children){
queue.push(child_node);
}
}
______|______
||
___|______|___
||||
4567
A.1234567 B.1245367 C.1376254 D.13276
548.堆排序的时间复杂度是多少 ? 堆排序建堆的时间复杂度是多少 ?
A.O(n2)O(n logn)B.O(n)O(nlogn)C.O(nlogn)O(n)D.O(nlogn)O(nlogn)
9.字符串 “alibaba” 的二进制哈夫曼编码有多少位 ?
A.11 B.12 C.13 D.14
10.结点按中序遍历为 xyz 的二叉树有多少种可能 ?
A.1 B.2 C.3 D.4 E.5
11.500 张纸牌整齐排成一排,按顺序编号1、2、3、4、...、499、500,第一次拿走所有奇数位置上的纸牌,第二次再拿走剩下纸牌中的所有奇数位置上的纸牌,以此类推操作下去,问最后剩下的纸牌的编号是多少 ?
A.128 B.250 C.256 D.500
12.一直矩阵 Ak =(aij)rk × rk+1,k = 1, 2, 3, 4, 5, 6 ;r1 = 5,r2 = 10,r3 = 3,r4 = 8,r5 = 5,r6 = 20,r7 = 6,问矩阵链乘 A1 × A2 × A3 × A4 × A5 × A6 的最佳求积次数是多少 ?
A.2010 B.2100 C.2500 D.252
513.有多少个 2012 位的数,这些数的任意两个相邻数位依序构成的两位数均能被 17 或 23 整除 ?
A.3 B.5.C.7 D.9
14.关于 linux 的进程,下面说法不正确的是:
A.僵尸进程会被 init 进程接管,不会造成资源浪费;
B.孤儿进程的父进程在它之前退出,会被 init 进程接管,不会造成资源浪费;
C.进程是资源管理的最小单位,而线程是程序执行的最小单位。Linux 下的线程本质上用进程实现;
D.子进程如果对资源只是进行读操作,那么完全和父进程共享物理地址空间。
15.一个数据表有 10000 个元素,如果仅要求求出其中最大的 10 个元素,采用什么算法比较节省时间 ?
A.堆排序 B.希尔排序 C.快速排序 D.直接选择排序
16.一棵二叉树具有 8 个度为 2 的结点,5 个度为 1 的结点,则度为 0 的结点个数有多少个 ?
A....B.9 C.11.D.不确定
17.被除数是二进制数 110110,除数是二进制数 111,则余数是多少 ?
A....B.101 C.110 D....18.对于下面的问题,不能使用栈 stack 来解决的是 ?
A.数学表达式转换为后缀形式
B.实现递归算法
C.编程语言的递归调用
D.操作系统分配资源(如 CPU)
19.甲盒中有 200 个螺杆,其中有 160 个 A 型螺杆;乙盒中有 240 个螺母,其中有 180 个 A 型的。现从甲乙两盒中各任取一个,则能配成 A 型螺栓的概率为多少?
A.1/20 B.15/16 C.3/5 D.19/20
20.有 A 和 B 两路公交车,平均发车时间间隔为 5 分钟和 10 分钟。某乘客在站点 S 可以任意选择两者之一乘坐,假定 A 和 B 到达 S 的时刻无法确定,那么该乘客的平均等待时间是多少 ?
A 1 分钟 20 秒 B.1 分钟 40 秒 C.2 分钟 30 秒 D.3 分钟 20 秒
21.下面不是引起进程调度原因的是 ?
A.进程执行完毕 B.进程 I/O 请求队列 C.进程死循环 D.进程调用阻塞原语进入睡眠状态
22.用于解决 CPU 指令乱序、编译器重排、多 CPU 内存同步等带来的问题的机制是 ?
A.内存屏障 B.信号量 C.自旋锁 D.volatile 关键字
23.下面使用贪心算法的是:
A.单元最短路径 Dijkstra 算法
B.最小生成树 Prim 算法
C.最小生成树 Kruskal 算法
D.计算每对顶点最短路径的 Floyd-Warshall 算法
E.字符串匹配中的 KMP 算法
24.关于 ACID 说法正确的是:
A.A 可用性。....B.C 一致性。在食物开始之前和结束后,数据库的约束保持不变。
C.I 隔离性。两个同时运行的事务的执行是互不影响,中间结果不可交叉访问。
D.D 持久性。在事务提交之后,该事务所作的更改持久保存在存储介质之中,不会被回滚。
25.现有一个循环队列,其队头指针为 front,队尾指针为 rear,循环队列的总长度为 N,问队内有效长度是多少 ?
26.一个数组 X,其中存有 N 个数字。现只允许遍历一遍,1)有没有可能计算这些数字的方差 ? 2)如果可以,请描述方案,如果不可以,说明原因。
27.不使用临时变量交换 int a 和 int b 的值;请使用三行代码。
28.下面的代码有一些问题,找出来:
#include
using namespace std;
cla Test{
public:
int *p;
Test(int v){
p = new int(v);
}
~Test(){
delete p;
}
void PrintValue(){
cout
}
};
void Func(Test t)
{
cout
}
int main()
{
Test t1 = 33;
Func(t1);
t1.PrintValue();
}
29.Linux 平台,不提供任何相关库函数和工具包,只利用线程的随机调度特性和 sleep 函数的低精度特性,请编写一段程序实现:给一组字符,输出该组字符的一个随机化排列。