嘿。老师竟然把考试电子档都发回来了~
测试题(笔试)
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 |