java程序设计教程第二版课后答案_第1页
java程序设计教程第二版课后答案_第2页
java程序设计教程第二版课后答案_第3页
java程序设计教程第二版课后答案_第4页
java程序设计教程第二版课后答案_第5页
免费预览已结束,剩余8页可下载查看

付费下载

下载本文档

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

文档简介

1、javajava 程序设计教程第二版课后答案 【篇一:java程序设计课后习题参考答案】 参考答案 武汉大学出版社 习题1参考答案 1 .java语言的特点有哪些? 答:参考1.1.2 防止直接访问数据变量看起来有些奇怪, 但它实际上却对使用类的程序质量有极大的好处。 既然数据的单个项是不可访问的, 那么惟一的办法就是通过方法来读或写。因此,如果要求类成员内部的一致性,就应该通过类本身的方法来处理。 这种数据隐藏技术就是面向对象的重要特性一一封装。它将类的外 部界面与类功能的实现区分开来,隐藏实现细节,(通过公共方法)保 留有限的对外接口, 迫使用户使用外部界面, 通过访问接口实现对数据的操作

2、。即使实现细节发生了改变, 还可通过界面承担其功能而保留原样, 确保调用它的代码还继续工作,这使代码维护更简单。 2 .简述封装的优点。? 答:封装是一个简单而有效的思想,优点有:(1)模块化,对内成 为一个结构完整、可进行自我管理、自我平衡、高度集中的整体。 (2)信息隐蔽,对外则是一个功能明确、接口单一、可在各种适合的环境下都能独立工作的有机单元。 面向对象的程序设计实现了对象的封装, 使得用户不必关心诸如对象的行为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性, 同时也有利于对复杂对象的管理。 类的封装性使得代码的可重用性大为提高, 这样

3、的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。 3 .java的基本工具有哪些? (1) javac编译器 (2) java解释器 (3) jdbjava语言调试器 (4) javadocapi文档管理器 (5) javah头文件生成器 (6) appletviewer小应用程序浏览器 (7) javap类文件反汇编器 4 .java开发环境是如何配置的? 答:对于windows2000以上版本的操作系统,可以打开控制面板 窗口,双击其中的系统图标,在系统特性窗口中单击高级选项卡,进而单击环境变量按钮。在出现的环境变量窗口中,在系统变量框中选择path项,单击编辑按钮,在弹出

4、的编辑系统变量窗口的变量值框后加上上面两条语句。 1. java语言包含哪些数据类型? 答: 包含基本数据类型和复合数据类型。 基本类型包括整数类型、 浮点数类型、布尔类型。复合类型包括类类型(classtype)、接口类 型(interfacetype)与数组类型(arraytype)。 2. java有多少关键字? 答:abstract,continue,for,new,switch,boolean,default,goto*,null,synchronized,break,do,if,package,this,byte,double,implements,private,threadsa

5、fe,byvalve*,else,import,protected,throw,case,extends,instanceof,public,transient,catch,false,int,return,true,char,final,interface,short,try,class,finally,long,static,void,const*,float,native,super,while 3. byte、short、int、long和char整数类型各占了多少字节?答:byte占了1字节,short占了2字节,int占了4字节,long占了8字节,char占了2字节。 4. ja

6、va的控制结构有哪几类? 答:流程控制语句可以分为选择、循环和跳转3大类。 习题3参考答案? 1 .声明类的格式是什么? 答: 类修饰符class类名称extends父类名称implements接口名称 类主体 2 .面向对象程序设计中,什么是构造函数? 答:类类型声明方法成员,如果方法名称与类名称一样,这种方法成员称为构造函数。 习题4参考答案? 1 .面向对象程序设计中,什么是封装? 2 .面向对象程序设计中,什么是数据抽象化? 答:oop程序设计的重心为对象,因些对象被视为拥有本身数据与处理过程的组件,这些组件都有其独立性。所以对象内、外程序的处理就有某种程度的限制,换句话说,对象外部并

