一、 单项选择题(2分/题,共30分)
1. 在创建对象时必须(C)
A、 先声明对象,然后才能使用对象
B、 先声明对象,为对象分配内存空间,然后才能使用对象
C、 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D、 上述说法都对
2. 下列叙述错误的是( D )
A、成员变量在整个类内有效。
B、局部变量只在定义它的方法内有效。
C、 成员变量与它在类体中书写的位置无关。 D、 局部变量与它在类体中书写的位置无关。
3. 在调用方法时,若要使方法改变实参的值,可以( B )
A、 用基本数据类型作为参数 B、 用对象作为参数 C、 A和B都对 D、 A和B都不对
4. 下列那个叙述是正确的( B )
A、Java应用程序由若干个类所构成,这些类必须在一个源文件中。
B、Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。 C、Java源文件必须含有主类。
D、Java源文件如果含有主类,主类必须是public类。
5. 正确的数组声明与创建是( B )
A、 int boy[][4] B、 int boy[][]=new int[3][4] C、int boy[3][4]=new int [ ][] D、 int boy[3][4]
6. 下列哪个是Java应用程序主类中正确的main方法?( D )
A、public void main(String args[]) B、static void main(String args[])
C、public static void Main(String args[]) D、public static void main(String args[])
7. 下列那个叙述是正确的?( D ) A、final类可以有子类。
B、abstract类中只可以有abstract方法。
C、abstract类中可以有非abstract方法,但该方法不可以用final修饰。 D、不可以同时用final和abstract修饰同一个方法。
8. 以下哪个方法用于定义线程的执行体? ( C )
A、 start() B、init() C、run() D、synchronized()
9. 下列选项中,用于在定义子类时声明父类名的关键字是( C )。
A、interface B、 package C、 extends D、 class
10. 下列那个叙述是正确的?( C )
第 1 页 共 6 页
A、子类继承父类的构造方法。
B、abstract类的子类必须是非abstract类。
C、子类继承的方法只能操作子类继承和隐藏的成员变量。
D、子类重写或新增的方法也能直接操作被子类隐藏的成员变量。
11. 对于下列Dog类,哪个叙述是错误的?( D )
A、Dog(int m)与Dog(double m)是互为重载的构造方法。
B、int Dog(int m )与 void Dog(double m) 是互为重载的非构造方法 C、Dog类只有两个构造方法,而且没有无参数的构造方法。 D、Dog类有3个构造方法。
Class Dog{
Dog(int m){} Dog(double m){}
int Dog(int m){return 23;} void Dog(double m){} }
12. 下列描述错误的是( D )
A、每个扩展名是.class的文件中只存放一个类的字节码文件 B、其文件名与该类的类名相同
C、这些字节码文件被存放在与源文件相同的目录中 D、这些字节码文件被存放在与源文件不相同的目录中
13. 下列描述错误的是( B )
A、分配给不同对象的实例变量占有不同的内存空间 B、实例方法能通过对象调用,也能用类名调用。 C、可以通过类名直接访问类变量 D、类变量被不同对象共享
14.在Java中用什么关键字修饰的方法可以直接通过类名来调用?( A ) A)static B)final C)private D)void 15.若在某一个类定义中定义有如下的方法:abstract void performDial( );该方法属于( C )。 A)接口方法 B)最终方法 C)抽象方法 D)空方法
二、 得分 填空题(每空2分,共30分) 1. 如果将类MyClass声明为public,它的文件名称必须是( MyClass.java )才能正常编
译。
2. 一个内部类编译后生成 ( 一个 ) 字节码文件
3. 如果一个方法没有返回值,则该方法类型为( void )。
4. 一般地,一个类的类体应由( 变量的声明 )和( 方法的定义 )两部
分组成。
第 2 页 共 6 页
5. final关键字能修饰( 类 )、( 方法 ) 、( 属性 ) 。
6. 线程创建后必须调用 start() 方法,新线程进入就绪队列排队。
7. 抽象( abstract ) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,
该方法必须在抽象类之中定义。 最终( final ) 方法是不能被当前类的子类重新定义的方法。
8. 创建一个名为 MyPackage 的包的语句是 package MyPackage ; ,导入
mypackage包中的所类的命令是( import mypackage.*; )
9. 线程对象的生命周期中,通常经历 新建 、 就绪 、运行、死亡状态。
三、 得分 阅读下列程序段(共20分)
1. a)类X拥有那些数据成员( x2,y ) (2分)
b) 类X拥有那些方法( f2(), setHeight(),getHeight() )(2分)
P1 X1 X2 Y c)画出对象p1的内存模型(
class P {
private int x1; int x2; private f1(){} public int f2{} }
Class X extends P { int y;
public void setHeight(int y) { this.y = y; }
public int getHeight() { return y; } }
public class Example {
public static void main(String args[]) { X p1 = new X(); } }
)(4分)
2.下列程序段的输出结果为:
import java.io.* ;
第 3 页 共 6 页
public class abc {
public static void main(String args[ ]) { int i, s = 0 ;
int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 }; for ( i = 0 ; i < a.length ; i ++ ) if ( a[i]%3 = = 0 ) s += a[i] ; System.out.println(\ } }
运行结果:s = 180 (4分)
3. a)类x中方法f( )完成的功能 求1到n的积 (1分) b)程序的运行结果: s1=12 (3分) public class S
{ public static void main( String args[ ]) { x p1=new x(); p1.n=4; p1.f(); }} class x { int n; long f()
{ long s1 = 1 ;
for (int i=1;i<=n;i++) s1=s1*i ;
System.out.println( \ return 0; } }
4.下列程序段的输出结果为:
import java.io.*; public class abc {
public static void main(String args [ ])
第 4 页 共 6 页
{
AB s = new AB(\VA.\
System.out.println(s.toString( )); } } class AB { String s1; String s2;
public AB(String str1, String str2) {
s1 = str1; s2 = str2; }
public String toString( ) {
return s1+s2; } }
}
运行结果: Hello! I love JAVA . (4分)
四、 得分 编程题(每题10分,共20分)
1.按以下要求编写程序
(1) 创建一个Rectangle类,添加width和height两个成员变量 (2) 在Rectangle中添加两种方法分别计算矩形的周长和面积 (3) 编程利用Rectangle输出一个矩形的周长和面积 解答:
public class Rectangle {
float width, height;
第 5 页 共 6 页
}
Rectangle(float width, float height) { }
public float getLength(){ }
public float getArea(){ }
public static void main(String [] args) {
Rectangle rect = new Rectangle(10, 20);
System.out.println(\周长是:\return this.width * this.height; return (this.width + this.height) * 2; this.width = width; this.height = height;
System.out.println(\面积是:\}
2. 按以下要求编写程序
(1) 编写A1接口,接口中声明fan() 方法 (2) 定义B类和F类实现A1接口
(3) 编写B类和F类的测试程序,并调用其中的fan()方法 解答:
public interface A1 { }
class B implements A1 { }
class F implements A1 {
public void fan() {
System.out.println(\鱼儿在游...\}
public void fan() {
System.out.println(\鸟儿在飞...\}
void fan();
}
public class TestA1 { }
public static void main(String[] args) { B bird = new B(); bird.fan(); F fish = new F(); fish.fan(); }
第 6 页 共 6 页