秋招阿里巴巴java笔试试题-精

一、单项选择题

1、以下函数的时间复杂度是  ( )

1

2

3

4

5

6

7

8

9

void func(int x,int y, int z){

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.Objective C的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中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

参考答案:B

6、请阅读下面代码,计算运行结果:

public class C{ static class A{
} static class B extends A{
} public static void main(String[] args){
ArrayList<A> list = new ArrayList<A>();
list.add(new B()); method1(list);
} private static void method1(List<?[侯萍1] supper A> list) { for(int i=0;i<list.size();i++){
A a = list.get(0);
}
} }

以上程序的运行结果可能出现的是:( )

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);编译报错

参考答案:C

7、请阅读下面代码,计算运行结果;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

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{ <a class="js-nc-card" data-card-uid="992988" href="/profile/992988" target="_blank">@Override public void run(){

atomicInteger.notify();

atomicInteger.lazySet(1);

System.out.println(atomicInteger.get());

}

}

}</a>

以上程序的运行结果是:()

A.编译报错,有未捕捉的异常

B.程序正常运行后,一直hold

C.程序正常运行,控制台打印出1

D.程序正常运行,控制台打印出0

E.程序编译通过,但运行时报错

F.以上都不对

参考答案:A

8、在一台6G内存Linux操作系统的机器上,coredump打开且大小不做限制,执行下面的程序分别会发生什么?

(1)

1

2

3

4

5

6

7

8

#include<stdio.h>

#include<stdlib.h>

int32_t main(){

unit64_t size=8*1024*1024*1024L;

char* a=new char(size);

*(a+1)='a';

return 0;

}

(2)

1

2

3

4

5

6

7

8

#include<stdio.h>

#include<stdlib.h>

int32_t main(){

unit64_t size=10*1024*1024*1024L;

char* a=new char(size);

*(a+1)='a';

return 0;

}

(3)

1

2

3

4

5

6

7

8

#include<stdio.h>

#include<stdlib.h>

int32_t main(){

unit64_t size=7*1024*1024*1024L;

char* a=new char(size);

*(a+size-1)='a';

return 0;

}

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<iostream>

using namespace std;

class A{

public:

A(int n):m_n(n){}

int cal(){

int result = 0,i = 0,j = 0;

for(int k = m_n;k>0;k--){

if(j>0)

j = k*10+j;

else

j = k;

while (j>=10) {

int t = j % 100;

j = j / 100;

result = ((i++ % 2==0) ? result+t:result-t);

}

}

if(j>0)

result = ((i++ % 2==0) ? result+j:result-j);

return result;

}

private:

int m_n;

};

int main(){

A a = A(101);

cout<<a.cal()<<endl;

return 0;

}

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%,假设降水和时间无关,请问明天中午12点之前就降水的概率是多大?( )

A.30%

B.40%

C.50%

D.60%

E.70%

F.80%

正确答案:D

15、

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

public class ListParamTest {

public static void resetList(List<Integer> dataList) {

dataList.subList(2,4).set(0,40);

dataList = new ArrayList<Integer>(dataList);

dataList.add(50);

}

public static void setOne(List<Integer> dataList) {

dataList.set(3,100);

}

public static void main(String[] args){

List<Integer> dataList = new ArrayList<Integer>(Arrays.asList(10,20,30,null));

resetList(dataList);

setOne(dataList);

int sum = 0;

for(Integer v:dataList){

sum +=v;

}

System.out.println(sum);

}

程序执行后,输出的结果是:

A.160

B.抛出UnsupportedOperationException异常

C.抛出NullPointerException异常

D.220

E.210

F.170

参考答案:F

16、一个等差数列第x ,y ,z三项的值分别时是y ,z ,x ,试求第x+y项和第z+y项的差值( )

A.-3

B.-2

C.-1

D.0

E.1

F.2

正确答案:D

17.机器学习中,下面哪个方法不是为了防止过拟合的?

A.Batchnorm

B.Dropout

C.Weight decay

D.Dropconnect

E.Early stopping

F.Data augmentation

正确答案:A

18.在关联规则挖掘算法中,有已知如下事务类,支持度support=0.4,则下列选项不正确的是()

TID

Items

1

Bread,Milk

2

Bread,Diaper,Beer,Eggs

3

Milk,Diaper,Beer,Coke

4

Bread,Milk,Diaper,Beer,

5

Bread,Milk,Diaper,Coke

A.{Bread,Milk}是频繁项集

B. {Bread,Milk,Beer}是{Bread,Milk}的超集

C. {Bread,Milk}是频繁闭项集

D. {Bread,Milk}是最大频繁项集

E. {Bread,Diaper}是频繁项集

参考答案:D

19.评分卡算法(Score Card)是在金融领域广泛应用的一种评分算法,通过多个维度的评分汇总得到对于一个实体的总体评估,一下说法错误的是()

A.评分卡的底层分类算法最常用的是逻辑回归算法,因此评分卡是一种相对白盒的算法

B.评分卡算法其中一个重要的数据处理步骤是数据分箱,根据特征取值将数据离散化为若干区间,这种操作能对某些数据异常值进行处理

C.评分卡算法中如果变量之间存在多重共线性,说明可能存在两个变量高度相关,需要进行降维或剔除变量

D.评分卡中对用户分类使用的逻辑回归算法是广义线性回归模型的一种

E.评分卡模型效果的验证可以通过ROC曲线来看

F.评分卡中的逻辑回归算法可以用于二分类算法,而不能用于多分类问题

参考答案:A

二、编程题

1、天猫国际每天都会卖出很多跨境商品,用户每次下单可能购买多个商品,购买总数小于10件,由于海关规定,每一个进入海关的箱子里面的商品总额不能超过2000元(否则不能清关)所以当用户下单总金额超过2000,必须使用多个箱子分开包装运输;现在为了节约运输成本,希望在满足海关的要求下,能够使用尽可能少的箱子。

注:

每个商品都有自己的单价,有特定的长宽高,所有商品都是长方体

商品可以横放、竖放、侧放,但不用考虑斜放,但是长宽高各项总和必须都要小于等于箱子的长宽高

假定目前天猫国际使用同一种规格的箱子

boxLong,boxWidth,boxHigh

(箱子长,箱子宽,箱子高)

某用户下单买了如下商品

n(商品件数)

item1Price,item1Long,item1With,item1High

item2Price,item2Long,item2With,item2High

item3Price,item3Long,item3With,item3High

item4Price,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; i<itemNum; i++){ Model item = new Model();
item.price = scanner.nextInt();
item.length = scanner.nextInt();
item.width = scanner.nextInt();
item.height = scanner.nextInt(); items[i] = item;
} long startTime = System.currentTimeMillis(); boxMinNum = Integer.MAX_VALUE;
System.out.println (process());
}
}
}

