《Java经典编程题(附答案).pdf》由会员分享,可在线阅读,更多相关《Java经典编程题(附答案).pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 特别说明特别说明 此资料来自百度文库(http:/ 此文档原地址来自 感谢您的支持 抱米花 http:/ h t t p:/w e n k u.b a i d u.c o m/v i e w/338375c 789e b 172d e d 63b 7a f.h t m l【程序1】目:古典:有一兔子,从出生后第3个月起每个月都生一兔子,小兔子长到第三个月后每个月又生一 兔子,假如兔子都不死,每个月的兔子总多少?1.程序分析:兔子的律列1,1,2,3,5,8,13,21.【程序2】目:判101-200之间有多少个素,并输出所有素。1.程序分析:判素的方法:用一个分去除2到s q r t(个),
2、如果能被整除,表明此不是素,反之是素。【程序3】目:打印出所有的水仙花,所水仙花是指一个三位,其各位字立方和等于本身。例如:153是一个水仙花,因153=1的三次方5的三次方3的三次方。1.程序分析:利用f o r 循控制100-999个,每个分解出个位,十位,百位。【程序4】目:一个正整分解因。例如:输入90,打印出90=2*3*3*5。程序分析:n 行分解因,先找到一个最小的k,然后按下述步完成:(1)如果个恰等于n,明分解因的程已经束,打印出即可。(2)如果n k,但n 能被k 整除,打印出k 的值,并用n 除以k 的商,作新的正整你n,重复行第一步。(3)如果n 不能被k 整除,用k+
3、1作k 的值,重复行第一步。【程序5】目:利用条件运算符的嵌套完成此:学成=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。1.程序分析:(a b)?a:b 是条件运算符的基本例子。【程序6】目:输入两个正整m 和n,求其最大公和最小公倍。1.程序分析:利用除法。【程序7】目:输入一行字符,分统出其中英文字母、空格、字和其它字符的个。1.程序分析:利用w h i l e 句,条件输入的字符不n.【程序8】目:求s=a+a a+a a a+a a a a+a a.a 的值,其中a 是一个字。例如2+22+222+2222+22222(此共有5个相加),几个相加有控制。1
4、.程序分析:是算出每一的值。【程序9】目:一个如果恰好等于它的因子之和,个就完。例如6=123.程 找出1000以的所有完 。【程序10】目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地,共经多 少米?第10次反多高?【程序11】目:有1、2、3、4个字,能成多少个互不相同且无重复字的三位?都是多少?1.程序分析:可填在百位、十位、个位的字都是1、2、3、4。成所有的排列后再去 掉不足条件的排列。【程序12】目:企业发放的金根据利提成。利(I)低于或等于10万元,金可提10%;利高于10万元,低于20万 元,低于10万元的部分按10%提成,高于10万元
5、的部分,可可提成7.5%;20万到40万之间,高于20万元的部 分,可提成5%;40万到60万之间高于40万元的部分,可提成3%;60万到100万之间,高于60万元的部分,可 提成1.5%,高于100万元,超100万元的部分按1%提成,从输入月利I,求发放金总?1.程序分析:利用分界,定位。注意定义需把金定义成长整型。【程序13】目:一个整,它加上100后是一个完全平方,再加上168又是一个完全平方,是多少?1.程序分析:在10万以判,先加上100后再方,再加上268后再方,如果方后的果足 如下条件,即是果。看具体分析:【程序14】目:输入某年某月某日,判一天是一年的第几天?1.程序分析:以3
6、月5日例,先把前两个月的加起,然后再加上5天即本年的第几天,特殊情况,年且 输入月份大于3需考多加一天。【程序15】目:输入三个整x,y,z,把三个由小到大输出。1.程序分析:我想法把最小的放到x 上,先x 与y 行比,如果x y x 与y 的值行交,然后再用x 与z 行比,如果x z x 与z 的值行交,样能使x 最小。【程序16】目:输出9*9口。1.程序分析:分行与列考,共9行9列,i 控制行,j 控制列。第一:i m p o r t j a v a x.s w i n g.JOp t i o n Pa n e;p u b l i c c l a s s Ra b b i t Co u
7、n t /假定兔子一年,12个月份 i n t m o n t h=n e w i n t 12;p u b l i c Ra b b i t Co u n t()i n t n u m =In t e g e r.p a r s e In t(JOp t i o n Pa n e.s h o w In p u t Di a l o g(输入月份);/初始化,第一、二个月都1兔子 m o n t h 0=m o n t h 1=1;n u m =c o u n t(n u m);i f(n u m 0)JOp t i o n Pa n e.s h o w Me s s a g e Di a l
8、 o g(n u l l,本月兔子的个:+n u m*2);p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)n e w Ra b b i t Co u n t();/*方法用算每个月兔子的量*/p r i v a t e i n t c o u n t (i n t n u m)i f (n u m =0)JOp t i o n Pa n e.s h o w Me s s a g e Di a l o g(n u l l,兔子个不能小于零!);e l s e i f(n u m =1|n u m=2)n u m =1;e l
9、 s e f o r(i n t i=2;i=n u m;i+)/里是律 m o n t h i =m o n t h i-1+m o n t h i-2;n u m =m o n t h n u m-1;r e t u r n n u m;第二:(以下方法判是否)方法一:i m p o r t j a v a.u t i l.Sc a n n e r;p u b l i c c l a s s Pr i m e Nu m b e r /*用(i n t)Ma t h.s q r t(n)求出循上限 *i s Pr i m e()方法用前是否 */p u b l i c s t a t i c
10、 b o o l e a n i s Pr i m e(i n t n u m)b o o l e a n p r i m e =t r u e;i n t l i m i t =(i n t)Ma t h.s q r t(n u m);f o r (i n t i =2;i =l i m i t;i+)i f (n u m%i =0)p r i m e =f a l s e;b r e a k;r e t u r n p r i m e;p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)Sc a n n e r i n p
11、u t =n e w Sc a n n e r(Sy s t e m.i n);Sy s t e m.o u t.p r i n t(输入您要判的:);i n t n =i n p u t.n e x t In t();i f (i s Pr i m e(n)Sy s t e m.o u t.p r i n t l n(n +是!);e l s e Sy s t e m.o u t.p r i n t l n(n+不是!);方法二:i m p o r t j a v a.u t i l.*;p u b l i c c l a s s Pr i m e Nu m b e r 1 /每循一次刷新一
12、次循上限,如:n u m=n/2;(n/2的值值n u m 作循上限)p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)Sc a n n e r i n p u t=n e w Sc a n n e r(Sy s t e m.i n);l o n g Nu m b e r,i,s u m;St r i n g a n s w e r;b o o l e a n c o n=f a l s e;d o Sy s t e m.o u t.p r i n t l n(输入一个大于2的整:);Nu m b e r=i n p u t.
13、n e x t Lo n g();s u m=Nu m b e r;/*判*/f o r(i=2;i=s u m;i+)i f(Nu m b e r%i=0)c o n=t r u e;Sy s t e m.o u t.p r i n t l n(:+i);b r e a k;e l s e s u m=Nu m b e r/i;i f(c o n)Sy s t e m.o u t.p r i n t l n(Nu m b e r+不是);e l s e Sy s t e m.o u t.p r i n t l n(Nu m b e r+是);Sy s t e m.o u t.p r i n
14、t l n(n 是否(y/n);a n s w e r=i n p u t.n e x t();c o n=f a l s e;w h i l e(a n s w e r.e q u a l s(y);Sy s t e m.o u t.p r i n t l n(程序束!);第三:(2009年10月18日更新)i m p o r t j a v a.u t i l.*;p u b l i c c l a s s Da f f o d i l Nu m b e r p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)n e w D
15、a f f o d i l Nu m b e r().p r i n t();/*打印输出果*/p u b l i c v o i d p r i n t()i n t n u m b e r s =n e w i n t 900;i n t t e m p =100;f o r (i n t i=0;i 900;i+)n u m b e r s i +=t e m p+;f o r (i n t i=0;i 900;i+)St r i n g s t r 1=c h a n g e Nu m b e r(n u m b e r s i);i n t l i s t=s p l i t Nu
16、m b e r(s t r 1);i n t c o u n t =l i s t 0*l i s t 0*l i s t 0 +l i s t 1*l i s t 1*l i s t 1 +l i s t 2*l i s t 2*l i s t 2;i f(c o u n t =n u m b e r s i)Sy s t e m.o u t.p r i n t l n(c o u n t);/*拆分三位并保存到一个整型里*/p u b l i c i n t s p l i t Nu m b e r(St r i n g s)St r i n g s t r =s;i n t l i s
17、t =n e w i n t 3;l i s t 0=In t e g e r.p a r s e In t(s t r.s u b s t r i n g(0,1);l i s t 1=In t e g e r.p a r s e In t(s t r.s u b s t r i n g(1,2);l i s t 2=In t e g e r.p a r s e In t(s t r.s u b s t r i n g(2,3);r e t u r n l i s t;/*三位化成字符串*/p u b l i c St r i n g c h a n g e Nu m b e r(i n t
18、 n)i n t n u m b e r =n;St r i n g c h a n g e d Nu m b e r =;c h a n g e d Nu m b e r +=n u m b e r;r e t u r n c h a n g e d Nu m b e r;第四(2009年10月19日更新)i m p o r t j a v a.i o.*;p u b l i c c l a s s Br e a k In t Nu m p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)Bu f f e r e d Re a
19、 d e r i n =n e w Bu f f e r e d Re a d e r(n e w In p u t St r e a m Re a d e r(Sy s t e m.i n);Sy s t e m.o u t.p r i n t l n(输入一个不小于2的正整:);t r y i n t n =In t e g e r.p a r s e In t(i n.r e a d Li n e();Sy s t e m.o u t.p r i n t l n(*);i f(n 2)Sy s t e m.o u t.p r i n t l n(输入无效,输入一个不小于2的正整!);Sy
20、 s t e m.e x i t(0);i n t k =2;Sy s t e m.o u t.p r i n t(n+=);w h i l e(k=90?A:);Sy s t e m.o u t.p r i n t(n=60?B:);Sy s t e m.o u t.p r i n t(n 60?C:);第六(2009年10月19日 20:38 更新)/*除法:比如:20 和 16 的最大公是:4;*也就是(20-16)和 16 的最大公是4。*就是利用个原反复行求最大公的。*/i m p o r t j a v a.i o.*;i m p o r t j a v a.u t i l.*;p
21、 u b l i c c l a s s Gr e a t e s t Co m m o n Di v i s o r p r i v a t e i n t a,b ;p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)n e w Gr e a t e s t Co m m o n Di v i s o r().c a l();p u b l i c v o i d c a l()Bu f f e r e d Re a d e r i n p u t =n e w Bu f f e r e d Re a d e r(n e w
22、 In p u t St r e a m Re a d e r(Sy s t e m.i n);Sy s t e m.o u t.p r i n t l n(输入两个正整,以空格隔:);/取两个正整 a 和 b;t r y St r i n g i n =i n p u t.r e a d Li n e();St r i n g To k e n i z e r t o k e n i z e r =n e w St r i n g To k e n i z e r(i n);a =In t e g e r.p a r s e In t(t o k e n i z e r.n e x t To
23、 k e n();b =In t e g e r.p a r s e In t(t o k e n i z e r.n e x t To k e n();i f(a 0|b b 交两个 i f (a b)a =o l d B;b =o l d A;/利用除法求a、b 的最大公 i n t t e m p =b%a;w h i l e (t e m p !=0)b =a ;a =t e m p ;t e m p =b%a;i f(a=0)Sy s t e m.o u t.p r i n t l n(o l d A+和+o l d B+的最大公是:+a);b r e a k;i f (t e m
24、p =0)Sy s t e m.o u t.p r i n t l n(o l d A+和+o l d B+的最大公是:+a);Sy s t e m.e x i t(0);第七(2009年10月20日 9:59 更新)i m p o r t j a v a.i o.*;i m p o r t j a v a.u t i l.*;p u b l i c c l a s s St a t i c p r i v a t e St r i n g i n p u t;p r i v a t e i n t b Le t t e r =0;p r i v a t e i n t s Le t t e
25、r =0;p r i v a t e i n t n u m b e r s =0;p r i v a t e i n t o t h e r s =0;p r i v a t e i n t s p a c e s =0;p u b l i c St a t i c()t h i s.g e t St r i n g();c h a r l i s t =c h a r s Of St r i n g(i n p u t);f o r (i n t i=0;i=65&f l a g=97&f l a g=48&f l a g=57)n u m b e r s +=1;e l s e i f
26、(f l a g =32)s p a c e s +=1;e l s e o t h e r s +=1;Sy s t e m.o u t.p r i n t l n(您输入的字符串中的大字母有:+b Le t t e r);Sy s t e m.o u t.p r i n t l n(您输入的字符串中的小字母有:+s Le t t e r);Sy s t e m.o u t.p r i n t l n(您输入的字符串中的字有:+n u m b e r s);Sy s t e m.o u t.p r i n t l n(您输入的字符串中的空格有:+s p a c e s);Sy s t e m
27、.o u t.p r i n t l n(您输入的字符串中的其他字符有:+o t h e r s);p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)n e w St a t i c();/*方法取一字符串*/p u b l i c v o i d g e t St r i n g()Bu f f e r e d Re a d e r i n =n e w Bu f f e r e d Re a d e r(n e w In p u t St r e a m Re a d e r(Sy s t e m.i n);Sy s t
28、e m.o u t.p r i n t l n(输入一串字符串:);t r y t h i s.i n p u t =i n.r e a d Li n e();c a t c h (Ex c e p t i o n e)Sy s t e m.o u t.p r i n t l n(e);/*方法返字符串的各个字符到一个里*里我打算用Ar r a y Li s t 的,但是他只能保存Ob j e c t 类型*就是不知道怎么把Ob j e c t c h a r,所以,里就用c h a r */p u b l i c c h a r c h a r s Of St r i n g(St r i
29、n g s)c h a r l i s t =n e w c h a r s.l e n g t h();f o r (i n t i=0;i s.l e n g t h();i+)l i s t i =s.c h a r At(i);r e t u r n l i s t;/*方法字母ASCII*/p u b l i c i n t l e t t e r To Co d e(c h a r c h)i n t s =c h;r e t u r n s;第八(2009年10月21日 10:00 更新)i m p o r t j a v a.i o.*;i m p o r t j a v a.
30、u t i l.*;p u b l i c c l a s s Su m Nu m b e r s p r i v a t e St r i n g i n p u t;St r i n g To k e n i z e r s t =n u l l;p u b l i c Su m Nu m b e r s()Bu f f e r e d Re a d e r i n =n e w Bu f f e r e d Re a d e r(n e w In p u t St r e a m Re a d e r(Sy s t e m.i n);Sy s t e m.o u t.p r i n t
31、l n(输入字和其量,中间以空格分:);t r y i n p u t =i n.r e a d Li n e();s t =n e w St r i n g To k e n i z e r(i n p u t);c a t c h (Ex c e p t i o n e)Sy s t e m.o u t.p r i n t l n(正确输入!);d o u b l e n u m =Do u b l e.p a r s e Do u b l e(s t.n e x t To k e n();i n t c o u n t =In t e g e r.p a r s e In t(s t.n
32、 e x t To k e n();d o u b l e r =Nu m b e r s(n u m,c o u n t);Sy s t e m.o u t.p r i n t l n(g e t St r i n g(r)+=+c a l Re s u l t(r);/*得到需要的*/p u b l i c d o u b l e Nu m b e r s(d o u b l e n u m,i n t c o u n t)d o u b l e n u m b e r s =n e w d o u b l e 1c o u n t;d o u b l e t e m p =0;f o r
33、 (i n t i=0;i c o u n t ;i+)f o r (i n t j=0;j c o u n t-i ;j+)d o u b l e a =10.0;d o u b l e b =(d o u b l e)(j);t e m p +=n u m*Ma t h.p o w(a,b);n u m b e r s 0i =t e m p;t e m p =0;r e t u r n n u m b e r s;/*行算*/p u b l i c d o u b l e c a l Re s u l t(d o u b l e n u m b e r s)d o u b l e r e
34、 s u l t =0;f o r (i n t i=0;i n u m b e r s 0.l e n g t h ;i+)r e s u l t +=n u m b e r s 0i;r e t u r n r e s u l t;/*取得的字符串形式 */p u b l i c St r i n g g e t St r i n g(d o u b l e n u m b e r s)St r i n g t e m p =;St r i n g r e s u l t;f o r (i n t i=0;i n u m b e r s 0.l e n g t h ;i+)t e m p
35、+=n u m b e r s 0i +;r e s u l t =t e m p.s u b s t r i n g(0,t e m p.l e n g t h()-1);r e t u r n r e s u l t;p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)n e w Su m Nu m b e r s();第九(由于和第三比类似,里不再实例)第十(2009年10月22日 14:59 更新)p u b l i c c l a s s Ha l f He i g h t p u b l i c s t a t i
36、c v o i d m a i n(St r i n g a r g s)Sy s t e m.o u t.p r i n t l n(n e w Ha l f He i g h t().a l l Di s t a n c e(10);/*返回t i m e s 次的高度*/p u b l i c d o u b l e o u t Ha l f He i g h t(i n t t i m e s)d o u b l e o l d He i g h t =100;d o u b l e d t i m e s =(d o u b l e)t i m e s;d o u b l e o u
37、 t He i g h t;o u t He i g h t =o l d He i g h t *Ma t h.p o w(0.5,d t i m e s);r e t u r n o u t He i g h t;/*返回t i m e s 次所经的路程*/p u b l i c d o u b l e s i n g l e Di s t a n c e(i n t t i m e s)d o u b l e o l d He i g h t =100;d o u b l e d t i m e s =(d o u b l e)t i m e s;d o u b l e d i s t
38、a n c e;i f (t i m e s =1)d i s t a n c e =100;e l s e d i s t a n c e =o l d He i g h t *Ma t h.p o w(0.5,d t i m e s-1)+t h i s.o u t Ha l f He i g h t(t i m e s);r e t u r n d i s t a n c e;/*返回t i m e s 次总走的路程*/p u b l i c d o u b l e a l l Di s t a n c e(i n t t i m e s)d o u b l e r e s u l t
39、=0;f o r (i n t i =1;i=t i m e s ;i+)r e s u l t +=s i n g l e Di s t a n c e(i);r e t u r n r e s u l t;果:249.70703125 m 第十一(2009年10月22日 16:47)i m p o r t j a v a.u t i l.*;p u b l i c c l a s s Th r e e Di g i t Ra n g e p u b l i c s t a t i c v o i d m a i n(St r i n g a r g s)Li s t a =n e w Ar
40、 r a y Li s t();Li s t a l l Nu m s =n e w Ar r a y Li s t();Li s t n e e d Nu m s =n e w Ar r a y Li s t();a.a d d(1);a.a d d(2);a.a d d(3);a.a d d(4);Li s t b =a;Li s t c =a ;St r i n g n u m b e r =;/循得到所有的合形式 f o r (i n t i=0;i a.s i z e();i+)f o r (i n t j=0;j a.s i z e();j+)f o r (i n t r=0;r
41、a.s i z e();r+)n u m b e r +=a.g e t(i)+b.g e t(j)+c.g e t(r);a l l Nu m s.a d d(n u m b e r);n u m b e r =;/找出所有有重复字的合形式 It e r a t o r i t e 1=a l l Nu m s.i t e r a t o r();w h i l e(i t e 1.h a s Ne x t()St r i n g t e m p =(St r i n g)i t e 1.n e x t();St r i n g x =t e m p.s u b s t r i n g(0,
42、1);St r i n g y =t e m p.s u b s t r i n g(1,2);St r i n g z =t e m p.s u b s t r i n g(2,3);i f(x.e q u a l s(y)=f a l s e&y.e q u a l s(z)=f a l s e&z.e q u a l s(x)=f a l s e)n e e d Nu m s.a d d(t e m p);/列出所有果 Sy s t e m.o u t.p r i n t l n(样的合总共有:+n e e d Nu m s.s i z e()+种。);Sy s t e m.o u t.
43、p r i n t l n();Sy s t e m.o u t.p r i n t l n(分如下:);It e r a t o r i t e 2=n e e d Nu m s.i t e r a t o r();w h i l e(i t e 2.h a s Ne x t()Sy s t e m.o u t.p r i n t l n(i t e 2.n e x t();第十二(2009年10月23日 9:39 更新)i m p o r t j a v a.i o.*;p u b l i c c l a s s Bo n u s p u b l i c s t a t i c v o i
44、 d m a i n(St r i n g a r g s)t h r o w s Ex c e p t i o n Bu f f e r e d Re a d e r i n p u t =n e w Bu f f e r e d Re a d e r(n e w In p u t St r e a m Re a d e r(Sy s t e m.i n);Sy s t e m.o u t.p r i n t l n(输入利:);St r i n g i n =i n p u t.r e a d Li n e();d o u b l e m a r g i n =Do u b l e.p a
45、 r s e Do u b l e(i n);i n t x =r e Nu m(m a r g i n);d o u b l e b o n u s;s w i t c h(x)c a s e 1:b o n u s =0.1*m a r g i n;Sy s t e m.o u t.p r i n t l n(您得金:+b o n u s+万元);b r e a k;c a s e 2:b o n u s =0.1*10+0.075*(m a r g i n-10);Sy s t e m.o u t.p r i n t l n(您得金:+b o n u s+万元);b r e a k;c
46、a s e 3:b o n u s =0.1*10+0.075*10+0.05*(m a r g i n-20);Sy s t e m.o u t.p r i n t l n(您得金:+b o n u s+万元);b r e a k;c a s e 4:b o n u s =0.1*10+0.075*10+0.05*10+0.03*(m a r g i n-30);Sy s t e m.o u t.p r i n t l n(您得金:+b o n u s+万元);b r e a k;c a s e 5:b o n u s =0.1*10+0.075*10+0.05*10+0.03*10+0.0
47、15*(m a r g i n-40);Sy s t e m.o u t.p r i n t l n(您得金:+b o n u s+万元);b r e a k;c a s e 6:b o n u s =0.1*10+0.075*10+0.05*10+0.03*10+0.015*10+0.01*(m a r g i n-50);Sy s t e m.o u t.p r i n t l n(您得金:+b o n u s+万元);b r e a k;/*划分不同间利用s w i t c h 行判输出*/p u b l i c s t a t i c i n t r e Nu m(d o u b l
48、e d)i f(d 10&d=20&d=40&d=60&d 100)r e t u r n 5;e l s e r e t u r n 6;第十三(2009年10月23日 20:07 更新)/*a u t o r:茂斌*t i m e :2009-10-23*原思想*迎指正*/p u b l i c c l a s s Fi n d Nu m p u b l i c s t a t i c v o i d m a i n (St r i n g a r g s)d o u b l e u p Li m i t =100000;f o r (i n t i =0;i=u p Li m i t ;
49、i+)/先算个分加100和168后的算平方根 d o u b l e d Nu m 1=Ma t h.s q r t(i+100);d o u b l e d Nu m 2=Ma t h.s q r t(i+168);/把两个平方根成字符串 St r i n g s Nu m 1=d Nu m 1+;St r i n g s Nu m 2=d Nu m 2+;/取他小点之前的字,即:原字的整部分 St r i n g s u b In t Nu m 1=s Nu m 1.s u b s t r i n g(0,s Nu m 1.i n d e x Of(.);St r i n g s u b
50、In t Nu m 2=s Nu m 2.s u b s t r i n g(0,s Nu m 2.i n d e x Of(.);/然后把整部分原成d o u b l e 字 d o u b l e i n t Nu m 1=Do u b l e.p a r s e Do u b l e(s u b In t Nu m 1);d o u b l e i n t Nu m 2=Do u b l e.p a r s e Do u b l e(s u b In t Nu m 2);/比:如果两个字的整部分和本身分都相等,是果。i f (d Nu m 1=i n t Nu m 1&d Nu m 2=