Java基础习题(附答案)

来源:互联网 发布:公开的权威数据 编辑:程序博客网 时间:2024/05/22 01:27

1. 以下方法fun的功能是求两参数之积。(return  a*b)

    int  fun ( int a,  int b )  {   __________________;       } 

2. 以下方法fun的功能是求两参数之积。(return  (float)a*b)

    float  fun ( int a,  double b )  {   __________________;       }

3. 以下方法fun的功能是求两参数的最大值。(return  a>b?a:b)

    int  fun ( int a,  int b )  {   __________________;       }

4. 以下方法m的功能是求两参数之积的整数部分。

    (return  (int)(a*b))

    int  m ( float x,  float y )  {  __________________;  }

5. 下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。

  (void     call)

public  ___  paint(Graphics ____)

{ call.drawString("Hello,java!",10,20); }

6.下面方法的功能是判断一个整数是否为偶数,将程序补充完整。(boolean      true)

public ________ isEven(int  a)

{   if(a%2==0)

      return  _____;

else

      return  false;

}

7.同一个类中多个方法具有相同的方法名,不同的_____________称为方法的重载。(参数列表)

二.选择题及答案

1.下列方法定义中,正确的是( D )。

A) int x( int a,b ) { return  (a-b); }  

B) double x( int a,int b) { int w;  w=a-b; }

C) double  x( a,b ) { return  b;  }  

D) int  x( int a,int b) {  return  a-b;  }

2.下列方法定义中,正确的是( D )。

A) void x( int a,int b ); { return (a-b); }  

B) x( int a,int b) { return a-b; }

C) double  x {  return  b;  }          

D) int  x( int a,int b) { return a+b; }

3. 下列方法定义中,不正确的是(D)。

A) float x( int a,int b ) { return (a-b); }  

B) int  x( int a,int b) { return a-b; }

C) int  x( int a,int b ); { return a*b; }  

D) int  x(int a,int b) { return 1.2*(a+b); }

4. 下列方法定义中,正确的是( A )。

    A) int  x( ){ char ch='a'; return (int)ch; }  

B) void  x( ){ ...return  true;  }

    C) int  x( ){ ...return  true; }         

D) int  x( int a, b){  return  a+b; }

5. 列方法定义中,方法头不正确的是(D )。

        A)public int x( ){ ... }      

B)public static int x( double y ){ ... }

        C)void x( double d ) { ... }  

D)public static x( double a ){ ... }

6.在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是(C)。

    A)public getSort(float x)       B)int getSort(int y)

    C)double getSort(int x,int y)    D)void get(int x,int y)

7.在某个类中存在一个方法:void sort(int x),以下不能作为这个方法的重载的声明的是(B)。

   A)public float sort(float x)        B)int sort(int y)

   C)double sort(int x,int y)         D)void sort(double y)

8. 为了区分类中重载的同名的不同方法,要求( A)。

    A) 采用不同的形式参数列表        B) 返回值类型不同 

    C) 调用时用类名或对象名做前缀    D) 参数名不同

三.问答题及答案

1. 方法可以没有返回值吗?可以有多个返回值吗? (可以;不能)

2. 一个方法如果没有返回值,方法头定义中的返回值类型为何?(void)

3. 何为形式参数?何为实在参数?(略)

4. 一个方法或一个复合语句内定义的变量是否可以在方法外或复合语句外使用?这种变量称为什么变量?(不能;局部变量)

5. 采用_______的程序设计原则,使程序结构清晰简单,设计容易,有助于软件可靠性的提高。(模块化)

6. 重载的方法可以通过它们的返回值类型的不同来区分吗?(不能)

7. 编译程序如何区分重载方法的调用?(根据参数列表不同来区分)

 

一、选择题

1 定义类头时,不可能用到的关键字是( B)。

  A) class     B)private     C)extends     D)public

2.下列类定义中,不正确的是(C)。

A) class  x { .... }    

B) class  x  extends  y { .... }

C) static  class  x  implements  y1,y2 { .... }

D) public class  x  extends  Applet  { .... }

