文档库 最新最全的文档下载
当前位置:文档库 › Java复习题目

Java复习题目

Java复习题目:

一、基本语法与逻辑类型题目(1题,20分,送分)

1、输出九九乘法表(双重循环)。

2、输出100以内的全部素数(循环、分支)

3、编程求全部三位数中的素数之和。(循环、分支)

4、输出Fibonacci数列的前20个数(递推、递归)。

5、打印出所有的三位水仙花数。

6、将学生的百分制成绩,换算为五分制成绩(分支)。

7、从键盘输入2个长整数和一个运算符,进行加或减运算,输出运算结果。(输入输

出)

8、编写一个Java程序,用if-else语句判断某年份是否为闰年。(四年一闰,百年不闰,

一百年再闰)

9、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数(字符串)。

10、求1!+2!+3!+…+n!的值(循环)

11、判断一个整数是否为回文数(循环)。

12、输入三个数,按从小到大的顺序输出(分支)。

13、已知S=1-1/2+1/3-1/4+…-1/n,求解当n=100时的S值(循环、分支)。

14、从控制台输入数字,输出类似以下的图形(循环)。输入4出现如下图形:

*

***

*****

*******

*****

***

*

14、利用二维数组或不规则数组,打印出以下的三角形(要求打印出10行)

1

2 2

3 4 3

4 7 7 4

5 11 14 11 5

....................

二、数组类型题目

1、将一维数组的元素前后交换。

2、求4*4的矩阵的最大元素的位置,对角线元素的和。

3、有一个已经排好序的数组。现输入一个数,要求按原来的规律插入原数组。

4、将一个数组逆序输出。

5、打印出杨辉三角形(要求打印出10行)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

。。。。。。

6、输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

7、数组中有n个整数,现使其前面各数顺序后移m个位置,最后m个数变成最前面

的m个数。

三、类与对象(1题,20分)

1、设计一个User类,其中包括用户名、口令等属性以及构造方法(至少重载2个)、获取和设置口令的方法、显示和修改用户名的方法等。编写应用程序测试User类。

2、定义一个Student类,其中包括学号、姓名、性别、出生年月等属性以及init( )

——初始化各属性、display( )——显示各属性、modify( )——修改姓名等方法。实现并测试这个类。

3、从上题的Student类中派生出Graduate(研究生)类,添加属性:专业subject、导

师adviser。重载相应的成员方法。并测试这个类。

4、定义一个接口Inf,含有常量π和一个实现计算功能的方法calculate( ),再分别定义一个面积类area和一个周长类circumference,各自按计算圆面积和圆周长具体实现接口中的方法,并以半径为5来测试这两个类。

5、定义一个类,在main方法的try块中产生并抛出行测试。

要求如下:

(1)Student类中包含姓名、成绩两个属性。

分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值。一个异常,在catch块中捕获异

常,并输出相应信息,同时加入finally子句,输出信息,证明它的无条件执行。

6、定义一个类Caculate实现10以内的整数加减法的计算。自定义一个异常类NumberRangeException,当试图进行超范围运算时,产生相应的信息。编写应用程序进行测试。

(2)7、请按照以下要求设计一个学生类Student,并进

