《JAVA面向对象程序设计》练习题 - 参考答案

更新时间:2024-05-02 11:18: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 。

1

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

2

{

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

3

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

4

《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.

5

}

}

this.age = age;

public static void main(String[] args) { Person c = new Person(\, 17); System.out.println(c.name + \ + c.age + \); }

2、以下程序的输出结果为__课程号:101 课程名:ASP 学分: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(\, \, 3); c.printCourseInfo(); } }

3、以下程序的输出结果为__汤姆猫体重:20.0斤___。 public class Tom { private float weight; private static String name; public void setWeight(float weight) { this.weight = weight; }

11

}

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

12

}

}

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、简述Java中异常处理的机制?

答:首先Java的异常是面向对象的。一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。

Java的异常处理是通过5个关键词来实现的:try,catch,throw,throws和finally。 (1)异常处理:在Java语言的错误处理结构由try,catch,finally三个块组成。其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在try块后面,用来激发被捕获的异常;finally块包含清除程序没有释放的资源,句柄等。不管try块中的代码如何退出,都将执行 finally块。

(2)抛出异常:Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者。Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。

13

2、什么是继承?

答:通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。 3、请简述重载和重写的区别?

答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 五、程序设计题

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、按以下要求编写程序

14

(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(); bird.run(); Fish fish = new Fish(); fish.run(); } }

3、编写一个Frame框架应用程序,要求如下:

(1) 在窗口设置两个菜单“文件”、“编辑”

(2) 在“文件”菜单里添加三个菜单项“打开”、“保存”、“关闭” (3) 在“编辑”菜单里添加两个菜单项“复制”、“粘贴” (4) 点击关闭菜单项时,使程序关闭。 解答:

import java.awt.Color; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem;

15

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /*

* 主窗体 */

public class MyFrame extends Frame { private static final long serialVersionUID = 6895463895656626294L; private Frame frmMain; // 窗体 MenuBar mb; // 菜单栏 Menu mnuFile; // \文件\菜单 Menu mnuEdit; // \编辑\菜单 MenuItem miOpen; // \打开\菜单项 MenuItem miSave; // \保存\菜单项 MenuItem miClose; // \关闭\菜单项 MenuItem miCopy; // \复制\菜单项 MenuItem miPaste; // \粘贴\菜单项 public MyFrame() { frmMain = new Frame(\主窗体\); // 创建菜单栏 mb = new MenuBar(); // 创建菜单 mnuFile = new Menu(\文件\); mnuEdit = new Menu(\编辑\); // 创建菜单项 miOpen = new MenuItem(\打开\); miSave = new MenuItem(\保存\); miClose = new MenuItem(\关闭\); miCopy = new MenuItem(\复制\); miPaste = new MenuItem(\粘贴\); } public void showFrame() { frmMain.setSize(800, 600); frmMain.setLocation(100, 100); frmMain.setBackground(Color.white); frmMain.setVisible(true); frmMain.setLayout(null);

16

frmMain.addWindowListener(new WindowHandler()); // 注册窗口监听器 // 将菜单栏放入窗体中 frmMain.setMenuBar(mb); // 将菜单放入菜单栏中 mb.add(mnuFile); mb.add(mnuEdit); // 将菜单项放入菜单中 mnuFile.add(miOpen); mnuFile.add(miSave); mnuFile.add(miClose); mnuEdit.add(miCopy); mnuEdit.add(miPaste); // 注册动作事件监听器 miClose.setActionCommand(\); miClose.addActionListener(new MenuHandler()); } // 定义一个内部类,在这个类中编写窗口关闭事件处理程序。 private class WindowHandler extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); // 退出应用程序,状态码 0 表示正常终止,非 0 表示异常终止。 } } // 定义一个内部类,在这个类中编写动作事件处理程序。 private class MenuHandler implements ActionListener { public void actionPerformed(ActionEvent e) { if (e.getActionCommand() == \) { System.exit(0); // 退出应用程序 } } } }

public class TestMyFrame { public static void main(String[] args) { // 启动主窗体 MyFrame guiWindow = new MyFrame();

17

}

}

guiWindow.showFrame();

18

《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(\

19

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

20

)。

本文来源:https://www.bwwdw.com/article/5c1g.html

Top