《JAVA 语言程序设计》期末考试模拟试题
一、单选择题(每小题 2 分,共 10 分)
1、编译 Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(
)。
A.
C.
.java
.html
B.
D.
.class
.exe
2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是(
)。
A.
C.
3
4
B.
D.
3. 5
5
3、在 Java Applet 程序用户自定义的 Applet 子类中,一般需要重载父类的(
操作。
A.
C.
stop( )
paint( )
start( )
init( )
B.
D.
)方法来完成一些画图
4、不允许作为类及类成员的访问控制符的是(
)。
A.
C.
public
static
B.
D.
private
protected
5、为 AB 类的一个无形式参数无返回值的方法 method 书写方法头,使得使用类名 AB 作为前缀就可以调
用它,该方法头的形式为(
)。
A.
C. final
static void method( )
void method( )
B. public
D. abstract
void method( )
void method( )
二、填空题(每空格 1 分,共 20 分)
1、开发与运行 Java 程序需要经过的三个主要步骤为
和
、
。
2、如果一个 Java Applet 源程序文件只定义有一个类,该类的类名为 MyApplet,则类 MyApplet 必须是
类的子类并且存储该源程序文件的文件名为
3、如果一个 Java Applet 程序文件中定义有 3 个类,则使用 Sun 公司的 JDK 编译
器
个文件名与类名相同而扩展名为
编译该源程序文件将产生
。
的字节码文件。
4、在 Java 的基本数据类型中,char 型采用 Unicode 编码方案,每个 Unicode 码占
字节内存空间,这样,无论是中文字符还是英文字符,都是占
用
和
。
。
字节内存空间。
方法是不能被当前类的子类重新定义的方法。
方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之
用
5、设 x = 2 ,则表达式 ( x + + )/3 的值是
6、若 x = 5,y = 10,则 x < y 和 x >= y 的逻辑值分别为
7、
中定义。
8、创建一个名为 MyPackage 的包的语句是
该语句应该放在程序的位置为:
9、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出
结果是
int
for
i = 0 ; i < MyIntArray.length ; i + + )
s = 0 ;
( int
,
。
。
if
( i % 2 = = 1 )
s += MyIntArray[i] ;
System.out.println( s );
10、在 Java 程序中,通过类的定义只能实现
重继承,但通过接口的定义可以实现
重继
1
承关系。
三、写出下列程序完成的功能。(每小题 5 分,共 20 分)
1、public
{ public
class
static void main( String
args[ ])
Sum
sum = 0.0 ;
double
for
i = 1 ;
( int
sum += 1.0/(double) i ;
i <= 100 ; i + + )
System.out.println( "sum="+sum );
{
}
}
2、 import
public
{
java.io.* ;
class Reverse
public
{
int
int
for
try {
static void main(String
args[ ])
i , n =10 ;
a[ ] = new int[10];
( i = 0 ; i < n ; i ++ )
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
a[i] = Integer.parseInt(br.readLine( ));
// 输入一个整数
} catch ( IOException e ) { } ;
for
( i = n-1 ; i >= 0 ; i ―― )
System.out.print(a[i]+" ");
System.out.println( );
}
}
3、 import
public
{ public
{
class
java.awt.*;
abc
void
static
main(String args[])
new FrameOut();
}
}
class
{
FrameOut
Button btn;
FrameOut( )
{
extends
Frame
// Frame 为系统定
// 义的窗框类
super("按钮");
btn = new Button("按下我");
setLayout(new
add(btn);
setSize(300,200);
show( );
FlowLayout( ));
}
}
4、import
public
java.io.*;
class
abc
2
void main(String args[])
SubClass( );
static
SubClass
System.out.println(sb.max( ));
sb = new
{
public
{
}
SuperClass
a = 10 , b = 20 ;
}
}
class
int
{
class SubClass
{
int max( ) {
extends SuperClass
return
((a>b)?a:b);
}
}
四、写出下面程序的运行结果(每小题 10 分,共 30 分)
1、 import
public
{
static void main(String args[ ])
class
java.io.*;
abc
public
{
AB s = new AB("Hello!","I love JAVA.");
System.out.println(s.toString( ));
}
AB {
}
class
s1;
s2;
String
String
AB( String
{
String
public
{ return s1+s2;}
s1 = str1;
str1 , String
s2 = str2; }
str2 )
toString( )
}
2、 import
public
{
java.io.* ;
abc
class
public
{
int
int
for
static
void
main(String
args[ ])
i , s = 0 ;
a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };
( i = 0 ; i < a.length ; i ++ )
if ( a[i]%3 = = 0 )
s += a[i] ;
System.out.println("s="+s);
}
}
java.io.* ;
abc
class
3、import
public
{
public
static
void main(String
args[ ])
{ System.out.println("a="+a+"\nb="+b);
}
)
}
3
SubClass
extends
SuperClass
int c;
SubClass(int
{
super(aa,bb);
c=cc;
aa,int bb,int
cc)
class
{
}
}
class
{
extends
SubClass
SubSubClass
a;
int
SubSubClass(int aa,int bb,int
{
super(aa,bb,cc);
a=aa+bb+cc;
cc)
}
void show()
{ System.out.println("a="+a+"\nb="+b+"\nc="+c);
}
}
五、使用 Java 语言编写程序。(每小题 10 分,共 20 分)
1、编写一个字符界面的 Java Application 程序,接受用户输入的 10 个整数,并输出这 10 个整数的最大
值和最小值。
2、编写一个完整的 Java Applet 程序使用复数类 Complex 验证两个复数 1+2i 和 3+4i 相加产生一个新
的复数 4+6i 。
复数类 Complex 必须满足如下要求:
(1) 复数类 Complex 的属性有:
RealPart :
ImaginPart :
(2) 复数类 Complex 的方法有:
int 型,代表复数的实数部分
int 型,代表复数的虚数部分
r , int
i ) : 构造函数,形参 r 为实部的初值,i 为虚部的初值。
Complex( ) : 构造函数,将复数的实部和虚部都置 0
Complex( int
Complex
个复数值,返回给此方法的调用者。
String ToString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中 a 和 b 分别
为实部和虚部的数据。
a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一
complexAdd(Complex
《JAVA 语言程序设计》期末考试模拟试题
参考答案及评分标准
3、D
2、A
5、A
一、单选择题(每小题 2 分,共 10 分)
1、B
4、C
二、填空题(每空格 1 分,共 20 分)
1、编辑源程序、编译生成字节码、解释运行字节码
2、Applet、MyApplet
3、javac.exe、3、 . class
4、2 、2
5、0
4
6、true 、 false
7、抽象(abstract)方法、最终(final)方法
8、package MyPackage ;
9、120
10、单、多
应该在程序第一句。
三、写出下列程序完成的功能。(每小题 5 分,共 20 分)
1、计算 1/1+1/2+1/3+...+1/100 的值。
2、从标准输入(即键盘)读入 10 个整数存入整型数组 a 中,然后逆序输出这 10 个整数。
3、创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。
4、求两个数的最大值。
love
JAVA.
四、写出下面程序的运行结果(每小题 10 分,共 30 分)
1、Hello! I
2、s = 180
3、a=60
b=20
c=30
五、使用 Java 语言编写程序。(每小题 10 分,共 20 分)
1、参考程序如下:
java.io.* ;
import
public
class
abc
{
public
{
int
void main(String
static
i , n = 10 , max = 0 , min = 0 ,
try {
args[ ])
temp = 0;
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
max = min = Integer.parseInt(br.readLine( ));
} catch ( IOException e ) { } ;
for
( i = 2 ; i <= n ; i ++ )
try {
{
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
temp = Integer.parseInt(br.readLine( ));
(temp > max ) max=temp;
(temp < min) min=temp;
if
if
} catch ( IOException e ) { } ;
System.out.println("max="+max+"\nmin="+min);
}
}
}
5
2、参考程序如下:
import
import
public
{
java.applet.* ;
java.awt.* ;
class
abc
extends Applet
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=a.complexAdd(b);
g.drawString("第一个复数:"+a.toString(),10,50);
g.drawString("第二个复数:"+b.toString(),10,70);
g.drawString("两复数之和:"+c.toString(),10,90);
}
}
class Complex
{
ImaginPart ;
r , int
// 复数的实部
// 复数的虚部
int RealPart ;
int
Complex() { RealPart = 0 ; ImaginPart = 0 ; }
Complex(int
{ RealPart = r ;
Complex
i)
ImaginPart = i ;
a)
complexAdd(Complex
}
{
temp = new Complex( );
Complex
temp.RealPart=RealPart+a.RealPart;
temp.ImaginPart=ImaginPart+a.ImaginPart;
return temp;
// 临时复数对象
toString( )
}
public String
{
}(完)
科目序号:6002 A 卷
return ( RealPart+" + "+ImaginPart+" i ");
}
6
《Java 语言程序设计》期末试卷
(试卷总分:100 分,考试时间:120 分钟,答案写在答卷纸上)
一.判断题(每题 1 分,共 10 分)
1. 无论 Java 源程序包含几个类的定义,若该源程序文件以 A.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 系统的标准输入对象是 System.in,标准输出对象有两个,分别是标准输出 System.out 和标准错
误输出 System.err。
( )
10.即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为
空。
( )
二.单项选择题(每题 2 分,共 40 分)
1.编译 Java Applet 源程序文件产生的字节码文件的扩展名为(
)。
A、java
D、exe
2.Java application 中的主类需包含 main 方法,main 方法的返回类型是什么?(
D、void
C、double
C、html
B、class
B、float
A、int
)
3.以下哪个方法用于定义线程的执行体? (
A、 start()
B、init()
)
C、run()
D、synchronized()
4.当浏览器暂时离开含 applet 程序的页面时,以下选项中的哪个方法将被执行?(
D、stop()
C、destroy()
B、start()
A、init()
)
5.下面哪个不是 Java 中的容器? (
)
A、Canvas
C、Applet
D、Dialog
6.以下标识符中哪项是不合法的(
B、ScrollPane
)
A、const
B、$double
C、hello
D、BigMeaninglessName
7.以下哪个关键字可以用来为对象加互斥锁?(
)
A、transient
B、static
C、 serialize
D、synchronized
8.以下哪项可能包含菜单条(
)
A、Panel
B、Frame
C、Applet
D、Dialog
7
9.在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传
回的值也可以不相同。这种面向对象程序的特性称为(
)。
A、隐藏
B、覆盖
10.以下关于构造函数的描述错误的是(
)。
A、构造函数的返回类型只能是 void 型。
C、重载
D、Java 不支持此特性
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
11.在编写 Java Applet 程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上
(
)语句。
A、import
java.awt.* ;
C、import
java.io.* ;
B、import
java.applet.* ;
D、import
java.awt.event.* ;
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。(
)
Interesting{
class
1.
2.public
3.//do sth
4. }
A、import java.awt.*;
B、package mypackage;
C、class OtherClass{
} D、public class MyClass{ }
16.以下哪项是接口的正确定义?(
)
A、 interface B
{ void print()
{
} ;}
interface B
B、 abstract
{ void print() ;}
D、 interface B
{ void print();}
C、 abstract
{ abstract
interface B extends A1,A2 //A1、A2 为已定义的接口
void print(){
};}
17.下面哪个函数是 public void aMethod(){...}的重载函数?(
)
A、void aMethod( ){...}
8