(3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值。

(4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,另一个使用有参的构造方法,在构造方法中给姓名和成绩

赋值。

8、定义一个Father和Child类,并进行测试。

要求如下:(1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangsan”。(2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。(3)定义一个测试类Test,在Test类的

main()方法中,创建Child对象,并调用introFather()方法。

9、请按照以下要求设计类。

要求如下:

1)设计Animal类。类中定义一个成员变量animalName,表示动物的名称,变量animalName是String类型,默认初始值。在该类中再定义一个成员方法shout(),

表示动物发出叫声的行为,该方法能输出名称为name的动物发出叫声,例如输

出“波斯猫发出叫声”。

2)设计Cat类。使用关键字extends继承Animal类。Cat类中定义一个public类型的构造方法,该构造方法拥有一个String类型的参数catName,通过该参数,为

Cat类中继承自Animal类的animalName成员变量赋值

3)设计一个测试类。类名为ExtendsTest,在main方法中定义一个String类型的name 变量,并为它赋值为”波斯猫”,然后使用有参构造创建Cat类的对象,并使用对

象的引用变量调用shout()方法。

10、设计一个学生类Student和它的一个子类Undergraduate,要求如下:

(1)Student类有name(姓名)和age(年龄)属性,一个包含两个参数的构造方法,用于给name和age属性赋值,一个show方法打印Student的属性

信息。

(2)本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个参数用于给继承的name和age属性赋值,第三个参

数给degree专业赋值,一个show()方法用于打印Undergraduate的属性信

息。

(3)在测试类中分别创建Student对象和Undergraduate对象,调用它们的show ()方法。

11、设计一个Shape接口和它的两个实现类Square和Circle,要求如下:

(1)Shape接口中有一个抽象方法area(),方法接收一个double类型的参数,返回一个double类型的结果。

(2)Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回。

(3)在测试类中创建Circle和Square对象,计算半径为3的圆形面积和边长为2的正方形面积。

12、自定义一个异常类NoThisSongException和Player类,在Player的play()方法中

使用自定义异常,要求如下:

(1)NoThisSongException继承Exception类,类中有一个无参和一个接收一个String类型参数的构造方法,构造方法中都使用super关键字调用父类的构

造方法。

(2)Player类中定义一个play(int index)方法,方法接受一个int类型的参数,表示播放歌曲的索引,当index>10时,play()方法用throw关键字抛出

NoThisSongException异常,创建异常对象时,调用有参的构造方法,传入

“您播放的歌曲不存在”。

(3)在测试类中创建Player对象,并调用play()方法测试自定义的NoThisSongException异常,使用try…catch语句捕获异常,调用

NoThisSongException的getMessage()方法打印出异常信息。

13(来自2015春考题)、1)创建一个抽象类Animal,有属性Name,在构造函数中设置该属性的值,有抽象方法catchMouse( )。

2)从Animal继承一个名为Dog的新类,实现其父类的catchMouse()方法(只需简单输出一行说明即可)。

3)从Animal继承另一个名为Cat的新类,实现其父类的catchMouse()方法(该方法并不直接捕鼠,而是委托给某Dog来捕鼠)。

4)在主类的Main方法中创建类Dog的一个对象,设置其Name为“ZangAo”;创建类Cat 的一个对象,设置其Name为”JiaFeiMao”,并让该cat对象委托“ZangAo”对象去捕鼠。写出运行程序后输出的结果。

注意:catchMouse()方法的参数形式和是否需要重载,请根据题意自行补充。

14、(1)编写一个圆类Circle,该类拥有:

①一个成员变量

Radius(私有,浮点型);// 存放圆的半径;

②两个构造方法

Circle( ) // 将半径设为0

Circle(double r ) //创建Circle对象时将半径初始化为r

③三个成员方法

double getArea( ) //获取圆的面积

double getPerimeter( ) //获取圆的周长

void show( ) //将圆的半径、周长、面积输出到屏幕

(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:

①一个成员变量

double hight(私有,浮点型);// 圆柱体的高;

②构造方法

Cylinder (double r, double h ) //创建Circle对象时将半径初始化为r

③成员方法

double getVolume( ) //获取圆柱体的体积

void showVolume( ) //将圆柱体的体积输出到屏幕编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。

四、字符串与Java API

1、写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能:

1)输出字符串的长度。

2)输出字符串中第一个出现字母a的位置。

3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。

4)将字符串“hello”替换为“me”,输出新字符串。

5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。

2、编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大

写或者全用小写),设计一个算法按字典顺序将这些国家名称进行排序。

3、编写一个程序,实现字符串大小写的转换并倒序输出,要求如下:

(1)使用for循环将字符串,如“HelloWorld”从最后一个字符开始遍历;

(2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase()方法将其转换为大写字符。

(3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。

五、集合(1题,20分,常用集合的增删改查)

1、请按照以下要求设计一个Example01类。

要求如下:

1)创建一个ArrayList集合alist,向集合中添加数据,获取集合中元素的个数并打印出第三个元素。

2)创建LinkedList集合link,并向link添加四个元素。

3)向link集合的第一个位置插入元素,移除该集合中第三个元素。

2、使用ArrayList集合,对其添加10个不同的元素,并使用Iterator遍历该集合。提示:(1)使用add()方法将元素添加到ArrayList集合中。(2)调用集合的iterator()方法获得Iterator 对象,并调用Iterator的hasNext()和next()方法,迭代出集合中的所有元素。

3、在HashSet集合中添加三个Person对象,把姓名相同的人当作同一个人,禁止重复添加。提示:Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals()方法返回true。

4、选择合适的Map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来。提示:(1)创建TreeMap集合。(2)使用put()方法将学号(“1”,”2”,”3”,”4”,”5”)和姓名(“Lucy”,”John”,”Smith”,”Aimee”,”Amanda”)存储到Map中,存的时候可以打乱顺序观察排序后的效果。(3)使用map.keySet()获取键的Set集合;(4)使用Set集合的iterator()方法获得Iterator对象用于迭代键。(5)使用Map集合的get()方法获取键所对应的值。

