Java编程练习题解析.docx
- 文档编号:4690870
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:38
- 大小:60.34KB
Java编程练习题解析.docx
《Java编程练习题解析.docx》由会员分享,可在线阅读,更多相关《Java编程练习题解析.docx(38页珍藏版)》请在冰豆网上搜索。
Java编程练习题解析
Java编程练习题
一、简单问题:
1.编程求下列式子的值,
y=1-1/2+1/3-1/4+…+1/99-1/100
并将结果输出,格式为:
1-1/2+1/3-1/4+…+1/99-1/100=表达式的值
publicclassProg1{
publicstaticvoidmain(String[]args){
doublesum=0;
for(doublei=1;i<=100;i++)
{
sum=sum+(Math.pow(-1,i+1))*(1/i);
}
System.out.print("1-1/2+1/3-1/4+…+1/99-1/100="+sum);
}
}
运行结果:
2.请编程实现:
由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。
importjava.util.Scanner;
publicclassProg1{
publicstaticvoidmain(String[]args){
Scannercin=newScanner(System.in);
StringStr=cin.nextLine();
intm=0,n=0;
for(inti=0;i { charc=Str.charAt(i); if(c>='a'&&c<='z') n++; elseif(c>='A'&&c<='Z') m++; } if(n>m) System.out.print(n); else System.out.print(m); } } 运行结果: 3.编程,求全部水仙花数。 所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。 如: 153=13+53+33。 importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ intb=0,c=0,d=0; for(inti=100;i<1000;i++) { d=i%10; c=(i/10)%10; b=(i/100)%10; if(i==b*b*b+c*c*c+d*d*d) { System.out.println(i); } } } } 4.请编制程序判断输入的正整数是否既是5又是7的整倍数。 若是,则输出yes;否则输出no。 importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); System.out.println("请输入一个正整数: "); inta=cin.nextInt(); if(a%7==0&&a%5==0) { System.out.println("YES"); } else System.out.println("NO"); } } 5.请编程实现: 对于给定的一个百分制成绩,输出相应的五分制成绩。 设: 90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D’,60分以下为‘E’。 importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); System.out.println("请输入成绩: "); inta=cin.nextInt(); if(a>=90) {System.out.println("A");} elseif(a>=80) {System.out.println("B");} elseif(a>=70) {System.out.println("C");} elseif(a>=60) {System.out.println("D");} else {System.out.println("E");} } } 6.输入一行字符,将其中的字母变成其后续的第3个字母,输出。 例: a→d,x→a;y→b;编程实现。 importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); Stringstr=cin.nextLine(); char[]c=newchar[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c'}; for(inti=0;i { char[]c1=newchar[str.length()]; c1[i]=str.charAt(i); for(intj=0;j<26;j++) { if(c1[i]==c[j]) {charzc=c[j+3]; System.out.print(zc);} } } } } 7.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词.例如: 1转换成Monday,7转换成Sunday. importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); System.out.println("输入任意一个1~7之间的整数: "); ints=cin.nextInt(); switch(s) { case1: { System.out.print("Monday"); break; } case2: { System.out.print("Tuesday"); break; } case3: { System.out.print("Wednesday"); break; } case4: { System.out.print("Thursday"); break; } case5: { System.out.print("Friday"); break; } case6: { System.out.print("Saturday"); break; } case7: { System.out.print("Sunday"); break; } default: { } } } } 连续输出: importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); while(true) {System.out.println("输入任意一个1~7之间的整数: "); ints=cin.nextInt(); switch(s) { case1: { System.out.println("Monday"); break; } case2: { System.out.println("Tuesday"); break; } case3: { System.out.print("Wednesday"); break; } case4: { System.out.println("Thursday"); break; } case5: { System.out.println("Friday"); break; } case6: { System.out.println("Saturday"); break; } case7: { System.out.println("Sunday"); break; } default: { } } } } } 8.输入三角形的三边a,b,c,判断能否构成三角形.若能,计算周长. importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); inta=cin.nextInt(); intb=cin.nextInt(); intc=cin.nextInt(); intl=0; if(a+b>c&&a+c>b) {l=a+b+c; System.out.print(l);} else { System.out.print("不能构成三角形"); } } } 9.编程序,输入a,b,c,求方程ax2+bx+c=0的解。 importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); System.out.println("请输入a,b,c的值: "); doublea=cin.nextInt(); doubleb=cin.nextInt(); doublec=cin.nextInt(); doublet=0; t=b*b-4*a*c; doublex1=0,x2=0; inta1=(int)a; intb1=(int)b; intc1=(int)c; System.out.println("方程"+a1+"*x*x+"+b1+"*x+"+c1+"=0的解: "); if(t<0) System.out.println("无解"); elseif(t>=0) { x1=(-b+Math.pow(t,0.5))/(2*a); x2=(-b-Math.pow(t,0.5))/(2*a); System.out.println("x1="+x1+""+"x2="+x2); } }} 运行结果: 请输入a,b,c的值: 1 5 6 方程1*x*x+5*x+6=0的解: x1=-2.0x2=-3.0 10.计算出前20项fibonacci数列,要求一行打印5个数.(未写) 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。 如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; …… 依次类推可以列出下表: 经过月数 0 1 2 3 4 5 6 7 8 9 10 11 12 幼仔对数 0 1 1 2 3 5 8 13 21 34 55 89 144 成兔对数 1 1 2 3 5 8 13 21 34 55 89 144 233 总体对数 1 2 3 5 8 13 21 34 55 89 144 233 377 importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ inta=0,b=1,c=1; Scannercin=newScanner(System.in); System.out.println("请输入经过的月数: "); intn=cin.nextInt(); if(n==1) { a=1; b=1; c=2; } else { for(inti=2;i<=n+1;i++) { a=b;b=c;c=a+b; } } System.out.print("幼仔对数: "+a+","); System.out.print("成兔对数: "+b+","); System.out.print("总体对数: "+c); } } 数列输出: publicclassProg1{ publicstaticvoidmain(String[]args){ inta=0,b=1,c=1; for(inti=1;i<=20;i++) { a=b;b=c;c=a+b; System.out.println("经过"+i+"天,"+"幼仔对数: "+a+","+"成兔对数: "+b+","+"总体对数: "+c); } } } 运行结果: 经过1天,幼仔对数: 1,成兔对数: 1,总体对数: 2 经过2天,幼仔对数: 1,成兔对数: 2,总体对数: 3 经过3天,幼仔对数: 2,成兔对数: 3,总体对数: 5 经过4天,幼仔对数: 3,成兔对数: 5,总体对数: 8 经过5天,幼仔对数: 5,成兔对数: 8,总体对数: 13 经过6天,幼仔对数: 8,成兔对数: 13,总体对数: 21 经过7天,幼仔对数: 13,成兔对数: 21,总体对数: 34 经过8天,幼仔对数: 21,成兔对数: 34,总体对数: 55 经过9天,幼仔对数: 34,成兔对数: 55,总体对数: 89 经过10天,幼仔对数: 55,成兔对数: 89,总体对数: 144 经过11天,幼仔对数: 89,成兔对数: 144,总体对数: 233 经过12天,幼仔对数: 144,成兔对数: 233,总体对数: 377 经过13天,幼仔对数: 233,成兔对数: 377,总体对数: 610 经过14天,幼仔对数: 377,成兔对数: 610,总体对数: 987 经过15天,幼仔对数: 610,成兔对数: 987,总体对数: 1597 经过16天,幼仔对数: 987,成兔对数: 1597,总体对数: 2584 经过17天,幼仔对数: 1597,成兔对数: 2584,总体对数: 4181 经过18天,幼仔对数: 2584,成兔对数: 4181,总体对数: 6765 经过19天,幼仔对数: 4181,成兔对数: 6765,总体对数: 10946 经过20天,幼仔对数: 6765,成兔对数: 10946,总体对数: 17711 11.输出100~10000之间个位数为3的所有素数。 publicclassProg1{ publicstaticvoidmain(String[]args){ booleanflag=false; for(inti=103;i<10000;i=i+10) { for(intj=2;j if(i%j! =0) { flag=true; } if(flag) { System.out.println(i); } } } } 12.百钱买百鸡问题: 公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法. publicclassProg1{ publicstaticvoidmain(String[]args){ inta=0; intb=0; doublec=0; intg=0; for(a=1;a<=20;a++) { for(b=1;b<=33;b++) { for(c=1;c<=100;c++) { if(5*a+3*b+c/3==100&&a+b+c==100) {g++; intc1=(int)c; System.out.print("第"+g+"种方法: 公鸡: "+a+"只,母鸡: "+b+"只,小鸡: "+c1+"只"); System.out.println(); } } } } } } 13.请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。 /*------------------------------------------------------- 【程序设计】 --------------------------------------------------------- 题目: 请编制程序要求输入整数a和b,若a2+b2大于100, 输出a2+b2百位以上的数字, 否则输出两数之和。 建立的类名为Prog1 -------------------------------------------------------*/ /**********Program**********/ importjava.util.Scanner; publicclassProg1 { publicstaticvoidmain(Stringargs[]) { Scannercin=newScanner(System.in); System.out.println("请输入a,b的值: "); inta=cin.nextInt(); intb=cin.nextInt(); intc=0; if(a*a+b*b>100) { c=(a*a+b*b)/100; System.out.println(c); } else System.out.println(a+b); } }/**********End**********/ 运行结果: 请输入a,b的值: 10 2 1 14.编程实现: 对键盘输入的任意一个四位正整数,计算各位数字平方和。 如: 2345,则: 计算22+32+42+52 importjava.util.Scanner; publicclassProg1{ publicstaticvoidmain(String[]args){ Scannercin=newScanner(System.in); System.out.println("请输入一个四位正整数: "); intn=cin.nextInt(); inta,b,c,d; d=n%10; c=(n-d)%100/10; b=(n-d-c*10)%1000/100; a=(n-d-c*10-b*100)/1000; intm=0; m=a*a+b*b+c*c+d*d; System.out.println(m); } } 运行结果: 请输入一个四位正整数: 3333 36 15.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程. publicclassProg1{ publicstaticvoidmain(String[]args){ intlast=0; last=1020/2+2; inti=0; for(i=1;last>=0;i++) { last=last-(last/2+2); } System.out.print("需要的天数: "+i); } }运行结果: 需要的天数: 9 16.编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数。 publicclassProg1{ publicstaticvoidmain(String[]args){ inta=0,b=0,n=0; for(intc=0;c<=200;c++) for(a=0;a<=200;a++) for(b=0;b<=200;b++) { if(c*c==a*a+b*b) {System.out.println(c); n++; } } n=(n-1)/2+1; System.out.println(n); } } 17.设N是一个四位数,它的9倍恰好是其反序数(例如: 123的反序数是321),编程,输出所有满足条件的N。 (未写) publicclassProg1{ publicstaticvoidmain(String[]args){ for(inti=1000;i*9<10000;i++) { Stringc=""; Stringstr=String.valueOf(i); for(intj=str.length()-1;j>=0;j--) { c=c+str.charAt(j); } inta=Integer.parseInt(c); if(a==i*9) System.out.println(i); } } } 18.编程,输出555555的约数中最大的三位数。 publicclassProg1{ publicstaticvoidmain(String[]args){ intmax=100; for(inti=100;i<=999;i++) { if(555555%i==0) { if(i>max) max=i; } } Syst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 编程 练习题 解析