文档库 最新最全的文档下载
当前位置:文档库 › Java期末复习题答案详解

Java期末复习题答案详解

Java期末复习题答案详解
Java期末复习题答案详解

Java 练习题

一、填空题

(1)Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?( B )

A)安全性 B)多线性 C)跨平台 D)可移植

(2)下列哪个类声明是正确的?( D )。

A)abstract final class HI{···}B)abstract private move(){···}

C)protected private number; D)public abstract class Car{···}

(3)下列关于for循环和while循环的说法中哪个是正确的?( A )。

A)while循环能实现的操作,for循环也都能实现

B)while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果

C)两种循环任何时候都可替换

D)两种循环结构中都必须有循环体,循环体不能为空

(4)异常包含下列那些内容?( C )。

A)程序中的语法错误 B)程序的编译错误

C)程序执行过程中遇到的事先没有预料到的情况 D)程序事先定义好的可能出现的意外情况(5)Character流与Byte流的区别是 ( C )。

A)每次读入的字节数不同 B)前者带有缓冲,后者没有

C)前者是块读写,后者是字节读写 D)二者没有区别,可以互换使用

(6)监听事件和处理事件 ( B )。

A)都由Listener完成 B)都由相应事件Listener处登记过的构件完成

C)由Listener和构件分别完成 D)由Listener和窗口分别完成

(7)Applet可以做下列那些操作? ( A )。

A)读取客户端文件 B)在客户端主机上创建新文件

C)在客户端装载程序库 D)读取客户端部分系统变量

(8)下列哪个属于容器的构件? ( A )。

A)JFrame B)JButton C)JPnel D)JApplet

(9)如果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器?(B)

A)BoxLayout B)GridLayout C)BorderLayout D)FlowLouLayout

(10)为实现多线程之间的通信,需要使用下列那种流才合适?( D )。

A)Filter stream B)File stream C)Random access stream D)Pipde stream

(11)编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。

A..java

B..class

C. .html

D. .exe

(12)设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。

A. 3

B. 3. 5

C. 4

D. 5

(13)在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。

A. start( )

B. stop( )

C. init( )

D. paint( )

(14)不允许作为类及类成员的访问控制符的是( C )。

A. public

B. private

C. static

D. protected

(15)为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。

A. static void method( )

B. public void method( )

C. final void method( )

D. abstract void method( )

(16)在Java中,所有类的根类是( A )。

A.https://www.wendangku.net/doc/8f5846151.html,ng.Object B.https://www.wendangku.net/doc/8f5846151.html,ng.Class C.java.applet.Applet D.java.awt.Frame (17)在Java中,用Package语句说明一个包时,该包的层次结构必须是( B )。A.与文件的结构相同 B.与文件目录的层次相同 C.与文件类型相同D.与文件大小相同(18)在读字符文件Employee.dat时,使用该文件作为参数的类是( D )。A.BufferReader B.DataInputStreamC.DataOutoutStream D.FileInputStream (19)下列构造方法的调用方式中,正确的是 ( C )。

A.按照一般方法调用 B.由用户直接调用 C.只能通过new自动调用 D.被系统调用(20)类Panel默认的布局管理器是 ( C )。

A.GridLayout B.BorderLayout C.FlowLayout D.CardLayout

(21)在Java中,能实现多重继承效果的方式是( C )。

A.内部类 B.适配器 C.接口 D.同步

(22)char类型的取值范围是 ( B )。

A.2-7 ~27 -1 B.0~216-1 C.-215 ~215 -1 D.0~28-1

(23)能够支持javadoc命令的注释语句是 ( D )。

A./**...// B./*...*/ C.// D./**...*/

(24)十进制数16的16进制表示格式是 ( A )。

A.0x10 B.0x16 C.0xA D.16

(25)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )。

A.public int MAX_LENGTH=100

B.final int MAX_LENGTH=100

C.public const int MAX_LENGTH=100

D.public final int MAX_LENGTH=100

(27)下列方法中可以用来创建一个新线程的是 ( C )。

A.实现https://www.wendangku.net/doc/8f5846151.html,ng.Runnable接口并重写start()方法

B.实现https://www.wendangku.net/doc/8f5846151.html,ng.Runnable接口并重写run()方法

C.实现https://www.wendangku.net/doc/8f5846151.html,ng.Thread类并重写run()方法

D.实现https://www.wendangku.net/doc/8f5846151.html,ng.Thread类并重写start()方法

(28)下列关于Java Application与Applet的说法中,正确的是( C )。

A.都包含main()方法

B.都通过“appletviewer”命令执行

C.都通过“javac”命令编译

D.都嵌入在HTML文件中执行

(29)当启动Applet程序时,首先调用的方法是( B )。

A.stop()B.init()C.start()D.destroy()

(30)下列关于线程优先级的说法中,正确的是( C )。

A.线程的优先级是不能改变的

B.线程的优先级是在创建线程时设置的

C.在创建线程后的任何时候都可以设置

D.B和C

(31)当浏览器重新返回Applet所在页面时,将调用Applet类的方法是 ( A )。

A.start() B.init() C.stop() D.destroy()

(32)按照Java的标识符命名规范,下列表示一个类的标识符正确的是 ( B )。A.Helloworld B.HelloWorld C.helloworld D.helloWorld

(33)下列代码中,将引起一个编译错误的行是 ( D )。

1)public class Test{

2) int m,n;

3) public Test() {}

4) public Test(int a) {m=a;}

5) public static void main(String args[]){

6) Test t1,t2;

7) int j,k;

8) j=0;k=0;

9) t1=new Test();

10) t2=new Test(j,k);

11) }

12)}

A.第3行

B.第5行

C.第6行

D.第10行

(34)下列程序的功能是在监控台上每隔一秒钟显示一个字符串“Hello”,能够填写在程序中下划线位置,使程序完整并能正确运行的语句是 ( D )。

public class Test implements Runnable{

public static void main(String args[]){

Test t=new Test();

Thread tt=new Thread(t);

tt.start();

}

public void run(){

for(;;){

try{

;

}catch( e){}

System.put.println("Hello");

}

}

}

