Java经典练习题Word格式文档下载.docx

上传人:b****6 文档编号:16384395 上传时间:2022-11-23 格式:DOCX 页数:27 大小:28.94KB
下载 相关 举报
Java经典练习题Word格式文档下载.docx_第1页
第1页 / 共27页
Java经典练习题Word格式文档下载.docx_第2页
第2页 / 共27页
Java经典练习题Word格式文档下载.docx_第3页
第3页 / 共27页
Java经典练习题Word格式文档下载.docx_第4页
第4页 / 共27页
Java经典练习题Word格式文档下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Java经典练习题Word格式文档下载.docx

《Java经典练习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java经典练习题Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。

Java经典练习题Word格式文档下载.docx

i++)for(intj=2;

j<

=i;

j++){if(i%j==0&

&

i==j){sum++;

System.out.println(i);

}elseif(i%j==0&

i!

=j)

break;

System.out.println("

101-200之间有:

+sum+"

个素数"

}

则表明此数不是素数,反之是素数。

【程序3】题目:

打印出所有的"

水仙花数"

,所谓"

是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个"

,因为153=1的三次方+5的三次方+3的三次方。

利用for循环控制100-999个数,每个数分解出个位,十位,百位。

publicclasstimu3{publicstaticvoidmain(String[]args){inti,j=0,k;

intbai,shi,ge;

for(i=100;

1000;

bai=i/100;

//求百位数shi=(i/10)%10;

//求十位数ge=(i%100)%10;

//求个位数

k=bai*bai*bai+shi*shi*shi+ge*ge*ge;

if(i==k){System.out.println(i);

j++;

符合条件的水仙花数为:

+j);

【程序4】题目:

将一个正整数分解质因数。

输入90,打印出90=2*3*3*5。

程序分析:

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<

>

k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

importjava.util.Scanner;

publicclasstimu4{

publicstaticvoidmain(String[]args){

for(;

;

){

Scannersc=newScanner(System.in);

inta,b;

intj=0;

System.out.println("

请输入一个整数"

a=sc.nextInt();

b=a;

//保存原数intage[]=newint[10];

//用来存质因数for(inti=2;

a!

=1;

)//求质因数

{

if(a%i==0){age[j]=i;

a=a/i;

}else

i++;

System.out.print(b+"

="

for(inti=0;

j;

System.out.print(age[i]);

if(i<

j-1)//判断是否是最后一位质因数,不是输出*

System.out.print("

*"

System.out.println();

【程序5】题目:

利用条件运算符的嵌套来完成此题:

学习成绩>

=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

(a>

b)?

a:

b这是条件运算符的基本例子。

【程序6】

输入两个正整数m和n,求其最大公约数和最小公倍数。

利用辗除法。

importjava.util.Scanner;

publicclasstimu6{

Scannersc=newScanner(System.in);

inta,b;

请输入两个整数:

a=sc.nextInt();

b=sc.nextInt();

您输入的数是:

+a+"

和"

+b);

intage[]=newint[(a+b)/2];

(a+b)/2;

if(a%i==0&

b%i==0){

age[j]=i;

j++;

最大公约数是:

+age[--j]);

for(intk=1;

k<

100000;

k++){if(k%a==0&

k%b==0){

System.out.println("

最小公倍数是:

+k);

break;

【程序7】

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

利用while语句,条件为输入的字符不为'

\n'

.【程序8】

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

关键是计算出每一项的值。

publicclasstimu8{

请输入a值:

longa,b;

请输入相加到几位数:

longs=0;

longi=1;

for(;

=b;

intw=1;

for(longj=b-i;

j>

0;

j--){

w=w*10;

s=s+a*w*i;

System.out.print("

s="

for(intm=1;

m<

m++){for(intn=1;

n<

=m;

n++){

System.out.print(a);

if(m!

=b)

+"

System.out.print("

+s);

【程序9】题目:

一个数如果恰好等于它的因子之和,这个数就称为"

完数"

例如6=1+2+3.编程找出1000以内的所有完数。

publicclasstimu9{publicstaticvoidmain(String[]args){

for(inti=1;

=1000;

inta=0;

for(intj=1;

i;

j++){

if(i%j==0)

a+=j;

if(a==i){

System.out.println(a);

sum++;

共有完数:

+sum);

【程序10】

一球从100米高度自由落下,每次落地后反跳回原高度的一半;

再落下,求它在第

10次落地时,共经过多少米?

第10次反弹多高?

publicclassBoll{

doublesum;

doublehigh=100.0;

sum=high;

for(inti=1;

i<

=10;

i++){//第i次落地;

high=high/2.0;

sum+=high;

//第i次返回时的高度if(i==10)sum-=high;

//第十次落地不返回

System.out.println("

第10次落地时,共经过"

米"

high=high/2;

第10次反弹"

+high+"

【程序11】

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

都是多少?

1.程序分析:

可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

publicclassTimu11{publicstaticvoidmain(String[]args){intaa[]={1,2,3,4};

intsum,number=0;

inta=0,b=0;

for(inti=0;

4;

i++){

sum=0;

sum=aa[i]*100;

b=sum;

for(intj=0;

j<

j++){

sum+=aa[j]*10;

a=sum;

for(intk=0;

k<

k++){

sum+=aa[k];

if(aa[i]!

=aa[j]&

aa[i]!

=aa[k]&

aa[j]!

=aa[k]){

number++;

System.out.println(sum);

}

sum=a;

}

sum=b;

共有"

+number+"

个数"

【程序12】

企业发放的奖金根据利润提成。

利润(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,求应发放奖金总数?

请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

publicclasstimu11{publicstaticvoidmain(String[]args){doublebonus,aa;

请输入利润:

aa=sc.nextInt();

if(aa<

=100000)bonus=aa*0.1;

elseif(aa<

=20000)bonus=100000*0.1+(aa-100000)*0.075;

=400000)bonus=100000*0.1+100000*0.075+(aa-200000)*0.05;

=600000)bonus=100000*0.1+100000*0.075+20000*0.05

+(aa-400000)*0.03;

elseif(aa<

=1000000)bonus=100000*0.1+100000*0.075+20000*0.05+200000

*0.03+(aa-600000)*0.015;

else

bonus=100000*0.1+100000*0.075+20000*0.05+200000*0.03+400000*0.015+(aa-1000000)*0.01;

当利润为:

+aa+"

元时,奖金是:

+bonus);

【程序13】

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

请看具体分析:

publicclasstimu13{publicstaticvoidmain(String[]args){

inta=1;

for(inti=0;

a++;

a+100;

j++){if(Math.sqrt(a+100)==j){

for(intk=1;

a+268;

k++){if(Math.sqrt(a+268)==k){

System.out.println("

这个数是:

+a);

break;

}

【程序14】

输入某年某月某日,判断这一天是这一年的第几天?

以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

publicclassDay{

publicstaticvoidmain(String[]args){intyear,month,day,number;

Scannersc=newScanner(System.in);

请输入年份:

year=sc.nextInt();

请输入月份:

month=sc.nextInt();

请输入日:

day=sc.nextInt();

输入日期是:

+year+"

年"

+month+"

月"

+day+"

日"

number=day;

switch(month-1){case11:

number+=30;

}case10:

number+=31;

}case9:

}case8:

}case7:

}case6:

}case5:

}case4:

}case3:

{number+=31;

}case2:

number+=28;

}case1:

}

}if(month>

2&

year%4==0)number+=1;

您输入的日期是一年当中的第:

天"

【程序15】题目:

输入三个整数x,y,z,请把这三个数由小到大输出。

我们想办法把最小的数放到x上,先将x与y进行比较,如果x>

y则将x与y的值进行交换,然后再用x与z进行比较,如果x>

z则将x与z的值进行交换,这样能使x最小。

publicclasstimu15{

inta,b,c;

请输入三个数"

c=sc.nextInt();

inte;

if(a>

b){

e=a;

a=b;

b=e;

c){

a=c;

c=e;

if(b>

e=b;

b=c;

c=e;

三个数由小到大为:

+a+"

"

+b+"

+c);

【程序16】题目:

输出9*9口诀。

分行与列考虑,共9行9列,i控制行,j控制列。

publicclasschengfa{

inti,j=1;

for(i=1;

=j&

10;

i++)//行

{

for(j=1;

=i;

j++)//列

{

intc=i*j;

System.out.print(i+"

+j);

System.out.print("

+c+"

System.out.println();

//当i=j时换行

}

}

【程序17】

猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

采取逆向思维的方法,从后往前推断。

publicclassMnokey{

publicstaticvoidmain(String[]args){intnumber=1;

for(inti=0;

9;

number=(number+1)*2;

第一天共摘了"

个桃子"

【程序18】题目:

两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单。

有人向队员打听比赛的名单。

a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

【程序19】题目:

打印出如下图案(菱形)

*

***

******

********

先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1