7、不明了对象内部数据如何传递、改变,如何处理过程。这种隐藏对象内部的数据及处理过程的方式,使得对象抽象化,有人将这种处理方式称为数据抽象化。类库就是javaapi(applicationprogramminginterface,应用程序接口),是系统提供的已实现的标准类的集合。在程序设计中,合理和充分利用类库提供的类和接口,不仅可以完成字符串处理、绘图、网络应用、数学计算等多方面的工作,而且可以大大提高编程效率,使程序简练、易懂。 1 .简述数据类型类的常用方法。? 答:对所有数据类型类的对象,形如对象名.xxxxvalue()的成员方法,用来获得对象中的基本类型数据。包括: 对象名.doubl

8、evalue(); 对象名.intvalue(); 对象名.bytevalue(); 对象名.shortvalue(); 对象名.longvalue(); 对象名.charvalue(); 对象名.floatvalue(); 对象名.booleanvalue(); 2 .何为命令行参数? 答:所谓命令行参数,是指执行某个java应用程序时,从命令行中 向程序直接传送的参数。我们可以获得这些参数的值,并运用到程序的执行过程中。 3 .如何定义和创建一个数组? 答:要创建一个数组,必须首先定义数组变量所需的类型。通用的一维数组的声明格式是:typearrayname淇中,type定义了数组的基本类

9、型,arrayname是数组的名称。基本类型决定了组成数组的每一个基本元素的数据类型。 4 .如何声明一个二组数组? 答:二维数组的一般声明格式如下: 数组元素类型数组名; 数组元素类型田数组名; 5 .列举一下数据类型类的常用方法。? 答:对所有数据类型类的对象,形如对象名、xxxxvalue()”的 成员方法,用来获得对象中的基本数据类型。包括:对象名、 doublevalue();对象名、intvalue();对象名、bytevalue ();等。 习题6参考答案? 1.解释下列方法的意义:? (1)tolowercase()(2)touppercase()(3)charat()? (4

10、)equalsignorecase()(5)capacity()(6)setlength()? (7)reverse()(8)replace(start,end,str)? 答: (1)将字符转换成小写字符 (2)将字符转换成大写字符 (3)从0算起第index字符 (4)忽略大小写,比较两字符串是否,相等,若是返回true,否则返回false (5)计算字符串缓冲器的容量 (6)设定字符串的长度 (7)将字符串反转排列 (8)返回字符串缓冲器从stare开始到end结束字符被str字符串取代 2. capacity()与length()的用法有什么不同? 答:capacity()用来计算字符

11、串缓冲器的容量,length()用于计算字符串长度。如:stringbufferko1=newstringbuffer(20), 则ko1capacity()=20,但ko1,length()可能是0或20,视ko1字符串长度而定。 习题7参考答案? 1 .什么叫流?流式输入输出有什么特点? 答:java中的流是对数据传递机制的抽象。流分为两种:输入和输出。java中所有输入/输出操作都是使用基本字节类型完成的。字符是通过值为字节类型的特殊代码处理的。java程序的所有读写操 作都是通过流实现的。流是一组字符序列。输入源可以是键盘、文件或网络,输出自的地可以是屏幕、文件或网络。数据作为字节序列

12、进行发送和接收。 2 .file类有哪些构造函数和常用方法?并举例说明。? 答:使用下面的构造函数创建file对象: ?file(stringdirpath) ?file(stringdirpath,stringnlename)?file(fnedirobj,stringfilename)这里,dirpath是文件的路径名,filename是文件名,dirobj是指定目录的fie对象。下面的例子创建了3个文件:fl、f2和f3。第一个file对象只有目录路径一个参数。第二个有两个参数一一目录和 文件名。第三个包括赋给n的文件路径和文件名。f3和f2指的是同 一个文件。最后一个包括指定文件“au

13、toexec,bat”所在的目录名称。 filef1=newfile(/); filef2=newfile(/,autoexec.bat); filef3=newfile(f1,autoexec.bat); filef3=newfile(user,autoexec.bat); file类的方法 下面是file类中一些重要的方法: ?getname() 该方法用来获取指定文件的名称。 ?getpath()/getabsolutepath() 这两个方法分别得到指定文件的相对路径和绝对路径。 ?exists() 该方法用来判断命名的文件是否存在于目录当中。 ?isfile()/isdirector