A. sleep(1000)

InterruptedException

B. sleep(1000)

InterruptedException

C. Thread.sleep(1000)

RuntimeException

D. Thread.sleep(1000)

InterruptedException

(35)阅读下列代码后

public class Person{

int arr[]=new int[10]; ///////static int arr[]=new int[10];这样选C

public static void main(String args[]){

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

}

}

正确的说法是( A )。

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

C.输出零 D.输出空

(36)在Java中,负责对字节代码解释执行的是(B)。

A.垃圾回收器 B.虚拟机 C.编译器 D.多线程机制

(37)下列叙述中,正确的是( A )。

A.Java语言的标识符是区分大小写的

B.源文件名与public类名可以不相同

C.源文件扩展名为.jar

D.源文件中public类的数目不限

(38)下列属于合法的Java标识符是( A )。

A._cat B.5books C.+static D.-3.14159

(14)在Java中,表示换行符的转义字符是( A )。

A.\n B.\f C.'n' D.\dd

(39)在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是( D )。A.java.applet B.java.awt C.java.util D.https://www.wendangku.net/doc/8f5846151.html,ng

二、填空题

(1)对象串行化可以很容易地扩展成支持Java对象的( 持续存储或持久存储 ),它提供了对象从流中重建的补充方式.

(2)Vector类的对象是通过capacity和capacityIncrement两个值来改变集合的容量,其中capacity表示集合最多能容纳的( 元素个数 ),capacityIncrement表示每次增加多少容量,不是一个一个增加.

(3)下列程序的功能是判断某一年是否为闰年.请在横线处填入适当内容,使程序能够正确运行.

import java.io.*;

public class LeapYear{

public static void main(String arge[])throws IOException{ InputStreamReader ir;

BufferdeReadwe in;

ir=new InputStreamReader(System.in);

in=new BufferedReader(ir);

System.out.println(“输入年份是:”);

String s= ( in.readLine() );

int year=Integer.parseInt(s);

if (year % 4 = = 0 && year % 100! = 0 // year % 400 = =

0)

{

System.out.println(""+year+"年是闰年.");

}

else

{

System.out.println(""+year+"年不是闰年..");

}

}

}

(4)下面程序对数组中每个元素赋值,然后按逆序输出.请在横线处填入适当内容,使程序能正常运行.

import java.io.*;

public class ArrayTest{

public static void main(String args[]){

int i;

int a[] = new int[5];

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

a[i]=i;

for(( i=i-1 ) ;i>=0;i- -)

System.out.println("a["+i+"]="+a[i]);

}

}

(5)下列程序的功能是:输入一个姓名,程序运行后,输出“姓名Welcome you!”.例如,输入“张三Welcome you !”.请在下面横线处填入正确的方法名,使程序可以正确运行.

import java.awt.*;

import java.awt.event.*;

public class Test{

public static void main(String args[])

{

new FrameInOut();

}

}

class FrameInOut extends Frame implements ActionListener

{

Label prompt;

TextField input,output;

Button btnn;

FrameInOut()

{

prompt=new Label("Please input your name");

input=new TextField(10);

output=new TextField(25);

btnn=new Button("Class");

setLayout (new FlowLayout());

add(prompt);

add(input);

add(output);

add(btnn);

input.addActionListener(this);

btnn.addActionListener(this);

setSize(300,200);

show();

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getSource()== input)

output.setText(input.getText()+"Welcome you!");

else

{

dispose();

System.exit(0);

}

}

}

(6)开发与运行Java程序需要经过的三个主要步骤为(编辑源程序 )、( 编译生成字节码 ) 和(解释运行字节码)。

(7)如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是(Applet)类的子类并且存储该源程序文件的文件名为(MyApplet. java) 。

(8)如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器(java)编译该源程序文件将产生( 1 )个文件名与类名相同而扩展名为( .class ) 的字节码文件。

(9)在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用( 2 )字节内存空间,这样,无论是中文字符还是英文字符,都是占用( 2 )字节内存空间。

(10)设 x = 2 ,则表达式 ( x + + )/3 的值是( 0 )。

(11)若x = 5,y = 10,则x < y和x >= y的逻辑值分别为( true )和 (false ) 。

(12) ( 抽象 )方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。( final )方法是不能被当前类的子类重新定义的方法。

(13)创建一个名为 MyPackage 的包的语句是(package MyPackage),该语句应该放在程序的位置为:( 类的最前面 )。

(14)设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是( 120 ) 。

int s = 0 ;

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

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

System.out.println( s );

(15)在Java程序中,通过类的定义只能实现( 单 )重继承,但通过接口的定义可以实现( 多 )重继承关系。

(16) Java源文件中最多只能有一个( public )类,其它类的个数不限。

(17)在Java中所实现的多维数组,实际上是由一维数组构成的( 数组 )。

(18)StringBuffer类提供( )字符串对象的表示。

(19)每个Applet程序必须有一个类是 ( Applet )类的子类。

(20)线程在生命期中要经历5种状态,分别是新建状态、可运行状态、运行状态、(阻塞 )状态和终止状态。

(21)FileInputStream是字节流;BufferedWriter是字符流;ObjectOutputStream是( 对象流 )。

(22)break语句最常见的用法是在switch语句中,通过break语句退出switch语句,使程序从整个switch 语句后面的 ( 第一条语句 ) 开始执行。

(23)请阅读下列程序代码,然后将程序的执行结果补充完整。

