石家庄神月软件java笔试

一、选择题

(单选,多选混合,少选错选不得分)(每题 2分,共30分)

请将选择题答案写在对应题号下的表格内(写在其它地方无效)。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
A D B B C D A C A A AB A C D C
  1. 设int型变量x=2,y=4,z=6,则表达式x+=z++/y++的值是 A

    ​ A.3 B.3.4 C.3.5 D.4

  2. 下列代码中,将引起一个编译错误的行是 D

    1)public class Test{  
    2) int m,n;  
    3) public Test() {}  
    4) public Test(int a) {m=a;}  
    5) public static void main(String args[]){  
    6) Test t1,t2;  
    7) int j,k;  
    8) j=0;k=0;  
    9) t1=new Test();  
    10) t2=new Test(j,k);  
    11) }  
    12)}  
    

    A.第3行 B.第5行 C.第6行 D.第10行

  3. 一个servlet的生命周期不包括 方法?B

    A.init()方法 B.invalidate()方法

    C.service()方法 D.destroy()方法

  4. java.lang包的()方法比较两个对象是否相等,相等返回true。B

    A.toString()B.equals()C.compare()D.以上所有选项都不正确

  5. HttpServletRequest对象的 方法能够获取一个表单参数的值:C

    A.getQuaryString() B.getPathInfo() C.getParameter() D.getAttribute()

  6. 关于Map和List,下面说法正确的是( )。D

    A.Map继承List

    B.List中可以保存Map或List

    C.Map和List只能保存从数据库中取出的数据

    D.Map的value可以是List或Map

  7. 给定如下Java代码,编译运行的结果是()。A

    import java.util.*;
    
    public class Test {
    
    public static void main(String[] args) {
    
    LinkedList list=new LinkedList();
    
    list.add(“A”);
    
    list.add(2,”B”);
    
    String s=(String)list.get(1);
    
    System.out.println(s);
    
    }
    
    }
    

    A.编译时发生错误 B.运行时引发异常

    C.正确运行,输出:A D.正确运行,输出:B

  1. 执行下面的代码会引发( )异常。C

    String str=null;
    
    String strTest=new String(str);
    

    A.InvalidArgumentException B.IllegalArgumentException

    C.NullPointerException D.ArithmeticException

  1. 多态的表现形式有A

    A) 重写
    B) 抽象
    C) 继承
    D) 封装

  2. 在HTML上,将表单中INPUT元素的TYPE属性值设置为( A )时,用于创建重置按钮。

    A. reset B. set C. button D. image

  3. 下列语句能够正确在一个HTML页面中导入在同一目录下的“StyleSheet1.css”样式表

的是( )。AB

A.  

B.  

C. < link rel=”stylesheet1.css” type=”text/css”> 

D.  

  1. 在使用super 和this关键字时,以下描述正确的是A

A. 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B. super()和this()不一定要放在构造方法内第一行
C. this()和super()可以同时出现在一个构造函数中
D. this()和super()可以在static环境中使用,包括static方法和static语句块

  1. 下列关于类和对象的叙述中,正确的是 C

A.类是对象的模板,一个类仅能生成一个对象

B.对象是类的模板,一个对象仅能生成一个类

C.类是对象的模板,一个类是一组对象的集合

D.对象是类的模板,一个对象是一组类的集合

  1. 以下关于软件开发文档的叙述中,错误的是 D

A.软件开发是程序及其相应文档的生产过程

B.软件开发过程中的重要信息需要固化在文档中,以便积累开发经验

C.由于担心设计人员中途离职,所以要让他们写下文档

D.在软件开发过程中,面对面交流并不可靠,应当完全用文档来代替

15.阅读下面的代码 C

package test;
 public class  FatherClas {
     public FatherClass() {
         System.out.println("FatherClass Create");
     }
 }
 子类:
 package test;
 import test.FatherClass;
 public class  ChildClass extends FatherClass {
     public ChildClass() {
         System.out.println("ChildClass Create");
     }

public static void main(String[] args) {

FatherClass fc = new FatherClass();

ChildClass cc = new ChildClass();

}
 }

在控制台中执行如下命令
C:>java test.ChildClass

请选择正确的输出结果:

A. FatherClass Create
ChildClass Create
FatherClass Create

B. FatherClass Create

