java第一次作业题目2013版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 题目:从键盘上输入两个正整数m和n,求其最大公约数和最小公倍数,必须判断输入数的正确性(比如非正整数等必须提示)。[选题人数:3]
2. 题目:给出一个月的总天数
编写程序,提示用户输入月份和年份,然后显示这个月的天数。例如,如果用户输入的月份是2而年份是2000,那么程序应显示“2000年2月有29天”。如果用户输入的月份为3而年份为2005,那么程序就应该显示“2005年3月有31天”。(提示:必须判断是否是闰年)[选题人数:3]
3. 题目:计算一个三角形的周长
编写程序,提示用户从键盘输入三角形的三条边,如果输入值合法就计算这个三角形的周长,否则,显示这些输入值不合法(如果任意两条边的和大于第三条边,那么输入值都是合法的)。[选题人数:3]
4. 题目:奖金发放问题
企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?[选题人数:3]
5. 题目:打印金字塔形的数字
编写一个嵌套的for循环,打印下面的输出。
1 2 1
1 2 4 2 1
1 2 4 8 4 2 1
1 2 4 8 16 8 4 2 1
1 2 4 8 16 32 16 8 4 2 1
1 2 4 8 16 32 64 32 16 8 4 2 1
1 2 4 8 16 32 64 128 64 32 16 8 4 2 1 [选题人数:2]
6. 题目:十进制转换成二进制或十六进制
编写程序,从键盘上输入一个十进制整数,然后显示对应的二进制值或十六进制值。在这个程序中不要使用Java的Integer.toBinaryString(Int)或Integer.toHexString(Int)这两个方法。[选题人数:4] (其中2个选十进制转二进制,2个选十进制到十六进制)
7. 题目:回文整数
编写一个程序,提示用户输入一个整数值,然后报告这个数是否是回文数(例如131,逆向结果也是131)。判断回文数的函数如下:
//返回一个数是否是回文数
public static Boolean isPalindrome(int number) [选题人数:3]
8.题目:回文素数
回文素数是指一个数同时为素数和回文数。例如:131是一个素数,同时也是一个回文数。数字313和757也是如此。编写程序,显示前100个回文素数,每行显示10个数并且准确对齐,如下所示:
2 3 5 7 11 101 131 151 181 191
313 353 373 383 727 757 787 797 919 929
……. …. …. ………………. [选题人数:3]
9. 题目:打印不同的数
编写一个程序,从键盘上读入10个数并且在屏幕上显示互不相同的数(即一个数出现多次,只显示一次)。提示,读入一个数,如果它是一个新数,则将它存入数组中。如果它该数已经在数组中,则忽略它。输入之后,数组包含的都是不同的的数。
例如:输入10个数:1 2 3 2 1 6 3 4 5 2
不同的数有:1 2 3 6 4 5 [选题人数:3]
10. 题目:计算数字的出现次数
编写程序,读取1到100之间的整数,然后计算每个数出现的次数。假定输入是以0结束的。下面给出程序的一个运行示例:
输入1到100的一系列整数:2 5 6 5 4 3 23 43 2 0
2 出现2次
3出现1次
……[选题人数:3]
11. 题目:排序算法的实现
使用冒泡排序/选择排序/插入排序/快速排序/希尔排序编写一个排序方法,从键盘读取10个double型的值,调用这个排序方法,然后显示排好序的数字。[选题人数:8] (一个排序方法选择不超过2个)
12. 题目:对二维数组排序
编写一个方法,使用下面的方法头对二维数组进行排序(从小到大)
public static void sort(int m[][])
这个方法首先按行排序,然后按列排序(即行一样的情况下,需要对其按列排序)。例如:数组{{4,2}, {1,7}, {4,5}, {1, 2}, {1,1}, {4,1}}排序后就成了{{1,1}, {1,2}, {1,7}, {4, 1}, {4,2}, {4,5}}. [选题人数:3]
13. 题目:找出距离最近的两个点
假定有一组点(二维,如(3,3))(个数由键盘输入),找出彼此之间距离最近的两个点。(最直接的方法是计算所有点对之间的距离,并且找出最短的距离)。
例如:输入点的数目:8
输入8个点:-1 3 -1 -1 1 1 2 0.5 2 -1 3 3 4 2 4 -0.5
距离最近的两个点为(1,1)和(2,0.5) [选题人数:3]
14. 定义一个类Employee(雇员)
三个属性,雇员姓名(name,String),薪水(salary,double),开始雇佣时间(hireDay,Date)
一个构造方法,带参数,初始化各个属性,特别要求带有年月日的参数,并利用GregorianCalendar日历类生成日期并转化成对应的Date类的日期.
对于每个属性添加一个set和get方法(建议使用Eclipse的Refactor中的Encapsultion Fields)一个实现增长薪水的的方法raiseSalary,传递一个double类型的薪水增长率
一个Employee类的数组,生成三个雇员类的对象填充到数组中. [选题人数:3]
15. 创建一个名为Rectangle的类来表示一个使用宽度和高度来改变量的矩形,矩形的宽度和高度由构造方法来确定。为Rectangle类创建下列方法:
getArea返回矩形的面积,要求长和高的范围为0~50;
getPerimeter返回矩形的周长;
Draw使用星号(*)作为描绘字符画出该矩形(假设宽度和高度为整数);
在另一个类TestRectangle中编写main方法来测试Rectangle类。[选题人数:3]
16. 写一个Person类,定义人的基本属性:name(姓名)、age(年龄)、gender(性别)、partner (配偶)。
要求至少为Person类写一个marry(Person p)方法,来判断两个人是否可以结婚。如果可以结