public class throwsException {

static void Proc(int sel)

throws ArithmeticException,ArrayIndexOutOfBoundsException{

System.out.println("In Situation"+sel);

if(sel==0){

System.out.println("no Exception caught");

return;

}else if(sel==1){

int iArray[]=new int[4];

iArray[1]=3;

}

}

public static void main(String args[]){

try{

Proc(0);

Proc(1);

}catch(ArrayIndexOutOfBoundsException e){

System.out.println("Catch"+e);

}finally{

System.out.println("in Proc finally");

}

}

执行结果:

In Situation 0

no Exception caught

( )

in Proc finally

执行结果

In Situation0

no Exception caught

In Situation1

in Proc finally

答案:In Situation1

(24)当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceof Thread的值为( false ) 。

false 或 0

表达式:r instanceof Thread的语义即"r是否为Thread的实例(instance)"。再看Thread的构造方法(Thread有许多构造方法,以下是最典型的构造方法,其它构造方法都是从下面的构造方法中"减掉"一些参数形成的):

Thread(ThreadGroup group, Runnable target, String name)

可见,Thread构造方法中没有类型为Thread的参数,故r不可能是Thread的实例 r instanceof Runnable 的结果为true !

三、简答题

1、String是最基本的数据类型吗?

答:基本数据类型包括byte、int、char、long、float、double、boolean和short。https://www.wendangku.net/doc/8f5846151.html,ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类。

2、面向对象的特征有哪些方面?简述每个特征。

3、int 和 Integer 有什么区别?

答:Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。

4、String 和StringBuffer的区别?

答:JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer 类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。

5、运行时异常与一般异常有何异同?

答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

6、final, finally, finalize的区别?

答:final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

7、sleep() 和 wait() 有什么区别?

答:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

8、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding 是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

9、abstract class和interface有什么区别?

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

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

10、启动一个线程是用run()还是start()?

答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

11、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

12、数组有没有length()这个方法? String有没有length()这个方法?

答:数组没有length()这个方法,有length的属性。String有有length()这个方法。13、构造器Constructor是否可被override?

答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

14、是否可以继承String类?

答:String类是final类故不可以继承。

15、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

答:switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。

16、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

答:会执行,在return前执行。

17、简述Java多态性的概念,隐藏、覆盖和重载的概念及使用时应注意的问题。

答:多态性:在一个类中可以定义多个同名方法,有静态多态性和动态多态性。

隐藏:子类重新定义了父类中的同名成员变量。被隐藏的父类成员变量在子类中仍然占有存储空间。

覆盖:子类重新定义了父类的同名成员方法,要求方法名、参数和返回类型都相同。与隐藏不同,此时子类方法将替换掉同名的父类方法,清除父类方法在子类中占有的空间。

重载:在同一个类中定义多个同名但参数不同的方法,参数不同是指个数、类型或顺序不同。注意事项:

不能覆盖父类的static方法和final方法。

可以隐藏父类的static方法,即在子类中声明同名static方法。

非Static方法不能隐藏,只能覆盖。

子类必须覆盖父类的abstract方法。

18、什么是事件、事件源和事件监听器?简述使用事件监听器进行事件处理的过程。

答:事件:对界面的某种操作,如按键、单击鼠标、鼠标移动等。

事件源:事件的产生者,通常是某一组件,如按钮等。

事件监听器:是某些事件的接口,其中定义了被监听的事件发生时系统要调用的方法。

事件处理过程由下面3步组成:

①为类声明需要的事件监听器接口。

②给事件源注册一个事件监听器。

③实现接口声明中事件处理方法。

19、简述Java中构造方法的概念及特点。

答:构造方法:构造方法是一种特殊的方法,用于初始化对象。

特点:①构造方法与类同名,可以有参数,也可无参数。

②构造方法没有返回值,在方法前也不需要写void。

③创建对象时,系统自动调用构造方法。

④用户在程序中不能直接调用构造方法,只能通过new操作符调用。

⑤一个类可以有多个同名构造方法,但参数必须不同。所谓参数不同是指:

⑥类中可以不定义构造方法,此时Java提供一个默认的无参数构造方法

20、简述Java中接口的概念及接口的性质?

答:Java语言规定,类只能实现单继承,但接口可以实现多重继承。接口中定义的方法都是抽象方法,定义的所有域都是常量。

因此接口可以看作是没有实现的方法和常量的集合。使用接口主要是解决Java语言不支持多重继承的问题。

性质:①接口不提供代码重用性。因为接口中的方法都是没有实现的方法,因此所有的方法体都要自己编写。

②接口可以通过多继承进行扩展。

③接口不能升级,即提供给用户的接口不能再改变。

四、阅读程序写结果

1、class V1{

int a=1;

void m1(){ System.out.println(a); }

}

class E1 extends V1{

int a=2,b=3,c;

void m2(){ System.out.println(a); }

}

class H{

public static void main(String[] s){

E1 e1=new E1();

e1.m1(); e1.m2(); }

}

结果:

1

2

2、class V1{

public int x=2;

V1(){ System.out.println("V1"); }

}

class V2 extends V1{

public int x=3;

V2(){ System.out.println("V2"); }

}

class H{

public static void main(String[] s){

V1 e1=new V2();

System.out.println(e1.x); } }

结果:

V1

V2

2

//*V1 e1=new V2();等价成:

V1 e1;

e1=newV2();这样就很明显了

3、import java.io.*;

public class abc

{ public static void main(String args[ ])

{ AB s = new AB("Hello!");

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;}

}

以上程序编译错误:参数不匹配

改为:

import java.io.*;

public class Test

{ public static void main(String args[ ]) { AB s = new AB("Hello","world!");

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;}

}

结果为:Helloworld!

4、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);

}

}

结果:180

5、 class V1{

public int x=4;

V1(){ System.out.println("V1"); }

class V2 extends V1{

public int x=7;

V2(){ System.out.println("V2"); } }

class H{

public static void main(String[] s){ V1 e1=new V2();

System.out.println(e1.x); } }

结果:

V1

V2

4

6、class V1{

int a=3;

void m1(){ System.out.println(a); } }

class E1 extends V1{

int a=5,b=3,c;

void m2(){ System.out.println(a); } }

class H{

public static void main(String[] s){ E1 e1=new E1();

e1.m1(); e1.m2(); }

}

结果:

3

5

五、阅读程序,给出程序的功能

1、public class H{

public static void main(String args[]){

Fact N=new Fact(4);

System.out.print(N.fact());

} }

class Fact{

int n;

Fact(int nn) {n=nn;}

int fact(){

int i,f=1;

for(i=1;i<=n;i++)

f=f*i;

return f;

} }

功能:计算n!(n的阶乘)

2、public class H{

public static void main(String args[]){

int i,Max,Min;

int a[]={12,67,8,98,23,56,124,55,99,100};

Max=a[0];Min=a[0];

for(i=1; i

if(a[i]

if(a[i]>Max) Max=a[i];

}

System.out.print(Max+" "+Min);

} }

功能:查找数组a的最大值和最小值

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

功能:输出两个数中较大的

3、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+"\nmin="+min); }

}

