Java程序设计教程冶金工业出版社复习资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java程序设计教程冶金工业出版社复习资料
第1章
1、 Java运行平台包括三个版本,请选择正确的三项:()
A. J2EE
B. J2ME
C. J2SE
D. J2E
解答:A,B,C
2、 Java JDK中反编译工具是:()
A. javac
B. java
C. jdb
D. javap
解答:D
3、 public static void main方法的参数描述是:()
A. String args[]
B. String[] args
C. Strings args[]
D. String args
解答:A,B
4、在Java中,关于CLASSPATH环境变量的说法不正确的是:()
A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。

B. 编译器用它来搜索各自的类文件。

C. CLASSPATH是一个目录列表。

D. 解释器用它来搜索各自的类文件。

解答:A
5、编译Java Application源文件将产生相应的字节码文件,扩展名为()
A. .java
B. .class
C. .html
D. .exe
解答:B
6、开发与运行Java程序需要经过的三个主要步骤为__编辑_____、____编译____和运行。

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

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

第2章
1、从下面选项中,选择三个有效的标志符:()
A. IDoLikeTheLongNameClass
B. $byte
C. const
D. _ok
E. 3_case
解答:A,B,D
2、下面哪一项在java中是非法的标识符?()
A. $user
B. point
C. You&me
D. _endline
解答:C
3、下列不属于Java保留字的是:()
A. sizeof
B. super
C. abstract
D. break
解答:A
4、下面哪些java语句会导致无限循环?( )
I、 while (true) i = 0;
II、while (false) i = 1;
III、while (!false) i = 0;
A、仅仅III
B、I 和III
C、仅仅I
D、I, II 和III
解答:B
5、下列整型数据类型中,需要内存空间最少的是 ( )。

A. short
B. long
C. int
D. byte
解答:D
6、下面代码执行后,正确的输出结果是:()
public class Example {
public static void main(String args[]) {
int l = 0;
do {
System.out.println("Doing it for l is:" + l);
} while (--l > 0);
System.out.println("Finish");
}
}
A. Doing it for l is 3
B. Doing it for l is 1
C. Doing it for l is 2
D. Doing it for l is 0
E. Doing it for l is ?C1
F. Finish
解答:D,F
7、若有定义 int a=1,b=2; 那么表达式(a++)+(++b) 的值是:()
A. 3
B. 4
C. 5
D. 6
解答:B
8、若有定义 int a=9,b=6; 那么a>b的值是:()
A. 0
B. 1
C. false
D. true
解答:D
9、假定有变量定义: int k=7,x=12; 那么能使值为3的表达式是:()
A. x%=(k%=5)
B. x%=(k-k%5)
C. x%=k-k%5
D. (x%=k)-(k%=5)
解答:D
10、执行完以下代码int[ ] x = new int[25];后,以下说明正确的是:()
A. x[24]为0
B. x[24]未定义
C. x[25]为0
D. x[0]为空
解答:A
11、Java应用程序的main方法中有以下语句,则输出的结果是()。

int[] x={2,3,-8,7,9};
int max=x[0];
for(int i=1;i<x.length;i++){
if(x[i]>max)
max=x[i];
}
System.out.println(max);
A. 2
B. -8
C. 7
D. 9
解答:D
12、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是()
A. 3
B. 3.5
C. 4
D. 5
解答:A
13、有整型数组:int[] x={2,33,88,5,10};,则调用方法 Arrays.sort(x) 后,数组x中的元素值依次是?()
A. 88 33 10 5 2
B. 2 5 10 33 88
C. 88 10 2 33 5
D. 5 33 2 10 88
解答:B
14、下列语句有错误的是:()
A. int []a;
B. int []b=new int[10];
C. int c[]=new int[];
D. int d[]=null;
解答:C
15、下列语句有错误的是:()
A. int a[][]=new int[5][5];
B. int [][]b=new int[5][5];
C. int []c[]=new int[5][5];
D. int [][]d=new int[5,5];
解答:D
16、关于下面的程序,正确的结论是______。

public class ex4_7{
public static void main(String args[]){
int a[]=new int[5];
boolean b[]=new boolean[5];
System.out.print(a[1]);
System.out.println(b[2]);
}
}
A. 运行结果为0false
B. 运行结果为1true
C. 程序无法通过编译
D. 可以通过编译但结果不确定
解答:A
17、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用__2__字节内存空间,这样,无论是中文字符还是英文字符,都是占用_2__字节内存空间。