14、y() 这两个方法分别用来判断命名的文件是否是普通文件和目录。 ?canread()/canwrite() 这两个方法分别用来判断指定文件是否可读写。 ?lastmodified() 该方法返回文件最近一次被修改的时间。 ?length() 该方法返回文件的大小,以字节记。 ?delete() 该方法用来删除指定文件。 ?renameto() 该方法用来对已知文件进行重命名。 它将目的文件或者说重命名后的文件对象作为参数。 ?isfile() 该方法通常返回true,但是一些特殊的文件如设备驱动和命名管道可能与普通文件不同,所以该方法可以确定所访问实体是一个文件。?isabsolute() 如

15、果文件是绝对路径该方法返回true,相对路径则返回false。 3 .简单介绍一下randomaccessfile类。? 答:randomaceessfile类封装了一个随机访问文件。它不是从输入 输出流中获得。相反,它实现了定义基础fo方法的datalnput和 dataoutput这两个接口。它也支持定位请求,例如可以在文件中定位文件指针。它包含下面两个构造函数: randomaccessfile(filefobj,stringacc)randomaccessfile(stringfname,stringacc)在第一种形式下,fobj是指作为file对象打开的文件名称。在第二种形式下,以

16、fname作为参数传递文件名。在两种情况下,acc都 决定了允许访问什么样的文件类型。如果是“r;那么可以对文件进 行读访问,如果是“rw”,则可以进行读写访问。seek()方法用来设置文件指针的当前位置。 voidseek(longnewpos) 这里,newpos是指以字节方式指定的新位置或者从文件头或文件尾开始的文件指针。调用seek方法之后,将会在新的文件位置发生读或写的操作。 4 .举例实现写文件fileoutputstream类。? 写文件举例如下: /fileoutputsample.java importjava.io.*; publicclassfileoutputsampl

17、e publicstaticvoidmain(stringargs口) stringname=outputfileexample.txt; fileoutputstreamoutputstrem;/文件输出流对象 /缓冲数组,假设写入文件的长度不超过1024字节 byte口buffer=newbyte1024; try outputstream=newfileoutputstream(newfile(name); try system.out.println(ninputfilecontent(tab+entertoexit):); /循环读入字符,tab+enter键结束 intb,i=0;

18、 while(i1024(char)(b=system.in.read()!=t) bufferi+=(byte)b; ) outputstream.write(buffer); outputstream.close(); ) catch(ioexceptione) 【篇二:java程序设计教程(第六版)课后习题答案】 licclassfudian publicstaticvoidmain(stringargs) floata=2.10f,b=3.70f; floatresult1,result2,result3; result1=a+b; result2=a-b; result3=a*b;

19、system.out.println(result1is:+result1); system.out.println(result2is:+result2); system.out.println(result3is:+result3); ) ) 5 .4 publicclasstempconverter publicstaticvoidmain(stringargs) finalintbase=32; finaldoubleconversion_factor=5.0/9.0; doublecelsiustemp; intfahrenheittemp=70;/valuetoconvert ce

20、lsiustemp=(fahrenheittemp-base)*conversion_factor; system.out.println(fahrenheitequivalent:+fahrenheittemp); system.out.println(celsiustemperature:+celsiustemp); ) 6 .5 publicclassyinglizhuanqianmi publicstaticvoidmain(stringargs) floatbase=1.60935f; floatqianmi; floatyingli=19.85f; qianmi=yingli*ba

21、se; system.out.println(yingli:+yingli); system.out.println(qianmi:+qianmi); ) )2.6 publicclasstimeconverterl publicstaticvoidmain(stringargs) inthour=5,minute=35,second=51; intseconds; seconds=hour*60*60+minute*60+second; system.out.println(+hour+时+minute十分+second十秒); system.out.println(换算成秒:+second

22、s); ) )2.7 publicclasstimeconverter2 publicstaticvoidmain(stringargs) intseconds=10853; inthour,minute,second; second=seconds%60; minute=(seconds-second)%60; hour=(seconds-second-minute*60)/3600; system.out.println(seconds+秒,转化为); system.out.println(hour+时+minute十分+second十秒); ) )2.9 importjava.util.

