首页 > 笔经面经 > 艺龙2018秋招Java笔试题

艺龙2018秋招Java笔试题

头像
周周clever
发布于 2018-05-05 23:04:12
回复1 | 赞 1 | 浏览2616
在牛客做了那么多题,终于轮到我分享了~~这是我做过的艺龙的Java笔试题哦~~

单选题

1、设有以下递归函数:

    int f(int m,int n)

    {

      if(m==0)

      {

        return n+1;

      }

      else if(n==0)

      {

        return f(m-1,1);

      }

      else

      {

        return f(m-1,f(m,n-1));

      }

    }

f(3,3)的返回值为( C 

A.  63

B.  62

C.  61

D.  60

2、以下有关多道程序的描述中,正确的是(  A )。

A.  在多道程序环境下,数据的输入与程序执行开始时间都是随机的

B.  在多道环境下执行的每道程序必须同时开始、同时结束

C.  多道程序带来了程序间的资源竞争,程序不断被“执行-暂停-执行……”,降低了整个系统的执行效率

D.  在单CPU系统中,无法实现多道程序  

3、Mysql中存放日期时间型数据时,最佳数据类型是( B 

A.  Bigint

B.  Datetime

C.  Date

D.  Timestamp

4、下列说法正确的是( C  

5、所有关键活动提前完成,则整个活动提前完成

A.  任何一个关键活动提前完成,将使整个工程提前完成

B.  某些活动若提前完成,将有可能使整个工程提前完成

C.  关键活动不按期完成将会影响整个工程的完成时间

5、下列代码执行后的变量num3的值是( D 

  int num1=6,num2=7,num3=12;

  if(++num1=num2)

num3=++num3*3;

A.  37

B.  12

C.  36

D.  39

6、设关键字为{2,4,7,9,11,15,23,27,29,31,35,40,43,50,65}的有序文件,当用折半查找算法查找关键字为43时,比较次数为( B

A.  2

B.  4

C.  6

D.  8

7、对于如下代码段

 class A{public A foo(){return this;}}

 class B extends A{public A foo(){return this;}}

 class C extends B

{

}

可以放入横线位置,使程序正确编译运行,而且不产生错误的选项是( D

A.  public int foo(){return 1;}

B.  public A foo(){return A;}

C.  public void foo(){}

D.  public A foo(B b){return b;}

8

void recursive(int n,int m,int o)

{

   if(n<=0)

   {

     printf(“%d,%d\n”,m,o);

   }

   else

   {

recursive(n-1,m+1,o);

recursive(n-1,m,o+1);

   }

}

以上函数的时间复杂度为( D 

A.  O(n*m*o)

B.  O(n^2*m^2)

C.  O(2^n)

D.  O(n!)

9、设有5件物品,其重量分别为{77,22,29,50,99},价值分别为{92,22,87,46,90},背包的容量为100,求背包的最大价值为( B  

A.  155

B.  133

C.  109

D.  114

10、某学校图书馆使用关系型数据库管理学生借书信息,设有表示学生借书的三张表:学生S(学号,姓名,性别,年龄,院系),图书B(书号,书名,作者,出版社,价格),借书SB(学号,书号,借阅时间),则表SB的键或码为( B  )  

A.  书号,借阅时间

B.  学号,书号

C.  SB无键或码

D.  学号,借阅时间

11、下面哪个语句是语法正确的( D   

A.  char[] ca = “Some String”;

B.  int[3] ia= {1,2,3};

C.  double[] db = new int[10];

D.  float fa[];

12、线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有( A   )。

A.  插入与删除运算效率高

B.  排序时减少元素的比较次数

C.  节省存储空间

D.  便于查找

13、LR分析法是一种( A  )分析技术

A.  自底向上

B.  自右向左

C.  自左向右

D.  自顶向下

14、关于继承说法正确的是:( C 

A.  Java类允许多继承

B.  接口与类都不允许多继承

C.  Java接口允许多继承

D.  接口与类都允许多继承

15、下列叙述中正确的是( C  )。

A.  向一个含有100个元素的单链表中插入一个元素,最坏情况需要移动100个元素

B.  在一个含有100个元素的单链表中,使用二分查找法查找一个元素,最坏需要比较log2(100)

C.  在一个含有100个元素的数组中,使用二分查找法查找一个元素,最坏需要比较log2(100)

D.  向一个含有100个元素的数组中插入一个元素,最坏情况需要移动99个元素

16、某网络的IP地址空间为10.0.17.0/24,采用等长子网划分,子网掩码为255.255.255.240,则该网络的最大子网个数、每个子网内的最大分配地址个数为( B )

A.  326

B.  1614

C.  328

D.  3216

17、设某餐厅有10张餐桌,如用P-V操作实现餐桌资源分配,设信号量为S,以下叙述中错误的是( D  )

A.  等待客人队列中的客人必须等到S>0时,才能进入餐厅用餐

B.  新客人来到后应依次执行P(S)操作、用餐、V(S)操作

C.  新客人执行P(S)操作后,如发现S0,则应进入等待客人队列中等待

D.  执行V(S)操作后,如发现S0,则应通知等待客人队列中的下一位客人用餐

18、n=1时,T(n)=1;当n>1时,T(n)=3T(n/3)+n;求该递归方程的时间复杂度( D 

A.  O(n2)

B.  O(nlog3n)

C.  O(n3)

D.  O(n)

19

    class Person {

        private String name;

        private int age;

        public Person(String name,int age){

        this.name = name;

        this.age = age;

        }

    }

    public static void main(String[] args) throws Exception{

        Class clazz = Person.class;

        Person p = (Person)clazz.newInstance();

        System.out.println(p==null?false:true);

    }

以上代码的执行结果是( A  

A.  运行时抛出异常

B.  true

C.  编译不通过

D.  False

20、比较s1s2指向的两个字符串是否相等,如下表达式中正确的是( C 

A.  (s1.length().equals(s2.length())

B.  (s1 == s2)

C.  (s1.equals(S2))

D.  (s1.length().equals(s2))

21、以下有关死锁的叙述中,错误的是( D 

A.  如果允许进程剥夺使用其他进程占有的资源,就不会出现死锁

B.  银行家算法可避免死锁的发生,但需要很大的系统开销

C.  系统发生死锁时,死锁进程的个数至少为2

D.  要消除死锁,必须避免在资源分配图中存在环路

22、若一棵完全二叉树共有m个结点,则其叶子结点数不可能是( B  )。

A.  (m+1)/2

B.  奇数个叶子结点

C.  (m-1)/2

D.  m/2

 

多选题

1、在语义分析中,符号表用于( AC 

A.  语义检查

B.  语法检查

C.  产生中间代码

D.  地址分配

2、在下列选项中,创建和启动线程的方程式正确的是:(AB 

A.  new Thread(){

public void run(){

doStuff();

}

}.start();

B.  new Thread(new Runnable(){

public void run(){

doStuff();

}

}).start();

C.  new Thread(){

public void strat(){

doStuff();

}

}.run();

D.  new Thread(new Runnable(){

public void run(){

doStuff();

}

}).run();

3、以下哪个方法与方法public void guess(int a){}是重载方法(ABD   

A.  public void guess(int a, int b)

B.  public void guess(long a)

C.  public int guess(int a)

D.  public void guess(float a)

4、下列哪些协议属于网络层的协议(ABC

A.  IGMP

B.  ICMP

C.  ARP

D.  PPP

5、在实际开发过程中,我们需要应用程序中保持唯一的一个实例,即单例模式,以下说法正确的是( BD

A.  其它选项均不正确

B.  它具有私有成员变量

C.  它拥有公有的构造方法

D.  它具有静态公有方法

6、在计算机网络中,关于服务与协议的说法中是( CD

A.  服务与协议是完全相分离的

B.  服务与协议是相同的概念

C.  服务是各层向其上层提供的一组操作,涉及两层间接口的定义及实现

D.  协议与服务的具体实现有关

7、下面关于设计模式说法错误的是(CD  

A.  装饰模式能够动态地为一个对象增加新的职责

B.  设计模式的基本要素包括名称、意图、解决方案、参与者和协调者

C.  当需要用比较通用和复杂的对象指针代替简单指针时应用职责链模式

D.  简单工厂模式的优点是工厂角色可以通过继承而得以复用

8、若用一个大小为6的一维数组实现环形队列,且当前rearfront的值分别为15,当从队列中删除一个元素,再插入两个元素后,以下说法正确的是(ACD  

A.  rear的值为3

B.  front的值为4

C.  完成插入删除操作后,队列中元素个数为3

D.  front的值为0

 

1/2

幸运序列

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

对于一个序列Ai(0<i<=n),我们称相邻两个数字的绝对值之差为跳数,如果序列Ai的所有跳数包含1到n-1的所有值,则称Ai为幸运序列。

例如序列:1 4 2 3是一个幸运序列,因为所有的跳数分别为3、2和1包含1到n-1(n=4)的所有值。

你的任务是判断一个序列是否为幸运序列

输入

每行包含一个整数n(0<n<=3000)表示序列长度,后面依次是n个整数Ai(Ai<|10^6|)

输出

对于每一行的输入,产生一行输出说“Luck sequence”或“Unluck sequence”。

 

样例输入

5 6 -1 2 4 1

样例输出

Unluck sequence

 

 

2/2

数字分组

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

给定一组数,问能否分成两组和相等的数,不必用上全部的数字。

若能,求各组的和。否则输出“Impossible”。

输入

第一行,一个正整数n(1<=n<=100),数的个数。

第二行n个正整数。这些数的和不超过2000.

输出

一行。

如果能分成两组和相同的数,输出和。

否则输出“Impossible”,不含引号。

 

样例输入

5

1 3 4 5 2

样例输出

7

 

Hint

可以分出3,4与5,2两组数。1保留。

 

 

 

1条回帖

回帖
加载中...

近期热帖

热门推荐

扫一扫,把题目装进口袋

牛客网,程序员必备求职神器

扫描二维码,进入QQ群

扫描二维码,关注牛客网公众号

  • 公司地址:北京市朝阳区大屯路东金泉时代3-2708北京牛客科技有限公司
  • 联系方式:010-60728802(电话) admin@nowcoder.com
  • 牛客科技©2018 All rights reserved
  • 京ICP备14055008号-4
  • 京公网安备 11010502036488号