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=a&c=A&cm)System.out.print(n);elseSystem.out.print(m);运行结果:3. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方

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=100;i=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(E); 6

4、. 输入一行字符,将其中的字母变成其后续的第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 chara,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(int i=0;istr.length();i+)char c1

5、=new charstr.length();c1i=str.charAt(i);for(int j=0;jc&a+cb) 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);System.out.println(请输入a,b,c的值:);

6、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)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);运行

7、结果:请输入a,b,c的值:156方程1*x*x+5*x+6=0的解:x1=-2.0 x2=-3.010.计算出前20项 fibonacci 数列, 要求一行打印5个数.(未写) 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; 依次类推可以列出下表: 经过月数0123456789101112幼仔对数01123581321

8、345589144成兔对数1123581321345589144233总体对数123581321345589144233377import java.util.Scanner;public class Prog1public static 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=

9、c;c=a+b; System.out.print(幼仔对数:+a+,);System.out.print(成兔对数:+b+,);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+,+总体对数:+c); 运行结果:经过1天,幼仔对数:1,成兔对数:1,总体对数:2经过2天,幼仔对数

10、: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

11、天,幼仔对数: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输出10010000之间个位数为3的所有素数。publ

12、ic class Prog1 public static void main(String args) boolean flag=false;for(int i=103;i10000;i=i+10)for(int j=2;ji/2;j+)if(i%j!=0)flag=true;if(flag)System.out.println(i);12. 百钱买百鸡问题:公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,问一百元买一百只鸡有几种买法. public class Prog1 public static void main(String args) int a=0;int b=0;doub

13、le c=0;int g=0;for(a=1;a=20;a+)for(b=1;b=33;b+)for(c=1;c100) 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 public static void main(String args) Sc

14、anner 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个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程.public class Pr

15、og1 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(String args) int a=0,b=0,n=0;for(int c=0;c=200;c+)for( a=0;a=200;a

16、+)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=0;j-)c=c+str.charAt(j);int a=Integer.parseInt(c);if(a=i*9)System.out.println

17、(i);18. 编程,输出555555的约数中最大的三位数。public class Prog1 public static void main(String args) int max=100;for(int i=100;imax)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;i100000;i=i+10)if(i%31=0)System.out.p

18、rintln(i);n+;System.out.print(n);20. 编写程序,输入两个整数,和+、-、*、/ 、之中的任意一个运算符,输出计算结果.(未写)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();String str1=cin.nextLine();String str=cin.nextLine();char c=st

19、r.charAt(0);switch(c)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+=+(a/b);break; case %:System.out.print(a+%+b+=+(a%b);break;运算结果:233100%233%100=3321. 计算:1+1/(1+2)+1/(1+2+3)+ 1/(1+2+n),

20、 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;System.out.print(sum);22. 编程计算: 1*2*3+3*4*5+99*100*101 的值.(未写)public class Prog1

21、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(cb) min=b;for(int i=min-1;i0;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=

22、0;Scanner cin=new Scanner(System.in );int sz=new int44;for(int i=0;i4;i+)for(int j=0;j4;j+) szij=cin.nextInt();for(int i=0;i4;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

23、 void main(String args) int sz=new int10;int sum=0;Scanner cin=new Scanner(System.in );System.out.print(请输入10个整数:);for(int i=0;i10;i+) szi=cin.nextInt();for(int j=0;jsz.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(i

24、nt i=2;iq;i+)if(q%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;i10000;i+

25、)s=cin.nextInt();if(s0) n=i;break;szi=s;int max=sz0;int xba=0,xbi=0;for(int j=1;jmax)max=szj;xba=j;int min=sz0;for(int j=1;jn;j+)if(szjmin)min=szj;xbi=j;xba+;xbi+;System.out.print(最高成绩:+max+,序号:+xba+n+最低成绩:+min+,序号:+xbi);5. 编程计算: 1!+2!+3!+20!,并将结果输出.输出格式: 1!+2!+3!+20!= 表达式的值public class Prog1 public

26、 static void main(String args) long sum=1;long s=1;for(int i=2;i1;j-)s=s*j*(-j);sum=sum+s;s=1;System.out.print(1!+2!+3!+20!=+sum);运行结果:1!+2!+3!+20!=25613274941118203136. 有一个 * 4 的矩阵,编程实现: 找出该矩阵中每行元素的最大值,存入一个一维数组中。输出原始矩阵和结果矩阵。(未写)import java.util.Scanner;public class Prog1 public static void main(Str

27、ing args) int ew=new int34;Scanner cin=new Scanner(System.in );for(int i=0;i3;i+)for(int j=0;j4;j+) ewij=cin.nextInt();int yw=new int3;int max=0;for(int i=0;i3;i+)for(int j=0;j4;j+)if(maxewij)max=ewij;ywi=max;max=0;System.out.println(原始矩阵:);for(int i=0;i3;i+)for(int j=0;j4;j+)System.out.print(ewij);

28、System.out.print(n);System.out.println(结果:);for(int i=0;i3;i+)System.out.print(ywi+ );运行结果:012601240129原始矩阵:012601240129结果:6 4 9 7. 将若干个整数放到一维数组中,找出该数组中的最大值和它的下标。然后将它和数组中的最前面的元素对换。(未写)import java.util.Scanner;public class Prog1 public static void main(String args) Scanner cin=new Scanner(System.in )

29、;int n=0;int f=new int1000;for(int i=0;i1000;i+)int temp=cin.nextInt();if(temp!=-1)n+;fi=temp;else break;System.out.println(原始数组:);for(int j=0;jn;j+)System.out.print(fj+ );System.out.print(n);int max=f0;int xiabiao=0;for(int j=1;jmax) max=fj;xiabiao=j;System.out.print(最大值:+max+,下标:+xiabiao+n);int h=

30、f0;f0=max;fxiabiao=h;System.out.println(结果数组:);for(int j=0;jn;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 main(String args) Scan

31、ner cin=new Scanner(System.in );int n=0;int f=new int1000;for(int i=0;i1000;i+)int temp=cin.nextInt();if(temp!=-1)fi=temp; n+;elsebreak;System.out.println(原数组:);for(int j=0;jn;j+)System.out.print(fj+ );System.out.print(n);f=converse(f,n);System.out.println(逆置后:);for(int j=0;jn;j+)System.out.print(fj

32、+ );public static int converse(int f,int n)for(int j=0;jn/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. 编写函数,将给定的字符串的大写字母转变成小写字母; 其它字符不变。主函数输入一个字符串,调用该函数对其进行转换,分别输出原串和转换之后的串。import java.util.Scanner;public class Prog1 public static void main(String a

33、rgs) 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.toLowerCase();return str1;运行结果:请输入一行字符串:oneONEoneone10. 编写一个函数,将字符数组a中的全部字符复制到字符数组b中. 不要使用strcpy函数. 主函数输入任意一个字

34、符串,调该函数,复制出另一个字符串。将两个串输出。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();int n=0;char f=new charstr.length();System.out.println(原字符串:);for(int i=0;istr.length();i+)fi=str.char

35、At(i);System.out.print(fi);System.out.println();char f2=new charstr.length();f2=copy(f,f2);System.out.println(新字符串:);for(int i=0;if2.length;i+)System.out.print(f2i);public static char copy(char f,char f2)for(int i=0;if.length;i+)f2i=fi;return f2;请输入一行字符串:one原字符串:one新字符串:One12. 给出年、月、日, 计算该日是该年的第几天?import java.util.Scanner;public class Prog1 public static void main(S

温馨提示

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

评论

0/150

提交评论