java语言期末考试试题答案

时间:2022-07-10 23:52:44 考试 我要投稿
  • 相关推荐

java语言期末考试试题答案2017

Java语言期末考试试卷及答案

一、单选择题(每小题2分,共10分)

java语言期末考试试题答案2017

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分,共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 s = 0 ;

for ( int i = 0 ; i < MyIntArray.length ; i + + )

if ( i % 2 = = 1 ) s += MyIntArray[i] ;

System.out.println( 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 ;

System.out.println( "sum="+sum );

}

}

2、 import java.io.* ;

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(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 java.awt.*;

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 java.io.*;

public class abc

{ public static void main(String args[])

{ SubClass sb = new SubClass( );

System.out.println(sb.max( ));

}

}

class SuperClass

{ int a = 10 , b = 20 ; }

class SubClass extends SuperClass

{ int max( ) { return ((a>b)?a:b); } }

四、写出下面程序的运行结果(每小题10分,共30分)

1、 import java.io.*;

public class abc

{ public static void main(String args[ ])

{ AB s = new AB("Hello!","I love JAVA.");

System.out.println(s.toString( ));

}

}

class AB {

String s1;

String s2;

AB( String str1 , String str2 )

{ s1 = str1; s2 = str2; }

public String toString( )

{ return s1+s2;}

}

2、 import java.io.* ;

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="+s);

}

}

3、import java.io.* ;

public class abc

{

public static void main(String args[ ])

{ SubSubClass x = new SubSubClass(10 , 20 , 30);

x.show();

}

}

class SuperClass

{ int a,b;

SuperClass(int aa , int bb)

{ a=aa; b=bb; }

void show( )

{ System.out.println("a="+a+" b="+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()

{ System.out.println("a="+a+" b="+b+" c="+c); }

}

五、使用Java语言编写程序。(每小题10分,共20分)

1、编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。

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分别为实部和虚部的数据。

JAVA语言期末考试参考答案及评分标准

一、单选择题(每小题2分,共10分)

1、B 2、A 3、D 4、C 5、A

二、填空题(每空格1分,共20分)

1、编辑源程序、编译生成字节码、解释运行字节码

2、Applet、MyApplet

3、javac.exe、3、 . class

4、2 、2

5、0

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、求两个数的最大值。

四、写出下面程序的运行结果(每小题10分,共30分)

1、Hello! I love JAVA.

2、s = 180

3、a=60

b=20

c=30

五、使用Java语言编写程序。(每小题10分,共20分)

1、参考程序如下:

import java.io.* ;

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(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( ));

if (temp > max ) max=temp;

if (temp < min) min=temp;

} catch ( IOException e ) { } ;

}

System.out.println("max="+max+" min="+min);

}

}

2、参考程序如下:

import java.applet.* ;

import java.awt.* ;

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=a.complexAdd(b);

g.drawString("第一个复数:"+a.toString(),10,50);

g.drawString("第二个复数:"+b.toString(),10,70);

g.drawString("两复数之和:"+c.toString(),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( ); // 临时复数对象

temp.RealPart=RealPart+a.RealPart;

temp.ImaginPart=ImaginPart+a.ImaginPart;

return temp;

}

public String toString( )

{ return ( RealPart+" + "+ImaginPart+" i "); }

}

java期末考试题

1.谈谈final, finally, finalize的区别。

final关键字:

a) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。

b) 将变量或方法声明为final,可以保证它们在使用中不被改变。

c) 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。

d) 被声明为final的方法也同样只能使用,不能重载。

finally关键字:在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入finally 块。

finalize:方法名,不是关键字。Java技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

2.GC是什么? 为什么要有GC?

GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

3.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

写程序

Math.round(11.5) = 12

Math.round(-11.5) = -11

4.给我一个你最常见到的runtime exception

ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,

ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

5.abstract class和interface有什么区别

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的.所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

6.面向对象的特征有哪些方面?

1.抽象:

抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:

继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:

封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名

7.java中如何跳出当前多重循环?

用break; return 方法.

8.说出一些常用的类、包和接口,各举5个

类 String Integer Long File Date

包 java.lang.*;java.io.*;java.util.*;java.swt.*;

java.math.*;

接口: Comparable ,Connection,Map,List,Runable,

9.String类是否可以被继承?填空并上机调试

public class test2

