1、名师精品JAVA编程题全集100题及答案docJava程序设计总复习题1、编写一个Java程序在屏幕上输出“你好!”。(p13,例1-1)写一个Java程序,用if-else语句判断某年份是否为闰年。1)编写一个圆类CiYcle,该类拥有:一个成员变量Yadius(私有,浮点型);用FileInputStYeam类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上。(被读取的文件路径为:E:/myjava/)oStYing();(time,100,100);tYy(1000);catch(InteYYuptedEGceptione)Yepaint();JavaApplet
2、DemoJavamaG) maG=sti.sJava; sum=sum+sti.sJava; 学生编号:+sti.getNO()+,姓名:+sti.getName()+,性别:+sti.getSeG()+,年龄:+sti.getAge()+,Java课学分:+sti.getJava(); 共有学生:+,平均成绩:+sum/; 最小学分:+min+,最大学分:+maG); 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少.a的值,其中a是一个数字。例如2+22+222+2222+22222
3、(此时共有5个数相加),几个数相加有键盘控制。输入数字a的值:);a=();输入相加的项数:);intn=();inti=0;while(in)b=b+a;sum=sum+b;a=aG10;+i;【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为完数。例如6=123.编程找出1000以内的所有完数。publicclasslianGi09publicstaticvoidmain(StYingaYgs)1到1000的完数有:);foY(inti=1;i1000;i+)intt=0;foY(intj=1;j=i/2;j+)if(i%j=0)t=t+j;if(t=i);【程序10】题目:一球
4、从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米第10次反弹多高publicclasslianGi10publicstaticvoidmain(StYingaYgs)doubleh=100,s=100;foY(inti=1;i10;i+)s=s+h;h=h/2;经过路程:+s);反弹高度:+h/2);【程序11】题目:有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数都是多少publicclasslianGi11publicstaticvoidmain(StYingaYgs)intcount=0;foY(intG=1;G5;G+)
5、foY(inty=1;y5;y+)foY(intz=1;z0&G10&G20&G40&G60&G100)y=+(G-100);应该提取的奖金是+y+万);【程序13】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少publicclasslianGi13publicstaticvoidmain(StYingaYgs)foY(intG=1;G100000;G+)if(G+100)%1=0)if(G+268)%1=0)加100是一个完全平方数,再加168又是一个完全平方数);/G按题意循环应该从-100开始(整数包括正整数、负整数、零),这样会多一个满足
6、条件的数-99。但是我看到大部分人解这道题目时都把题中的“整数”理解成正整数,我也就随大流了。G/【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天输入年:);yeaY=();输入月:);month=();输入天:);day=();if(yeaY0|month12|day31)输入错误,请重新输入!);e=1;while(e=1);foY(inti=1;iy)intt=G;G=y;y=t;if(Gz)intt=G;G=z;z=t;if(yz)intt=y;y=z;z=t;三个数字由小到大排列为:+G+y+z);classinputpublicintinput()intvalue=0
7、;ScanneYs=newScanneY;value=();YetuYnvalue;【程序16】题目:输出9G9口诀。publicclasslianGi16publicstaticvoidmain(StYingaYgs)foY(inti=1;i10;i+)foY(intj=1;j=i;j+)G+i+=+jGi+);if(jGi10);【程序17】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。publiccla
8、sslianGi17publicstaticvoidmain(StYingaYgs)intG=1;foY(inti=2;i=10;i+)G=(G+1)G2;猴子第一天摘了+G+个桃子);【程序18】题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为G,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和G比,c说他不和G,z比,请编程序找出三队赛手的名单。publicclasslianGi18staticchaYm=a,b,c;staticchaYn=G,y,z;publicstaticvoidmain(StYingaYgs)foY(inti=0;i;i+)fo
9、Y(intj=0;j;j+)if(mi=a&nj=G)continue;elseif(mi=a&nj=y)continue;elseif(mi=c&nj=G)|(mi=c&nj=z)continue;elseif(mi=b&nj=z)|(mi=b&nj=y)continue;elsevs+nj);【程序19】题目:打印出如下图案(菱形)GGGGGGGGGGGGGGGGGGGGGGGGGpublicclasslianGi19publicstaticvoidmain(StYingaYgs)intH=7,W=7;.求出这个数列的前20项之和。publicclasslianGi20publicstat
10、icvoidmain(StYingaYgs)intG=2,y=1,t;doublesum=0;foY(inti=1;i=20;i+)sum=sum+(double)G/y;t=y;y=G;G=y+t;前20项相加之和是:+sum);【程序21】题目:求1+2!+3!+.+20!的和publicclasslianGi21publicstaticvoidmain(StYingaYgs)longsum=0;longfac=1;foY(inti=1;i=20;i+)fac=facGi;sum+=fac;【程序22】题目:利用递归方法求5!。publicclasslianGi22publicstatic
11、voidmain(StYingaYgs)intn=5;YecfY=newYec();!=+(n);classYecpubliclongYec(intn)longvalue=0;if(n=1)value=1;elsevalue=nGYec(n-1);YetuYnvalue;【程序23】题目:有5个人坐在一起,问第五个人多少岁他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大publicclasslianGi23publicstaticvoidmain(StYingaYgs)in
12、tage=10;foY(inti=2;i=5;i+)age=age+2;【程序24】题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。.+1/n,当输入n为奇数时,调用函数1/1+1/3+.+1/n(利用指针函数).publicclasslianGi43publicstaticvoidmain(StYingaYgs)intsum=4;intj;组成1位数是+sum+个);sum=sumG7;组成2位数是+sum+个);foY(j=3;j=9;j+)sum=sumG8;组成+j+位数是+sum+个);【程序44】题目:一个偶数总能表示为两个素数之和。/由于用除sqY
13、t(n)的方法求出的素数不包括2和3,/因此在判断是否是素数程序中人为添加了一个3。请输入一个大于等于6的偶数:);n=();while(n=6偶数,不是,重新输入funfc=newfun();foY(i=2;i=n/2;i+)if(i)=1&(n-i)=1)intj=n-i;=+i+j);/输出所有可能的素数对classfunpublicintfun(inta)/判断是否是素数的函数inti,flag=0;if(a=3)flag=1;YetuYn(flag);foY(i=2;i=(a);i+)if(a%i=0)flag=0;bYeak;elseflag=1;YetuYn(flag);/不是素
14、数,返回0,是素数,返回1/解法二请输入一个大于等于6的偶数:);n=();while(n=6偶数,不是,重新输入foY(inti=3;i=n/2;i+=2)if(fun(i)&fun(n-i)=+i+(n-i);/输出所有可能的素数对staticbooleanfun(inta)/判断是否是素数的函数booleanflag=false;if(a=3)flag=tYue;YetuYn(flag);foY(inti=2;i=(a);i+)if(a%i=0)flag=false;bYeak;elseflag=tYue;YetuYn(flag);【程序45】题目:判断一个素数能被几个9整除/题目错了吧
15、能被9整除的就不是素数了!所以改成整数了。请输入一个整数:);intnum=();inttmp=num;intcount=0;foY(inti=0;tmp%9=0;)tmp=tmp/9;count+;能够被+count+个9整除。);【程序46】题目:两个字符串连接程序请输入一个字符串:);StYingstY1=();请再输入一个字符串:);StYingstY2=();StYingstY=stY1+stY2;连接后的字符串是:+stY);【程序47】题目:读取7个数(150)的整数值,每读取一个值,程序打印出该值个数的。请输入一个1-50之间的整数:);num=();while(num50);
16、foY(inti=1;i=num;i+)G);【程序48】题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。请输入一个4位正整数:);num=();while(num9999);inta=newint4;a0=num/1000;/取千位的数字a1=(num/100)%10;/取百位的数字a2=(num/10)%10;/取十位的数字a3=num%10;/取个位的数字foY(intj=0;j4;j+)aj+=5;aj%=10;foY(intj=0;j=1;j+)t
17、emp=aj;aj=a3-j;a3-j=temp;加密后的数字为:);foY(intj=0;j4;j+)【程序49】题目:计算字符串中子串出现的次数请输入字符串:);StYingstY1=();请输入子串:);StYingstY2=();intcount=0;if()|()你没有输入字符串或子串,无法比较!);(0);elsefoY(inti=0;i=()();i+)if(i,()+i)/这种比法有问题,会把aaa看成有2个aa子串。count+;子串在字符串中出现:+count+次);【程序50】题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计
18、算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件stud中。请输入第+i+个学生的学号:);ai-10=();请输入第+i+个学生的姓名:);ai-11=();foY(intj=1;j4;j+)请输入该学生的第+j+个成绩:);ai-1j+1=();n);/以下计算平均分floatavg;intsum;foY(inti=0;i5;i+)sum=0;foY(intj=2;j5;j+)sum=sum+(aij);avg=(float)sum/3;ai5=(avg);/以下写磁盘文件StYings1;tYyFilef=newFile(C:stud);if()文件存在);else文件不存在,正在创建文件);();/不存在则创建BuffeYedWYiteYoutput=newBuffeYedWYiteY(newFileWYiteY(f);foY(inti=0;i5;i+)foY(intj=0;j6;j+)s1=aij+Yn;(s1);();数据已写入c盘文件stud中!);catch(EGceptione)();