功能:从控制台输入10个数,程序选出最大的和最小的4、import java.awt.*;

public class abc

{ public static void main(String args[])

{ new FrameOut(); }

}

class FrameOut extends Frame

{ Button btn;

FrameOut( )

{ super("button");

btn = new Button("click");

setLayout(new FlowLayout( ));

add(btn);

setSize(300,200);

show( );

}

}

功能:实现这么个功能

5、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 );

}

功能:计算1/1+1/2+……+1/100

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

}

}

功能:实现对输入的10个数排序

五、阅读程序写结果

1、设计类A和A的派生类B,要求:

1)A有两个数据成员a和b(都为int型);B中继承了A中的a和b,又定义了自己的数据成员c(int型)。

2)为A添加含有两个参数的构造方法,对a和b初始化。

3)为B添加含有一个参数的构造方法,对c初始化。

4)完成主控方法,在主控方法中用B e1=new B(5)创建对象,把a、b、c分别初始化成3、4、5,最后输出它们的和。

class A {

int a,b;

A(int a,int b){

this.a=a;

this.b=b;

}

}

class B extends A{

int c;

B(int c){

super(3,4);

this.c=c;

}

}

public class Test{

public static void main(String []args){

B e1=new B(5);

System.out.println(e1.a+e1.b+e1.c);

}

}

2、编写一个字符界面的Java Application程序,要求如下:

1)使用字符输入流类的readLine()方法,接收键盘输入的10个整数。

2)用起泡法进行非递减排序,排序结果显示在字符界面上。

import java.io.*;

public class Test{

public static void main(String []args){

int count[]=new int[10];

for(int i=0;i<10;i++){

try {

B ufferedReader br=new BufferedReader(new

InputStreamReader(System.in));

c ount[i]=Integer.parseInt(br.readLine());

} catch ( IOException e ) { } ;

}

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

{

for(int j=i;j<9;j++)

{

if(count[i]

{

int t;

t=count[i];

count[i]=count[j+1];

count[j+1]=t;

}

}

}

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

{

System.out.print(count[i]+" ");

}

}

}

3、编写一个图形界面的Applet应用程序(HTML文件可以略去),要求如下:

1)在Applet界面上添加三个TextField组件、两个Label组件和一个Button组件,如下图所示。

2)在两个TextField组件中输入两个整数,鼠标左键单击Button组件,在第三个TextField 组件中显示它们的和。

import java.applet.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class Test extends Applet implements ActionListener{ TextField Tfd1=new TextField(5);

TextField Tfd2=new TextField(5);

TextField Tfd3=new TextField(5);

Button Btn=new Button("相加");

Label Lab1=new Label("+");

Label Lab2=new Label("=");

public void init(){

add(Tfd1);

Tfd1.addActionListener(this);

add(Lab1);

add(Tfd2);

Tfd2.addActionListener(this);

add(Lab2);

add(Tfd3);

Tfd3.addActionListener(this);

add(Btn);

Btn.addActionListener(this);

Btn.setActionCommand("add");

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

String Sum;

int txt1,txt2;

txt1=Integer.parseInt(Tfd1.getText());

txt2=Integer.parseInt(Tfd2.getText());

if(e.getActionCommand().equals("add")){

Sum=(txt1+txt2)+"";

Tfd3.setText(Sum);

}

}

}

4、编写一个程序,判断输入的年是否为闰年。

5、编写一个程序,对数组中每个元素赋值,然后按逆序输出。

6、输入一个姓名,程序运行后,输出“姓名Welcome you!”.例如,输入张三,则结果为“张三Welcome you !”.

7、一个Applet程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将Applet中显示的“请先输入两个待比较的整数”,改为“两个整数中最大值是:x”,x是两个数中的最大值.

import java.applet.Applet;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class Gh extends Applet implements ActionListener {

Label result;

TextField in1, in2;

Button btn;

int a = 0, b = 0, max;

public void init() {

result = new Label("请先输入两个待比较的整数");

in1 = new TextField(5);

in2 = new TextField(5);

btn = new Button("比较");

add(in1);

add(in2);

add(btn);

add(result);

btn.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {

a = new Integer(in1.getText()).intValue();

b = new Integer(in2.getText()).intValue();

if (a > b)

max = a;

else

max = b;

result.setText("两个数中最大值是:" + max);

}

}

8、设计类A和A的派生类B,要求:

1)A有两个数据成员a和b(都为int型);B中继承了A中的a和b,又定义了自己的数据成员c(int型)。

2)为A添加含有两个参数的构造方法,对a和b初始化。

3)为B添加含有一个参数的构造方法,对c初始化。

4)完成主控方法,在主控方法中用B e1=new B(5)创建对象,把a、b、c分别初始化成

3、4、5,最后输出它们的和。

9、编写一个完整的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分别为实部和虚部的数据。

Applet

import java.applet.*;

import java.awt.*;

public class Complexplay 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=https://www.wendangku.net/doc/8f5846151.html,plexAdd(b);

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

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

g.drawString("两复数之和"+c.ToString(),10,90);

}

}

