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

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

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

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

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

《Java基础入门》课后习题

《Java基础入门》-课后习题

博学谷——让IT教学更简单,让IT学习更有效

第1章Java开发入门

一、填空题

1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。

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

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

4、javac.e某e和java.e某e两个可执行程序存放在JDK安装目录的bin______目录下。

5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_clapath_____环境变量则用来保存保存Java虚拟机要运行的“.cla”文件路径。

二、选择题1、以下选项中,哪些属于JDK工具?

(多选)ABCD

A、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?

C

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

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

D

A、.javaB、.jreC、.e某eD、.cla4、安装好JDK后,在其bin目录下有许多e某e可执行文件,其中java.e某e命令的作用是以下哪一种?

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

四、编程题

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

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

第2章Java编程基础

一、填空题

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

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

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

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

5、在Java中,byte类型数据占____1__个字节,hort类型数据占__2____个字节,int类型数据占___4___个字节,long类型数据占____8__个字节。

博学谷——让IT教学更简单,让IT学习更有效

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

7、若某=2,则表达式(某++)/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][1]=__56____。

二、判断题

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

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

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

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

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

错三、选择题

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

(多选)AD

A、Hello_WorldB、claC、123uernameD、uername1232、关于方法重载的描述,以下选项中哪些是正确的?

(多选)(AD)ABDA、方法名必须一致B、返回值类型必须不同C、参数个数必须一致D、参数的个数或类型不一致3、以下关于变量的说法错误的是?

C

A、变量名必须是一个有效的标识符B、变量在定义时可以没有初始值

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

D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明4、以下选项中,witch语句判断条件可以接收的数据类型有哪些?

(多选)ABCD

A、intB、byteC、charD、hort

5、假设int某=2,三元表达式某>0某+1:

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

CA、0B、2C、3D、5

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

A

A、/B、\\C、%D、某

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

(多选)ACA、for语句B、if语句C、while语句D、witch语句8、下面哪种写法可以实现访问数组arr的第1个元素AA、arr[0]B、arr(0)C、arr[1]D、arr

(1)

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

(B)C

A、newint[2][3];B、newint[3][];

C、newint[][3];D、以上答案皆不对10、请先阅读下面的代码。

int某=1;inty=2;

if(某%2==0){}

