1、JAVA考核题面向对象选择题答案北润JAVA考核-面向对象第一部分 英语测试(每题分,共分)第二部分 知识点测试(分)一、选择题(每题2分,共110分)1下面关于变量及其作用范围的陈述哪个是不对的?( B ) A实例变量是类的成员变量。B实例变量用关键字static声明。C在方法中定义的局部变量在该方法被执行时创建。D局部变量在使用前必须被初始化。2下面哪条语句把方法声明为抽象的公共方法?( B )Apublic abstract method(); Bpublic abstract void method();Cpublic abstract void method() Dpublic vo
2、id method() extends abstract;3若在某一个类定义中定义有如下的方法:final void aFinalFunction( )则该方法属于( C )。A、本地方法 B、静态方法 C、最终方法 D、抽象方法4main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( B )。A、 public static void main() B、 public static void main(String args)C、 public static int main(String args) D、public void main(
3、String arg )5在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。A、隐藏 B、覆盖 C、重载 D、Java不支持此特性6下列关于构造方法的叙述中,错误的是( C )AJava语言规定构造方法名与类名必须相同BJava语言规定构造方法没有返回值,但不用void声明CJava语言规定构造方法不可以重载DJava语言规定构造方法只能通过new自动调用7关于被私有访问控制符private修饰的成员变量,以下说法正确的是( C )A可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他
4、包中的该类的子类B可以被两种类访问和引用:该类本身、该类的所有子类C只能被该类自身所访问和修改D只能被同一个包中的类访问8类Test1定义如下:1. public class Test12 public floataMethod(float a, float b)3 4 将以下哪种方法插入行3是不合法的。( B )A、public float aMethod(float a,floatb,float c) B、public float aMethod(float c,floatd) C、public int aMethod(int a,intb) D、private float aMethod
5、(inta,intb,intc) 9阅读以下代码:public class foopublic static void main (String args)String s;System.out.println(s= + s); 输出结果应该是:( C )A代码得到编译,并输出“s=”B代码得到编译,并输出“s=null”C由于String s没有初始化,代码不能编译通过D代码得到编译,但捕获NullPointException异常解析:局部变量必须显示的初始化。引用类型变量初始化时如果没有具体对象引用,可以初始化为null。10下述概念中不属于面向对象这种编程范畴的是( D )。A对象、消息
6、 B继承、多态C类、封装 D过程调用11编译并运行以下程序,以下描述哪个选项是正确的( A )。1. class A 2. protected String toString() 3. return super.toString(); 4. A、行2出错,不能成功编译 B、编译通过但运行时出错C、编译通过运行无异常 D、不能成功编译,行3出错解析:方法重写时没有满足访问权限控制符要比父类的大或者相同。12假设Foo类有如下定义,设f是Foo类的一个实例,下列语句调用哪个是错误的?( A ) public class Foo int i; static String s; void imetho
7、d() static voidsmethod() A、Foo.imethod(); B、f.imethod(); C、System.out.println(f.i); D、Foo.smethod()13以下哪个接口的定义是正确的?( D )A、interface A void print() ;B、abstract interface A void print() ;C、abstract interface A extends I1, I2 /I1、I2为已定义的接口 abstract void print() ;D、interface A void print();解析:接口定义时语法规定上
8、是不需要加abstract的,因为接口本身就是abstract的,java编译器在编译接口时会自动加上abstract。但是我们显示的加上abstract是不会出现问题,不建议加。此处选项B和C可以认为不正确。14关于以下程序段,正确的说法是( C )1Strings1=“a”+“b”;2 Strings2=newString(s1);3 if(s1=s2)4 System.out.println(“= =is succeeded”);5 if (s1.equals(s2)6 System.out.println(“.equals() is succeeded”);A行4与行6都将执行 B行4
9、执行,行6不执行C行6执行,行4不执行 D行4、行6都不执行15下面程序运行结果为:( D,如果输出count则为A)public class test3public static void main(String args)int count=0;for (int i=0;i=100;i+)count+=count+;A 0 B 7 C 编译有错误D 其他答案16下面哪个函数是publicvoid aMethod().的重载函数?( D )A、void aMethod().B、publicint aMethod().C、publicvoid aMethod ( ).D、publicint a
10、Method(intm).17下面关于继承的哪些叙述是正确的?( D )A在java中允许多继承。B在java中一个类只能实现一个接口。C在java中一个类不能同时继承一个类和实现一个接口。Djava的单一继承使代码更可靠。18运行下面程序段的结果是:( D )。public class MyMainpublic static void main(String args)System.out.println(“Hello Java”);A正常输出Hello JavaB编译时出错C运行时出错D. 以上答案都不对19类与对象的关系是( A )。A.类是对象的抽象 B.类是对象的具体实例C.对象是类
11、的抽象 D.对象是类的子类20下列关于修饰符混用的说法,错误的是( BD )。A. abstract不能与final并列修饰同一个类B. abstract类中不可以有private的成员C. abstract方法必须在abstract类中D. static方法中能处理非static的属性解析:abstract类中可以有private的成员,只是它的private成员不能被继承,所以在abstract类中定义private成员没有意义。21编译并运行下述程序段的结果是:( B )。public class Testpublic static void main(String argv)int c
12、ount = new int4;System.out.println(count4);A编译时错误 B运行时错误C输出0 D输出null22下面是有关子类继承父类构造函数的描述,其中正确的是( CD)。A创建子类的对象时, 先调用子类自己的构造函数,然后调用父类的构造函数。B子类无条件地继承父类不含参数的构造函数。C子类必须通过super关键字调用父类的构造函数。D子类无法继承父类的构造函数。解析:子类无法继承父类的构造器,但有时候可以使用super调用父类构造器中的初始化代码。在继承关系中一定要确保构造器的上溯链不得中断,否则会出错。23下列类的定义中,错误的是( B )。Aclass x
13、. Bpublic x extends y . Cpublic class x extends y . Dclass x extends y implements y1 . 24A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明:1. A a0=new A();2. A a1 =new B();3. A a2=new C();问以下哪个说法是正确的?( D )A只有第1行能通过编译B第1、2行能通过编译,但第3行编译出错C第1、2、3行能通过编译,但第2、3行运行时出错D第1行、第2行和第3行的声明都是正确的25运行下列程序的结果是( C ) abstract class Min
14、eBase abstract void amethod(); static int i;public class Mine extends MineBase public static void main(String argv) int ar = new int5; for (i = 0; i ar.length; i+) System.out.println(ari); A打印5个0B编译出错,数组ar必须初始化C编译出错,Mine应声明为abstractD出现IndexOutOfBoundes的例外26编译并运行以下程序段的结果是:( A )public class MyClassfin
15、al static int i;MyClass()i =0;public static void main(String args)System.out.println(i);A编译出错 Bnull C1 D0解析:final修饰的成员变量(静态成员原理和实例成员变量)必须显示初始化。静态成员变量可以在声明时或静态初始化代码块显示初始化;实例成员变量可以在声明时、初始化代码块或构造器中显示初始化。27下面方法中的“返回类型Type”应该是什么?( A )public class ReturnIt returnTypemethodA(byte x, double y) return (short
16、)x / y * 2; Adouble B. int C. byte D. short28下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的?( C )A、public B、private C、static D、final29下面关于java中类的说法哪个是不正确的?( AC )A类体中只能有变量定义和成员方法的定义,不能有其他语句。B构造函数是类中的特殊方法。C类一定要声明为public的,才可以执行。D一个java文件中可以有多个class定义。30下列哪个类声明是正确的? ( D) Aabstract final class H1Babstract private move()Cpr
17、otected private number;Dpublic abstract class Car31方法重载是指( A ) A两个或两个以上的方法取相同的方法名,但形参的个数或类型不同B两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同C两个以上的方法名字不同,但形参的个数或类型相同D两个以上的方法取相同的方法名,并且方法的返回类型相同32指出下列程序运行的结果( B )public class ExampleString str=new String(good);charch=a,b,c;public static void main(String args)Exampl
18、e ex=new Example();ex.change(ex.str,ex.ch);System.out.print(ex.str+ and );Sytem.out.print(ex.ch);public void change(String str,charch) str=test ok; ch0=g; Agood and abc Bgood and gbcCtest ok and abc Dtest ok and gbc33下列哪些语句关于内存回收的说明是正确的?( B )A程序员必须创建一个线程来释放内存B内存回收程序负责释放无用内存C内存回收程序允许程序员直接释放内存D内存回收程序可
19、以在指定的时间释放内存对象34MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。( CD )A、 public int MAX_LENGTH=100; B、 final int MAX_LENGTH=100; C、 final public int MAX_LENGTH=100; D、 public final int MAX_LENGTH=100;35给出下面代码:1) class Parent 2 private String name; 3 public Parent() 4 5) public class Child extends
20、Parent 6 private String department; 7 public Child() 8 public String getValue() return name; 9 public static void main(String arg) 10 Parent p = new Parent(); 11 12 那些行将引起错误? ( D )A、 第3行 B、 第6行 C、 第7行 D、 第8行36类Teacher和Student是类Person的子类; Person p; Teacher t; Student s; /p, t and s are all non-null.
21、if(t instanceof Person) s = (Student)t; 最后一句语句的结果是:( B )A、 将构造一个Student对象; B、 表达式是合法的; C、 表达式是错误的; D、 编译时正确,但运行时错误。 解析:考查instanceof和继承中的强制转换。t instanceof Person 表达式是正确的。s = (Student)t;这句转换编译是错误的。37给出下面代码段 1) public class Test 2) int m, n; 3) public Test() 4) public Test(int a) m=a; 5) public static
22、void main(String arg) 6) Test t1,t2; 7) intj,k; 8) j=0; k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) 12) 哪行将引起一个编译时错误?( D) A、 line 3 B、 line 5 C、 line 6 D、 line 10 38对于下列代码: 1) class Person 2) public void printValue(int i, int j) /. 3) public void printValue(int i)/. 4) 5) public class Teacher e
23、xtends Person 6) public void printValue() /. 7) public void printValue(int i) /. 8) public static void main(String args) 9) Person t = new Teacher(); 10) t.printValue(10); 11) 第10行语句将调用哪行语句? ( D )A、 line 2 B、 line 3 C、 line 6 D、 line 739System类在哪个包中? ( D )A、 java.util B、 java.io C、 java.awt D、java.l
24、ang40对于下列代码:public class Parent public intaddValue( int a, int b) int s; s = a+b; return s; class Child extends Parent 下述哪些方法可以加入类Child? ( CD )A、 intaddValue( int a, int b )/ do something.B、 public void addValue (int a, int b )/ do something.C、 public intaddValue( int a )/ do something.D、 public int
25、addValue( int a, int b )throws MyException /do something.解析:A选项不符合一大;B选项返回值类型不匹配;C选项为自己的方法;D选项异常更明确。41看下面一段程序: class Aclass void go() System.out.println(Aclass); public class Bclass extends Aclass void go System.out.println(Bclass); public static void main(String args) Aclass a=new Aclass(); Aclass
26、a1=new Bclass(); a.go(); a1.go(); 以上程序运行结果是:( C )A、 AclassAclass B、 BclassBclassC、 AclassBclass D、 BclassAclass42运行下列程序,会产生什么结果:( B)class Outer1 private int a; void foo(double d,final float f) String s; final boolean b; class Inner void methodInner() System.out.println(in the Inner); public static v
27、oid main(String args) Outer1 me=new Outer1(); me.foo(123,123); System.out.println(outer); A、 in the Inner outer B、 outer C、 in the Inner D、 编译不通过43下面哪个修饰符修饰的方法只能被本类中的其他方法使用( C )A、protected B、static C、private D、public44下面程序运行后的输出结果为( C )class Astaticint y=3; void showy( )System.out.println(“y=”+y); classtestA public static void main(String aaa ) A a1=new A( ); A.y+=1; a1.y+; a1.showy( );输出结果选择:A、y=3; B、y=4; C、y=5; D、程序运行出错 45下面关于构造函数的说法不正确的是( B )A、构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。B、构造函数不可以重载。C、构造函数没有返回值。D、构造函数名称一定