2、在快递公司干线运输的车辆使用中,存在着单边车和双边车的两种使用场景,例如北京中心-杭州中心,两个分拨中心到彼此的单量对等,则可以开双边车(即同一辆车可以往返对开),而当两个中心的对发单量不对等时,则会采用单边车,并且双边车的成本是低于单边车的,即将两辆对开的单边车合并为一辆往返的双边车是能够节省运力成本的

单边车优化原则:

将单边车优化的规则进行可抽象为以下三种(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合并优化

代码模板:

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

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

List<UnilateralLine> lineList = new ArrayList<UnilateralLine>();

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 here

List<String> result = calculateUnilateral(lineList);

for (String str : result) {

System.out.println(str);

}

}

public static List<String> calculateUnilateral(List<UnilateralLine> lineList) {

List<String> result = new ArrayList<String>();

return result;

}

public static class UnilateralLine {

private String id;

private String sCen;//出发分拨

private String sPro;//出发省

private String eCen;//到达分拨

private String ePro;//到达省

//9.6m/17.5m

private 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;}

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

coredump+gdb调试

1、什么是coredump Coredump&#xff08;核心转储&#xff09;是操作系统在程序异常终止&#xff08;例如由于段错误或其他严重错误&#xff09;时创建的一种文件。这个文件包含了程序崩溃时刻进程的内存镜像&#xff0c;通常还包括程序计数器、寄存器内容和堆栈内存等信息&am…

nginx 二级目录部署vue项目

主要是vue项目得更改资源路径 通过.env环境变量来设置 修改项目的基础路径&#xff0c;我的是vite项目&#xff0c;所以我要在vite.config.js中修改base属性 为 ‘/threejs/’修改vue-router的base路径为’/threejs’ 1.vite项目的基础路径 getEnvConfig 方法是封装的获取环境…

【Axure视频教程】可视化饼图

今天教大家在Axure制作可视化饼图的原型模板&#xff0c;鼠标移入饼图对应的扇形区域&#xff0c;该区域的扇形会高亮变色&#xff0c;而且显示该区域对应的数据&#xff0c;那这个模板是用Axure的原生元件制作的&#xff0c;不需要联网或者调用接口&#xff0c;通过基础元件和…

算法篇:动态规划I

声明&#xff1a;若未特殊标出&#xff0c;则默认是leedcode原题。 1、1137.第N个泰波那契数列&#xff1a; ①状态表示&#xff1a;dp[i]表示&#xff1a;第i个泰波那契数的值。 ②状态转移方程&#xff1a;以i位置的状态&#xff0c;最近的一步&#xff0c;来划分问题&#…

CH09_避免浪费

Flyweight模式 享元模式&#xff08;Flyweight&#xff09;&#xff0c;运用共享技术有效地支持大量细粒度的对象。 类图 说明 Flyweight&#xff08;轻量级&#xff09; 按照通常方式编写程序会导致程序变重&#xff0c;所以如果能够共享实例会比较好&#xff0c;而Flyweigh…

idea右上角浏览器图标没有idea内部浏览器怎么显示

idea右上角浏览器图标没有idea内部浏览器怎么显示 file -> settings -> tools -> web brosers 选择需要的浏览器&#xff0c;勾选上展示到编辑器中 打开上图的Built-in Preview&#xff0c;就会显示idea标志的内部显示了&#xff01;&#xff01;&#xff01;

UWB 技术及应用

