阿里巴巴秋招技术岗笔试题.docx
- 文档编号:23445330
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:29
- 大小:26.50KB
阿里巴巴秋招技术岗笔试题.docx
《阿里巴巴秋招技术岗笔试题.docx》由会员分享,可在线阅读,更多相关《阿里巴巴秋招技术岗笔试题.docx(29页珍藏版)》请在冰豆网上搜索。
阿里巴巴秋招技术岗笔试题
2018阿里巴巴秋招试题
2018阿里巴巴秋招正式试题
一、选择题
1. 下面代码中,当点击点我时,输出的正确结果是:
B
vardiv2=document.getElementById('div2');
vardiv1=document.getElementById('div1');
div1.addEventListener('click',function(event){console.log("A");},true);
div2.addEventListener('click',function(event){console.log("B");});
div1.addEventListener('click',function(event){console.log("C");},false);
div2.addEventListener('click',function(event){console.log("D");},true);
A、ABCD
B、DACB
C、ADBC
D、DCAB
E、BDAC
2. 关于FetchAPI,以下描述错误的是:
F
A、fetch()返回的是一个Promise实例
B、FetchAPI可以结合async/await使用
C、FetchAPI提供的API囊括但不限于XHR的所有功能
D、FetchAPI可以跨域
E、Fetch提供了对Request和Response对象的通用定义
F、fetch()必须接受一个参数:
资源的路径
3. 以下代码片段在Node.js环境下执行的结果顺序是:
C
setTimeout(function(){
console.log('1');
},0);
process.nextTick(function(){
console.log("3");
});
console.log('2');
setImmediate(function(){
console.log("4");
});
A、2、1、4、3
B、2、1、3、4
C、2、3、1、4
D、4、1、2、3
E、4、2、1、3
F、1、4、2、3
4. 以下哪个标签不属于svg元素:
C
A、
B、
C、
D、
E、
F、
5. 关于ES6当中箭头函数说法错误的是:
A
A、箭头函数可以使用yield
B、箭头函数不可以用作构造函数
C、不会改变this的指向
D、箭头函数是Function的实例
E、箭头函数函数体没有花括号可以做为返回值
F、内部不能访问到arguments对象
6. 关于JavaScript中的函数,以下说法正确的有:
BF
在已知名称的函数的函数体声明语句之外,不能获知该函数的形参个数
A、在函数内部,可以通过arguments获取函数的实参个数
B、因为arguments是Array的实例,因此可以使用数组的方法去操作它
C、对同一个函数foo,使用newfoo()和foo()调用的结果是一样的
D、如果一个函数中没有使用return语句,则它默认返回null
E、如果函数的实参是一个引用对象,则对应形参会和该实参指向同一个对象
F、如果函数的实参是一个引用对象,则对应形参会和该实参指向同一个对象
7. 关于CSS的position属性,下列说法中正确的是:
AD
默认值是relative
A、值为static时,left、right、top、bottom的值无效。
B、fixed相对于页面视口定位
C、absolute是相对于body标签定位
D、absolute的元素可以设置外边距(margins),且不会与其他边距合并
E、fix和absolute相对的定位对象是一样的
8.关于ES6类(Class)的实现,以下表述正确的是:
ABDE
A、ES6的class只是一个语法糖,实际上还是基于原型来实现的
B、如果没在class里面定义constructor方法,编译器会自动帮你添加
C、ES6的class中支持定义私有属性
D、和ES5一样,同一个类的所有实例共享一个原型对象
E、如果没有显式指定构造方法,则会添加默认的constructor方法
修改基类的原型,派生类实例的原型不会被修改
二、简答题
1. 变量data为树状结构,数据大小层次不固定,格式如下:
constdata=[
{
"id":
'1',
"children":
[
{
"id":
'1-1',
"children":
[],
"value":
"a-1",
},
{
"id":
'1-2',
"children":
[],
"value":
"a-2",
},
],
"value":
"a",
},
{
"id":
'2',
"children":
[
{
"id":
'2-1',
"children":
[
{
"id":
'2-1-1',
"children":
[],
"value":
"c-1",
},
],
"value":
"b-1",
},
],
"value":
"b",
},
{
"id":
'3',
"children":
[
],
"value":
"c",
},
];
请实现个方法transformData,递归处理数据,给所有的父节点(children不为空的)添加一个字段relateId,值为当前第一个子节点(children为空的)id的值。
如上面的数据经过处理后的结果为:
[
{
"id":
"1",
"children":
[
{
"id":
"1-1",
"children":
[],
"value":
"a-1"
},
{
"id":
"1-2",
"children":
[],
"value":
"a-2"
}
],
"value":
"a",
"relateId":
"1-1"
},
{
"id":
"2",
"children":
[
{
"id":
"2-1",
"children":
[
{
"id":
"2-1-1",
"children":
[],
"value":
"c-1"
}
],
"value":
"b-1",
"relateId":
"2-1-1"
}
],
"value":
"b",
"relateId":
"2-1-1"
},
{
"id":
"3",
"children":
[],
"value":
"c"
}
]
2. 下面HTML中的内嵌JS代码会生成一个列表,格式为"{index}.{点击目标的全名}"。
于此同时当点击列表中的某个名字会在控制台中输出"clickonno.{点击目标的index}{firstName},{lastName}"。
请尝试指出代码中存在的BUG以及可能会发生的性能问题,并从优雅、高效、可读性以及性能方面进行优化,在指出问题的同时请尽量给出修正代码。
maxLength=4;
list=document.querySelector('#list');
functionprocessName(name){
return{
firstName:
name[0],
lastName:
name[1],
getFullName(){
returnthis.firstName+''+this.lastName;
},
};
}
varnames=[
['Gregor','Bachmann'],
['Anita','Bruns'],
['Anke','Dorn'],
['Ulrich','Koch'],
['Dietrich','Riedl'],
['Wolfgang','Jahn'],
['Gesine','Sturm'],
['Theodor','Petersen'],
];
varvalidCount=0;
for(vari=0;i varflag1=names[i][0].indexOf('A')! ==0; vargetFullName; if(flag1&&names[i][0].length>=4){ getFullName=processName(names[i]).getFullName; varlastName=processName(names[i]).lastName; varfirstName=processName(names[i]).firstName; varspan=document.createElement('li'); vartextNode=document.createTextNode(i+1+'.'+getFullName()); span.appendChild(textNode); span.addEventListener('click',function(){ console.log('clickonno.'+i+''+firstName+','+lastName); }); if(validCount+1>maxLength){ continue; } validCount+=1; list.appendChild(span); } } 2018阿里巴巴java秋招试题 一、单项选择题 1、以下函数的时间复杂度是 ( ) 1 2 3 4 5 6 7 8 9 voidfunc(intx,inty,intz){ if(x<=0) printf("%d,%d\n",y,z); else { func(x-1,y+1,z); func(x-1,y,z+1); } } A.O(x*y*z) B.O(x^2*y^2) C.O(2^x) D.O(2^x*2^y*2^z) E.O(x! ) F.O((x*y*z)! ) 参考答案: C 2、在一台64位的计算机上,以下哪段C语言代码与代码(x[2]+4)[3]等价(x的类型是int**)( ) A.*((*(x+16))+28) B.*((*(x+2))+7) C.**(x+28) D.*(((*x)+2)+7) E.*(((*x)+16)+28) F.**(x+9) 参考答案: B 3、关于ios和Android应用以下描述错误的是() A.ios和Android应用界面都可以通过IDE可视化界面拖拽完成布局,也可以在运行时通过代码布局 B.ObjectiveC的ARC和Java的GC,都是一种运行时内存管理机制 C.ios和Android应用都可以发布或接收通知来进行跨进程通信 D.Ios和Android应用都在调用某些系统功能如相机时,需预先拥有相应权限 E.ios和Andriod应用都拥有各自独立、安全隔离的文件空间 F.ios和Andriod应用都可以注册自定义URL Scheme 参考答案: C 4、堆栈中有元素abcdef,每次出栈可以选择一个或者两个元素栈,当有两个元素出栈时可以选择其中一个重新入栈,则所有元素为空,那么可能的出栈方式有()种? A.23 B.22 C.21 D.20 E.19 F.18 参考答案: C 5、下列关于linux中kernelspace和userspace描述错误的是() A.userspace不能直接对文件进行写操作 B.程序代码能手动指定在哪个space中运行 C.userspace不能直接创建进程 D.userspace和kernelspace的运行空间是相互隔离的 E.Kernelspace可以执行任意系统命令 F.userspace中运行出错不会影响kernelspace 参考答案: B 6、请阅读下面代码,计算运行结果: publicclassC{staticclassA{ }staticclassBextendsA{ }publicstaticvoidmain(String[] args){ ArrayListlist =newArrayList(); list.add(newB());method1(list); }privatestaticvoidmethod1(List [侯萍1]supperA>list){for(inti=0;i Aa=list.get(0); } }} 以上程序的运行结果可能出现的是: ( ) A.list.add(newB())编译报错 B.method1编译报错 C.Aa=list.get(0)编译报错 D.程序正常运行 E.list.add(newB())与method1(list)都编译报错 F.list.add(newB())与Aa=list.get(0);编译报错 参考答案: C 7、请阅读下面代码,计算运行结果; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 publicclassThreadTest{ privatestaticAtomicIntegeratomicInteger=newAtomicInteger(); publicstaticvoidmain(String[] args){ Aa =newA(); try{ atomicInteger.wait(); }catch(InterruptedExceptione){ e.printStackTrace(); } a.start(); } staticclassAextendsThread{ atomicInteger.notify(); atomicInteger.lazySet (1); System.out.println(atomicInteger.get()); } } } 以上程序的运行结果是: () A.编译报错,有未捕捉的异常 B.程序正常运行后,一直hold C.程序正常运行,控制台打印出1 D.程序正常运行,控制台打印出0 E.程序编译通过,但运行时报错 F.以上都不对 参考答案: A 8、在一台6G内存Linux操作系统的机器上,coredump打开且大小不做限制,执行下面的程序分别会发生什么? (1) 1 2 3 4 5 6 7 8 #include #include int32_tmain(){ unit64_tsize=8*1024*1024*1024L; char*a=newchar(size); *(a+1)='a'; return0; } (2) 1 2 3 4 5 6 7 8 #include #include int32_tmain(){ unit64_tsize=10*1024*1024*1024L; char*a=newchar(size); *(a+1)='a'; return0; } (3) 1 2 3 4 5 6 7 8 #include #include int32_tmain(){ unit64_tsize=7*1024*1024*1024L; char*a=newchar(size); *(a+size-1)='a'; return0; } A.coredump,coredump,coredump B.正常,coredump,正常 C.正常,正常,coredump D.coredump,正常,coredump E.coredump,正常,正常 F.正常,coredump,coredump 参考答案: A 9、下列程序的输出是() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include usingnamespacestd; classA{ public: A(intn): m_n(n){} intcal(){ intresult =0,i =0,j =0; for(intk =m_n;k>0;k--){ if(j>0) j =k*10+j; else j =k; while(j>=10){ intt =j %100; j =j /100; result =((i++%2==0)? result+t: result-t); } } if(j>0) result =((i++%2==0)? result+j: result-j); returnresult; } private: intm_n; }; intmain(){ Aa =A(101); cout< return0; } A.-80 B.-79 C.0 D.90 E.79 F.80 参考答案: A 10、用0,1,2,3,4,5组成一个4位数,要求每一位都不一样,请问能组成多少个四位数() A.240 B.280 C.300 D.360 E.400 F.450 参考答案: C 11、小明有200个淘公仔,小梅有20个电脑包,每次小明给小梅6个淘公仔,小梅就给小明1个电脑包,经过多少次交互后,小明手中的淘公仔的个数是小梅手中电脑包数量的11倍? () A.4 B.5 C.6 D.7 E.8 F.9 参考答案: A 200-6n=11(20-n) 解析: n=4 12、以下描述正确的是() A.线性规划问题是一个NP-Hard问题 B.因为单纯形法可以保证在限步数内收敛,所以是复杂度为多项式级别的算法,用于解决线性规划问题 C.内点法只用于解决线性规划问题 D.线性规划区别于非线性规划的地方在于,其达到最优点的时候不需要满足K-K-T优化条件 E.一个可解的线性规划问题的主问题和对偶问题分别达到最优化的时候,最优值一定相等 F.以上都不对 参考答案: B 13、设有一个二维数组A[m][n],假设A[0][1]存放位置在1601(10),A[3][3]存放位置在1648(10),每个元素占一个空间,问A[2][2](10)存放在什么位置? 脚注(10)表示用10进制表示。 () A.1616 B.1617 C.1618 D.1631 E.1632 F.1633 参考答案: E 解析: 3n+2=1848-1601,解得n=15。 每一行15个元素,每个元素占据一个空间,因此A[2][2]=1601+15+2+1=1632 14、天气预报说明天降水概率是84%,假设降水和时间无关,请问明天
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 阿里巴巴 技术 笔试