Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx

上传人:b****3 文档编号:20272087 上传时间:2023-01-21 格式:DOCX 页数:39 大小:61.60KB
下载 相关 举报
Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx_第1页
第1页 / 共39页
Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx_第2页
第2页 / 共39页
Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx_第3页
第3页 / 共39页
Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx_第4页
第4页 / 共39页
Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx

《Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。

Java基础教程清华大学出版社第2版部分习题答案Word文档下载推荐.docx

下面语句是否存在差错?

(1)intk=1;

(2)charch1,ch2;

(3)ch1='

+k;

(4)ch2=98;

【答案】'

+k的类型为int型。

(3)有错。

'

+k为int型,ch1为char型,将高精度赋给低精度类型时必须实行强制转换。

6.请指出下面程序在编译时是否会出现错误。

publicclassdoubleTointExample{

publicstaticvoidmain(Stringargs[]){

inta;

doubleb=1,c=2;

a=(int)(b+c);

System.out.println("

a="

+a);

}

}

【答案】无错误。

输出结果:

a=3

7.请指出执行完下面程序后x、y和z的输出值是多少?

请上机验证。

intx,y,z;

x=1;

y=2;

z=(x+y>

3?

x++:

++y);

x="

+x);

y="

+y);

z="

+z);

x=1

y=3

z=3

8.请指出下面程序片段输出的结果是什么。

inti=1,j=10;

do

{

if(i++>

--j)break;

}while(i<

5);

System.out.println(“i=”+i+”<

--->

”+“j=”+j);

【答案】i=5<

j=6

9.请分别用if-else语句和switch语句编写实现下列功能的程序。

某同学某门课的成绩可能的结果为1,2,3,4,5。

当成绩为1时请输出不及格;

成绩为2时请输出及格;

成绩为3时请输出中等;

成绩为4时请输出良好;

成绩为5时请输出优秀。

残骛楼諍锩瀨濟溆塹籟婭骒東。

/*if-else描述程序*/

