Java基础编程题(含答案)_第1页
Java基础编程题(含答案)_第2页
Java基础编程题(含答案)_第3页
Java基础编程题(含答案)_第4页
Java基础编程题(含答案)_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

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

文档简介

1、50道JAVA基础编程练习题【程序11题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.public class Prog1public static void main(String口 args)int n = 10;"第"+n+"个月兔子总数为"+fun(n);private static int fun(int n)if(n=1 | n=2)return 1; elsereturn fun(n

2、-1)+fun(n-2); 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。public class Prog2public static void main(String口 args)int m = 1;int n = 1000;int count = 0;import class Prog7_1"请输入一串字符:");Scanner scan = new Scanner;String str =();;public class Prog7_

3、2public static void main(String口 args)"请输入一行字符:");Scanner scan = new Scanner;String str =();();count(str);.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制 程序分析:关键是计算出每一项的值。import class Prog8public static void main(String口 args)"求5=2+22+222+2222+.的值,请输入 a的值:");Scanner sca

4、n = new Scanner.useDelimiter("s*");程找出1000以内的所有完数。public class Prog9public static void main(String口 args)int n = 10000;compNumber(n); seDelimiter("s");int h =();int n =();();distance(h,n);1public class Prog12public static void main(String口 args)"请输入当前利润:");long profit =

5、 (key_Input();"应发奖金:"+bonus(profit);3月5日seDelimiter("D");seDelimiter("D");"请输入三个数:");int x =();int y =();int z =();();"排序结果:"+sort(x,y,z);.求出这个数列的前20项之和。程序分析:请抓住分子与分母的变化规律。public class Prog20public static void main(String口 args)double n1 = 1;double n

6、2 = 1;double fraction = n1/n2;double Sn = 0;for(int i=0;i<20;i+)double t1 = n1;double t2 = n2;n1 = t1+t2;n2 = t1;fraction = n1/n2;Sn += fraction;【程序21题目:求1+2!+3!+20!的和程序分析:此程序只是把累加变成了累乘。public class Prog21public static void main(String口 args)long sum = 0;for(int i=0;i<20;i+)sum += factorial(i+

7、1);1public class Prog25public static void main(String args)int n = 0;"请输入一个5位数:");BufferedReader bufin = new BufferedReader(new InputStreamReader);tryn =();catch(IOException e)();finallytry();catch(IOException e)();palin(n);private static void palin(int n)int m = n;int a = new int5;if(n<

8、;10000 11n>99999)"输入的不是5位数!");return;elsefor(int i=0;i<5;i+)ai = n%10;n /= 10;if(a0=a4 && a1=a3)"是一个回文数");else"不是回文数");【程序26题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。import .*;public class Prog26public static

9、 void main(String口 args)String str = new String();BufferedReader bufIn = new BufferedReader(new InputStreamReader);"请输入星期的英文单词前两至四个字母):");trystr =();catch(IOException e)();finallytry();catch(IOException e)();week(str);private static void week(String str)int n = -1;if().equalsIgnoreCase(&qu

10、ot;Mo") | ().equalsIgnoreCase("Mon") | ().equalsIgnoreCase("Mond") n = 1;if().equalsIgnoreCase("Tu") | ().equalsIgnoreCase("Tue") | ().equalsIgnoreCase("Tues") n = 2;if().equalsIgnoreCase("We") | ().equalsIgnoreCase("Wed") |

11、().equalsIgnoreCase("Wedn") n = 3;if().equalsIgnoreCase("Th") | ().equalsIgnoreCase("Thu") | ().equalsIgnoreCase("Thur") n = 4;if().equalsIgnoreCase("Fr") | ().equalsIgnoreCase("Fri") | ().equalsIgnoreCase("Frid") n = 5;if().equal

12、sIgnoreCase("Sa") | ().equalsIgnoreCase("Sat") | ().equalsIgnoreCase("Satu")n = 2;if().equalsIgnoreCase("Su") | ().equalsIgnoreCase("Sun") | ().equalsIgnoreCase("Sund") n = 0;switch(n)case 1:“星期一");break;case 2:"星期二");break;c

13、ase 3:“星期三");break;case 4:"星期四");break;case 5:"星期五");break;case 6:“星期六");break;case 0:“星期日");break;default:"输入有误!");break;【程序27题目:求100之内的素数public class Prog27public static void main(String口 args)int n = 100;"以内的素数:");for(int i=2;i<n+1;i+)if(i

14、sPrime(i)"");ength;j+)if(i=j) suml += aij;if(j= sum2 += aij; "矩阵对角线之和分别是:"+sum1+"和"+sum2);【程序30题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。import class Prog30public static void main(String口 args)int口 A = new int0,8,7,5,9

15、,1,2,4,3,12;int口 B = sort(A);print(B);"请输入10个数的数组:");Scanner scan = new Scanner;int a =();();int C = insert(a,B);print(C); seDelimiter("s");int a =();int b =();int c =();();if(a<b)int t = a;a = b;b = t;if(a<c)int t = a;a = c;c = t;if(b<c)int t = b;b = c;c = t;""

16、;+b+" "+c);【程序35题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组import class Prog35public static void main(String args)"请输入一组数:");Scanner scan = new Scanner.useDelimiter("s");int a = new int50;int m = 0;while()am+=();();int b = new intm;for(int i=0;i<m;i+)bi = ai;for(int i=0;i&

17、lt;i+)for(int j=0;j<j+)if(bj<bj+1)int temp = bj;bj = bj+1;bj+1 = temp;for(int i=0;i<i+)"");【程序36题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数import class Prog36public static void main(String args)final int N = 10;"请输入10个数的数组:");Scanner scan = new Scanner;int a = new intN;for(i

18、nt i=0;i<i+)ai=();"请输入一个小于10的数:");int m =();();int b = new intm;int c = new intN-m;for(int i=0;i<m;i+)bi = ai;for(int i=m,j=0;i<N;i+,j+)cj = ai;for(int i=0;i<N-m;i+)ai = ci;for(int i=N-m,j=0;i<N;i+,j+)ai=皿 for(int i=0;i<i+)"");【程序37题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从 1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位。import class Prog37public static void main(String口 args)"请输入一个整数:");Scanner scan = new Scanner;int n =();();seDelimiter

温馨提示

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

评论

0/150

提交评论