JD(2)


一:

笔试分两套:云计算和软件开发(移动客户端方向)

云计算方向:

一、选择,3分一个

1、单链表插入的代码是

2、3个节点的二叉树有多少种

3、n个点的无向图要连通,最少需要几条边

4、写了个广义表,问深度和广度

5、n个节点的完全二叉树,深度为?

二、写SQL语句4分一个,5道

三、基础题

1、fun(9999)的值,写出思路(4分)

[html] view plaincopyint fun(int x)

{

int count = 0;

while(x)

{

count++;

x = x&(x-1);

}

return count;

}

2、找出以下代码的bug,大约10行(10分)

3、栈R和队列Q,栈从顶到底为{2,4,6,8,10},将栈元素出栈并入队Q,再入栈后元素为 (5分)

4、A、B、C、D、E、F分别为0-9的数,已知ABCDEF*2 = CDEFAB, CDEFAB*2 = EFABCD求ABCDEF分别为多少,写出思路(6分)

四、简答题,10分一个

1、深入描述自己熟悉的2个设计模式,并说明适用场合

2、详细描述HashMap的实现原理

移动终端方向

1、链表逆置

2、深度遍历目录,并列出其中所有的文件。要求

1)可以用已有API,也可以自己实现

2)分别用迭代和递归两种方式实现

3、字符串全排,比如abc的全排是abc、acb、bac、bca、cab、cba

4、求有根二叉树中节点D和T的最近祖先

5、left join,right join和insert join的区别

6、写SQL语句

7、题目太长

8、有7g和2g的砝码和一个天平,怎么用3次把140g的盐氛围50g和90g?

京东商城笔试真题二:

数据库

1、现有两个表Student。 StudentScore,如下:

(1)写出Student、StudentScore的建表语句

(2)写出Student、StudentScore之间Left Join,Right Join和Inner Join的sql语句

(3)写出Student、StudentScore之间Left Join,Right Join和Inner Join的结果,样式如下:

(4)

在Student中插入一条新记录(4,王五,男),请写出对应的sql语句

(5) 写出统计所有的课程考试及格(>=60)的人数的Sql语句,结果要包含课程和人数字段

CREATE TABLE Student

( Id CHAR (5),

Name CHAR (8) NOT NULL,

Sex CHAR (2),

PRIMARY KEY(Id),

CHECK Sex IN (‘男’,‘女’)

);

CREATE TABLE StudentScore

( StudentId CHAR (5),

Course CHAR (8) ,

Score NUM,

FOREIGN KEY(StudentId ) REFERENCES Steudent(Id)

);

SELECT * FROM Student LEFT OUTER JOIN StudentScore;

SELECT * FROM Student RIGHT OUTER JOIN StudentScore;

INSERT INTO Student VALUES ('4','王五','男');

SELECT Course,count(*)

FROM StudentScore

GROUP BY Course

HAVING Score > 60;

第四部分 逻辑

1、你让工人为你工作7天,给工人的回报是1根金条。金条平分成相连的7段,你必须在每天结束时给他们1段金条,如果只许你两次把金条弄断,你如何给你的工人付费?

2、请把1盒蛋糕分成8份,分给8个人,但蛋糕盒里还必须留有一份

3、 U2合唱团在赶往演唱会场的途中必须跨过1座桥,4个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有 2人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥的两端。4个人的步行速度各不同,若2人同行则以比较慢的人速度为准。 Bono需要花1分钟过桥,Edge需花2分钟过桥,Adam需花5分钟过桥,Larry需花10分钟过桥。请写出最短的时间和步骤。

4、有7克、2克砝码各一个,天平一只,如何只用这些物品3次将140的盐分为50,90,个、克各一份?

5、4,4,10,10,运用加减乘除,怎么得出24点?

第五部分 其它

1、请阐述进程和线程的区别

2、常用的内存管理方法有哪几种

3、请说出ISO网络参考模型有哪几层,并简单描述每一层功能

第六部分 Java

1、Java多线程有几种实现方法?

2、String与StringBuffer的区别

3、ArrayList和Vector主要区别是什么?

4、请简述servlet的生命周期

Servlet生命周期分为三个阶段:

1,初始化阶段 调用init()方法

2,响应客户请求阶段调用service()方法

3,终止阶段调用destroy()方法

第七部分 .NET

1、声明常量时通常会用关键字const和static,请说明两者的不同

2、String与StringBuilder的区别

3、Asp.Net种页面之间传值有几种方式?

  1. Asp.Net中的Session经常丢失,怎么解决?



京东商城的笔试题真得很特别,没有选择,全部是填空,最后照例两道编程题。

内容主要就是数据结构,还有大量的概念题,这个.....反正我是写不出来。

还有一个数据库实例,写一些增删改查的SQL语句,没什么难度。

两道逻辑题,悲催的是我不会。

一个是12个小球,其中一个重量不同,用天平称三次,把它找出来;一个是飞机加油问题,很老的问题,一个飞机可以飞半个地球,飞机间可以互相加油,求让一个飞机飞整个地球最少要出动多少架飞机;有兴趣的同学可以想一下,当然网上已经有现成的答案了。

最后两个编程题现在看起来不算太难,但当时就是写不出来,可能我实在是不适应现场手写代码吧,回来后很快就写出来了,放出来给大家看看。

1.求一个数组里面最大的K个数。

public class FindBigK {

public static void main(String[] args) {

int[] array=new int[]{1,5,-1,8,0,2}};//示例数组

int k=3;//设K=3

int [] out=findK(array,k);

for(int i=0;i

System.out.println(out[i]);

}

}

static int[] findK(int[] array,int k){

int temp=0;

int charge=0;

int[] out=new int[k];

for(charge=0;charge

int mark=charge;

int big=array[charge];

for(int i=charge+1;i

if(big

big=array[i];

mark=i;

}

}

temp=array[charge];

array[charge]=array[mark];

array[mark]=temp;

out[charge]=array[charge];

}

return out;

}

}

求得为8 5 2

2.求一个数组中相加的值最大的连续序列

public class FindBigArray {

public static void main(String[] args) {

int[] array=new int[]{-2,9,-3,4,-6,7,-6,4};//示例数组

int sum=0;

int start=0;

int end=1;

int newstart=0;

int big=0;

for(int i=0;i

sum+=array[i];

if(sum<=0){

sum=0;

newstart=i+1;

}else{

if(sum>big){

big=sum;

start=newstart;

end=i+1;

}

}

}

for(int i=start;i

System.out.println(array[i]);

}

}

}

求得序列为 9 -3 4 -6 7


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值