Java面向对象程序设计复习题附答案
更新时间:2024-01-17 00:02:01 阅读量: 教育文库 文档下载
Java面向对象程序设计复习题
一、选择题
1、下列哪个是Java中的关键字( C )。
A、run B、Integer C、default D、implement 2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对( B )。 A、Applet是Container的一种 B、Applet是Window的一种 C、Applet是Component的一种 D、Applet是Panel的一种 3、下列类 DataOutputStream的构造方法正确的是( A )。
A、new dataOutputStream(new FileOutputStream(“out.txt”)); B、new dataOutputStream(“out.txt”);
C、new dataOutputStream(new writer(“out.txt”)); D、new dataOutputStream(new FileWriter(“out.txt”)); 4、在switch(表达式)语句中,表达式的类型不能为( C )。 A、byte B、char C、long D、int 5、在接口MouseMotionListener中方法正确的是( A )。 A、Public void mouseDragged(MouseEvent) B、Public boolean mouseDragged(MouseEvent) C、Public void mouseDragged(MouseMotionEvent) D、Public boolean MouseDragged(MouseMotionEvent) 6、下面是一些异常类的层次关系 Java.lang.Exception
Java.lang.RuntimeException
Java.lang.IndexOutOfBoundsException
Java.lang.ArrayIndexOutOfBoundsException Java.lang.StringIndexOutOfBoundsException
假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。( B )
A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds Exception。
B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds Exception和StringIndexOutOfBoundsException都可以被捕获。 C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch语句
捕获。
D、方法X不能声明抛弃异常。
7、现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。 A、aa=0 B、aa=True C、aa=\ D、aa=false
8、某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为( A )。
A、cat B、Java C、example D、null
9、String s1=new String(“Java”);String s2=new String(s1)则下列哪个说法是正确的( C )。 A、表达式s1==s2为真
B、s1和s2是同一个对象
C、表达式s1.equals(s2)为真 D、以上均不对 10、类定义如下 class Foo{
public static void main(String args[]){ String s;
System.out.println(\ } }
则下列结论正确的是( C )。
A、有输出结果,且为空 B、没有输出结果
C、编译错误 D、有输出结果,且不为空
11、下列哪个不是Java的保留字( D )。
A、float B、class C、extends D、virtual 12、下列符号中不能作为Java标识符的是( D )。
A、abc B、$str1 C、_pore D、45six 13、方法methodA定义如下:
returnType methodA(byte x,double y){ return (short)x/y*2; }
则返回值returnType为( C )。
A、byte B、double C、short D、int 14、如果float f=4.2F;Float g=new Float(4.2F); Double d=new Double(4.2);则下列选项正确的是( B )。
A、f==g B、f==g.floatValue() C、d==f D、d.equals(f) 15、下列二维数组定义中错误的是( A )。 A、int a[][]=new int[][]; B、int []a[]=new int[10][10]; C、int a[][]=new int[10][10]; D、int [][]a=new int[10][10];
16、关于下列语句哪个答案是正确的( D )。 System.out.println(4|7);
A、4 B、5 C、6 D、7
17、下面哪一个AWT组件可以有菜单栏MenuBar( A )。 A、Java.awt.Frame B、Java.awt.Window C、Java.awt.Applet D、Java.awt.Panel
18、下列哪个方法用于创建并开始一个新的线程( B )。 A、run(); B、start();
C、execute(); D、run(Runnable r);
19、如果有Boolean a=new Boolean(“yes”),则a.booleanValue()值为( D )。 A、yes B、“yes” C、true D、false 20、以下类 DataOutputStream的构造方法正确的是( C )。 A、new dataInputStream(“in.txt”);
B、new dataInputStream(new file(“in.txt”));
C、new dataInputStream(new FileInputStream(“in.txt”));
D、new dataInputStream(new FileWriter(“in.txt”));
21、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A、.Java B、.class C、.html D、.exe
22、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。 A、3 B、3.5 C、4 D、5
23、在Applet表面输出文字时,可以选择不同的颜色,但是忘记了设置颜色的方法,应该首先在哪个类里面寻找( D )。 A、Java .awt.Applet B、Java.awt.Panel C、Java.applet.Applet D、Java.awt.Component 24、类Cycle的main()方法为:
public static void main(String args[]){ System.out.println(args[0]); }
则运行时如果命令行语句为Java Cycle one two three,则输出结果为( B )。 A、Cycle B、one C、two D、three 25、下面哪一个是Thread类中的静态方法( D )。
A、start() B、stop() C、run() D、sleep(long m) 26、关于下列语句哪个答案是正确的( A )。 if(5&7&&5|2)System.out.println(“true”);
A、不能编译成功 B、可以编译成功,输出true C、可以编译成功,但无输出 D、以上均不对 27、声明公用的abstract方法的正确格式是( C )。 A、public abstract void add() {} B、public abstract add();
C、public abstract void add(); D、public virtual add();
28、下列程序结果正确的是( B )。 public class Test {
public static void main (String args []) { Ad a1=new Ad();
System.out.println(a1.add(1)); Ad a2=new Ad();
System.out.println(a2.add(2)); } }
class Ad{
static int total = 10; public int add(int i){ total=total+i; return total; } }
A、11,12 B、11,13 C、11,11 D、12,12
29、基于Java.awt.Frame的一个程序中包含一个Panel,Panel其中包含一个Label,在Frame和Panel中分别有下面的一些语句, //Frame里面的语句
setFont( new Font(\ setBackground( Color. cyan ); //Panel中的语句
setBackground( Color. white ); setForeground( Color. magenta );
请问Label用什么颜色和字体显示( A )。
A、Background=white;foreground=magenta;font=Serif Italic style,18 point B、Background=cyan;foreground=black;font=Serif Italic style,18 point C、Background=cyan;foreground=black;font=system default style for labels D、Background=white;foreground=magenta;font=system default style for labels 30、语句for(int x=0,y=0;(y!=0)&&(x<4);x++)的执行次数是( B )。
A、无限次 B、一次也不执行 C、执行4次 D、执行3次
二、判断题
1、abstract是抽象修饰符,可以用来修饰类及其属性和方法。( 对 ) 2、Java支持多线程机制。( 对 )
3、一个Java源程序文件中允许有多个公共类。( 错 ) 4、重载的方法可以通过它们的返回值类型的不同来区分。( 错 ) 5、子类要调用父类的方法,必须使用super关键字。( 错 ) 6、子类拥有的成员数目一定大于等于父类拥有的成员数目。( 错 )
7、一个catch块也可以区分处理多个不同类型的异常,只要它们是该catch语句块异常参数的子类或其本身。( 对 )
8、程序中一旦执行了catch语句块,则不会执行finally语句块。( 错 ) 9、新建一个Frame对象,则其将立即显示在屏幕上。( 错 )
10、一个正在执行的线程使用yield()方法将处理器让给其它同优先级的其它线程。( 对 ) 11、Java中的的字符使用的是 16 位的Unicode 编码。 ( 对 ) 12、for 语句中的循环体不能为空。( 错 ) 13、Java 仅支持类间的单重继承。 ( 对 ) 14.接口是由常量和抽象方法组成的特殊类。( 对 ) 15、构造函数的方法名可由编程人员任意命名。( 错 ) 16、使用静态属性必须以类名做前缀。 ( 错 ) 17、类的私有属性和私有方法可以被其子类访问。( 错 ) 18、使用了FlowLayout布局管理器,不能改变组件的高度。( 对 )
19、Java.lang.RuntimeException及其子类的异常可以不捕获。( 对 )
20、当用户在TextField中改变光标的位置时,会产生一个TextEvent事件。( 错 ) 31、Java程序是由若干类定义组成的,类定义包括定义类头和定义类体。( 对 ) 32、类Class1中的属性被private修饰符修饰为私有变量,所以方法不能访问它。( 错 ) 34、引用一个类的属性或调用其方法,必须以这个类的对象为前缀。( 错 ) 35、与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。( 对 ) 36、子类要调用父类的方法,必须使用super关键字。( 错 ) 37、因为Java不支持多重继承,所以定义类时implements关键字后面只能说明一个接口名。( 错 )
38、挂起、阻塞或等待的线程都能恢复执行,但停止的线程不能复生。( 对 ) 39、如果一个方法在运行过程中产生异常,则方法会终止,但整个应用不一定终止。( 对 ) 40、接口Java.lang.runnable中只有一个run()方法。( 对 )
三、程序阅读题
1.阅读下面的程序代码,并回答问题。
String s1 = new String(\String s2 = new String(\ boolean b1= s1.equals(s2);
boolean b2 = s1 = = s2; System.out.print(b1+\ \
(1)程序段执行后,在命令行的输出结果如何? (2)解释输出(1)的结果的原因? (1) true false
(2 )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(\ break;
int x=Integer.parseInt(str);
}
四、程序填空题
1.以下程序是一个算术测试小软件,用来训练小学生的算术能力。程序有3个类组成,其中Teacher对象充当监视器,负责给出算术题目,并判断回答者的答案是否正确。ComputerFrame对象负责为算术题目提供视图,比如用户可以通过ComputerFrame对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MailClass是软件的主类。
程序运行效果如下图所示。
仔细阅读程序代码,请按模板要求,在【代码】处填写合适的Java程序代码。
MainClass.java
public class MainClass {
public static void main(String args[]) { ComputerFrame frame;
frame=new ComputerFrame(); frame.setTitle(\算术测试\
frame.setBounds(100,100,650,180); } }
ComputerFrame.java
import java.awt.*;
import java.awt.event.*; import javax.swing.*;
public class ComputerFrame extends JFrame { JMenuBar menubar;
JMenu choiceGrade; //选择级别的菜单 JMenuItem grade1,grade2;
JTextField textOne,textTwo,textResult; JButton getProblem,giveAnwser; JLabel operatorLabel,message; Teacher teacherZhang; ComputerFrame() {
teacherZhang=new Teacher(); teacherZhang.setMaxInteger(20);
setLayout(【代码1】_new FlowLayout()________________________________); //设置ComputerFrame的布局为FlowLayout布局
menubar = new JMenuBar();
choiceGrade = new JMenu(\选择级别\ grade1 = new JMenuItem(\幼儿级别\ grade2 = new JMenuItem(\儿童级别\
grade1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { teacherZhang.setMaxInteger(10); } });
grade2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { teacherZhang.setMaxInteger(50); } }); choiceGrade.add(grade1); choiceGrade.add(grade2); menubar.add(choiceGrade); setJMenuBar(menubar);
【代码1】__ textOne=new JTextField(5);_________________________________ //创建textOne,其可见字符长是5 textTwo=new JTextField(5); textResult=new JTextField(5); operatorLabel=new JLabel(\
operatorLabel.setFont(new Font(\ message=new JLabel(\你还没有回答呢\ getProblem=new JButton(\获取题目\ giveAnwser=new JButton(\确认答案\ add(getProblem); add(textOne);
add(operatorLabel); add(textTwo);
add(new JLabel(\ add(textResult); add(giveAnwser); add(message);
textResult.requestFocus(); textOne.setEditable(false); textTwo.setEditable(false);
getProblem.setActionCommand(\ textResult.setActionCommand(\ giveAnwser.setActionCommand(\
teacherZhang.setJTextField(textOne,textTwo,textResult); teacherZhang.setJLabel(operatorLabel,message);
【代码2】_______ getProblem.addActionListener(teacherZhang); ____________ //将teacherZhang注册为getProblem的ActionEvent事件监视器
【代码3】_____giveAnwser.addActionListener(teacherZhang); ___//将teacherZhang注册为giveAnwser的ActionEvent事件监视器
【代码4】__________textResult.addActionListener(teacherZhang); __//将teacherZhang注册为textResult的ActionEvent事件监视器 setVisible(true); validate();
setDefaultCloseOperation(DISPOSE_ON_CLOSE); } }
Teacher.java
import java.util.Random; import java.awt.event.*; import javax.swing.*;
public class Teacher implements ActionListener { int numberOne,numberTwo; String operator=\ boolean isRight;
Random random; //用于给出随机数 int maxInteger; //题目中最大的整数 JTextField textOne,textTwo,textResult; JLabel operatorLabel,message; Teacher() {
random = new Random(); }
public void setMaxInteger(int n) { maxInteger=n; }
public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); if(str.equals(\
numberOne = random.nextInt(maxInteger)+1;//1至maxInteger之间的随机数; numberTwo=random.nextInt(maxInteger)+1;
double d=Math.random(); // 获取(0,1)之间的随机数 if(d>=0.5)
operator=\ else
operator=\
textOne.setText(\ textTwo.setText(\ operatorLabel.setText(operator); message.setText(\请回答\ textResult.setText(null); }
else if(str.equals(\
String answer=textResult.getText();
try{ int result=Integer.parseInt(answer); if(operator.equals(\
if(result= =numberOne+numberTwo) message.setText(\你回答正确\ else
message.setText(\你回答错误\ }
else if(operator.equals(\
if(result= =numberOne-numberTwo) message.setText(\你回答正确\ else
message.setText(\你回答错误\ } }
catch(NumberFormatException ex) {
message.setText(\请输入数字字符\ } } }
public void setJTextField(JTextField ... t) { textOne=t[0]; textTwo=t[1]; textResult=t[2]; }
public void setJLabel(JLabel ...label) { operatorLabel=label[0]; message=label[1]; } }
2. 有如下 java源程序,程序的功能是在数组中查找键盘键入的整数。如果找到则输出该整数在数组中的序号,否则输出“not found”。例如,运行程序,输入99,程序输出:99在数组中的序号是5;输入 59,程序输出:not found。
仔细阅读程序代码,请按模板要求,在【代码】处填写合适的Java程序代码。(注意: 不改动程序的结构,不得增行或删行)。 import java.io.*;
import java.util.Scanner; public class J_Test {
public static void main(String[] args) throws IOException {
int 【代码1】________a[]_____________ = {83,75,92,67,55,99,78,61}; Scanner in = new Scanner(【代码2】___System.in_________________); int x = Integer.parseInt(【代码3】__________in.readLine()_________); int index = -1;
for(int i = 0; 【代码4】___i<=a..Length_____________________; ++i) {
if(a[i] == x) { index = i; break; } }
if(【代码5】_____index==-1____________________________) System.out.println(\ else
System.out.println(x + \在数组中的序号是\ } }
3. 下面程序的运行结果如下图。单击“Close”按钮关闭窗口。
请阅读程序,在(1)和(2)处补充相应的内容,使整个程序能够正常运行。 import java.awt.*;
import java.awt.event.*; import javax.swing.*; public class J_Test { private JFrame f;
private JButton button1, button2, button3; public void go() {
f = new JFrame(\
f.setLayout(new FlowLayout()); button1 = new JButton(\ button2 = new JButton(\ button3 = new JButton(\ f.add(button1); f.add(button2); f.add(button3);
____ button3.addActionListener(new Monitor()); ________ f.setSize(160, 106); f.setVisible(true); }
public static void main(String[] args) { J_Test t = new J_Test(); t.go(); } }
class Monitor implements ActionListener {
________ public void actionPerformed(ActionEvent e)______ { System.exit(0); } }
Answer:
(1)button3.addActionListener(new Monitor());
(2)public void actionPerformed(ActionEvent e) 五、编程题
1. 编写一个计算图形面积的程序,程序应当能够计算并输出矩形、圆的面积。考虑到程序的未来扩展,
设计一个图形抽象类:Shape,在此基础上派生出图形类Rectangle类和 Circle类。 (1)Rectangle类基本信息:宽度、高度。 (2)Cirlce类基本信息:圆心坐标、半径。 (3)每个图形类有多个构造方法:默认构造方法、带参数的构造方法;成员变量为private属性,成员方法为public属性。
(4)每个图形类有计算图形面积 getArea()方法,显示图形的基本信息 toString()方法,以及访问方法 set/get。
2. 编写一个Application,接受用户从键盘输入的10个整数,并输出这10个整数的最大值和最小值。
mport 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(\ } }
3. 从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。
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( ); } }
4. 编程题(略)
正在阅读:
Java面向对象程序设计复习题附答案01-17
参考书目 - 图文06-17
税法综合复习题11-21
太白酒厂实习报告 - 图文02-28
2017世界末日观后感04-02
王阳明学说的现实意义和价值08-16
§9.4《电磁铁》导学案01-07
教师党员公开承诺书5篇范文08-22
幼儿园数的形成教案04-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 复习题
- 程序设计
- 面向
- 对象
- 答案
- Java
- 天津市市级文明工地创评导则
- 水资源论证表
- 年产4.2万吨酸奶、巴氏奶生产线技术改造项目可行性研究分析报告
- JAVA程序设计 郭广军 课后答案
- 人教版必修1第七单元《现代中国的对外关系》word单元测试1
- 12米柱距檩条设计
- 法理学习题
- 电子线路CAD实习报告 - 图文
- 2018年中国影视动漫基地可行性分析报告2018年修订版
- 人教版小学三年级数学上册第八单元教案
- 口腔解剖生理学习题附答案
- 保安管理方法及各岗位管理责任制度及考核标准
- 四川省汽车驾驶员技师考试题库(有答案)
- 基于HFSS的圆锥喇叭天线设计
- 小六壬时课
- PMP各章节练习题
- 无损检测技术在道路桥梁工程中的应用
- 致高考考生的一封信-精选模板
- 2015届高考地理二轮复习分类解析汇编:地球上的水
- 苏教版 - 小学三年级上册作文训练序列1