18、设 x = 2 ,则表达式 ( x + + )/3 的值是__0____。

19、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为___true_和_false_。

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

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);
21、数组对象的长度在数组对象创建之后,就不能改变。

数组元素的下标总是从_0___开始。

22、对于数组int[][]t={{1,2,3},{4,5,6}}来说,t.length等于__2____,t[0].length等于__3____。

23、已知数组a的定义为“int a[]={1,2,3,4,5};”,则a[2]=__3____,数组b的定义为“int b[]=new int[5];”,则b[2]=__0____,数组c的定义为“Object []c=new Object[5];”,则c[2]=__null____。

24、调用数组元素时,用数组名和下标来唯一确定数组中的元素。

类和对象:
1、下列关于变量的叙述哪个是错的?()
A. 实例变量是类的成员变量。

B. 在方法中定义的局部变量在该方法被执行时创建。

C. 实例变量用关键字static声明。

D. 局部变量在使用前必须被初始化。

解答:C
2、在Java语言中,下列哪个包是编译器自动导入的?()
A. java.applet
B. ng
C. java.io
D. java.awt
解答:B
3、当类的成员未用访问权限修饰符时,Java认为此成员的访问权限为()。

A. private
B. protected
C.friendly
D.public
解答:C
4、下面哪个关键字不是用来控制对类成员的访问的?()
A. public B. protected
C. default
D. private
解答:C
5、下面哪一个特性不是面向对象编程主要体现的()。

A. 封装性
B. 继承
C. 多态
D. 类
解答:C
6、不允许作为类及类成员的访问控制符的是()。

A. public
B. private
C. static
D. protected
解答:C
7、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。

