《Java程序设计》参考答案.docx
《《Java程序设计》参考答案.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》参考答案.docx(42页珍藏版)》请在冰豆网上搜索。
![《Java程序设计》参考答案.docx](https://file1.bdocx.com/fileroot1/2022-11/26/dff485db-77e0-4f37-8936-d4a6a35cdecd/dff485db-77e0-4f37-8936-d4a6a35cdecd1.gif)
《Java程序设计》参考答案
参考答案
一、判断题
1-10对,错,对,错,错,对,错,对,对,对
11-20对,错,错,错,对,错,对,对,对,对
21-30对,对,对,错,错,对,错,对,对,对
31-40对,对,对,对,错,对,错,对,对,对
41-50对,对,错,对,错,错,对,错,错,错
二、填空题
1、javac,java,jar,appletview
2、0.0f,false,基本,引用
3、6,248
4、false,3
5、MyPrg.java
6、Interger,parseInt()
7、2
8、抽象(或abstract),final
9、“abc”
10、引用(或复合),arraycopy
11、packageMyPackage,第一行
12、implements
13、new,protected
14、继承,接口
15、对象,interface
16、abstract,提供了一个基本类,实现代码或算法的重用
17、Object,importjava.util.* ;
18、Error和Exception
19、finally,throw,throws
20、InputStream,OutputStream,字节,字符
21、IOException,ArrayIndexOutOfBoundsException
22、newFileInputStream(“c:
\\test.txt”),readLine()
23、RandomAcessFileraf=newRandomAcessFile(“c:
\\test.txt”,“rw”);
i=raf.readInt();
24、GridLayout、CardLayout
25、轻量级,getContentPane(),setLayout
26、JFrame,JWindow,JDialog
27、Applet,MyApplet.java
28、init(),destroy()
29、add,GUI
30、Thread,Runnable
31、start,run
32、synchronized,
从全局考虑获得锁的顺序,并且在整个程序中都遵守这个顺序;释放锁时,要按加锁的反序释放。
33、sleep,setPriority()
34、Runnable,publicvoidrun(),newThread(rt),myThread.start()
35、TCP,UDP
36、getPort(),getLength()
37、ServerSocket,Socket
38、ServerSocket,Socket
39、accept(),receive()
40、accept(),receive()
三、选择题
1-10BCCBADCCAA
11-20BABCDBABBC
21-30CDBCBDADBC
31-40CABBDACCAA
41-50DBADBDCABA
51-60DADDDADDCD
61-70DABCBACCBB
71-80CDCBDABDDC
四、程序阅读题
1、输出结果如下:
Secondseason
3thseason
2、输出结果如下:
i=1
j=2
3、输出结果如下:
23
4、输出结果如下:
Hi!
IamTom
Howdoyoudo?
5、第8行编译出错,原因是第8行调用11行构造方法时,int参数不能与short类型匹配
6、输出结果如下:
6
7、第6行编译出错,原因是无法调用另一个类中private修饰的方法
8、输出结果如下:
Hello
Yava
9、输出结果如下:
捕获ArithmeticException异常
java.lang.ArithmeticException:
没有13月份!
10、输出结果如下:
userException:
数组可能越界!
退出返回!
11、输出结果如下:
捕获了一个零除异常
12、
1)container.put(fancyButton);改为container.add(fancyButton);
2)container.put(plainButton);改为container.add(plainButton);
3)fancyButton.addItemListener(handler);改为
fancyButton.addActionListener(handler);
4)plainButton.addItemListener(handler);改为
plainButton.addActionListener(handler);
5)itemStateChanged改为actionPerformed
13、输出结果如下:
张三的工资为1000元。
异常:
工资不能为负!
14、输出结果如下:
sizeinInner.doStuff():
11
sizeoftheInnerclass:
3
sizeoftheOuterclass:
2
15、输出结果如下:
15
11
10
16、有两种修改方法:
(1)如果采用程序中的implementsRunnable的方法,则修改的地方有以下3处,:
①第2行Stringstr[]=newString[10];改为
staticStringstr[]=newString[10];
②第11行的sleep(1000);改为Thread.sleep(1000);
③第20行的代码修改为以下两行:
Threadtt=newThread(t);//tt的变量名可取符合java语言规范的任何标识符
tt.start();
(2如果采用extends实现该线程程序,则修改的地方有以下3处:
①第1行的implementsRunnable修改为extendsThread
②第2行Stringstr[]=newString[10];改为
staticStringstr[]=newString[10];
③第20行的t.run();修改为t.start();
17、输出结果如下:
java
iavaC
Yava
18、
18.System.out.println(str1==str2);输出true
19.System.out.println(str2==str3);输出true
20.System.out.println(str2==str4);输出false
21.System.out.println(str4==str5);编译出错
22.System.out.println(str3.equals(str4));输出true
23.System.out.println(str4.equals(str5));输出false
24.System.out.println(stringReplace(str1));输出iavaC
25.System.out.println(bufferReplace(str5));输出iavaC
26.System.out.println(str1);输出java
27.System.out.println(str5);输出iavaC
19、有两种修改方法:
(1)如果采用程序中的implementsRunnable的方法,则修改的地方有以下4处,每改对一处给2分,总共8分:
①第3~5行写入构造方法,并且将第3行的str.length()改为str.length,修改后的代码如下:
publicTest(){
for(inti=0;istr[i]=i+"-";
}
}
②第8行的str.length()改为str.length
③第9行的sleep(1000);改为Thread.sleep(1000);
④第18行的代码修改为以下两行:
Threadtt=newThread(t);//tt的变量名可取符合java语言规范的任何标识符
tt.start();
(2如果采用extends实现该线程程序,则修改的地方有以下4处,每改对一处给2分,总共8分:
①第一行的implementsRunnable修改为extendsThread
②第3~5行写入构造方法,并且将第3行的str.length()改为str.length,修改后的代码如下:
publicTest(){
for(inti=0;istr[i]=i+"-";
}
}
③第8行的str.length()改为str.length
④第18行的t.run();修改为t.start();
20、
(1)小应用程序在加载阶段,在屏幕上打印结果是:
Applet初始化…
Applet启动...
(2)关闭这个小应用程序时,在屏幕上打印结果是:
Applet停止运行...
准备卸载...
21、输出结果如下:
MyFunc
22、输出结果如下:
eab
23、输出结果如下:
2
24、输出结果如下:
Theindexis10
Theindexis20
Theindexis30
25、输出结果如下:
10020
26、输出结果如下:
x=2
st.y=1
x=2
st.y=1
27、输出结果如下:
two
0
28、输出结果如下:
iofmethodI():
21
iofTest11:
3
iofTest1:
2
29、输出结果如下:
150
30、输出结果如下:
134
31、输出结果如下:
32、输出结果如下:
33、执行的顺序为:
1-4-5-6-2-3
34、每隔1s打印一个数字和-,运行结果是:
0-1-2-3-4-5-6-7-8-9-
五、程序填空题
1、
extendsJFrame
调用父类JFrame的构造方法,使得窗口的标题为Concentric
setSize(300,300);
使窗口为可见的,即可在屏幕上显示出来
输出结果为在窗口画8个同心圆,界面效果如下:
2、
创建path的File对象,对象引用名为f
判断f的对象是否为文件
递归调用scanFiles方法
该程序的作用是扫描C盘下所有的文件,并将文件的路径打印
3、
①abstract
②StringgetName
③extends
④getDescription()
⑤Stringargs[]
4、
extendsThread
让线程休眠n毫秒
t1.start();
程序的输出结果是:
3010
5、
Testt=newTest();
创建test.txt文件的FileInputStream对象,对象引用名为din
运行结果是:
two
0
6、
interfaceArea
MyCirclec=newMyCircle(5);
MyRectangler=newMyRectangle(2,3);
程序的功能是定义一个接口Area,其中包含一个计算面积的方法CalsulateArea(),然后设计MyCircle和MyRectangle两个类都实现这个接口中的方法CalsulateArea(),分别计算圆和矩形的面积,最后写出测试以上类和方法的程序。
7、
①WindowListerner
②WindowEvent
③addWindowListerner
④setSize
8、略
9、
server=newServerSocket(6000,50)
socket=server.accept();
output=newObjectOutputStream(socket.getOutputStream());
input=newObjectInputStream(socket.getInputStream());
socket.close();
catch(IOExceptionioException)或catch(ExceptionioException),ioException可取任何变量
10~11、略
五、程序改错题
1、
(1)doublePI;改为doublePI=Math.PI;
(2)classCycleextendsShape改为classCycleimplementsShape
(3)doublearea()改为publicdoublearea()
(4)System.out.println(PI*r*r);改为returnPI*r*r;
(5)在Cycle类中增加以下方法
publicdoubleperimeter(){
return2*PI*r;
}
或者去掉publicdoubleperimeter();
2、
第10行改为publicStringtoString()
16~19行改为Personp=newPerson("张三",20,"男");
20行改为System.out.println(p.toString());
3、
第4行的str.length()改为str.length
第8行start()改为run()
第11行的sleep(1000);改为Thread.sleep(1000);
六、编程题
1、参考代码如下:
classForDemo{
publicstaticvoidmain(Stringargs[]){
intn=0;
for(inti=10;i<=100;i++){
if(i%2==0&&i%3!
=0){
n++;
System.out.print(i+"");
}
if(n>=10){
n=0;
System.out.println();
}
}
}
}
2、有两种方法可实现题目给定的getY:
方法一:
若采用if语句实现,参考代码如下:
publicdoublegetY(doublet){
doubley=0.0;
if(t>=0&&t<1)y=t*t-1;
elseif(t>=1&&t<3)y=t*t*t-2*t-3;
elseif(t>=3&&t<5)y=t*t-t*Math.cos(t);
elseif(t>=5&&t<7)y=t+1;
elsey=t-1;
returny;
}
方法二:
若采用switch语句实现,参考代码如下:
publicdoublegetY(doublet){
doubley=0.0;
switch((int)t){
case0:
y=t*t-1;break;
case1:
case2:
y=t*t*t-2*t-3;break;
case3:
case4:
y=t*t-t*Math.cos(t);break;
case5:
case6:
y=t+1;break;
default:
y=t-1;
}
returny;
}
3、略
4、参考代码如下:
interfaceAreaInterface{
doublepai=Math.PI;
doublearea();
}
5、参考代码如下:
publicclassStudent{
privateStringname;
privateintage;
publicStudent(){
name="无名氏";
age=20;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetName(){
returnname;
}
publicvoidsetAge(intage){
this.age=age;
}
publicintgetAge(){
returnage;
}
publicbooleanisSameAge(Students){
if(s.age-this.age==0)returntrue;
returnfalse;
}
publicstaticvoidmain(Stringargs[]){
Students1=newStudent();
Students2=newStudent();
s2.age=20;
System.out.println(s1.isSameAge(s2));
}
}
6:
略
7、参考代码如下:
interfaceAreaInterface{
doublepai=Math.PI;
doublearea();
}
classRectangleimplementsAreaInterface{
privatedoublex,y;
publicRectangle(doublex,doubley){
this.x=x;
this.y=y;
}
publicdoublearea(){
returnx*y;
}
publicStringtoString(){
return"该长方形面积为:
"+area();
}
}
classTestArea{
publicstaticvoidmain(Stringargs[]){
Rectangler=newRectangle(10.0,20.0);
System.out.println(r.toString());
}
}
8~10:
略
11、参考代码如下:
publicclassTestArraySum{
int[]a=newint[10];
publicTestArraySum(){
for(inti=0;i<10;i++){
a[i]=11+i;
}
}
publicintarraySum(int[]a){
intsum=0;
for(inti=0;i<10;i++)
sum+=a[i];
returnsum;
}
publicstaticvoidmain(Stringargs[]){
TestArraySumt=newTestArraySum();
System.out.println(t.arraySum(t.a));
}
}
12、参考代码如下:
publicclassSuansu{
inta,b;
publicSuansu(){
a=10;
b=5;
}
publicintaddAB(){
returna+b;
}
publicintsubAB(){
returna>b?
a-b:
b-a;
}
publicintmultiAB(){
returna*b;
}
publicdoubleDivab(){
return(double)a>b?
a/b:
b/a;
}
}
classTestSuansu{
publicstaticvoidmain(Stringargs[]){
Suansus=newSuansu();
System.out.println(s.addAB());
System.out.println(s.subAB());
System.out.println(s.multiAB());
System.out.println(s.Divab());
}
}
13、参考代码如下:
classRectangle{
privateintwidth,height;
publicRectangle(intw,inth){
width=w;
height=h;
}
publicRectangle(){
width=4;
height=5;
}
publicintgetWidth(){
returnwidth;
}
publicintgetHeight(){
returnheight;
}
publicvoidsetWidth(intw){
if(w>0&&w<50){
width=w;
}
else
{
System.out.println("InvalidWidth");
}
}
publicvoidsetHeight(inth){
if(h>0&&h<30){
height=h;
}
else{
System.out.println("Invalidheight");
}
}
publicintgetPerimeter(){
returnwidth+width+height+height;
}
publicintgetArea(){
returnwidth*height;
}
publicvoiddraw(){
for(introwCounter=0;rowCounterfor(intcolCounter=0;colCounterif(rowCounter==0||(rowCounter==height-1)||colCounter==0||(colCounter==width-1)){
System.out.print("*");
}
else{
System.out.print("");
}
System.out.println();
}//endfor
}//enddraw
}//endclass
classTestRectangle{
publicstaticvoidmain(Stringargs[]){
Rectangler1=newRectangle();
Rectangler2=newRectangle();
r1.setWidth(15);
r1.setHeight(5);
r2.setWidth(20);
r2.setHeight(7);
System.out.println(