《Java基础入门》课后习题.docx

上传人:b****7 文档编号:25636873 上传时间:2023-06-11 格式:DOCX 页数:65 大小:278.36KB
下载 相关 举报
《Java基础入门》课后习题.docx_第1页
第1页 / 共65页
《Java基础入门》课后习题.docx_第2页
第2页 / 共65页
《Java基础入门》课后习题.docx_第3页
第3页 / 共65页
《Java基础入门》课后习题.docx_第4页
第4页 / 共65页
《Java基础入门》课后习题.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

《Java基础入门》课后习题.docx

《《Java基础入门》课后习题.docx》由会员分享,可在线阅读,更多相关《《Java基础入门》课后习题.docx(65页珍藏版)》请在冰豆网上搜索。

《Java基础入门》课后习题.docx

《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

AJava编译器B、Java运行工具C、Java文档生成工具D、Java打包工具

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

C

A、机器语言B、汇编语言C、高级语言D、以上都不对

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

D

A.javaB、.jreC、.exeD、.class

4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?

B

AJava文档制作工具B、Java解释器C、Java编译器DJava启动器

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的区别。

四、编程题

使用记事本编写一个HelloWorld程序,在dos命令行窗口编译运行。

请按照题目的要求编写程序并

给出运行结果。

第2章Java编程基础

一、填空题

1、Java中的程序代码都必须在一个类中定义,类使用__class关键字来定义。

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

3、Java中的注释可分为三种类型,分别是_单行注释//_、__多行注释_/**/_、文档/注释**

*/。

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

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

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

6、在逻辑运算符中,运算符—&_和—&&_用于表示逻辑与,__|和表示逻辑或。

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

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

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

10、若inta[3][2]={{123,345},{34,56},{34,56}},贝Ua[2][1]=__56。

二、判断题

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

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

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

4、“/*…*/”中可以嵌套“//”注释,但不能嵌套“/*…*/”注释。

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

三、选择题

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

(多选)AD

AHello_WorldB、classC、123usernameD、username123

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