A、 static void method( )
B、 public void method( )
C、 final void method( )
D、 abstract void method( )
解答:A
8、可以在下面代码段point x处写入的是?()
//point x
public class Interesting{
//do something
}
A. String str;
B. static int PI=3.14;
C. public class MyClass{//do other thing…}
D. import java.awt.*;
解答:D
9、下列关于变量的叙述哪个是错的?()
A、实例变量是类的成员变量。

B、在方法中定义的局部变量在该方法被执行时创建。

C、实例变量用关键字static声明。

D、局部变量在使用前必须被初始化。

解答:C
10、下列哪个类声明是正确的?()
A、abstract final class HI{}
B、abstract private move(){}
C、protected private number;
D、public abstract class Car{}
解答:D
11、已知A类被打包在packageA , B类被打包在packageB ,且B类被声明为public ,且有一个成员变量x被声明为protected控制方式。

C类也位于packageA包,且继承了B类。

则以下说法正确的是:()
A、A类的实例不能访问到B类的实例
B、A类的实例能够访问到B类一个实例的x成员
C、C类的实例可以访问到B类一个实例的x成员
D、C类的实例不能访问到B类的实例
解答:C
12、下列命题为真的是:()
A、所有类都必须定义一个构造函数。

B、构造函数必须有返回值。

C、构造函数可以访问类的非静态成员。

D、构造函数必须初始化类的所有数据成员。

解答:C
13、在Java中,关于final关键字的说法正确的是()
A、如果修饰变量,则一旦赋了值,就等同一个常量。

B、如果修饰类,则该类只能被一个子类继承。

C、如果修饰方法,则该方法不能在子类中被覆盖。

D、如果修饰方法,则该方法所在的类不能被继承。

解答:A,C
14、在Java中,下面关于包的陈述中正确的是()
A、包的声明必须是源文件的第一句代码。

B、包的声明必须紧跟在import语句的后面。

C、只有公共类才能放在包中。

D、可以将多个源文件中的类放在同一个包中。

解答:A,D
15、_abstract_方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。

_final_方法是不能被当前类的子类重新定义的方法。

继承、接口和内部类:
1、 Java中用于定义接口的关键字是()
A、import
B、package
C、class
D、interface
解答:D
2、以下关于abstract的说法,正确的是( )
A、abstract只能修饰类
B、abstract只能修饰方法
C、abstract类中必须有abstract方法
D、abstarct方法所在的类必须用abstract修饰
解答:D
3、下列哪种说法是正确的()
A、私有方法不能被子类覆盖。

B、子类可以覆盖超类中的任何方法。

C、覆盖方法可以声明自己抛出的异常多于那个被覆盖的方法。

D、覆盖方法中的参数清单必须是被覆盖方法参数清单的子集。

解答:A
4、关于类继承的说法,正确的是()
A、Java 类允许多重继承
B、Java接口允许多继承
C、接口和类都允许多继承
D、接口和类都不允许多继承
解答:B
5、关于抽象类,正确的是______。

A. 抽象类中不可以有非抽象方法
B. 某个非抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法
C. 不能用抽象类去创建对象
D. 接口和抽象类是同一个概念
解答:B
6、下列哪个类是由编译器自动生成对象的特殊类,是用于类操作?()
A、Class类
B、Thread类
C、System类
D、Object类
解答:A
7、下面关于继承的哪些叙述是正确的。

( )
A、在java中只允许单一继承。

B、在java中一个类只能实现一个接口。

C、在java中一个类不能同时继承一个类和实现一个接口。

D、java的单一继承使代码更可靠。

解答:A,D
8、抽象类A和抽象类B的定义如下:
abstract class ex4_5_10_A {
abstract int getinfo();
}
public class ex4_5_10 extends ex4_5_10_A {
private int a = 0;
public int getinfo() {
return a;
}
public static void main(String args[]) {
ex4_5_10 b = new ex4_5_10();
System.out.println(b.getinfo());
}
}
关于上述代码说明正确的是()。

A. 输出结果为0
B.通过编译但没有输出任何结果
C. 第5行不能通过编译
D. 程序第2行不能通过编译
解答:A
9、下面程序的运行结果是______
class ex4_5_11_A {
protected static int count = 0;
public ex4_5_11_A() {
count++;
}
}
class ex4_5_11_B extends ex4_5_11_A {
public ex4_5_11_B() {
count++;
}
}
class ex4_5_11 {
public static void main(String args[]) {
ex4_5_11_B x = new ex4_5_11_B();
System.out.println("count=" + x.count);
}
}
A. count=1
B. count=2
C. count=3
D. count=4
解答:B
9、设有下面两个类的定义:
class Person
{ long id; // 身份证号
String name; // 姓名
}
class Student extends Person
{ int score; // 入学总分
int getScore(){
return score;
}
}
问:类Person和类Student的关系是()
A、包含关系
B、继承关系
C、关联关系
D、无关系,上述类定义有语法错误解答:B
10、对于接口的实现,不可以构造一个接口对象,但可以声明一个接口继承类对象。

11、在Java语言中所有的类都是直接或间接地继承_object_类而得到的。

12、在Java中一个父类可以有__多__个子类,一个类只能有__1__个直接父类。

Java API:
1、阅读下列代码后,正确的说法是()
public class Person {
static int arr[] = new int[10];
public static void main(String args[]) {
System.out.println(arr[1]);
}
}
A、编译时将产生错误
B、编译时正确,运行时将产生错误
C、输出零
D、输出空
解答:C
2、仔细分析下面程序,正确的输出结果是()
public class Test1 {
public static void changeStr(String str) {
str = "welcome";
}
public static void main(String[] args) {
String str = "1234";
changeStr(str);
System.out.println(str);
}
}
A、welcome
B、welcome1234
C、1234
D、1234welcome
解答:C
3、 Java语言中的一些常用的实用工具,如处理时间的Date类,处理变长数组的Vector类等,所在的包是()。

A、ng包
B、java.io包
C、java.awt包
D、java.util包
解答:D
4、下面代码执行后,正确的输出结果是:()
String s1="You are hired!";
System.out.println(s1.replace('h','f'));
System.out.println(s1);
A. You are fired!
B. You are fired!
You are hired! You are fired!
C. You are hired!
D. You are hired!
You are hired! You are fired!
解答:A
5、下面的程序段执行后输出的结果是()
StringBuffer buf=new StringBuffer("China2008");
buf.insert(5,"@");
System.out.println(buf.toString());
A、China2008@
B、@China2008
C、China@2008
D、China#2008
解答:C
6、在Java中,所有类的根类是()。

A、ng.Object
B、ng.Class
C、java.applet.Applet
D、java.awt.Frame
解答:A
GUI:
1、下列哪个布局管理器中的按钮位置会根据Frame的大小改变而改变?()
A. BorderLayout
B. CardLayout
C. GridLayout
D. FlowLayout
解答:D
2、下面的组件都属于容器,父类属于java.awt.Window的容器是()
A、Frame
B、Panel
C、Container
D、Applet
解答:A
3、关于以下的组件的接口,正确的是()
A、TextArea组件可实现的接口是ActionListener
B、List组件可实现的接口,除了ItemListener,还可以是ActionListener
C、Choice组件可实现的接口是ActionListener
D、以上都不对
解答:B
4、下列哪一项是一个用于在GridLayout中的特定区域中放置多个组件的容器?
A、Applet
B、Panel
C、Button
D、Rectangle
解答:B
5、关于对话框(Dialog)说法错误的是?()
A、对话框是Window类的子类。

B、对话框和一般窗口的区别在于它依赖于其他窗口。

C、对话框分为模式和非模式两种。

D、文件对话框的构造方法:Filedialog fdlg=new FileDialog("filedialog"); 解答:D
6、下列容器中哪一个是从java.awt.Window继承的?()
A、Frame
B、Panel
C、Container
D、Applet
解答:A
7、在Java中,对组件可实现不同的布局,下列哪个不对()
A、顺序布局(FlowLayout)
B、边界布局(BorderLayout)
C、网络布局(GridLayout)
D、中央布局(CenterLayout)
解答:D
8、下面关于事件监听的说明,哪一个语句是正确的。

()
A. 所有组件,都不允许附加多个监听器
B. 如果多个监听器加在一个组件上,那么事件只会触发一个监听器
C. 组件不允许附加多个监听器
D. 监听器机制允许按照我们的需要,任意调用addXxxxListener 方法多次,而且没有次序区别
解答:D
9、下面哪个事件监听器可以处理在文本框中输入回车键的事件______。

A. ItemListener
B. ActionListener
C. KeyListener
D. MouseListener
解答:B
10、Frame类对象的默认布局是什么布局?()。

A、FlowLayout布局
B、BorderLayout布局
C、CardLayout布局
D、GridLayout布局
解答:B
11、不能添加到Container中的是?()
A、an Applet
B、a Component
C、a Container
D、a MenuComponent
解答:A
12、Panel类对象的默认布局是什么布局?()。

A、FlowLayout布局
B、BorderLayout布局
C、CardLayout布局
D、GridLayout布局
解答:A
13、Java中GUI工具包有__awt____和__swing__。

14、通过调用方法__setLayout_可以改变当前容器的布局方式。

15、通过__add_方法向容器中添加组件。

16、AWT布局管理器有_FlowLayout_____、_BorderLayout_、_GridLayout_、_CardLayout_和_GridBagLayout_。

多线程:
1、 Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?()
A、安全性
B、多线性
C、跨平台
D、可移植
解答:B
2、 Runnable接口中的抽象方法是()。

A、start
B、stop
C、yield
D、run
解答:D
3、有以下程序段
class MyThread extends Thread {
public static void main(String args[]) {
MyThread t = new MyThread();
MyThread s = new MyThread();
t.start();
System.out.print("one.");
s.start();
System.out.print("two.");
}
public void run() {
System.out.print("Thread");
}
}
则下面正确的选项是()
A、编译失败
B、程序运行结果为:one.Threadtwo.Thread
C、程序运行结果是:one.two.ThreaThread
D、程序运行结果不确定
解答:D
4、下列方法中可以用来创建一个新线程的是()
A、实现ng.Runnable接口并重写start()方法。

B、实现ng.Runnable接口并实现run()方法。

C、继承ng.Thread类并重写run()方法。

D、实现ng.Thread类并实现start()方法。

解答:BC
5、作为类中新线程的开始点,线程的执行是从下面哪个方法开始的。

()
A、public void start()
B、public void run()
C、public void int()
D、public static void main(String args[])
解答:A
6、创建一个新线程的方法,可以使用下面哪2种 ( )
A、继承ng.Thread类,并且重载run方法。

B、继承ng.Runnable类,并且重载start方法。

C、实现ng.thread类,实现run方法。

D、实现ng.Runnable接口,实现run方法。

E、实现ng.Thread类,实现start方法。

解答:A,D
流:
1、创建一个向文件“file.txt”追加内容的输出流对象的语句是()。

A. OutputStream out=new FileOutputStr eam(“file.txt”);
B. OutputStream out=new FileOutputStream(“file.txt”, “append”);
C. FileOutputStream out=new FileOutputStream(“file.txt”, true);
D. FileOutputStream out=new FileOutputStream(new file(“file.txt”));
E. OutputStream out=new FileOutputStrea m(new File(“file.txt”),true);
解答:C,E
2、下面类中,属于过滤流FilterInputStream的子类的是()。

A、DataInputStream
B、DataOutputStream
C、PrintStream
D、BufferedOutputStream
解答:A
3、请编写一个程序,开启一个文本文件,一次读取其内的一行文本,令每行形成一个String,并将读出
的String对象置于LinkedList中,以反相次序显示出LinkedList内的所有内容。

import java.io.*;
import java.util.*;
class exA4_2{
public static void main(String args[]) throws Exception{
LinkedList lines=new LinkedList();
BufferedReader in=
new BufferedReader(new FileReader("exA4_2.java"));
String s;
while((s=in.readLine())!=null)
lines.add(s);
in.close();
ListIterator it=lines.listIterator(lines.size());
while(it.hasPrevious())
System.out.println(it.previous());
}
}
异常:
1、为了捕获一个异常,代码必须放在下面()语句块中。

A、try块
B、catch块
C、throws块
D、finally块
解答:A
2、下列常见的系统定义的异常中,有可能是网络原因导致的异常是()。

A、ClassNotFoundException
B、IOException
C、FileNotFoundException
D、UnknownHostException
解答:D
3、下列常见的系统定义的异常中,哪个是输入、输出异常?()
A、ClassNotFoundException
B、IOException
C、FileNotFoundException
D、UnknownHostException
解答:B
4、在代码中,使用catch(Exception e)的好处是 ( )
A、只会捕获个别类型的异常
B、捕获try块中产生的所有类型的异常
C、忽略一些异常
D、执行一些程序
解答:B
6、异常包含下列那一个内容?()
A、程序中的语法错误
B、程序的编译错误
C、程序执行过程中遇到的事先没有预料到的情况
D、程序事先定义好的可能出现的意外情况
解答:C
网络编程:
1、在JAVA语言网络编程中,URL类是在包中,该类中提供了许多方法用来访问URL对象的各
种资源,下列哪个用来获取URL中的端口号()。

A、getFile()
B、getProtocol()
C、getHost()
D、getPort()
解答:D
Applet基础:
1、关于Applet类,正确的说法是()
A、Applet类是java.awt中的类
B、Applet类是Container的间接子类
C、Applet类不是容器类
D、以上都不对
解答:B
2、浏览器禁止Applet执行下列哪些操作?()
A、在运行时调用其它程序。

B、文件读写操作。

C、装载动态连接库和调用任何本地方法。

D、试图打开一个socket进行通信,但所连接的主机并不是提供Applet的主机。

解答:A,B,C,D
3、下面说法正确的是()
A. java Applet 程序必须在浏览器中执行
B. java 应用程序必须在浏览器里执行
C. java Applet 程序不一定在浏览器中执行
D. java 应用程序可以在浏览器中执行
解答:C
4、每当浏览器的用户离开applet所在的HTML页时都调用方法()
A、stop()
B、init ()
C、paint()
D、repaint()
解答:A
5、任何一个Applet开始执行时必然会被自动调用三个方法,被调用的顺序是()
A、init paint start
B、start paint init
C、paint start init
D、init start paint
解答:D
6、在Applet的关键方法中,哪个方法是关闭浏览器以释放Applet占用的所有资源?()
A、init()
B、start()
C、paint()
D、destroy()
解答:D
7、下面哪个操作Applet可以完成______。

A、读取客户端文件
B、在客户端创建新文件
C、读取Applet所在服务器的文件
D、在客户端调用其他程序
解答:C
8、分析下面的HTML部分代码:
<APPLET code = file_name
width = 60
height = 60>
</APPLET>
下列哪一项可以替代文件名以正确装载运行Hello 类的小程序? ()
A 、"Hello.bytecode"
B 、"Hello.class"
C 、"Hello.applet"
D 、"Hello.java"
解答:B
9、下面不是Applet基本方法的是()
A. start()
B. stop()
C. init()
D.kill()
解答:D
10、关于Applet的生命周期正确的说法是()
A. stop方法在start方法之前执行
B. init方法在start方法之后执行
C. stop方法在Applet退出时被调用,只能被调用1次
D. stop方法在Applet不可见时会被调用,可以被调用多次
解答:D
11、下面程序代码正确的排列顺序是______。

(1)import java.applet.*;
(2)ex12_9_a()
(3)package myclasses;
(4)public class ex12_9 extends java.applet.Applet{}
A. 1、2、3、4
B. 1、3、2、4
C. 3、1、4、2
D. 1、3、4、2
解答:C
12、简述Java Applet的开发和运行步骤。

13、小应用程序界面的宽度和高度一般在_html_____文件中指定,其中用来指定宽度和高度的关键字分别是___height___和__width____。

14、如果一个Java程序既是应用程序又是小应用程序,那么它必定含有_Applet_____类的子类,同时含有成员方法_paint_____。

15、JDK中提供的一个专为查看Applet的工具是_appletviewer_____。

16、在Applet坐标系中,(0,0)代表输出窗口左上角的像素点。

图形:
1、paint( )方法使用哪种类型的参数? ()
A、 Graphics
B、 Graphics2D
C、 String
D、 Color
解答:A
程序填空:
1.public class Sum{
public static void main(String [] args){
int j=10;
System.out.println("j is : "+j);
calculate(j);
System.out.println("At last, j is : "+j);
}
static void calculate (int j){
for (int i = 0;i<10;i++)
j++;
System.out.println("j in calculate() is: "+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();
abstract int c(int i);
}
interface AsSuper
{
void x();
}
abstract class SubAbstract extends SuperAbstract implements AsSuper {
public void b(){…}
abstract String f();
}
public class InheritAbstract extends SubAbstract{
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());
}
}
在以上这段程序中:
抽象类有: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; //此属性值用于检验
Leaf increment(){ //定义方法increment(),返回值是Leaf类的对象
i++;
return (1) ;//将当前对象的地址作为返回值返回
}
void print() {
System.out.println(" i = " + i);
}
public static void main(String args[]){
Leaf x = (2); //创建Leaf类的对象x
x.increment().increment().increment().print();
}//多次调用方法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("file1.txt"); //指定源文件
File outFile = new File("file2.txt"); //指定目标文件
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("FileStreamsTest: "+e);
}
}
}
答案:
(1) new FileInputStream(inFile);
(2) fos.write(c);
5. 阅读程序,给出结果:
// AbstractClassDemo.java源代码如下:
abstract class Shape { //定义抽象类Shape和抽象方法display abstract void display();
}
class Circle extends Shape {
void display() { //实现抽象类的方法
System.out.println("Circle");
}
}
class Rectangle extends Shape {
void display() { //实现抽象类的方法
System.out.println("Rectangle");
}
}
class Triangle extends Shape {
void display() { //实现抽象类的方法
System.out.println("Triangle");
}
}
public class AbstractClassDemo{
public static void main(String args[]){
(new Circle()).display(); //定义无名对象来调用对应的display方法
(new Rectangle()).display();
(new Triangle()).display();
}
}
输出结果是 ?
答案:(1) Circle; (2) Rectangle; (3) Triangle。

