《Java基础入门》课后习题和答案_第1页
《Java基础入门》课后习题和答案_第2页
《Java基础入门》课后习题和答案_第3页
《Java基础入门》课后习题和答案_第4页
《Java基础入门》课后习题和答案_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

《Java基础入门》课后习题及答案

《Java基础入门》课后习题

第1章Java开发入门

一、填空题

1、Java的三大体系分别是_JavaSE、_JavaEE、_JavaME。

2、Java程序的运行环境简称之为JRE。

3、编译Java程序需要使用_javac命令。

4>javac.exe和java,exe两个可执行程序存放在JDK安装目录的

bin目录下。

5,path环境变量用来存储Java的编诺和运行工具所在的路径,

而_classpath环境变量则用

来保存保存Java虚拟机要运行的“.class”文件路径。

二、选择题

1、以下选项中,哪些属于JDK工具?〔多选)ABCD

A、Java编译器

B、Java运行工具

C、Java文档生成工具

D、Java打包工具

2、Java属于以下哪种语言?C

A、机器语言

B、汇编语言

C、高级语言

D、以上都不对

3、下面哪种类型的文件可以在Java虚拟机中运行?D

A、.java

B、.jre

C、.exe

D、.class

4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中

java.exe命令的作用是以下哪一种?B

A、Java文档制作工具

B、Java解释器

C、Java编译器

D、Java启动器

5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前

路径下,都可以直接使用javac和java

命令,需要将环境变量path设置为以下哪个选项?B

A.d:\jdk;B.d:\jdk\bin;C.d:\jre\bin;D.d:\jre;

二、问答题

1、简述Java的特点。

面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、

动态性等。

2、简述JRE与JDK的区别。

JRE(JavaRuntimeEnvironment,Java运行时环境),它相当于

操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java

基础类,例如,10类、GUI控件类、网络类等。JRE是提供给普通用户

使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机

上必须且只需安装JRE。

JDK(JavaDevelopmentKit,Java开发工具包),它包含编译工

具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是

1、Java中的程序代码都必须在一个类中定义,类使用_class关

键字来定义。

2、布尔常量即布尔类型的两个值,分别是_true和_flase。

3、Java中的注释可分为三种类型,分别是一单行注释//_、—多

行注释_/**/_、文档/注释***/O

4、Java中的变量可分为两种数据类型,分别是_基本数据类型和

_引用数据类型。

5、在Java中,byte类型数据占1_个字节,short类型数据占

_2个字节,int类型数据占4

个字节,long类型数据占8—个字节。

6、在逻辑运算符中,运算符&和&&用于表示逻辑与,和

_11表示逻辑或。

7、若x=2,则表达式(x++)/3的值是_0。

8、若inta=2;a+=3;执行后,变量a的值为_5。

9、若int[]a={12,45,34,46,23};,则a[2]=_34。

10、若inta[3][2]={{123,345},{34,56},{34,56}},则

a[2][l]=56o

二、判断题

1、Java语言不区分大小写。错

2、0xC5表示的是一个十六进制整数。对

3、continue语句只用于循环语句中,它的作用是跳出循环。错

4、"/时・*/”中可以嵌套“〃”注释,但不能嵌套”/*…*/”注

释。对

5、-5%3的运算结果是2。错

三、选择题

1、以下选项中,哪些属于合法的标识符?(多选)AD

A,nello_World

B、class

C、123username

D、username123

2、关于方法重载的描述,以下选项中哪些是正确的?(多选)

(AD)ABI)

A、方法名必须一致

B、返同值类型必须不同

C、参数个数必须一致

D、参数的个数或类型不一致

3、以下关于变量的说法错误的是?C

A、变量名必须是一个有效的标识符

B、变量在定义时可以没有初始值

C、变量一旦被定义,在程序中的任何位置都可以被访问

D、在程序中,可以将一个byte类型的值赋给一个int类型的变

量,不需要特殊声明

4,以下选项中,switch语句判断条件可以接收的数据类型有哪

些?(多选)ABCD

A、int

B、byte

C、char

I)、short

5、假设intx二2,三元表达式x>0?x+l:5的运行结果是以下哪

一个?C

A、0

B、2

C、3

D、5

