一、单项选择题
1、以下函数的时间复杂度是 ( )
void func(int x,int y, int z){if(xA.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)E.*(((*x)+16)+28)F.**(x+9)参考答案:B3、下列关于linux中kernel space和user space描述错误的是()A.user space不能直接对文件进行写操作B.程序代码能手动指定在哪个space中运行C.user space不能直接创建进程D.user space和kernel space的运行空间是相互隔离的E.Kernel space可以执行任意系统命令F.user space中运行出错不会影响kernel space参考答案:B4、关于ios和Android应用以下描述错误的是()A.ios和Android应用界面都可以通过IDE可视化界面拖拽完成布局,也可以在运行时通过代码布局B.Objective C的ARC和Java的GC,都是一种运行时内存管理机制C.ios和Android应用都可以发布或接收通知来进行跨进程通信D.Ios和Android应用都在调用某些系统功能如相机时,需预先拥有相应权限E.ios和Andriod应用都拥有各自独立、安全隔离的文件空间F.ios和Andriod应用都可以注册自定义URL Scheme参考答案:C5、请阅读下面代码,计算运行结果:public class C{ static class A{} static class B extends A{} public static void main(String[] args){ArrayList list = new ArrayList();list.add(new B()); method1(list);} private static void method1(List list) { for(int i=0;i以上程序的运行结果可能出现的是:( )A.list.add(new B())编译报错B.method1编译报错C.A a=list.get(0)编译报错D.程序正常运行E.list.add(new B())与method1(list)都编译报错F.list.add(new B())与A a=list.get(0);编译报错参考答案:C6、请阅读下面代码,计算运行结果;public class ThreadTest{private static AtomicInteger atomicInteger=new AtomicInteger();public static void main(String[] args){A a =new A();try{atomicInteger.wait();} catch (InterruptedException e){e.printStackTrace();}a.start();}static class A extends Thread{ @Override public void run(){atomicInteger.notify();atomicInteger.lazySet(1);System.out.println(atomicInteger.get());}}}以上程序的运行结果是:()A.编译报错,有未捕捉的异常B.程序正常运行后,一直holdC.程序正常运行,控制台打印出1D.程序正常运行,控制台打印出0E.程序编译通过,但运行时报错F.以上都不对参考答案:A7、在一台6G内存Linux操作系统的机器上,coredump打开且大小不做限制,执行下面的程序分别会发生什么?(1)#include#includeint32_t main(){unit64_t size=8*1024*1024*1024L;char* a=new char(size);*(a+1)='a';return 0;}(2)#include#includeint32_t main(){unit64_t size=10*1024*1024*1024L;char* a=new char(size);*(a+1)='a';return 0;}(3)#include#includeint32_t main(){unit64_t size=7*1024*1024*1024L;char* a=new char(size);*(a+size-1)='a';return 0;}A.coredump,coredump,coredumpB.正常,coredump,正常C.正常,正常,coredumpD.coredump,正常,coredumpE.coredump,正常,正常F.正常,coredump,coredump参考答案:A8、小明有200个淘公仔,小梅有20个电脑包,每次小明给小梅6个淘公仔,小梅就给小明1个电脑包,经过多少次交互后,小明手中的淘公仔的个数是小梅手中电脑包数量的11倍?( )A.4B.5C.6D.7E.8F.9参考答案:A200-6n=11(20-n)解析:n=49、设有一个二维数组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解析:3n+2=1848-1601,解得n=15。每一行15个元素,每个元素占据一个空间,因此A[2][2]=1601+15+2+1=163210、评分卡算法(Score Card)是在金融领域广泛应用的一种评分算法,通过多个维度的评分汇总得到对于一个实体的总体评估,一下说法错误的是()A.评分卡的底层分类算法最常用的是逻辑回归算法,因此评分卡是一种相对白盒的算法B.评分卡算法其中一个重要的数据处理步骤是数据分箱,根据特征取值将数据离散化为若干区间,这种操作能对某些数据异常值进行处理C.评分卡算法中如果变量之间存在多重共线性,说明可能存在两个变量高度相关,需要进行降维或剔除变量D.评分卡中对用户分类使用的逻辑回归算法是广义线性回归模型的一种E.评分卡模型效果的验证可以通过ROC曲线来看F.评分卡中的逻辑回归算法可以用于二分类算法,而不能用于多分类问题参考答案:A11、public class ListParamTest {public static void resetList(ListdataList) {dataList.subList(2,4).set(0,40);dataList = new ArrayList(dataList);dataList.add(50);}public static void setOne(ListdataList) {dataList.set(3,100);}public static void main(String[] args){ListdataList = new ArrayList(Arrays.asList(10,20,30,null));resetList(dataList);setOne(dataList);int sum = 0;for(Integer v:dataList){sum +=v;}System.out.println(sum);}程序执行后,输出的结果是:A.160B.抛出UnsupportedOperationException异常C.抛出NullPointerException异常D.220E.210F.170参考答案:F二、编程题:1、天猫国际每天都会卖出很多跨境商品,用户每次下单可能购买多个商品,购买总数小于10件,由于海关规定,每一个进入海关的箱子里面的商品总额不能超过2000元(否则不能清关)所以当用户下单总金额超过2000,必须使用多个箱子分开包装运输;现在为了节约运输成本,希望在满足海关的要求下,能够使用尽可能少的箱子。注:每个商品都有自己的单价,有特定的长宽高,所有商品都是长方体商品可以横放、竖放、侧放,但不用考虑斜放,但是长宽高各项总和必须都要小于等于箱子的长宽高假定目前天猫国际使用同一种规格的箱子boxLong,boxWidth,boxHigh(箱子长,箱子宽,箱子高)某用户下单买了如下商品n(商品件数)item1Price,item1Long,item1With,item1Highitem2Price,item2Long,item2With,item2Highitem3Price,item3Long,item3With,item3Highitem4Price,item4Long,item4With,item4High...(商品价格,商品长,商品宽,商品高)(所有输入类型均为int型正整数)请你算出需要使用最小的箱子数量,可以将这些商品顺利得清关送到消费者手中,如果无解,输出-1代码模板:import java.lang.reflect.Array; import java.util.Scanner; public class Main {/**请完成下面这个process函数,实现题目要求的功能**//**当然,你也可以不按照这个模板来作答,完全按照自己的想法来^-^ **/ private static int process(){} public static void main(String args[]){Scanner scanner = new Scanner(System.in); boxTemplate.price = CUSTOMS_LIMIT_MONEY_PER_BOX; while (scanner.hasNext()){ boxTemplate.length = scanner.nextInt(); boxTemplate.width = scanner.nextInt(); boxTemplate.height = scanner.nextInt(); int itemNum = scanner.nextInt(); items = new Model[itemNum]; for(int i=0; i2、在快递公司干线运输的车辆使用中,存在着单边车和双边车的两种使用场景,例如北京中心-杭州中心,两个分拨中心到彼此的单量对等,则可以开双边车(即同一辆车可以往返对开),而当两个中心的对发单量不对等时,则会采用单边车,并且双边车的成本是低于单边车的,即将两辆对开的单边车合并为一辆往返的双边车是能够节省运力成本的单边车优化原则:将单边车优化的规则进行可抽象为以下三种(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合并优化代码模板:public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);ListlineList = new ArrayList();while (scanner.hasNextLine()) {String[] options = scanner.nextLine().split(";");if (options.length < 5) {break;}lineList.add(new UnilateralLine(options[0], options[1], options[2], options[3], options[4], options[5]));}scanner.close();// wirte your code hereListresult = calculateUnilateral(lineList);for (String str : result) {System.out.println(str);}}public static ListcalculateUnilateral(ListlineList) {Listresult = new ArrayList();return result;}public static class UnilateralLine {private String id;private String sCen;//出发分拨private String sPro;//出发省private String eCen;//到达分拨private String ePro;//到达省//9.6m/17.5mprivate String tType;//车型public UnilateralLine(String id, String sCen, String sPro, String eCen, String ePro,String tType) {this.id = id;this.sCen = sCen;this.sPro = sPro;this.eCen = eCen;this.ePro = ePro;this.tType = tType;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getSCen() {return sCen;}public void setSCen(String ePro) {this.ePro = ePro;}public String getSPro() {return sPro;}public void setSPro(String sPro) {this.sPro = sPro;}public String getECen() {return eCen;}public void setECen(String eCen) {this.eCen = eCen;}public String getEPro() {return ePro;}public void setEPro(String ePro) {this.ePro = ePro;}public String getTType() {return tType;}public void setTType(String tType) {this.tType = tType;}}}本文标题:2018秋招阿里巴巴java笔试题题解(快来收藏!)
本文链接:https://blog.quwenai.cn/post/344.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。







还没有评论,来说两句吧...