6.下面是一个类的定义:
public class ____Myclass________{
int x, y;
Myclass ( int i, _int j__) {// 构造函数
x=i;
y=j;
}
}
7.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。

public void paint(Graphics __g__ ){
int i=689;
g.drawString (“i=” +___String.ValueOf(i)___ ,20,60);
}
8.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。

import java.io.*;
public class MyClass{
public static void main(String args[ ]){
if( args.length !=__0_)
for(int i=0; i < args.length; i++)
System.out.println(__args[i]____);
else System.out.println("没有命令行参数");
}
}
9.下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已定义的另两个类的类名:
import java awt.*;
import java applet.*;
public class myprogram extends Applet{//定义小程序的主类
A a;
B b;
public __void_ init( ){
a=new A( ); b=__new___ B( ); }
}
10.下面程序的功能是输出数组各元素的和。

import java.awt.Graphics;
import java.applet.Applet;
public class SumArray extends Applet{
float[] a;
a= new ___ float [6];
float sum=0.0f;
public void init( ){
for ( int j = 0; j < a.length; j++ )
a[j] = j+1;
for ( int i = 0 ; i < a.length; i++ )
sum+= a[i];
}
public void paint( Graphics g ){
g.drawString( "Total of array elements: " + __String.ValueOf(sum)______ , 25, 25 );
}
}
1、阅读下面的程序代码,并回答问题。