6、下面的运算符中,用于执行除法运算是哪个?A

A、/

B、\

C,%

D、*

7、下列语句哪些属于循环语句?(多选)AC

for语句

B、if语句

C、while语句

D、switch语句

8、下面哪种写法可以实现访问数组arr的第1个元素?A

A、arr[0]

B、arr(0)

C、arr[l]

D、arr(1)

9、以下哪个选项可以正确创建一个长度为3的二维数组?(B)C

A、newint[2][3];

B、newint[3][];

C>newint[][3];

D、以上答案皆不对

10、请先阅读下面的代码。

intx=1;

inty=2;

if(x%2==0){

y++;

}else{

y—;

)

V+y);

上面一段程序运行结束时,变量y的值为下列哪一项?A

A、1

B、2

C、3

D、switch语句

四、程序分析题

阅读下面的程序,分析代码是否能够编译通过,如果能编译通

过,请列出运行的结果。否则请说明编译失败的原因。

代码一:b=7(编译不通过。int值4和b相加时,由于变量b的类

型为byte,取值范围没有int类型大,存不下int类型的值,因此编

译不通过)

publicclassTestOl{

publicstaticvoidmain(String[]args){

byteb=3;

b=b+4;

〃b=〃+b);

)

)

代码二:不能,y只在{}有效(编译不通过。这是因为y是在最

里层的代码块中定义的一个变量,只有在那个代码)

publicclassTest02{

publicstaticvoidmain(String[]args){

intx=12;

(

inty=96:

〃xis〃+x);

〃yis〃+y);

y=x;

〃xis〃+x);

)

)

代码三:3因为没有break,,所以4以后都执行

publicclassTest03{

publicstaticvoidmain(Stringargs[]){

intx=4,j=0;

switch(x){

case1:

j++;

case2:

j++;

case3:

j++;

case4:

j++;

case5:

j++;

default:

j++;

)

9

}

)

代码四:

9

8

7

publicclassTest04

publicstaticvoidmain(Stringargs[]){

intn=9;

while(n>6){

9

n—;

五、简答题

1、请列举Java语言中的八种基本数据类型,并说明每种数据类

型所占用的空间大小。

Java语言的八种基本数据类型有:byte字节型,占一个字节。

short短整型,占两个字节。int整型,占4个字节。long长整型,占

8个字节。float单精度浮点型,占4个字节。double双精度浮点型,

占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,

有true和false两个值,分别占一个字节。

2、简述&&与&的区别并举例说明。

如果使用在表达式之间进行连接,那么无论任何情况,

两边的表达式都会参与计算。如果使用

“&&”进行连接,当“&&”左边的表达式为false,则不会执行其

右边的表达式。例如定义intx=2,y=0;booleanb=x<y&x

/2>0表达是会发生被0除异常,因为x/y的表达式执行了。而

booleanb=x<y&x/2>0是不会出现这种异常的,因为x<y

为false,表达式x/y不会执行

3、什么是方法重载?

方法重载指的是在一个类中可以声明多个同名的方法,而方法中

参数的个数或者数据类型不一致。调用这些同名的方法时,JVM会根据

实际参数的不同绑定到不同的方法。

六、编程题

请按照题目的要求编写程序并给出运行结果。

1、请编写程序,实现计算“1+3+5+7+…+99”的值。

提示:

1)使用循环语句实现自然数C99的遍历。

2)在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果

是就累加,否则不加。

2、已知函数

x+3(x>0)

y=0(x=0)

x2-1(x<0)

请设计一个方法实现上面的函数,根据传入的值x的不同,返回

对应的y值。

提示:

1)定义一个static修饰符修饰的方法,方法接收一个int类型的

参数x,返回值为int类型。

2)在方法中使用if…elseif..else语句针对x的值进行三种情

况的判断。

3)根据判断结果分别执行不同的表达式,并将结果赋予变量yo

4)在方法的最后返回y的值。

5)在main方法中调用设计好的方法,传入一个int型的值,将方

法的返回值打印。

3、请编写程序,实现对数组{25,24,12,76,101,96,28}的排序。

提示:使用冒泡排序算法。

第3章面向对象(上)

一、填空题

1、面向对象的三大特征是封装性_、_继承性和—多态性。

