Java语言程序设计第版第章课后习题答案0109223552.docx

上传人:b****8 文档编号:28044731 上传时间:2023-07-07 格式:DOCX 页数:64 大小:47.90KB
下载 相关 举报
Java语言程序设计第版第章课后习题答案0109223552.docx_第1页
第1页 / 共64页
Java语言程序设计第版第章课后习题答案0109223552.docx_第2页
第2页 / 共64页
Java语言程序设计第版第章课后习题答案0109223552.docx_第3页
第3页 / 共64页
Java语言程序设计第版第章课后习题答案0109223552.docx_第4页
第4页 / 共64页
Java语言程序设计第版第章课后习题答案0109223552.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

Java语言程序设计第版第章课后习题答案0109223552.docx

《Java语言程序设计第版第章课后习题答案0109223552.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计第版第章课后习题答案0109223552.docx(64页珍藏版)》请在冰豆网上搜索。

Java语言程序设计第版第章课后习题答案0109223552.docx

Java语言程序设计第版第章课后习题答案0109223552

选择题

1-1在下列概念中,Java语言只保留了(B)

A.运算符重载B.方法重载

C.指针D.结构和联合

1-2下列关于Java语言特性的描述中,错误的是(D)

A.支持多线程操作程序与平台无关和程序可以直接访问Internet上的对象

D.支持单继承和多继承

1-3下列关于JavaApplication程序在结构上的特点的中,错误的是(C)程序是由一个或多个类组成的

B.组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中程序的文件名要与某个类名相同

D.组成Java程序的多个类中,有且仅有一个主类

1-4Java程序经过编译后生成的文件的后缀是(C)

A..objB..exeC..classD..java

1-5下列关于运行字节码文件的命令行参数的描述中,正确的是(A)

A.第一个命令行参数(紧跟命令字的参数)被存放在args[O]中

B.第一个命令行参数被存放在args[1]中

C.命令行的命令字被存放在args[0]中

D.数组args[]的大小与命令行参数的个数无关

判断题

1-1JavaC++的语言之前问世的。

(错)

1-2Java语言具有较好的安全性和可移植性及与平台无关等特性。

(对)

1-3Java语言中取消了联合的概念,保留了结构概念。

(错)

1-4Java语言中数据类型占内在字节数与平台无关。

(对)

1-5Java语言中可用下标和指针两种方式表示数组元素。

(错)

1-6Java语言的源程序不是编译型的,而是编译解释型的。

(对)

1-7操作系统中进程和线程两个概念是没有区别的。

(错)

1-8Java语言既是面向对象的又是面向网络的高级语言。

(对)

1-9Java程序分为两大类:

一类是Application程序,另一类是Applet程序。

前者又称Java应用程序,后者又称为Java小应用程序。

(对)

1-10JavaApplication程序是由多个文件组成的,其中可以有也可以没有主文件。

(错)

1-11组成JavaApplication的若干类中,有且仅有一个主类,只有主类中含有主方法main()。

(对)

1-12JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以。

(对)

1-13Java程序中是不区分大小写字母的。

(错)

1-14下述两个命令:

javac和java是不同的,编译时用前者,运行时用后者。

(对)

1-15Java程序编译后生成的是字节码文件,其后缀是.exe。

(错)

1-16字节码文件机器是不能直接识别的,它要经过解释器,边解释边执行。

(对)

1-17在Java程序中,使用import语句引入类是在解释器中实现的。

(对)

1-18在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。

(错)

1-19Java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名。

(错)

1-20Java程序中出现的输出方法println()和print()是完全一致的。

(错)

分析程序的输出结果题

1-1程序Exer

*・

publicclassExerl_1

{

publicstaticvoidmain(Stringargs[])

{

isa");

}

}

该程序的输出结果如下:

Thisisastring.

1-2程序

PublicclassExerl_2

{

Publicstaticvoidmian(Stringargs[])

{

Charch="";

acharacter:

");

Try{

}

Catch(IOExceptione)

{}characteris\'"+ch+"\'");

}

}

该程序的输出结果如下

Inputacharacter:

k^

Thecharacteris‘k'

1-3程序

publicclassExerl_3