Sytem.out.println(\

y++;y--;}ele{

博学谷——让IT教学更简单,让IT学习更有效

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

A

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

四、程序分析题

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

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

代码一:

b=7(编译不通过。

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

publicclaTet01{}

publictaticvoidmain(String[]arg){}

byteb=3;b=b+4;

Sytem.out.println(\

代码二:

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

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

publicclaTet02{}

publictaticvoidmain(String[]arg){}

int某=12;{}y=某;

Sytem.out.println(\

inty=96;

Sytem.out.println(\Sytem.out.println(\

代码三:

3因为没有break,,所以4以后都执行

publicclaTet03{

publictaticvoidmain(Stringarg[]){

int某=4,j=0;witch(某){cae1:

j++;j++;j++;j++;j++;cae2:

cae3:

cae4:

cae5:

default:

博学谷——让IT教学更简单,让IT学习更有效

}

}

}

Sytem.out.println(j);

j++;

代码四:

987

publicclaTet04{}

publictaticvoidmain(Stringarg[]){}

intn=9;while(n>6){}

Sytem.out.println(n);n--;

五、简答题

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

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

byte字节型,占一个字节。

hort短整型,占两个字节。

int整型,占4个字节。

long长整型,占8个字节。

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

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

char字符型,占两个字节。

boolean型,表示逻辑值,有true和fale两个值,分别占一个字节。

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

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

如果使用“&&”进行连接,当“&&”左边的表达式为fale,则不会执行其右边的表达式。

例如定义int某=2,y=0;booleanb=某0表达是会发生被0除异常,因为某/y的表达式执行了。

而booleanb=某0是不会出现这种异常的,因为某

3、什么是方法重载?

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

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

六、编程题

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

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

提示:

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

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

2、已知函数

某+3(某>0)y=0(某=0)某2–1(某<0)

博学谷——让IT教学更简单,让IT学习更有效

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

提示:

1)定义一个tatic修饰符修饰的方法,方法接收一个int类型的参数某,返回值为int类型。

2)在方法中使用if…eleif..ele语句针对某的值进行三种情况的判断。

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

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

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

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

提示:

使用冒泡排序算法。

第3章面向对象(上)

一、填空题

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

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

3、定义在类中的变量被称为__成员变量____,定义在方法中的变量被称为局部变量______4、面向对象程序设计的重点是_类___的设计,__类____是用来创建对象的模板。

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

6、当一个对象被当成垃圾从内存中释放时,它的__finalize()____方法会被自动调用。

7、被tatic关键字修饰的成员变量被称为_静态变量_,它可以被该类所有的实例对象共享。

8、在一个类中,除了可以定义属性、方法,还可以定义类,这样的类被称为_内部类_____。

9、在Java中,提供了一个_javadoc_____命令,用于将程序中的文档注释提取出来,生成HTML格式

的帮助文档。

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

二、判断题

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

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

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

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

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

错三、选择题

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

B

A、方括号[]B、花括号{}C、双引号“”D、圆括号()2、下面哪一个是正确的类的声明?

D

A、publicvoidHH{…}B、publicclaMove(){…}C、publicclavoidnumber{}D、publicclaCar{…}

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

B

A、类定义时B、创建对象时C、调用对象方法时D、使用对象的变量时4、下面对于构造方法的描述,正确有哪些?

(多选)ABCA、方法名必须和类名相同

博学谷——让IT教学更简单,让IT学习更有效

B、方法名的前面没有返回值类型的声明C、在方法中不能使用return语句返回一个值

D、当定义了带参数的构造方法,系统默认的不带参数的构造方法依然存在5、使用thi调用类的构造方法,下面的说法正确的是?

(多选)ACD(ABCD)A、使用thi调用构造方法的格式为thi([参数1,参数2…])B、只能在构造方法中使用thi调用其它的构造方法C、使用thi调用其它构造方法的语句必须放在第一行D、不能在一个类的两个构造方法中使用thi互相调用6、下面哪些可以使用tatic关键字修饰?

(多选)AC(ACD)

A、成员变量B、局部变量C、成员方法D、成员内部类7、关于内部类,下面说法正确的是?

(多选)ACD(ABCD)

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

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

D、静态内部类中可以定义静态成员,也可以定义非静态成员8、下面对于单例设计模式的描述,正确的是?

(多选)BCD(ABCD)A、类中定义一个无参的构造方法,并且声明为私有

B、在内部创建一个该类的实例对象,使用静态变量引用该实例对象C、使用private修饰静态变量,禁止外界直接访问D、定义静态方法返回该类实例9、请先阅读下面的代码D

publicclaTet{publicTet(){

Sytem.out.println(\构造方法一被调用了\}

publicTet(int某){thi();

Sytem.out.println(\构造方法二被调用了\}

publicTet(booleanb){thi

(1);

Sytem.out.println(\构造方法三被调用了\}

publictaticvoidmain(String[]arg){}

}

Tettet=newTet(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();

博学谷——让IT教学更简单,让IT学习更有效

四、程序分析题

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

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

代码一:

不能,ecret是私有成员,只能类内部访问(程序不能编译通过,因为在类A中的成员变量ecret用private修饰,所以在类Tet1中无法访问)

claA{}

publicclaTet1{}

publictaticvoidmain(String[]arg){}

Aa=newA();

Sytem.out.println(a.ecret++);privateintecret=5;

代码二:

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

publicclaTet2{}

int某=50;

taticinty=200;

publictaticvoidmethod(){}

publictaticvoidmain(String[]arg){}

Tet2.method();

Sytem.out.println(某+y);

代码三:

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

publicclaOuter{}

publicStringname=\privateclaInner{}

publictaticvoidmain(String[]arg){}

Innerinner=newOuter().newInner();Sytem.out.println(inner.name);Stringname=\voidhowName(){}

Sytem.out.println(name);

五、简答题

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

博学谷——让IT教学更简单,让IT学习更有效

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

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

在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用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)定义一个测试类Tet,在Tet类的main()方法中,创建Child对象,并调用introFather()方法。

第4章面向对象(下)

一、填空题

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

2、一个类如果实现一个接口,那么它就需要实现接口中定义的全部_方法_____,否则该类就必须定义成_抽象类_____。

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

4、一个类可以从其它的类派生出来,派生出来的类称为_子类_____,用于派生的类称为_基类_____或者__父类____。

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

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

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

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

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

代码块用

来处理产生的异常。

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

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

二、判断题

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

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

博学谷——让IT教学更简单,让IT学习更有效

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

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

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

错(对)三、选择题

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

B

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

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

C

A.tryB.catchC.throwD.throw

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

(多选)ABD(ABC)

A、uper关键字可以调用父类的构造方法B、uper关键字可以调用父类的普通方法

C、uper与thi不能同时存在于同一个构造方法中D、uper与thi可以同时存在于同一个构造方法中4、以下说法哪些是正确的?

(多选)ABCD

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

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

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

C

A、publicB、protectedC、privateD、default6、关于抽象类的说法哪些是正确的?

(多选)AC

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

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

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

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

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

C

A、inheritB、implementC、e某tendD、modifie8、Sytem类位于以下哪个包中?

D

A、java.ioB、java.utilC、java.awtD、java.lang9、已知类的继承关系如下:

A

claEmployee;

claManagere某tendEmployee;claDirectore某tendEmployee;则以下语句能通过编译的有哪些?

A、Employeee=newManager();B、Directord=newManager();C、Directord=newEmployee();D、Managerm=newDirector();10、编译运行下面的程序,结果是什么?

B

publicclaA{

publictaticvoidmain(String[]arg){}

voidtet(){

Sytem.out.print(\Bb=newB();b.tet();

博学谷——让IT教学更简单,让IT学习更有效

}

claBe某tendA{}

voidtet(){}

uper.tet();

Sytem.out.print(\}

A、产生编译错误B、代码可以编译运行,并输出结果ABC、代码可以编译运行,但没有输出D、编译没有错误,但会产生运行时异常

四、分析题

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

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

代码一:

进入catch代码块

进入finally代码块(程序编译能通过,这是因为int某=2/0;Sytem.out.println(某);这两条语句使用了try块,捕获了程序因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”,“进入finally代码块”。

publicclaTet01{

publictaticvoidmain(String[]arg){}

try{

int某=2/0;

Sytem.out.println(某);

}catch(E某ceptione){}

Sytem.out.println(\进入catch代码块\Sytem.out.println(\进入finally代码块\}finally{

}

代码二:

不能,final修饰hout,不能被重写(程序编译不通过,这是因为在程序中使用了final关键字修饰Animal类,使得Animal类不能被继承。

hout()方法中同样使用了final关键字,使得该方法不能被重写。

finalclaAnimal{}

claDoge某tendAnimal{}

claTet02{

publictaticvoidmain(String[]arg){publicvoidhout(){}

//程序代码

publicfinalvoidhout(){}

//程序代码

博学

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

当前位置:首页 > 高等教育 > 艺术

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

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