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

更新时间:2023-11-04 11:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《JAVA语言程序设计》期末考试试题及答案1(应考必备题库) 一、单选择题

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( ) 5 给定java 代码如下,编译运行后,输出结果是()(选择一项)。

public class test { static int i;

public int aMethod() { i++; return i; }

public static void main (String args[]) { Test test=new Test() ; test.aMethod () ;

System.out.println (test.aMethod()) ; } }

a) 0 b) 1 c) 2 d) 3

二、填空题

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 。 int s = 0 ;

for (int i = 0 ; i < MyIntArray.length ; i + + ) if ( i % 2 = = 1 )

s += MyIntArray[i] ;

System.out.println(s);

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

三、写出下面程序的运行结果 1、 import java.io.*;

public class abc {

public static void main(String args [ ]) {

AB s = new AB(\VA.\

System.out.println(s.toString( )); } } class AB { String s1; String s2;

public AB(String str1, String str2) {

s1 = str1; s2 = str2; }

public String toString( )

{

return s1+s2; } }

运行结果:Hello! I love JAVA.

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 = 180 3、class Parent { String one, two;

public Parent(String a, String b){ one = a; two = b; }

public void print(){ System.out.println(one); } }

public class Child extends Parent { public Child(String a, String b){ super(a,b); }

public void print(){

System.out.println(one + \

}

public static void main(String args[]){ Parent p = new Parent(\ Parent t = new Child(\ p.print(); t.print(); } }

运行结果 south east to west

《JAVA语言程序设计》期末考试试题及答案2(应考必备题库) 一.判断题

1.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√ ) 2.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 (× ) 3.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。 (× ) 4.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。 (√ ) 5.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。 (√ ) 6.静态初始化器是在其所属的类加载内存时由系统自动调用执行。 (√ ) 7.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。 (× ) 二.单项选择题

1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( ) A、 String args

B、String args[]

C、Char arg

D、StringBuffer args[]

2.以下关于继承的叙述正确的是( )。

A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口

C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承 3.paint()方法使用哪种类型的参数? ( )

A、Graphics B、Graphics2D C、String D、Color

4.以下哪个不是Java的原始数据类型( ) A、int

B、Boolean

C、float

D、char

5.若需要定义一个类域或类方法,应使用哪种修饰符?( )

A、static

B、package

C、private D、public

6.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( )。

A、init()

B、start()

C、destroy() D、stop()

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

1.

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

A、import java.awt.*; B、package mypackage; C、class OtherClass{ } 8. 设有下面两个赋值语句:

a = Integer.parseInt(“12”);

b = Integer.valueOf(“12”).intValue(); 下述说法正确的是( )。 A、a是整数类型变量,b是整数类对象。 B、a是整数类对象,b是整数类型变量。 C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。

9.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型? A、OutputStream C、InputStream

B、File

D、public class MyClass{ }

D、BufferedOutputStream

10.在编写Java Applet程序时,需在程序的开头写上( )语句。

A、import java.awt.* ; C、import java.io.* ;

B、import java.applet.Applet ; D、import java.awt.Graphics ;

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

A、private

B、protected

C、private protected D、public

}

private static String name;

public void setWeight(float weight) { this.weight = weight; }

private void out() {

System.out.println(name + \体重:\ + weight + \斤\); }

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

Tom.name = \汤姆猫\; Tom cat = new Tom(); cat.setWeight(20); cat.out();

4、以下程序的输出结果_姓名:Tom 年龄:15 家庭住址:金水区 电话:66123456 学校:九中_。 public class Father {

String name, address, tel; int age;

public Father(String name, int age) { this.name = name; this.age = age; }

void out() {

System.out.print(\姓名:\ + name); System.out.print(\年龄:\ + age); }

void outOther() {

System.out.print(\家庭住址:\ + address); System.out.print(\电话:\ + tel); } }

class Son extends Father { String school;

public Son(String name, int age) { super(name, age);

}

}

void out() { super.out();

super.outOther();

System.out.println(\学校:\ + school); }

public static void main(String args[]) { Son son = new Son(\, 15); }

son.address = \金水区\; son.school = \九中\; son.tel = \; son.out();

5、下列程序的运行结果是__12345____。 public class MyClass {

int a[] = { 1, 2, 3, 4, 5 };

void out() {

for (int j = 0; j < a.length; j++) System.out.print(a[j] + \); }

public static void main(String[] args) { MyClass my = new MyClass(); my.out(); } }

四、程序设计题

1、按以下要求编写程序

(1) 创建一个Rectangle类,添加width和height两个成员变量 (2) 在Rectangle中添加两种方法分别计算矩形的周长和面积 (3) 编程利用Rectangle输出一个矩形的周长和面积 解答:

public class Rectangle { float width, height;

public Rectangle(float width, float height) { this.width = width; this.height = height;

}

}

public float getLength(){

return (this.width + this.height) * 2; }

public float getArea(){

return this.width * this.height; }

public static void main(String [] args) { Rectangle rect = new Rectangle(10, 20);

System.out.println(\周长是:\ + rect.getLength()); System.out.println(\面积是:\ + rect.getArea()); }

2、按以下要求编写程序

(1) 编写Animal接口,接口中声明run() 方法 (2) 定义Bird类和Fish类实现Animal接口

(3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法 解答:

public interface Animal { void run(); }

class Bird implements Animal { public void run() {

System.out.println(\鸟儿在飞...\); } }

class Fish implements Animal { public void run() { }

public class TestAnimal {

public static void main(String[] args) { Bird bird = new Bird();

System.out.println(\鱼儿在游...\); }

}

}

bird.run();

Fish fish = new Fish(); fish.run();

《JAVA语言程序设计》期末考试试题及答案4(应考必备题库)

一、 单选题

1、下列程序段执行后的结果是( )。

String s = new String(\for (int i=0; i

A) aceg B) ACEG C) abcdefg D) abcd 2、有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( ).

A) 2 7 8 12 35 C) 35 12 8 7 2

