Java程序设计课后练习答案.docx

上传人:b****6 文档编号:11916916 上传时间:2023-06-03 格式:DOCX 页数:50 大小:51.39KB
下载 相关 举报
Java程序设计课后练习答案.docx_第1页
第1页 / 共50页
Java程序设计课后练习答案.docx_第2页
第2页 / 共50页
Java程序设计课后练习答案.docx_第3页
第3页 / 共50页
Java程序设计课后练习答案.docx_第4页
第4页 / 共50页
Java程序设计课后练习答案.docx_第5页
第5页 / 共50页
Java程序设计课后练习答案.docx_第6页
第6页 / 共50页
Java程序设计课后练习答案.docx_第7页
第7页 / 共50页
Java程序设计课后练习答案.docx_第8页
第8页 / 共50页
Java程序设计课后练习答案.docx_第9页
第9页 / 共50页
Java程序设计课后练习答案.docx_第10页
第10页 / 共50页
Java程序设计课后练习答案.docx_第11页
第11页 / 共50页
Java程序设计课后练习答案.docx_第12页
第12页 / 共50页
Java程序设计课后练习答案.docx_第13页
第13页 / 共50页
Java程序设计课后练习答案.docx_第14页
第14页 / 共50页
Java程序设计课后练习答案.docx_第15页
第15页 / 共50页
Java程序设计课后练习答案.docx_第16页
第16页 / 共50页
Java程序设计课后练习答案.docx_第17页
第17页 / 共50页
Java程序设计课后练习答案.docx_第18页
第18页 / 共50页
Java程序设计课后练习答案.docx_第19页
第19页 / 共50页
Java程序设计课后练习答案.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java程序设计课后练习答案.docx

《Java程序设计课后练习答案.docx》由会员分享,可在线阅读,更多相关《Java程序设计课后练习答案.docx(50页珍藏版)》请在冰点文库上搜索。

Java程序设计课后练习答案.docx

Java程序设计课后练习答案

《Java程序设计》课后练习答案

第一章Java概述

一、选择题

1.(A)是在Dos命令提示符下编译Java程序的命令,(B)是运行Java程序的命令。

A.javac

B.java

C.javadoc

D.javaw

2.(D)不是Java程序中有效的注释符号。

A.//

B./**/

C./***/

D.*/*/

3.(B)不是Java语言的特点。

A.面向对象

B.自动检查语法错误

C.跨平台

D.解释执行

4.Java编译器会将Java程序转换为(C)

A.可执行代码

B.目标代码

C.字节码

D.机器代码

5.Java源文件的扩展名是(D)

A..classB..jarC..javD..java

二、简答题

1、Java的跨平台的含义是什么?

为什么Java可以跨平台?

Java语言的一个非常重要的特点就是平台无关性。

它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。

Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。

JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。

Java编程人员在编写完Java程序后,Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。

字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。

以下图展示了Java程序从编译到最后运行的完整过程。

2、简述Java语言的特点

Java具有以下特点:

1)、简单性

Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:

指针和结构体),因此很容易入门和掌握。

2)、可靠性和安全性

Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。

3)、面向对象

Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。

4)、平台无关和解释执行

Java语言的一个非常重要的特点就是平台无关性。

它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。

Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。

Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。

字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。

下图展示了Java程序从编译到最后运行的完整过程。

5)、分布式

分布式包括数据分布和操作分布,而Java支持WWW客户机/服务器计算模式,因此也支持这两种分布式。

6)、多线程

Java在两方面支持多线程。

一方面,Java环境本身就是多线程的。

若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。

如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。

三、综合编程题

1、请编写一个简单的Java程序能够输出“这是我的第一个Java程序”。

(注意为程序添加合适的注释和文档注释)。

/**

*第一个java程序

*/

publicclassDemo{

/**

*main方法,程序的起点

*/

publicstaticvoidmain(String[]args){

//向控制台输出

("这是我的第一个Java程序");

}

}

 

第二章Java语法基础

一、选择题

1.下面哪个单词是Java语言的关键字(B)?

A.c2cX.}#f%W3O9@$@7cDoubleB.thisC.stringD.bool

2.下面属于Java关键字的是(D)。

A.NULLB.IFC.DoD.goto

3.在启动Java应用程序时可以通过main()方法一次性地传递多个参数。

如果传递的参数有多个,可以用空格将这些参数分割;如果某一个参数本身包含空格,可以使用(B)把整个参数引起来。

A.单引号B.双引号

4.下面哪个是Java语言中正确的标识符(BD)。

