Java编程练习题_第1页
Java编程练习题_第2页
Java编程练习题_第3页
Java编程练习题_第4页
Java编程练习题_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java编程练习题一、简单问题:1. 编程求下列式子的值, 1-1/2+1/3-1/4+1/99-1/100 并将结果输出,格式为: 1-1/2+1/3-1/4+1/99-1/100 = 表达式的值 public class Prog1 public static void main(String args) double sum=0;for(double i=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. 请

2、编程实现:由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in ); String Str =cin.nextLine();int m=0,n=0;for(int i=0;i<Str.length();i+)char c=Str.charAt(i);if(c>='a'&&c<=&

3、#39;z') n+;else if(c>='A'&&c<='Z') m+;if(n>m)System.out.print(n);elseSystem.out.print(m);运行结果:3. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153 = 13 + 53+ 33。 import java.util.Scanner;public class Prog1 public static void main(String args) int b=0,c=0,d=0;for(int i

4、=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。import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );System.out.println("请输入一个正整数:");

5、int a=cin.nextInt(); if(a%7=0&&a%5=0) System.out.println("YES"); else System.out.println("NO"); 5. 请编程实现:对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E 。import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Sca

6、nner(System.in );System.out.println("请输入成绩:");int a=cin.nextInt();if(a>=90)System.out.println("A");else if(a>=80)System.out.println("B");else if(a>=70)System.out.println("C");else if(a>=60)System.out.println("D");else System.out.println(&

7、quot;E"); 6. 输入一行字符,将其中的字母变成其后续的第3个字母,输出。例:ad,x a;y b;编程实现。import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );String str=cin.nextLine();char c=new char'a','b','c','d','e','f','g

8、','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c'for(int i=0;i<str.length();i

9、+)char c1=new charstr.length();c1i=str.charAt(i);for(int j=0;j<26;j+)if(c1i=cj)char zc=cj+3;System.out.print(zc); 7. 编写程序,输入任意一个17之间的整数,将他们转换成对应的英文单词. 例如:1转换成Monday,7转换成Sunday.import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );Syst

10、em.out.println("输入任意一个17之间的整数:");int s=cin.nextInt();switch(s)case 1:System.out.print("Monday");break;case 2:System.out.print("Tuesday");break;case 3:System.out.print("Wednesday");break;case 4:System.out.print("Thursday");break;case 5:System.out.prin

11、t("Friday");break;case 6:System.out.print("Saturday");break;case 7:System.out.print("Sunday");break;default :连续输出:import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );while(true)System.out.println("输入任

12、意一个17之间的整数:");int s=cin.nextInt();switch(s)case 1:System.out.println("Monday");break;case 2:System.out.println("Tuesday");break;case 3:System.out.print("Wednesday");break;case 4:System.out.println("Thursday");break;case 5:System.out.println("Friday&q

13、uot;);break;case 6:System.out.println("Saturday");break;case 7:System.out.println("Sunday");break;default :8. 输入三角形的三边a, b, c,判断能否构成三角形. 若能,计算周长.import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );int a=cin.nextInt(

14、);int b=cin.nextInt();int c=cin.nextInt();int l=0;if(a+b>c&&a+c>b) l=a+b+c;System.out.print(l);elseSystem.out.print("不能构成三角形"); 9. 编程序,输入a,b,c,求方程 ax2+bx+c=0 的解。import java.util.Scanner;public class Prog1public static void main(String args) Scanner cin=new Scanner(System.in);