23、*; publicclassdollarbill publicstaticvoidmain(stringargs) floatdollar1,dollar2; intten,five,one,quarters,dimes,nickles,pennies; scannerreader=newscanner(system.in); system.out.println(输入币值:); dollar1=reader.nextfloat(); dollar2=dollar1*100; pennies=(int)dollar2%5; nickles=(int)dollar2%10-pennies)/5;

24、 dimes=(int)dollar2-pennies-nickles*5)%50/10; quarters=(int)dollar2%100/50; one=(int)dollar2-pennies-nickles*5-dimes*10- quarters*50)%500/100;five=(int)dollar2%1000/500; ten=(int)dollar2/1000; system.out.println(ten+tendollarbills); system.out.println(five+fivedollarbills); system.out.println(one+on

25、edollarbills); system.out.println(quarters+quartersdollarbills); system.out.println(dimes+dimesdollarbills); system.out.println(nickles+nicklesdollarbills); system.out.println(pennies+penniesdollarbills!); 2.11importjava.util.*; publicclassfenshuzhuanhuan publicstaticvoidmain(stringargs)intx,y; doub

26、leresult=0; scannerreader=newscanner(system.in); 输入x:); 输入y:); 分数+x+/+y); 转换成小数是:+result); 2.16importjavax.swing.japplet; importjava.awt.*; publicclassolympiclogoextendsjappletpublicvoidpaint(graphicspage)page.setcolor(color.blue); page.drawoval(25,65,40,40); page.setcolor(color.yellow); page.drawov

27、al(55,65,40,40); page.setcolor(color.black); page.drawoval(85,65,40,40); page.setcolor(color.green); page.drawoval(115,65,40,40); page.setcolor(color.red); page.drawoval(145,65,40,40);/circle page.setcolor(color.cyan); page.drawstring(olympiclogo,40,30); 2.19 importjava.applet.*; importjava.awt.*; p

