阿里巴巴实习生笔试题含答案
阿里巴巴考试题及答案
阿里巴巴考试题及答案
一、选择题(每题2分,共20分)
1. 阿里巴巴集团成立于哪一年?
A. 1998年
B. 1999年
C. 2000年
D. 2001年
答案:B
2. 阿里巴巴集团的使命是什么?
A. 让天下没有难做的生意
B. 创造更多就业机会
C. 推动全球贸易自由化
D. 促进可持续发展
答案:A
3. 以下哪个不是阿里巴巴集团的业务板块?
A. 淘宝
B. 京东
C. 阿里云
D. 蚂蚁金服
答案:B
4. 阿里巴巴集团的核心价值观是什么?
A. 客户第一
B. 创新
C. 团队合作
D. 所有选项都是
答案:D
5. 阿里巴巴集团的总部设在哪个国家?
A. 中国
B. 美国
C. 日本
D. 印度
答案:A
6. 阿里巴巴集团的创始人是谁?
A. 马云
B. 马化腾
C. 李彦宏
D. 张朝阳
答案:A
7. 阿里巴巴集团的口号是什么?
A. 让天下没有难做的生意
B. 创新驱动发展
C. 合作共赢
D. 拥抱变化
答案:A
8. 阿里巴巴集团的业务覆盖哪些领域?
A. 电子商务
B. 云计算
C. 金融服务
D. 所有选项都是
答案:D
9. 阿里巴巴集团的国际版淘宝是什么?
A. 淘宝
B. 天猫
C. AliExpress
D. 京东国际
答案:C
10. 阿里巴巴集团的企业文化中,哪一项是其核心价值观之一?
A. 诚信
B. 创新
C. 客户第一
D. 团队合作
答案:C
二、简答题(每题5分,共10分)
1. 简述阿里巴巴集团的发展历程。
答案:阿里巴巴集团成立于1999年,由马云和他的18位合伙人共
同创立。起初是一个B2B电子商务平台,后来逐渐扩展到B2C、C2C、
云计算、金融服务等多个领域。阿里巴巴集团通过不断的创新和拓展,已经成为全球领先的电子商务和科技公司。
阿里巴巴校园招聘测试笔试题总结
选择题(每题5分)
1。某校园网用户无法访问外部站点210。102。58。74,管理人员在windows 操作系统下可以使用( )判断故障发生在校园网内还是校园网外.
A. ping 210.102.58.74 B。 tracert 210.102.58。74
C. netstat 210。102.58。74
D. arp 210.102.58.74
2。在C++语言中,若类C中定义了一个方法int f(int a,int b),那么方法()不能与该方法同时存在于类C中。
A.int f(int x,int y) B.int f(float a,int b)
C.float f(int x,float y) D.int f(int x,float y)
3. 两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小
组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是()个。
A.25 B.30 C.50D.60
答案1:
(25+30—15)/(80%)=50
先算出两组发现的bug总数,再根据测试的2/8定律(即测试只能查到系统中80%的错误)结果当然是50了
答案2:
设错误总数为X,那么甲发现错误的概率P(甲)为 25 / X,乙发现错误的概率P(乙)为 30 / X ,甲乙同时发现错误的概率P(同)为 15 / X .
因为 P(甲)*P(乙)=P(同) ,所以(25 / X)*(30 / X) = 15 / X
计算而得X=50
4。对于软件的β测试,下列描述正确的是().
阿里-暑期实习生蚂蚁笔试题
阿⾥-暑期实习⽣蚂蚁笔试题
1的个数
16进制,转成⼆进制后,1的个数
输⼊
0x6f
输出
6
⽐较暴⼒的⼀种做法
1 dict1 = {'0':0, '1':1, '2':1,'3':2,'4':1,'5':2, '6':2,'7':3,'8':1,'9':2,
2'a':2, 'b':3, 'c':2, 'd':3, 'e':3, 'f':4}
3
4if__name__=="__main__":
5 str1 = input().strip()
6 ans = 0
7for i in str1[2:]:
8 ans +=dict1[i]
9print(ans)
8*8棋盘,每个棋盘的颜⾊∈[r,g,b],每次选⼀个位置(x,y),与(x,y) 相同颜⾊会被消除,消除后,有填充op操作,分别为w,a,s,b代表up,left,down,right。
填充的内容是后台固定的(充钱才能过的游戏都是耍流氓)。up和down填补顺序是第⼀列,第⼆列等;left和right填补是第⼀⾏,第⼆⾏等。她想知道每次操作后消除多少个⽅格。
输⼊n,表⽰操作次数;接下来8⾏代表初始棋盘,后⾯8⾏(长为8*n)代表待填补字符串。
输⼊
2
rbbbrrrb
ggggbrbr
rrrggbrr
gbrgbrrr
bgbgrrrg
bgbgbrrb
rggrgggg
bgbrgrgr
bbrgggggbbgbbbrg
bbgbrgbgbbgbbbrg
brgbgbbggbbgbbbr
gbbgbbbrggrbbgrb
bgrbbrgggrbrgbrr
brbbrbbbrbrrggrg
最新阿里巴巴实习生笔试题(含答案)
答案:D
内联函数:
Tip:只有当函数只有10 行甚至更少时才将其定义为内联函数.
定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用.
优点: 当函数体比较小的时候, 内联该函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联.
缺点: 滥用内联将导致程序变慢. 内联可能使目标代码量或增或减, 这取决于内联函数的大小. 内联非常短小的存取函数通常会减少代码大小, 但内联一个相当大的函数将戏剧性的增加代码大小. 现代处理器由于更好的利用了指令缓存, 小巧的代码往往执行更快。
结论: 一个较为合理的经验准则是, 不要内联超过10 行的函数. 谨慎对待析构函数, 析构函数往往比其表面看起来要更长, 因为有隐含的成员和基类析构函数被调用!
另一个实用的经验准则: 内联那些包含循环或switch 语句的函数常常是得不偿失(除非在大多数情况下, 这些循环或switch 语句从不被执行).
注意:有些函数即使声明为内联的也不一定会被编译器内联, 这点很重要; 比如虚函数和递归函数就不会被正常内联. 通常, 递归函数不应该声明成内联函数.(递归调用堆栈的展开并不像循环那么简单, 比如递归层数在编译时可能是未知的, 大多数编译器都不支持内联递归函数). 虚函数内联的主要原因则是想把它的函数体放在类定义内, 为了图个方便, 抑或是当作文档描述其行为, 比如精短的存取函数.
-inl.h文件:
Tip:复杂的内联函数的定义, 应放在后缀名为-inl.h 的头文件中.
阿里巴巴笔试题及答案
阿里巴巴笔试题及答案
篇一:阿里巴巴oracle-dba 笔试题及答案】
txt>1: 列举几种表连接方式
hash join/merge join/nest loop(cluster join)/index join
2: 不借助第三方工具,怎样查看sql 的执行计划
set autot on
explain plan set statement_id = item_id for sql;
select * from table(dbms_xplan.display);
在optimizer_mode=choose 时, 如果表有统计信息(分区表外) ,
优化器将选择cbo, 否则选rbo 。
rbo 遵循简单的分级方法学, 使用15 种级别要点,当接收到查询,优化器将评估使用到的要点数目,
然后选择最佳级别(最少的数量)的执行路径来运行查询。
cbo 尝试找到最低成本的访问数据的方法, 为了最大的吞吐量或最快
的初始响应时间,计算使用不同的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。4: 如何定位重要(消耗资源多)的sql select sql_text
from v$sql
where disk_reads 1000 or (executions 0 and buffer_gets/executions 30000); 5: 如何跟踪某个session 的sql exec
dbms_system.set_sql_trace_in_session(sid,serial#,sql_trace); select
阿里巴巴笔试题练习题笔试题目及答案
阿里巴巴笔试题练习题
阿里巴巴笔试题练习题
想要进入阿里巴巴的朋友,你们做过他们公司的笔试题目吗?下面是YJBYS小编整理的阿里巴巴笔试题练习题,欢迎大家阅读!
阿里巴巴笔试题练习题【1】
1.下面哪一个不是动态链接库的优点?
A.共享
B.装载速度快
C.开发模式好
D.减少页面交换
2.n个数值选出最大m个数(3
A.O(n)
B.O(nlogn)
C.O(logn)
D.O(mlogn)
E.O(nlogm)
F.O(mn)
3.由权值分别为1、12、13、4、8的叶子节点生成一颗哈夫曼树,它的带权路径长度为()
A.12
B.68
C.43
D.6
E.25
F.81
4.阿里巴巴国际站的股票代码是1688,这个数字具有这样的特性,首先是个首位为1的4位数,其次恰巧有且仅有1个数字出现了两次。类似的数字还有:1861,1668等。这样的数字一共有()个。
A.144
B.180
C.216
D.270
E.288
F.432
5.工程师M发明了一种游戏:M将一个小球随机放入完全相同的三个盒子中的某一个,玩家选中装有球的盒子即获胜;开始时M会让玩家选择一个盒子(选择任何一个获胜概率均为1/3);玩家做出选择后,M会打开没有被选择的两个盒子中的一个空盒,此时M会询问玩家是否更改选择(可以坚持第一次选择,也可以选择另一个没有打开的盒子),下列叙述正确的有()。
A.改选后,玩家获胜的概率还是1/3
B.若不改选,玩家的获胜概率是1/2
C.无论怎么选择,获胜的概率都是1/2
D.坚持原来的选择获胜概率更高
E.选择另一个没有被打开的盒子获胜概率更高
阿里笔试题
阿里笔试题
第一部分单选題(前10题,每题2分;后10迄八:◎‘
‘0分.选对得满分•选错倒扣1分,不选得0分・),r, 次内疗访皿SF)甌%
力]和SATA祕盘勿机访何/川H J分山丿心儿加少•儿空机儿| *秒B.几微秒•儿「微抄•儿I矗秒
」I)、儿!7・丨克秒• I儿;®
转化成7泄制数是
Ik 346 C\ 338 D. 336
MJ如的1P地址空间为]92」68.5.0/24•采用定长子网划分.了网掩码%
255.255.255.248.则该网冷的蔽大(网个数、毎个于网内的录大可分配地址
个敢为各为•
C\ 8. 32
I)、S.
30
以卜关「経式存備结构说払曲戻的足—八・g 0〃緒第构
的存储密度小
B勿彳汀八乱山敌抑;域和拒£|城级成(的k A川Ml
丈〃储比顺庁存储快
P烬旳I何临的跟协T I町能郴邻
J 忖I //出勺Arint <>[卄[4]{{仁
们,{八“引,「・」•儿2
~ a/l 1/21 的他为.
&依、t读入数据元L
'■叭c\冋・山
B「、^77^;
c、仃向图和无向图都可以进行逊
D、图的遍历并法町以执fj 4仃同
路的图t
10・<\ 16仆机器上跑卜列loo函数的结果足 voi^TUUf )
int i = 65536;
cout << i <<*#*;
1 « 65535;
cout << 1;
\・・1.65535 B.
o.655'>
1).()
・」
A. 32. 6
讪和丿哎阿勿丿J操仆列心{\
c・h・“:Dw
|c.d.b.c.f.a.g}
(以下毎题3分)
11 •有一段年代久远的C 卄代码.内部疋紺垓朵.现白需要利用其实现-个亲
阿里巴巴校园招聘笔试题目分享
阿里巴巴校园招聘笔试题目分享
导读:时间为2014年8月29日,均为网上答题。第一部分为单选题,共20题,要在40分钟内完成。每个人的选择题都不一样,应该是后台有题库,每个人的试卷都是随机生成的。第二部分为附加题,一般为1道问答题,2道编程题。以下是由应届毕业生网小编j.l为您整理推荐的阿里巴巴校园招聘笔试题目分享,欢迎参考阅读。
通过算法生成的随机数是“伪随机”的,也就是说,在设定好第一个数之后,后面的数字的序列是确定的,并且经过一个非常大的循环会回到第一个数的状态,然后周而复始。显然,摇号、抽奖的程序是不能通过伪随机数来实现的。现实中常常基于某种热噪声来实现真正的随机数。假定某热噪声是标准正态分布,那么能否将它转换成(0,1)区间上的均匀分布______?
忽略测量和计算误差,可以转换为(0,1)区间上的均匀分布。
无法转换为(0,1)区间上的均匀分布。
信息不足,无法判断。
借助伪随机数生成算法可以转换为(0,1)区间上的均匀分布。
仅仅靠伪随机数生成算法,就可以生成(0,1)区间上的均匀分布
以上说法都不对。
在一个童话世界里,任意两个人之间要么是朋友关系,要么是敌人关系,不存在其他关系及没有关系的情况。并且,如果a和b是朋友关系,b和c是朋友关系,那么a和c必然是朋友关系。那么关于这个童话世界中的人群的说法错误的是:______?
可能只有1个人群,这个人群内部是朋友关系。
可能有2个人群,人群内部是朋友关系,人群之间是敌人关系。
可能有3个及以上个人群,人群内部是朋友关系,人群之间是敌人关系。
阿里巴巴校招笔试题
阿里巴巴校招笔试题
一、论述题
(1)至今为止你认为对你影响最大的一本书是什么?
(2)你认为应聘的该职位能为你带来什么?
(3)你最常登录的三个会员制网站是什么?有什么特色?
二、简答题
(1)请预测淘宝一天交易额有多少,并说明理由。
(2)预测FACEBOOK全球手机用户
(3)阿里巴巴的搜索引擎和谷歌的搜索引擎的异同点。
三、综合体
给出了淘宝网上10件商品进行排序,并说明理由
阿里巴巴集团校园招聘笔试题
阿里巴巴集团校园招聘笔试题
阿里巴巴集团校园招聘笔试题
第一部分单选题(前10题,每题2分;后10题,每题3分。选对得满分,选错倒扣1分,不选得0分)
1、一次内存访问,SSD硬盘访问和SATA硬盘随机访问的时间分别是()
A、几微秒,几毫秒,几十毫秒
B、几十纳秒,几十微秒,几十毫秒
C、几十纳秒,几十微秒,几十毫秒
D、几微秒,几十微秒,几十毫秒
2、8进制数256,转化成7进制数是(B)
A、356
B、336
C、338
D、346
3、某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数、每个子网内最大可分配地址个数各位(C)
A、8,32
B、32,8
C、32,6
D、8,30
4、以下关于链式存储结构说法错误的是(A)
A、查找节点时链式存储比顺序存储快
B、每个节点是由数据域和指针域组成
C、比顺序存储结构的存储密度小
D、逻辑上不相邻的节点物理上可能相邻
5、假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(A)
A、6
B、4
C、2
D、8
6、下面函数的功能是(C)
int fun (char *s)
{
char *p=s;
while(*p++);
return p-s-1;
}
A、计算字符串的位(bit)数
B、复制一个字符串
C、求字符串的长度
D、求字符串存放的位置
7、判断有向图是否存在回路,利用(A)方法最佳
A、拓扑排序
B、求最短路径
C、求关键路径
D、广度优先遍历
8、依次读入数据元素序列{a,b,c,d,e,f,g}进栈,元素进栈或出栈顺序是未知的,下列序列中,不可能成为栈空时弹出的元素构成序列的有(D)
阿里巴巴笔试题+解析(完整)
阿里巴巴面试题
1、 20个阿里巴巴B2B技术部的员工被安排为4排,每排5个人,我们任意选其中4人送给他们一人一本《effective c++》,那么我们选出的4人都在不同排的概率为:
A、 5^4*5!*15!/20!
B、 4^5*5!*15!/20!
C、 5^4*4!*16!/20!
D、 4^5*4!*16!/20!
2、若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为:
A、f,c,b
B、f,d,b
C、g,c,b
D、g,d,b
3、 perl里面声明:open(FILE,mode,file); 操作的描述,下列哪项不正确?
A、 FILE可以用变量$file来代替
B、 mode可以和file写在一起,例如:open(FILE, ‘>file’)
C、 mode为+<的时候,只可以读文件,不能写文件(既可以读也可以写)
D、 mode可以省略不写
4、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页?
A、7
B、8
C、9
D、10
5、设有一个顺序栈S,元素s1、s2、s3、s4、s5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s
6、s5、s1,则顺序栈的容量至少应为多少?
A、2
B、3
C、4
D、5
6、下列关于文件索引结构的叙述中,哪一个是错误的?
A、采用索引结构,逻辑上连续的文件存放在连续的物理块中
阿里巴巴招募实习生笔试题目
阿里巴巴招募实习生笔试题目
一、特别值是指什么?请列举1种识别连续型变量特别值的方法?
特别值(Outlier) 是指样本中的个别值,其数值明显偏离所属样本的其余观测值。在数理统计里一般是指一组观测值中与平均值的偏差超过两倍标准差的测定值。
Grubbs test(是以Frank E. Grubbs命名的),又叫maximum normed residual test,是一种用于单变量数据集特别值识别的统计检测,它假定数据集来自正态分布的总体。
未知总体标准差,在五种检验法中,优劣次序为:t检验法、格拉布斯检验法、峰度检验法、狄克逊检验法、偏度检验法。
点评:考察的内容是统计学根底功底。
二、什么是聚类分析?聚类算法有哪几种?请选择一种具体描述其计算原理和步骤。
聚类分析(cluster analysis)是一组将讨论对象分为相对同质的群组(clusters)的统计分析技术。聚类分析也叫分类分析(classification analysis)或数值分类(numerical taxonomy)。聚类与分类的不同在于,聚类所要求划分的类是未知的。
聚类分析计算方法主要有:层次的方法(hierarchical method)、划
分方法(partitioning method)、基于密度的方法(density-based method)、基于网格的.方法(grid-based method)、基于模型的方法(model-based method)等。其中,前两种算法是利用统计学定义的距离进展度量。
k-means 算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则依据它们与这些聚类中心的相像度(距离),分别将它们安排给与其最相像的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中全部对象的均值);不断重复这一过程直到标准测度函数开头收敛为止。一般都采纳均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
阿里巴巴真题整理(含答案)
10道大厂笔试真题你能做对几道?3道就赢了80%的竞争者(含
答案)
整理了几道阿里巴巴真题,来试试自己水平有多厉害吧,每题还有答案和详细解答哦。
1、有个特殊的餐厅,对客人的要求是如果要离开餐厅一定要看下餐厅内有没有比你迟进来的人,一定要所有比你迟进来的人离开后你才能离开,有一天甲,乙,丙,丁四个客人先后进入了这家餐厅,那么他们离开的顺序不可能是:
A:丙,乙,甲,丁
B:甲,乙,丙,丁
C:乙,甲,丙,丁
D:乙,丙,甲,丁
E:丁,丙,甲,乙
F:丁,丙,乙,甲
答案:E。本题考查的是元素入栈出栈的顺序问题。但要小心一个思维误区:并不是要等到甲、乙、丙、丁全部按序进入餐厅后才开始有人离开。
2、在关系型数据库中,有两个不同的事务同时操作数据库中同一表的同一行,不会引起冲突的是:
A:其中一个DELETE操作,一个是SELECT操作
B:其中两个都是UPDATE
C:其中一个是SELECT,一个是UPDATE
D:其中一个是DELETE,另一个是UPDATE
E:两个都是DELETE
答案:E。当要删除的记录在数据库中不存在的时候,是不会报错的。
3、设一组初始关键字为(12,15,1,18,2,35,30,11 ),则以12 为基准记录的一趟快速排序结束后的结果为:
A:11,1,2,12,35,18,30,15
B:11,2,1,12,15,18,35,30
C:1,2,11,12,15,18,35,30
D:11,2,1,12,18,35,30,15
E:1,2,11,12,15,18,30,35
答案:D。快速排序里的挖坑填补法:以12为标准值,从右开始找比12小的值,首先是11,把11放在12的位置,把12放在11的位置,再从左找比12大的值15,把15放在12的新位置(原11的位置)之后变成11,12,1,18,2,35,30,15。
阿里巴巴实习生招聘笔试题
阿里巴巴实习生招聘笔试题
阿里巴巴实习生招聘笔试题
阿里巴巴集团
实习生招聘
技术笔试卷
姓名_________________
身份证号_________________
应聘职位_________________
联系电话_________________
电子邮件_________________
学校_________________
专业_________________
学历_________________
实习起止时间_______________
答题说明:
1.本试卷适用于应聘Java、测试、算法职
位;
2.公共题目必答,应聘不同职位方向,做答相应方向题目。
3.答题时间为60分钟,请把握时间;
公共题
选择题(每题5分)
1. 若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是()
A:9B:11C:12D:不确定
2.下列排序算法中,其时间复杂度和记录的初始排列无关的是()
A:插入排序B:堆排序C:快速排序D:冒泡排序
3.已知中序遍历的序列为abcdef,高度最小的可能的二叉树的叶子是()
A:ace B:acf C:adf D:cdf
4.参加百年阿里培训的n位同学结伴去西湖旁边为游人指路,两人一组,她们打算先让体重之和恰好为102公斤的
同学一组,请给出一个算法找到这样的组合,或者确定她们中不存在这样的组合,其中最优的算法时间复杂度为?
(假设体重均为整数)()
A:O(log(n))B:O(n)C:O(n log(n))D:O(n^2)
5.众所周知数据结构中非常基本的树结构包括二叉查找树(BST)。当我们把如下序列:10,5,19,4,13,7,6,
阿里巴巴实习生招聘笔试题(精选3篇)
阿里巴巴实习生招聘笔试题(精选3篇)阿里巴巴实习生招聘笔试题篇1
1.给定fun函数如下,那么fun(10)的输出结果是()
int fun(int_)
{
return(_==1)? 1 : (_ + fun(_-1));
}
A.0
B.10
C.55
D.
2.在C++程序中,如果一个整型变量频繁使用,最好将它定义为()
A.auto
B.e_tern
C.static
D.register
3.长度为n的字符串匹配子串长度为m的字符串,求算法的复杂度最小为_
A.O(n)
B.O(n+m)
C.O(n+logm)
D.O(m+logn)
4.下列排序算法中最坏复杂度不是n(n-1)/2的是_
A.快速排序
B.冒泡排序
C.直接插入排序
D.堆排序
5.判断一包含n个整数a[]中是否存在i、j、k满足a[i] + a[j] = a[k]的时间复杂度最小值是()
A.O(n^2)
B. O(n^2_ogn)
C. O(n^3)
D. O(nlogn)
6.射击3次打靶成功的概率是0.95,打靶一次成功的概率是多少?
C.0.63
D.0.86
阿里巴巴实习生招聘笔试题篇2
1:
有整形数组A有n个数;那A逆序:例如A={1,2,3,4}经过代码处理后变为A={4,3,2,1};要求代码简介(20行)不使用库函数。使用加减乘除赋值和逻辑控制语言实现。
写出代码。
void revense(int _a,int n) {
for(int i=0; i
{
a[i]=a[i]+a[n-i-1];
a[n-i-1]=a[i]-a[n-i-1];
a[i]=a[i]-a[n-i-1];
阿里巴巴2023年校招笔试题(含答案、解析)
阿里巴巴2023校招笔试题(含答案、解析)
以下描述中唯一错误的选项是( )
下面选项内容中的A,B,C,D,E,F都是表示某个选项
A:此题有五个选项是正确的
B:B正确
C:D正确
D:DEF都正确
E:ABC中有一个错误
F:假如ABCDE都正确,那么F也正确
答案:B
解析:首先理解题意:此题的条件和结论是互为因果的。破解这种循环论证题目的方法就是选择某一个选项,假定它对或者错,然后推理。并且,这里的“某一个选项”经常可以依据题目找到推理链条中的薄弱环节。如此题的题干说“描述中唯一错误”,而一共有A到F6个选项,立刻得知“6个选项中有5个是对的,1个是错的”,这即说明“A:此题有五个选项是正确的”是对的。而“C:D正确”“D:DEF都正确”都涉及了D,不妨假定“C:D正确”是错的.,从而完成推理。B错误,其余都正确
②、算法
个数约为50K的数列需要进展从小到大排序,数列特征是根本逆序(多数数字从大到小,个别乱序),以下哪种排序算法在事先不了解数列特征的状况下性能最优(不考虑空间限制)。( )
A:冒泡排序
B:改良冒泡排序
C:选择排序
D:快速排序
E:堆排序
F:插入排序
答案:E
解析:冒泡排序、选择排序、插入排序的根本时间简单度为O(N^2)。假如数列根本升(降)序,而题目要求升(降)序排列,则改良的冒泡排序可以近似为O(N)。根本有序的数列,常规的快速排序时间简单度退化成O(N^2),而堆排序无论任何状况下的时间简单度都是O(NlogN),因此,堆排序是最优的。
③、系统设计
以下方法中,( )不行以用来程序调优?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
阿里巴巴实习生笔试题含答案
答案:D
内联函数:
Tip:只有当函数只有10 行甚至更少时才将其定义为内联函数.
定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按一般的函数调用机制进行调用.
优点: 当函数体比较小的时候, 内联该函数能够令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联. 缺点: 滥用内联将导致程序变慢. 内联可能使目标代码量或增或减, 这取决于内联函数的大小. 内联非常短小的存取函数一般会减少代码大小, 但内联一个相当大的函数将戏剧性的增加代码
大小. 现代处理器由于更好的利用了指令缓存, 小巧的代码往往执行更快。
结论: 一个较为合理的经验准则是, 不要内联超过10 行的函数. 谨慎对待析构函数, 析构函数往往比其表面看起来要更长, 因为有隐含的成员和基类析构函数被调用!
另一个实用的经验准则: 内联那些包含循环或switch 语句的函数常常是得不偿失(除非在大多数情况下, 这些循环或switch 语句从不被执行).
注意:有些函数即使声明为内联的也不一定会被编译器内联, 这点很重要; 比如虚函数和递归函数就不会被正常内联. 一般, 递归函数不应该声明成内联函数.(递归调用堆栈的展开并不像循环那么简单, 比如递归层数在编译时可能是未知的, 大多数编译器都不支持内联递归函数). 虚函数内联的主要原因则是想把它的函数体放在类定义内, 为了图个方便, 抑或是当作文档描述其行为, 比如精短的存取函数.
-inl.h文件:
Tip:复杂的内联函数的定义, 应放在后缀名为-inl.h 的头文件中.
内联函数的定义必须放在头文件中, 编译器才能在调用点内联展开定义. 然而, 实现代码理论上应该放在 .cc 文件中, 我们不希望 .h 文件中有太多实现代码, 除非在可读性和性能上有明显优势.
如果内联函数的定义比较短小, 逻辑比较简单, 实现代码放在 .h 文件里没有任何问题. 比如, 存取函数的实现理所当然都应该放在类定义内. 出于编写者和调用者的方便, 较复杂的内联函数也能够放到 .h 文件中, 如果你觉得这样会使头文件显得笨重, 也能够把它萃取到单独的-inl.h 中. 这样把实现和类定义分离开来, 当需要时包含对应的-inl.h 即可。
A 项错误,因为使用 inline 关键字的函数只是
用户希望它成为内联函数,但编译器有权忽略这个请求,比如:若此函数体太大,则不会把它作为内联函数展开的。
B 项错误,头文件中不但要包含 inline 函数的
声明,而且必须包含定义,且在定义时必须加上 inline 。【关键字 inline 必须与函数定义体放在一起才能使函数成为内联,仅
将 inline 放在函数声明前面不起任何作用】
C 项错误, inline 函数能够定义在源文件中,
但多个源文件中的同名 inline 函数的实现必须相同。一般把 inline 函数的定义放在头文件中更加合适。
D 项正确,类内的成员函数,默认都
是 inline 的。【定义在类声明之中的成员函数将自动地成为内联函数】
EF 项无意思,不论是 class 声明中定义的 inline 函数,还是 class 实现中定义
的 inline 函数,不存在优先不优先的问题,因为 class 的成员函数都是 inline 的,加了关键字 inline 也没什么特殊的
答案:D 插入排序
改良的冒泡最优也是n