B) 12 35 8 7 2 D) 8 7 12 35 2

3、下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( )。

File f = new File(填代码处); file =new FileReader(f); in=new BufferedReader(file);

A) \ B) \ C) \ D) \ 4、应用程序的main方法中有以下语句,则输出的结果是 ( )。

String s1=new String(\

String s2=new String(\ boolean b1=s1.equals(s2);

boolean b2=(s1==s2); System.out.print(b1+\ \

A)true false B) false true C) true true D)false false 5、应用程序的main方法中有以下语句,则输出的结果是 ( )。

Hashtable hashtable=new Hashtable();

hashtable.put(\ hashtable.put(\ hashtable.put(\

System.out.println(hashtable.get(\

A) a B) abcde C) 12345 D) 67890 6、下面语句的功能是( )。

RandomAccessFile raf2 = new RandomAccessFile(\

A)打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。 B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。 C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。 D) 以上说法都不对。

7、应用程序的main方法中有以下语句,则输出的结果是 ( String s=\

int n=s.indexOf(\ int k=s.indexOf(\ int m=s.indexOf(\ String s2=s.substring(m+1);

System.out.println(s2);

A) 123456 B) 67890 C) aaa D) bbb 8、下面程序段执行后b的值是( )。

Integer integ =new Integer(9);

boolean b = integ instanceof Object; A) 9 B) true C) 1 D) false

9、应用程序Test.java的源程序如下,在命令行键入:

java Test aaa bb c

回车后输出的结果是 ( )。

public class Test {

public static void main(String args[]) { int k1=args.length;

int k2=args[1].length(); System.out.print(k1+\ \ } }

A) 3 2 B)1 2 C) 1 3 D) 3 3 10、应用程序的main方法中有以下语句,则输出的结果是 (

int b[][]={{1}, {2,2}, {2,2,2}};

int sum=0;

)。 )。

for(int i=0;i

System.out.println(\

A) 32 B)11 C) 2 D) 3 11、应用程序的main方法中有以下语句,则执行后输出的结果是 ( )。

int[] x={125,21,5,168,98}; int max=x[0];