A.5xB.$xC.abc@D.com

5.Java语言中,下列标识符错误的是(D)。

A._*A,\/A"|%labcB.abcC.ABCD.5abc

6.在Java中,整型常量不可以是(A)。

A.!

r;\*z&V'D0T0`)_doubleB.LongC.intD.byte

7.在Java中,不属于整数常量的是(D)。

A.:

n"h:

R-C+D100B.100LC.0x100AD.6.0f

8.下面哪个语句能定义一个字符变量chr(B)。

A.charchr=’abcd’;B.charchr=’\uabcd’;

C.charchr=”abcd”;D.charchr=\uabcd;

9.下面哪个是对字符串s1的不正确定义(CD)。

A.Strings1=”abcd”;B.Strings1;

C.2V2X2U0F4\*x)Strings1=‘abcd\0’;D.Strings1=”\abcd”;

10.下面哪个范围是char型的取值范围(C)。

A.-256~255B.-(2^15)~(2^15)-1C.\u0000’~‘\uffff’D.0~32767

11.下面哪条语句不能定义一个float型的变量f1(ABD)。

A.-y"c!

B&Q$@)m'W-pfloatf1=3.1415E10B.floatf1=3.14C.floatf1=3.1415FD.f1=3.14F

12.下列运算结果为float的是(C)。

A.100/10B.100*10C.100.0+10D.100-10

13.数组中可以包含什么类型的元素(D)。

A.int型B.string型C.数组D.以上都可以

14.Java中定义数组名为xyz,下面哪项可以得到数组元素的个数(B)。

A.xyz.length()B.xyz.lengthC.len(xyz)D.ubound(xyz)

15.下面哪条语句定义了3个元素的数组(A)。

A.int[]a={20,30,40};B.inta[]=newint(3);C.int[3]array;D.int[]arr;

二、简答题

1、Java有哪些基本的数据类型?

写出这些基本数据类型所占用的最大空间(用字节描述)。

(1)数字型(number),具体又分为:

a.整型(integers),整型又包括:

字节整数(byte,8bits)

短整数(short,16bits)

整数(int,32bits)

长整数(long,64bits)

b.实型(realnumbers),具体又分为:

单精度(float,32bits)

双精度(double,64bits)

(2)字符型(char,16-bitUnicode字符)

(3)布尔型(boolean)。

2、说明Java字符编码的类型与特点。

Java字符编码的类型为Unicode,具有以下特点:

(1)Unicode是16比特的字符编码,其支持当前世界上绝大多数的语言;

(2)Unicode给每个字符提供了一个唯一的编码表示,不论是什么平台、程序或语言;

(3)Windows系统(Windows2000版本)、Java、XML、LDAP等已支持Unicode;

(4)Unicode实现了ISO/IEC10646标准;

3、写出Java中六个常用的转义字符。

\b退格

\t制表符

\n换行(Newline)

\r回车(Carriagereturn)

\'单引号

4、下面的几个标示符哪些是正确的,哪些是错误的,如果是错误的,请说明原因。

MyClass,_isHis,3JavaProgram,_$asdf,Java-Visual-Machine

MyClass:

正确,符合标识符的组成规则。

_isHis:

正确,符合标识符的组成规则。

3JavaProgram:

错误,因为第1个符号不能为数字。

_$asdf:

正确,符合标识符的组成规则。

Java-Visual-Machine:

错误,标识符不能为保留字。

5、说出常量与变量的定义并举例说明。

常量是指程序执行过程中,值保持不变的量,类型划分如下:

ø整型常量

ø实型常量

ø布尔型常量

ø字符型常量

ø字符串常量

如整型常量:

 

起始

最大整数(正)

最大长整数(正)

举例

十进制

0,1~9

2147483647

9223372036854775807L

23,+567,

-12,0,1234

八进制

0

0777777777777777777777L

034,0175,

-0777L

十六进制

0x

0x7FFFFFFF

0x7FFFFFFFFFFFFFFFL

0xFF,0x45L

变量是指在程序执行过程中,值可以改变的量,类型划分为:

整型变量、实型变量、字符型变量、字符串变量、布尔变量等。

如:

intx=2,就定义了一个整型变量x并且赋值为2。

6、什么是强制类型转换?

并说明其运用场合。

显型类型转换是强制类型转换,它是一种窄化转换(narrowingconversion),如:

doublea=1.5;

floatb=a;

("b="+b);

编译:

"possiblelossofprecision"