String s1 = new String("abcde");
String s2 = new String("abcde");
boolean b1= s1.equals(s2);
boolean b2 = s1== s2;
System.out.print(b1+" "+b2);
程序段执行后,在命令行的输出结果如何?
解释输出(1)的结果的原因?
答案:
true false
equals方法比较两个字符串的内容是否相等;运算符“==”判断两个对象是否指向同一个引用,即是否为同一个对象。

2、阅读下面的程序,并回答问题。

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("quit"))
break;
int x=Integer.parseInt(str);
System.out.println(x*x);
}
}
}
编译运行上面的程序:
从键盘输入10,回车后输出的结果如何?
从键盘输入exit,回车后程序能正确执行吗?为什么?
答案:
100
不能;因为方法Integer.parseInt(str)不能将字符串“exit”转化为整数,抛出异常。

3、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("quit"))
break;
int x=Integer.parseInt(str);
System.out.println(x*x*x);
}
}
编译运行上面的程序:
从键盘输入5,回车后输出的结果如何?
从键盘输入quit,回车后程序执行情况如何?
答案:
125
终止应用程序的运行。

4、阅读以下程序:
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{
s1=s1+Character.toLowerCase(c); }
}
System.out.println(s1);
}
}
若在dos命令行输入:java Exp1 cHINA,则输出为:China
5、阅读以下程序:
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);
}
}
运行以上程序,若从键盘输入: javaworld<回车>
则输出结果为: javaworld
6、以下程序段的输出结果为:
public class C{
public static void main(String args[ ]){
int i , j ;
int a[ ] = { 5,1,3,9,7};
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( );
}
}
输出结果为: 1 3 5 7 9
7、阅读以下程序,写出输出结果。

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
8、阅读以下程序,输出结果为:
import java.io.*;
public class ATest{
public static void main(String args[]) { SubClass sb = new SubClass( );
System.out.println(sb.funOfMod( )); }
}
class SuperClass{
int a = 10 , b = 3 ;
}
class SubClass extends SuperClass{
int funOfMod( ) { return a%b; }
}
输出结果为:1
9、以下程序段的输出结果为:
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);
}
}
输出结果为:int,int
10、阅读以下程序,输出结果为:
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( )
{ return s1+s2;}
}
输出结果为:cooljava
11、写出以下程序的运行结果。