15、System.out.println("请输入a,b,c的值:");double a=cin.nextInt();double b=cin.nextInt();double c=cin.nextInt();double t=0;t=b*b-4*a*c;double x1=0,x2=0;int a1=(int)a;int b1=(int)b;int c1=(int)c;System.out.println("方程"+a1+"*x*x+"+b1+"*x+"+c1+"=0的解:");if(t<0

16、)System.out.println("无解");else if(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的值:156方程1*x*x+5*x+6=0的解:x1=-2.0 x2=-3.010.计算出前20项 fibonacci 数列, 要求一行打印5个数.(未写) 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子

17、每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; 依次类推可以列出下表: 经过月数0123456789101112幼仔对数01123581321345589144成兔对数1123581321345589144233总体对数123581321345589144233377import java.util.Scanner;public class Prog1public sta

18、tic void main(String args) int a=0,b=1,c=1; Scanner cin=new Scanner(System.in); System.out.println("请输入经过的月数:"); int n=cin.nextInt();if(n=1)a=1;b=1;c=2; else for(int i=2;i<=n+1;i+) a=b;b=c;c=a+b; System.out.print("幼仔对数:"+a+",");System.out.print("成兔对数:"+b+&q

19、uot;,");System.out.print("总体对数:"+c);数列输出:public class Prog1public static void main(String args) int a=0,b=1,c=1; for(int i=1;i<=20;i+) a=b;b=c;c=a+b; System.out.println("经过"+i+"天,"+"幼仔对数:"+a+","+"成兔对数:"+b+","+"总体对数:&q

20、uot;+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,成兔对数:

21、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,成兔对

22、数:10946,总体对数:17711 11输出10010000之间个位数为3的所有素数。public class Prog1 public static void main(String args) boolean flag=false;for(int i=103;i<10000;i=i+10)for(int j=2;j<i/2;j+)if(i%j!=0)flag=true;if(flag)System.out.println(i);12. 百钱买百鸡问题:公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,问一百元买一百只鸡有几种买法. public class Prog1 p

23、ublic static void main(String args) int a=0;int b=0;double c=0;int g=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+;int c1=(int)c;System.out.print("第"+g+"种方法:公鸡:"+a+"只,母鸡:"+b+"只,小鸡:"+c1+"只");S

24、ystem.out.println();13. 请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。/*-【程序设计】-题目:请编制程序要求输入整数a和b,若a2+b2大于100,输出a2+b2百位以上的数字,否则输出两数之和。建立的类名为Prog1-*/*Program*/import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in); System.out.println(

25、"请输入a,b的值:"); int a =cin.nextInt(); int b =cin.nextInt(); int c=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的值:102114. 编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。如:2345 ,则:计算22+32+42+52import java.util.Scanner;public class Prog1 publ

26、ic static void main(String args) Scanner cin=new Scanner(System.in);System.out.println("请输入一个四位正整数:");int n=cin.nextInt();int a,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;int m=0;m=a*a+b*b+c*c+d*d;System.out.println(m);运行结果:请输入一个四位正整数:33333615. 有1020个西瓜,第一天卖一

27、半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程.public class Prog1 public static void main(String args) int last=0;last=1020/2+2;int i=0;for(i=1;last>=0;i+)last=last-(last/2+2);System.out.print("需要的天数:"+i);运行结果:需要的天数:916. 编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数。public class Prog1 public static void main(Str

28、ing args) int a=0,b=0,n=0;for(int c=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. 设是一个四位数,它的倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的。(未写)public class Prog1 public static void main(String args) for(int i=1000;i*9&l

29、t;10000;i+)String c=""String str=String.valueOf(i);for(int j=str.length()-1;j>=0;j-)c=c+str.charAt(j);int a=Integer.parseInt(c);if(a=i*9)System.out.println(i);18. 编程,输出555555的约数中最大的三位数。public class Prog1 public static void main(String args) int max=100;for(int i=100;i<=999;i+)if(5555

30、55%i=0)if(i>max)max=i;System.out.println(max);19. 编程,输出所有个位数为6且能被31整除的五位数及其个数。(未写)public class Prog1 public static void main(String args) int n=0;for(int i=10006;i<100000;i=i+10)if(i%31=0)System.out.println(i);n+;System.out.print(n);20. 编写程序,输入两个整数,和+、-、*、/ 、之中的任意一个运算符,输出计算结果.(未写)import java.u

31、til.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );int a=cin.nextInt();int b=cin.nextInt();String str1=cin.nextLine();String str=cin.nextLine();char c=str.charAt(0);switch(c)case '+':System.out.print(a+"+"+b+"="+(a+b);b

32、reak;case '-':System.out.print(a+"-"+b+"="+(a-b);break;case '*':System.out.print(a+"*"+b+"="+(a*b);break;case '/':System.out.print(a+"/"+b+"="+(a/b);break; case '%':System.out.print(a+"%"+b+"=&

33、quot;+(a%b);break;运算结果:233100%233%100=3321. 计算:1+1/(1+2)+1/(1+2+3)+ 1/(1+2+n), n由键盘输入。(未写)import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );double n=cin.nextDouble();double sum=0;double s=0;for(double i=1;i<=n;i+)s=s+i;sum=sum+1/s

34、;System.out.print(sum);22. 编程计算: 1*2*3+3*4*5+99*100*101 的值.(未写)public class Prog1 public static void main(String args) int a=1,b=2,c=3;int sum=0;do sum=sum+(a*b*c); a=c; b=c+1; c=c+2;while(c<=101);System.out.println(sum);二、比较简单问题:1. 编一个函数GCD,求两个无符号整数的最大公约数。主函数输入两个正整数m 和 n, 调用GCD,求出m和n的最大公约数和最小公倍数

35、.并输出。(未写)import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );int a=cin.nextInt();int b=cin.nextInt();int gys=GCD(a,b);int gbs=a*b/gys;System.out.print("最大公约数:"+gys+" "+"最小公倍数:"+gbs);public static int GCD(i

36、nt a,int b)int g=0;int min=a;if(a>b) min=b;for(int i=min-1;i>0;i-)if(a%i=0&&b%i=0)g=i; break;return g;2. 请编程实现:建立一个4*4的二维整型数组,求对角线元素的和。(未写)import java.util.Scanner;public class Prog1 public static void main(String args) int sum=0;Scanner cin=new Scanner(System.in );int sz=new int44;for

37、(int i=0;i<4;i+)for(int j=0;j<4;j+) szij=cin.nextInt();for(int i=0;i<4;i+)for(int j=i;j<=i;j+)sum=sum+szij;System.out.print(sum);3. 写一个判断素数的函数prime,在主函数中输入10个整数,调用prime,输出这0个整数中的素数的累加和。(未写)import java.util.Scanner;public class Prog1 public static void main(String args) int sz=new int10;i

38、nt sum=0;Scanner cin=new Scanner(System.in );System.out.print("请输入10个整数:");for(int i=0;i<10;i+) szi=cin.nextInt();for(int j=0;j<sz.length;j+)sum=sum+prime(szj);System.out.print(sum);public static int prime(int q)if(q=0|q=1)return 0;else if(q=2)return 2;elsefor(int i=2;i<q;i+)if(q%

39、i=0)return 0;return q;运行结果:请输入10个整数:012366666654从键盘上输入若干学生的一门课成绩,存入一个数组中,当输入负数时结束输入. 输出最高成绩和最低成绩及相应的序号。(未写) import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );int s=0;int sz=new int10000;int n=0;for(int i=0;i<10000;i+)s=cin.nextInt

40、();if(s<0) n=i;break;szi=s;int max=sz0;int xba=0,xbi=0;for(int j=1;j<n;j+)if(szj>max)max=szj;xba=j;int min=sz0;for(int j=1;j<n;j+)if(szj<min)min=szj;xbi=j;xba+;xbi+;System.out.print("最高成绩:"+max+",序号:"+xba+"n"+"最低成绩:"+min+",序号:"+xbi);5.

41、 编程计算: 1!+2!+3!+20!,并将结果输出.输出格式: 1!+2!+3!+20!= 表达式的值public class Prog1 public static void main(String args) long sum=1;long s=1;for(int i=2;i<=20;i+)for(int j=i;j>1;j-)s=s*j*(-j);sum=sum+s;s=1;System.out.print("1!+2!+3!+20!="+sum);运行结果:1!+2!+3!+20!=25613274941118203136. 有一个 * 4 的矩阵,编

42、程实现: 找出该矩阵中每行元素的最大值,存入一个一维数组中。输出原始矩阵和结果矩阵。(未写)import java.util.Scanner;public class Prog1 public static void main(String args) int ew=new int34;Scanner cin=new Scanner(System.in );for(int i=0;i<3;i+)for(int j=0;j<4;j+) ewij=cin.nextInt();int yw=new int3;int max=0;for(int i=0;i<3;i+)for(int

43、j=0;j<4;j+)if(max<ewij)max=ewij;ywi=max;max=0;System.out.println("原始矩阵:");for(int i=0;i<3;i+)for(int j=0;j<4;j+)System.out.print(ewij);System.out.print("n");System.out.println("结果:");for(int i=0;i<3;i+)System.out.print(ywi+" ");运行结果:012601240129

44、原始矩阵:012601240129结果:6 4 9 7. 将若干个整数放到一维数组中,找出该数组中的最大值和它的下标。然后将它和数组中的最前面的元素对换。(未写)import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );int n=0;int f=new int1000;for(int i=0;i<1000;i+)int temp=cin.nextInt();if(temp!=-1)n+;fi=temp;else

45、break;System.out.println("原始数组:");for(int j=0;j<n;j+)System.out.print(fj+" ");System.out.print("n");int max=f0;int xiabiao=0;for(int j=1;j<n;j+)if(fj>max) max=fj;xiabiao=j;System.out.print("最大值:"+max+",下标:"+xiabiao+"n");int h=f0;f0

46、=max;fxiabiao=h;System.out.println("结果数组:");for(int j=0;j<n;j+)System.out.print(fj+" ");运行结果:462-1原始数组:4 6 2 最大值:6,下标:1结果数组:6 4 2 8. 编写一个函数converse,将一维数组中的数逆序存放,不允许使用辅助数组。主函数输入原始数据,调用converse,实现逆置。并将原数组和逆置后的数组输出(未写)import java.util.Scanner;public class Prog1 public static void

47、 main(String args) Scanner cin=new Scanner(System.in );int n=0;int f=new int1000;for(int i=0;i<1000;i+)int temp=cin.nextInt();if(temp!=-1)fi=temp; n+;elsebreak;System.out.println("原数组:");for(int j=0;j<n;j+)System.out.print(fj+" ");System.out.print("n");f=converse(

48、f,n);System.out.println("逆置后:");for(int j=0;j<n;j+)System.out.print(fj+" ");public static int converse(int f,int n)for(int j=0;j<n/2;j+)int temp=0;temp=fj;fj=fn-1-j;fn-1-j=temp;return f;运行结果:479-2-1原数组:4 7 9 -2 逆置后:-2 9 7 4 9. 编写函数,将给定的字符串的大写字母转变成小写字母; 其它字符不变。主函数输入一个字符串,调用该

49、函数对其进行转换,分别输出原串和转换之后的串。import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );System.out.println("请输入一行字符串:");String str=cin.nextLine();str=change(str);System.out.print(str);public static String change(String str)String str1=str

50、.toLowerCase();return str1;运行结果:请输入一行字符串:oneONEoneone10. 编写一个函数,将字符数组a中的全部字符复制到字符数组b中. 不要使用strcpy函数. 主函数输入任意一个字符串,调该函数,复制出另一个字符串。将两个串输出。import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in );System.out.println("请输入一行字符串:");Strin

51、g str=cin.nextLine();int n=0;char f=new charstr.length();System.out.println("原字符串:");for(int i=0;i<str.length();i+)fi=str.charAt(i);System.out.print(fi);System.out.println();char f2=new charstr.length();f2=copy(f,f2);System.out.println("新字符串:");for(int i=0;i<f2.length;i+)System.out.print(f2i);public static char copy(char f,char f2)for(int i=0;i<f.length;i+)f2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论