{

Publicstaticvoidmain(Stringargs[])

{

Stringstr=""

astring:

");

Try{

BufferedReaderin=newBufferedReader(newlnputStreamReader);str=();

}

Catch(IOExceptione)

{}

stringis\”'+str+"\"");

}

1-4程序

*

publicclassExerl_4

{publicstaticvoidmain(Stringargs[])

{

Aa=newA;

=8;

一J

("该程序输出结果如下所示");

}

}

classA

{

inti;doubled;voidmeth(stringstr)

{

}

}

该程序输出结果如下所示

i=8,d=

编程题

1-

"Hello!

Howareyou."。

1编写一个JavaApplication程序,使该程序运行后输出字符串参考程序内容如下

*・

・J

publicclassprol_1

{

publicstaticvoidmain(Stringargs[])

{

areyou.");

}

}

1-2编写一个JavaApplication程序,使该程序输出显示如下结果:

Var1=10,var2=

Ok!

参考程序内容如下:

*・

・J

publicclassprol_2

{publicstaticvoidmain(Stringargs[])

intvar1=10;doublevar2=;

第2章Java语言语法基础

选择题

2-1Java语言所用的字符集中字符是B位。

A.8

B.16

C.32

D.64

2-2下列关于标识符的描述中,正确的是A。

A.标识符中可以使用下划线和美元符

B.标识符中可以使用连接符和井号符

C.标识符中大小写字母是无区别的

D.标识符可选用关键字

2-3Java语言和各种分隔符中,非法的是D。

A.空白符

B.分号

C.逗号

D.问号

2-4下列是Java语言中可用的注释,其中错误的是C。

publicclasspro2_1

{

publicstaticvoidmain(Stringargs[])

{

inta[]={23,76,45,21,63,90,46,83};

intmax,min,sum;max=min=a[0];

for(inti=1;i<8;i++)

if(max

max=a[i];

for(inti=1;i<8;i++)

if(min>a[i])

min=a[i];

for(inti=1;i<8;i++)

sum+=a[i];

}

}

运行该程序后,输出结果如下:

Max=90,min=21,ave=53,sum=424

2-3编程将一个浮点型数的整数部分和小数分别输出显示。

publicclasspro2_2

publicstaticvoidmain(Stringargs[])

{

doubled=;

d仁d;

intn=0;

while(true)

{

d--;

if(d<0)

break;

n++

}

}

}

运行该程序后,输出结果请读者自己分析

2-4编程生成Fibonacci数列,该数列定义为:

fl=f2=1,fn=fn-l+fn-2(n>3)

程序内容如下:

publicclasspro2_3

{

publicstaticvoidmain(Stringargs[])

{

intf1,f2;

f1=f2=1

for(inti=1;i<=5;i++)

{

"+f2+"");

f1+=f2;

f2+=f1;

 

}这里假定生成下:

Fiblnacci数列的前20项,可根据需要生成若干项。

运行该程序后的输出结果如

 

112

2-5编程求出自然数程序内容如下

35813213455

101~205中的所有素数。

*・

publicclasspro2_4

{

publicstaticvoidmain(Stringargs[])

{

intn=0;booleanprime=false;for(inti=101;i<=205;i+=2)

prime=true;

for(intj=2;j

if(j%j==0)

prime=false;

break;

}

if(prime)

{

");

n++;

}if(n%8==0)

}

}

}

2-6使用switch语句根据考试成绩等级输出百分制的分数段。

规定如下:

A.85~100

B.70~84

C.60~69

D.<60

假定85~100分为A,70~84为B,60~69分为C,<60分为D。

程序内容如下:

*・

・J

publicclasspro2_5

{publicstaticvoidmain(Stringargs[])

{

inta=(args[0].intValue());

intn=a/5;

if(a<60)

n=11;

switch(n)

{

case20:

case19:

case18:

case17:

case16:

case15:

case14:

case13:

case12:

case11:

}

}

}

输入的分数是通过命令行参数来实现的。

假定命令参数为73时,运行该程序输出结果如下:

B

2-7百鸡百钱问题。

公鸡每只3无,母鸡每只5无,小鸡3只一元,用100元买100只鸡,公鸡、母鸡、小鸡应各买多少?

程序内容如下:

*・

・J

publicclasspro2_6

{

publicstaticvoidmain(Stringargs[])

{

for(inta=1;a<34;a++)

for(intb=1;b<21;b++)

if(3*a+5*b+(100-a-b)/3==100&&(100-a-b)%3==0)

}

运行该程序后输出结果如下:

公鸡=4,母鸡=12,小鸡=84公鸡=11,母鸡=8,小鸡=81公鸡=18,母鸡=4,小鸡=78

2-8编程输出如图所示的图形

*

***

程序内容如下:

*・

・J

publicclasspro2_7

{

publicstaticvoidmain(Stringargs[])

{

for(inti=1;i

{

for(intj=1;j

else

第3章Java语言面向对象的特征

选择题

3-1下列对封装性的描述中,错误的是(B).

A.封装体包含了属性和行为

B•封装体中的属性和行为的访问权限是相同的

C.被封装的某些信息在封装体外是不可见的

D.封装使得抽象的数据类型提高了可重用性

3-2下列关于继承性的描述中,错误的是(C)

A.一个类可以同时生成多个子类

B.子类继承了父类的所有成员语言支持单重继承和多重继承语言通过接口可使子类使用多个父类的成员

3-3下列对多态性的描述中,错误的是(A)

语言允许运算符重载语言允许方法重载语言允许变量覆盖

D.多态性提高了程序的抽象性和简洁性

3-4在类的修饰符中,规定只能被同一包类所使用的修饰符是(B)

.默认在成员变量的修饰符中,规定只允许该类自身访问的修饰符是(A)

默认

3-6在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是(D)

默认

3-7下列关于构造方法的特点的描述中,错误的是(A)

A.不可重载B.方法名同类名C•无返回类型D.系统自动调用

3-8下列关于静态方法的特点的描述中,错误的是(D)

A.在类体内说明静态方法使用关键字static

B.静态方法只能处理静态变量或调用静态方法

C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间

D.静态方法只能用类名调用

3-9下列对静态初始化器的描述中,错误的是(D)

A.静态初始化器是用来对类进行初始化的,而不是对某个对象初始化

B.静态初始化器是由关键字static和一对花括号组成的语句组

C.静态初始化器不同于构造方法,它不是方法

D.静态初始化器在产生新对象时,是由系统自动调用的

3-10下列关于抽象类的描述中,错误的是(C)

A.抽象类是用修饰符abstract说明的

B.抽象类是不可以定义对象的

C.抽象类是不可以有构造方法的

D.抽象类通常要有它的子类

3-11下列关于类的继承性的描述中,错误的是(D)

A.继承是在已有类的基础上生成新类的一种方法

B.子类继承父类的所有成员语言要求一个子类只有一个父类

D.父类中成员的访问权限在子类中将被改变

3-12下列关于子类继承父类的成员的描述中,错误的是(A)

A.子类中继承父类中的所有成员都可以直接访问

B.子类中定义有与父类同名变量时,子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量

C.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法

D.方法重载是编译时处理的,而方法覆盖是在运行时处理的

3-13下列关于接口的描述中,错误的是(B)

A.接口实际上是由变量和抽象方法构成的特殊类

B.一个类只允许继承一个接口

C.定义接口使用的关键字是interface

D.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现

3-14下列关于包的描述中,错误的是(A)

A.包是一种特殊的类B.包是若干个类的集合

C.包是使用package语句创建的D.包有有包名包和无名包两种

3-15下列常用包中,存放用户图形界面类库的包是(A)

下列是系统提供的常用的类,所有类的父类的类是(B)

判断题

3-1类是一种类型,也是对象的模板。

(对)

3-2Java语言只支持单重继承,不支持多重继承。

(对)

3-3类中说明的方法可以定义在类体外。

(错)

3-4class不是定义类的唯一关键字。

(错)

3-5某类的对象可以作为另一个类的成员。

(对)

3-6在类体内说明成员变量时不允许赋初值。

(错)

3-7最终变量就是Java语言中的符号常量。

(对)

3-8静态变量的引用只能使用对象。

(错)

3-9静态方法只能处理静态变量。

(对)

3-10抽象方法是一种只有说明而无具体实现的方法。

(对)

3-11最终方法是不能被当前子类重新定义的方法。

(对)

3-12Java语言中,方法调用一律都是传址的引用调用。

(错)

3-13非静态方法中不能引用静态变量。

(错)

3-14静态初始化器是在构造方法被自动调用之前运行的。

(对)

3-15抽象方法仅有方法头,而无方法体。

(对)

3-16抽象方法一定出现在抽象类中。

(对)

3-17最终类,最终方法和最终变量的修饰符都用final。

(对)

3-18创建对象时系统将调用适当的构造方法给对象初始化。

(对)

3-19使用运算符new创建对象时,赋给对象的值实际上是一个地址值。

(对)

3-20使用构造方法只能给非静态成员变量赋初值。

(对)

3-21创建对象时,该对象占用的内存空间除了非静态的成员变量外,还有非静态的成员方法。

(对)

3-22Java语言中,对象成员的表示只使用运算符“。

(对)

3-23Java语言中,对象赋值实际上是同一个对象具有两个不同的名字,因为他们都有同一个地址值。

(对)

3-24对象可作方法参数,对象数组不能作方法参数。

(错)

3-25Java语言中,所创建的子类都应有一个父类。

(对)

3-26Java语言中,类的继承是可以传递的。

(对)

3-27Java语言中,构造方法是可以继承的。

(错)

3-28子类中构造方法应包含自身类的构造方法和直接父类的构造方法。

(对)

3-29调用this或super的构造方法的语句必须放在第一条语句。

(对)

3-30子类对象可以直接赋值给父类对象;而父类对象不可以赋值给子类对象。

(错)

3-31子类中所继承父类的成员都可以在子类中访问。

(错)

3-32成员方法的重载和覆盖是一回事。

(错)

3-33一个类可以实现多个接口。

接口可以实现“多重继承”。

(对)

3-34实现接口的类不能是抽象类。

(错)

填空题

3-1对象具有3大要素,它们分别是(状态),(行为),(标志)。

这3大要素分别用(变量),(方法),(对象名)表示。

3-2定义类时,通常要使用的关键字有(class),(extends),(implements)。

3-3成员变量的定义格式如下:

([<修饰符>])<变量类型><变量名>(=<初值>);

3-4成员变量的非访问控制修饰符有(static),(final),(volatile)。

3-5在成员方法的定义中可省略的部分有(修饰符),(参数表),(异常类名列表)。

3-6Java语言中,重载方法的选择是在(编译)时进行的,系统根据(参数个数),(参数类型),(参数顺序)寻找匹配方法。

3-7没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能被改变值的量称为常量,又称为(最终变量)。

3-8创建一个对象时,通常要包含3项内容:

(说明对象),给对象分配空间,(对象初始化)。

3-9系统规定int型变量默认值为(0),浮点型变量的默认值为(),布尔型变量的默认值为(false)。

3-10Java语言中,定义子类时,使用关键字(extends)来给出父类名。

如果没有指出父类,则该类的默

认父类为(object类)。

3-11系统规定:

表示当前类的构造方法用(this()),表示直接父类的构造方法用(super())。

3-12接口中默认的成员变量的修饰符为(final),默认的成员方法的修饰符是(abstract)。

3-13实现接口中的抽象方法时,必须使用(完全相同)方法头,并且还要用(public)修饰符。

3-14包名与子包名之间用(.)分隔。

加载包的关键字是(import)。

3-15字符串类又包含两大类,它们是(String)和(StringBufer).

分析程序的输出结果题

classA

{intx,y,z,sum;

A(inti,intj,intk)

{

x=i;

y=j;

z=k;

sum=x+y+z;

}booleansameA(Aal)

{if(==x)&==y)&==z))

returntrue;

else

returnfalse;

}

booleansameS(Aal)

if==sum)returntrue;elsereturnfalse;

}

}classExer3_1

{

publicstaticvoidmain(Stringargs[]){

Aa=newA(2,5,8);Ab=newA(2,5,8);Ac=newA(5,8,2);

}

}输出结果如下:

truefalsetruetrue

classB

{

voidmeth(inti)voidmeth(doublei)

}classExer3_2

{

publicstaticvoidmain(Stringargs[]){inti=8;doubled=;shorts=10;floatf=;

byteb=9;charc='a';Bob=newB();

(i);

(d);

(s);((int)f);

(b);

(c);

输出结果如下:

Int:

8

Double:

Int:

10

Int:

5

Int:

9

Int:

97

classC

{

intc;

C(inta)

{

c=0;

for(inti=0;i<=a;i++)

c+=i;

}

C(Cb)

{c=;}

}classExer3_3

{publicstaticvoidmain(Stringargs[]){

Cc1=newC(6);

Cc2=newC(newC(4));

}

}输出结果如下:

c1:

21c2:

10

classD

{

staticintd=100;staticintmeth()

{

ints=d*10;return(s);

}

D(inti)

{d=i;}

}classExer3_4

{

publicstaticvoidmain(Stringargs[])

{

Ddd=newD(10);=500;

}

}输出结果如下:

:

100

d:

10dd:

10

:

100

:

100

d:

10

:

5000

classE

{

doubleh,w;

voidshow()

}classTextendsE

{

doublearea()

{returnw*h;}

}classExer3_5

{publicstaticvoidmain(Stringargs[]){

Tt1=newT();

Tt2=newT();

();

();

}

}输出结果如下:

Width=,height=t1:

area=width=,height=t2:

area=classA

{

A()

A");}

}classBextendsA

{

intb;

B(inti)

(b=i);

}classCextendsB

{

privateintc;

C(inti,intj)

{

super(j);c=i;

}intreturnc(){returnc;}

}classExer3_6

{publicstaticvoidmain(Stringargs[]){

Cc=newC(5,18);

c());

}

}输出结果如下:

classAc:

90

classA

{voidshow()

A");}

}classBextendsA

{

voidshow()

B");}

}classCextendsB

{

voidshow()

C");}

}

classExer3_7

{

publicstaticvoidmain(Stringargsp[]){

Aa=newA();

Bb=newB();

Cc=newC();

Ax=newA();

x=a;

();

x=b;

();

x=c;

();

}

}

输出结果如下:

classA

classB

classC

abstractclassShap

{

privatedoublew,h;

Shap(doublei)

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

当前位置:首页 > 高中教育 > 理化生

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

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