JAVA入门练习题含答案Word下载.docx
《JAVA入门练习题含答案Word下载.docx》由会员分享,可在线阅读,更多相关《JAVA入门练习题含答案Word下载.docx(6页珍藏版)》请在冰豆网上搜索。
b=();
deffcd=newdeff();
m=(a,b);
intn=a*b/m;
最大公约数:
+m);
最小公倍数:
+n);
}}classdeff{publicintdeff(intx,inty){intt;
if(x<
y){t=x;
x=y;
y=t;
}?
while(y!
=0){if(x==y)returnx;
else{intk=x%y;
y=k;
}}returnx;
}}
【程序7】?
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
publicclasslianxi07{publicstaticvoidmain(String[]args){intdigital=0;
intcharacter=0;
intother=0;
intblank=0;
char[]ch=null;
Scannersc=newScanner;
Strings=();
ch=();
for(inti=0;
i<
i++){if(ch>
='
0'
&
&
ch<
9'
){digital++;
}elseif((ch>
a'
z'
)||ch>
'
Z'
){character++;
}elseif(ch=='
){blank++;
}else{other++;
}}数字个数:
+digital);
英文字母个数:
+character);
空格个数:
+blank);
其他字符个数:
+other);
}
【程序8】?
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
publicclasslianxi08{publicstaticvoidmain(String[]args){longa,b=0,sum=0;
输入数字a的值:
输入相加的项数:
intn=();
inti=0;
while(i<
n){b=b+a;
sum=sum+b;
a=a*10;
++i;
}}}【程序9】?
一个数如果恰好等于它的因子之和,这个数就称为"
完数"
。
例如6=1+2+3.编程找出1000以内的所有完数。
publicclasslianxi09{publicstaticvoidmain(String[]args){到1000的完数有:
for(inti=1;
1000;
i++){intt=0;
for(intj=1;
j<
=i/2;
j++){if(i%j==0){t=t+j;
}}if(t==i){}}}
【程序10】?
一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米第10次反弹多高publicclasslianxi10{publicstaticvoidmain(String[]args){doubleh=100,s=100;
10;
i++){s=s+h;
h=h/2;
}经过路程:
+s);
反弹高度:
+h/2);
【程序11】?
有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数都是多少?
publicclasslianxi11{publicstaticvoidmain(String[]args){intcount=0;
for(intx=1;
x<
5;
x++){for(inty=1;
y<
y++){for(intz=1;
z<
z++){if(x!
=y&
y!
=z&
x!
=z){count++;
}}}}共有"
+count+"
个三位数"
【程序12】?
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成%;
20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;
60万到100万之间时,高于60万元的部分,可提成%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?
publicclasslianxi12{publicstaticvoidmain(String[]args){doublex=0,y=0;
输入当月利润(万):
x=();
if(x>
0&
x<
=10){y=x*;
}elseif(x>
10&
=20){y=10*+(x-10)*;
20&
=40){y=10*+10*+(x-20)*;
40&
=60){y=10*+10*+20*+(x-40)*;
60&
=100){y=20*+20*+20*+(x-60)*;
}elseif(x>
100){y=20*+40*+40*+(x-100)*;
}应该提取的奖金是"
+y+"
万"
}}
【程序13】?
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
publicclasslianxi13{publicstaticvoidmain(String[]args){for(intx=1;
100000;
x++){if(x+100)%1==0){if(x+268)%1==0){加100是一个完全平方数,再加168又是一个完全平方数"
}}}}}/*按题意循环应该从-100开始(整数包括正整数、负整数、零),这样会多一个满足条件的数-99。
但是我看到大部分人解这道题目时都把题中的“整数”理解成正整数,我也就随大流了。
*/
【程序14】?
输入某年某月某日,判断这一天是这一年的第几天?
publicclasslianxi14{publicstaticvoidmain(String[]args){intyear,month,day;
intdays=0;
intd=0;
inte;
inputfymd=newinput();
do{e=0;
输入年:
year=();
输入月:
month=();
输入天:
day=();
if(year<
0||month<
0||month>
12||day<
0||day>
31){输入错误,请重新输入!
e=1;
}}while(e==1);
for(inti=1;
i<
month;
i++){switch(i){case1:
case3:
case5:
case7:
case8:
case10:
case12:
days=31;
break;
case4:
case6:
case9:
case11:
days=30;
case2:
if((year%400==0)||(year%4==0&
year%100!
=0)){days=29;
}else{days=28;
}break;
}d+=days;
}是这年的第"
+(d+day)+"
天。
}}classinput{publicintinput(){intvalue=0;
value=();
returnvalue;
【程序15】?
输入三个整数x,y,z,请把这三个数由小到大输出。
publicclasslianxi15{publicstaticvoidmain(String[]args){inputfnc=newinput();
intx=0,y=0,z=0;
输入第一个数字:
输入第二个数字:
y=();
输入第三个数字:
z=();
if(x>
y){intt=x;
}if(x>
z){intt=x;
x=z;
z=t;
}if(y>
z){intt=y;
y=z;
}三个数字由小到大排列为:
+x+"
+z);
}
【程序16】题目:
输出9*9口诀。
publicclasslianxi16{publicstaticvoidmain(String[]args){for(inti=1;
i++){for(intj=1;
=i;
j++){}}}}【程序17】?
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
publicclasslianxi17{publicstaticvoidmain(String[]args){intx=1;
for(inti=2;
=10;
i++){x=(x+1)*2;
}猴子第一天摘了"
+x+"
个桃子"
【程序18】?
两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。
有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
publicclasslianxi18{
staticchar[]m={'
'
b'
c'
};
staticchar[]n={'
x'
y'
publicstaticvoidmain(String[]args){
for(inti=0;
i++){for(intj=0;
j<
j++){
if(m[i]=='
n[j]=='
){
continue;
}elseif(m[i]=='
}elseif((m[i]=='
)
||(m[i]=='
)){
}else
}
【程序19】?
打印出如下图案(菱形)?
*?
***?
*****?
*******?
publicclasslianxi19{publicstaticvoidmain(String[]args){intH=7,W=7;
.求出这个数列的前20项之和。
publicclasslianxi20{publicstaticvoidmain(String[]args){intx=2,y=1,t;
doublesum=0;
=20;
i++){sum=sum+(double)x/y;
t=y;
y=x;
x=y+t;
}前20项相加之和是:
+sum);
【程序21】?
求1+2!
+3!
+...+20!
的和?
publicclasslianxi21{publicstaticvoidmain(String[]args){longsum=0;
longfac=1;
i++){fac=fac*i;
sum+=fac;
}}
【程序22】?
利用递归方法求5!
publicclasslianxi22{publicstaticvoidmain(String[]args){intn=5;
recfr=newrec();
}}classrec{publiclongrec(intn){longvalue=0;
if(n==1){value=1;
}else{value=n*rec(n-1);
}returnvalue;
【程序23】?
有5个人坐在一起,问第五个人多少岁他说比第4个人大2岁。
问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大
publicclasslianxi23{publicstaticvoidmain(String[]args){intage=10;
=5;
i++){age=age+2;
}}}
【程序24】?
给一个不多于5位的正整数,要求:
一、求它是几位数,二、逆序打印出各位数字。
publicclasslianxi24{publicstaticvoidmain(String[]args){Scanners=newScanner;
longa=();
Stringss=(a);
char[]ch=();
intj=;
for(inti=j-1;
i>
=0;
i--){}}}
【程序25】?
一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
publicclasslianxi25{publicstaticvoidmain(String[]args){Scanners=newScanner;
inta;
do{a=();
}while(a<
10000||a>
99999);
Stringss=(a);
if(ch[0]==ch[4]&
ch[1]==ch[3]){}};
publicclasslianxi25a{publicstaticvoidmain(String[]args){Scanners=newScanner;
booleanis=true;
j/2;
i++){if(ch[i]!
=ch[j-i-1]){is=false;
}}}}
【程序26】?
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
publicclasslianxi26{publicstaticvoidmain(String[]args){getChartw=newgetChar();
charch=();
switch(ch){case'
M'
:
break;
case'
W'
F'
T'
{charch2=();
}};
S'
}}}classgetChar{publicchargetChar(){Scanners=newScanner;
Stringstr=();
charch=(0);
if(ch<
||ch>
){ch=getChar();
}returnch;
}}?
【程序27】?
求100之内的素数?
27a;
publicclasslianxi28{publicstaticvoidmain(String[]args){Scanners=newScanner;
int[]a=newint[10];
i++){a[i]=();
}for(inti=0;
i++){for(intj=i+1;
j++){if(a[i]>
a[j]){intt=a[i];
a[i]=a[j];
a[j]=t;
}}}for(inti=0;
i++){}}}
【程序29】?
求一个3*3矩阵对角线元素之和?
publicclasslianxi29{publicstaticvoidmain(String[]args){Scanners=newScanner;
int[][]a=newint[3][3];
3;
i++){for(intj=0;
j++){a[i][j]=();
}}for(inti=0;
j++){}}intsum=0;
j++){if(i==j){sum+=a[i][j];
}}}}}【程序30】?
有一个已经排好序的数组。
现输入一个数,要求按原来的规律将它插入数组中。
publicclasslianxi30{publicstaticvoidmain(String[]args){int[]a=newint[]{1,2,6,14,25,36,37,55};
int[]b=newint[+1];
intt1=0,t2=0;
inti=0;
Scanners=newScanner;
intnum=();
if(num>
=a[]){b[]=num;
for(i=0;
i++){b[i]=a[i];
}}else{for(i=0;
i++){if(num>
=a[i]){b[i]=a[i];
}else{b[i]=num;
}}for(intj=i+1;
j++){b[j]=a[j-1];
}}for(i=0;
i++){}}}【程序31】题目:
将一个数组逆序输出。
publicclasslianxi31{publicstaticvoidmain(String[]args){Scanners=newScanner;
inta[]=newint[20];
inti=0,j;
do{a[i]=();
i++;
}while(a[i-1]!
=-1);
for(j=0;
i-1;
j++){}for(j=i-2;
j>
j=j-1){}}}【程序32】?
取一个整数a从右端开始的4~7位。
publicclasslianxi32{publicstaticvoidmain(String[]args){Scanners=newScanner;
else{}}}【程序33】?
打印出杨辉三角形(要求打印出10行如下图)?
1