资源描述:
《2018秋招阿里巴巴java笔试试题 精》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
2018秋招阿里巴巴java笔试试题精一、单项选择题1、以下函数的时间复杂度是 ( )123456789voidfunc(intx,inty,intz){if(x<=0)printf("%d,%d
1",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)!)参考答案:C2、在一台64位的计算机上,以下哪段C语言代码与代码(x[2]+4)[3]等价(x的类型是int**)( )A.*((*(x+16))+28)B.*((*(x+2))+7)C.**(x+28)D.*(((*x)+2)+7)
2E.*(((*x)+16)+28)F.**(x+9)参考答案:B3、关于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参考答案:C4、堆栈中有元素abcdef,每次出栈可以选择一个或者两个元素栈,当有两个元素出栈时可以选择其中一个重新入栈,则所有元素为空,那么可能的出栈方式有()种?A.23B.22C.21D.20E.19F.18参考答案:C
35、下列关于linux中kernelspace和userspace描述错误的是()A.userspace不能直接对文件进行写操作B.程序代码能手动指定在哪个space中运行C.userspace不能直接创建进程D.userspace和kernelspace的运行空间是相互隔离的E.Kernelspace可以执行任意系统命令F.userspace中运行出错不会影响kernelspace参考答案:B6、请阅读下面代码,计算运行结果:publicclassC{staticclassA{}staticclassBextendsA{}publicstaticvoidmain(String[] args){ArrayListlist =newArrayList();list.add(newB());method1(list);}privatestaticvoidmethod1(List[侯萍1]supperA>list){for(inti=0;i47、请阅读下面代码,计算运行结果;123456789101112131415161718publicclassThreadTest{privatestaticAtomicIntegeratomicInteger=newAtomicInteger();publicstaticvoidmain(String[] args){Aa =newA();try{atomicInteger.wait();}catch(InterruptedExceptione){e.printStackTrace();}a.start();}staticclassAextendsThread{@Overridepublicvoidrun(){atomicInteger.notify();atomicInteger.lazySet(1);System.out.println(atomicInteger.get());}}}
以上程序的运行结果是:()A.编译报错,有未捕捉的异常B.程序正常运行后,一直holdC.程序正常运行,控制台打印出1D.程序正常运行,控制台打印出0E.程序编译通过,但运行时报错F.以上都不对参考答案:A8、在一台6G内存Linux操作系统的机器上,coredump打开且大小不做限制,执行下面的程序分别会发生什么?
5(1)12345678#include#includeint32_tmain(){unit64_tsize=8*1024*1024*1024L;char*a=newchar(size);*(a+1)='a';return0;}(2)12345678#include#includeint32_tmain(){unit64_tsize=10*1024*1024*1024L;char*a=newchar(size);*(a+1)='a';return0;}(3)12345678#include#includeint32_tmain(){unit64_tsize=7*1024*1024*1024L;char*a=newchar(size);*(a+size-1)='a';return0;}A.coredump,coredump,coredumpB.正常,coredump,正常C.正常,正常,coredumpD.coredump,正常,coredumpE.coredump,正常,正常
6F.正常,coredump,coredump参考答案:A9、下列程序的输出是()123456789101112131415161718192021222324252627282930#includeusingnamespacestd;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;elsej =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<7D.90E.79F.80参考答案:A10、用0,1,2,3,4,5组成一个4位数,要求每一位都不一样,请问能组成多少个四位数()A.240B.280C.300D.360E.400F.450参考答案:C11、小明有200个淘公仔,小梅有20个电脑包,每次小明给小梅6个淘公仔,小梅就给小明1个电脑包,经过多少次交互后,小明手中的淘公仔的个数是小梅手中电脑包数量的11倍?()A.4B.5C.6D.7E.8F.9参考答案:A
8200-6n=11(20-n)解析:n=412、以下描述正确的是()A.线性规划问题是一个NP-Hard问题B.因为单纯形法可以保证在限步数内收敛,所以是复杂度为多项式级别的算法,用于解决线性规划问题C.内点法只用于解决线性规划问题D.线性规划区别于非线性规划的地方在于,其达到最优点的时候不需要满足K-K-T优化条件E.一个可解的线性规划问题的主问题和对偶问题分别达到最优化的时候,最优值一定相等F.以上都不对参考答案:B13、设有一个二维数组A[m][n],假设A[0][1]存放位置在1601(10),A[3][3]存放位置在1648(10),每个元素占一个空间,问A[2][2](10)存放在什么位置?脚注(10)表示用10进制表示。()A.1616B.1617C.1618D.1631E.1632F.1633参考答案:E解析:
93n+2=1848-1601,解得n=15。每一行15个元素,每个元素占据一个空间,因此A[2][2]=1601+15+2+1=163214、天气预报说明天降水概率是84%,假设降水和时间无关,请问明天中午12点之前就降水的概率是多大?()A.30%B.40%C.50%D.60%E.70%F.80%正确答案:D15、12345678910111213141516171819publicclassListParamTest{publicstaticvoidresetList(ListdataList){dataList.subList(2,4).set(0,40);dataList=newArrayList(dataList);dataList.add(50);}publicstaticvoidsetOne(ListdataList){dataList.set(3,100);}publicstaticvoidmain(String[]args){ListdataList=newArrayList(Arrays.asList(10,20,30,null));resetList(dataList);setOne(dataList);intsum =0;for(Integerv:dataList){sum +=v;}System.out.println(sum);
10}程序执行后,输出的结果是:A.160B.抛出UnsupportedOperationException异常C.抛出NullPointerException异常D.220E.210F.170参考答案:F16、一个等差数列第x,y,z三项的值分别时是y,z,x,试求第x+y项和第z+y项的差值()A.-3B.-2C.-1D.0E.1F.2正确答案:D17.机器学习中,下面哪个方法不是为了防止过拟合的?A.BatchnormB.Dropout
11C.WeightdecayD.DropconnectE.EarlystoppingF.Dataaugmentation正确答案:A18.在关联规则挖掘算法中,有已知如下事务类,支持度support=0.4,则下列选项不正确的是()TIDItems1Bread,Milk2Bread,Diaper,Beer,Eggs3Milk,Diaper,Beer,Coke4Bread,Milk,Diaper,Beer,5Bread,Milk,Diaper,CokeA.{Bread,Milk}是频繁项集B. {Bread,Milk,Beer}是{Bread,Milk}的超集C. {Bread,Milk}是频繁闭项集D. {Bread,Milk}是最大频繁项集E. {Bread,Diaper}是频繁项集参考答案:D19.评分卡算法(Score Card)是在金融领域广泛应用的一种评分算法,通过多个维度的评分汇总得到对于一个实体的总体评估,一下说法错误的是()A.评分卡的底层分类算法最常用的是逻辑回归算法,因此评分卡是一种相对白盒的算法B.评分卡算法其中一个重要的数据处理步骤是数据分箱,根据特征取值将数据离散化为若干区间,这种操作能对某些数据异常值进行处理
12C.评分卡算法中如果变量之间存在多重共线性,说明可能存在两个变量高度相关,需要进行降维或剔除变量D.评分卡中对用户分类使用的逻辑回归算法是广义线性回归模型的一种E.评分卡模型效果的验证可以通过ROC曲线来看F.评分卡中的逻辑回归算法可以用于二分类算法,而不能用于多分类问题参考答案:A二、编程题1、天猫国际每天都会卖出很多跨境商品,用户每次下单可能购买多个商品,购买总数小于10件,由于海关规定,每一个进入海关的箱子里面的商品总额不能超过2000元(否则不能清关)所以当用户下单总金额超过2000,必须使用多个箱子分开包装运输;现在为了节约运输成本,希望在满足海关的要求下,能够使用尽可能少的箱子。注:每个商品都有自己的单价,有特定的长宽高,所有商品都是长方体商品可以横放、竖放、侧放,但不用考虑斜放,但是长宽高各项总和必须都要小于等于箱子的长宽高假定目前天猫国际使用同一种规格的箱子boxLong,boxWidth,boxHigh(箱子长,箱子宽,箱子高)某用户下单买了如下商品n(商品件数)item1Price,item1Long,item1With,item1Highitem2Price,item2Long,item2With,item2High
13item3Price,item3Long,item3With,item3Highitem4Price,item4Long,item4With,item4High...(商品价格,商品长,商品宽,商品高)(所有输入类型均为int型正整数)请你算出需要使用最小的箱子数量,可以将这些商品顺利得清关送到消费者手中,如果无解,输出-1代码模板:importjava.lang.reflect.Array;importjava.util.Scanner;publicclassMain{/**请完成下面这个process函数,实现题目要求的功能**//**当然,你也可以不按照这个模板来作答,完全按照自己的想法来^-^ **/privatestaticintprocess(){}publicstaticvoidmain(Stringargs[]){Scannerscanner =newScanner(System.in);boxTemplate.price=CUSTOMS_LIMIT_MONEY_PER_BOX;while(scanner.hasNext()){boxTemplate.length=scanner.nextInt();boxTemplate.width=scanner.nextInt();boxTemplate.height=scanner.nextInt();intitemNum =scanner.nextInt();items=newModel[itemNum];for(inti=0;i142、在快递公司干线运输的车辆使用中,存在着单边车和双边车的两种使用场景,例如北京中心-杭州中心,两个分拨中心到彼此的单量对等,则可以开双边车(即同一辆车可以往返对开),而当两个中心的对发单量不对等时,则会采用单边车,并且双边车的成本是低于单边车的,即将两辆对开的单边车合并为一辆往返的双边车是能够节省运力成本的单边车优化原则:将单边车优化的规则进行可抽象为以下三种(A,B,C均表示分拨中心):规则-1:A-B单边车,B-A单边车优化方案:将A-B和B-A的两辆单边车合并为双边;规则-2:A-B单边车,B-C单边车,C-A单边车优化方案:将A-B、B-C、C-A的三辆单边车优化为一辆环形往返车;规则-3:A-B单边车,C-A单边车,B、C同省优化方案:当B、C同省,将A-B、C-A两辆单边优化为一辆环形往返问题如下:以某快递公司的实际单边车数据为例(线路ID编码;出分拨中心;出分拨中心所在省;到达分拨中心;到达分拨中心所在省;车型;),进行优化,优化的规则参照以上,并且优先级依次降低,合并的时候需要考虑车型(分为17.5m和9.6m两种):1、相同车型才能进行合并;2、两辆同方向的9.6m可以与一辆17.5m的对开车型合并优化说明:优化输出结果按照规则分类,例如rule1:2016120001+2016120002表示将单边车线路ID编码为2016120001和2016120002按照规则1合并优化代码模板:1234567891011publicclassMain{publicstaticvoidmain(String[]args){Scannerscanner =newScanner(System.in);ListlineList =newArrayList();while(scanner.hasNextLine()){String[]options =scanner.nextLine().split(";");if(options.length <5){break;}lineList.add(newUnilateralLine(options[0],options[1],options[2],options[3],options[4],options[5]));
151213141516171819202122232425262728293031323334353637383940414243444546}scanner.close();//wirteyourcodehereListresult =calculateUnilateral(lineList);for(Stringstr :result){System.out.println(str);}}publicstaticListcalculateUnilateral(ListlineList){Listresult =newArrayList();returnresult;}publicstaticclassUnilateralLine{privateStringid;privateStringsCen;//出发分拨privateStringsPro;//出发省privateStringeCen;//到达分拨privateStringePro;//到达省//9.6m/17.5mprivateStringtType;//车型publicUnilateralLine(Stringid,StringsCen,StringsPro,StringeCen,StringePro,StringtType){this.id =id;this.sCen =sCen;this.sPro =sPro;this.eCen =eCen;this.ePro =ePro;this.tType =tType;}publicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id =id;}publicStringgetSCen(){returnsCen;}publicvoidsetSCen(StringePro){this.ePro =ePro;}publicStringgetSPro(){returnsPro;}publicvoidsetSPro(StringsPro){this.sPro =sPro;}publicStringgetECen(){returneCen;}publicvoidsetECen(StringeCen){this.eCen =eCen;}publicStringgetEPro(){returnePro;}publicvoidsetEPro(StringePro){this.ePro =ePro;}publicStringgetTType(){returntType;}publicvoidsetTType(StringtType){this.tType =tType;}}}