数据精度丢失,数据丢失。

强制类型转换一般运用在

ø二元运算符的二个操作数类型不同

ø表达式值的类型与变量的类型不同

7、描述Java程序的构成。

如何判断Java程序的主类?

下面的程序有哪些错误并改正,该程序的源代码应当保存为什么名字的文件?

PublicclassMyClass{

Publicstaticvoidmain(){

(“mynameis…”);

}

(“theend!

”);

}

Java程序的主类中包含main(),而其它类中没有;该程序的源代码应当保存为MyClass.java。

另外该程序中包含以下的错误:

(1)Public的第一个字符应当小写;

(2)定界符“”应当改为"";

(3)printIn应该为println\

(4)(“theend!

”);代码应放在方法中

8、结构化程序设计有哪三种基本流程?

分别对应Java中的那些语句?

结构化程序设计有下面三种基本流程:

顺序结构语句,条件选择语句,循环控制语句,跳转/转向语句。

条件选择语句对应Java中的if,if-else,嵌套的if-else,条件运算符,switch-case。

循环控制语句对应Java中的for,while,do-while语句。

跳转/转向语句对应Java中的contonue,break,return语句。

9、在一个循环中使用break,continue,return的差别。

break:

跳出(中止)循环

continue:

结束本次循环

return:

方法返回

10、数组的定义,特点与分类。

如何进行数组的初始化?

数组的定义:

数组是一组同类型的变量或对象的集合。

数组的特点:

数组的类型可以是基本类型,或类和接口;数组中每个元素的类型相同;引用数组元素通过数组名[下标];数组下标(数组的索引)从0开始。

数组是一种特殊的对象(Object),可以定义类型(声明);创建数组(分配内存空间);释放(Java虚拟机完成)。

数组分类:

一维数组、多维数组。

第三章面向对象的实现

一、选择题

1.在Java中,用package说明一个包时,该包的层次结构必须是(B)。

A.与文件的结构相同B.与文件的目录层次相同

C.与文件的类型相同D.与文件大小相同

2.下列构造方法的调用方式中,正确的是(C)。

A.按照一般方法调用B.由用户直接调用

C.可通过new自动调用D.被系统调用

3.int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是(D)。

A.publicintMAX_LENGTH=100B.finalintMAX_LENGTH=100

C.publicconstintMAX_LENGTH=100D.publicfinalintMAX_LENGTH=100

4.在Java中,以下叙述不正确的是(B)

A.构造方法名与类名相同。

B.构造方法不是用来完成初始化的。

C.构造方法由new操作调用,而不能被用户直接调用。

D.构造方法没有返回类型。

5.在Java中,下面的叙述哪个是不正确的?

(D)

A.类的静态方法可以在该类的对象被创建前调用

B.类的静态方法不能访问该类的非静态方法

C.abstract修饰符可以出现在类或方法的前面,但不能出现在变量之前

D.final修饰符可以出现在类或变量之前,但不能出现在方法之前

6.在Java里,下列选项(D)不是实现面向对象思想的机制。

A.封装B.继承

C.多态D.数据类型转换

7.类Worker是类Person的子类,Worker构造方法中有一句"super();",该语句是什么意思?

(C)

A.调用类Worker中定义的super()方法

B.调用类Person中定义的super()方法

C.调用类Person的构造函数

D.语法错误

8.给定Java程序,如下:

编译运行Test.java,结果是(C)。

publicclassTest{

privatestaticfinalintcounter=10;

publicstaticvoidmain(String[]args){

(counter++);

}

}

A.10B.11

C.编译错误D.运行时出现异常

9.给定如下Java代码,编译时会在(D)出现错误。

(只选择一项)

classParent{

}

classChildextendsParent{

publicstaticvoidmain(String[]args){

Parentp1=newChild();//第一行

Parentp2=newParent();//第二行

Childc1=newChild();//第三行

Childc2=newParent();//第四行

}

}

A.第一行B.第二行

C.第三行D.第四行

10.在Java中,某类方法使用下列(BC)访问修饰符修饰后,可以被其的子类访问。

A.privateB.protected

C.publicD.friendly

11.在Java语言中,如果你有下面的类定义:

abstractclassShape{

abstractvoiddraw();

}

classSquareextendsShape{

}

以下描述正确的是(B)

A.一切成功编译

B.Shape可以编译,Square不能编译

C.Square可以编译,Shape不能编译

D.Square,Shape都不能编译

12.分析下列Java代码:

