您的当前位置:首页正文

JAVA期末考试试卷及答案

来源:我们爱旅游


一.判断题

1. 即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参函数,函数体为

空。 ( 对 ) 2. 在Java的方法中定义一个常量要用const关键字。 ( 错 )

3. 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只

能对应一个catch语句. ( 错) 4. Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。 ( 对 ) 5. 一个线程对象的具体操作是由run()方法的内容确定的,但是Thread类的run()方法是空的,其中没有内容;

所以用户程序要么派生一个Thread的子类并在子类里重新定义run()方法,要么使一个类实现Runnable接口并书写其中run()方法的方法体。 ( 对 )

6. Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定. ( 错 ) 7. 所有的鼠标事件都由MouseListener监听接口的监听者来处理。 ( 错 ) 8. Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 ( 对 ) 9. 如果p是父类Parent的对象,而c是子类Child的对象,则语句p=c是正确的. ( 错 ) 10. Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free. ( 错 ) 11. 由继承性可知,程序中子类拥有的成员数目一定大于等于父类拥有的成员数目。 (错 ) 12. 静态初始化器是在其所属的类加载内存时由系统自动调用执行。 ( 对 ) 13. Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。 ( 对 ) 14. 注释的作用是使程序在执行时在屏幕上显示//之后的内容。 ( 错 ) 15. 在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类

型有父类子类关系,此时应该将父类放在后面,子类放在前面。 ( 对 )

二.选择题;

1.以下哪个方法用于定义线程的执行体? ( C )

A、 start() A、 ScrollPane A、draw() A、 FlowLayout 5.有如下代码段:

1)

