《Java程序设计》练习题 下载本文

五、程序改错题

1、阅读下面的程序,修改程序中编译错误的地方(提示:共五处错误)

interface Shape{ double PI;

public double area( );

public double perimeter( ); }

class Cycle extends Shape{ private double r;

public Cycle(double r){ this.r=r; }

double area( ){

System.out.println(PI*r*r); } }

public class Test{

public static void main(String args[]){ Cycle c=new Cycle(1.5);

System.out.println(\面积为:\ } }

2、阅读下面的程序,修改程序中错误的地方(提示:共三处错误)

1. class Person{ 2. String name; 3. int age; 4. String sex;

5. public Person(String name,int age,String sex){ 6. this.name=name; 7. this.age=age; 8. this.sex=sex; 9. }

10. public void toString(){

11. return \12. } 13. }

14. public class TestPerson{

15. public static void main(String args[]){ 16. Person p=new Person(); 17. p.name=\张三\18. p.age=20; 19. p.sex=\男\

第 41 页 共 48 页

20. System.out.println(Person.tostring()); 21. } 22. }

3、阅读下面的程序,修改程序中错误的地方(提示:共三处错误)

1. public class MyThread implements Runnable { 2. String str[]=new String[10]; 3. public MyThread(){

4. for (int i = 0; i < str.length(); i++) { 5. str[i]=i+\6. } 7. }

8. public void start () { 9. try {

10. for (int i = 0; i < str.length; i++) { 11. sleep(1000);

12. System.out.print(str[i]); 13. }

14. } catch (InterruptedException e) { 15. e.printStackTrace(); 16. } 17. }

18. public static void main(String args[]) { 19. Thread t=new Thread(new MyThread ()); 20. t.start(); 21. } 22. }

六、编程题

1、用for语句实现下面的程序ForDemo.java:从10~100以内能被2整数但不能被3整除的整数,要求每行按10个数(数与数之间有一个空格间隔)的形式对其输出。

2、编写一个getY(double t)方法,返回值按下列函数计算:

2

t-1 0≤t<1 t-2·t-2 1≤t<3 y= t-t·sint 3≤t<5 t+1 5≤t<7 t-1 其它

3、编写一个java应用程序,从键盘输入x,利用下列台劳公式计算cos(x)的值,并输出(要求精确到0.000001)。台劳公式为:

2468

cos(x)=1-x/2! + x/4! -x/6! + x/8! - ??

4、定义接口AreaInterface,该接口有一个双精度浮点型的变量pai,它的值等于Math.PI;

第 42 页 共 48 页

23

含有一个求面积的方法 double area();

5、根据以下的设计要求编写java源代码。(15分) 类名: Student

变量(访问权限均为private): name(String) //姓名 age(int) //年龄 方法:

构造方法(没有参数,设置姓名为“无名氏”,年龄为20)

setName(有一个名为name的String型参数,将name的值设为这个新值), getName (没有参数,返回姓名)

setAge(有一个名为age的int型参数,将age的值设为这个新值), getAge (没有参数,返回年龄)

isSameAge(有一个参数s,是另一个Student对象的引用,如果两个Student对象的age相同,则返回true,否则返回false)

6、请为管理学校中教师的工作证和学生的学生证设计一个类体系结构,尽可能保证代码的重用率。假设工作证包括编号、姓名、姓名、出生年月、部门、职务和签发工作日期;学生证包括编号、姓名、姓名、出生年月、学院、专业、入校时间及每学年的注册信息等。 7、定义一个Rectangle(长方形)实现AreaInterface接口,该类有两个private访问权限的双精度浮点型变量x(长)和y(宽);定义一个public访问权限的构造方法,用来给类变量赋值;实现area()方法得到长方形的面积;定义toString()方法,返回一段字符串信息,内容如下格式:“该长方形面积为:”+面积;

定义一个TestArea类,在他的main()方法中;创建一个Rectangle的实例,长为10.0,宽为20.0,输出它的面积;

8、现在有两个双精度浮点型的数组如下: double xs[]={1,9,3,5,6}; double ys[]={10,11,4,7,13}; 又有一个长方形的数组

Rectangle rects[]=new Rectangle[25];

要求: 用Rectangle的构造函数给rects数组的每个元素赋值,长和宽分别为xs和ys的元素;然后按照面积由小到大给rects排序;编写它的程序段;

9、设计一个集合类Set,然后再编写一个应用程序,创建两个Set对象,并利用Math.random()产生这两个集合中的元素,然后对他们实施“交”、“并”操作。

10、设计一个矩阵类matrix,然后再编写一个java应用程序,创建三个matrix对象a、b和c,初始化a和b,计算矩阵a和b的乘积,并赋值给c,最后输出结果。

11、设计一个类TestArraySum,定义一个含有10个元素的int类型数组a,10个数组元素的值是11~20,再定义一个方法arraySum(int[] a),返回数组所有元素的和,最后用main

第 43 页 共 48 页

方法实现在屏幕上输出数组a所有元素的和。

12、编写一个java程序Suansu.java,定义两个整型变量a和b,使用构造函数初始化a为10,b为5,并定义求出a与b的和(方法名为AddAB)、差(方法名为SubAB)、积(方法名为MultiAB)、商 (方法名为DivAB)的方法。

用另一个java程序TestSuansu.java测试Suansu.java定义的方法,并在屏幕上输出结果。 13、创建一个名为Rectangle的类来表示一个使用宽度和高度来改变量的矩形,矩形的宽度和高度由构造方法来确定。为Rectangle类创建下列方法: ? getArea返回矩形的面积,要求长和高的范围为0~50; ? getPerimeter返回矩形的周长;

? Draw使用星号(*)作为描绘字符画出该矩形(假设宽度和高度为整数); 在另一个类TestRectangle中编写main方法来测试Rectangle类。 14、用面向对象的思想定义一个接口Area,其中包含一个计算面积的方法CalsulateArea(),然后设计MyCircle和MyRectangle两个类都实现这个接口中的方法CalsulateArea(),分别计算圆和矩形的面积,最后写出测试以上类和方法的程序。

15、按以下要求编写程序。

(1)定义一个Shape接口,该接口中只有一个抽象方法getArea(),该方法无参数,返回值类型为double型;

(2)定义一个圆类Circle,满足以下条件: a)Circle类实现Shape接口;

b)定义Circle类的成员变量r,表示圆的半径,数据类型为int;

c)定义Circle类的构造方法,参数名为r,用该参数初始化圆的半径; d)实现getArea()方法,计算圆的面积(注:圆周率取3.14)

(3)编写一个测试类,类名为TestCircle,利用Circle类计算半径为5的圆的面积,并将面积在屏幕打印出来。

16、请编写2类

第一个类包含下面两个方法:

int QuadEq(double a, double b, double c) 返回ax^2+bx+c=0的不重复实数根的个数 int IsPrime(int x)

判断x是否为正素数,是返回1,否则返回0;

第二个类,调用第一个类中的两个方法,计算并输出QuadEq(1,2,3)、 QuadEq(4,5,6)、 QuadEq(1,-2,1)、 IsPrime(46)、 IsPrime(-23)、 IsPrime(91)的值

17、编写一个程序,类名为WordCount,统计单词“hello”在一篇英文文章(保存在文件article.txt)中出现的次数,要求统计时忽略单词的大小写,统计结果在屏幕上打印出来的格式为:单词***在文章***中出现的次数为:10。 提示:下面是String类中的几个方法:

(1) public int indexOf(String str) //返回指定子字符串在此字符串中第一次出现处的

索引。

第 44 页 共 48 页