3.下列类头定义中,错误的是( A)。

 A)public x extends y {...}               

 B) public class x extends y {...}

 C)class x extends y implements y1 {...}   

 D)class x {...}

 

.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( D)。

 A) float  A  a;            B) public  A  a=A( );  

 C) A  a=new  int( );       D) static  A  a=new  A( );

 

5.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是(A)。

 A) public  A  a=new  A( );        B) public  A  a=A( );  

 C) A  a=new  class( );             D) a  A;

 

6.设 X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是(C)。

 A) public  X  x1= new  Y( );        B) X  x1= X ( );  

 C) X  x1=new  X( );                D) int  X  x1;

 

7. 设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是(A)。

 A) static  X  x1;         B) public  X  x1=new  X(int  123);

 C) Y  x1;                D)  X  x1= X( );

 

8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:   _______________________________。

 (MyClass  obj=new  MyClass( );)

 

9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( A)。

 A) void X(int k ){ i=k; }             B) X(int k ){ i=k; }

 C) X(int m, int n ){ i=m; j=n; }      D) X( ){i=0;j=0; }

 

10. 有一个类A,以下为其构造方法的声明,其中正确的是( A )。

 A)public A(int x){...}           B)static A(int x){...}

 C)public a(int x){...}            D)void A(int x){...}

 

11. 有一个类A,以下为其构造方法的声明,其中正确的是( B )。

 A)void A(int x){...}      B)A(int x){...}

 C)a(int x){...}           D)void a(int x){...}

 

12. 设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是( B )。

 A) X( int m){ ... }          B) void  X( int m){ ... }

 C) X( int m, int n){ ... }      D) X( int h,int m,int n){ ... }

 

13. 设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是(A )。

 A) double  X(double k ){ i=k; return i; }     C) X( ){i=6;j=8; }

 B) X(double m, double n ){ i=m; j=n; }       D) X(double k ){ i=k; }

 

14. 设a , b为类MyClass中定义的int型变量名,下列MyClass类的构造方法中不正确的是(A)。

A)   double  MyClass(double k ){ a=k; return a; }

B)   MyClass( ){a=6;b=8; }

C)   MyClass (double m, double n ){ a=m; b=n; } 

MyClass (double k ){ a=k; }

15 定义类头时,不可能用到的关键字是(A)

。  A)protected   B) class          C)extends     D)public

16.下列类头定义中,错误的是(A)。

 A)public TestClass extends y {...}               

 B) public class TestClass extends y {...}

 C)class TestClass extends y implements y1 {...}   

D)   class TestClass {...}

17.设 B为已定义的类名,下列声明B类的对象b的语句中正确的是(D)。

 A) float  B  b;            B) public  B  b=B( );  

 C) B  b=new  int( );       D) static  B  b=new  B( );

18.设 ClassA为已定义的类名,下列声明ClassA类的对象ca的语句中正确的是(A)。

 A)public ClassA ca=new ClassA( ); B) public  ClassA  ca=ClassA( );  

 C) ClassA  ca=new  class( );    D) ca  ClassA;

19.设 A 、B 均为已定义的类名,下列声明类A的对象a1的语句中正确的是(C)。

 A) public  A  a1= new  B( );        B) A  a1= A ( );  

 C) A  a1=new  A( );                D) int  A  a1;

20. 设A 、B为已定义的类名,下列声明A类的对象a1的语句中正确的是(A)。

 A) static  A  a1;         B) public  A  a1=new  A(int  123);

 C) B  a1;                D)  A  a1= A( );

21.通过类A中的不含参数的构造方法,生成该类的一个对象a,可通过以下语句实现:   _______________________________。

 (A  a=new  A( );)

22. 设m , n为类A中定义的int型变量名,下列A类的构造方法中不正确的是( A)。

 A) void A(int k ){ m=k; }             B) A(int k ){ m=k; }

 C) A(int m, int n ){m=i; n=j; }      D) A( ){m=0;n=0; }

23. 有一个类Person,以下为其构造方法的声明,其中正确的是( A )。

 A)public Person (int x){...}           B)static Person (int x){...}

 C)public a(int x){...}            D)void Person (int x){...}