28、ublicclassex2_19extendsapplet publicvoidpaint(graphicspage) page.setcolor(color.black); system.out.println(x=reader.nextint();system.out.println(y=reader.nextint();result+=x/y; system.out.println(system.out.println( page.setfont(newfont(楷体,font.italic+font.bold,30); page.drawstring(林少锋,40,30); page.

29、setcolor(color.blue); page.setfont(newfont(宋体,font.bold,30); page.drawstring(林少锋,70,80); 2.20 importjava.applet.*; importjava.awt.*; publicclassex2_20extendsapplet publicvoidpaint(graphicspage) page.drawoval(35,35,130,130); page.setcolor(color.red); page.fillarc(35,35,130,130,0,45);page.setcolor(col

30、or.blue); page.fillarc(35,35,130,130,45,45);page.setcolor(color.yellow); page.fillarc(35,35,130,130,90,45);page.setcolor(color.cyan); page.fillarc(35,35,130,130,135,45);page.setcolor(color.gray); page.fillarc(35,35,130,130,180,45);page.setcolor(color.green); page.fillarc(35,35,130, 130,225,45);page.

31、setcolor(color.darkgray); page.fillarc(35,35,130,130,270,45);page.setcolor(color.pink); page.fillarc(35,35,130,130,315,45); pp4.1 方法1 importjava.util.*; publicclasscreatesphere/* *paramargs */publicstaticvoidmain(string口args) /todo自动生成方法存根 system.out.println(请输入直径d:); scannerscan=newscanner(system.i

32、n);double d=scan.nextdouble(); sphered=newsphere(d); d.square(); d.volum(); system.out.println(d.tostring(); publicclasssphere finaldoublepi=3.14; doublev,s; doubled; sphere(doubled) this.d=d; publicvoidvolum() v=(4/3)*pi*(d/2)*(d/2)*(d/2); publicvoidsquare() s=4*pi*(d/2)*(d/2); publicstringtostring

33、() strings=; stringresult1=double.tostring(s);string result2=double.tostring(v); s=(体积为:+result2+面积为:+result1);returns; 方法2 /sphere.java publicclasssphere privatedoublediameter; 【篇三:java程序设计案例教程(第二版)周怡、张英主编。第4章java流程控制_课后习题答案】 /p1.下列语句执行后的输出结果是_a。 if(62*5) system.out.print(hello); system.out.print(e

34、veryone); a.helloeveryoneb.helloc.everyone 2 .下列语句执行后,k的值是_co inti=6,j=8,k=10,m=7; if(ij|mk-)k+; elsek-; a.12b.11c.10d.9 3 .下列循环语句的循环次数是do inti=5; do system.out.println(i-); i-;done while(i!=0); a.0b.1c.5d.无限 4 .下列代码片段执行之后,输出的结果为_co intx=12,m=11,y=13; inttemp=xy?x:y; temp=tempm?temp:m; system.out.pr

35、intn(temp); a.11b.12c.13d.1 5 .下列关于switch语句的描述中,正确的是d。 a.退出switch语句的唯一途径是执行break语句 b.switch语句中case和default子句都可以有多个 c.switch语句中case子句的语句序列中一定要包含break语句 d.switch语句中default子句可以省略 6 .执行for(i=1;i=10;i+)循环后,i的值为c。 a.1b.10c.11d.9 7 .下列关于for循环和while循环的说法中a是正确的。 a. while循环能实现的操作,for循环也都能实现 b. while循环判断条件一般是程

36、序结果,for循环判断条件一般是非程序结果 c.两种循环任何时候都可替换 d.两种循环结构中循环体都不可以为空 8 .给出下列的代码,c_行在编译时可能会有错误。 publicvoidmodify() inti,j,k; i=100; while(i0) j=i*2; system.out.println(thevalueofjis+j); k=k+1; a.line4b.line6c.line7d.line8 9.执行如下程序代码后,变量c的值是co inta=0,c=0; do 一c; a=a-1; while(a0); a.0b.1c.-1d.死循环 10.下列关于for语句的描述错误的

37、是a。 a.在for语句中定义的变量,可以在for语句之外的语句中使用 b.循环变量的值可以由大到小变化 c. for语句中的循环语句体有可能一次都不执行 d. for语句中的3个表达式都可以省略 二、填空题 1 .在switch语句中, 表达式的值必须是整型(整型, 短整型)或者一字符型(字符型,字节型)类型的数据。 2 .在_do.while语句形式中,不论表达式的值是true还 是false,循环体中的语句至少被执行一次。 3 .continue语句可以终止当前一轮的循环,不再执行其下面的语句,直接进入下一轮的循环;break语句通可以 使程序从一个语句体的内部跳出去,继续执行该语句体下

38、面的语句。 4 .对于下面代码,输出的第7个整数是18,共有 9行输出,如果将i+改为i-,一不会(会/不会)出现编译错误。 for(i=12;i=20;i+) system.out.println(i);system.out.println(); 5 .如果在程序执行过程中,while语句中表达式的值始终为true, 则循环体会被无数次执行,进入到无休止的死循环状态中。 6 .for语句的表达式1中可以并列多个表达式,但它们之间要用 逗号隔开。 三得现行而程序流程,请填空。 if(条件1) system.out.println(a); 条件2) system.out.println(b); system.out.println(c); system.out.println(d); 8.设有以下程序丁而运当表达式,使程序运行时执行3次循环 体。 intx=1 do x+=2; system.out.println(x); 三、简答题 1 .if语句中判断条件是否成立的表达式一定是逻辑型的表达式吗, 为什么? 答: 可以不是,但是最终结果必须是逻辑值。逻辑表达式的值是表达式 中各种逻辑运算的最后值,以“1和”0分别代表真”和假”。只要最后的逻辑值为逻辑值就满足条件。 2 .switch语句中,case后面的语句序列中一定要有break语句吗? 答: 不一定

温馨提示

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

评论

0/150

提交评论