java习题集整理Word下载.docx
- 文档编号:8058839
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:23
- 大小:32.34KB
java习题集整理Word下载.docx
《java习题集整理Word下载.docx》由会员分享,可在线阅读,更多相关《java习题集整理Word下载.docx(23页珍藏版)》请在冰点文库上搜索。
2、编写一个程序,打印出
7
9
10
11
12
13
14
15
双层循环,外层循环控制行数,里层的循环控制列数,每一个数都是递加得出的。
只要控制格式即可。
3、海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份
第三、第四、第五只猴子都是这样做的,
问海滩上原来最少有多少个桃子?
桃子的个数有多少种可能?
最少的情况下,第五只猴子分配时每只猴子得到一个桃子,这是第五只猴子看到的桃子是6个。
以倒序的思维方式思考,倒推。
4、写一段程序,定义int型变量代表month月份,并赋给初值,根据月份判断出这个月是四季中的哪个季节?
不是一年12个月份的月份,输出“错误月份”。
用ifelse语句来编写程序,条件有:
1.月份大于0且小于等于3的是春季;
2.月份大于3且小于等于6的是夏季;
3.月份大于6且小于等于9的是秋季;
4.月份大于9且小于等于12的是冬季;
5.月份要符合12个月,否则是出错;
5、用while语句编写代码,输出1+2+3+4+…..100的值。
结束的条件是数值是小于101,执行体是一个数不断的叠加,最后输出结果。
6、输入两个正整数m和n,求其最大公约数和最小公倍数。
让最大值除以最小值取余,余数结果为0则二者最小值为最大公约数,如果余数不为0则让最小值再除以此余数,直至余数为0为止,则返回值为最大公约数。
求最小公倍数:
让两个数乘积除以最大公约数,求得的值为最小公倍数。
或:
从小数开始往前找,找到能被两个数整除的,就是最大公约数
7、判断闰年
如果年份值能被4整除且不能被100整除,或者能被400整除,就是闰年,否则不是
8、输出9*9乘法表
两层循环嵌套,外层控制行数,行数为9,里层控制每行输出的方式。
行数和列数都是以1开头的。
9、打印出所有的"
水仙花数"
,所谓"
是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个"
,因为153=1^3+5^3+3^3
分析:
循环100-999,分别截取各个位上的数,再立方求和比较是否等于该数本身
10、返回比n大的最小质数
质数:
除了1和本身不能被其他数整除的数。
从N开始循环递增,判定是否是质数,是的话就打印出来。
11、给一个不多于5位的正整数,要求:
一、求它是几位数,二、逆序打印出各位数字。
转换成字符串计算长度,再反写;
或者每次除10取余,直到余数为零,判定循环了多少次。
再将每次的余数倒序输出
12、输入某年某月某日,判断这一天是这一年的第几天。
程序分析:
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天。
特殊情况,闰年且输入月份大于3时需考虑多加一天。
13、输出下面的形式:
*
***
*****
循环嵌套,主要是控制格式,外层循环控制行数,里面有两个循环,一个循环先输出空格,另一个循环则输出*。
14、输出平行四边形:
***
***
***
循环嵌套,主要是控制格式,和三角形一样,外层循环控制行数,在里层循环中输出空格,再有一个循环控制输出*和空格。
15、输出菱形:
*
**
**
*
思路和三角形类似,但是分为上三角形和下三角形来输出。
16、企业发放的奖金根据利润提成。
利润低于或等于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,求应发放奖金总数?
利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
17、打印出如下图案(菱形)
***
*******
*****
先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。
18、一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
19、求100之内的素数
20、古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
fibonacci数列1,1,2,3,5,8,13,21....
21、纳税小程序:
如果工资大于2000,扣除百分之一,如果大于3000扣除百分之二,如果大于5000扣除百分之五。
输入一个工资数,输出税后工资数。
22、将一个正整数分解质因数。
输入90,打印出90=2*3*3*5。
(1)先找到能被n整除的最小的质数k
(2)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(3)如果n<
>
k,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
23、编程找出1000以内的所有完数。
一个数如果恰好等于它的因子之和,这个数就称为"
完数"
。
例如6=1+2+3
24、一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
25、输入三个整数x,y,z,请把这三个数由小到大输出。
我们想办法把最小的数放到x上,先将x与y进行比较,如果x>
y则将x与y的值进行交换,然后再用x与z进行比较,如果x>
z则将x与z的值进行交换,这样能使x最小。
26、两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。
有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
27、有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
请抓住分子与分母的变化规律。
28、求1+2!
+3!
+...+20!
的和
此程序只是把累加变成了累乘。
29、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
30、打印输出:
******
**
31、分页显示练习:
定义一个常量,设定数据总记录数为73条(随时可以变化),一页20条记录(随时可以变化),输入页码,打印记录总数,共几页,当前是第几页,当前记录从第n条到第n条。
32、将分页显示的功能增加判断,如果用户输入的小于1的页码,自动赋成1,如果超出了总页码,自动赋成总页码。
33、铁路托运行李规定;
行李重不超过50,每公斤0.15,超过50,超出部分每公斤加收0.1,输入重量,完成自动计费
34、超市为了促销规定:
消费不足50,按原价,超过50但不足100,按九折付款,超过100,超出的部分按八折付款;
输入消费金额,完成自动计费
35、三个数比较大小(三目运算符做)
36、输入一个整数,将其数值按小于10,10-99,100-999,1000以上分类并显示。
输入358时,显示358is100to999。
37、从键盘输入一位整数,当输入数字0时程序结束;
当输入1~7时,显示下面对应的英文星期名称缩写。
1:
MON 2:
TUE 3:
WED 4:
THU 5:
FRI 6:
SAT 7:
SUN
38、编写一个类实现数字于数字的加法。
(整数+整数,小数+整数,整数+小数,小数+小数)。
第4章类和对象
1、建立一个人类,有吃饭、睡觉的方法,有姓名、性别、联系电话的属性。
使用有参构造方法和无参构造方法初始化若干个对象。
并将每个人的信息打印输出。
建立一个类,并且用相应的类型将类的属性进行声明。
定义两个方法,及构造方法。
在主方法中将这个类实例化,用两种不同的方式:
(1)用构造方法实例化,
(2)用set方法,并将所需的信息打印。
2、建立汽车类,有启动、刹车、加速、减速的方法,有车牌号、车的颜色、车主姓名。
假设只有一辆车,并将这个车初始化。
建立汽车类,定义四个方法,并声明相应的属性,在主方法中实例化这个类的对象。
3、假设有一个动物类,只能够有一个实例化的对象,如何声明类?
这种方式即为单实例模式,一个类只有一个实例化的对象,则使这个类的构造方法私有化,类内包含一个静态的本类成员,再定义一个方法,此方法返回本类对象。
4、做一个汽车类,汽车的属性有:
长度,高度,宽度,座位数,汽车的方法有:
行驶,转向,倒退
5、编写并测试一个代表地址的Address类,地址信息由国家、省份、城市、街道、邮编组成、并可以返回完整的地址信息
6、定义并测试一个代表员工的Employ类。
员工的属性包括:
编号、姓名、基本薪水、薪水增长额、还包括计算薪水增长额及计算增长后的工资总额的操作方法。
7、设计一个Dog类,有名字、颜色、年龄等属性,定义构造方法来初始化类的这些属性,定义方法输出Dog信息,编写应用程序使用Dog类。
8、设计一个表示用户的User类,类中变量有用户名,口令,和记录用户个数的变量,定义类的3个构造方法(无参,为用户赋值,为用户名和口令赋值),获取和设置口令的方法,和返回信息的方法
9、编写一个公司员工类.数据成员包括:
员工号、姓名、薪水、部门。
利用构造设置以下信息
单参:
只传递员工工号,则员工姓名:
无名氏,薪水:
0,部门:
待定。
双参:
传递员工号、姓名,则员工薪水为1000,部门:
后勤。
4参:
传递员工号、姓名、部门、薪水。
无参:
则均为空值。
要求:
显示信息。
10、构造一个银行帐户类,类的构成包括如下信息:
1)数据成员用户的帐户名称,用户的帐户余额.
2)方法包括开户(设置帐户名称及余额),利用构造方法完成.
3)查询余额.
11、声明一个图书类,其数据成员为书名、编号、(利用静态变量实现自动编号)、书价,并拥有静态数据成员册数、记录图书的总册书,在构造方法中利用此静态变量为对象的编号赋值,在主方法中定义对象数组,并求出总册数
12、有1个组长,手下有2个助手,每个助手有2部车。
组长:
姓名、年龄
助手:
编号、年龄、姓名、特长
车:
车牌号、车型、价值
实现:
组长--助手--车的查询信息。
用数组来做,比如:
组长有个数组存两个助手
13、用面向对象的方式模拟“人遛狗”
14、用面向对象的方式模拟“乘客买票坐船”
15、用面向对象的方式模拟“两部手机发短信”
第5章数组
1、中国队的球员参加世界杯比赛,每个球员都有一个相同的进球的方法,每个球员进球的数量是随机个,输出每个球员进球的数量。
声明一个整型的数组,用来存储每个球员进球数,定义一个进球的方法,每个球员进球数为随机个,利用循环的方式,调用进球方法,每个球员进球的数量即为数组的元素,最后输出每个数组的元素。
2、建立一个数组,存储10个不同的int型数据,比较每个值的大小,按照从大到小的顺序排列,并将这个数字按照此顺序打印出来使用两种方法做出来。
提示:
冒泡排序和选择排序的方法
3、求3*3的矩阵的对角线中的所有元素之和。
每个数为从1到9的数。
用两层循环嵌套,利用两条对角线的行数和列数的关系求和,左对角线行数和列数相等,右对角线的行数和列数之和为2,利用这两种关系求得。
4、学校发省政府奖学金5000元,一共有50个学生获得了这个奖学金,分别输出获得该项奖学金的学生姓名。
声明一个类,在主方法中,有一个字符串型的数组,数组中存储的是每个人的姓名,则利用循环输出数组的元素即可。
5、有一个已经排好序的数组。
现输入一个数,要求按原来的规律将它插入数组中。
首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
6、输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
7、打印输出杨辉三角
8、写一个方法,用二分查找法判断任意整数在任意整数数组里面是否存在,若存在就返回它在数组中的索引位置,不存在返回-1
9、有n个人围成一圈,顺序排号。
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
10、十五个猴子围成一圈选大王,依次1-7循环报数,报到7的猴子被淘汰,直到最后一只猴子成为大王。
问,哪只猴子最后能成为大王
11、合并两个数组:
输入两个正整数m,n分别是数组a,b的元素个数,然后再输入a,b的元素,将其合并在一个数组里,a在前,b在后(放到一个新的数组c里)
输入45(m,n)
1245(a的m个元素)
23567(b的n个元素)
输出124523567
12、现在有如下一个数组:
intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中的0项去掉,将不为0的值存入一个新的数组.
13、声明一个长度为10的数组,用0-100的随机数初始化该数组,要求每个元素均不能重复。
14、编写用户信息类(用户名、密码、邮箱)
1)要求实现用户注册(验证用户名密码格式、邮箱格式:
如12235@@符号不能在第一个位置,点号不能在@前面并且@与.之间至少要有一个字符)
2)实现用户登录验证功能(验证用户名、密码)
15、模拟五子棋程序。
(1)打印10*10的矩阵图形
++++++++++
(2)输入坐标点X,Y使矩阵中对应的(X,Y)点变成X符号如下图:
2,3
++X+++++++
(3)电脑自动下棋用O符号标识。
电脑下棋位置由随机数生成。
3,5
++++O+++++
16、声明一个长度为10的整形数组,从控制台输入数据初始化该数组,如果输入的个数多于数组长度,实现动态扩展功能。
(数组的拷贝)
17、随机生成一个数n,取值在3-7之间,要求:
(1)生成一个n行n列的数组,该数组中每个元素的值要求是0-9之间的随机数,并输出。
(2)输出该数组中每行、每列元素的和。
(3)对该数组中的每行、每列元素的和进行从小到大排序输出。
(4)输出和值中的最大值和最小值。
18、随机生成两个整数r和c,取值都在3-8之间,输出r行c列的螺旋矩阵。
r值为4,c值为5.
12345
141516176
132019187
12111098
第6章字符串
1、初始化一个字符串,将其按照顺序输出再按照字符串的倒序输出字符串。
利用tocharArray()方法,将字符串放入一个数组当中,利用for循环按照其顺序输出,和倒序输出。
2、一个字符串当中含有大写字母和小写字母。
将字符串都变成大写字母输出一次,再将字符串都变成小写字母输出。
调用toLowerCase()方法将字符串中的字母都变成小写,调用toUpperCase()方法将字符串的字母都变成大写。
3、字符串“aabu4cd”将字符串改写成“aabuuuucd”并输出。
将原字符串变成“aabuccccd”输出字符串。
只要将字符串遍历后,判断每个字符是否是数字,数字在0到9之间,循环输出数字前的字母即可,下同。
4、将两个字符串连接并输出。
利用concat()方法,将两个字符串连接。
5、判断字符串是否以“a”结尾,如果是则输出此字符串,如果不是,则将字符串改成以“a”为结尾的字符串。
要利用endwith()方法判断,如果是则输出此字符串,如果不是,将最后一个字母更改为a.
6、输出指定字符串的指定位置的字母。
应用的是charAt()方法返回的是指定索引处的字符串。
7、输入一行字符串,分别统计出其中英文字母、空格、数字和其它字符的个数。
8、将TOM:
89|JERRY:
90|TONY:
78拆分成
TOM→89
JERRY→90
TONY→78
9、判断一个字符串是否是回文,例如“rotor“反转之后还是”rotor“,所以是回文
10、随机输入的一句话比如:
It’sonlyatest!
存放在一个char[]的数组中,统计char[]中的单词的个数。
11、从控制台输入一串字符,对该串字符进行加密操作,和解密操作并打印出来。
12、自定义字符串,全由0-9的数字组成,统计其中0-9出现的次数
第7章继承和多态
1、学生类和教师类都是继承了人类的属性和生活的方法,但是学生有学习的方法,而教师则有教书的方法。
因为学生类和教师类都继承了人类的属性和方法,所以先有一个人类,学生和教师来继承人类,在学生类里定义学习的方法,在教师的类里定义教书的方法。
2、汽车类和轿车类,轿车继承汽车,轿车重写了汽车的加速方法。
先写汽车类,汽车类里有加速的方法,轿车则继承了汽车,并将加速方法重写。
2、每个孩子都会犯错,父母根据孩子犯错的类型不一样,对错误进行处理,教育孩子。
写出父母类,孩子类和错误类。
有父母类,孩子类和错误类,错误类当中有处理错误的方法,
4、民政部门统计人口数量,统计出某个城市的工人的数量和学生的数量,要求有学生类和工人类,还有统计数据的类,最后,输出学生的数目和工人的数目,此数目为随机数。
定义三个类,学生、工人和统计数据的类,统计数据类当中有学生和工人类的对象数组作为其属性,并在类中定义输出学生和工人数目的方法。
5、模拟一款游戏,有战士、法师,战士为武力,攻击力为60、被击损伤80点,法师为魔法,攻击力为80、被击损伤100点血,战士血量为800,法师血量为600,怪物血量为10000,模拟游戏过程。
定义个NPC类,可以打怪和被打,战士、法师和怪都继承NPC类,并重写其中的方法。
6、要求有警察局,给警察局传入不同的罪犯,则警察局做出不同的处罚方法。
犯罪分子是多态的。
他身上有被处罚的方法。
7、在一个马戏团中有一些动物:
狗,猫,猴子,他们身上都有表演的方法,狗的表演方式是站立,猫的表演方式是跳火圈,猴子的表演方式是倒挂金钩,现在有一个驯养员他身上有一个指导表演的方法,即让动物们去表演,对于上面描述的内容,采用继承和多态进行模拟。
8、银行的客户分为两类,储蓄账户(SavingAccount)和信用账户(CreditAccount),区别在于储蓄账户不允许透支;
而信用账户可以透支,并允许用户设置自己的透支额度.
注意:
CreditAccount需要多一个属性ceiling透支额度
为这两种用户编写相关的类
同时要求编写Bank类,属性:
1)当前所有的账户对象的集合,存放在数组中
2)当前账户数量
方法:
1)用户开户,需要的参数:
id,密码,密码确认,姓名,身份证号码,邮箱,账户类型,返回新创建的Account对象
2)用户登录,参数:
id,密码返回Account对象
3)用户存款,参数:
id,存款数额,返回修改过的Account对象
4)用户取款,参数:
id,取款数额,返回修改过的Account对象
5)设置透支额度,参数:
id,新的额度,返回修改过的Account对象.这个方法需要验证账户是否是信用账户
9、现在有一个电子产品制造商,专门生产音乐播放产品,有MP3,手机,PC机.所有的音乐播放产品都有共同的行为:
音乐播放,显示播放列表.
编程模拟这个制造商,告诉制造商你想要哪种音乐播放产品,制造商立刻制造你所要的音乐播放产品并送到你的手中.
第8章应知类
1、一个类它有一个内部类,内部类有一个int型的属性,外部类也有一个int型的属性,创建一个对象,访问内部类的int属性。
主要是按照内部类的使用规则,创建内部类对象访问内部类的属性。
2、彩票开奖,要有五个随机的数,这五个随机数就是本次的中奖号码,请输出这一组中奖号码。
定义一个彩票类,主要应用的是math.random()方法,得到一组随机数。
3、把2.4和4.5和-5.6四舍五入变成整数输出。
主要应用round()方法。
4、递归输出5!
写一个方法,自己调用本方法算出阶乘,5作为参数传递,从5开始,直到1为止。
5、输出5!
+4!
+3!
+2!
+1;
思想同5!
一样,只不过是要通过循环,将这5个阶乘相加。
6、随机生成5个10以内的整数。
要求不能重复。
生成一个随机整数,与数组中的元素对比,如果数组中已经有这个元素了,重新生成。
7、有5个人坐在一起,问第5个人多少岁?
他说比第4个人
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 习题集 整理