class Complex{

int RealPart,ImaginPart;

Complex(){RealPart=0;ImaginPart=0;};

Complex(int r,int i)

{

RealPart=r;

ImaginPart=i;

}

JAVA期末考试试卷

天津城市建设学院2007~2008学年第二学期 《 java 语言程序设计A 》 试题A 卷 课程号:073101-0 试卷说明:闭卷考试,时间120分钟。 一、 填空(本题共15空,每空2分,共30分) 1.如果一个java 源程序文件中定义有4个类,使用sun 公司的JDK 编译器javac 编译该源程序文件将产生_____4___个文件名与类名相同扩展名为___.Class_____的字节码文件。 2.Java 中所有类都是类 __Object__的子类。 3.请填出在java .lang 包中与下列基本数据类型相对应的封装类: float :java .lang .Float , char : _ java .Lang.char_______, boolean : ___ java .Lang.boolean_____。 4.被关键字____final______修饰的方法是不能被当前类的子类重新定义的方法 5.线程的四种状态是__新建_____ 、_运行_ 、_中断 、__死亡___。 6.java 语言中__https://www.wendangku.net/doc/8f5846151.html,ng.Objet ___是所有类的根。 7.Swing 的事件处理机制包括__事件的监听者__、事件和事件处理者。 8.URL_____Uniform Resourse Locator_____是的缩写。 9.java 有两类应用程序java Application 和____java 10.转义字符以___\__开头。 二、选择(本题共20小题,每题2分,共40分) 1.欲构造ArrayList 类的一个实例,此类继承了List 接口,下列哪个方法是正确的 ? ( B ) A 、 ArrayList myList=new Object (); B 、 List myList=new ArrayList (); C 、 ArrayList myList=new List (); D 、 List myList=new List (); 2.paint()方法使用哪种类型的参数? ( A ) A 、 Graphics B 、 Graphics2D C 、 String D 、 Color 3.指出正确的表达式 ( C ) A 、 byte=128; B 、 Boolean=null; C 、 long l=0xfffL; D 、 double=0.9239d; 4.指出下列程序运行的结果 ( B ) public class Example{ String str=new String("good"); char[]ch={'a','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex .change(ex .str,ex .ch); System .out .print(ex .str+" and "); Sytem .out .print(ex .ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='g'; } } B 、 good and abc B 、 good and gbc C 、test ok and abc D 、 test ok and gbc 5.运行下列程序, 会产生什么结果 ( A )

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

Java笔试题及答案

Java笔试题及答案 一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code C. Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 详解:见下面代码,很明显方法是可以和类名同名的,和构造方法唯一的区别就是,构造方法没有返回值。 package net.study; public class TestConStructor { public TestConStructor() {

} public void TestConStructor() { } public static void main(String[] args) { TestConStructor testConStructor = new TestConStructor(); testConStructor.TestConStructor(); } } 4.提供Java存取数据库能力的包是() 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 详解: java 中没有<> := 这种运算符,if else不算运算符 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是()

大学java期末考试试题和标准答案

《Java程序设计基础》期终考试试卷(模拟) (闭卷) 一、简单编程题(共50分) 在考试文件夹中新建一个应用程序proj1(应用程序地文件夹名称为proj1),按照以下要求编写程序代码. 1. 在程序中定义Person类,为该类编写如下字段、构造器、访问器、修改器和相应地其他方法.(20分) (1)在Person类中定义两个字段: 私有访问权限,类型为String地name字段; 私有访问权限,类型为int地age字段. (2)在Person类中定义构造器 构造器有两个参数,第一个参数地类型是String,名字为name.第二个地类型是int,名字是age.第一个参数地值赋给字段name,第二个参数地值赋给字段age. (3)为Person类地两个字段分别编写访问器方法,方法名称分别为getName和getAge.getName方法返回类型为String地name字段地值;getAge方法返回类型为int地age字段地值. (4)为Person类地两个字段分别编写修改器方法,方法名称分别为setName和setAge.setName方法有一个String类型地参数,方法中用该参数来设置字段name地值;setAge方法有一个int类型地参数,方法中用该参数来设置字段age地值,并且保证age 字段地值不能为负数,如果要将age设置为负数则给出错误提示. (5)为Person类写一个叫做toString地方法,该方法不需要参数,有返回值.它返回一个字符串,字符串中包含name字段和age字段地值,如果name字段地值是“Helen”,age字段地值是20,则返回字符串:“Name:Helen. Age:20”. 2. 在程序中定义Student类,Student类继承Person类.(10分) (1)在Student类中除了继承其超类Person地name字段和age字段外,它还有自己地字段String类型地school,该字段地访问权限为私有. (2)Student类地构造器有三个参数,第一个参数为name,String类型;第二个参数为age,int类型;第三个参数为school,String类型,这三个参数地值分别赋给三个字段name、age和school. (3)在Student类中重写其超类Person地toString方法,要求该方法返回地字符串不仅包含超类Person中地name字段和age字段地值,而且包含子类Student中地school 字段地值.如果name字段地值是“Helen”,age字段地值是20,school字段地值是“山西大学商务学院”,则返回地字符串为“School:山西大学商务学院Name:Helen. Age:20”. 3. 在程序中定义Test类,在Test类中定义一个main方法,在main方法中实现如下操作:(10分) (1)创建一个Person类地对象,它地name为“John”,age为18,对象名为person1; (2)创建一个Student类地对象,它地name为“Helen”,age为18,school为“MIT”,对象名为stuent1; (3)分别输出这两个对象地相关信息(调用它们地toString方法). 4. 分别为Person类和Student类编写文档注释,并生成应用程序地类文档.要求如下:(10分) (1)类地文档注释,包括类名、类地作者及版本号,作者地名字用考生地姓名标注,版本号使用考试地日期; (2)构造器和各个方法地文档注释,包括方法地名称、构造器和方法地功能说明,要求标注构造器和方法中地参数及返回值,并说明参数地类型、名称和返回值地类型. (3)文档注释完成后要使用BlueJ地JavaDOC工具生成应用程序地类文档. 二、代码改错(共20分)

JAVA期末试题及答案

Java 程序设计》课程试卷 1.使用 Java 语言编写的源程序保存时的文件扩展名是( )。 (A ) .class ( B ) .java C ) .cpp ( D ) .txt 2.设 int a=-2 ,则表达式 a>>>3 的值为( )。 (A ) 0 (B )3 (C ) 8 (D )-1 3.设有数组的定义 int[] a = new int[3] ,则下面对数组元素的引用错误的是( ) ( A )a[0]; ( B ) a[a.length-1]; (C )a[3]; (D )int i=1 ; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( )。 (A )封装 (B )继承 (C )覆盖 (D )重载 5.在类的定义中构造函数的作用是( )。 (A )保护成员变量 (B )读取类的成员变量 (C )描述类的特征 (D )初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( )。 ( A ) try ( B ) break ( C ) catch ( D ) finally 7.类与对象的关系是( )。 (A )类是对象的抽象 (B )对象是类的抽象 15. Java 语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB 16. 如果一个类的成员变量 (A) public (B) (C 对象是类的子类 (D )类是对象的具体实例 )。 8.下面哪一个是 Java 中不合法的标识符( ( A )$persons ( B ) twoNum ( C )_myVar ( D )*point 9.为 AB 类的一个无形式参数无返回值的方法 ( ) 。 ( A ) static void method( ) ( B ) public void method( ) ( C ) final void method( ) ( D ) abstract void method( ) 10.欲构造 ArrayList 类的一个实例,此类继承了 ( A ) ArrayList myList=new Object( ) ( B ) List myList=new ArrayList( ) ( C ) ArrayList myList=new List( ) ( D ) List myList=new List( ) 11. Java 源文件和编译后的文件扩展名分别为( (A) .class 和 .java (C).class 和 .class 12. 在 Java Applet 程序用户自定义的 (A) start( ) (B) stop( ) (C) init( ) 13. 对于一个 Java 源文件, (A) package,import,class (C) import,package,class 14. 下面哪个是非法的: (A) int I = 32; (C) double d = 45.0; method 书写方法头,使得使用类名 List 接口,下列哪个方法是正确的( ) ( B).java 和 .class (D) .java 和 .java Applet 子类中,一般需要重载父类的 (D) paint( ) import, class (B) class,import,package (D) package,class,import ( ) 定义以及 package 正确的顺序是: (B) float f = 45.0; (D) char c = // 符号错 AB 作为前缀就可以调用它,该方法头的形式为 方法来完成一些画图操作。 (D) Unicode 只能 在所在类中使用 则该成员变量必须使用的修饰是

Java web期末考试题

第1页(共7页) 天津师范大学期末考核 2015—2016 学年第2学期 期末考核试卷 科目:Java Web 应用开发 学院:计信学院 专业:计算机科学 一、 单选题:(每小题2分,共10分) 1. 下列语句属于声明语句的是( A )。 A .<%! Int a = 4;%> B.<% int a=4;%> C .<%--int a=4-- %> D. <%@ int a=4%> 得分 2. 一个servlet 的生命周期不包括( B )方法? A .init( )方法 B. invalidate( )方法 C .service( )方法 D .destroy( )方法 得分 3. Application 对象的作用域是( B )。 A . 一次会话 B. 整个应用程序 C . 一次请求 D . 整个页面 得分 4. 下面对servlet 中重定向说法描述错误的是( D )。 A .使用的是HttpServletResponse 接口的sendRedirect()方法 B. 源组件的响应结果不会发送给客户端 C .sendRedirect()方法后的代码仍会执行 D .源组件和目标组件共享ServletRequest 对象

第2页(第7页) 得分 5. 有一个JavaBean 组件,类名为Student ,此JavaBean 组件的获得访问方法是getTotalScore,其功能是获得某个学生几门功课的总分,返回值保留一位小数,则以下关于getTotalScore 的声明正确的是( B )。 A .public int getTotalScore() B. public float getTotalScore() C .protected int getTotalScore() D .protected float getTotalScore() 得分 2. 3. Sevlet 过滤器核心对象放置在javax.servlet 包中,其名称为 4.

Java期末考试题

2010年——2011年Java期末考试题 一、判断题。 1.Java语言是平台无关的语言。T 2.类的静态方法中可以访问该类的非静态数据成员.F 3.Java中方法调用时参数传递都是按值传递的,因此从方法中退出时,参数的值是不 会变的。T 4.覆盖方法所抛出的异常不能比原方法更多。T 5.Final 方法不能被覆盖。T 6.抽象类中一定包含抽象方法。F 7.接口中的方法必须是抽象方法。T 8.在方法定义中,所以可能发生的异常都必须用try{} catch(){}捕捉。F 9.Java支持多重继承。F 10.Final修饰的类不能派生子类。T 11.覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。T 12.不能在静态方法中使用this.T 13.抽象类中不能创建对象。T 14.一个类可以实现多接口。T 15.接口中可以包含非静态成员。F 16.不论是否捕捉到异常try{}catch(){} final{}语句中finally块中的代码总要被执行。T 17.一个类实现一个接口,则该类必须实现接口中的所有方法。F 18.线程使用sleep方法去休眠后可以使用notify方法唤醒。F 19.线程使用sleep方法休眠是会释放该线程同步锁定的对象。F 20.Final类中的属性和方法都必须是final的。F 二、选择题 1、Java中复合数据类型不包括(D) A.类类型 B.数组 C.接口类型 D.指针 2、请从四个选项中选择答案,下列代码的执行结果是:(C) Public class Test{ Public static void main(String args[]){ Float t=9.0f; Int q=6; System.out.println((t++)*(--q)); } } A.40 B.40.0 C.45.0 D.36.0 3、下列关于修饰符混用的说法,错误的是(D) A.abstract 不能与final 并列修饰同一个类 B.abstract类中可以有非abstract的方法 C.普通类(非abstract类)中不能有abstract方法 D.static方法中能处理非static的属性 4、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A) A.可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问B.只能被该类本身和该类的所有的子类访问 C.只能被该类自身所访问 D.只能被同一个包中的类访问 5、x=2,y=3,z=4,则表达式z*=y++*--x的值是(A) A.12 B.24 C.16 D.3 6、以下赋值语句正确的是(D) A.char c1=”a” B.float f1=3.22 C.byte b1=266 D.long L1=0xAC8L 7、Java不支持多重继承,但我们可以通过(B)实现 A.多态 B.接口 C.覆盖 D.抽象类 8.已知类person是类student的父类,以下数组定义和赋值哪些是正确的(A) A. person p[]=new person[3]; p[1]=new student(); B .student s[]=new person[3]; s[1]=new person(); C .person p[]= new student[3];p[1]= new person(); D .student s[]=new student[3];s[1]=new person; 9 编译MyClass.java之后,得到了三个字节码文件:MyClass.class , MyClasslittle$.class MyClass$1.class.这表明(C) A.MyClass类中的两个方法:little和1 B. MyClass.Java中有三个类:MyClass、little和1 C. MyClass类中有两个内部类:一个是命名的little,另一个是匿名的1 D. MyClass、little和1,这三者没什么关系 10、main 方法是java Application 程序执行的入口点,关于main方法的方法头以下(B)是合法的。 A.public static void main() B.public static void main(String arg[]) C.public static int main(String[] arg) D. B.public void main(String arg[]) 11、当编译和运行下面的代码会出现什么情况?(A)

Java期末考试试卷1

信息学院2006—2007学年第二学期期末考试试题A 课程名称:Java 语言程序设计主讲:年级: 班级姓名学号 题号一二三四五合计 分数 一、选择(每题1分,共20分) 1.有一个名为MyClass的public类,想成功编译需满足以下哪个条件?() A. MyClass类中必须定义一个正确的main()方法。 B. MyClass必须定义在MyClass.java源文件中。 C. MyClass类必须定义在MyClass包中。 D. MyClass类必须被导入。 2.以下哪些修饰符不能用于顶层类?( ) A. public B. private C. abstract D. final 3.以下哪个是java中合法的关键字?( ) A. array B. Boolean C. protect D. super 4.以下哪些是合法的标识符?( ) A.%abcd B. 2abcd C. package D. _a_long_name 5.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同。这种面向对象程序的特性称为. () A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 6.有以下代码,请问该程序的运行结果是什么?( ) class Example { public static void main(String args[]){ boolean b=true; System.out.println(b); } } A. 打印输出true B. 打印输出1 C.编译错误 D. 无内容输出 7.以下哪些是基本数据类型?( ) A.int B. String C. Integer D. Float 8. 给出以下代码,请选择正确的选项?( ) class Example{ public static void main(String[] args){ char a=”\u1234”; } } A. 代码编译成功 B. 代码编译成功,但有警告 C. 代码编译失败 9.以下哪个语句用于声明一个二维数组?( ) A. int[5][5] a=new int[][]; B. int a=new int[5,5] C. int[][] a=new int[5][5]; D. int[][] a=new [5]int[5]; 10.给出以下代码,请问该程序的运行结果是什么?()

java基础考试题及答案

新员工考试 一、选择题(共30题,每题 2 分) 1. 下面哪些是合法的标识符?(多选题) A. $persons B. TwoUsers C. *point D. this E. _endline 答案A,B,E 分析Java 的标识符可以以一个Unicode 字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字(this 保留字)。 2. 哪些是将一个十六进制值赋值给一个long 型变量?(单选题) A. long number = 345L; B. long number = 0345; C. long number = 0345L; D. long number = 0x345L 答案D 分析十六进制数以Ox开头,Io ng型数以L (大小写均可,一般使用大写,因为小写的 l 和数字1 不易区分)。 3. 下面的哪些程序片断可能导致错误? (多选题) A. String s = "Gone with the wind"; String t = " good "; String k = s + t; B. String s = "Gone with the wind"; String t; t = s[3] + "one"; C. String s = "Gone with the wind"; String standard = s.toUpperCase(); D. String s = "home directory"; String t = s - "directory"; 答案B,D 分析 A:String 类型可以直接使用+进行连接运算。 B:String 是一种Object ,而不是简单的字符数组,不能使用下标运算符取其值的某个元 素,错误。 C:toUpperCase()方法是String 对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String 类型)。 D:String 类型不能进行减(- )运算,错误。 4. point x 处的哪些声明是句法上合法的? (多选题) cIass Person { private int a; pubIic int change(int m){ return m; } } pubIic cIass Teacher extends Person { public int b;

JAVA语言程序设计期末考试试题及答案

J A V A语言程序设计期末考试试题及答案 TTA standardization office【TTA 5AB- TTAK 08- TTA 2C】

J A V A语言程序设计考试试题及部分答案 一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.下列语句序列执行后,k 的值是( B )。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A) 0 B) 1 C) 2 D) 3 2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。 A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66; 3.Java语言的类间的继承关系是( B )。 A) 多重的 B) 单重的 C) 线程的 D) 不能继承 4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( C )。 i += i - 1; A) 10 B) 121 C) 11 D) 100 5.下列选项中,用于在定义子类时声明父类名的关键字是( C )。 A)interface B) package C) extends D) class 6.若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是( C )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0]