class StringTest1
{
public static void main(String[] args) {
String s1="hello";
String s2=new String("hello");
if(s1==s2){
System.out.println("s1==s2");
}else{
System.out.println("s1!=s2");} }
}
输出结果为: s1!=s2
12、写出以下程序的运行结果。

class Bird {
protected static int referenceCount=0;
public Bird(){referenceCount++;}
protected void fly(){ }
static int getReCount(){return referenceCount;}
}
class Nightingale extends Bird {
Nightingale() { referenceCount++;}
public static void main( String args[ ]){
System.out.print("Before:"+referenceCount);
Nightingale florence=new Nightingale( );
System.out.println(" After:"+referenceCount);
florence.fly( );
}
}
输出结果为:Before:0 After:2
13、以下程序的输出结果为_ Peter is 17 years old!___。

public class Person {
String name;
int age;
public Person(String name, int age) {
= name;
this.age = age;
}
public static void main(String[] args) {
Person c = new Person("Peter", 17);
System.out.println( + " is " + c.age + " years old!");
}
}
14、以下程序的输出结果为课程号:101 课程名:JSP 学分:3。

public class Course {
private String cNumber;
private String cName;
private int cUnit;
public Course(String number, String name, int unit) {
cNumber = number;
cName = name;
cUnit = unit;
}
public void printCourseInfo() {
System.out.println("课程号:" + cNumber + " 课程名:" + cName + " 学分:" + cUnit);
}
}
class CourseTest {
public static void main(String[] args) {
Course c;
c = new Course("101", "JSP", 3);
c.printCourseInfo();
}
}
15、以下程序的输出结果为汤姆猫体重:20.0斤。

public class Tom {
private float weight;
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 cat = new Tom();
cat.setWeight(20);
cat.out();
}
}
16、以下程序的输出结果_姓名:Tom 年龄:15 家庭住址:金水区电话:66123456 学校:九中_。

public class Father {
int age;
public Father(String name, int age) {
= name;
this.age = age;
}
void out() {
System.out.print("姓名:" + name);
System.out.print(" 年龄:" + age);
}
void outOther() {
System.out.print(" 家庭住址:" + address);
}
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("Tom", 15);
son.address = "金水区";
son.school = "九中";
son.out();
}
}
17、下列程序的运行结果是__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() {
System.out.println("鱼儿在游...");
}
}
public class TestAnimal {
public static void main(String[] args) {
Bird bird = new Bird();。

相关文档
最新文档