返回顶部

阿里巴巴校园招聘笔试试题软件研发工程师答案

[复制链接]
AkraborvapLv.8 显示全部楼层 发表于 2022-10-18 16:02:50 |阅读模式 打印 上一主题 下一主题
阿里巴巴校园招聘笔试试题软件研发工程师答案.doc (8.33 KB, 下载次数: 0, 售价: 1 威望)
阿里巴巴2014秋季校园招聘-软件研发工程师笔试题
1. 单选题
1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数
A: h(K)=K/N;
B: h(K)=1;
C: h(K)=K mod N;
D: h(K)=(K+rand(N)) mod N, rand(N)返回0到N-1的整数
答案:D
2. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是:
A: 堆排序B:插入排序
C: 冒泡排序D:快速排序
答案:A(插入排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O (n^2)
冒泡排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)
快速排序:最优时间复杂度O(nlogn)最差时间复杂度O(n^2)平均时间复杂度O(nlogn)
堆排序:最优时间复杂度O(nlogn)最差时间复杂度O(nlogn)平均时间复杂度O(nlogn))
3. 下面说法错误的是:
A: CISC计算机比RISC计算机指令多
B: 在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增加寻址空间
C:增加流水线段数理论上可以提高CPU频率
D:冯诺依曼体系结构的主要特征是存储程序的工作方式
答案:B
4. 不属于冯诺依曼体系结构必要组成部分是:
A:CPU B: Cache C:RAM D:ROM
答案:B
5. 一个栈的入栈序列式ABCDE则不可能的出栈序列是:
A:DECBA B:DCEBA C:ECDBA D:ABCDE
答案:C
6.你认为可以完成编写一个C语言编译器的语言是:
A:汇编B:C语言C:VB D:以上全可以
答案:D
7. 关于C++/JAVA类中的static成员和对象成员的说法正确的是:
A:static成员变量在对象构造时候生成
B: static成员函数在对象成员函数中无法调用
C: 虚成员函数不可能是static成员函数
D: static成员函数不能访问static成员变量
答案:A
8:
答案:C
9:某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将:A: 从就绪变为运行B:从运行变为就绪
C: 从运行变为阻塞D:从阻塞变为就绪
答案:C
10:下面算法的时间复杂度为:
Int f(unsigned int n)
{
If(n==0||n==1)
Return 1;
Else
Return n*f(n-1);
}
A: O(1) B:O(n) C:O(N*N) D:O(n!)
答案:B
11: n从1开始,每个操作可以选择对n加1或者对n加倍。若想获得整数2013,最少需要多少个操作。
A:18 B:24 C:21 D;不可能
答案:A,对2013用除法,显示
2013->2012->1006->503->502->251->250->125->124->62->31->30->15->14->7->6->3-> 2->1
正向只能是+1和×2,所以逆向只能-1和/2,由上过程可得18次
12:对于一个具有n个顶点的无向图,若采用邻接表数据结构表示,则存放表头节点的数组大小为:
A: n B: n+1 C: n-1 D:n+边数
答案:A
13:
答案:A.对于几何中的每个字符串取hash可以看作是同分布的独立重复事件,所以每一个事件出现10的概率都是p=1/1024,那么当出现的时候,期望的次数就是1/p,1024.
14:如下函数,在32bit系统foo(2^31-3)的值是:
Int foo(int x)
{
Return x&-x;
}
A:0 B: 1 C:2 D:4
答案:B
15:对于顺序存储的线性数组,访问节点和增加节点删除节点的时间复杂度为:A: O(n),O(n)B:O(n),O(1) C:O(1),O(n) D:O(n),O(n)
答案:C
16:在32为系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是:
Struct A
{
Int a;
short b;
int c;
char d;
};
Struct B
{
int a;
short b;
char c;
int c;
A: 16,16 B:13,12 C:16,12D:11,16
答案:C
17:袋中有红球,黄球,白球各一个,每次任意取一个放回,如此连续3次,则下列事件中概率是8/9的是:
A: 颜色不全相同B:颜色全不相同C:颜色全相同D:颜色无红色
答案:A
18:一个洗牌程序的功能是将n张牌的顺序打乱,以下关于洗牌程序的功能定义说法最恰当的是:
A: 每张牌出现在n个位置上的概率相等
B: 每张牌出现在n个位置上的概率独立
C: 任何连续位置上的两张牌的内容独立
D: n张牌的任何两个不同排列出现的概率相等
答案:A
19:用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:
A: 10 B:11 C:14: D:15
答案:C
解释:应该有14种方案,设只有黑白两色,默认白色,那么,用p(n)表示有n个黑棋的种类
p(0)=p(6)=1
p(1)=p(5)=1
p(2)=p(4)=3 //相邻的一种,隔一个的一种,两个的一种
p(3)=4 //都相邻的一种,BB0B的一种,BB00B的一种,B0B0B的一种,一共4种
综上是14种
20:递归式的先序遍历一个n节点,深度为d的二叉树,则需要栈空间的大小为:
A: O(n) B:O(d) C:O(logn) D:(nlogn)
答案:B
第二部分:多选
21:两个线程运行在双核机器上,每个线程主线程如下,线程1:x=1;r1=y;线程2:y=1;r2=x; X和y是全局变量,初始为0。以下哪一个是r1和r2的可能值:
A: r1=1,r2=1
B: r1=1,r2=0
C:r1=0,r2=0
D:r1=0,r2=1
答案:ABD
22.关于Linux系统的负载,以下表述正确的是:
A: 通过就绪和运行的进程数来反映
B: 通过TOP命令查看
C: 通过uptime查看
D: Load:2.5,1.3,1.1表示系统的负载压力在逐渐变小
答案:BC(对于A不确定)
23:关于排序算法的以下说法,错误的是:
A: 快速排序的平均时间复杂度O(nlogn),最坏O(N^2)
B:堆排序平均时间复杂度O(nlogn),最坏O(nlogn)
C:冒泡排序平均时间复杂度O(n^2),最坏O(n^2)
D:归并排序的平均时间复杂度O(nlogn),最坏O(n^2)
答案:D
解释:归并排序的平均时间复杂度O(nlogn),最坏O(nlogn)
24:假设函数rand_k会随机返回一个【1,k】之间的随机数(k>=2),并且每个证书出现的概率相等。目前有rand_7,通过调用rand_7()和四则运算符,并适当增加逻辑判断和循环控制逻辑,下列函数可以实现的有:
A:rand_3 B:rand_21 C:rand_23 D:rand_49
答案:ABCD
解释:对于rand_x(xnext;
17}
18return num;
19}
20// 如果找到了则返回指针指向公共节点
21// 如果不存在则返回空指针
22node * findFirstCommenNode(node * pheada, node * pheadb) 23{
24size_t lenA = listLen(pheada);
25size_t lenB = listLen(pheadb);
26
27node * plistA = pheada;
28node * plistB = pheadb;
29//调整长度
30//plistA 指向较长的一个
31if (lenA < lenB)
32{
33plistB = pheada;
34plistA = pheadb;
35size_t t = lenA;
36lenA = lenB;
37lenB = t;
38}
39while(lenA > lenB)
40{
41plistA = plistA->next;
42--lenA;
43}
44//一样长了
45//寻找公共节点
46while (plistA!=NULL && plistA != plistB)
47{
48plistA = plistA->next;
49plistB = plistB->next;
50}
51return plistA;
52}
算法的空间复杂度O(1),时间复杂度O(m+n)。
28、当存储数据量超出单节点数据管理能力的时候,可以采用的办法有数据库sharding的解决方案,也就是按照一定的规律把数据分散存储在多个数据管理节点N中(节点编号为0,1,2,,,,N-1)。假设存储的数据时a 请完成为数据a计算存储节点的程序。
[html]view plaincopyprint?
53#define N 5
54int hash(int element){
55return element*2654435761;
56}
57int shardingIndex(int a){
58int p = hash(a);
59_________________________; //这里是空格
60return p;
61}
答案:p%=N
29、宿舍内5个同学一起玩对战游戏。每场比赛有一些人作为红方,另一些人作为蓝方。请问至少需要多少场比赛,才能使任意两个人之间有一场红方对蓝方和蓝方对红方的比赛?
答案:4场,分别是AB-CDE、ACD-BE、BCE-AD、DE-ABC

备注说明,非正文,实际使用可删除如下部分。本内容仅给予阅读编辑指点:
1、本文件由微软OFFICE办公软件编辑而成,同时支持WPS。
2、文件可重新编辑整理。
3、建议结合本公司和个人的实际情况进行修正编辑。
4、因编辑原因,部分文件文字有些微错误的,请自行修正,并不影响本文阅读。
Note: it is not the text. The following parts can be deleted for actual use. This content only gives reading and editing instructions:
1. This document is edited by Microsoft office office software and supports WPS.
2. The files can be edited and reorganized.
3. It is suggested to revise and edit according to the actual situation of the company and individuals.
4. Due to editing reasons, some minor errors in the text of some documents should be corrected by yourself, which does not affect the reading of this article.




上一篇:博思软件开发工程师笔试题目
下一篇:阿里巴巴2018校园招聘笔试试题-软件研发工程师+答案
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

雅宝知识库(yabaojy.com)--是一个聚焦知识付费的平台,包括在线教育、文档下载、作业答案、网课答案、考试资料、形考任务答案、行业资料、毕业论文、同时还包括问答平台、资料文库、课件下载等,是一个综合在线学习知识分享交流平台。
  • 企业微信

  • 官方微信

  • 商务合作