7.下列语句序列执行后,ch1 的值是( B )。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A) 'A' B) 'B' C) 'C' D) B 8.下列语句序列执行后,i 的值是( D )。 int i=8, j=16; if( i-1 > j ) i--; else j--; A) 15 B) 16 C) 7 D) 8 9.下列语句序列执行后,k 的值是( C )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 10.下面语句执行后,i 的值是( B )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11.设有定义 float x=, y=, z=;则以下的表达式中,值为true的是( B )。 A) x > y || x > z B) x != y

java笔试题含答案

班级:_______________ 学号:______________ 姓名:___________ Java 笔试题 (可多选) 1. 下面哪些是Thread类的方法( ABD) A start() B run() C exit() D getPriority() 2. 下面关于类的说法正确的是(A) A 继承自Throwable B Serialable C 该类实现了Throwable 接口 D 该类是一个公共类 3. 下面程序的运行结果是( false ) String str1 = "hello"; String str2 = "he" + new String("llo"); == str2); 4. 下列说法正确的有( C) A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 5. 指针在任何情况下都可进行>, <, >=, <=, ==运算( true ) 6. 下面程序的运行结果:(B) public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; (); "ping"); } static void pong() { "pong"); } A pingpong

B pongping C pingpong和pongping都有可能 D 都不输出 7. 下列属于关系型数据库的是(AB) A. Oracle B MySql C IMS D MongoDB 8. GC(垃圾回收器)线程是否为守护线程( true ) 9. volatile关键字是否能保证线程安全( false ) 10. 下列说法正确的是(AC) A LinkedList继承自List B AbstractSet继承自Set C HashSet继承自AbstractSet D WeakMap继承自HashMap 11. 存在使i + 1 < i的数吗(存在) 12. 的数据类型是(B) A float B double C Float D Double

