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)方法,来判断两个人是否可以结婚。
如果可以结
婚,将其partner属性赋值为其配偶。
结婚必须满足以下3个条件。
●必须是异性,同性暂时不允许结婚
●有配偶者不能结婚,犯重婚罪。
●要达到年龄方可结婚:男方23岁以上,女性21岁以上。
[选题人数:3]
17. (股票类Stock),设计一个Stock的类,这个类包括:
●一个名为symbol的字符串数据域表示股票代码
●一个名为name的字符串数据域表示股票名字
●一个名为previousClosingPrice的double型数据域,它存储的是前一日的股票值
●一个名为currentPrice的double型数据域,它存储的是当时的股票值。
●创建一支有特定代码和名字的股票的构造方法。
●一个名为getChangePercent()的方法返回从previousClosingPrice变化到currentPrice
的百分比。
实现这个类,编写一个测试程序,创建一个Stock对象,它的股票代码是Java,股票名字为Sun Mircro,前一日收盘价是4.5。
设置新的当前值为4.35,然后显示市值变化的百分比。
【选题人数:3】
18. 题目:计算字符串中子串出现的次数
编写一个程序,从键盘上输入字符串和子串,计算字符串中子串出现的次数。
【选题人数:3】
19. 题目:数据加密的实现。
某个公司采用公用电话传递数据,数据是四位的整数(从键盘输入),在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换(打印出加密后的数据)。
【选题人数:3】。