超宽带技术为工业自动化提供独特优势&#xff0c;是首要的室内定位技术。 UWB 因其相对于 RFID、BLE 或 WiFi 等同类技术的众多优势而被认为是室内定位技术的黄金标准。它是基于位置的自动化的理想解决方案。 UWB 结合了短光速脉冲&#xff0c;可在宽带宽上精确测量信号到达时…

Go语言的编译过程

简介 Go 语言和Java语言一样都是一门需要编译才能运行的编程语言&#xff0c;也就是说代码在运行之前需要通过编译器生成二进制机器码。 Go 语言编译器的源代码在 src/cmd/compile 目录中&#xff0c;目录下的文件共同组成了 Go 语言的编译器&#xff0c;而编译过程是一个多阶段…

错误0x80070091(目录不是空的) 解决方案

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 文章目录 推荐阅读问题产生&#xff1a;解决方案&#xff1a;方法一&#xff1a;方法二&#x…

Linux下进程控制

文章目录 创建进程fork创建进程fork返回值写诗拷贝fork常规用法fork失败的原因 进程终止进程正常终止查看进程退出码_exit函数exit函数exit 和 _exit 的区别return退出 进程等待进程等待的方式wait方法(系统调用)waitpid方法(系统调用) WEXITSTATUS 和 WIFEXITED阻塞等待和非阻…

Windows 安装Hyber-V,并创建虚拟机

文章目录 Hyper-V名词解释Hyper-V 有哪些功能&#xff1f;Windows 上怎么启用Hyber-V1&#xff0c;通过“设置”启用 Hyper-V 角色2&#xff0c;使用 PowerShell 启用 Hyper-V3&#xff0c;使用 CMD 和 DISM 启用 Hyper-V 利用Hyper-V创建一个虚拟机 Hyper-V名词解释 Hyper-V …

快速删除node_modules文件夹

快速删除node_modules文件夹 前端开发过程中,经常会遇到npm操作问题,有时候不得不需要删除node_modules目录下所有的文件,然后重新npm install 清除缓存&#xff1a;运行 npm cache clean --force 命令来清除 npm 缓存。然后运行 npm install 命令重新安装依赖项。删除 node_…

科研绘图(一)山脊图

从今日开始&#xff0c;为大家开辟一个新的系列科研绘图。同一个竞赛下&#xff0c;大家都近乎相同的解题思路下。之所以能出现一等二等三等奖的区别很大部分都在于结果的可视化&#xff0c;为了能更好地帮助大家进行可视化&#xff0c;今后将专门推出一个可视化板块&#xff0…

互动直播 之 隐藏音频连麦者头像

目录 一、隐藏音频连麦者头像 1、相关参数 2、学生信息 3、判断是音

解决方案|镭速助力汽车行业实现数据高速传输数字化进程

在新一代信息技术驱动的数字经济时代&#xff0c;数据已然成为新型生产要素&#xff0c;是国家基础性资源和战略性资源&#xff0c;在汽车市场全球化背景下&#xff0c;产品、数据跨境、区域协同将成为车企未来常态。 1、数字时代&#xff0c;车企数据管理面临新课题 汽车产业…

使用Nonebot编写QQ机器人

使用 NoneBot 这个工具&#xff0c;来编写 QQ 机器人。 安装基础软件 一、安装 NoneBot 库 直接使用 pip 安装即可 pip install nonebot二、安装酷Q 软件和 HTTP API 插件 酷Q 软件可以直接到官网下载&#xff0c;https://cqp.cc/b/news&#xff0c;或者可以到网盘下载&am…

FRIDA 调用原生函数时使用补丁也生效

问题&#xff1a; Cant get Interceptor to work with NativeFunction calls Issue #166 frida/frida GitHub 即&#xff0c;你补丁了一下函数&#xff0c;你去调用它&#xff0c;发现你使用frida打的补丁和hook不生效。 解决办法&#xff1a; 1. 补丁函数必须使用Inter…

互斥、自旋、读写锁的应用场景

互斥、自旋、读写锁的应用场景 锁&#x1f512;1、互斥锁、自旋锁2、读写锁&#xff1a;读写的优先级3、乐观锁和悲观锁总结&#xff1a; 锁&#x1f512; ​ 多线程访问共享资源的生活&#xff0c;避免不了资源竞争而导致错乱的问题&#xff0c;所以我们通常为了解决这一问题…

Git提交规范

一. 修改类型 每个类型值都表示了不同的含义&#xff0c;类型值必须是以下的其中一个&#xff1a; feat&#xff1a;提交新功能fix&#xff1a;修复了bugdocs&#xff1a;只修改了文档style&#xff1a;调整代码格式&#xff0c;未修改代码逻辑&#xff08;比如修改空格、格式…

虚拟机Ubuntu网络配置

电脑有两个系统&#xff0c;windows系统和ubuntu系统&#xff0c;那网卡到底给哪一个用呢&#xff0c;所以要选择桥接模式&#xff0c;就可以共用网卡 但是我们电脑网卡&#xff0c;有线网卡&#xff0c;无线网卡&#xff0c;到底使用哪个网卡&#xff0c;所以选择桥接到自动或…