java练习题V1 下载本文

for (int y = 0; y < 30; y++)

{

System.out.println(su[y]); } } }

或者下面也行

public class SuShuArray2 {

//将从小到大的素数30个放入数组中

public static void main(String args[]) {

final int MAX=100,SIZE=30; int prime[] = new int [SIZE]; int i,j,k,n;

prime[0]=2; //已知的最小素数

n=1; //素数个数,即数组的实际长度(元素个数) i=1; //下一个素数应存放的数组下标位置

k=3; //从最小奇数开始测试,所有偶数不需测试 do {

j=0;

while ((j

prime[i]=k; i++; n++; }

k=k+2; //测试下一个奇数是否是素数 }

while(k

System.out.println(\+MAX+\ for (i=0;i

System.out.print(\+prime[i]);

if ((i+1)==0) System.out.println(); }

System.out.println(\+n); } }

5、 编写生成100个1-6之间的随机数,统计1—6每个出现的概率。

);

public class SuiJiShu2 {

//编写生成100个1-6之间的随机数,统计1—6每个出现的概率 public static void main(String args[]) {

final int NUMBER = 100; int count = 10; int randomNum = 0;

int probability[] = new int[6];

for(int i=0; i<6; i++) {

probability[i] = 0; }

for(int i=0; i

randomNum = (int)(Math.random()*6) + 1;//随机数 probability[randomNum-1]++;//计数 System.out.print(randomNum + \); if(i%count == 9)

System.out.println(); }

for(int i=0; i<6; i++) {

System.out.println(\ + (i+1) + \ + probability[i]); } } }

6、 在所有的Java系统类中,Object类有什么特殊之处?它在什么情况下使用?

答:Object类是所有Java类、系统类或用户自定义类的直接或间接父类。因为任何 一个Java对象都可以同时看作是Object类的对象,所以Object可以使用在通用或泛指 的情况下,例如作为某些形式参数的类型。

7、 试列举你使用过的数据类型类,数据类型类与基本数据类型有什么关系?

答:常用的数据类型类有Boolean,Byte,Character,Double,Float,Integer,Long, Short等。

数据类型类基于基本数据类型,其中封装了一个基本数据类型的域及与其相关的 操作。

8 Math类用来实现什么功能?设x,y是整型变量,d是双精度型变量,试书写表 达式完成下面的操作: (1)求x的y次方。 (2)求x和y的最小值。 (3)求d取整后的结果。 (4)求d四舍五人后的结果。 (5)求atan(d)的数值。

public class MathMethod {

public static void main(String[] args) {

int x=1,y=2; double d=3.2; } }

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

答:向量是类似于数组的顺序存储的数据结构,不同之处是向量中的每个元素都是 对象,向量中还封装了一些常用的数据处理功能,因此向量是允许不同类型元素共存的变

长数组。

下面的情况下适合使用向量:

(1)需要处理的对象数目不定:序列中的元素都是对象,或可以表示为对象。 (2)需要将不同类的对象组合成一个数据序列。 (3)需要做频繁的对象序列中元素的插人和删除。 (4)经常需要定位序列中的对象或其他的查找操作。 (5)需要在不同的类之间传递大量的数据。

(6)Vector类的方法相对于数组要多一些,但是使用这个类也有一定的局限性,例如 其中的对象不能是简单数据类型等。

一般在下面的情况下,使用数组比较合适 (1) 序列中的元素是简单数据类型的数据

(2) 序列中的元素数目相对固定,插入、删除和查找 操作较少。 10、什么是排序?你了解几种排序算法?它们各自有什么优缺点?分别适合在什么情况下使用? 答:排序是把一个数据序列中的各个数据元素,根据其中所包含的某个关键值进行 从大到小或从小到大排列的过程。排序的目的大都是为了方便对数据序列中的元素进行 查找。 常见的排序算法有:冒泡排序、选择排序、插入排序、桶排序和快速排序等。

System.out.println(Math.pow(x, y));//求x的y次方 System.out.println(Math.min(x, y));//求x和y的最小值 System.out.println(Math.floor(d));//求d取整后的结果 System.out.println(Math.round(d));//求d四舍五人后的结果 System.out.println(Math.atan(d));//求atan(d)的数值

其中冒泡排序的算法和代码比较简单,适合在待排序的数据元素数目不太多的情况,

32

其算法复杂度为n。选择排序和插入排序的算法代价为n,运算量大大减少,其中选择 排序所需的操作比较多,移动操作少,而插入排序的比较操作少,移动操作多,综合起来二 者大体不相上下。桶排序的算法复杂性为n,运算量最小,但是代价是占用较多的内存空间(10n)。快速排序的算法复杂性也是n。需要注意的是,这里算法复杂性指出的运算 量都是在最坏情况下的运算量,实际使用时可以根据需要排序的数据元素自身的特点,如 是否已经部分有序,来选择相应的算法。

第八章 习题及思考题

1. 什么是异常?简述Java的异常处理机制。

答:异常是当程序运行的时候,由于各种不可避免的原因而产生的错误。例如除数为零、文件找不到而无法读写、网点连接不上等等。

Java程序把运行中各种可能出现的错误都看作异常,Java提供的异常情况处理机制叫异常处理。Java 提供了两种不同的异常抛出机制:throws抛出异常和 throw 抛出异常。throws抛出异常又叫间接抛出异常,throw抛出异常又叫直接抛出异常。throws抛出异常和方法说明联系在一起,是针对以下情况:调用的方法抛出了异常、检测到了错误并使用throw语句抛出异常、程序代码有错误从而异常。方法中出现的异常由catch语句捕获,进行处理。 2.系统定义的异常与用户自定义的异常有何不同?如何使用这两类异常? 答:系统定义的运行异常通常对应着系统运行错误。由于这种错误可能导致操作系统错误甚至是整个系统的瘫痪,所以需要定义异常来特别处理。而用户自定义异常用来处理程序中可能产生的逻辑错误,使得这种错误能够被系统及是识别并处理,而不至扩散产生更大影响,从而使用户程序更为强健,有更好的容错能力,并使整个系统更加安全稳定。 使用:

(1)声明一个新的异常类,是之以Exception类或其他莫个已经存在的系统异常类或用户异常类为父类。

(2)为新的异常类定义属性和方法,或重载父类的属性和方法,使这些属性和方法能过体现该类所对应的错误的信息。

只有定义可以场类。系统才能够识别特定的运行错误,才能够及时的控制和处理运行错误,所以定义足够多的异常类是构件一个稳定完善的应用系统的重要基础之一。

3.输入并运行下面的程序: class testTry {

public static void main(String args[ ]) {

Proc(0); Proc(100); Proc(1); }

static void Proc(int num) { try {