classA{

publicstaticvoidmain(String[]args){

method();

}

staticvoidmethod(){

System.out.println("Hello");

System.exit(0);

("good-bye");

}

}

编译运行后,输出结果是(A)。

A."Hello"B."good-bye"

C."Hello"后面是"good-bye"D.代码不能编译

13.下表是final修饰符与变量、方法、类等一起作用的结果的对应表,但是对应关系存在错误,请选择正确的对应关系。

(C)

概念作用

1变量A不能再产生子类

2方法B一旦赋值,就不能更改

3类C不能在子类中覆盖

A.1-A2-B3-C

B.1-C2-A3-B

C.1-B2-C3-A

D.1-C2-B3-A

14.有以下程序:

publicclassConstOver{

publicConstOver(intx,inty,intz){}

}

下面哪个方法重载了上面的ConstOver构造方法?

(B)

A.protectedintConstOver(){}

B.privateConstOver(intz,inty,bytex){}

C.publicobjectConstOver(intx,inty,intz){}

D.publicvoidConstOver(bytex,bytey,bytez){}

15.有以下程序:

classBaseClass{

privatefloatx=1.0f;

publicfloatgetVar()(returnx;)

}

classSubclassextendsBaseClass{

privatefloatx=2.0f;

//insertcodehere

}

下面哪个方法加到程序中的“//insertcodehere”位置是有效的重定义父类的方法。

(B)

A.protectedfloatgetVar(){returnx;}

B.publicfloatgetVar(){returnx;}

C.protectedfloatdoublegetVar(){returnx;}

D.publicfloatgetVar(floatf){returnf;}

16.指出下列程序运行的结果(B)

publicclassExample{

Stringstr=newString("good");

char[]ch={'a','b','c'};

publicstaticvoidmain(String[]args){

Exampleex=newExample();

ex.change(ex.str,ex.ch);

(ex.str+"and");

(ex.ch);

}

publicvoidchange(Stringstr,charch[]){

str="testok";

ch[0]='g';

}

}

A.goodandabcB.goodandgbc

C.testokandabcD.testokandgbc

17.下列哪些语句关于内存回收的说明是正确的?

(B)

A.程序员必须创建一个线程来释放内存;

B.内存回收程序负责释放无用内存;

C.内存回收程序允许程序员直接释放内存;

D.内存回收程序可以在指定的时间释放内存对象。

18.创建一个名为“MyClass.java”的文件,该文件中只有一个可被整个工程中的所有类访问的类,那么该类的正确声明应为:

(C)

A.privateclassMyClassextendsObjectB.classTestClassextendsObject

C.publicclassMyClassD.publicclassTestClass

19.下列叙述中,错误的是(A)

A.内部类的名称与定义它的类的名称可以相同

B.内部类可用abstract修饰

C.内部类可作为其他类的成员

D.内部类可访问它所在类的成员

20.用于在子类中调用被重写的父类方法的关键字是(B)

A.this

B.super

C.This

D.Super

21.下面程序输出结果是(A)

publicclassDelta{

staticbooleanfoo(charc){

(c);

returntrue;

}

publicstaticvoidmain(String[]argv){

inti=0;

for(foo('A');foo('B')&&(i<2);foo('C')){

i++;

foo('D');

}

}

}

A.ABDCBDCB

B.ABCDABCD

C.编译错误

D.运行时异常

22.下列(B)修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问。

A.privateB.无修饰符

C.publicD.protected

23.给出下列代码,如何使成员变量m被方法fun()直接访问?

(C)

classTest{

privateintm;

publicstaticvoidfun(){

...

}

}

A.将privateintm改为protectedintm

B.将privateintm改为publicintm

C.将privateintm改为staticintm

D.将privateintm改为intm

24.已知有下列类的说明,则下列哪个语句是正确的?

(A)

publicclassTest{

privatefloatf=1.0f;intm=12;

staticintn=1;

publicstaticvoidmain(String[]args){

Testt=newTest();

}

}

A.t.f;B.this.n;

C.Test.m;D.Test.f;

25.下列代码的执行结果是(A)

publicclassTest{

publicvoidaMethod(){

staticinti=0;i++;(i);

}

publicstaticvoidmain(String[]args){

Testtest=newTest();

test.aMethod();

}

}

A.编译错误B.0

C.1D.运行成功,但不输出

26.若特快订单是一种订单,则特快订单类和订单类的关系是(C)

A.使用关系B.包含关系

C.继承关系D.无关系

27.下列代码中,将引起一个编译错误的行是(D

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2