for(int i=1;i

System.out.println(max);

A) 125 B) 5 C) 98 D) 168 12、程序Test.java编译运行后输出的结果是( )。

public class Test { String s1=\

public static void main(String args[]) { int z=2;

Test t=new Test(); System.out.println(t.s1+z); } }

A) java2 B)2 C)没有输出结果 D)java 13、应用程序的main方法中有以下语句,则输出的结果是 ( )。

String s1=\

if(x[i]> max)

max =x[i];

double x=Double.parseDouble(s1); int y=Integer.parseInt(s2);

System.out.println(x+y);

A) 12.5 B) 120.5 C) 12 D) “12.5” 14、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt

的内容是( )。

import java.io.*; public class Test { }

A) ABCABC B) ABCDE C) Test D) ABCDE ABCDE ABCDE 二、多选题

1、下面main()方法的定义哪些是正确的( )?

A) public static void main(String args[]) {} B) public static void main(String[]) {}

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

try { }

catch(IOException e) { }

System.out.println(e.toString()); String s=\byte b[]=s.getBytes();

FileOutputStream file=new FileOutputStream(\file.write(b); file.close();

C) public static void main(String[] args) {} D)public static void main(String [] x) {} 2、线程对象的生命周期中,通常经历下面哪些状态( )。 A)新建 B)运行 C)就绪 D)死亡 3、下面说法正确的是( )。

A) final 可修饰类、属性(变量)、方法。 B) abstract可修饰类、方法。

C) 抽象方法只有方法头,没有方法体。 D) 关键字final和abstract不能同时使用。

4、下面关于java中输入/输出流的说法正确的是( )。

A) FileInputStream与FileOutputStream类用读、写字节流。 B) Reader与Writer类用来读、写字符流。

C) RandomAccessFile既可以用来读文件,也可以用来写文件。 D) File类用来处理与文件相关的操作。

5、下面说法正确的是( )。

A)如果某公共接口被声明在一个源文件中,则接口必须与源文件具有相同名字。 B)如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。 C)如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。

D)接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。 6、下面关于Java中异常处理try块的说法正确的是( )?

A) try块后通常应有一个catch 块,用来处理try块中抛出的异常。 B) catch 块后必须有finally块。

C)可能抛出异常的方法调用应放在try块中。 D)对抛出的异常的处理必须放在try块中 7、下面关于进程、线程的说法正确的是( )。

A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。

B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C)Java多线程的运行与平台相关。

D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。 8、关于BufferedReader类的readLine()方法,以下说法正确的是()。 A)方法readLine()每次读取一行数据。 B)方法readLine()每次读取一个字节。

C)该方法可能抛出IOException异常,调用该方法时通常应将它放到try块中,并通过catch块处理异常。

D)如果读到流的末尾,该方法返回的结果为null。 三、程序阅读题

1、阅读下面的程序,回答问题(?问3分,?问3分,共6分) import java.io.*; public class Test {

public static void main(String args[]) throws IOException { BufferedReader buf=new BufferedReader(

new InputStreamReader(System.in)); while(true) {

String str=buf.readLine(); if(str.equals(\

break;

int x=Integer.parseInt(str); System.out.println(x*x); } } }

编译运行上面的程序:

?从键盘输入5,回车后输出的结果如何? ?从键盘输入quit,回车后程序执行情况如何? 答案: ?25

?终止应用程序的运行。

《JAVA程序设计》期末考试试题 (五)

二、 单选题

1、当某一线程正处于休眠状态,而另一个线程用 Thread 类中的 interrupt() 方法中断它时,抛出的异常类型是( )。

A) IOException B) RuntimeException

C) InterruptedException D) ClassNotFoundException 2、下面的程序段的功能是( )。

File file1=new File(\file1.mkdirs();

A)在当前目录下生成子目录:\\xxx\\yyy\\zzz B)生成目录: e:\\xxx\\yyy\\zzz

C)在当前目录下生成文件xxx.yyy.zzz D)以上说法都不对 3、应用程序的main方法中有以下语句,则输出的结果是 ( )。