2、在Java中,可以使用关键字_new来创建类的实例对象。

3、定义在类中的变量被称为_成员变量,定义在方法中的变量

被称为局部变量

4、面向对象程序设计的重点是一类的设计,—类是用来创建对

象的模板。

5、在非静态成员方法中,可以使用关键字_this—访问类的其它

非静态成员。

6、当一个对象被当成垃圾从内存中释放时,它的_finalize()

方法会被自动调用。

7、被static关键字修饰的成员变量被称为一静态变量它可以

被该类所有的实例对象共享。

8、在一个类中,除了可以定义属性、方法,还可以定义类,这样

的类被称为一内部类。

9、在Java中,提供了一个Javadoc命令,用于将程序中的文档

注释提取出来,生成HTML格式

的帮助文档。

10、所谓类的封装是指在定义一个类时,将类中的属性私有化,

即使用private关键字来修饰。

二、判断题

1、在定义一个类的时候,如果类的成员被private所修饰,该成

员不能在类的外部被直接访问。对

2、Java中的每个类都至少有一个构造方法,一个类中如果没有定

义构造方法,系统会自动为这个类

创建一个默认的构造方法。对

3、声明构造方法时,不能使用private关键字修饰。错

4、类中static修饰的变量或方法,可以使用类名或对象的引用

变量访问。对

5、方法内部类中不能访问外部类的成员变量。错

三、选择题

1、类的定义必须包含在以下哪种符号之间?B

A、方括号口

R、花括号{}

C、双引号

D、圆括号()

2、下面哪一个是正确的类的声明?D

A、publicvoidHH{…}

B、publicclassMove(){…}

C^publicclassvoidnumber(}

D、publicclassCar{…}

3、在以下什么情况下,构造方法会被调用?B

A、类定义时

B、创建对象时

C、调用对象方法时

D、使用对象的变量时

4、下面对于构造方法的描述,正确有哪些?(多选)ABC

A、方法名必须和类名相同

B、方法名的前面没有返回值类型的声明

C、在方法中不能使用return语句返回一个值

D、当定义了带参数的构造方法,系统默认的不带参数的构造方法

依然存在

5、使用this调用类的构造方法,下面的说法正确的是?(多

选)ACD(ABCD)

A、使用this调用构造方法的格式为this([参数1,参数2…])

B、只能在构造方法中使用this调用其它的构造方法

C、使用this调用其它构造方法的语句必须放在第一行

D、不能在一个类的两个构造方法中使用this互相调用

6、下面哪些可以使用static关键字修饰?(多选)AC(ACD)

A、成员变量

B、局部变量

C、成员方法

D、成员内部类

7、关于内部类,下面说法正确的是?(多选)ACD(ABCD)

A、成员内部类是外部类的一个成员,可以访问外部类的其它成员

B、外部类可以访问成员内部类的成员

C、方法内部类只能在其定义的当前方法中进行实例化

D、静态内部类中可以定义静态成员,也可以定义非静态成员

8、下面对于单例设计模式的描述,正确的是?(多选)BCD(ABCD)

A、类中定义一个无参的构造方法,并且声明为私有

B、在内部创建一个该类的实例对象,使用静态变量引用该实例对

C、使用private修饰静态变量,禁止外界直接访问

D、定义静态方法返回该类实例

9,请先阅读下面的代码D

publicclassTest(

publicTest(){

〃构造方法一被调用了〃):

)

publicTest(intx){

this();

〃构造方法二被调用了〃);

publicTest(booleanb){

this⑴;

〃构造方法三被调用了〃);

)

publicstaticvoidmain(String[]args){

Testtest=newTest(true);

)

)

上面程序的运行结果为下列哪一项?

A、构造方法一被调用了

B、构造方法二被调用了

C、构造方法三被调用了

D、以上三个选项之和

10、Outer类中定义了一个成员内部类Inner,需要在main。方法

中创建Inner类实例对象,以下四种

方式哪一种是正确的?D

A、Innerin=newInner()

B>Innerin=newOuter.Inner();

C>Outer.Innerin=newOuter.Inner();

D、Outer.Innerin=newOuter().newInner();

四、程序分析题

阅读下面的程序,分析代码是否能够编译通过,如果能编译通

