JAVA期末考试试卷及答案[1]
海口市教育局-新年英语祝福语
《JAVA语言程序设计》期末考试模拟试题
( 适用对象:06级计算机类专业
)2008年6月
一、单选择题(每小题2分,共10分)
1、编译Java Application
源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A. .java B. .class
C. .html D. .exe
2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--++x
的值是( A )。
A. 3
B. 3. 5
C. 4
D. 5
3、在Java
Applet程序用户自定义的Applet子类中,一般需要重载父类的( D
)方法来完成一些画图
操作。
A. start( )
B. stop( )
C. init( )
D. paint( )
4、不允许作为类及类成员的访问控制符的是( C )。
A. public B.
private
C. static D.
protected
5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使
用类名AB作为前缀就可以调
用它,该方法头的形式为( A )。
A.
static void method( ) B.
public void method( )
C. final void
method( ) D. abstract void
method( )
二、填空题(每空格1分,共20分)
1、开发与运行Java程序需要经过的三个主要步骤为 编辑源程序 、
编译生成字节码 和 解释运行字节码 。
2、如果一个Java
Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是
Applet 类的子类并且存储该源程序文件的文件名为
MyApplet 。
3、如果一个Java
Applet程序文件中定义有3个类,则使用Sun公司的JDK编译
器
编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 .
class 的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占
用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占
用 2 字节内存空间。
5、设 x = 2 ,则表达式 ( x +
+ )/3 的值是 1 。
6、若x = 5,y = 10,则x < y和x
>= y的逻辑值分别为 true 和 false 。
7、
抽象(abstract)方法
方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须
在抽象类之中定义。
最终(final)方法 方法是不能被当前类的子类重新定义的方法。
8、创建一个名为
MyPackage 的包的语句是 package MyPackag
,
该语句应该放在程序的位置为: 应该在程序第一句 。
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、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(
}
} 答:计算 11+12+13+...+1100 的值
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 ) { }
for ( i
= n-1 i >= 0 i ―― )
(a[i]+
n( );
}
}
答:从标准输入(键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数
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、 import .*;
public class abc
{
public static void main(String args[ ])
{ AB s = new AB(VA.
n(ng(
));
}
}
class AB {
String s1;
String s2;
AB( String
str1 , String str2 )
{ s1 = str1; s2 =
str2; }
public String toString( )
{ return s1+s2;}
}答:1、Hello! I love JAVA.
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 = 180
3、import .*
public class
abc
{
public static void
main(String args[ ])
)
{ n( }
}
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=60
b=20
c=30
五、使用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(
}
}
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
{
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(第一个复数:
ring(第二个复数:
ring(两复数之和:
}
}
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+ }
}
Java线程 程序题
class sum implements Runnable {
int sum = 0;
int i;
public
void run () {
for(i=1;i<=100;i++) {
sum+=i;
}
n(从1加到100的结果为
}
}
class sumpro {
public static
void main(String args[]) {
sum sum1 = new
sum();
Thread t=new Thread(sum1);
();
}
}
异常
.*;
class A{
void m() throws RuntimeException{}
}
class B extends A{
void m() throws
IOException{}
}
.*;
class A{
void m() throws RuntimeException{}
}
class B extends A{
void m() throws
IOException{}
}
class e8{
public
static void main(String args[]){
e8
t=new e8();
();
n(“Hi
}
public void first(){second();}
public void second() throws Exception{
int x[]=new int[2];
x[3]=2;
}
}
class e10{
public static
void main(String args[]) throws Exception{
e10 t=new e10();
();
n(“Hi
}
public void first()
throws Exception{second();}
public void
second() throws Exception{
int
x[]=new int[2];
x[3]=2;
}
}
5使用super调用父类方法
class Fish extends
Animal{
public Fish(){super(0);}
public void eat(){
n(鱼吃小鱼虫
}
public void walk(){
();
n(鱼没有腿不会走路
}
}
6.接口类的实现
class Cat extends Animal implements
Pet{
String name;
public Cat(String
n){
super(4);
name=n;
}
public Cat(){this(
public String
getName(){return name;}
public void
setName(String n){name=n;}
public void
play(){
n(猫玩耍
}
public void
eat(){
n(猫吃猫粮
}
}