5、(来自2015春考题)使用ArrayList类型的集合,

1)对其添加5个不同的国家名称(如China,USA,Japan,India,Russia),

2)将集合中的全部元素,放入另一个HashSet类型的集合中,

并使用Iterator遍历输出该HashSet集合。

六、IO(文件读写)

1、编写一个application程序,分别用字节流和字符流拷贝一个文本文件,同时将复

制的内容显示在屏幕上。

2、编写程序,读入文本文件的内容,统计出文件中的单词个数。

3、应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程

序代码显示在屏幕上。(被读取的文件路径为:E:/myjava/Hello.java)

4、1)编写Student类,有id、name、age属性和构造函数、introduce(String id,String

name,int age)方法及其他必要的方法;

2)在Main类的main方法中创建两个Student对象,并依次写入students.dat文件;

3)从students.dat文件中读出这两个Student对象,并让其执行introduce做自我介绍。

5、编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt

文件中,并以相反的顺序读出显示在屏幕上。

6、请按照以下要求设计ListFilesExample类。

要求如下:

(1)该类能够实现遍历指定目录(例如E:\ cn\itcast\chapter08)及其子目录下所有文件,并输出所有文件名的功能

(2)该类定义一个无返回值的静态成员方法fileDir(File dir),方法中形参可以接收

待遍历目录的java.io.File类型对象。使用File类中的listFiles()方法和isDirectory(),运用递归的方式实现所需功能,如果是目录时,继续递归遍历,如果是文件,输出文件的文件名。

(2)该类main()方法中调用了fileDir(File dir)方法,传入待遍历目录的File类型实参。

七、图形界面编程(1题,20分)

1、编写程序,在屏幕上显示带标题的窗口,并添加一个按钮。当用户单击按钮时,结束程序。

2、在窗体上产生一个单文本框和两个命令按纽:“显示”和“清除”。当用户单击“显示”按纽时,在文本框中显示“Java 程序”字样;单击“清除”按纽时清空文本框。

3、设计如下界面:

当用户输入了两个操作数并点击运算种类按纽后,在运算结果对应的文本框中显示运算结果。

4、请按照以下要求设计一个用户聊天界面

要求如下:

1)用Swing组件设计界面,创建类Swing

2)创建一个文本域,一个文本框,一个按钮(发送),文本框前有描述文字:“我要发言”。

3)文本域不可编辑,点击发送按钮可将文本框中的内容复制到文本域中

4)如果文本框中内容为空,提示“发送信息不能为空,请重新输入”

5、编写一个JFrame窗口,要求如下:

(1)在窗口的最上方放置一个JLabel标签,标签中默认的文本是“此处显示鼠标右键点击的坐标”。(2)为JFrame窗口添加一个鼠标事件,当鼠标右键点击窗口时,鼠标的坐标在JLabel标签中显示。

6、编写一个JFrame窗口,要求如下:

(1)在窗口的NORTH区域放置一个JPanel面板。

(2)JPanel面板中从左到右依次放置如下组件:

JLabel标签,标签的文本为“兴趣”。

三个JCheckBox多选按钮,文本分别为“羽毛球”、“乒乓球“、“唱歌”。

JLabel标签,标签的文本为“性别”

两个JRadioButton按钮,文本分别为“男”“女“。

(3)窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea 文本域。

(4)当点击多选按钮和单选按钮时,会把选中按钮的文本显示在JTextArea文本域中。

7、编写一个JFrame窗口,要求如下:

1)窗口包含一个菜单栏、一个弹出式菜单和一个JLabel标签。

2)菜单栏中有两个菜单,第一个菜单有两个菜单项,它们之间用分隔符分开,第二个菜单有一个菜单项。

3)弹出式菜单有三个菜单项:红色,绿色,蓝色。

4)JLabel标签放置在窗口的中间(即BorderLayout.CENTER),当点击菜单项时,菜单项中的文本显示在JLabel标签中。

5)当在窗口中右键单击时,弹出式菜单打开,当点击三种颜色的菜单时,将窗口的背景色设置为对应的颜色。

8、(来自2015春考题)编写一个GUI程序,运行界面参考如下图。功能:

(1)当点击“读入文件”菜单时,程序会读入E:\reader.txt 文件的内容,并放入窗体中间的JTextArea控件中显示。

(2)当点击“退出”或右上方的关闭按钮时,会关闭程序。

相关文档