​ ChildClass Create
​ ChildClass Create

C. FatherClass Create
FatherClass Create
ChildClass Create

D. ChildClass Create
FatherClass Create
ChildClass Create

二、代码查错

(每题 4分,共20分)

正确的打勾;错误的打叉,并描述错误原因

1. 错误原因 抽象类方法不能有方法体

2. 错误原因 局部变量前不能放置任何访问修饰符

3. 错误原因 常量i没有赋值

4. 错误原因 name空指针异常

5. 错误原因 x执行不到

1. abstract class Name {
        private String name;
        public abstract boolean isStupidName(String name) {}

   }

2. public class Something {
   void doSomething () {
         private String s = "";
			int l = s.length();
			}
		}

3. class Something {
   				final int i;
                public void doSomething() {
                System.out.println("i = " + i);
                }
         }

4. Class Demo {

    public void compareName(String name){
    System.out.println(“is Tom ? ” + name.equals(“Toms”));

	}

	}

5. public class Something {
           public int addOne(final int x) {
            return x;
   			x--;
   	 }
}

三、综合题(共50分)

笔试题1:

举办一个单循环淘汰赛制的体育比赛,有N个运动队参加,每轮相邻两个队伍仅比赛一场,败者立刻淘汰,胜者晋级下一轮,当轮比赛队伍为奇数时,则选一队轮空直接晋级下一轮。只到最后产生胜者。

规则解释如下图:

总共A、B、C、D、E五队参赛:

第一轮:场次①---- A vs B,B获胜 场次②---- C vs D, C获胜 本轮E队轮空 第二轮:场次③ ---- C vs E,E获胜 本轮B队轮空 第三轮:场次④---- B vs E, E获得冠军 总共进行了4场比赛

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3quW5sBp-1591152264029)(file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif)]

要求:a.请用java设计一个递归函数,用于计算出n个球队参加该赛制比赛,直到角逐出冠军,一共需要进行多少场比赛

​ b.不允许出现全局变量,代码尽量简洁

​ C.在main函数中调用该递归函数计算出:当99个队伍参加该比赛,总场次数是多少。(只需写出调用方式,传入具体参数即可,不必计算出结果)。(10分)

答题区(请在横线处作答)
石家庄神月软件java笔试_第1张图片

递归

  • 递归:指在当前方法内调用自己的这种现象。

  • 递归的分类:

    • 递归分为两种,直接递归和间接递归。
    • 直接递归称为方法自身调用自己。
    • 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。
  • 注意事项

    • 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

    • 在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

    • 构造方法,禁止递归

笔试题2:

试编写一个List类型的对象,只能存储通讯录(Contacts类、存储同学的姓名和联系方式),并输出通讯录的列表到控制台。定义类、定义函数、在main函数中执行并输出(9分)

Contacts:
石家庄神月软件java笔试_第2张图片
石家庄神月软件java笔试_第3张图片

笔试题3:

创建一个HashMap对象,添加一些学生的姓名和成绩:张三:90分,李四,83分。接着从HashMap中获取并他们的姓名和成绩,然后把李四的成绩改为100分,再次输出他们的信息。(9分)
石家庄神月软件java笔试_第4张图片

笔试题4:

根据下面的数据库表结构,回答问题(22分)

EMP表(员工表):包含四个字段(EMP_NO_, DEPT_NO_, FIRST_NAME_, SALARY_),

主键:EMP_NO_

DEPT表(部门表):包含两个字段(DEPT_NO_, DEPT_NAME_),主键:DEPT_NO_

每个员工都有所属部门,每个部门至少有一位员工。

要求:

第一个查询:查询出部门名称为‘市场部’的所有员工的信息,查询结果(6分):

员工编号 姓名

解答第一个查询:

石家庄神月软件java笔试_第5张图片

第二个查询:查询员工数大于5的部门,并按员工数降序排序,查询结果(8分):

部门编号 员工人数

解答第二个查询:
石家庄神月软件java笔试_第6张图片

第三个查询:查询所有员工的工资,小于3000元(含3000)的加500;3000-5000(含5000)的加300,5000以上不加,查询结果(8分):

员工编号 姓名 调整后工资

解答第三个查询:

石家庄神月软件java笔试_第7张图片

你可能感兴趣的:(java面试题)