Java语言程序设计第版第章 课后习题答案_第1页
Java语言程序设计第版第章 课后习题答案_第2页
Java语言程序设计第版第章 课后习题答案_第3页
Java语言程序设计第版第章 课后习题答案_第4页
Java语言程序设计第版第章 课后习题答案_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章Java语言概述

选择题

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

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

C.指针D.结构和联合

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

A.支持多线程操作

B.Java程序与平台无关

C.Java和程序可以直接访问Internet上的对象

D.支持单继承和多继承

1-3下列关于JavaApplication程序在结构上的特点的中,错误的是(C)

A.Java程序是由一个或多个类组成的

B.组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中

C.Java程序的文件名要与某个类名相同

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

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

A..nhjR..exeC..classDjava

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

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

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

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组成JavaApplicaiion的若干类中,有且仅有一个主类,只有主类中含有主方法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程序Exerl_l.java

importjava,io.*;

publicclassExcrl_l

{

publicstaticvoidmain(Stringargsl])

{

isa");

I

)

该程序的输出结果如下:

Thisisastring.

1-2程序Excrl_2.java

Importjava.io.*;

PublicclassExerl_2

(

Publicstaticvoidmian(Stringargs[|)

(

Charch="”;

acharactcr:'1);

Try(

I

Catch(IOExceptione)

{}

characteris\"'+ch+,,\"');

)

)

该程序的输出结果如下

Inputacharacter:k/

Thecharacteris4k,

1-3程序Exerl_3.java

importjava.io.*;

publicclassExerl_3

(

Publicstaticvoidmain(Stringargs[])

(

Slringstr=""

astring:");

Try{

BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));

str=in.readLine();

)

Catch(IOExceptione)

{I

stringis\"'+str+"\,n,);

1-4程序Exerl_4.java

importjava.io.*

publicclassExcrl_4

(

publicstaticvoidinain(StringargsU)

{

Aa=newA;

a.i=8;

a.d-1.25;

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

}

}

classA

{

inti;

doubled:

voidmcth(stringstr)

该程序输出结果如下所示

i=8,d=l.25

编程题

1-1编写一个JavaApplication程序,使该程序运行后输出字符串“Hcllo!Howareyou."0

参考程序内容如下

importjava.io.*;

publicclassprol_l

{

publicstaticvoidmain(Stnngargs[])

(

areyou.");

I

}

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

Varl=10,var2=19.5

Ok!

参考程序内容如下:

importjava.io.*;

publicclassprol_2

{

publicstalicvoidmain(Stringargs[])

inlvarl=IO;

doublevar2=19.5;

第2章Java语言语法基础

选择题

2-iJava语言所用的字符集中字符是2位。

A.8

B.16

C.32

D.64

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

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

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

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

D.标识符可选用关键字

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

A.空白符

B.分号

C.逗号

D.问号

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

A.//

B./*...*/

C./**...**/

D./**...*/

2-5Java语言中字符型数据的长度是巳位。

A.8

B.16

C.32

D.64

2-6下列描述的两种数据类型的长度不相等的是A。

A.字符型和布尔型

B.字节型和布尔型

C.短整型和字符型

D.整型和单精度浮点型

2-7下列是Java语言中的复合数据类型,其中错误的是C。

A.数组

B.接口

C.枚举

D.类

2-8下面是关于Java语言中数据类型的强制转换的描述,其中错误的是全。

A.当数据类型从高转换为低时需强制转换

B.强制转换时使用强制转换去处符,形如(〈类型〉:

C.浮点型数据强制转换为整型时,小数部分四舍五入

D.赋值操作中都要采用强制类型转换

2-9下列关于常量的描述中,错误的是皿。

A.Java语言的常量有5种

B.浮点型数12.456是单精度的

C.布尔型常量只有两个可选值:true和false

D.字符串常量含有结束符'O'

2-10下列关于定义符号常量的描述中,错误的是分£。

A.定义符号常量使用关键字8nsi

B.定义符号常量时要赋初值

C.符号常量既可以定义为类成员,又可在方法中定义

D.定义符号常量时必须给出数据类型

2-11下列关于变量的默认值的描述,其中错误的是

A.定义变量而没有进行初始化时,该变量具有默认值

B.字符型变量的默认值为换行符

C.布尔型变量的默认值是Uuc

D.变显的默认值是可以被改变的

2-12下列关于变量定义的描述中,正确的是A£。

A.定义变量时至少应指出变量名字和类型

B.定义变量时没有给出初值该变量可能是无意义值

C.定义变量时,同一个类型多个变量间可用逗号分隔

D.定义变量时必须要给变量初始化

2-13下列关于变量作用域的描述,错误的是D。

A.在某个作用域定义的变量,仅在该作用域内是可见的,而在该作用域外是不可见的

B.在类中定义的变量的作用域在该类中的方法内可以使用

C.在方法中定义的变量的作用域仅在该方法体内

D.在方法中作用域可嵌套,在嵌套的作用域中可以定义同名变量

2-14下列关于增1(++)减1(-)1运算符的描述中,正确的是A国。

A.增1减1运算符都是单目运算符

B.增1减1运算符都具有前缀运算和后缀运算

C.增1减I运算符不会改变变量的值

D.增1减1运算符前缀运算和后缀运算后表达式值是相同的

2-15关于运算符优先级的描述中,错误的是D。

A.在表达式中,优先级高的运算符先进行计算

B.赋值运算符优先级最高

C.单目运算符优先级高于双目和三目运算符

D.逻辑运算符优先级高于逻辑位运算符

2-16下列关于表达式的描述中,正确的是

A.任何表达式都有确定的值和类型

B.算数表达式的类型由第一个操作数的类型决定

C.逻辑表达式的操作数是逻辑型的

D.赋值表达式的类型取决于右值表达式的类型

2-17下列表达式中,非法的是因

inta=5,b=6;doublec=1.1,d=2.2

A.a+c+++d

B.(a+c)-

C.c«b

D.a!=b?c:d

2-18下列关于条件语句的描述中,错误的是AC。

A.If语句可以有多个else子句和elseif子句

B.If语句中可以没有else子句和elseif子句

C.If语句中的〈条件)可以使用任何表达式

D.If语句的if体、else体内可以有循环语句

2-19下列关于开关语句的描述中,错误的是啦D。

A.开关语句中,default子句可以省略

B.开关语句中,case子句的〈语句序列》中一定含有break语句

C.开关语句中,case子句和default子句都可以有多个

D.退出开关语句的唯一条件是执行break语句

2-20下列关于循环语句的描述中,错误的是因Q。

A.任何一种循环体内都可以包含一种循环语句

B.循环体可以是空语句,也可以是空

C.循环体内可以出现多个bicak语句

D.循环语句中,循环体至少被执行一次

2-21下列循环语句的循环次数是Do

inti=5;

do{

i-;

}while(i!=());

A.0

B.1

C.5

D.无限

2-22下列循环语句中,循环体被执行的次数为口。

for(inti=0.j=0;(j!=l8)||(i<4);i++)

A.3

B.4

C.不确定

D.无限

2-23下列关于Java语言的数组描述中,错误的是D。

A.数组的长度通常用length来表示

B.数组下标从0开始

C.数组元素是按顺序存放在内在的

D.数组在赋初值和赋值时都不判界

2-24下列关于数组的定义形式,错误的是

A.int[]a;a=newint;

B.charbl];b=newchar[8()J

C.int[]c=newchar[IO]

D.int[]d[3]=newint[2][]

2-25下列关于字符串的描述中,错误的是且.

A.Java语言中,字符串分为字符串常量和字符串变量两种

B.两种不同的字符串都String类的对象

C.Java语言中不再使用字符数组存放字符串

D.JavaApplication程序的main。和参数args[]是一个String类的对象数组,用它可存放若干个

命令行参数

判断题

2-1Java语言标识符中可以使用美元符。(对)

2-2Java语言标识符中大小写字母是没有区别的。(错)

2-3分号(;)、逗号(,)和冒号(:)都可作为Java语言中的分隔符。(对)

2-4文档注释符/**…*/是Java语言特有的注释符.(对)

2-5Java语言的基础数据类型有4种:整型、浮点型、字符型和布尔型。(对)

2-6Java语言的复合数据类型有3种:数组、类和包。(错)

2-7Java语言中,字节型与字符型是一样的。(错)

2-8Java语言是一种强类型语言,数据类型转换有两种:隐含转换和强制转换(对)

2-9数据由高类型转换到低类型时,采用强制转换,数据精度要受到损失。(对)

2-10布尔型常量可以自动转换为短整型常量。(错)

2-11Java语言使用的是Unicode字符集,每个字符在内在中占8位。(错)

2-12Java语言的字符串中不隐含结束符。(对)

2-13Java语言中定义符号常量使用final关键宇。(对)

2-14Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。(对)

2-15Java语言中只有无符号的字符型。(对)

2-16字符型变量中只存放一个字符。(对)

2-17定义变量时必须进行初始化,否则变量具有无意义的值。(错)

2-18若定义变量时不进行初始化,则该变量一定具有默认值。(错)

2-19Java语言中,变量出现的位置只有一种,即为类体内定义的成员变量。(错)

2-20Java语言规定在的程序块中不允许定义同名变量。(对)

2-21求余运算符%可用于整数和浮点数。(错)

2-22关系运算符组成的表达式是逻辑表达式。(错)

2-23逻辑运算符&和&&是没有区别的,都具有逻辑与的功能。(错)

2-24运算符&是逻辑与运算符还是按位与运算符取决于操作数的类型。(对)

2-25运算符“>>”和“>>>”都是右移运算符,其区别在于对向右移出的位是舍弃还是保留。(错)

2-26赋值运算符组成的赋值表达式中,通常将右边表达式的类型转换为左边变量的类型后再赋值。

(对)

2-27三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的(对)

2-28强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。(对)

2-29对象运算符instanccof是一个单目运算符,其表达式的值的类的对象。(错)

2-30内存分配运算符new可以为创建的数组分配内存空间,但不能为创建的变量分配空间。

2-31运算符的优先级中,最低的是三目运算符。(错)

2-32运算符的结合性中,除了三目运算符是自右向左外,其余都是自左向右。(错)

2-33关系表达式和逻辑表达式的值都是布尔型的。(对)

2-34赋值表达式的值不能是逻辑型的。(错)

2-35条件表达式的类型总是“?"和“:''之间的操作数的类型。(错)

2-36块语句可能嵌套,外层块语句定义的变显在内层块语句中是可见的(对)

2-37条件自勉中的v条件〉表达式可以是任何表达式。(错)

2-38在条件语句的嵌套结构中,一个if子句最多有一个else子句与它配对,而且一定是距离它最近

的。(对)

2-39开关语句中,case子句后面的〈语句序列》可以是块语句。(对)、

2-40循环语句中,(条件>表达式必须是逻辑型表达式。(对)

2-41在Java语言中,break语句不能作用在〈标号名〉的左边。(错)

2-42Java语言中,数组在静态和动态赋值时都判越界。(对)

2-43说明或声明数组时不分配内存大小,创建数组时分配内存大小。(对)

2-44基本数据类型的数组在创建时系统将指定默认值。(对)

2-45数组在定义时可以进行初始化,使用初始值表。(对)

2-46Java语言中数组元素只有下标表示,没有指针表示。(对)

2-47创建数组时,系统自动将数组元素个数存放在length变量中,可供用户对数组操作时使用。(对)

2-18字符串可分为字符串常量和字符串变量两种,它们都是对象“(对)

2-49Java语言中不使用字符数组存放字符串(对)

2-50下列创建字符串s的方法是错误的。(对)

charch[]={'m',m\,n\,n,};

chars[]=newchar(ch);

计算表达式的值,上机验证其结果题

2-1已知:inta=3,b=5;

求下列表达式的值:

(I)(a+b)%b

(2)b»a

(3)-b»>a

(4)A&b

(5)++a-b++

2-1已知:doublex=l.5,y=2.8;

求下列表达式的值:

(1)x++>y一

(2)x+4/5

(3)2*x==y

(4)y/6*6

(5)y+=x-=l

答案(1)false(2)1.5(3)false(4)2.8(5)3.3

2-3B^n:Booleanbl=true.b2=false;inta=6;

求值:

(I)bl&b2

(2)!bl&&b2||b2

(3)b2&bl|!b2

(4)bi!=b2

(5)!(a>6)&a6|b2=truc)

答案:(1)false(2)false(3)true(4)false(5)true

2-4已知:inta[]={3,5,7,9};

求值:

(1)a[0]+a[l]

(2)a[3]=6

(3)a[2]*a[3]>4*a[3]

(4)(a[0]+=a[lJ)+++a[2J

(5)for(inti=l;i<4;i++)

a[0]+=a[i];

答案:(1)8(2)6(3)true(4)16(5)24

分析程序输出结果题

2-1Exer2_l.java程序

publicclassExer2_l

publicstaticvoidmain(Stringargs[])

inti=3;

charc='p';

floatf-3.5f;

doubled=32.56;

shorts=25;

boolcab=truc;

stringst="new";

1

}

输出结果如下:

i+s=28

d+f-36.06

st+"year"=newyear

c+2=r

!b||b=truc

b?i:d=3.0

2-2Exer2_2.java程序

publicclassExer2_2

(

publicstaticvoidmain(Stringargs[J)

{

intsuina=O,sumb=O;

for(inta=0,b=0;a<5;a++,b++)

{

suma+=a;

sumb+=b;

)

I

)

输出结果如下:

suma=10,sunib=60

2-3Exer2_3.java程序

publicclassExer2_3

|

publicstaticvoidmain(Stringargs[l)

{

inti.j;

First_Loop:

for(i=l;i<50;i++)

{

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

if(i%j)==O

continueFirst_Loop;

输出结果如下:

3

5

7

11

13

17

19

23

29

31

37

41

43

47

2-4Exer2_4.java程序

publicclassExer2_4

(

publicstaticvoidmain(Stringargs||)

{

charch='Br;

switch(ch)

输出结果如F:

4

2-5Exer2_5.java程序

publicclassExer2_5

(

publicstaticvoidmain(Stringargs[])

{

inta=3,b=5;

if(a==3)

if(b==l)

a++;

else

b++;

intx=l,y=4;

if(x==2)

if(y==4)

x++;

else

y++;

输出结果如F:

3,5

1,5

2-6Exer2_6.java程序

publicclassExer2_6

|

publicslalicvoidiiiaiu(Sliiiigaigs[l)

{

inti;

for(i=l;i<10;i+-F)

(

if(i>2)

else

if(i==5)

break;

输出结果如下:

BA

BA

AB

AB

AB

i=5

2-7Exer2_7.java程序

publicclassExer2_7

(

publicstaticvoidmain(Stringargs[])

{

longjl=l,j2=l;

for(inti=5;i>=l;i--)

jl*=i;

for(inti=4;i>=l;i-)

j2*=i;

)

)

输出结果如下:

5!

4!=144

2-8Exer2_8.java程序

publicclassExer2_8

publicstaticvoidinain(Stringargs[])

{

Strings1="123456";

charch[]={,4,,,5','6';7';8');

doubled11;

d=ncwdoublcl5];

d[0]=L2f;d[l]=2.3f;d[2]=3.4f;d[3]=4.5f;d[4]=5.6f;

Strings2[]={"ab,',"cd";'ef'};

int[]a[]={{l,2,3(,{4,5,6},{7,8,9}};

fui(ingi-0;i<5;i++)

for(i=0;i<5;i++)

d[01+=d[il:

for(i=0;i<3;i++)

(

for(intj=0;j<3;j++)

输出结果如f:

s1=123456

.8

ab;cd;ef

123

456

789

2-9Exer2_9.java程序运行时命令行带有参数。运行格式如下:

C:\Exer2_951100/

程序Exer2_9.java内容如下:

publicclassExer2_8

(

publicstaticvoidmain(Stringargs[])

{

intsum=0;

ingi=Integer.parseIn((args[O]);

intn=lntcger.parsclnt(args[l]);

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

sum=+=i;

)

)

输出结果如下:

sum=3775

2-10Exer2_10.java程序

publicclassExer2_8

publicstaiicvoidmain(Stringargs[])

A:

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

(

for(ingj=0;j<8;j++)

(

continjeA;

)

)

}

)

输出结果如下:

*

*

*

*

*

编程题

2-11按下列要求写出Java谱言的语句。

(1)定义一个double型变量d,并赋初值为2.5。

该语句如下:

Doubled=2.5;

(2)在屏幕上输出显示(1)中所定义的变量d的值。

该语句如下:

(3)定义一个字符型一维数组ch它的大小为10o

该语句如下:

charch[]=newchar[10];

(4)定义一个字符串常量si,其字符串为“abc”

Stringsl="abc";

(5)定义一个boolean型变量b,赋初值为【rue。

booleanb=true

(6)在屏幕上输出显示26个大写字母。

实现该功能的程序段如下:

for(charch='a';ch<='z';ch++)

(7)将代数式s=a2+2ab+b2写成一个赋值表达式语句。

该语句如下:

s=a*a+2*a*b+b*b

(8)a,b和c是3个int型变量,用条件表达式写出a>b时,c值为a,否则c值为b。

inta,b,c;

:

:

if(a>b)

c=a;

else

c=b;

(9)用for循环语句实现下述循环:循环变量m为10C,每次m循环减10:当m等于50时退出

循环,循环体为空语句。

for(intm-l(X);m一一50;m--l0)

(10)使用带标号名的break语句,在双重for循环自勉结构中,一次从内层循环跳出外层循环。

该功能程序段如下:

F:fbr(ingi=...)

fbr(ingj=...)

breakF;

2-12编程求出一个一维int型数组的元素最大值、最小值、平均值和所有元素之和。

程序内容如下:

importjava.io.*;

publicclasspro2_l

{

publicstaticvoidmain(Stringargs[])

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

intmax,min,sum;

max=min=a[0];

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

if(max<a[i])

max=a[i];

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

if(min>a[i])

min=a[i];

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

sum+=a[i];

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

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

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

importjava.io.*;

publicclasspro2_2

publicstaticvoidmain(Stringargs[])

doubled=23.56cl;

dl=d;

intn-O;

while(true)

(

d--;

if(d<0)

break;

n++

)

)

}

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

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

f|=f2=l,fn=fn-l+fn-2(n>3)

程序内容如下:

importjava,io.*;

publicclasspro2_3

{

publicstaticvoidmain(Stringargs[J)

[

intfl,f2;

fl=f2=l

for(inti=l;i<=5:i++)

(

“+f2+"”);

fl+=f2;

f2+=fl;

)

这里假定生成Fiblnacci数列的前20项,可根据需要生成若干项。运行该程序后的输出结果如下:

11235813213455

2-5编程求出自然数101-205中的所有素数。

程序内容如下

importjava.io.*;

publicclasspro2_4

|

publicsta(icvoidmain(Stringargs[l)

intn=0;

booleanprime=false;

for(inti=101;i<=205;i+=2)

{

prime=true;

for(intj=2;j<i;j++)

if(j%j==O)

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,6()〜69分为C,<60分为D。

程序内容如下:

importjava.io.*;

publicclasspro2_5

(

publicslaticvoidmain(Stringargs[])

{

inta=Interger.valueOf(args[()].intValue());

intn=a/5:

if(a<60)

n=ll;

switch(n)

{

case20:case19:case18:case17:

case16:casel5:case14:

case!3:casel2:

case11:

)

1

I

输入的分数是通过命令行参数来实现的。假定命令参数为73时,运行该程序输出结果如下:

B

2-7百鸡百钱问题。公鸡每只3无,母鸡每只5无,小鸡3只一元,用100元买100只鸡,公鸡、

母鸡、小鸡应各买多少?

程序内容如下:

importjava.io.*;

publicclasspro2_6

(

publicstaticvoidmain(Stringargs[])

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

for(intb=l;b<21:b++)

if(3*a+5*b+(l(M)-a-b)/3==1()()&&(l()()-a-b)%3==0)

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

公鸡=4,母鸡=12,小鸡二84

公鸡二11,母鸡=8,小鸡=81

公鸡二18,母鸡-4,小鸡二78

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

***

*****

**木***本

********

程序内容如下:

importjava.io.*;

publicclasspro2_7

(

publicsta(icvoidmain(Stringargs[])

{

for(inti=l;i<i+9;i++)

(

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

if(j<=9-i)

else

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

选择题

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

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

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

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

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

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

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

B.了类继承了父类的所有成员

C.Java语言支持单重继承和多重继承

D.Java语言通过接口可使子类使用多个父类的成员

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

A.Java语言允许运算符重载

B.Java语言允许方法重载

CJava语言允许变量覆盖

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

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

A.publicB.默认C.tinalD.abstract

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

A.privaleB.publicC.默认D.protected

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

修饰符是(D)

A.publicB.privateC.默认D.protected

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.子类继承父类的所有成员

C.Java语言要求一个子类只有一个父类

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

312卜.列关于子类继承父类的成员的描述中,错误的是(A)

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

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

类执行自己的操作中,使用自己定义的变量

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

员方法

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

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

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

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

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

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

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

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

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

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

A.java.awtB.java.langC.java.util

3-16卜.列是系统提供的常用的类,所有类的父类的类是(B)

A.MathB.ObjectC.SystemD.String

判断题

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

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

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

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

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

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

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

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

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

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

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

3-l2Java语言中,方法调用一律都是传址的引用调用。(错)

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语言中,类的继承是可以传递的。(对)

327Java语言中,构造方法是可以继承的“(错)

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

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

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

数顺序)寻找匹配方法。

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

量,又称为(最终变量)。

3-8创建一个对象时,通常要包含3项内容:(说明对象),给对象分配空间,(对象初始化)。

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

3-10Java语言中,定义子类时,使用关键字(extends)来给出父类名。如果没有指出父类,则该类的默

认父类为(object类)。

3-11系统规定:表示当前类的构造方法用(this()),表示直接父类的构造方法用(super1))。

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

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

3-14包名与子包名之间用(.)分隔。加载包的关键字是(import)。

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

分析程序的输出结果题

3-IExer3_l.java

classA

intx,y,z,sum;

A(inti,intj,intk)

x=i;

y=j;

z=k;

sum=x+y+z;

}

booleansarneA(Aal)

if((al.x==x)&(al.y==y)&(al.z==z))

returntrue;

else

returnfalse;

)

booleansameS(Aal)

{

if(al.sum==sum)

returntrue;

else

returnfalse;

)

)

ulassExcr3_l

I

publicstaticvoidmain(Stringargs[l)

{

Aa=newA(2,5,8);

Ab=newA(2,5,8);

Ac=newA(5,8,2);

}

}

输出结果如下:

true

false

true

true

3-2Exer3_2.java

classB

(

voidmcth(inti)

voidmeth(doublei)

I

classExer3_2

(

publicstaticvoidmain(Stringargs[J)

(

inti=8;

doubled=6.8:

shorts=10;

fioalf=5.3f;

byteb=9;

charc='a';

Bob=newB();

ob.meth(i);

ob.meth(d);

ob.mcth(s);

ob.me(h((inl)f);

ob.meth(b);

ob.meth(c);

)

)

输出结果如下:

Int:8

Double:6.8

Int:l()

Int:5

lnt:9

Int:97

3-3Excr3_3.java

classC

(

intc;

C(inta)

{

c=O;

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

c+=i;

)

C(Cb)

{c=b.c;}

I

classExer3_3

(

publicstaticvoidmain(Stringargs[J)

(

Cc1=ncwC(6);

Cc2=newC(ne\vC(4));

}

)

输出结果如下:

cl:2l

c2:10

3_4Excr3_4.java

classD

{

staticintd=100;

staticintmeth()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论