2024年4月1日发(作者:留玉瑾)
一.判断题(每题1分,共10分)
1. 无论Java源程序包含几个类的定义,若该源程序文件以命名,编译后生成的都只有一个名为A
的字节码文件。 ( )
2. Java的各种数据类型所占用的内存长度与具体软硬件环境有关。 ( )
3. 静态初始化器是在其所属的类加载内存时由系统自动调用执行的方法。 ( )
4. 与C语言不同的是,Java语言中的数组元素下标总是从1开始。 ( )
5. 在Java的方法中定义一个常量要用const关键字。 ( )
6. Java有两类程序:Java Application和Java Applet,其中Java Applet程序只能在图形界面中工作,而
Java Application程序只能在字符界面中工作 。 ( )
7. 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之
后只能对应一个catch语句。 ( )
8. 程序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内
存对象。 ( )
9. Java系统的标准输入对象是,标准输出对象有两个,分别是标准输出和标准错
误输出。 ( )
10. 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体
为空。
1.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。 ( )
2.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。( )
3.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 ( )
4.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。 ( )
5.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。 ( )
6.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型
有父类子类关系,此时应该将父类放在后面,子类放在前面。 ( )
7.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。 ( )
8.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。 ( )
9.静态初始化器是在其所属的类加载内存时由系统自动调用执行。 ( )
10.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同
的新对象。 ( )
1. Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。 ( )
2. 所有的鼠标事件都由MouseListener监听接口的监听者来处理。 ( )
3. Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 ( )
4. 如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的。 ( )
5. Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 ( )
6. 由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 ( )
7. 静态初始化器是在其所属的类加载内存时由系统自动调用执行。 ( )
( ) 8. Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。
9. 注释的作用是使程序在执行时在屏幕上显示//之后的内容。 ( )
10. 在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类
型有父类子类关系,此时应该将父类放在后面,子类放在前面。 ( )
1.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( )。
A、init()
B、start() C、destroy() D、stop()
1
2. Java application中的主类需包含main方法,main方法的返回类型是什么?( )
A、int B、float C、double D、void
3.有以下方法的定义,请选择该方法的返回类型( )。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、double
4.下列哪些语句关于Java内存回收的说明是正确的? ( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
5.以下哪个关键字可以用来对对象加互斥锁?( )
A、transient B、synchronized C、 serialize D、static
6.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(
语句。
A、import .* ; B、import .* ;
C、import .* ; D、import .* ;
7.容器Panel和Applet缺省使用的布局编辑策略是( )
A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout
8.设有下面两个赋值语句:
a = nt(“123”);
b = f(“123”).intValue();
下述说法正确的是( )。
A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。
9.以下程序段执行后将有( )个字节被写入到文件afile中。
try{
FileOutputStream fos=new FileOutputStream(“”);
DataOutputStream dos=new DataOutputStream(fos);
nt(3);
ouble(0.01);
nt(6);
();
( );
}
catch(IOException e) { }
A、2 B、8 C、12 D、16
10.编译并运行以下程序,以下描述哪个选项是正确的( )。
1. class A{
2. protected String toString(){
3. return ng();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
)
2
C、行2出错,不能成功编译 D、不能成功编译,行3出错
11.有以下程序片段,下列哪个选项不能插入到行1。( )
1.
class Interesting{
3.//do sth
4. }
A、import .*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
12.要使类中的某个成员变量只能被同一个包中的类访问到,该变量可用什么修饰符修饰?( )
A、protected B、public C、private D、应不加修饰符
13.以下哪个不是Java的关键字?( )
A、TRUE B、const C、super D、void
14.关于以下application的说明,正确的是( )。
1. class StaticStuff
2. {
3. static int x;
4. static { x+=5;}
5. public static void main(String args[ ])
6. {
7. n(“x=” + x);
8. }
9. static { x/=5;}
10.}
A、4行与9行不能通过编译,因为缺少方法名和返回类型
B、9行不能通过编译,因为只能有一个静态初始化器
C、编译通过,执行结果为:x=1
D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化
15.有程序如下,关于程序的描述哪个是正确的?( )
public class Person{
static int a[] = new int[10];
public static void main(String a[])
{ n(arr[1]); }
}
A、编译将产生错误
C、正确,输出0
B、编译时正确,但运行时将产生错误
D、正确,输出 null
16.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个
类可能是FilterOutputStream构造函数的参数类型?
A、OutputStream B、File C、InputStream D、BufferedOutputStream
17.以下关于构造函数的描述错误的是( )。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
18.有语句String s=”hello world”; ,以下操作哪个是不合法的?( )
3
A、int i=(); B、s>>>=3; C、String ts=(); D、String t=s+”!”;
19.在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。
A、private B、protected C、private protected D、public
20.有程序片段如下,以下哪个表示式的结果为true?( )
Float s=new Float(0.1f);
Float t=new Float(0.1f);
Double u=new Double(0.1);
A、s==t B、(t) C、(s) D、(u)
1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( )
A、 String args B、String ar[] C、Char arg D、StringBuffer args[]
2.以下关于继承的叙述正确的是( )。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
3.paint()方法使用哪种类型的参数? ( )
A、Graphics B、Graphics2D C、String D、Color
4.以下哪个不是Java的原始数据类型( )
A、int B、Boolean
)。
C、Applet D、Dialog
C、float D、char
5.以下哪项可能包含菜单条(
A、Panel B、Frame
6.若需要定义一个类域或类方法,应使用哪种修饰符?( )
A、static B、package C、private D、public
7.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( )。
A、init() B、start() C、destroy() D、stop()
8.给出下面代码,关于该程序以下哪个说法是正确的?( )
public class Person{
static int arr[] = new int[5];
public static void main(String a[])
{
n(arr[0]); }
}
A、编译时将产生错误
C、输出零
B、编译时正确,运行时将产生错误
D、输出空
9.下列哪些语句关于Java内存回收的说明是正确的? ( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
10.以下哪个关键字可以用来对对象加互斥锁?( )
A、transient
B、synchronized C、 serialize D、static
4
11.以下代码段执行后的输出结果为( )
int x=-3; int y=-10;
n(y%x);
A、 -1 B、2 C、1 D、3
12.有以下程序片段,下列哪个选项不能插入到行1。( )
1.
class Interesting{
3.//do sth
4. }
A、import .*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
13. 设有下面两个赋值语句:
a = nt(“12”);
b = f(“12”).intValue();
下述说法正确的是( )。
A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。
14.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个
类可能是FilterOutputStream构造函数的参数类型?
A、OutputStream B、File C、InputStream D、BufferedOutputStream
15.在编写Java Applet程序时,需在程序的开头写上( )语句。
A、import .* ;
C、import .* ;
16.类Parent、Child定义如下:
1. public class Parent
2.{ public float aFun(float a, float b) throws
3. IOException { }
4.}
5.public class Child extends Parent{
6.
7.}
将以下哪种方法插入行6是不合法的。( )
A、float aFun(float a, float b){ }
B、public int aFun(int a, int b)throws Exception{ }
C、public float aFun(float p, float q){ }
D、public int aFun(int a, int b)throws IOException{ }
17.在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。
A、private B、protected C、private protected D、public
B、import ;
D、import cs ;
18、有以下方法的定义,请选择该方法的返回类型( )。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、double
5
19、关于以下代码段的说法正确的是( )
1.String s="abcde";
2.StringBuffer s1=new StringBuffer("abcde");
3.if((s1))
4. s1=null;
5.if((s))
6. s=null;
A、第1行编译错误,String的构造器必须明确调用
B、第3行编译错误,因为s与s1有不同的类型
C、编译成功,但执行时在第5行有异常抛出
D、编译成功,过程中也没有异常抛出
20、编译并运行以下程序,以下描述哪个选项是正确的( )
1. class X{
2. protected String toString(){
3. return ng();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
D、不能成功编译,行3出错 C、行2出错,不能成功编译
1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .java B. .class
C. .html D. .exe
2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。
A. 3 B. 3. 5
C. 4 D. 5
3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图
操作。
A. start( ) B. stop( )
C. init( ) D. paint( )
4、不允许作为类及类成员的访问控制符的是( )。
A. public B. private
C. static D. protected
5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调
用它,该方法头的形式为( )。
A. static void method( ) B. public void method( )
C. final void method( ) D. abstract void method( )
1.编译Java Applet 源程序文件产生的字节码文件的扩展名为( )。
A、java B、class C、html D、exe
2.Java application中的主类需包含main方法,main方法的返回类型是什么?( )
A、int B、float C、double D、void
3.以下哪个方法用于定义线程的执行体? ( )
A、 start() B、init() C、run() D、synchronized()
4.当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?( )
A、init()
B、start() C、destroy() D、stop()
6
5.下面哪个不是Java中的容器? ( )
A、Canvas B、ScrollPane C、Applet D、Dialog
6.以下标识符中哪项是不合法的( )
A、const B、$double C、hello D、BigMeaninglessName
7.以下哪个关键字可以用来为对象加互斥锁?( )
A、transient B、static
)
C、Applet D、Dialog
C、 serialize D、synchronized
8.以下哪项可能包含菜单条(
A、Panel B、Frame
9.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传
回的值也可以不相同。这种面向对象程序的特性称为( )。
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
10.以下关于构造函数的描述错误的是( )。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
11.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( )
语句。
A、import .* ;
C、import .* ;
B、import .* ;
D、import .* ;
12.下列哪些语句关于Java内存回收的说明是正确的? ( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
13.若需要定义一个类域或类方法,应使用哪种修饰符?( )
A、static B、package C、private D、public
14.有以下方法的定义,请选择该方法的返回类型( )。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、double
15.有以下程序片段,下列哪个选项不能插入到行1。( )
1.
class Interesting{
3.//do sth
4. }
A、import .*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
7
16.以下哪项是接口的正确定义?( )
A、 interface B
{ void print() { } ;}
B、 abstract interface B
{ void print() ;}
C、 abstract interface B extends A1,A2 //A1、A2为已定义的接口
{ abstract void print(){ };}
D、 interface B
{ void print();}
17.下面哪个函数是public void aMethod(){...}的重载函数?( )
A、void aMethod( ){...}
B、public int aMethod(){...}
C、public void aMethod ( ){...}
D、public int aMethod ( int m){...}
18.A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
1.
2.
3.
A a0=new A();
A a1 =new B();
A a2=new C();
问以下哪个说法是正确的? ( )
A、只有第1行能通过编译
B、第1、2行能通过编译,但第3行编译出错
C、第1、2、3行能通过编译,但第2、3行运行时出错
D、第1行、第2行和第3行的声明都是正确的
19.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( )
class A
{ int i;
static String s;
void method1() { }
static void method2() { }
}
A、n(a.i);B、1(); C、1(); D、2()
20.有如下代码段:
1)
2) { if(unsafe()){//do something…}
3) else if(safe()){//do the other…}
4) }
其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( )
A、 public IOException methodName()
B、 public void methodName()
C、public void methodName() throw IOException
D、public void methodName() throws IOException
二、填空题(每空格1分,共20分)
1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、解释运行字节码。
2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是
8
Applet类的子类并且存储该源程序文件的文件名为 MyApplet 。
3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译
器编译该源程序文件将产生个文件名与类名相同而扩展名为 . class 的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占
用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用2 字节内存空间。
5、设 x = 2 ,则表达式 ( x + + )/3 的值是 0 。
6、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 true 和 false 。
7、抽象(abstract)方法 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在
抽象类之中定义。最终(final)方法 方法是不能被当前类的子类重新定义的方法。
8、创建一个名为 MyPackage 的包的语句是 package MyPackage ; ,
该语句应该放在程序的位置为: 应该在程序第一句。
9、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出
结果是 120 。
int s = 0 ;
for ( int i = 0 ; i < ; i + + )
if ( i % 2 = = 1 ) s += MyIntArray[i] ;
n( s );
10、在Java程序中,通过类的定义只能实现 单 重继承,但通过接口的定义可以实现 多 重
继承关系。
三、写出下列程序完成的功能。(每小题5分,共20分)
1、计算 1/1+1/2+1/3+...+1/100 的值。
2、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。
3、创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。
4、求两个数的最大值。
1、public class Sum
{ public static void main( String args[ ])
{ double sum = 0.0 ;
for ( int i = 1 ; i <= 100 ; i + + )
sum += 1.0/(double) i ;
n( "sum="+sum );
}
}
2、 import .* ;
public class Reverse
{ public static void main(String args[ ])
{ int i , n =10 ;
int a[ ] = new int[10];
for ( i = 0 ; i < n ; i ++ )
try {
BufferedReader br = new BufferedReader(
new InputStreamReader());
a[i] = nt(ne( )); // 输入一个整数
} catch ( IOException e ) { } ;
9
for ( i = n-1 ; i >= 0 ; i ―― )
(a[i]+" ");
n( );
}
}
3、 import .*;
public class abc
{ public static void main(String args[])
{ new FrameOut(); }
}
class FrameOut extends Frame // Frame为系统定
{ Button btn; // 义的窗框类
FrameOut( )
{ super("按钮");
btn = new Button("按下我");
setLayout(new FlowLayout( ));
add(btn);
setSize(300,200);
show( );
}
}
4、import .*;
public class abc
{ public static void main(String args[])
{ SubClass sb = new SubClass( );
n(( ));
}
}
class SuperClass
{ int a = 10 , b = 20 ; }
class SubClass extends SuperClass
{ int max( ) { return ((a>b)?a:b); } }
四、写出下面程序的运行结果(每小题10分,共30分)
1、Hello! I love JAVA.
2、s = 180
3、a=60
b=20
c=30
1、 import .*;
public class abc
{ public static void main(String args[ ])
{ AB s = new AB("Hello!","I love JAVA.");
n(ng( ));
10
}
}
class AB {
String s1;
String s2;
AB( String str1 , String str2 )
{ s1 = str1; s2 = str2; }
public String toString( )
{ return s1+s2;}
}
2、 import .* ;
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 < ; i ++ )
if ( a[i]%3 = = 0 ) s += a[i] ;
n("s="+s);
}
}
3、import .* ;
public class abc
{
public static void main(String args[ ])
)
{ n("a="+a+"nb="+b); }
}
class SubClass extends SuperClass
{ int c;
SubClass(int aa,int bb,int cc)
{ super(aa,bb);
c=cc;
}
}
class SubSubClass extends SubClass
{ int a;
SubSubClass(int aa,int bb,int cc)
{ super(aa,bb,cc);
a=aa+bb+cc;
}
void show()
{ n("a="+a+"nb="+b+"nc="+c); }
11
}
五、使用Java语言编写程序。(每小题10分,共20分)
1、编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大
值和最小值。
import .* ;
public class abc
{
public static void main(String args[ ])
{ int i , n = 10 , max = 0 , min = 0 , temp = 0;
try {
BufferedReader br = new BufferedReader(
new InputStreamReader());
max = min = nt(ne( ));
} catch ( IOException e ) { } ;
for ( i = 2 ; i <= n ; i ++ ) {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader());
temp = nt(ne( ));
if (temp > max ) max=temp;
if (temp < min) min=temp;
} catch ( IOException e ) { } ;
}
n("max="+max+"nmin="+min);
}
}
2、编写一个完整的Java Applet 程序使用复数类Complex验证两个复数 1+2i 和3+4i 相加产生一个新
的复数 4+6i 。
复数类Complex必须满足如下要求:
(1) 复数类Complex 的属性有:
RealPart : int型,代表复数的实数部分
ImaginPart : int型,代表复数的虚数部分
(2) 复数类Complex 的方法有:
Complex( ) : 构造函数,将复数的实部和虚部都置0
Complex( int r , int i ) : 构造函数,形参 r 为实部的初值,i为虚部的初值。
Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一
个复数值,返回给此方法的调用者。
String ToString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b分别
为实部和虚部的数据。
import .* ;
import .* ;
public class abc extends Applet
12
{
Complex a,b,c ;
public void init( )
{
a = new Complex(1,2);
b = new Complex(3,4);
c = new Complex();
}
public void paint(Graphics g)
{
c=xAdd(b);
ring("第一个复数:"+ng(),10,50);
ring("第二个复数:"+ng(),10,70);
ring("两复数之和:"+ng(),10,90);
}
}
class Complex
{
int RealPart ; // 复数的实部
int ImaginPart ; // 复数的虚部
Complex() { RealPart = 0 ; ImaginPart = 0 ; }
Complex(int r , int i)
{ RealPart = r ; ImaginPart = i ; }
Complex complexAdd(Complex a)
{
Complex temp = new Complex( ); // 临时复数对象
rt=RealPart+rt;
Part=ImaginPart+Part;
return temp;
}
public String toString( )
{ return ( RealPart+" + "+ImaginPart+" i "); }
}
1.写出以下程序的运行结果。false
true
false
class TwoObjects
{ public static void main(String[] args)
{ B b1=new B();
B b2=new B();
n(b1==b2);
n(b1!=b2);
n((b2));
13
2024年4月1日发(作者:留玉瑾)
一.判断题(每题1分,共10分)
1. 无论Java源程序包含几个类的定义,若该源程序文件以命名,编译后生成的都只有一个名为A
的字节码文件。 ( )
2. Java的各种数据类型所占用的内存长度与具体软硬件环境有关。 ( )
3. 静态初始化器是在其所属的类加载内存时由系统自动调用执行的方法。 ( )
4. 与C语言不同的是,Java语言中的数组元素下标总是从1开始。 ( )
5. 在Java的方法中定义一个常量要用const关键字。 ( )
6. Java有两类程序:Java Application和Java Applet,其中Java Applet程序只能在图形界面中工作,而
Java Application程序只能在字符界面中工作 。 ( )
7. 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之
后只能对应一个catch语句。 ( )
8. 程序员可以不必释放已创建的对象,因为Java有垃圾回收机制,内存回收程序可在指定的时间释放内
存对象。 ( )
9. Java系统的标准输入对象是,标准输出对象有两个,分别是标准输出和标准错
误输出。 ( )
10. 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体
为空。
1.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。 ( )
2.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。( )
3.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 ( )
4.Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。 ( )
5.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。 ( )
6.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型
有父类子类关系,此时应该将父类放在后面,子类放在前面。 ( )
7.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。 ( )
8.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。 ( )
9.静态初始化器是在其所属的类加载内存时由系统自动调用执行。 ( )
10.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同
的新对象。 ( )
1. Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。 ( )
2. 所有的鼠标事件都由MouseListener监听接口的监听者来处理。 ( )
3. Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 ( )
4. 如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的。 ( )
5. Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 ( )
6. 由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 ( )
7. 静态初始化器是在其所属的类加载内存时由系统自动调用执行。 ( )
( ) 8. Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。
9. 注释的作用是使程序在执行时在屏幕上显示//之后的内容。 ( )
10. 在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类
型有父类子类关系,此时应该将父类放在后面,子类放在前面。 ( )
1.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( )。
A、init()
B、start() C、destroy() D、stop()
1
2. Java application中的主类需包含main方法,main方法的返回类型是什么?( )
A、int B、float C、double D、void
3.有以下方法的定义,请选择该方法的返回类型( )。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、double
4.下列哪些语句关于Java内存回收的说明是正确的? ( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
5.以下哪个关键字可以用来对对象加互斥锁?( )
A、transient B、synchronized C、 serialize D、static
6.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(
语句。
A、import .* ; B、import .* ;
C、import .* ; D、import .* ;
7.容器Panel和Applet缺省使用的布局编辑策略是( )
A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout
8.设有下面两个赋值语句:
a = nt(“123”);
b = f(“123”).intValue();
下述说法正确的是( )。
A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。
9.以下程序段执行后将有( )个字节被写入到文件afile中。
try{
FileOutputStream fos=new FileOutputStream(“”);
DataOutputStream dos=new DataOutputStream(fos);
nt(3);
ouble(0.01);
nt(6);
();
( );
}
catch(IOException e) { }
A、2 B、8 C、12 D、16
10.编译并运行以下程序,以下描述哪个选项是正确的( )。
1. class A{
2. protected String toString(){
3. return ng();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
)
2
C、行2出错,不能成功编译 D、不能成功编译,行3出错
11.有以下程序片段,下列哪个选项不能插入到行1。( )
1.
class Interesting{
3.//do sth
4. }
A、import .*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
12.要使类中的某个成员变量只能被同一个包中的类访问到,该变量可用什么修饰符修饰?( )
A、protected B、public C、private D、应不加修饰符
13.以下哪个不是Java的关键字?( )
A、TRUE B、const C、super D、void
14.关于以下application的说明,正确的是( )。
1. class StaticStuff
2. {
3. static int x;
4. static { x+=5;}
5. public static void main(String args[ ])
6. {
7. n(“x=” + x);
8. }
9. static { x/=5;}
10.}
A、4行与9行不能通过编译,因为缺少方法名和返回类型
B、9行不能通过编译,因为只能有一个静态初始化器
C、编译通过,执行结果为:x=1
D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化
15.有程序如下,关于程序的描述哪个是正确的?( )
public class Person{
static int a[] = new int[10];
public static void main(String a[])
{ n(arr[1]); }
}
A、编译将产生错误
C、正确,输出0
B、编译时正确,但运行时将产生错误
D、正确,输出 null
16.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个
类可能是FilterOutputStream构造函数的参数类型?
A、OutputStream B、File C、InputStream D、BufferedOutputStream
17.以下关于构造函数的描述错误的是( )。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
18.有语句String s=”hello world”; ,以下操作哪个是不合法的?( )
3
A、int i=(); B、s>>>=3; C、String ts=(); D、String t=s+”!”;
19.在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。
A、private B、protected C、private protected D、public
20.有程序片段如下,以下哪个表示式的结果为true?( )
Float s=new Float(0.1f);
Float t=new Float(0.1f);
Double u=new Double(0.1);
A、s==t B、(t) C、(s) D、(u)
1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( )
A、 String args B、String ar[] C、Char arg D、StringBuffer args[]
2.以下关于继承的叙述正确的是( )。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
3.paint()方法使用哪种类型的参数? ( )
A、Graphics B、Graphics2D C、String D、Color
4.以下哪个不是Java的原始数据类型( )
A、int B、Boolean
)。
C、Applet D、Dialog
C、float D、char
5.以下哪项可能包含菜单条(
A、Panel B、Frame
6.若需要定义一个类域或类方法,应使用哪种修饰符?( )
A、static B、package C、private D、public
7.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( )。
A、init() B、start() C、destroy() D、stop()
8.给出下面代码,关于该程序以下哪个说法是正确的?( )
public class Person{
static int arr[] = new int[5];
public static void main(String a[])
{
n(arr[0]); }
}
A、编译时将产生错误
C、输出零
B、编译时正确,运行时将产生错误
D、输出空
9.下列哪些语句关于Java内存回收的说明是正确的? ( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
10.以下哪个关键字可以用来对对象加互斥锁?( )
A、transient
B、synchronized C、 serialize D、static
4
11.以下代码段执行后的输出结果为( )
int x=-3; int y=-10;
n(y%x);
A、 -1 B、2 C、1 D、3
12.有以下程序片段,下列哪个选项不能插入到行1。( )
1.
class Interesting{
3.//do sth
4. }
A、import .*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
13. 设有下面两个赋值语句:
a = nt(“12”);
b = f(“12”).intValue();
下述说法正确的是( )。
A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。
14.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个
类可能是FilterOutputStream构造函数的参数类型?
A、OutputStream B、File C、InputStream D、BufferedOutputStream
15.在编写Java Applet程序时,需在程序的开头写上( )语句。
A、import .* ;
C、import .* ;
16.类Parent、Child定义如下:
1. public class Parent
2.{ public float aFun(float a, float b) throws
3. IOException { }
4.}
5.public class Child extends Parent{
6.
7.}
将以下哪种方法插入行6是不合法的。( )
A、float aFun(float a, float b){ }
B、public int aFun(int a, int b)throws Exception{ }
C、public float aFun(float p, float q){ }
D、public int aFun(int a, int b)throws IOException{ }
17.在使用interface声明一个接口时,只可以使用( )修饰符修饰该接口。
A、private B、protected C、private protected D、public
B、import ;
D、import cs ;
18、有以下方法的定义,请选择该方法的返回类型( )。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、double
5
19、关于以下代码段的说法正确的是( )
1.String s="abcde";
2.StringBuffer s1=new StringBuffer("abcde");
3.if((s1))
4. s1=null;
5.if((s))
6. s=null;
A、第1行编译错误,String的构造器必须明确调用
B、第3行编译错误,因为s与s1有不同的类型
C、编译成功,但执行时在第5行有异常抛出
D、编译成功,过程中也没有异常抛出
20、编译并运行以下程序,以下描述哪个选项是正确的( )
1. class X{
2. protected String toString(){
3. return ng();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
D、不能成功编译,行3出错 C、行2出错,不能成功编译
1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .java B. .class
C. .html D. .exe
2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。
A. 3 B. 3. 5
C. 4 D. 5
3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图
操作。
A. start( ) B. stop( )
C. init( ) D. paint( )
4、不允许作为类及类成员的访问控制符的是( )。
A. public B. private
C. static D. protected
5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调
用它,该方法头的形式为( )。
A. static void method( ) B. public void method( )
C. final void method( ) D. abstract void method( )
1.编译Java Applet 源程序文件产生的字节码文件的扩展名为( )。
A、java B、class C、html D、exe
2.Java application中的主类需包含main方法,main方法的返回类型是什么?( )
A、int B、float C、double D、void
3.以下哪个方法用于定义线程的执行体? ( )
A、 start() B、init() C、run() D、synchronized()
4.当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?( )
A、init()
B、start() C、destroy() D、stop()
6
5.下面哪个不是Java中的容器? ( )
A、Canvas B、ScrollPane C、Applet D、Dialog
6.以下标识符中哪项是不合法的( )
A、const B、$double C、hello D、BigMeaninglessName
7.以下哪个关键字可以用来为对象加互斥锁?( )
A、transient B、static
)
C、Applet D、Dialog
C、 serialize D、synchronized
8.以下哪项可能包含菜单条(
A、Panel B、Frame
9.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传
回的值也可以不相同。这种面向对象程序的特性称为( )。
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
10.以下关于构造函数的描述错误的是( )。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
11.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( )
语句。
A、import .* ;
C、import .* ;
B、import .* ;
D、import .* ;
12.下列哪些语句关于Java内存回收的说明是正确的? ( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
13.若需要定义一个类域或类方法,应使用哪种修饰符?( )
A、static B、package C、private D、public
14.有以下方法的定义,请选择该方法的返回类型( )。
ReturnType method(byte x, double y)
{
return (short)x/y*2;
}
A、byte B、short C、int D、double
15.有以下程序片段,下列哪个选项不能插入到行1。( )
1.
class Interesting{
3.//do sth
4. }
A、import .*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
7
16.以下哪项是接口的正确定义?( )
A、 interface B
{ void print() { } ;}
B、 abstract interface B
{ void print() ;}
C、 abstract interface B extends A1,A2 //A1、A2为已定义的接口
{ abstract void print(){ };}
D、 interface B
{ void print();}
17.下面哪个函数是public void aMethod(){...}的重载函数?( )
A、void aMethod( ){...}
B、public int aMethod(){...}
C、public void aMethod ( ){...}
D、public int aMethod ( int m){...}
18.A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
1.
2.
3.
A a0=new A();
A a1 =new B();
A a2=new C();
问以下哪个说法是正确的? ( )
A、只有第1行能通过编译
B、第1、2行能通过编译,但第3行编译出错
C、第1、2、3行能通过编译,但第2、3行运行时出错
D、第1行、第2行和第3行的声明都是正确的
19.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( )
class A
{ int i;
static String s;
void method1() { }
static void method2() { }
}
A、n(a.i);B、1(); C、1(); D、2()
20.有如下代码段:
1)
2) { if(unsafe()){//do something…}
3) else if(safe()){//do the other…}
4) }
其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( )
A、 public IOException methodName()
B、 public void methodName()
C、public void methodName() throw IOException
D、public void methodName() throws IOException
二、填空题(每空格1分,共20分)
1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、解释运行字节码。
2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是
8
Applet类的子类并且存储该源程序文件的文件名为 MyApplet 。
3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译
器编译该源程序文件将产生个文件名与类名相同而扩展名为 . class 的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占
用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用2 字节内存空间。
5、设 x = 2 ,则表达式 ( x + + )/3 的值是 0 。
6、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 true 和 false 。
7、抽象(abstract)方法 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在
抽象类之中定义。最终(final)方法 方法是不能被当前类的子类重新定义的方法。
8、创建一个名为 MyPackage 的包的语句是 package MyPackage ; ,
该语句应该放在程序的位置为: 应该在程序第一句。
9、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出
结果是 120 。
int s = 0 ;
for ( int i = 0 ; i < ; i + + )
if ( i % 2 = = 1 ) s += MyIntArray[i] ;
n( s );
10、在Java程序中,通过类的定义只能实现 单 重继承,但通过接口的定义可以实现 多 重
继承关系。
三、写出下列程序完成的功能。(每小题5分,共20分)
1、计算 1/1+1/2+1/3+...+1/100 的值。
2、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。
3、创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。
4、求两个数的最大值。
1、public class Sum
{ public static void main( String args[ ])
{ double sum = 0.0 ;
for ( int i = 1 ; i <= 100 ; i + + )
sum += 1.0/(double) i ;
n( "sum="+sum );
}
}
2、 import .* ;
public class Reverse
{ public static void main(String args[ ])
{ int i , n =10 ;
int a[ ] = new int[10];
for ( i = 0 ; i < n ; i ++ )
try {
BufferedReader br = new BufferedReader(
new InputStreamReader());
a[i] = nt(ne( )); // 输入一个整数
} catch ( IOException e ) { } ;
9
for ( i = n-1 ; i >= 0 ; i ―― )
(a[i]+" ");
n( );
}
}
3、 import .*;
public class abc
{ public static void main(String args[])
{ new FrameOut(); }
}
class FrameOut extends Frame // Frame为系统定
{ Button btn; // 义的窗框类
FrameOut( )
{ super("按钮");
btn = new Button("按下我");
setLayout(new FlowLayout( ));
add(btn);
setSize(300,200);
show( );
}
}
4、import .*;
public class abc
{ public static void main(String args[])
{ SubClass sb = new SubClass( );
n(( ));
}
}
class SuperClass
{ int a = 10 , b = 20 ; }
class SubClass extends SuperClass
{ int max( ) { return ((a>b)?a:b); } }
四、写出下面程序的运行结果(每小题10分,共30分)
1、Hello! I love JAVA.
2、s = 180
3、a=60
b=20
c=30
1、 import .*;
public class abc
{ public static void main(String args[ ])
{ AB s = new AB("Hello!","I love JAVA.");
n(ng( ));
10
}
}
class AB {
String s1;
String s2;
AB( String str1 , String str2 )
{ s1 = str1; s2 = str2; }
public String toString( )
{ return s1+s2;}
}
2、 import .* ;
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 < ; i ++ )
if ( a[i]%3 = = 0 ) s += a[i] ;
n("s="+s);
}
}
3、import .* ;
public class abc
{
public static void main(String args[ ])
)
{ n("a="+a+"nb="+b); }
}
class SubClass extends SuperClass
{ int c;
SubClass(int aa,int bb,int cc)
{ super(aa,bb);
c=cc;
}
}
class SubSubClass extends SubClass
{ int a;
SubSubClass(int aa,int bb,int cc)
{ super(aa,bb,cc);
a=aa+bb+cc;
}
void show()
{ n("a="+a+"nb="+b+"nc="+c); }
11
}
五、使用Java语言编写程序。(每小题10分,共20分)
1、编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大
值和最小值。
import .* ;
public class abc
{
public static void main(String args[ ])
{ int i , n = 10 , max = 0 , min = 0 , temp = 0;
try {
BufferedReader br = new BufferedReader(
new InputStreamReader());
max = min = nt(ne( ));
} catch ( IOException e ) { } ;
for ( i = 2 ; i <= n ; i ++ ) {
try {
BufferedReader br = new BufferedReader(
new InputStreamReader());
temp = nt(ne( ));
if (temp > max ) max=temp;
if (temp < min) min=temp;
} catch ( IOException e ) { } ;
}
n("max="+max+"nmin="+min);
}
}
2、编写一个完整的Java Applet 程序使用复数类Complex验证两个复数 1+2i 和3+4i 相加产生一个新
的复数 4+6i 。
复数类Complex必须满足如下要求:
(1) 复数类Complex 的属性有:
RealPart : int型,代表复数的实数部分
ImaginPart : int型,代表复数的虚数部分
(2) 复数类Complex 的方法有:
Complex( ) : 构造函数,将复数的实部和虚部都置0
Complex( int r , int i ) : 构造函数,形参 r 为实部的初值,i为虚部的初值。
Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一
个复数值,返回给此方法的调用者。
String ToString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b分别
为实部和虚部的数据。
import .* ;
import .* ;
public class abc extends Applet
12
{
Complex a,b,c ;
public void init( )
{
a = new Complex(1,2);
b = new Complex(3,4);
c = new Complex();
}
public void paint(Graphics g)
{
c=xAdd(b);
ring("第一个复数:"+ng(),10,50);
ring("第二个复数:"+ng(),10,70);
ring("两复数之和:"+ng(),10,90);
}
}
class Complex
{
int RealPart ; // 复数的实部
int ImaginPart ; // 复数的虚部
Complex() { RealPart = 0 ; ImaginPart = 0 ; }
Complex(int r , int i)
{ RealPart = r ; ImaginPart = i ; }
Complex complexAdd(Complex a)
{
Complex temp = new Complex( ); // 临时复数对象
rt=RealPart+rt;
Part=ImaginPart+Part;
return temp;
}
public String toString( )
{ return ( RealPart+" + "+ImaginPart+" i "); }
}
1.写出以下程序的运行结果。false
true
false
class TwoObjects
{ public static void main(String[] args)
{ B b1=new B();
B b2=new B();
n(b1==b2);
n(b1!=b2);
n((b2));
13