过,请列出运行的结果。否则请说明编译失败的原因。

代码一:不能,seer6t是私有成员,只能类内部访问(程序不能编

译通过,因为在类A中的成员变量secret用private修饰,所以在类

Testi中无法访问)

classA{

privateintsecret=5;

puhlic.classTast.l{

publicstaticvoidmain(String[]args){

Aa=newA();

代码二:250(程序不能编译通过,因为在静态方法method。中不

能访问非静态成员变量x。)

publicclassTest2{

intx=50;

staticinty=200;

publicstaticvoidmethod(){

)

publicstaticvoidmain(String[]args){

Test2.method();

代码三:Inner为私有内部类,不允许外部访问(inner)Inner

inner=newOuter。.newInner();可以用外部类访问内部类

publicclassOuter{

publicStringname二〃Outer”;

privateclassInner{

Stringname="inner”;

voidshowNameO{

publicstaticvoidmain(String[]args){

Innerinner=newOuter().newInner0;

五、简答题

1、构造方法和普通的成员方法有什么区别?

构造方法是类的一个特殊成员,它会在类实例化对象时被自动调

用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要

求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方

法中不能使用return语句返回一个值

2、单例设计模式具备哪些特点?

单例模式可以保证在整个程序运行期间针对该类只存在一个实例

对象。

六、编程题

1、请按照以下要求设计个学生类Student,并进行测试。

要求如下:

1)Student类中包含姓名、成绩两个属性

2)分别给这两个属性定义两个方法,一个方法用于设置值,另一

个方法用于获取值.

3)Student类中定义一个无参的构造方法和一个接收两个参数的

构造方法,两个参数分别为姓名和成绩属性赋值

4)在测试类中创建两个Student对象,一个使用无参的构造方

法,然后调用方法给姓名和成绩赋值,一个使用有参的构造方法,在

构造方法中给姓名和成绩赋值

2、定义一个Father和Child类,并进行测试。

要求如下:

1)Father类为外部类,类中定义一个私有的String类型的属性

name,name的值为“zhangjun”。

2)Child类为Father类的内部类,其中定义一个introFather()

方法,方法中调用Father类的name属性。

3)定义一个测试类Test,在Test类的main()方法中,创建

Child对象,并调用introFather()方法。

第4章面向对象(下)

一、填空题

1、在Java语言中,允许使用已存在的类作为基础创建新的类,

这种技术我们称为继承。

2、一个类如果实现一个接口,那么它就需要实现接口中定义的全

部—方法,否则该类就必须定

义成抽象类。

3、在程序开发中,要想将一个包中的类导入到当前程序中,可以

使用_import关键字。

4、一个类可以从其它的类派生出来,派生出来的类称为—子类,

用于派生的类称为—基类

或者—父类。

5、JDK中定义了大量的异常类,这些类都是—Exception类的子类

或者间接子类。

6、定义一个Java类时,如果前面加使用_final关键字修饰,那

么该类不可以被继承。

7、如果子类想使用父类中的成员,可以通过关键字_super引用

父类的成员。

8、在Java语言中,所有的类都直接或间接继承自.Object类,

9、异常的捕获通常由try、catch两部分组成,_try代码块用来

存放可能发生异常,_catch

代码块用

来处理产生的异常。

10、在Java语言中,要想是将一个已编译的类打包成jar文件,

可以使用的命令是_jar-cvf,要

想在命令行窗口运行jar文件,可以使用的命令是—java-jar。

二、判断题

1、抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象

方法。错

2、Java中被final关键字修饰的变量,不能被重新赋值。对

3、不存在继承关系的情况下,也可以实现方法重写。错

4、package声明语句应当为Java源文件中的第一条语句。对

5、接口中只能定义常量和抽象方法。错(对)

三、选择题

1、在类的继承关系中,需要遵循以下哪个继承原则?B

A、多重

B、单一

C、双重

D、不能继承

2、在Java语言中,以下哪个关键字用于在方法上声明抛出异

常?C

A.try

B.catch

C.throws

D.throw

3、关于super关键字以下说法哪些是正确的?(多选)ABD

(ABC)

A、sup6r关键字可以调用父类的构造方法

B、super关键字可以调用父类的普通方法

C>super与this不能同时存在于同一个构造方法中

D,super与this可以同时存在于同一个构造方法中

4、以下说法哪些是正确的?(多选)A3CD

A、Java语言中允许一个类实现多个接口

B、Java语言中不允许一个类继承多个类

C、Java语言中允许一个类同时继承一个类并实现一个接口

D、Java语言中允许一个接口继承一个接口

5、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本

类被访问?C

A、public

B、protected

C>private

D、default

6、关于抽象类的说法哪些是正确的?(多选)AC

A、抽象类中可以有非抽象方法。

B、如果父类是抽象类,则子类必须重写父类所有的抽象方法。

C、不能用抽象类去创建对象。

D、接口和抽象类是同一个概念。

7、在Java中,要想让一个类继承另一个类,可以使用以下哪个

关键字?C

A、inherits

B、implements

C、extends

I)、modifies

8、System类位于以卜哪个包中?D

A、java,io

B、java,util

C、java,awt

D、http:〃www..com/doc/c05496400.html,ng

9、已知类的继承关系如下:A

classEmployee;

classManagerextendsEmployee;

classDirectorextendsEmployee;

则以下语句能通过编译的有哪些?

A^Employeee=newManager();

Directord二newManager();

C>Directord=newEmployee();

D、Managerm=newDirector();

10、编译运行下面的程序,结果是什么?B

publicclassA{

publicstaticvoidmain(String[]args){

Bb=newB();

b.test();

)

voidtest(){

〃A〃);

)

)