(多选)(ADABD

A、方法名必须一致B、返回值类型必须不同

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

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

C

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

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

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

D在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明

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

(多选)ABCD

AintB、byteC、charD、short

5、假设intx=2,三元表达式x>0?

x+1:

5的运行结果是以下哪一个?

C

A0B、2C、3D、5

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

A

A/B、\C、%D、*

7、下列语句哪些属于循环语句?

(多选)AC

Afor语句B、if语句C、while语句D、switch语句

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

A

Aarr[0]B、arr(0)C、arr[1]D

Anewint[2][3];B

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

intx=1;

inty=2;

if(x%2==0){

y++;

}else{

y--;

}

System.out.println("y="+y);

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

A

A、1B、2C、3D、switch语句

四、程序分析题

阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。

否则请说明编译失败的原因。

代码一:

b=7(编译不通过。

int值4和b相加时,由于变量b的类型为byte,取值范围没有int类型大,存不下int类型的值,因此编译不通过)

publicclassTest01{

publicstaticvoidmain(String[]args){

byteb=3;

b=b+4;

System.out.println("b="+b);

}

}

代码二:

不能,y只在訂有效(编译不通过。

这是因为y是在最里层的代码块中定义的一个变量,只

有在那个代码)

publicclassTest02{

publicstaticvoidmain(String[]args){

intx=12;

{

inty=96;

System.out.println("xis"+x);

System.out.println("yis"+y);

}

y=x;

System.out.println("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++;

}

System.out.println(j);

}

}

代码四:

9

8

7

publicclassTest04{

publicstaticvoidmain(Stringargs[]){intn=9;

while(n>6){

System.out.println(n);

n--;

五、简答题

short短整型,占两个字节。

int整型,4个字节。

double双精度浮点型,占8true和false两个值,分别占一个字

1、请列举Java语言中的八种基本数据类型,并说明每种数据类型所占用的空间大小。

Java语言的八种基本数据类型有:

byte字节型,占一个字节。

占4个字节。

long长整型,占8个字节。

float单精度浮点型,占个字节。

char字符型,占两个字节。

boolean型,表示逻辑值,有节。

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

如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。

如果使用

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

例如定义intx=2,y=

0;booleanb=x0表达是会发生被0除异常,因为x/y的表达式执行了。

而boolean

b=x0是不会出现这种异常的,因为x

3、什么是方法重载?

方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。

用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。

六、编程题

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

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

提示:

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

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)根据判断结果分别执行不同的表达式,并将结果赋予变量y。

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中,提供了一个」avadoc命令,用于将程序中的文档注释提取出来,生成HTML格式

的帮助文档。

10、所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用.private关键字来修饰。

二、判断题

1、在定义一个类的时候,如果类的成员被private所修饰,该成员不能在类的外部被直接访问。

2、Java中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。

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

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

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

三、选择题

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

B

A、方括号[]B、花括号{}C、双引号“”D、圆括号()

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

D

B、publicclassMove()

DpublicclassCar

B

A、publicvoidHH{…}

C、publicclassvoidnumber{}

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

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

 

10、Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,以下四

种方式哪一种是正确的?

D

A、Innerin=newInner()B、Innerin=newOuter」nner();

C、Outer」nnerin=newOuter.Inner();D、Outer」nnerin=newOuter().newInner();

四、程序分析题

阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。

否则请说明编译失败的原因。

代码一:

不能,secret是私有成员,只能类内部访问(程序不能编译通过,因为在类A中的成员变量

secret用private修饰,所以在类Test1中无法访问)

classA{

privateintsecret=5;

}

publicclassTest1{

publicstaticvoidmain(String[]args){

Aa=newA();

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

}

}

代码二:

250(程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量X。

publicclassTest2{

intx=50;

staticinty=200;

publicstaticvoidmethod(){

System.out.println(x+y);

}

publicstaticvoidmain(String[]args){

Test2.method();

}

}

代码三:

Inner为私有内部类,不允许外部访问(inner)Innerinner=newOuter().newInner();

可以用外部类访问内部类

publicclassOuter{

publicStringname="Outer";

privateclassInner{

Stringname="inner";

voidshowName(){

System.out.println(name);

}

}

publicstaticvoidmain(String[]args){

Innerinner=newOuter().newInner();System.out.println(inner.name);

}

}

五、简答题

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

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

而普通方法只有在使用的时候才会被调用。

在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值

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

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

六、编程题

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

要求如下:

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

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

3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值

4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,一个使用有参的构造方法,在构造方法中给姓名和成绩赋值

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

要求如下:

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

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

name属性。

3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather()方法。

第4章面向对象(下)

一、填空题

1、在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为继承

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

」mport关键字。

,用于派生的类称为_基类

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

义成_抽象类。

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

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

或者__父类。

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

6、定义一个Java类时,如果前面加使用_final关键字修饰,那么该类不可以被继承。

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

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

9、异常的捕获通常由try、catch两部分组成,_try代码块用来存放可能发生异常,_catch

代码块用

来处理产生的异常。

10、在Java语言中,要想是将一个已编译的类打包成jar文件,可以使用的命令是」ar-cvf

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

二、判断题

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

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

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

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

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

错(对)

三、选择题

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

B

A、多重B、单一C、双重D、不能继承

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

C

A.tryB.catchC.throwsD.throw

3、关于super关键字以下说法哪些是正确的?

(多选)ABD(ABC

Asuper关键字可以调用父类的构造方法

Bsuper关键字可以调用父类的普通方法

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

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

4、以下说法哪些是正确的?

(多选)ABCD

AJava语言中允许一个类实现多个接口

BJava语言中不允许一个类继承多个类

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

DJava语言中允许一个接口继承一个接口

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

C

ApublicB、protectedC、privateD、default

6、关于抽象类的说法哪些是正确的?

(多选)AC

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

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

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

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

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

C

AinheritsB、implementsC、extendsD、modifies

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

D

Ajava.ioB、java.utilC、java.awtD、java.lang

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

A

classEmployee;

classManagerextendsEmployee;

classDirectorextendsEmployee;

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

AEmployeee=newManager();B、Directord=newManager();

CDirectord=newEmployee。

;D、Managerm=newDirector();

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

B

publicclassA{

publicstaticvoidmain(String[]args){

Bb=newB();

b.test();

}

voidtest(){

System.out.print("A");

}

}

classBextendsA{

voidtest(){

super.test();

System.out.print("B");

}

}

A、产生编译错误B、代码可以编译运行,并输出结果AB

C代码可以编译运行,但没有输出D、编译没有错误,但会产生运行时异常

四、分析题

阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。

如果不能编译通过,请说明原因。

代码一:

进入catch代码块

进入finally代码块(程序编译能通过,这是因为intx=2/0;System.out.println(x);这两条语

句使用了try块,捕获了程序因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch

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

当前位置:首页 > 高等教育 > 经济学

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

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