String s = \int n = s.indexOf(\int k = s.indexOf(\String s2 = s.substring(n+1, k); System.out.println(s2);

A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz 4、关于下面的程序Test.java说法正确的是( )。

public class Test { String x=\ int y;

public static void main(String args[]) { int z=2; System.out.println(x+y+z); } }

A)3 B)102 C) 12 D)程序有编译错误

5、应用程序的main方法中有以下语句,则输出的结果是 ( )。

int b[][]={{1, 1, 1}, {2,2}, {3}};

int sum=0;

for(int i=0; i

System.out.println(\A) 10 B)6 C) 9 D) 13

6、应用程序的main方法中有以下语句,则执行后输出的结果是 ( int[] x = {125,21,5,168,98}; int min = x[0];

for (int i=1; i

min = x[i];

}

System.out.println(min);

A) 125 B) 5 C) 98 D) 168

7、应用程序的main方法中有以下语句,则输出的结果是 ( )。

Hashtable hashtable=new Hashtable(); hashtable.put(\hashtable.put(\hashtable.put(\

System.out.println(hashtable.get(\

+ hashtable.get(\

)。

+ hashtable.get(\

A) aaa B) bbb C) ccc D) cccbbbaaa 8、以下关于java异常说法不正确的是( )。

A) Throwable 类是 Java 语言中Error类和Exception类的父类。

B)当异常对象是Exception类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过try…catch…finally处理。

C)如果只用一个catch块捕捉多个异常对象,则catch 子句中的参数类型应是所有异常对象的父类。

D)以上说法都不对。

9、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( )。

import java.io.*; public class Test { }

A) ABCABC B) ABCDE C)Test D) ABCDE ABCDE ABCDE

10、下面说法不正确的是( )?

A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。 B)List接口是可以包含重复元素的有序集合。 C)Set接口是不包含重复元素的集合。

D)Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。

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

try { }

catch(IOException e) { }

System.out.println(e.toString()); String s=\byte b[]=s.getBytes();

FileOutputStream file=new FileOutputStream(\file.write(b); file.close();

二、多选题

1、下面哪些关键字能用来控制对类成员的访问( )?

A) public B) protected C) private D) default 2、下面关于Java中异常处理try块的说法正确的是( )?

A) try块后通常应有一个catch 块,用来处理try块中抛出的异常。 B) catch 块后必须有finally块。

C)可能抛出异常的方法调用应放在try块中。 D)对抛出的异常的处理必须放在try块中

3、线程对象的生命周期中,通常经历下面哪些状态( )。

A)新建 B)运行 C)就绪 D)死亡 4、定义如下的二维数组b,下面的说法正确的是( )。

int b[][]={{1, 2, 3}, {4, 5},{6, 7, 8}}};

A)b.length的值是3。 B)b[1].length的值是3。

C)b[1][1]的值是5。 D) 二维数组b的第一行有3个元素

5、类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是( )。 A) B x1= new B( ); B) B x1= new C( ); C) C x1=new C( ); D) C x1= new B( ); 6、下面关于进程、线程的说法正确的是( )。

A)进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。

B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进程启动执行。 C)Java多线程的运行与平台相关。

D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并发执行多任务。

7、下面关于外部类和内部类成员的相互访问的规则中,正确的选项是( )。 A)内部类可以直接访问外部类的成员 B)外部类可以直接访问内部类的成员 C)外部类不能访问内部类的成员

D)外部类可通过创建内部类的实例来访问内部类的成员 三、程序阅读题

1、阅读下面的程序代码,并回答问题(?问3分,?问3分,共6分)。