classBextendsA{

voidtest(){

super,test();

〃B〃);

A、产生编译错误

B、代码可以编译运行,并输出结果AB

C、代码可以编译运行,但没有输出

D、编译没有错误,但会产生运行时异常

四、分析题

阅读下面的程序,分析代码是否能编译通过,如果能编译通过,

请列出运行的结果。如果不能编译通过,请说明原因。

代码一:进入catch代码块

进入finally代码块(程序编译能通过,这是因为intx=2/

0;;这两条语句使用了"y块,捕获了程序因为除以0而产生的异常

情况,之后程序会继续向下执行,输出“进入catch代码块”,“进

入finally代码块”。)

publicclassTestOl{

publicstaticvoidmain(String[]args){

try(

int.x=2/0;

}catch(Exceptione){

〃进入catch代码块〃);

}finally{

〃进入finally代码块〃);

代码二:不能,final修饰shout,不能被重写(程序编译不通过,

这是因为在程序中使用了final关键字修饰Animal类,使得Animal

类不能被继承。shout。方法中同样使用了final关键字,使得该方法

不能被重写。)

finalclassAnimal(

publicfinalvoidshout(){

//程序代码

classDogextendsAnimal{

publicvoidshout(){

//程序代码

classTest02(

publicstaticvoidmain(String[]args){

Dogdog=newDog();

代码三:动物叫!

汪汪

classAnimal

voidshout(){

〃动物叫!〃);

classDogextendsAnimal{

voidshout(){

super,shout();

〃汪汪……〃);

)

)

publicclassTest03{

publicstaticvoidmain(String[]args){

Animalanimal=newDog();

animal,shout();

代码四:不能,Dog没有实现Animal所有方法,Dog为抽象类不

能创建对象(程序编译不通过,因为接口中定义的方法不能有方法体,

所以定义的eat()方法是错误的。接口中的方法必须在子类中全部实

现,由于run()方法在子类中并没有重新实现,所以这也是错误的。)

interfaceAnimal{

voidbreathe();

voidrun();

voideat(){};

)

classDogimplementsAnimal{

publicvoidbreathe(){

'Tmbreathing")

)

publicvoideat(){

I'meathing")

publicclasstest04{

publicstaticvoidmain(String[]args){

Dogdog=newDog();

dog.breathe();

dog.eat();

)

)

五、简答题

1、什么是方法重写?

在继承关系中,子类的方法与父类的某一方法具有相同的方法

名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方

法。

2、什么是多态?

多态意味着一个对象有着多种形态,可以在特定的情况下,表现

不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使

用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序

会得到不同的运行效果。

3、抽象类和接口的区别?

在Java中,使用abstract关键字修饰的类称之为抽象类。抽象

类是不

温馨提示

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

评论

0/150

提交评论