习题答案

发布时间 : 星期日 文章习题答案更新完毕开始阅读

的环境一致,Java中提供了基本数据类型的包装类(wrapper),它们是这些基本类型的面向对象的代表。与8种基本数据类型相对应,基本数据类型的包装类也有8种,分别是:Character,Byte, Short, Integer, Long, Float, Double, Boolean。

3.Math类用来实现什么功能?设x,y是整型变量,d是双精度型变量,试书写表达式完成下面的操作:

(1)求x的y次方; (2)求x和y的最小值; (3)求d取整后的结果;

(4)求d的四舍五入后的结果; (5)求atan(d)的数值。 答:相应的表达式为: (1) Math.pow(x, y) (2) Math.min(x, y) (3) Math.floor(d) (4) Math.rint(d) (5) Math.atan(d)

4.Math.random()方法用来实现什么功能?下面的语句起到什么作用?

(int)(Math.random()*6)+1

答:Math.random()用于产生随机数(0到1之间,包含0,但不包含1)。

上面的表达式表示1到6之间的一个随机整数(包含1及6)。

5.编程生成100个l~6之间的随机数,统计1—6之间的每个数出现的概率;修改程 序,使之生成1 000个随机数并统计概率;比较不同的结果并给出结论。

答:见程序。

结论是次数越多越均匀。

6.什么是字符串?Java中的字符串分为哪两类?

答:字符串是是字符的序列,在Java中,字符串,无论是常量还是变量,都是用类的对象来实现的。

字符串可以分为两大类,一类是创建之后不会再做修改和变动的字符串常量;另一类是创建之后允许再做更改和变化的字符串。前者是String类,后者是StringBuffer类。

7.编写Applet程序,接受用户输入的一个字符串和一个字符,把字符串中所有指定的字符删除后输出。

答:见程序。

8.编程判断一个字符串是否是回文。 答:见程序。

9.String类的concat()方法与StringBuffer类的append()方法都可以连接两个字符串,它们之间有何不同?

答:String的concat()方法不改变原字符串本身,而是产生一个新的字符串。

7-17

StringBuffer的append()方法则改变其中的字符串内容,而不产生一个新的对象。 10.什么是递归方法?递归方法有哪两个基本要素?编写一个递归程序求一个一维数组所有元素的乘积。

答:简单地说,递归方法就是直接或间接调用自己的方法。递归方法有两个要素:一个是求得范围缩小的同性质问题的结果;另一是利用这个已得到的结果和一个简单的操作求得问题的最后解答。

具体程序见源文件。

11.你了解几种排序算法?它们各自有什么优缺点?分别适合在什么情况下使用?

答:常见的排序算法有:冒泡排序、选择排序、快速排序等。前二者较简单,适合于元素个数较少的场合,而快速排序法则速度较快,适合于各种场合。

12.向量与数组有何不同?它们分别适合于什么场合?

答:向量的元素个数可以动态地增减,而数组则不行。前者适合于元素个数动态改变的场合,后者则适合于元素个数不变的场合。

13.Java中有几种常用的集合类及其区别如何?怎样获取集合中的各个元素。

答:常用的集合有向量、堆栈、队列等。它们可以使用枚举等方法来获集合中的元素,有的还可使用elemnetAt()等方法来获取其中的元素。

14.队列和堆栈各有什么特点?

答:队列和堆栈都是线性数据结构,队列遵循“先进先出”(FIFO)原则,堆栈遵循“后进先出”(LIFO)原则。

15.求解“鸡兔同笼问题”:鸡和兔在一个笼里,共有腿100条,头40个,问鸡兔各有几只。

答:见程序。

16.求解“百鸡问题”。已知公鸡每只3元,母鸡每只5元,每3只小鸡1元。用100元钱买100只鸡,问每种鸡应各买多少。

答:见程序。

17.求四位的水仙花数。即满足这样条样的四位数:各位数字的4次方和等于该数自身。

答:见程序。

18.求1000以内的“相亲数”。所谓相亲数是指这样的一对数:甲数的约数之和等于乙数,而乙数的约数之和等于甲数。

答:见程序。 19.“哥德巴赫猜想”指出,每个大于6的偶数,都可以表示为两个素数的和。试用程序将6-100内的所有偶数都表示为两个素数的和。

答:见程序。

7-18

20.菲波那契(Fibonacci)数列的第一项是0,第二项是l,以后各项都是前两项的和,试用递归算法和非递归算法各编写一个程序,求菲波那契数列第N项的值。

答:见程序。

21.用迭代法编写程序用于求解立方根。

答:见程序。注意到x3-a=0的牛顿迭代公式为x-(x3-a)/(3 x2)。

22.用迭代法编写程序用于求解以下方程: x2+sinx-1.0=0 在-1附近的一个根

答:见程序。注意到该方程的牛顿迭代公式为x-( x2+sinx-1.0)/(2 x+cosx)。

23.作出对应于不同c值的Julia集的图:

c=-1+0.005i c=-0.2+0.75i c=0.25+0.52i c=0.5+0.55i

答:见程序。

24.求“配尔不定方程”的最小正整数解: x2 – Dy2 =1

其中D为某个给定的常数。令D=92,求其解。再令D=29,求其解。这里都假定已知其解都在10000以内。

答:见程序。

25.从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:第1个元素与第10个元素互换,第2个元素与第9个元素互换??第5个元素与第6个元素互换。分别输出数组原来各元素的值和对换后各元素的值。

答:见程序。

26.有一个n*m的矩阵,编写程序,找出其中最大的那个元素所在的行和列,并输出其值及行号和列号。

答:见程序。

第8章 Java的多线程

习 题

1.程序中怎样创建线程?

答:创建线程对象有两种方法,一是通过继承Thread类,一是向Thread类传递一个

8-19

Runnable对象。

2.程序中怎样控制线程?

答:启动一个线程:调用start()方法。 终止或暂停一个线程:一般采取给线程设定一个标记变量的方法,来决定线程是否应该终止或暂停。

设定线程的优先级:使用Thread对象的setPriority( int priority)方法。

3.多线程之间怎样进行同步?

答:可以通过使用关键字synchronized,使用对象的wait()、notify()方法来实现线程间的同步。

4.编写一个程序,用一个线程显示时间,一个线程用来计算(如判断一个大数是否是质数),当质数计算完毕后,停止时间的显示。

答:见程序。

第9章 流、文件及基于文本的应用

习 题

1.字节流与字符流有什么差别?

答:按处理数据的类型,流可以分为字节流与字符流,它们处理的信息的基本单位分别是字节(byte)与字符(char)。

2.节点流与处理流有什么差别?

答:节点流(Node Stream): 直接与特定的地方(如磁盘、内存、设备等)相连,可以从/向一个特定的地方(节点)读写数据。如文件流FileReader。

处理流(Processing Stream): 是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读/写功能。处理流又称为过滤流。如缓冲处理流BufferedReader。

3.输入流与输出流各有什么方法?

答:输入流InputStream类最重要的方法是读数据的read()方法。read()方法功能是逐字节地二进制的原始方式读入数据。另外,它还有skip(long n)、reset()、available()、close()方法等。

输出流OutputStream类的重要方法是write(),它的功能是将字节写入流中。另外,它还有flush()及close()方法。

4.怎样进行文件及目录的管理?

答:Java支持文件管理和目录管理,它们都是由专门的java.io.File类来实现。每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相 关信息,如名称、长度、所含文件个数等,调用它的方法则可以完成对文件或目录的常用管 理操作,

9-20

联系合同范文客服:xxxxx#qq.com(#替换为@)