publicclassxt020901{

publicstaticvoidmain(Stringargs[]){

intscore=4;

if(score==1)

{System.out.println("

不及格"

);

elseif(score==2)

及格"

elseif(score==3)

中等"

elseif(score==4)

良好"

else{System.out.println("

优秀"

/*switch描述程序*/

publicclassxt020902{

switch(score)

{

case1:

System.out.println("

break;

case2:

case3:

case4:

case5:

}

10.请编写输出乘法口诀表的程序。

乘法口诀表的部分内容如下:

1*1=1

1*2=22*2=3

1*3=32*3=63*3=9

1*4=42*4=83*4=124*4=16

……

publicclassxt0210

publicstaticvoidmain(Stringargs[])

{finaldoublePI=3.141592654;

doublearea,r;

area=PI*r*r;

System.out.println(“面积=”+area);

publicclassxt0210{

inti,j;

for(i=1;

i<

=9;

i++)

{

for(j=1;

j<

=i;

j++)

System.out.print(j+"

*"

+i+"

="

+i*j+"

"

System.out.println();

11.请编写程序实现如下效果图。

publicclassxt0211{

inti,j,k,num;

charch;

num='

-1;

=4;

for(k=1;

k<

=4-i;

k++)

System.out.print("

{

num=num+1;

ch=(char)num;

System.out.print(ch+"

}

=i-1;

=5-i;

12.分别利用for语句、while语句以及dowhile语句编写一个求和程序(即sum=1+2+3+…+n)。

酽锕极額閉镇桧猪訣锥顧荭钯。

/*for语句实现*/

publicclassxt021201{

inti,n=100;

longsum=0;

=n;

sum=sum+i;

sum[1:

n]="

+sum);

/*while语句实现*/

publicclassxt021202{

i=1;

while(i<

=n)

i=i+1;

/*dowhile语句实现*/

publicclassxt021203{

do

while(i<

=n);

13.复习break和continue语句,调试本章设计这两个语句的程序。

14.上机调试本章提供的输入输出语句。

第三章

1.选择题

(1)不允许作为类及类成员的访问控制符的是()。

A.publicB.private

C.staticD.protected

【答案】C

(2)为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。

彈贸摄尔霁毙攬砖卤庑诒尔肤。

A.staticvoidmethod()B.publicvoidmethod()謀荞抟箧飆鐸怼类蒋薔點鉍杂。

C.finalvoidmethod()D.abstractvoidmethod()厦礴恳蹒骈時盡继價骚卺癩龔。

【答案】A

(3)Java中main()函数的值是()。

A.StringB.intC.charD.void

【答案】D

2.改错题

(1)一个名为Hello.java程序如下:

//Hello.java程序

publicclassA

voidf()

{System.out.println("

IamA"

classB

{}

publicclassHello

publicstaticvoidmain(Stringargs[])

{

System.out.println("

你好,很高兴学习Java"

Aa=newA();

a.f();

要求:

指出错误,说明错误原因,并改正。

错误原因:

一个程序中不可同时申明一个以上的public类。

改正措施:

将publicclassA变为classA即可

(2)类A的定义如下:

classA{

voidf(){

intu=(int)(Math.random()*100);

intv,p;

if(u>

50){v=9;

p=v+u;

Java语言规定,任何变量在使用之前,必须对变量赋值。

由于u的值是由随机方法产生的,当u<

=50时,v在使用前没有赋值,此时执行p=v+u;

会出现错误。

茕桢广鳓鯡选块网羈泪镀齐鈞。

将intv,p;

变为intv=0,p;

即可

(3)B.java内容如下:

intx,y;

staticfloatf(inta)

{returna;

floatg(intx1,intx2)

{returnx1*x2;

publicclassB{

publicstaticvoidmain(Stringargs[]){

A.f(3);

a.f(4);

a.g(2,5);

A.g(3,2);

A.g(3,2);

由于类方法不仅可以由对象调用而且还可以直接由类名调用,而实例方法不能由类名调用。

鹅娅尽損鹌惨歷茏鴛賴縈诘聾。

删除A.g(3,2);

或将A.g(3,2);

改为a.g(3,2);

3.简答题

(1)简述面向对象程序和面向过程程序设计的异同。

(2)简述类中成员变量的分类及差异。

(3)简述类中方法的分类及差异。

(4)简述类中变量的初始化方式。

(5)简述类中成员的几种访问控制修饰符的差异,并举例说明。

(6)简述构造方法的作用。

第四章

1.简述Java中继承的含义及特点。

2.指出下列程序中的错误,请说明错误原因。

classA{

publicinta=1;

privateintb=2;

protectedintc=3;

intd=4;

publicintdispA(){returna;

}

privateintdispB(){returnb;

protectedintdispC(){returnc;

intdispD(){returnd;

}

publicclassBextendsA{

publicstaticvoidmain(Stringargs[]){

Bbb=newB();

bb.testVisitControl();

publicvoidtestVisitControl(){

System.out.println(a+dispA());

System.out.println(b+dispB());

System.out.println(c+dispC());

System.out.println(d+dispD());

【答案】System.out.println(b+dispB());

行编辑时出现错误。

原因如下:

(1)子类B和父类A在同一包中;

(2)子类B不能继承父类的private型属性和方法。

3.根据下面程序片段,画出类和对象的内存映像图。

staticintsv1=10;

intsv2=20;

intsv3=30;

staticvoidsf1(){…}

voidf1(){…}

classBextendsA{

staticintsv2=30;

intv2=3;

voidf1(){…}

Aref1=newA();

Bref2=newB();

ref1=ref2;

4.简述子类对象的成员初始化的方法。

5.简述成员变量的隐藏的含义,并举例说明。

6.简述方法的重载和方法的覆盖的区别,并举例说明。

7.列举this和super的用途。

8.指出下列程序运行的输出结果。

classPoint{

intx,y;

Point(){this(-1,-1);

Point(inta,intb){x=a;

y=b;

voidshowxy(){

System.out.println(“x=”+x+”y=”+y);

publicclassreloadingExample{

publicstaticvoidmain(Stringargs[]){

Pointa=newPoint();

Pointb=newPoint(1,1);

a.showxy();

b.showxy();

【答案】输出结果为:

x=-1y=-1

x=1y=1

9.指出下列程序运行的输出结果。

classA{

intx=1,y=2;

doubleadd(){returnx+y;

classBextendsA{

intx=10,y=20;

doubleadd(){returnsuper.x+super.y;

classex2{

publicstaticvoidmain(Stringargs[]){

Bb=newB();

a.add="

+a.add());

b.add="

+b.add());

a.add=3.0

b.add=3.0

10.简述接口和抽象类的含义,以及它们两者之间的不同。

第五章

1.为什么说Java多维数组是数组元素为数组的一维数组,请用事实说明。

2.判断下面数组的定义是否正确?

如果不正确,请改正。

(1)inta[5];

charch[5][4];

(2)inta[][]=newint[][4];

(3)intN=10;

inta=newint[N];

(1)数组定义错。

因为数组声明时方括号中不能用数字,即不允许静态说明数组。

(2)数组定义错。

因为数组维数声明顺序应该从高到低,先声明高维,再声明低维。

(3)正确。

因为数组元素个数可以是常量,也可以是变量。

3.若int[][]a={{1,2},{3,4,5},{6,7,8},{9,10},{11,12,13,14,15}},请问a.length,a[2].length,a[3].length分别等于多少?

籟丛妈羥为贍偾蛏练淨槠挞曉。

【答案】a.length,a[2].length,a[3].length分别等于5、3、2。

4.写出下列程序的运行结果。

voidoperate(intc[]){

inti;

for(i=0;

c.length;

i++)c[i]=3*c[i];

publicclassArrayExample4{

publicstaticvoidmain(String[]args){

Aa=newA();

intb[]={1,2,3,4};

a.operate(b);

for(inti=0;

b.length;

i++)System.out.println(b[i]);

預頌圣鉉儐歲龈讶骅籴買闥龅。

【答案】运行结果为:

3

6

9

12

5.写出下列程序的运行结果。

publicclassStringExample4{

Strings1="

abc"

Strings2=s1;

s2+="

def"

s1.concat("

System.out.println("

s1="

+s1+"

s2="

+s2);

s1=abcs2=abcdef

6.写出下列程序运行的结果。

publicclassStringExample5{

Strings[]={"

ab"

"

c"

d"

};

reverse(s[0],s[1]);

s[0]="

+s[0]+"

s[1]="

+s[1]);

staticvoidreverse(Strings0,Strings1){

Strings;

s=s0;

s0=s1;

s1=s;

s[0]=abs[1]=c

7.写出下列程序的运行结果。

publicclassStringExample6{

reverse(s);

staticvoidreverse(Strings[]){

Strings0;

s0=s[1];

s[1]=s[0];

s[0]=s0;

s[0]=cs[1]=ab

8.写出下列程序的运行结果。

publicclassStringBufferExample3{

publicstaticvoidmain(String[]args){

StringBuffers1=newStringBuffer("

AB"

StringBuffers2=newStringBuffer("

CD"

operate(s1,s2);

s2="

staticvoidoperate(StringBufferx,StringBuffery){渗釤呛俨匀谔鱉调硯錦鋇絨钞。

x.append(y);

x=y;

s1=ABCDs2=CD

第六章

1.简述异常的含义及作用。

2.简述Java异常处理的机制。

3.简述finally块的用途,举例说明。

4.简述throw和throws的用途,以及两者之间的差异。

5.编写一个程序,自定义一个异常,并对其进行处理。

//myException.java

importjava.util.*;

classmyExceptionextendsException

{}

classUserTrial{

intscore;

publicUserTr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1