24. 有一个类Student,以下为其构造方法的声明,其中正确的是( B )。

 A)void Student (int x){...}      B) Student (int x){...}

 C)s(int x){...}           D)void s(int x){...}

25. 设i、j、k为类School中定义的int型变量名,下列类School的构造方法中不正确的是( B )。

 A) School ( int m){ ... }          B) void  School ( int m){ ... }

 C) School ( int m, int n){ ... }      D) School ( int h,int m,int n){ ... }

二、填空题

2. 下面是一个类的定义,请将其补充完整。(Student     String)

class  _____ 

{

       String name;

       int    age;

       Student(  _____  s, int  i)

   {

                name=s;

        age=i;

   }

}

 

3.下面是一个类的定义,请将其补充完整。(myclass     static)

class ____________  // 定义名为myclass的类

{

     __________ int var=666;

     static int getvar()

     {   return  var;   }

}

4.下面程序的功能是通过调用方法max()求给定的三个数的最大值,

请将其补充完整。(max(i1,i2,i3)     static)

public class Class1

{

   public static void main( String args[] )

   {

     int i1=1234,i2=456,i3=-987;

     int MaxValue;

     MaxValue=____________;

     System.out.println("三个数的最大值:"+MaxValue);

   }

   public ______ int max(int x,int y,int z)

   {  int temp1,max_value;

      temp1=x>y?x:y;

      max_value=temp1>z?temp1:z;

      return max_value;

   }

}

5.下面是一个类的定义,请将其补充完整。(class   static)

___________  A

{  String  s;

    _____  int  a=666;

    A(String s1)  {    s=s1;    }

    static int geta( )  {    return  a;  }

}

 

 

 

 

9.下面程序的功能是通过调用方法max()求给定的二个整数的最大值,

请将其补充完整。(max(a1,a2)     int)

public class Class1

{

   public static void main( String args[] )

   {

     int a1=1234,a2=456;

     int MaxValue;

     MaxValue=____________;

     System.out.println("二个数的最大值:"+MaxValue);

   }

   public static  ______ max(int x,int y)

   {  int max_value;

      max_value =x>y?x:y;

      return max_value;

   }

}

1. 面向对象的软件开发方法用什么把数据和基于数据的操作封装在一起?(类)

2. 在一个类定义中,用什么描述对象的状态? 用什么描述对象的行为?(属性;方法)

3. 什么方法是一个特殊的方法,用于对对象进行初始化?

  (构造方法)

4. 一个源程序文件中,能有多于一个的 public 类吗?(不能)

5. 构造方法的方法名可由编程人员任意命名吗?

  (不能,必须与类名同名)

6. 类的构造方法名必须和类名相同吗?(必须)

7. 构造函数有返回值吗?(没有)

8. 构造函数可以重载吗? (可以)

9. 如果一个类定义中没有定义构造方法,该类有构造函数吗?

  (有,编译器会自动生成一个缺省的不带参数的构造函数)

10. 如果一个类定义中已经定义了构造方法,java还会给它定义缺省的构造方法吗?(不会)

11. 类的访问控制权有哪两种?(public 和 缺省的(即没有访问控制修饰符))

12. 用什么修饰符修饰的方法称为静态方法?   用什么修饰符修饰的属性称为静态属性?(static)

13. 静态属性和静态方法仅属于类的一个具体对象吗?它属于谁?

   (不是;它是类的所有对象公有的)

14. static 变量能是 private 变量吗?(可以)

15. 使用静态成员都能以什么做前缀?(可以用类名或对象名做前缀)

16.  static方法中能有this引用吗?(不能)

17. 非static方法中可以有this引用吗?(可以)

18.static方法能处理非static成员吗?(不能)

19.非static方法能处理static成员吗?(能)

20. 类的私有属性和私有方法能不能被其子类直接访问? (不能)

   一、       选择题

1. Java语言的类间的继承关系是( B )。

 A) 多重的     B) 单重的     C) 线程的     D) 不能继承 

