Java基础教程清华大学出版社第2版部分习题答案.docx

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

Java基础教程清华大学出版社第2版部分习题答案.docx

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

Java基础教程清华大学出版社第2版部分习题答案.docx

Java基础教程清华大学出版社第2版部分习题答案

Java基础教程(清华大学出版社第2版)部分习题答案

第一章

【答案】答案见教材<略>。

第二章

1.请说明注释的作用。

【答案】答案见教材<略>。

2.判断下列那些是标识符?

(1)3class

(2)byte

(3)?

room

(4)Beijing

(5)beijing

【答案】

(1)

(2)(3)不是标识符,因为标识符不能已数字开始,也不能是保留关键字(如byte),不能以?

开始。

3.请指出下列声明字符变量ch的语句是否存在错误?

如果有,请改正。

(1)charch='A';

(2)charch='\u0020';

(3)charch=88;

(4)charch='ab';

(5)charch="A";

【答案】(4)错,因为关键字char是用于声明字符变量,不可声明字符串变量。

4.如果intx=1,y=-2,n=10;那么,表达式x+y+(--n)*(x>y&&x>0?

(x+1):

y)的值是什么类型?

结果是多少?

【答案】int型,值为17。

5.如果intk=1,那么'H'+k的类型是什么?

下面语句是否存在差错?

如果有,请改正。

(1)intk=1;

(2)charch1,ch2;

(3)ch1='H'+k;

(4)ch2=98;

【答案】'H'+k的类型为int型。

(3)有错。

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

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

如果有,请改正。

publicclassdoubleTointExample{

publicstaticvoidmain(Stringargs[]){

inta;

doubleb=1,c=2;

a=(int)(b+c);

"a="+a);

}

}

【答案】无错误。

输出结果:

a=3

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

请上机验证。

publicclassdoubleTointExample{

publicstaticvoidmain(Stringargs[]){

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

;

【答案】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)

{"不及格");}

elseif(score==2)

{"及格");}

elseif(score==3)

{"中等");}

elseif(score==4)

{"良好");}

else{"优秀");}

}

}

/*switch描述程序*/

publicclassxt020902{

publicstaticvoidmain(Stringargs[]){

intscore=4;

switch(score)

{

case1:

"不及格");

break;

case2:

"及格");

break;

case3:

"中等");

break;

case4:

"良好");

break;

case5:

"优秀");

break;

}

}

}

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.4;

doublearea,r;

area=PI*r*r;

;

}

}

【答案】

publicclassxt0210{

publicstaticvoidmain(Stringargs[]){

inti,j;

for(i=1;i<=9;i++)

{

for(j=1;j<=i;j++)

"*"+i+"="+i*j+"");

;

}

}

}

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

【答案】

publicclassxt0211{

publicstaticvoidmain(Stringargs[]){

inti,j,k,num;

charch;

num='A'-1;

for(i=1;i<=4;i++)

{

for(k=1;k<=4-i;k++)

"");

for(j=1;j<=i;j++)

{

num=num+1;

ch=(char)num;

"");

}

;

}

for(i=1;i<=4;i++)

{

for(k=1;k<=i-1;k++)

"");

for(j=1;j<=5-i;j++)

{

num=num+1;

ch=(char)num;

"");

}

;

}

}

}

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

【答案】

/*for语句实现*/

publicclassxt021201{

publicstaticvoidmain(Stringargs[]){

inti,n=100;

longsum=0;

for(i=1;i<=n;i++)

sum=sum+i;

"sum[1:

n]="+sum);

}

}

/*while语句实现*/

publicclassxt021202{

publicstaticvoidmain(Stringargs[]){

inti,n=100;

longsum=0;

i=1;

while(i<=n)

{

sum=sum+i;

i=i+1;

}

"sum[1:

n]="+sum);

}

}

/*dowhile语句实现*/

publicclassxt021203{

publicstaticvoidmain(Stringargs[]){

inti,n=100;

longsum=0;

i=1;

do

{

sum=sum+i;

i=i+1;

}

while(i<=n);

"sum[1:

n]="+sum);

}

}

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

{"IamA");}

}

classB

{}

publicclassHello

{

publicstaticvoidmain(Stringargs[])

{

"你好,很高兴学习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内容如下:

classA{

intx,y;

staticfloatf(inta)

{returna;}

floatg(intx1,intx2)

{returnx1*x2;}

}

publicclassB{

publicstaticvoidmain(Stringargs[]){

Aa=newA();

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.简述

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

当前位置:首页 > 表格模板 > 调查报告

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

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