嘿。老师竟然把考试电子档都发回来了~
测试题(笔试)
Java OO
成都朗沃信息技术有限公司
不定项选择题(50题,每题2分,满分100分,测试时间2小时)
1) | 面向对象的特征有哪些?。(多选)【abd】 | |
| a) | 封装 |
| b) | 继承 |
| c) | 跨平台 |
| d) | 多态 |
2) | 下面说法正确的是()。(单选)【d,main方法错】 | |
|
| public class A{ static int x; public static void main(String args){ System.out.println(x); } } |
| a) | 正常执行,什么都不打印 |
| b) | 正常执行,打印0 |
| c) | 编译错误 |
| d) | 编译通过,但运行时有错误 |
3) | 下面不属于基本类型的是(单选)【c】 | |
| a) | Long |
| b) | Float |
| c) | String |
| d) | Boolean |
4) | 下面哪些属于Java的引用数据类型包括()。(多选)【借口,类,数组】【abcd】 | |
| a) | 基本数据类型数组 |
| b) | 接口 |
| c) | 字符串 |
| d) | 引用数据类型数组 |
5) | 有一个java文件“Test.java”内容如下: class MM{ public static void main(String[] args){ System.out.println("hello word"); } } 对该文件进行编译和执行的命令为:( )。(单选) | |
| a) | 编译: javac Test.java 执行: java Test |
| b) | 编译: javac Test.java 执行: java MM |
| c) | 编译: javac Test 执行: java Test |
| d) | 编译: javac Test.java 执行: java Test.class |
6) | 下面关于Java语言中多态的描述正确的是()。(多选)【134】 | |
| a) | 多态是指父类变量可以指向子类对象【S xx=new 小S();】 |
| b) | 多态是指子类变量可以指向父类对象 |
| c) | Java中动态绑定是实现多态的主要手段【调的方法是子类的叫动态绑定】 |
| d) | 多态是指相同的行为不同的体现。 |
7) | public class A{ public static void main(String[] args){ int a = 1; switch(a){ case 0: System.out.print("0 "); case 1: System.out.print("1 "); case 2: System.out.print("2 "); break; default: System.out.print("default"); } } } 执行的结果是()(单选)【1】 | |
| a) | 1 2 |
| b) | 1 |
| c) | 1 2 default |
| d) | 0 1 2 defalut |
8) | JAVA中定义一个常量使用什么修饰符()。(单选)【3】 | |
| a) | Public |
| b) | Static |
| c) | Final |
| d) | Friendly |
9) | 在Java中,下列()类不能派生出子类( ) (单选) 【final和构造方法私有的不能写子类】【4】 | |
| a) | public class MyClass{} |
| b) | class MyClass{} |
| c) | abstract class MyClass{} |
| d) | final class MyClass{} |
10) | 下面关于抽象类和接口的说法哪些是错误的()(多选)【124】 | |
|
|
|
| a) | 抽象类中只能包括抽象方法,必须写abstract关键字【可具体方法】 |
| b) | 接口中的方法只能是抽象的,但不能写abstract关键字【可写可不写】 |
| c) | 接口中的方法只能是public的【写不写都是public】 |
| d) | 抽象类不能被抽象类继承。 |
11) | 当试图编译并运行下面程序时会出现什么结果()(单选)【3】 | |
|
| class A{ public int getNumber(int a){ return a+1; } } class B extends A{ public int getNumber(int a, char c){ return a+2; } public static void main(String[] args){ B b=new B(); System.out.println(b.getNumber(0)); } }【注意参数】 |
| a) | 编译错误 |
| b) | 运行错误 |
| c) | 1 |
| d) | 2 |
12) | 当编译并运行下面程序时会出现什么结果( )(单选)【2】 | |
|
| public class MyAr{ |
| a) | 编译错误 |
| b) | 运行错误 |
| c) | 输出0 |
| d) | 输出“null” |
13) | 在以下循环中,至少执行一次的循环的是()(单选)【2】 | |
| a) | while |
| b) | do……while |
| c) | for |
| d) | if |
14) | 有代码片断: public static void main(String[] args){ int i=0; while(true){ System.out.print("*"); i++; if(i<3){ break; } } } 执行的结果为( )(单选)【1】 | |
| a) | * |
| b) | ** |
| c) | *** |
| d) | 死循环,报错 |
15) | 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用()关键字来声明父类的这些方法。(单选)【3】【抽象方法,需由它的子类实现这个方法】 | |
|
|
|
| a) | final |
| b) | static |
| c) | abstract |
| d) | void |
16) | 有代码片断 int x = 9,y=0; if(x>0){ y = 1; } else if(x>3){ y = 2; } System.out.println(y); 执行以上代码输出的结果是:()(单选)【2】 | |
| a) | 0 |
| b) | 1 |
| c) | 2 |
| d) | 编译错误 |
17) | 下面关于构造方法的说法正确的是()(多选)【12】 | |
| a) | 构造方法不能被继承 |
| b) | 构造方法不能被重写 |
| c) | 构造方法不能被重载 |
| d) | 构造方法不能声明为private |
18) | 有以下代码片段: double x = 0.2; int y = 8; System.out.println((int)x*y); 执行结果是( )。(单选)【1】 | |
|
|
|
| a) | 0 |
| b) | 1 |
| c) | 2 |
| d) | 编译错误 |
19) | 在Java中,下面关于抽象类的描述正确的是()(多选)【24】 | |
|
|
|
| a) | 抽象类可以被实例化 |
| b) | 如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象类 |
| c) | 抽象类的方法都必须是抽象的 |
| d) | 声明抽象类必须带有关键字abstract |
20) | 给定如下java代码程序片断: class A{ public A(){ System.out.print(“A”); } }
class B extends A{ public B(){ System.out.print(“B”); }
public static void main(String[] args){ B b=new B(); } } 上述程序将()(单选)【2】 | |
| a) | 不能通过编译 |
| b) | 通过编译,输出为AB |
| c) | 通过编译,输出为BA |
| d) | 通过编译,输出为B |
21) | public static int test(int a,int b){ int c = a+b; a = 8; b = 9; return c; } public static void main(String[] args){ int a = 3,b = 4; int c = test(a,b); System.out.print(a+" "+b+" "+c); } 以上代码输出结果为( )(单选)【3】 | |
|
|
|
| a) | 8 9 17 |
| b) | 8 9 7 |
| c) | 3 4 7 |
| d) | 3 4 17 |
22) | 在JAVA中,按东南西北中指定组件位置的布局管理器是()(单选) 【3】 | |
|
|
|
| a) | FlowLayout 【流,循环,流动,流式布局】 |
| b) | GridLayout 【格子】 |
| c) | BorderLayout 【边框布局】 |
| d) | CardLayout |
23) | 当编译和运行下面程序时,哪项描述可以最准确的表达发生了什么事情( )(单选)【2】 | |
|
| public class MyAr{
} |
| a) | 编译通过,并输出0 |
| b) | 编译错误 |
| c) | 编译通过,并输出null |
| d) | 运行错误 |
24) | 给定JAVA代码如下,编译运行后,输出结果是()(单选)【3】 | |
|
| public class Test{ static int i; public int test(){ i++; return i; } public static void main(String args[]){ Test test=new Test(); test.test();【1】 System.out.println(test.test());【2】 }【执行了2次test.test】 } |
| a) | 0 |
| b) | 1 |
| c) | 2 |
| d) | 3 |
25) | 给定JAVA代码如下,关于super的用法,以下描述正确的是( )(单选)【4】 | |
|
| class C extends B { public C() { super(); } } |
| a) | 用来调用类B中第一个出现的构造方法 |
| b) | 用来调用类C中定义的super()方法 |
| c) | 用来调用类B中定义的super()方法 |
| d) | 用来调用类B中的无参构造方法 |
26) | 给定java代码如下,编译运行结果是()(单选)【1】 | |
|
| public class Test{ public int count(){ return 1%9; } public static void main(String[]args){ System.out.println(count()); } } |
| a) | 编译错误【静态方法不能调成员方法】 |
| b) | 运行错误 |
| c) | 正常运行,输出1 |
| d) | 正常运行,输出0 |
27) | class Person{ public int age; } class Test{ public static void main(String[] args){ Person p1 = new Person();【0】 p1.age = 10;【10】 Person p2 = new Person();【0】 p2.age = 20;【20】 test(p1,p2); System.out.println(p1.age+" "+p2.age); } public static void test(Person p1,Person p2){ p1 = p2; p1.age = 8; p2.age = 6; } } 结果是( )(单选)【e】 | |
| a) | 10 8 |
| b) | 10 20 |
| c) | 8 20 |
| d) | 8 6 |
| e) | 10 6 |
28) | 表达式5<6?4:3执行的结果是( )(单选)【1】 | |
| a) | 4 |
| b) | 3 |
| c) | true |
| d) | false |
29) | 以下哪些是算法的特点()(多选)【123】 | |
| a) | 有穷性 |
| b) | 有效性 |
| c) | 确定性【如0不能做除数,不然结果是很多的】 |
| d) | 至少有一个输入,可以有多个输出。 |
30) | 有Java代码如下:请问编译出来的类文件的文件名分别是什么()(多选) | |
|
| public class One{ 【abd】 public class Three{ } } class Two{ } |
| a) | One.class |
| b) | Two.class |
| c) | Three.class |
| d) | One$Three.class |
| e) | One$Two.class |
31) | 下面关于JAVA特点描述正确的是()(多选)【124】 | |
| a) | 跨平台 |
| b) | 面向对象 |
| c) | 是编译型语言【解释性】 |
| d) | 垃圾回收 |
32) | public class A{ public static void main(String[] args){ int a = 2,b = 4; if(a > 2 && (++b)>4) { b++; } System.out.println(b); } }的结果是()(单选)【2】 | |
|
|
|
| a) | 5 |
| b) | 4 |
| c) | 6 |
| d) | 无法通过编译 |
33) | 假如函数的定义形式为: public static void fun(int a,char b){……} 那么下面哪些调用是正确的( )(多选)【34】 | |
| a) | fun(5,”A”); |
| b) | fun(5,’65’);【只能放一个字符】 |
| c) | fun(5,'A'); |
| d) | fun(‘5’,65); |
34) | 下面关于switch语句说法不正确的是()(多选)【234】 | |
| a) | case后面只能跟常量 |
| b) | case后面可以跟变量 |
| c) | 每个case后面必须有break;语句 |
| d) | default必须放到最后。 |
35) | 下面表示先执行后判断(do…while)类型的流程图正确的是()(单选)【3】 | |
| a) | |
| b) | |
| c) | |
| d) |
36) | 在java中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是( )(单选) 【3】 | |
|
|
|
| a) | interface A extends B,C |
| b) | interface A implements B,C【只能类实现借口】 |
| c) | class A implements B,C |
| d) | class A implements B,implements C |
37) | 给定JAVA代码,如下,编译运行后,结果是( ).(单选) 【2】 public class Test { static String s;【null指针】 public static void main(String args[]) { boolean c=s.equals(""); System.out.print(c); } } | |
|
|
|
| a) | 编译错误 |
| b) | 运行错误 |
| c) | 正常运行,输出true |
| d) | 正常运行,输出false |
38) | 考虑下面的代码 public class ConstOver{ public ConstOver(int x,int y,int z){} } 说出哪些重载了ConstOver构造器?(多选)【13】 | |
|
| 【找不是构造方法,bde】【构造方法无返回类型】 |
| a) | ConstOver(){} |
| b) | protected int ConstOver(){} |
| c) | private ConstOver(int z,int y,byte z){} |
| d) | public void ConstOver(byte x,byte y,byte z){} |
| e) | public Object ConstOver(int x,int y,int z){} |
39) | interface A{ int x = 8;【接口里public static final】 }【基本类型(常量)不能重新赋值】 class B implements A{ public static void main(String[] args){ B b = new B(); b.x = 10;【继承过来的x是常量】 System.out.println(b.x); } } 以上代码输出结果是()(单选)【1】 | |
| a) | 编译错误 |
| b) | 运行错误 |
| c) | 8 |
| d) | 10 |
40) | Object o1 = new Object(); // 1 Object o2 = new Object(); // 2
o1 = o2; //3 o2 = new Object(); //4 o1 = null; 5
以上哪些代码执行了垃圾回收( )(单选)【2】 | |
| a) | 1 3 |
| b) | 3 5 |
| c) | 3 4 |
| d) | 4 5 |
41) | class Person{ public int x = 10; } class Test{ public static void main(String[] args) { final Person p = new Person(); p.x= 8; System.out.println(p.x); } } 执行结果是()(单选)【3】 | |
|
|
|
| a) | 编译错误 |
| b) | 运行错误 |
| c) | 8 |
| d) | 10 |
42) | java注释分为:(多选)【123】 | |
|
|
|
| a) | 单行注释 |
| b) | 多行注释 |
| c) | 文档注释 |
| d) | 类注释 |
43) | 生成doc帮助文档,需要使用什么命令()。(单选)【4】 | |
|
|
|
| a) | java |
| b) | jar |
| c) | javac |
| d) | javadoc |
44) | 下面关于数组的说法正确的是()(多选)【234】 | |
| a) | 是一种基本数据类型【引用类型】 |
| b) | 数组只能存放同一数据类型的数据。 |
| c) | 数组的大小一旦固定不能改变。 |
| d) | 数组分配的内存空间是连续的。 |
45) | class A{ public static void main(String[] args) { int a[]={2, 4, 6, 8, 10} ; int y=1 ; int x; for(x = 0; x < 3; x++) { y=y+a[x+1]; } System.out.println(y); } }的结果是()(单选)【3】 | |
| a) | 17 |
| b) | 18 |
| c) | 19 |
| d) | 20 |
46) | class A{ public int a = 9; public void ma(){} } class B extends A{ public int b = 8; public void mb(){} } class C{ public static void main(String[] args){ A atest = new B();【多态】 //here } } 下面哪些代码放在"here"处不会报错( )(多选)【13】 | |
| a) | atest.a = 10;【考多态,只能调父类的】 |
| b) | atest.b = 10; |
| c) | atest.ma(); |
| d) | atest.mb(); |
47) | 下列变量命名合法的有( )(多选)【23】 | |
| a) | public |
| b) | var_123 |
| c) | $test |
| d) | 123Var |
48) | protected float getNum(){return 3.0f;} }
public class Sub extends Super{ //Here } 下面哪些代码可放在Here处( )(多选)【c】【需斟酌】 | |
| a) | public void GetNum(){return 4.0f;} 【不可,返回的是float】【去掉花括号里可】 |
| b) | public void getNum(String x){return 4.0f;} 【同上】 |
| c) | public float getNum(){return 4.0f;} |
| d) | private float getNum(){return 4.0f;} 【重写修饰符不能小于父类】 |
| e) | public void getNum(){return 4.0f;} 【不可,返回的是float】 |
49) | public class Test{ public int x = 10; public void move(int x){ System.out.println(x); System.out.println(this.x);【打印成员变量】 }
public static void main(String[] args){ Test t = new Test(); t.move(5); } 以上代码执行结果为()(单选)【1】 | |
| a) | 5 10 |
| b) | 10 10 |
| c) | 10 5 |
| d) | 5 5 |
50) | 1、 byte b = 129;【超了】 2、 byte b1 = 10; byte b2 = 20; byte b3 = b1+b2;【不可】 3、 char c = 90;【可,整型可给char】 4、 float f = 8.0; 以上表达式哪些有编译错误()(单选)【4】 | |
| a) | 1、2、3、4 |
| b) | 2、3、4 |
| c) | 1、3、4 |
| d) | 1、2、4 |