2) { if(unsafe()){//do something…} 3) else if(safe()){//do the other…} 4) }

B、init() B、Canvas B、 update() B、CardLayout

C、run() C、Applet C、repaint()

D、synchronized() D、Dialog D、paint()

D、GridLayout

2.下面哪个不是Java中的容器? ( B ) 3.下面哪个方法与applet的显示无关?( A )

4.当Frame改变大小时,放在其中的按钮大小不变,则使用如下哪种布局方式? ( A )

C、BorderLayout

其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?(D )

A、public IOException methodName() B、public void methodName()

C、public void methodName() throw IOException D、public void methodName() throws IOException 6.以下哪个关键字可以用来对对象加互斥锁?( B)

第 0 页 共 9 页

A、transient B、synchronized C、 serialize D、static

7.在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。

A、private

B、protected

C、private protected D、public

8.编译并运行以下程序,以下描述哪个选项是正确的( C )

1。 class A{

2。 protected boolean equals(){ 3。 return super。equals();} 4. }

A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错

9.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用( B )个比特位.

A、8

B、16 C、32 D、64

10.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( 语句。

A、import java。awt。* ; B、import java.applet。* ; C、import java.io。* ;

D、import java。awt.event。* ;

11.以下关于构造函数的描述错误的是( A )。

A、构造函数的返回类型只能是void型。

B、构造函数是类的一种特殊函数,它的方法名必须与类名相同. C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 12.有程序如下,关于程序的描述哪个是正确的?( C )

public class Person{

static int arr[] = new int[10];

public static void main(String a[])

{ System.out.println(arr[1]); } }

A、编译将产生错误 B、编译时正确,但运行时将产生错误

C、正确,输出0

D、正确,输出 null

13.有语句String s=\"hello world\"; ,以下操作哪个是不合法的?( B )

A、int i=s。length(); B、s〉〉>=3; C、String ts=s.trim(); D、String t=s+”!”;

14.给出如下代码:

class Test{ private int m; public static void fun() { // some code。.。 } }

如何使成员变量m 被函数fun()直接访问?( C )

A、将private int m 改为protected int m B、将private int m 改为 public int m C、将private int m 改为 static int m D、将private int m 改为 int m

15. Java application中的主类需包含main方法,main方法的返回类型是什么?( D )

A、int

B、float

C、double

D、void

第 1 页 共 9 页

D ) 16.有以下方法的定义,请选择该方法的返回类型( D )。

ReturnType method(byte x, double y) { return (short)x/y*2; }

A、byte B、short C、int D、double

17.下列哪些语句关于Java内存回收的说明是正确的? ( B )

A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象

18.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(语句。

A、import java。awt。* ; B、import java.applet.* ; C、import java。io。* ; D、import java。awt.event。* ; 19.容器Panel和Applet缺省使用的布局编辑策略是( B ) A、BorderLayout

B、FlowLayout

C、GridLayout

D、CardLayout

20.设有下面两个赋值语句:

a = Integer。parseInt(“123”);

b = Integer.valueOf(“123”).intValue();

下述说法正确的是( D ).

A、a是整数类型变量,b是整数类对象.B、a是整数类对象,b是整数类型变量。 C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。 21.编译并运行以下程序,以下描述哪个选项是正确的( C ).

1. class A{

2。 protected String toString(){ 3。 return super.toString();} 4. }

A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译

D、不能成功编译,行3出错

22.有以下程序片段,下列哪个选项不能插入到行1。( D )

1。

2.public class Interesting{ 3.//do sth 4。 }

A、import java.awt.*; B、package mypackage;

C、class OtherClass{ }

D、public class MyClass{ } 23.以下哪个不是Java的关键字?( A )

A、TRUE

B、const

C、super

D、void

24.关于以下application的说明,正确的是( C )。

1. class StaticStuff

2. { 3. static int x; 4. static { x+=5;} 5. public static void main(String args[ ]) 6. { 7. System。out.println(“x=” + x); 8. }

第 2 页 共 9 页

D ) 9. 10.}

static { x/=5;}

A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=1

D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化

25.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?(B

A、OutputStream A、private

B、File B、protected

C、InputStream

D、BufferedOutputStream

26.在使用interface声明一个接口时,只可以使用(D )修饰符修饰该接口.

C、private protected D、public

27.有程序片段如下,以下哪个表示式的结果为true?( B )

Float s=new Float(0.1f); Float t=new Float(0。1f); Double u=new Double(0。1);

A、s==t B、s。equals(t) C、u.equals(s) D、t。equals(u)

三.程序阅读题

1.写出以下程序的运行结果.(54321)

public class TestArray

{ public static void main(String args[ ]){ int i , j ; int a[ ] = {1,3,2,5,4}; for ( i = 0 ; i < a.length—1; i ++ ) { int k = i; for ( j = i ; j < a。length ; j++ ) if ( a[j]〉a[k] ) k = j; int temp =a[i]; a[i] = a[k]; a[k] = temp; } for ( i =0 ; i〈a。length; i++ ) System.out.print(a[i]+” \"); System。out。println( ); } }

2.写出以下程序的功能。(在屏幕上输出test.java文件的内容) import java.io。*; class FileIODemo{ public static void main(String[ ] args) throws IOException{ int b; FileInputStream fileIn=new FileInputStream(“test。java”); while((b=fileIn。read())!=-1){ System.out。print((char)b); } } }

3.写出以下程序的运行结果.Str0str1str2 str0str2 import java。util。*; public class Vec{

public static void main(String[] args) { String[] s; s=new String[2];

s[0]=new String(\"str1\"); s[1]=new String(\"str2\"); Vector v = new Vector();

for(int i = 0; i 〈2; i++) v.addElement(s[i]);

第 3 页 共 9 页

v。insertElementAt(new String(\"str0”),0); Enumeration e = v。elements();

while(e。hasMoreElements()) System。out。print(e。nextElement()+” ”); System。out。println(); v。removeElement(\"str1\" );

for(int i = 0; i < v.size() ; i++) System。out。print(v。elementAt(i) +\" \"); System.out。println(); } }

4.写出以下程序的运行结果.int class OverloadDemo{

void testOverload( int i ){

System.out.println(“int”); } void testOverload(String s){ System.out。println(“String\"); } public static void main(String args[ ]){

OverloadDemo a=new OverloadDemo ( ); char ch=’x’;

a.testOverload(ch); } }

5.阅读以下程序,写出输出结果。inSecondclass

class First{ public First(){ aMethod(); } public void aMethod(){ System.out。println(“in First class”);} }

public class Second extends First{ public void aMethod(){ System.out。println(“in Second class”);}

public static void main(String[ ] args){ new Second( ); } }

6.写出以下程序的运行结果。

class StaticTest { static int x=1; int y;

StaticTest() { y++; } public static void main(String args[ ]){ StaticTest st=new StaticTest(); System.out.println(”x=\" + x); System.out.println(\"st。y=\" + st.y); st=new StaticTest(); System.out.println(\"st.y=\" + st。y); } static { x++;} }

x=2 st y=1 st y=1

7.阅读以下程序:

class Exp1 {

public static void main(String[] args) { String s,s1=\"”; char c; s=args[0]; for (int i=0;i〈s.length();i++) { c=s.charAt(i); if(c>=’a’ && c〈=’z’){

s1=s1+Character.toUpperCase(c); }else{

第 4 页 共 9 页

} }

s1=s1+Character.toLowerCase(c); }

System.out.println(s1);

若在dos命令行输入:java Exp1 cHINA,则输出为 JAVA eXP1 China 。 8.阅读以下程序:

import java.io。*;public class AboutFile{ public static void main(String[ ] args){ BufferedReader b=new BufferedReader (new InputStreamReader(System.in)); String s; System.out.flush(); s=b。readLine(); System。out.println(“String is:”+s); } }

运行以上程序,若从键盘输入:

java〈回车〉

则输出结果为 String is: java . 9.阅读以下程序,写出输出结果。

class Animal { Animal() {

System。out.print (\"Animal \"); } }

public class Cat extends Animal { Cat() {

System.out.print (\"Cat ”); }

public static void main(String[] args) { Cat kitty= new Cat(); } }

Animal Cat 10.以下程序段的输出结果为 int,int 。

class Cruncher{

void crunch( int i ){ System.out。print(“int”); }

void crunch(String s){

System。out。print(“String”); }

public static void main(String args[ ]){

Cruncher crun=new Cruncher ( ); char ch=’h’; int i=12;

crun。crunch(ch);

System。out.print(“,”); crun。crunch(i); }

}

11.阅读以下程序,输出结果为 cooljava .

import java.io.*; public class TestString

{ public static void main(String args[ ]) { StringC s = new StringC (”cool”,\"java”); System.out.println(s); } }

class StringC { String s1; String s2;

StringC( String str1 , String str2 ) { s1 = str1; s2 = str2; } public String toString( )

第 5 页 共 9 页

{ return s1+s2;} }

12.以下程序段的输出结果为 1 v0 v1 1 vo 。

import java。util.*; public class VecApp {

public static void main(String[] args) { Vector v = new Vector(); for(int i = 0; i <2; i++) v。addElement(”v”+i);

v.insertElementAt(new Integer(1),0); Enumeration e = v。elements(); while(e.hasMoreElements())

System。out。print(e.nextElement()+\" ”); System.out。println(); v.removeElement(”v1” );

for(int i = 0; i < v。size() ; i++)

System。out。print(v.elementAt(i) +” ”); System。out。println(); } }

四.编程题

1.编写一个输出\"Welcome to Java World!\"的Applet程序和嵌入该Applet的HTML页面。 ① // Welcome.java

②//Welcome。html 〈html〉

〈/html〉

import java。applet.*; import java.awt.*;

public class Welcome extends Applet { public static String str=null; public void init() {

第 6 页 共 9 页

str=\"Welcome to Java World !”; };

public void paint(Graphics g) { g。drawString(str, 10, 50); }; }

编写一个完整的JavaApplication程序。包含接口ShapeArea,类Circle、Rectangle、Test,具体要求如下: ⑴接口ShapeArea: ①接口方法

doublegetArea():求一个形状的面积 doublegetPerimeter():求一个形状的周长

⑵类Rectangle:

实现ShapeArea接口,并有以下属性和方法:

① 属性

width:double型,表示长方形的宽度 height:double型,表示长方形的长度

② 方法

Rectangle(doublew,doubleh):构造函数

toString():输出矩形的描述信息,如“width=1.0,height=2。0,perimeter=6.0,area=2。0”

⑶Test类作为主类要完成测试功能 ① 生成Rectangle对象

②调用对象的toString方法,输出对象的描述信息

publicclassTest{//主类定义2分

publicstaticvoidmain(Stringargs[]) { Rectangler=newRectangle(1,2);

System.out。println(r。toString()); } }

interfaceShapeArea//接口定义2分

{ publicabstractdoublegetPerimeter(); publicabstractdoublegetArea(); }

classRectangleimplementsShapeArea{ doublewidth,height;//属性定义1分

Rectangle(doublew,doubleh) //构造函数定义1分 { width=w;height=h; }

publicdoublegetPerimeter()//1分 {return2*(width+height);}

publicdoublegetArea()//1分 {returnwidth*height;}

publicStringtoString()//2分

{ return”width=”+width+\",height=\"+height+

\",perimeter=\"+getPerimeter()+\",area=”+getArea();

第 7 页 共 9 页

} }

第 8 页 共 9 页

因篇幅问题不能全部显示,请点此查看更多更全内容