《JAVA程序设计》习题集及参考答案IT168文库.docx
《《JAVA程序设计》习题集及参考答案IT168文库.docx》由会员分享,可在线阅读,更多相关《《JAVA程序设计》习题集及参考答案IT168文库.docx(33页珍藏版)》请在冰点文库上搜索。
《JAVA程序设计》习题集及参考答案IT168文库
《JAVA程序设计》习题集及参考答案
一、填空题
1.Java是面向对象的解释型的高级编程语言,其程序源代码的扩展名为.java生成的字节码文件名的扩展名为.class,Java解释器把各种平台间的差异隐藏起来,这种由解释器包裹起来的完整的软硬件平台称为Java虚拟机。
2.JavaApplication是独立、完整的程序,在命令行调用独立的解释器软件(java.exe)即可运行,其程序主类必须有一个main()方法,完整的方法头为
publicstaticvoidmain(Stringaegs[])。
3.把方法看作是数据的特性,而不把数据和方法分开,JAVA正是体现了这种建立面向对象系统过程中重要步骤的思想.。
4.建立类类型的变量(引用)后,系统只分配引用空间,程序员要调用new来创建对象实例,然后才分配相应的存储空间。
5.如果需要在同一类中书写多个方法,让它们对不同的变量进行同样的操作,就需要重载方法名。
如果子类中定义方法所用的名字、返回类型和参数表和父类中方法使用的完全一样,称子类方法覆盖了父类中的方法。
覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。
6.容器中组件的位置由容器的布局管理器决定,容器不仅可以容纳组件,还可以容纳其它容器这一点非常重要,由此可以设计出复杂的图形用户界面布局。
7.Java抽象窗口工具中提供了多种容器,其中最重要的两种是框架和面板。
8.JDK1.1引入了委托模型处理机制,组件必须注册一个事件处理程序,事件对象只传递给已经注册的监听程序,每种事件都有一个对应的监听程序类以实现相应的监听程序接口,并定义了事件对象的接收和处理方法。
9.异常处理的重要性在于,程序不但要发现异常,还要捕获异常并编写代码来处理
10.类是同种对象集合的抽象,而属于类的某一个对象则被称为是类的一个实例,对象是具有状态、行为、标志三种属性的计算机软件结构。
11.用户自己定义的Applet子类是JavaApplet的标志。
实际运行中,浏览器在下载字节码的同时,会自动创建一个用户Applet子类的实例,并在适当事件发生时自动调用该实例的几个主要方法是:
init()方法、start()方法、paint()方法、stop()方法和destroy()方法。
12.JavaApplication是独立、完整的程序,在命令行调用独立的解释器软件(java.exe)即可运行,其程序主类必须有一个main()方法,完整的方法头为
publicstaticvoidmain(Stringaegs[])。
13.JavaApplet程序需要与浏览器中已预先实现好的功能结合,才能构成一个完整的程序,其直接父类必须为Applet类,Applet所需做的是接收浏览器发送给它的消息或事件,如鼠标移动、击键等,并作出及时的响应。
。
14.JDK1.1事件处理机制引入了委托事件模型,如ActionEvent类表达的事件由ActionListener接口中定义的方法actionPerformed()来负责响应和处理。
3.Java程序可以分为两大类:
一类称为Application程序,另一类称为Applet程序。
4.Java解释器只能执行JVM编译的代码,Java解释器有三项主要工作:
下载代码、
校验代码、和执行代码。
15.关系运算符“==”可判定两个字串对象是否是同一实例,即它们在内参中的存储空间是否相同,而equals()方法可以判定两个字串是否相等。
16.构造方法是特殊的类方法,它的名字与类名相同,无返回值,在创建对象实例时由new运算符自动调用。
17.用户自定义的所有异常类都必须是Exception的子类,程序中发生异常时,程序员可以抛出(throw)一个异常实例。
18.线程由Thread对象的实例来引用。
线程执行的代码来源于传递给Thread构造方法的参数引用的类,这个类必须实现了接口Runnable。
19.一般在关闭一个缓冲输出流之前应使用flush()方法强制输出剩余数据,以确保缓冲区内的数据全部写入数据流。
20.BorderLayout布局管理器管理下,组件必须通过add()方法加入容器的五个区域,而f.setVisible(true);语句可以使框架f以及它所包含的组件对用户可见。
21.被标记为final的方法将不能被覆盖,而抽象类abstractclass必须被继承
22.Java虚拟机(JVM)是编译后的Java程序和硬件系统之间的接口,是用软件方法实现的一台假想机。
JVM使用的代码存储在.class文件中。
23.JavaApplet中的init()方法仅在开始的时候执行一次,start()方法在用户每次访问包含Applet的HTML文件时都会被调用,repaint()方法可以用来更新Applet的画面。
24.Java对class类型变量的内存分配分两步进行:
说明变量时,在内存中为其建立一个引用,然后程序员需用new申请相应的内存空间。
25.JDK1.1事件处理机制引入了委托事件模型,如ItemEvent类表达的事件由ItemListener接口中定义的方法itemStateChanged(ItemEvente)来负责响应和处理。
26.Java所有包中都定义了异常类和错误类,Exception类是所有异常的父类,Error类是所有错误的父类,这两个类同时又是Throwable的子类。
27.对于类FileInputStream的实例对象,如果所指定的文件不存在,则产生FileNotFoundException异常,由于它是非运行时异常,因此必须加以捕获或声明。
28.面向对象的程序设计中,重载方法属于同一个类,而覆盖方法分属于父、子类。
29.创建线程有两种方法,一种是继承Thread类,另一种是实现Runnable接口。
30.一个线程被创建,实际并没有立即运行,必须通过方法start()来启动,所以也可以把这一过程想象为打开虚拟CPU的开关。
31.Java是面向对象的解释型的高级编程语言,其程序源代码的扩展名为.java生成的字节码文件名的扩展名为.class,Java解释器把各种平台间的差异隐藏起来,这种由解释器包裹起来的完整的软硬件平台称为Java虚拟机。
32.类是同种对象集合的抽象,而属于类的某一个对象则被称为是类的一个实例,对象是具有状态、行为、标志三种属性的计算机软件结构。
33.用户自己定义的Applet子类是JavaApplet的标志。
实际运行中,浏览器在下载字节码的同时,会自动创建一个用户Applet子类的实例,并在适当事件发生时自动调用该实例的几个主要方法是:
init()方法、start()方法、paint()方法、stop()方法和destroy()方法。
二、判断题
1.JAVA程序是由若干类定义组成的,类定义包括定义类头和定义类体。
(√)
2.类头定义主要说明类的名字、父类名和接口名。
(×)
3.引用一个类的属性或调用其方法,必须以这个类的对象为前缀。
(×)
4.有的类定义时可以不定义类构造函数,所以构造函数不是必须的。
(×)
5.类及其属性、方法可以同时有一个以上的修饰符来修饰。
(√)
6.抽象类没有具体对象,所以抽象类没有构造函数。
(×)
7.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
(√)
8.Class1类的属性被private修饰符修饰为私有变量,所以方法不能访问它。
9.一个Java类可以有一个父类,并实现多个接口。
(√)
10.如果a是父类Parent的对象,而b是子类Child的对象,则语句a=b是正确的。
(√)
11.用画矩形方法需要给出的是矩形左上和右下角的坐标。
(×)
12.TextField和TextArea是用来接受用户输入的组件,但是也可以由程序控制使用户不能在其中输入信息。
(√)
13.下面的语句把组件com加入到容器的中央:
add(Center,com);。
(×)
14.一个Checkbox对象既可以作为一个复选按钮,也可以作为一个单选按钮组中
的一个按钮。
(√)
15.当用户鼠标移入Applet的区域范围时触发mouseEnter()方法,当用户鼠标移
出Applet的区域范围时触发mouseExit()方法。
(√)
16.用“+”可以实现字符串的拼接,用“—”可以从一个字符串中去除一个子串。
(×)
17.在Applet中调用方法showStatus(Strings),可以把字符串s的内容显示在运行
Applet的浏览器下方的状态栏中。
(√)
18.一个容器必须使用FlowLayout、BorderLayout、GridLayout、CardLayout和
GridBagLayout五种布局策略中的一种。
(×)
19.二维数组说明语句:
int[]a3[]=newint[4][6];。
(对)
20.创建新的类对象使用关键字new,回收无用的类对象使用关键字free。
(错)
21.如已经定义charch;,从键盘上输入一个字符送到ch,可用标准输入流:
ch=System.in.read();(错)
22.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
(对)
23.所有的鼠标事件都有由MouseEvent类的对象表示。
(对)
24.TextField和TextArea是用来接受用户输入的组件,但是也可以由程序控制使用户不能在其中输入信息。
(对)
25.因为Java不支持多重继承,所以定义类时implements关键字后面只能说明一个接口名。
(错)
26.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
(错)
27.一个Java类可以有多个父类(错
28.构造函数因为没有返回值,所以其中出现的错误用异常处理较为恰当(对)
29.用“+”可以实现字符串的拼接,用“-”可以从一个字符串中去除一个
子串(错)
30.在Applet中调用方法showStatus(Strings),可以把字符串s的内容显示在运行
Applet的浏览器下方的状态栏中(对)
31.getImage()方法与drawImage()方法都是Image对象的方法(错)
32.Java可以显示的图像文件类型包括后缀为.jpg和.gif的两种文件格式(对)
33.一个容器中可以混合使用多种布局策略(对)
34.一个Checkbox对象既可以作为一个复选按钮,也可以作为一个单选按钮组中
的一个按钮(对)
35.当用户鼠标移入Applet的区域范围时触发mouseEnter()方法,当用户鼠标移
出Applet的区域范围时触发mouseExit()方法(对)
36.可以先创建一个空白的Label对象,然后再向里面设置具体的文本内容(错)
37.一个容器必须使用FlowLayout、BorderLayout、GridLayout、CardLayout和
GridBagLayout五种布局策略中的一种(错)
38.接口KeyListener中有两个抽象方法KeyUp()和KeyDown()(错)
39.使用GridLayout布局策略的容器中,所有组件都有相同大小(对)
40.一个程序里有且只能有一个公共类,它就是主类。
(对)
41.lass1类的属性被private修饰符修饰为私有变量,所以方法不能访问它。
(错)
42.最终类不能派生子类,最终方法不能被覆盖。
(对)
43.子类要调用父类的方法,必须使用super关键字。
(错)
44.一个Java类可以有一个父类,并实现多个接口。
(对)
45.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
(对)
46.调用画矩形方法需要给出的是矩形左上和右下角的坐标。
(错)
47.TextField和TextArea是用来接受用户输入的组件,但是也可以由程序控制使用户不能在其中输入信息。
(对)
48.下面的语句把组件com加入到容器的中央:
add(Center,com);。
(错)
49.二维数组说明语句:
inta[5][5]=newint[][];。
(错)
50.一个容器可以使用多种布局管理器。
(对)
51.子类要调用父类的方法必须使用super关键字。
(错)
52.某程序中的主类不是Thread的子类,也没有实现Runnable接口,则这个主类运行时不能控制主线程睡眠。
(错)
53.一个Chckbox对象既可以作为一个复选按钮,也可以作为一个单选按钮组中的一个按钮。
(对)
54.选中菜单项时将引发ItemEvent事件。
(错)
55.MenuItem也可以添加到MenuBar上。
(错)
56.所有鼠标事件都是由实现了MouseListener监听接口的监听者来处理。
(错)
57.getImage()方法与drawImage()方法都是Image对象的方法。
(错)
58.Panel和Applet也可以拥有菜单。
(错)
三、一句话写程序
1.定义一个类,其名称为MyClass,它可以被所有其它类访问。
publicclassMyClass{}
2.比较String类的对象str是否和字串“abcde”相等,并把结果赋予变量result
booleanresult=str.equals(“abcde”)
3.设bt是一个按钮对象,把它注册给相应的监听器(设为当前容器)
bt.addActionListener(this);
4.定义一个标签prompt,并显示”InputPlease:
”的语句为:
Labelprompt=newLabel(“InputPlease:
”)
5.创建一个有3个数组的数组matrix,每个数组又有4个整数。
intmatrix[][]=newint[3][4];
6.把组件对象output加入到图形界面。
add(output);
7.将当前颜色设置成红色
g.setColor(Color.red);
8.得到在文本框input1输入的信息并送到整型变量days中。
days=Integer.parseInt(input1.getText());
9.得到在文本框input2输入的信息并送到实型变量out中。
out=Double.valueOf(input2.getText()).double.Value();
10.创建一个FlowLayout,使应用该布局管理器的各个组件都向右对齐排列
FlowLayoutf1=newFlowLayout(FlowLayout.RIGHT);
11.定义一个整型变量Mine,使得只有这个类本身可以访问它。
privateintMine;
12创建类Class1的一个对象Object1。
Class1Object1=newClass1();
13..设sb是一个滚动条对象,把它注册给响应事件监听器(设为当前容器):
sb.addAdjustmentListener(this);
14.为HTML文件书写一个语句,向Applet传送一个名为”param1”,数
值为”25”的Applet参数。
15.创建一个复选框cb,标签为“注册用户”。
Checkboxcb=newCheckbox(“注册用户”);
16.一般菜单条最右边有一个帮助菜单,现有一个帮助菜单helpmenu,
将它添加到菜单条mb中。
mb.setHelpMenu(helpmenu);
17.获取文本区域area1中被用户选中的文字,添加到另一个文本区域area2中。
area2.append(area1.getSelectedText());
18.使面板pan的布局管理器失效。
pan.setLayout(null);
19.调用对象Object1的方法method1,把返回值赋值给变量Hold。
Hold=Object1.method1();
20.定义一个整型属性Mine,使得只有这个类本身可以访问它。
privateintMine;
21.定义一个抽象方法abstractMethod,没有形式参数,返回值为布尔型量。
abstractbooleanabstractMethod();
22.为HTML文件书写一个语句,向Applet传送一个名为”param1”,数
值为”25”的Applet参数。
23.获得上题从HTML文件中传送来的整型参数赋值给Applet的属myp
myp=Integer.parseInt(getParameter(“param1”));
24.当前的颜色设成红色。
g.setColor(Color.red);
25.Applet要响应鼠标点击事件,应在init()方法中加入的语句为(设鼠标事件的监听者就是Applet本身):
this.addMouseListener(this);
26.设sb是一个滚动条对象,把它注册给响应事件监听器(设为当前容器):
sb.addAdjustmentListener(this);
27.使窗框mf的大小不可由用户鼠标随意改变。
Mf.setResizeable(false);
28.获取文本框tf1中被用户选中的文字,添加到另一个文本框tf2中。
tf2.setText(tf2.getText()+tf1.getSelectedText());
29.建一个列表,列表的高度可以显示三个选项,这个列表是可以多选的。
ListMyList=newList(3,true);
30.创建一个复选按钮,标签为“注册用户”。
Checkboxbm=newCheckbox(“注册用户”);
31.义一个类:
classDepartment,要为类属性:
部门编号(整型)、部门名称(字串)、工资总额(浮点型)赋初值,其构造函数的方法名应为:
Department(intdno,Stringdname,doubletotal){}
32.得名为input文本框中的信息,并把它赋给双精度变量getDouble
getDouble=Double.valueOf(input.getText()).doubleValue();
33..将当前前景颜色设置成绿色。
g.setForeground(Color,green);
33.x是一个复选框对象,把它注册给响应事件监听器(设为当前容器):
fx.addItemListener(this);
34.如上题复选框已它注册给响应事件监听器,则系统自动响应复选框状态改变的调用方法为:
publicvoiditemStateChanged(ItemEvente){}
35.创建一个FlowLayout,使应用该布局管理器的各个组件都向右对齐排列。
FlowLayoutf1=newFlowLayout(FlowLayout.RIGHT);
36.定义一个抽象方法abstractMethod(),无形式参数,返回值为布尔型。
abstractbooleanabstractMethod();
37.语句drawOvel(10,10,150,150)画出一个圆,请画出它的外接矩形。
DrawRect(10,10,150,150);
38.创建一个列表myList,列表的高度可以显示三个选项,这个列表是可以多选的。
ListmyList=newList(3,true);
39.把Panelp的背景设置成红色。
p.setBackground(Color.red);
40.启动线程t。
t.start();
41把管道输入数据流pis和管道输出数据流pos连接起来。
Pis.connect(pos);
42.获取文本框tf1中被用户选中的文字,添加到另一个文本框tf2中。
tf2.setText(tf2.getText()+tf1.getSelectedText());
43.在菜单mm中加入一条分割线。
mm.addSeparator();
44.为HTML文件书写一个语句,嵌入一个名为MyApplet.class的Applet字节码文件,
其宽度为300,高度为200。
45.设bn是一个按钮,把它注册给事件监听器。
(设为当前容器)
bn.addActionListener(this);
三、编程题
1.编写程序找出所有水仙花数并输出,水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,如371=33+73+13,371就是一个水仙花数。
publicclassNarcissus
{publicstaticvoidmain(Stringargs[])
{intI,j,k,n=100,m=1;
while(n<100)
{i=n/100;
j=(n-i*100)/10;
k=n%10;
if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)
System.out.println(“找到第“+m+++”个水仙花数:
“+n);
n++;
}
}
}
2.编写一个计算器,从屏幕输入两个运算整数,并以整数加、减、乘、除的顺序进行四则运算。
importjava.applet.Applet;
importjava.awt.*;
publicclassSwitchCalculateextendsApplet
{
Labelprompt=newLabel(“请输入两整数“);
Labeloperate=newLable(“+”);
TextFieldoperand1=newTextField(6);
TextFieldoperand2=newTextField(6);
Labelresult=newLabel(“运算结果“);
intcount=0;
publicvoidinit()
{
add(prompt);
add(operand1);
add(operate);
add(operand2);
add(result);
}
publicBooleanaction(Evente,Objecto)
{intswt=coun