Java程序设计教程 课后答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Java程序设计教程第3版课后答案第一章填空题:1、Java源程序文件的扩展名是_java_;Java源程序经编译后生成Java字节码文件,其扩展名是_class_。2、在Java语言中,将源代码翻译成_java字节码文件_时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。3、一个Application源程序文件名为MyPro.java,如果使用Sun公司的Java开发工具SDK编译该源程序文件并使用其虚拟机运行这个程序的字节码文件,应该顺序执行如下两个命令:_javacMyPro.java_、_javaMyPro_。4.已知:inta=8,b=6;则:表达式++a-b++的值为_3_。5.已知:booleanb1=true,b2;则:表达式!b1&&b2||b2的值为_false_。6.表达式(18-4)/7+6的运算结果是_8_。7、表达式52&&88&&2336的运算结果是_false_。思考题:1、源程序是什么?答:源程序文件的三要素:一、以package语句开始的包声明语句为可选,若有,只能有一个且必须是第一句,若没有,此文件将放到默认的当前目录下二、以import语句开始的类引入声明语句,数量可以是任意个三、class定义和interface定义中,由public开始的类定义只能有一个,且要求源程序文件名必须与public类名相同,Java语言对字符的大小写敏感2、编译的作用是什么?答:用Java语言编辑的源程序的执行方法是采用先经过编译器编译、再利用解释器解释的方式来运行的。3、什么是Java的byte-codes,它的最大好处是什么?答:Java源程序经过编译器编译,会被转换成一种我们将它称之为“字节码(byte_codes)”的目标程序。“字节码”的最大特点便是可以跨平台运行。4、机器语言程序、高级语言程序以及可表示成Java字节码程序之间的区别是什么?答:机器语言是二进制编码表示,可以用机器直接运行。高级语言是贴近自然语言的,必须编译或解释才能让计算机运行,并且程序运行依赖该语言处理系统。可表示成java字节码的程序必须经过编译产生字节码程序,java字节码程序可以实现跨平台运行。5、试简述J2SE、J2ME与J2EE的区别。答:(1)JavaME——JavaMicroEdition,用于嵌入式Java消费电子平台,其内存资源受限。不论是无线通讯、手机、PDA等小型电子装置都可采用其作为开发工具及应用平台。(2)JavaSE——JavaStandardEdition,是Java最通行的版本,是用于工作站、PC机的Java标准平台。(3)JavaEE——JavaEnterpriseEdition,可扩展的企业应用Java平台,它提供了企业e-Business架构及WebServices服务,其开放的标准和优越的跨平台能力使其适于开发大规模的、分布式联网应用程序以及基于Web的应用程序。6、练习使用浏览器查看JavaAPI文档。7、SDK的编译命令是什么?答:javac8、Java标识符的命名有什么规定?答:一、用字母、下划线“_”或“$”作为开头字符,但数字不能作为变量的开头字符;二、标识符中间不能使用空格;三、不能使用Java的操作符,如“+”、“-”、“*”、“/”等;四、用户自定义标识符不能使用Java的关键字;五、严格区分大小写,即:my_var和My_var将被认为是两个不同的标识符。例:className、$member、_variable、var_num、varObj1合法1var、case、are&非法9、如何正确地定义变量?变量命名遵循标识符的命名规则约定:变量名是以小写字母开头,而类名是以一个大写字母开头的如果变量名包含了多个单词,而每个单词要组合在一起,则在每个单词的第一个字母大写,比如isVisible。下划线(_)可以处在变量的任何地方,但是一般地它只用在标识符常量中分离单词,因为标识符常量的常量名都是用大写字母的,利用下划线可以看得更清楚。一般来说,变量名命名要见名知义,不宜太简单,但也不宜过长。10、当Java程序的表达式中有类型不符合的情况时,有哪些规则可以处理类型转换?答:Java允许它的用户有限度地进行数据类型转换处理。转换的方式可分为“自动类型转换”和“强制类型转换”两种。1.自动类型转换:整型、实型和字符型数据需要进行混合运算时,首先需要把不同类型的数据转化为同一类型,然后才能进行运算。转换时,系统将按照数据类型的表示范围由小到大的转换原则自动进行。数据类型的表示范围由小到大的顺序依次为:2.强制类型转换:当表示范围大的数据类型要转换成表示范围小的数据类型时,需要用到强制类型转换。第二章一、思考题:1、什么是结构化程序设计?答:结构化程序设计有三种基本的程序流程结构:顺序、选择、循环。2、使用while和do...while循环有什么不同?答:dowhile循环语句功能与while语句类似,但dowhile语句的循环终止判断是在循环体之后执行,即,它总是先执行一次循环体,然后判断条件表达式的值是否为真,若为真,则继续执行循环体;否则循环到此结束。与dowhile语句所不同的是,while语句如果开始时的判别表达式为假,则可能一次都不执行循环体而直接结束循环。3、简述break和continue语句的区别答:在Java中可以用break语句强行退出循环,继续执行循环外的下一个语句如果break出现在嵌套循环中的内层循环,则break语句只会退出当前的一层循环,以for循环流程为例:在循环主体中有break语句时,当程序执行到break,即会退出循环主体,到循环外层继续执行。程序运行到continue语句时,就会停止循环体中剩余语句的执行,而回到循环的开始处继续执行循环。4、一维数组与二维数组如何声明、赋值及输出?答:一维数组声明语法格式如下:type数组名[]=newtype[个数n]对一维数组的赋值有如下方法:1.在声明时直接赋值,语法格式为:type数组名[]={数值1,数值2,……,数值n};2、在赋值声明的时候,不需要给出数组的长度,编译器会视所给的数值个数来决定数组的长度,例如:intmm[]={2,4,6,8,10,12,14,16,18,20}若是对数组的元素进行有规律的赋值,则可以使用循环的方式进行要输出使用数组里的元素,可以通过利用其下标来达到目的,只有一个下标值的数组就称为一维数组。Java数组的下标编号从0开始,如果声明的数组元素个数为n,则数组元素下标的变化只能是0~n-1。在Java中,因为数组元素可以声明成任何类型,因此如果一维数组的元素还是一维数组的话,这种数组就被称为二维数组。二维数组声明语法格式如下:type数组名[][]=newtype[个数][个数];对于二维数组元素的赋值,同样可以在声明的时候进行:例如:intssa[][]={{20,25,26,22},{23,24,20,28}};二维数组赋值及输出可以借助一维数组。二、填空题1、下面的程序运行后,其输出结果是_#*#*#_publicclassYuedu1{publicstaticvoidmain(String[]args){inti;for(i=1;i6;i++){if(i%2==1){System.out.print(#);continue;}System.out.print(*);}System.out.println();}}2、下面的程序经运行后,其输出结果是(x1=10x2=6)publicclassYuedu3{publicstaticvoidmain(String[]args){intx,y;System.out.print(x1=+add(4,6));System.out.print(x2=+add(3,add(1,2)));}staticintadd(intx,inty){returnx+y;}}3、下面的程序经运行后,其输出结果是_72___publicclassYuedu4{publicstaticvoidmain(String[]args){System.out.print(fun(4));}staticintfun(intn){intt;if((n==0)||(n==1))t=3;elset=n*fun(n-1);returnt;}}4、下面的程序经运行后,其输出结果是_y=1x=0_publicclassYuedu1{publicstaticvoidmain(String[]args){intx,y;x=y=0;do{y++;x*=x;}while((x0)&&(y5));System.out.println(y=+y+x=+x);}}第三章一、思考题1、类和对象之间的关系答:对象是客观世界中的某个具体事物。类是具有共同特性和行为的事物的抽象,是一种特殊数据类型。在类中包含了数据和与数据有关的操作(方法)。对象是类的实例。2、举例说明类(静态)成员的特点答:1.特点一:静态变量的值是共享。比如说A类中有个静态变量V_A,A类创建了两个实例a,b。如果给实例a的变量V_A赋值,如a.V_A=1。那么这时候查看实例b.V_A变量的值也为1,也就是说A对象实例化的两个类共享同一个变量值。2.特点二:不需要对象实例化就可以使用。比如A类中的静态变量V_A可以用A.V_A的形式使用。3、Java中的包和Windows的文件夹有什么关系?答:目录层次结构非常类似,包对应着Windows文件系统的目录层次结构。4、类的成员的访问权限和包的关系答:类的成员的权限用权限关键字设置,类的成员的权限和包的关系如下:权限:Public、protected、默认的同一包允许访问。权限:private同一包也不允许访问。权限:Public、protected的不同包子类允许访问权限:默认、private的不同包子类不允许访问5、方法的重载和覆盖的区别答:重载与覆盖的区别1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。3、覆盖要求参数列表相同;重载要求参数列表不同。4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。二、填空题1、在声明一个类变量时,前面必须要加上___static____修饰符2、__import___语句可以导入Java的实用包中的所有类3、方法的覆盖是___后期___绑定,方法的重载是___前期____绑定4、写出一个表达式:输出角度30°的余弦值__Math.cos(30*3.14/180)__5、为类Class1创建一个静态整型变量s_data:_staticints_data_。6、写出抽象类IamAbstract的类头定义语句:_publicabstraactclassIamAbstract_。7、定义一个抽象方法abstractMethod,没有形式参数,返回值为布尔型变量:_publicabstractbooleanabstractMethod()_。8、写出定义最终类IamFinal的类头定义语句:_finalclassIamFinal_。9、定义浮点常量PI,其取值为3.1415926:_floatPI=3.1415926f_。三、选择题1、有关类的说法正确的是()A.类具有封装性,所以类的数据是不能被访问的B.类具有封装性,但可以通过类的公共接口访问类中的数据C.声明一个类时,必须用public修饰符D.每个类中,必须有main方法,否则程序无法运行2、将类的成员的访问权限设置为默认的,则该成员能被()A.同一包中的类访问B.其他包中的类访问C.所有的类访问B.所有的类的子类访问3、下面是正确的方法重载的是()A.intfun(inta,floatb){}floatfun(inta

1 / 9
下载文档,编辑使用

©2015-2020 m.111doc.com 三一刀客.

备案号:赣ICP备18015867号-1 客服联系 QQ:2149211541

×
保存成功