《JAVA语言程序设计》期末考试试题及答案

《JA V A语言程序设计》期末考试试题及答案 (应考必备题库) 一、单选择题 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、不允许作为类及类成员的访问控制符的是( )。 A. public B. private C. static D. protected 4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码和解释运行字节码。 2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占 用2字节内存空间,这样,无论是中文字符还是英文字符,都是占 用2字节内存空间。 3、设x = 2 ,则表达式( x + + )/3 的值是0 。 4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。 5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final)方法是不能被当前类的子类重新定义的方法。 6、创建一个名为MyPackage 的包的语句是package MyPackage ; , 该语句应该放在程序的位置为:应该在程序第一句。 7、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是120。

java考试试卷及答案

JA V A考试试卷及答案 选择题 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画 图操作。 A. start() B. stop() C. init() D. paint() 3、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?B A)安全性B)多线程C)跨平台D)可移植 4、下列哪个类声明是正确的?D A)abstract final class HI{···}B)abstract private move(){···} C)protected private number; D)public abstract class Car{···} 6、在Java语言中,下列哪些语句关于内存回收的说明是正确的? B A.程序员必须创建一个线程来释放内存; B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 10、下列Object类中的方法,哪一项不是完全跟线程有关:A A.String toString() B.void notify() C.void notifyAll() D.void wait() 11、给出下面代码:C