String s1 = new String(\String s2 = new String(\

boolean b1= s1.equals(s2);

boolean b2 = s1== s2; System.out.print(b1+\ \

?程序段执行后,在命令行的输出结果如何? ?解释输出(1)的结果的原因?

答案:

? true false

?equals方法比较两个字符串的内容是否相等;运算符“==”判断两个对象是否指向同一个引用,即是否为同一个对象。

2、阅读下面的程序,并回答问题(?问3分,?问3分,共6分)。 import java.io.*; public class Test {

public static void main(String args[]) throws IOException { BufferedReader buf=new BufferedReader(

new InputStreamReader(System.in)); while(true) {

String str = buf.readLine(); if(str.equals(\ break;

int x=Integer.parseInt(str); System.out.println(x*x); } } }

编译运行上面的程序:

?从键盘输入10,回车后输出的结果如何?

?从键盘输入exit,回车后程序能正确执行吗?为什么?

答案: ?100

?不能;因为方法Integer.parseInt(str)不能将字符串“exit”转化为整数,抛出异常。 3、写出下面的程序编译、运行后的结果(6分)。 public class Test{

public static void main(String args[]) { new Student(\ new Student(\

new Student(\

System.out.println(\ Student.print(); } }

class Student {

protected String name; protected char sex; protected int chinese; protected int english; protected Student next; static Student list;

Student (String name, char sex, int chinese, int english) { this.name=name; this.sex=sex; this.chinese=chinese; this.english=english; this.next=list; list=this; }

static void print() { Student friend=list; if (friend==null)

System.out.println(\ else { do{

System.out.println(friend.toString()); friend=friend.next; }while(friend!=null); } }

public String toString() {

return new String(name+\ }

}

答案:

name sex chinese english Mary f 76 86 Jack m 66 89 Tom m 90 88

《JAVA程序设计》期末考试试题 (六)

一、填空题

1.定义类的保留字是( class ),定义接口的保留字是( interface )。 2.Socket通常也称为 ( 套接字 ),用于描述( IP地址 ) 和 ( 端口 )。 3.线程的优先级在( 1 )至( 10 )之间,数值越大( 任务越紧急 )。 4.构造方法是一种特殊的成员方法,构造方法名与( 类名 ) 相同。 5.Java语言只允许单继承,指每个类只能有一个 ( 父类 )。

6.Java源程序的扩展名是( .java ),经过编译后的程序的扩展名是( .class )。

7. 在一个时间只能由一个线程访问的资源称为 ( 临界资源 ) 。访问临界资源的代码( 临界代码 )。

8. 在多线程系统中,多个线程之间有 ( 同步 ) 和 ( 互斥 ) 两种关系。

二、选择题

1.关于选择结构下列哪个说法正确? ( ) A.if语句和 else语句必须成对出现 B.if语句可以没有else语句对应

C.switch结构中每个case语句中必须用break语句 D.switch结构中必须有default语句

2.while循环和 do…while循环的区别是: ( ) A.没有区别,这两个结构任何情况下效果一样 B.while循环比 do…while循环执行效率高

C.while循环是先循环后判断,所以循环体至少被执行一次 D.do…while循环是先循环后判断,所以循环体至少被执行一次 3.关于 for循环和 while循环的说法哪个正确? ( ) A.while循环先判断后执行,for循环先执行后判断。

B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果 C.两种循环任何时候都不可以替换

D.两种循环结构中都必须有循环体,循环体不能为空 4.下列修饰符中与访问控制无关的是 ( ) A.private C.protected

B.public

D.final

5. void的含义: ( ) A.方法没有返回值 C.没有意义 6. return语句: ( ) A.只能让方法返回数值

B.方法都必须含有 D.不能用来返回对象

B. 方法体为空

D. 定义方法时必须使用

C.方法中可以有多句return

7.关于对象成员占用内存的说法哪个正确? ( ) A.同一个类的对象共用同一段内存

B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间 C.对象的方法不占用内存 D.以上都不对 8.下列说法哪个正确?

A.不需要定义类,就能创建对象 B.对象中必须有属性和方法

C.属性可以是简单变量,也可以是一个对象 D、属性必须是简单变量

9.下列说法哪个正确? ( ) A、一个程序可以包含多个源文件 B、一个源文件中只能有一个类 C、一个源文件中可以有多个公共类 D、一个源文件只能供一个程序使用

10.关于方法main()的说法哪个正确?( ) A.方法main()只能放在公共类中 B main()的头定义可以根据情况任意更改 C.一个类中可以没有main()方法

D.所有对象的创建都必须放在main()方法中 11.构造函数何时被调用? ( ) A、创建对象时 C、使用对象的方法时 12. 抽象方法: ( )

B、类定义时

D、使用对象的属性时

A、可以有方法体 B、可以出现在非抽象类中 C、是没有方法体的方法

D、抽象类中的方法都是抽象方法

13.关于继承的说法正确的是: ( ) A、子类将继承父类所有的属性和方法。 B、子类将继承父类的非私有属性和方法。 C、子类只继承父类public方法和属性 D、子类只继承父类的方法,而不继承属性 14.关于构造函数的说法哪个正确? ( ) A、一个类只能有一个构造函数 B、一个类可以有多个不同名的构造函数 C、构造函数与类同名

D、构造函数必须自己定义,不能使用父类的构造函数 17.覆盖与重载的关系是 ( )

A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名 C.final修饰的方法可以被覆盖,但不能被重载 D.覆盖与重载是同一回事

18.关于接口哪个正确? ( ) A、实现一个接口必须实现接口的所有方法 B.一个类只能实现一个接口 C.接口间不能有继承关系 D.接口和抽象类是同一回事

19.异常包含下列哪些内容? ( ) A.程序执行过程中遇到的事先没有预料到的情况 B.程序中的语法错误 C.程序的编译错误 D.以上都是

20. 对于已经被定义过可能抛出异常的语句,在编程时: ( A、必须使用try/catch语句处理异常,或用throws将其抛出 B.如果程序错误,必须使用 try/catch语句处理异常 C.可以置之不理

) D.只能使用try/catch语句处理

21. 字符流与字节流的区别在于( ) A.前者带有缓冲,后者没有 B.前者是块读写,后者是字节读写 C. 二者没有区别,可以互换使用 D. 每次读写的字节数不同

22.下列流中哪个不属于字节流 ( ) A.FileInputStream B.BufferedInputStream C. FilterInputStream D. InputStreamReader 三、程序填空题 1.public class Sum{

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

static void calculate (int j){ }

输出结果为:

j is : (1) j in calculate() is : (2) At last j is : (3) 答案:(1) 10; (2) 20; (3) 10。 2. 按要求填空

abstract class SuperAbstract{

void a(){…} abstract void b(); }

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

j++; int j=10;

System.out.println(\calculate(j);

System.out.println(\

System.out.println(\

}

abstract int c(int i);

interface AsSuper { }

abstract class SubAbstract extends SuperAbstract implements AsSuper {

public void b(){…} }

public class InheritAbstract extends SubAbstract{ }

在以上这段程序中:

抽象类有:SuperAbstract和 (1) (写出类名) 非抽象类有: (2) (写出类名) 接口有: (3) (写出接口名)

AsSuper中的x()方法是(4)方法,所以在InheritAbstract中必须对它进行(5) 答案:

(1) SuperAbstract;(2) InheritAbstract;(3) AsSuper;(4) 抽象;(5) 覆盖和实现。 3. 按注释完成程序 public class Leaf {

private int i = 0; //此属性值用于检验 public void x(){…} public int c(int i ) {…} public String f(){…}

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

InheritAbstract instance=new InheritAbstract(); instance.x(); instance.a(); instance.b(); instance.c(100);

System.out.println(instance.f()); abstract String f(); void x();

}

Leaf increment(){ //定义方法increment(),返回值是Leaf类的对象 }

void print() { }

public static void main(String args[]){

Leaf x = (2); //创建Leaf类的对象x x.increment().increment().increment().print(); System.out.println(\

i++;

return (1) ;//将当前对象的地址作为返回值返回

}//多次调用方法increment(),返回的都是x的地址,i 值表示调用次数

输出结果为 i = (3) 答案:

(1) this; (2)new Leaf();(3) 3 4. 按注释提示完成文件复制的程序 //FileStream源代码如下: import java.io.*; class FileStream {

public static void main(String args []) {

try {

//指定源文件

File inFile = new File(\

File outFile = new File(\//指定目标文件 FileInputStream fis =(1);

FileOutputStream fos = new FileOutputStream(outFile);

int c;

//逐字节从源文件中输入,再输出到fos流

while ((c = fis.read ())!=-1)

(2);

fis.close();

fos.close(); }

catch (Exception e) {

System.out.println(\

}

} } 答案:

(1) new FileInputStream(inFile); (2) fos.write(c);

5. 阅读程序,给出结果:

// AbstractClassDemo.java源代码如下:

abstract class Shape { //定义抽象类Shape和抽象方法display }

class Circle extends Shape { }

class Rectangle extends Shape {

void display() { //实现抽象类的方法 System.out.println(\

}

class Triangle extends Shape { }

public class AbstractClassDemo{ }

输出结果是 ? (1) Circle; (2) Rectangle; (3) Triangle。

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

(new Circle()).display(); //定义无名对象来调用对应的display方法 (new Rectangle()).display(); (new Triangle()).display(); void display() { //实现抽象类的方法 }

System.out.println(\}

void display() { }

//实现抽象类的方法

abstract void display();

System.out.println(\

《JAVA程序设计》期末考试试题 (七)

一、选择题

1. 请说出下列代码的执行结果 : String s = \ String s1 = new String(s);

if (s = = s1) System.out.println(\ if (s.equals(s1)) System.out.println(\ A. the same equals C. the same

B. equals

D. 什么结果都不输出

2. 下列有关 Java 中接口的说法哪个是正确的? A. 接口中含有具体方法的实现代码

B. 若一个类要实现一个接口,则用到 “implements” 关键字 C. 若一个类要实现一个接口,则用到“ extends ”关键字 D. 接口不允许继承

3. 下列代码的执行结果是什么? String s1 = \ s1.concat(\ System.out.println(s1); A. The string \ B. The string \ C. The string \ D. The string \

4. 如果有一个对象 myListener ( 其中 myListener 对象实现了 ActionListener 接口 ), 下列哪条语句使得 myListener 对象能够接受处理来自于 smallButton 按钮对象的动作事件 ? A. smallButton.add(myListener); B. smallButton.addListener(myListener); C. smallButton.addActionListener(myListener); D. smallButton.addItem(myListener); 二.读程序题

1. 读下列代码,说出这段程序的功能。 import java.io.*; public class Test{

public static void main( String [] argv) {

try {

BufferedReader is =

new BufferedReader( new InputStreamReader(System.in));

String inputLine;

While ((inputLine = is.readLine ())!= null) {

System.out.println(inputLine);

} is.close();

}catch (IOException e) {

System.out.println(\

} } }

答案:读取键盘输入,显示到屏幕上,直到键盘输入为空为止。 2、 读下列程序,写出正确的运行结果。 class test {

public static void main (String [] args ){

int x=9, y; if (x>=0)

if (x>0) y=1; else y=0;

else y=-1;

System.out.println(y);

}

} 答案:1

3、 读程序,写出正确的运行结果。 public class Father{

int a=100; public void miner(){

a--;

}

public static void main(String[] args){

Father x = new Father(); Son y = new Son(); System.out.println(y.a); System.out.println( y.getA()); y.miner();

System.out.println(y.a); System.out.println(y.getA());

}

}

class Son extends Father{

int a = 0; public void plus(){ a++; }

public int getA() { return super.a; } } 答案:

0 100 0 99 三 . 简答题

1. Java语言的特点。 答:

简单性:Java风格类似于C++,但它摒弃了C++中容易引起程序错误的地方 面向对象:Java语言的设计是完全面向对象 分布式: 解释执行:

健壮性:Java提供自动垃圾回收机制,异常处理机制,进行严格的类型检查 平台无关性: 安全性 多线程 动态性

2. 在 Java中,怎样创建一个线程? 答:

1、定义类来实现Runnable接口

class TestThread implements Runnable { public void run() { ?} } 2、继承Thread类来实现

class TestThread extends Thread { TestThread(String name) { super(name); start(); }

public void run() {?} }

3.编写一个程序,使用复数类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 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(\第一个复数:\ g.drawString(\第二个复数:\ g.drawString(\两复数之和:\ } }

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+\ }

本文来源:https://www.bwwdw.com/article/2kb2.html

Top