java编程练习题及答案.docx
- 文档编号:18134264
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:17
- 大小:20.34KB
java编程练习题及答案.docx
《java编程练习题及答案.docx》由会员分享,可在线阅读,更多相关《java编程练习题及答案.docx(17页珍藏版)》请在冰点文库上搜索。
java编程练习题及答案
java编程练习题及答案
【篇一:
java基础编程练习题(50题及答案)2017】
class=txt>【程序1】
题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//这是一个菲波拉契数列问题
publicclasslianxi01{
publicstaticvoidmain(string[]args){
system.out.println(第1个月的兔子对数:
1);
system.out.println(第2个月的兔子对数:
1);
intf1=1,f2=1,f,m=24;
for(inti=3;i=m;i++){
f=f2;
f2=f1+f2;
f1=f;
system.out.println(第+i+个月的兔子对数:
+f2);
}
}
}
【程序2】
题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
publicclasslianxi02{
publicstaticvoidmain(string[]args){
intcount=0;
for(inti=101;i200;i+=2){
booleanb=false;
for(intj=2;j=math.sqrt(i);j++)
{
if(i%j==0){b=false;break;}
else{b=true;}
}
if(b==true){count++;system.out.println(i);}
}
system.out.println(素数个数是:
+count);
}
}
【程序3】
题目:
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
publicclasslianxi03{
publicstaticvoidmain(string[]args){
intb1,b2,b3;
for(intm=101;m1000;m++){
b3=m/100;
b2=m%100/10;
b1=m%10;
if((b3*b3*b3+b2*b2*b2+b1*b1*b1)==m){
system.out.println(m+是一个水仙花数);}
}
}
}
【程序4】
题目:
将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
importjava.util.*;
publicclasslianxi04{
publicstaticvoidmain(string[]args){
scanners=newscanner(system.in);
system.out.print(请键入一个正整数:
);
intn=s.nextint();
intk=2;
system.out.print(n+=);
while(k=n){
if(k==n){system.out.println(n);break;}
elseif(n%k==0){system.out.print(k+*);n=n/k;}
elsek++;
}
}
}
【程序5】
题目:
利用条件运算符的嵌套来完成此题:
学习成绩=90分的同学用a表示,60-89分之间的用b表示,60分以下的用c表示。
importjava.util.*;
publicclasslianxi05{
publicstaticvoidmain(string[]args){
intx;
chargrade;
scanners=newscanner(system.in);
system.out.print(请输入一个成绩:
);
x=s.nextint();
grade=x=90?
a
:
x=60?
b
:
c;
system.out.println(等级为:
+grade);
}
}
【程序6】
题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。
*/
importjava.util.*;
publicclasslianxi06{
publicstaticvoidmain(string[]args){
inta,b,m;
scanners=newscanner(system.in);
system.out.print(键入一个整数:
);
a=s.nextint();
system.out.print(再键入一个整数:
);
b=s.nextint();
deffcd=newdeff();
m=cd.deff(a,b);
intn=a*b/m;
system.out.println(最大公约数:
+m);
system.out.println(最小公倍数:
+n);
}
}
classdeff{
publicintdeff(intx,inty){
intt;
if(xy){
t=x;
x=y;
y=t;
}
while(y!
=0){
if(x==y)returnx;
else{
intk=x%y;
x=y;
y=k;
}
}
returnx;
}
}
【程序7】
题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
packagewuyang;
importjava.util.*;
publicclasslianxi07{
publicstaticvoidmain(string[]args){intabccount=0;//英文字母个数intspacecount=0;//空格键个数intnumcount=0;//数字个数intothercount=0;//其他字符个数scannerscan=newscanner(system.in);//扫描器接受控制台的输入信息system.out.println(输入一组字符);
}stringstr=scan.nextline();//取出控制台的一行信息,也就是你输入的信息char[]ch=str.tochararray();//把取道的字符串变成一个char数组for(inti=0;ich.length;i++){if(character.isletter(ch[i])){//判断是否字母abccount++;}elseif(character.isdigit(ch[i])){//判断是否数字numcount++;}elseif(character.isspacechar(ch[i])){//判断是否空格键spacecount++;}else{//以上都不是则认为是其他字符othercount++;}}system.out.println(字母个数:
+abccount);system.out.println(数字个数:
+numcount);system.out.println(空格个数:
+spacecount);system.out.println(其他字符个数:
+othercount);}
【程序8】
题目:
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
importjava.util.*;
publicclasslianxi08{
publicstaticvoidmain(string[]args){
longa,b=0,sum=0;
scanners=newscanner(system.in);
system.out.print(输入数字a的值:
);
a=s.nextint();
system.out.print(输入相加的项数:
);
intn=s.nextint();
inti=0;
while(in){
b=b+a;
sum=sum+b;
a=a*10;
++i;
}
system.out.println(sum);
}
}
【程序9】
题目:
一个数如果恰好等于它的因子之和,这个数就称为完数。
例如6=1+2+3.编程找出1000以内的所有完数。
publicclasslianxi09{
publicstaticvoidmain(string[]args){
system.out.println(1到1000的完数有:
);
for(inti=1;i1000;i++){
intt=0;
for(intj=1;j=i/2;j++){
if(i%j==0){
t=t+j;
}
}
if(t==i){
system.out.print(i+);
}
}
}
}
【程序10】
题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
publicclasslianxi10{
【篇二:
java面向对象编程练习题答案0】
txt>猜数字游戏:
一个类a有一个成员变量v,有一个初值100。
定义一个类,对a类的成员变量v进行猜。
如果大了则提示大了,小了则提示小了。
等于则提示猜测成功。
importjava.util.*;
classa{
intv=100;
a(){
this.v=v;
}
}
publicclassb01
{
publicstaticvoidmain(stringargs[]){
aa=newa();
scannerintput=newscanner(system.in);
intintputvalue=intput.nextlnt();
if(intputvaluea.v)
system.out.println(你的输入大于这个值);
if(intputvaluea.v)
system.out.println(你的输入小于这个值);
if(intputvalue==a.v)
system.out.println(猜测成功);
}
}
【练习题】02.类的成员变量:
请定义一个交通工具(vehicle)的类,其中有:
属性:
速度(speed),体积(size)等等
方法:
移动(move()),设置速度(setspeed(intspeed)),加速speedup(),减速speeddown()等等.
最后在测试类vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。
另外,调用加速,减速的方法对速度进行改变。
classvehicle
{intspeed;
intsize;
voidmove(){
};
voidsetspeed(intspeed){
this.speed=speed;
}
voidspeedup(){
speed=speed+1;
this.speed=speed;
}
voidspeeddown(){
speed=speed-1;
this.speed=speed;
}
}
publicclassb01
{publicstaticvoidmain(stringargs[]){
vehiclea=newvehicle();
a.setspeed(55);
a.size=80;
a.speedup();
system.out.println(speed:
+a.speed+\nsize:
+a.size);
}
}
【练习题】03.类的成员变量与方法、构造方法
在程序中,经常要对时间进行操作,但是并没有时间类型的数据。
那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为mytime的类,其中应有三个整型成员:
时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。
为mytime类定义构造方法,以方便创建对象时初始化成员变量。
再定义diaplay方法,用于将时间信息打印出来。
为mytime类添加以下方法:
addsecond(intsec)
addminute(intmin)
addhour(inthou)
subsecond(intsec)
subminute(intmin)
subhour(inthou)
分别对时、分、秒进行加减运算。
classmytime
{
privateinthour;
privateintminute;
privateintsecond;
publicmytime(inthour,intminute,intsecond){
this.hour=hour;
this.minute=minute;
this.second=second;
}
voiddiaplay(){
system.out.println(时间:
+hour+:
+minute+:
+second
);
}
voidaddsecond(intsec){
second=second+sec;
}
voidaddminute(intmin){
minute=minute+min;
}
voidaddhour(inthou){
hour=hour+hou;
}
voidsubsecond(intsec){
second=second-sec;
}
voidsubminute(intmin){
minute=minute-min;
}
voidsubhour(inthou){
hour=hour-hou;
}
voidtest(){
if(hour=23hour=0minute=59minute=0second=59second=0)system.out.println(\ntrue\n);
else
system.out.println(\nfalse\n);
}
}
publicclassb01
{
publicstaticvoidmain(stringargs[]){
mytimeb=newmytime(11,4,55);
b.subhour(5);
b.subminute(5);
b.subsecond
(2);
b.diaplay();
b.test();
}
}
【练习题】04.构造方法
编写java程序,模拟简单的计算器。
定义名为number的类,其中有两个整型数据成员n1和n2,应声明为私有。
编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行
加、减、乘、除的运算。
在main方法中创建number类的对象,调用各个方法,并显示计算结果。
classnumber
{
privateintn1;
privateintn2;
publicnumber(intn1,intn2){
this.n1=n1;
this.n2=n2;
}
voidaddition(){
intequal=n1+n2;
system.out.println(n1+n2=+equal);
}
voidsubtration(){
intequal=n1-n2;
system.out.println(n1-n2=+equal);
}
voidmultiplication(){
intequal=n1*n2;
system.out.println(n1*n2=+equal);
}
voiddivision(){
intequal=n1/n2;
system.out.println(n1/n2=+equal);
}
}
publicclassb01
{
publicstaticvoidmain(stringargs[]){
numbernum=newnumber(6,3);
num.division();
}
}
【练习题】05.构造方法:
编写java程序,用于显示人的姓名和年龄。
定义一个人类(person),该类中应该有两个私有属性,姓名(name)和年龄(age)。
定义构造方法,用来初始化数据成员。
再定义显示(display)方法,将姓名和年龄打印出来。
在main方法中创建人类的实例,然后将信息显示。
classperson
{
privatestringname;
privateintage;
publicperson(stringname,intage){
this.name=name;
this.age=age;
}
voiddisplay(){
system.out.println(姓名——+name+\n年龄——+age);}
}
publicclassb01
{
publicstaticvoidmain(stringargs[]){
personper=newperson(奥巴马,20);
per.display();
}
}
【练习题】06.get方法和set方法
定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getxxx()和setxxx()方法
提示:
假设有privatestringname;则有
publicvoidsetname(stringname){
this.name=name;
}
publicstringgetname(){
returnthis.name;
}
classperson
{
privatestringname;
publicperson(stringn){
this.setname(n);
}
publicvoidsetname(stringn){
name=n;
}
publicstringgetname(){
returnname;
}
publicvoidgetinfo(){
system.out.println(名字:
+name);
}
}
publicclassb01
【篇三:
java基础50道经典练习题及答案】
ss=txt>整理:
lemon
【程序1】
题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
【程序2】
题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,
【程序3】
题目:
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
【程序4】
题目:
将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
【程序5】
题目:
利用条件运算符的嵌套来完成此题:
学习成绩=90分的同学用a表示,60-89分之间的用b表示,60分以下的用c表示。
【程序6】
题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
【程序7】
题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 编程 练习题 答案