public class Person{ static int arr[] = new int[10]; public static void main(String a[]) { System.out.println(arr[1]); } } 下列说法中正确的是? A.编译时将产生错误; B.编译时正确,运行时将产生错误; C.输出零; D.输出空。 12、字符串是Java已定义的类型,关于它的构造函数,下面说法不正确的是:B A.String(char[] value, int offset, int count) B.String(int[] codePoints,int offset, int count) C.String(String original) D.String(StringBuffer buffer) 13、下列说法中正确的是:C A.导入包会影响程序的性能 B.包存储在类库中 C.包是类的容器D.上述说法都不对 14、下列不是String类的常用方法是:C

java_期末考试试题(含答案)

1、如下哪个是Java中有效的关键字。( C、false ) 2、下面的代码段执行之后count的值是什么。( D、16 ) int count=1; for(int i=1;i<=5;i++){ count+=i; } System.out.println(count); 3、下列哪一个import命令可以使我们在程序中创建输入/输出流对象。( C、import java.io.*; ) 4、下列选项中,不属于Java语言特点的一项是。( C、编译执行 ) 5、阅读下列代码段,选出该代码段的正确的文件名。( D ) class A{ void methodl(){ System.out.println(”methodl in class A”):} } public class B{ void method2(){ System.out.println(”method2 in class B”):} public static void main(String args[]){ System.out.println(”main()in class B”): } } A、A .java B、A.class C、B.class D、B.java 6、下面哪条语句把方法声明为抽象的公共方法。( C.public abstract void method(){} 7、编译下面源程序会得到哪些文件。( D ) class A1{ }class A2{ } public class B{ public static void main(String args[ ]){ } } A、只有B.class文件 B、只有A1.Class和A2.class文件 C、有A1.class、A2.Class和B.class文件 D、编译不成功 8、定义类头时能使用的修饰符是(C、protected )。 A、private B、static C、protected D、abstract 9、为了区分重载多态中同名的不同方法,要求( A、形式参数个数或者类型不同 A、形式参数个数或者类型不同 B、返回值类型不同 C、调用时用类名或对象名做前缀 D、形式参数名称不同 10、float类型数据和double类型数据做加法,得到结果的类型是(C、double类型 )。 11、如果在编译Java程序时,编译结果报告说找不到要编译的代码,通常的错误不是如下的哪一项?(B、文件名拼写错误) 12、int类型被包装在如下的哪一个类中?( B、java.1ang.Integer ) 13、关于对下列代码段的描述,正确的一项是( C )。 catch(Exception e){ System.Err. println(“An exception was thrown”); throw e; } A、程序终止 B、编译出错 C、该异常不会被处理 D、该异常会继续被上层处理 14、下列说法中,错误的一项是( C )。 A、内部类是被定义于另一个类中的类 B、使用内部类实现监听器,在编程时比较容易实现 C、内部类对象可以访问外部类的成员方法和变量,包括私有成员

JAVA期末试题及答案

《Java程序设计》课程试卷 1.使用Java语言编写的源程序保存时的文件扩展名是()。 (A).class (B).java(C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为()。 (A)0 (B)3 (C)8(D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是()。 (A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数()。 (A)封装(B)继承 (C)覆盖(D)重载 5.在类的定义中构造函数的作用是()。 (A)保护成员变量(B)读取类的成员变量 (C)描述类的特征(D)初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句()。 (A)try (B)break (C)catch (D)finally 7.类与对象的关系是()。 (A)类是对象的抽象(B)对象是类的抽象 (C)对象是类的子类(D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符()。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的()。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 11.Java源文件和编译后的文件扩展名分别为() (A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java 12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。 (A) start( ) (B) stop( ) (C) init( ) (D) paint( ) 13.对于一个Java源文件,import, class定义以及package正确的顺序是: (A) package,import,class (B) class,import,package (C) import,package,class (D) package,class,import 14.下面哪个是非法的: (A) int I = 32; (B) float f = 45.0; (C) double d = 45.0; (D) char c = ‘u’;//符号错 15.Java语言使用的字符码集是 (A) ASCII (B) BCD

相关文档