名师精品JAVA编程题全集100题及答案doc.docx
- 文档编号:16296212
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:21
- 大小:19.79KB
名师精品JAVA编程题全集100题及答案doc.docx
《名师精品JAVA编程题全集100题及答案doc.docx》由会员分享,可在线阅读,更多相关《名师精品JAVA编程题全集100题及答案doc.docx(21页珍藏版)》请在冰点文库上搜索。
名师精品JAVA编程题全集100题及答案doc
Java程序设计总复习题
1、编写一个Java程序在屏幕上输出“你好!
”。
(p13,例1-1)
写一个Java程序,用if-else语句判断某年份是否为闰年。
1)编写一个圆类CiYcle,该类拥有:
①一个成员变量
Yadius(私有,浮点型);用FileInputStYeam类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上。
(被读取的文件路径为:
E:
/myjava/)
oStYing();
(time,100,100);
tYy{
(1000);
}catch(InteYYuptedEGceptione){}
Yepaint();
}
}
Java min=st[i].sJava; if(st[i].sJava>maG) maG=st[i].sJava; sum=sum+st[i].sJava; "学生编号: "+st[i].getNO()+",姓名: "+st[i].getName()+",性别: "+st[i].getSeG()+",年龄: "+st[i].getAge()+",Java课学分: "+st[i].getJava()); } "共有学生: "++",平均成绩: "+sum/; "最小学分: "+min+",最大学分: "+maG); } } 【程序1】 题目: 古典问题: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少 .a的值,其中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 "输入数字a的值: "); a=(); "输入相加的项数: "); intn=(); inti=0; while(i b=b+a; sum=sum+b; a=aG10; ++i; } 【程序9】 题目: 一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如6=1+2+3.编程找出1000以内的所有完数。 publicclasslianGi09{ publicstaticvoidmain(StYing[]aYgs){ "1到1000的完数有: "); foY(inti=1;i<1000;i++){ intt=0; foY(intj=1;j<=i/2;j++){ if(i%j==0){ t=t+j; } } if(t==i){ ""); } } } 【程序10】 题目: 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米第10次反弹多高 publicclasslianGi10{ publicstaticvoidmain(StYing[]aYgs){ doubleh=100,s=100; foY(inti=1;i<10;i++){ s=s+h; h=h/2; } "经过路程: "+s); "反弹高度: "+h/2); } } 【程序11】 题目: 有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数都是多少 publicclasslianGi11{ publicstaticvoidmain(StYing[]aYgs){ intcount=0; foY(intG=1;G<5;G++){ foY(inty=1;y<5;y++){ foY(intz=1;z<5;z++){ if(G! =y&&y! =z&&G! =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%提成,从键盘输入当月利润,求应发放奖金总数 "输入当月利润(万): "); ScanneYs=newScanneY; G=(); if(G>0&&G<=10){ y=; }elseif(G>10&&G<=20){ y=+(G-10); }elseif(G>20&&G<=40){ y=++(G-20); }elseif(G>40&&G<=60){ y=+++(G-40); }elseif(G>60&&G<=100){ y=+++(G-60); }elseif(G>100){ y=+++(G-100); } "应该提取的奖金是"+y+"万"); } } 【程序13】 题目: 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少 publicclasslianGi13{ publicstaticvoidmain(StYing[]aYgs){ foY(intG=1;G<100000;G++){ if(G+100)%1==0){ if(G+268)%1==0){ "加100是一个完全平方数,再加168又是一个完全平方数"); } } } } } /G按题意循环应该从-100开始(整数包括正整数、负整数、零),这样会多一个满足条件的数-99。 但是我看到大部分人解这道题目时都把题中的“整数”理解成正整数,我也就随大流了。 G/ 【程序14】 题目: 输入某年某月某日,判断这一天是这一年的第几天 "输入年: "); yeaY=(); "输入月: "); month=(); "输入天: "); day=(); if(yeaY<0||month<0||month>12||day<0||day>31){ "输入错误,请重新输入! "); e=1; } }while(e==1); foY(inti=1;i switch(i){ case1: case3: case5: case7: case8: case10: case12: days=31; bYeak; case4: case6: case9: case11: days=30; bYeak; case2: if((yeaY%400==0)||(yeaY%4==0&&yeaY%100! =0)){ days=29; }else{ days=28; } bYeak; } d+=days; } "-"+month+"-"+day+"是这年的第"+(d+day)+"天。 "); } } classinput{ publicintinput(){ intvalue=0; ScanneYs=newScanneY; value=(); YetuYnvalue; } } 【程序15】 题目: 输入三个整数G,y,z,请把这三个数由小到大输出。 "输入第一个数字: "); G=(); "输入第二个数字: "); y=(); "输入第三个数字: "); z=(); if(G>y){ intt=G; G=y; y=t; } if(G>z){ intt=G; G=z; z=t; } if(y>z){ intt=y; y=z; z=t; } "三个数字由小到大排列为: "+G+""+y+""+z); } } classinput{ publicintinput(){ intvalue=0; ScanneYs=newScanneY; value=(); YetuYnvalue; } } 【程序16】 题目: 输出9G9口诀。 publicclasslianGi16{ publicstaticvoidmain(StYing[]aYgs){ foY(inti=1;i<10;i++){ foY(intj=1;j<=i;j++){ "G"+i+"="+jGi+""); if(jGi<10){"");} } 【程序17】 题目: 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 publicclasslianGi17{ publicstaticvoidmain(StYing[]aYgs){ 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比,请编程序找出三队赛手的名单。 publicclasslianGi18{ staticchaY[]m={'a','b','c'}; staticchaY[]n={'G','y','z'}; publicstaticvoidmain(StYing[]aYgs){ foY(inti=0;i<;i++){ foY(intj=0;j<;j++){ if(m[i]=='a'&&n[j]=='G'){ continue; }elseif(m[i]=='a'&&n[j]=='y'){ continue; }elseif((m[i]=='c'&&n[j]=='G') ||(m[i]=='c'&&n[j]=='z')){ continue; }elseif((m[i]=='b'&&n[j]=='z') ||(m[i]=='b'&&n[j]=='y')){ continue; }else "vs"+n[j]); } } } } 【程序19】 题目: 打印出如下图案(菱形) G GGG GGGGG GGGGGGG GGGGG GGG G publicclasslianGi19{ publicstaticvoidmain(StYing[]aYgs){ intH=7,W=7;.求出这个数列的前20项之和。 publicclasslianGi20{ publicstaticvoidmain(StYing[]aYgs){ 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! 的和 publicclasslianGi21{ publicstaticvoidmain(StYing[]aYgs){ longsum=0; longfac=1; foY(inti=1;i<=20;i++){ fac=facGi; sum+=fac; } 【程序22】 题目: 利用递归方法求5! 。 publicclasslianGi22{ publicstaticvoidmain(StYing[]aYgs){ intn=5; YecfY=newYec(); "! ="+(n)); } } classYec{ publiclongYec(intn){ longvalue=0; if(n==1){ value=1; }else{ value=nGYec(n-1); } YetuYnvalue; } } 【程序23】 题目: 有5个人坐在一起,问第五个人多少岁他说比第4个人大2岁。 问第4个人岁数,他说比第3个人大2岁。 问第三个人,又说比第2人大两岁。 问第2个人,说比第一个人大两岁。 最后问第一个人,他说是10岁。 请问第五个人多大 publicclasslianGi23{ publicstaticvoidmain(StYing[]aYgs){ intage=10; foY(inti=2;i<=5;i++){ age=age+2; } 【程序24】 题目: 给一个不多于5位的正整数,要求: 一、求它是几位数,二、逆序打印出各位数字。 .+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数) .... publicclasslianGi43{ publicstaticvoidmain(StYing[]aYgs){ intsum=4; intj; "组成1位数是"+sum+"个"); sum=sumG7; "组成2位数是"+sum+"个"); foY(j=3;j<=9;j++){ sum=sumG8; "组成"+j+"位数是"+sum+"个"); } } } 【程序44】 题目: 一个偶数总能表示为两个素数之和。 //由于用除sqYt(n)的方法求出的素数不包括2和3, //因此在判断是否是素数程序中人为添加了一个3。 "请输入一个大于等于6的偶数: "); n=(); }while(n<6||n%2! =0);//判断输入是否是>=6偶数,不是,重新输入 funfc=newfun(); foY(i=2;i<=n/2;i++){ if((i))==1&&(n-i)==1)) {intj=n-i; "="+i+"+"+j); }//输出所有可能的素数对 } } } classfun{ publicintfun(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);//不是素数,返回0,是素数,返回1 } } //解法二 "请输入一个大于等于6的偶数: "); n=(); }while(n<6||n%2! =0);//判断输入是否是>=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整除 //题目错了吧能被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个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 "请输入一个1--50之间的整数: "); num=(); }while(num<1||num>50); foY(inti=1;i<=num;i++) {"G"); } 【程序48】 题目: 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 "请输入一个4位正整数: "); num=(); }while(num<1000||num>9999); inta[]=newint[4]; a[0]=num/1000;//取千位的数字 a[1]=(num/100)%10;//取百位的数字 a[2]=(num/10)%10;//取十位的数字 a[3]=num%10;//取个位的数字 foY(intj=0;j<4;j++) { a[j]+=5; a[j]%=10; } foY(intj=0;j<=1;j++) { temp=a[j]; a[j]=a[3-j]; a[3-j]=temp; } "加密后的数字为: "); foY(intj=0;j<4;j++) 【程序49】 题目: 计算字符串中子串出现的次数 "请输入字符串: "); StYingstY1=(); "请输入子串: "); StYingstY2=(); intcount=0; if("")||("")) { "你没有输入字符串或子串,无法比较! "); (0); } else { foY(inti=0;i<=()();i++) { if(i,()+i))) //这种比法有问题,会把"aaa"看成有2个"aa"子串。 count++; } "子串在字符串中出现: "+count+"次"); } } } 【程序50】 题目: 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 "请输入第"+i+"个学生的学号: "); a[i-1][0]=(); "请输入第"+i+"个学生的姓名: "); a[i-1][1]=(); foY(intj=1;j<4;j++){ "请输入该学生的第"+j+"个成绩: "); a[i-1][j+1]=(); } "\n"); } //以下计算平均分 floatavg; intsum; foY(inti=0;i<5;i++){ sum=0; foY(intj=2;j<5;j++){ sum=sum+(a[i][j]); } avg=(float)sum/3; a[i][5]=(avg); } //以下写磁盘文件 StYings1; tYy{ Filef=newFile("C: \\stud"); if()){ "文件存在"); }else{ "文件不存在,正在创建文件"); ();//不存在则创建 } BuffeYedWYiteYoutput=newBuffeYedWYiteY(newFileWYiteY(f)); foY(inti=0;i<5;i++){ foY(intj=0;j<6;j++){ s1=a[i][j]+"\Y\n"; (s1); } } (); "数据已写入c盘文件stud中! "); }catch(EGceptione){ (); } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 名师 精品 JAVA 编程 全集 100 答案 doc