2. 以下关于Java语言继承的说法正确的是(  C  )。  A)Java中的类可以有多个直接父类   B)抽象类不能有子类

 C)Java中的接口支持多继承         D)最终类可以作为其它类的父类

3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。

 A) class  A  extends  B            B) class  B  implements  A

 C) class  A  implements  B         D) class  B  extends  A

4. 下列选项中,用于定义接口的关键字是( A)。

 A)interface   B) implements   C) abstract   D) class

5. 下列选项中,用于实现接口的关键字是( B)。

 A)interface   B) implements   C) abstract   D) class

6. Java语言的类间的继承的关键字是( B )。

 A) implements     B) extends     C) class     D) public 

7. 以下关于Java语言继承的说法错误的是(  A  )。  A)Java中的类可以有多个直接父类   B)抽象类可以有子类

 C)Java中的接口支持多继承         D)最终类不可以作为其它类的父类

8. 现有两个类M、N,以下描述中表示N继承自M的是(D)。

 A) class  M  extends  N            B) class  N  implements  M

 C) class  M  implements  N         D) class  N  extends  M

9. 现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)。

 A) class  A  implements  B            B) class  B  implements  A

 C) class  A  extends  B         D) class  B  extends  A

10. 下列选项中,定义抽象类的关键字是( C)。

 A)interface   B) implements   C) abstract   D) class

11. 下列选项中,定义最终类的关键字是(D)。

A)interface   B) implements   C) abstract   D) final

12. 下列选项中,哪个是java语言所有类的父类(C)

A)String   B) Vector   C) Object   D) KeyEvent

13. java语言中,用于判断某个对象是否是某个类的实例的运算符是(A)

A)instanceof   B) +   C) isinstance   D) &&

14. 下列选项中,表示数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以的修饰符是(B)

A)public   B) protected   C) private   D) final

15. 下列选项中,表示数据或方法只能被本类访问的修饰符是(C)

A)public   B) protected   C) private   D) final

16. 下列选项中,接口中方法的默认可见性修饰符是(A)

A)public   B) protected   C) private   D) final

17. 下列选项中,表示终极方法的修饰符是:(B)

A)interface   B) final   C) abstract   D) implements

18. 下列选项中,定义接口MyInterface的语句正确的是:(A)

A)interface MyInterface{  }  B) implements MyInterface {  } 

C) class MyInterface{   }     D) implements interface My{  }

19. 如果子类中的方法mymethod()覆盖了父类中的方法mymethod(),假设父类方法头部定义如下:void mymethod(int a),则子类方法的定义不合法的是:(C)

A)       public void mymethod(int a)  B) protected void mymethod(int a)

C)  private void mymethod(int a)  D) void mymethod(int a)

 

二、      填空题

1. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。(隐藏)

2. 属性的隐藏是指子类重新定义从父类继承来的__________。(同名变量或属性)

3. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(参数列表)

4. Java 仅支持类间的____重继承。(单重)

5. 抽象方法只有方法头,没有________。 (方法体)

6. Java 语言的接口是特殊的类,其中包含______常量和_______方法。(static(静态) ; abstract(抽象))

7. 接口中所有属性均为_________、_________和________的。

   (public、static、final)

8. 如果接口中定义了一个方法methodA(),一个属性attA,那么一个类ClassA要实现这个接口的话,就必须实现其中的_______方法。(methodA())

9.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成________的。(抽象的)

10. 如果子类中的某个方法的名字、__________和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(返回值类型)

11. Java 仅支持类间的单重继承,接口可以弥补这个缺陷,支持_____重继承(多重)

12. 在方法头用abstract修饰符进行修饰的方法叫做________方法。(抽象)

13.Java语言中用于表示类间继承的关键字是___________。(extends)

14. 接口中所有方法均为________和________的。

   (public、abstract)

15. Java语言中,表示一个类不能再被继承的关键字是________。(final)

16. Java语言中,表示一个类A继承自父类B,并实现接口C的语句是_________________。

   (class A extends B implements C)。

17. 如果子类中的方法compute()覆盖了父类中的方法compute(),假设父类的compute()方法头部有可见性修饰符public,则methodS()的可见性修饰符必须是__________。(public)

1 0