{

public static void main(String args[])

{

int aa[]=new int[15];

System.out.println(“before entering method:”);

for(int i=0;i<5;i++)

System.out.println(“aa[“+i+”]=”+___________);

__________________;

System.out.println(“after method:”);

for(int i=0;i<5;i++)

System.out.println(“aa[“+i+”]=”+aa[i]);

}

Static void test( int [] x)

{

int i=10;

System.out.println(“in mathod:”);

for(;i<15;i++)

{

x[i-10]+=i;

System.out.println(“x[“+(i-10)+”]=”+x[i-10]);

}

}

}

运行结果:

String类是final类故不可以继承.

10.填空并上机调试

public class Father

{ int a=100;

public void miner()

{

a--;

}

public static void main(String args[])

{ Father x=________________;

son y=new son();

System.out.println(“The a of son is:”+y.a);

System.out.println(“The a of son’s super is:”+_________________);

y.miner();

System.out.println(“The a of son is:”+y.a);

System.out.println(“The a of son’s super is:”+y.gerA());

}

}

class son_____________________Father

{

int a=0;

public void plus()

{

a++;

}

public int getA()

{

_____________________;

}

}

Java期末考试判断题集锦

1 . Java 程序里 , 创建新的类对象用关键字 new ,回收无用的类对象使用关键字 free 。

2 .对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。

3 .有的类定义时可以不定义构造函数,所以构造函数不是必需的。

4 .类及其属性、方法可以同时有一个以上的修饰符来修饰。

5 . Java 的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点

6 .抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。

7 . Final 类中的属性和方法都必须被 final 修饰符修饰。

8 .最终类不能派生子类,最终方法不能被覆盖。

9 .子类要调用父类的方法,必须使用 super 关键字。

10 .一个 Java 类可以有多个父类。

11 .如果 p 是父类 Parent 的对象,而 c 是子类 Child 的对象,则语句 c = p 是正确的。

12 .一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。

13 .当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。

14 .接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。

15 .用“ + ”可以实现字符串的拼接,用 - 可以从一个字符串中去除一个字符子串。

16 .使用方法 length( ) 可以获得字符串或数组的长度。

17 .设 String 对象 s=”Hello ” ,运行语句 System.out.println(s.concat(“World!”)); 后 String 对象 s 的内容为 ”Hello world!” ,所以语句输出为Hello world!

18 .创建 Vector 对象时构造函数给定的是其中可以包容的元素个数,使用中应注意不能超越这个数值。

19 .所有的鼠标事件都由 MouseListener 监听接口的监听者来处理。

20 .一个容器中可以混合使用多种布局策略。

21 . Java 中,并非每个事件类都只对应一个事件。

22 .一个线程对象的具体操作是由 run() 方法的内容确定的,但是 Thread 类的 run() 方法是空的 , 其中没有内容 ; 所以用户程序要么派生一个 Thread 的子类并在子类里重新定义 run() 方法 , 要么使一个类实现 Runnable 接口并书写其中 run() 方法的方法体。

23 . Java 的源代码中定义几个类,编译结果就生成几个以 .class 为后缀的字节码文件。

24 . Java Applet 是由独立的解释器程序来运行的。

25 . Java Applet 只能在图形界面下工作。

26 . Java 的字符类型采用的是 ASCII 编码。

27 . Java 的各种数据类型占用固定长度,与具体的软硬件平台环境无关

28 . Applet 是一种特殊的 Panel ,它是 Java Applet 程序的最外层容器。

29 .子类的域和方法的数目一定大于等于父类的`域和方法的数目。

30 . System 类不能实例化,即不能创建 System 类的对象。

31 .用户自定义的图形界面元素也可以响应用户的动作,具有交互功能

32 . Java 中数组的元素可以是简单数据类型的量,也可以是某一类的对象。

33 . Vector 类中的对象不能是简单数据类型。

34 . Java 中的 String 类的对象既可以是字符串常量,也可以是字符串变量。

35 .容器是用来组织其他界面成分和元素的单元,它不能嵌套其他容器。


【java语言期末考试试题答案】相关文章:

JAVA题库:JAVA面试题目整理07-11

在中国有哪些核心业务使用java语言的互联网企业?07-10

Java实习报告09-20

华为的JAVA笔试题07-11

华为Java笔试题07-11

Java面试题07-12

java实训报告04-15

java实训总结11-18

java简历的自我评价11-08

java实习报告模板11-08