java试题操作及答案培训资料_第1页
java试题操作及答案培训资料_第2页
java试题操作及答案培训资料_第3页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、java试题操作及答案/* 程序1 *题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小 兔子长到第三个月后每个月又生一*对兔子,假如兔子都不死,问每个月的兔子总数为多少?*1.程序分析:兔子的规律为数列1, 1, 2, 3, 5, 8, 13, 21.*/public class Testlpublic static int rabit(int n) if (n=l| |n=2)return 1;else if(n>=3)return (rabit (n-l) + (rabit(n-2);return 0;public static void main(String

2、args) for(int i=l;i<=12;i+)System, out. print In ("第"+i+"个月兔子对数为:"+rabit (i);/*【程序2】 *题目:判断101-200之间有多少个素数,并输出所有素数。*1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果 能被整除,则表明此数不是素数*/public class Test2public static void main(String args) System, out. printin(lOl 到 200 间的素数有:“);for(int i=10

3、1;i<=200;i+)boolean flag二true:for (int j=2;j<=Math. sqrt(i);j+)if(i%j=0) flag=false;break;if (flag=二true) System. out. print (i+"");continue;/*【程序3】*题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数 字立方和等于该数本身。例如:*153是一个水仙花数,因为153=1的三次方+ 5的三次方+ 3的三次方。*1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百 位。*/publi

4、c class Test3public static void main(String args)for(int i=100;i<999;i+)int g=(i%100)%10;int s=(i%100)/10;int b=(i/100);if (g*g*g+s*s*s+b*b*b二二i) System, out. printin (i);/*【程序4】*题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5o*程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步 骤完成:*(1)如果这个质数恰等于n,则说明分解质因数的过程己经结束,打印出即 可。*(2

5、)如果nOk,但n能被k整除,则应打印出k的值,并用n除以k的商,作 为新的正整数你n,重复执行第一步。*(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。*/ imp or t java .util.*;public class Test2public static void main(Stringargs)int k=2;System, out. println(,?请输入一个数:");Scanner input二new Scanner(System. in);int num二input nextlnt();if (num<=l)System, out. pr

6、intin(,z输入的数无效");return;if(num=k)System. out. println(num+二"+"1*"+num);else System. out. print(num+"二1");while(num>=k)if(num%k=0) /判断取余的数是否为0,如果是的话刚打印出k的值;System out. print(“;num二num/k;else k=k+l;/如果说num与K取余不为0话,就K执行+1;/*【程序5】*题目:利用条件运算符的嵌套來完成此题:学习成绩>二90分的同学用A表 示,

7、60-89分之间的用B表示,60分以下*的用C表不o*1.程序分析:(a>b)?a:b这是条件运算符的基本例子。*/public class Test5public static void main(String args)System .out. printin("please input a score:");java .utilScanner input 二 new java .util. Scanner(System. in);int score=input nextlnt();int x二score/10;switch(x) case 9:System ou

8、t printin("A");break;case 8:System out printin(B);break;case 7:System out printin(C);break;case 6:System out printin(D);break;default:System out. printIn("E");break;/*【程序6】*题目:输入两个正整数m和n,求其最大公约数和最小公倍数。*1.程序分析:利用辗除法。*/imp or t java .util.*;public class Test6/求最大公约数public static in

9、t gy (int m, int n)while(m%n!=0)int temp 二 m%n;m = n;n = temp;return n;/求最小公倍数public static int gb(int m, int n)return m*n/gy(m, n);public static void main(String args) Scanner in = new Scanner(System. in);System, out. print("请输入第一个整数:");int m = in. nextlnt ();System, out. print("请输入第

10、二个整数:");int n = in. nextlnt ();System, out. println(m+/z, "+n+"的最大公约数是:"+gy(m, n);System, out. println(,/最小公倍数是:"+gb(m, n);/*【程序7】*题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个 数。*1.程序分析:利用while语句,条件为输入的字符不为'n .*/imp or t java, uti L*;public class Test7public static void main(Strin

11、gLJ args)int i 二 0;int j = 0;int k = 0;int m 二 0;Scanner in 二 new Scanner(System. in);System, out. print ("请输入一行字符:");String str 二 in. next ();for(intn=0;n<str. length() ;n+) /str. length () 决定位数!else if(zf=,') /判断空格时有错误j+;else if(zf>='0'&&zfW)k+;elsem+;System, ou

12、t. println(,z英文字母的个数是:"+i);System, out. println(,/空格的个数是:"+j);System, out. print In (,z 数字的个数是:"+k);System, out. println(,/其他字符的个数是:"+m);/*【程序8】*题目:求s二a+aa+aaa+aaaa+aa. . . a的值,其中a是一个数字。例女口 2+22+222+2222+22222(此时共有5个数相加),*儿个数相加有键盘控制。*1.程序分析:关键是计算出每一项的值。*/imp or t java, uti 1.publ

13、ic class Test2public static void main(Stringargs)Scanner input二new Scanner (System. in);int sum二0;int b=0;System, out. print In (,?请输入需要相加的数:");int num二input. nextint ();System, out. println(,z请输入儿位数相加:");int a =input.nextlnt();for(int i=l;i<=a;i+)sum=sum*10+nuni;b+二sum;if (i=a)System,

14、out. print(sum+“二");/else System, out. print(sum+");System. out. print (b);/*【程序9】*题目:一个数如果恰好等于它的因子之和,这个数就称为完数"。例如 6二1+2 + 3.编程 找出1000以内的所有完殺。*/public class Test9public static void main(String args)int sum;for(int i=2;i<1000;i+)for (int j=l;j<=i/2;j+)if(i%j=O)sum+=j;if (sum=i)Sy

15、stem, out. printin ("完数有:+i);/*【程序10*题目:一球从100米高度自由落下,每次落地后反跳回原高度的一 半;再落下,求它在第10次落地时,共经过多*少米?第10次反弹多高?*/public class TestlOpublic static final double startLong=100:求小球第n次落地时经过的距离public static double ballLeng(int n)辻(n<=0)System, out. print In ( 小球没有落地! “);return 0;double ballLong=startLong;d

16、ouble temp=startLong;for(int i=l;i<n;i+)ballLong=(ballLong/2); temp+=ballLong*2; return temp;/求小球第n次反弹了多高public static double reboundLong(int n)if(n<=0)System, out. print In (” 小球没有落地!"); return 0;if(n=l)return startLong/2:return (ballLeng(n)-ballLeng(nl)/4; /为什么除 4/求当小球停止跳动时,小球跳动了多少次数pub

17、lic static void zeroReboundOint m=2;while(m>=2)if(ballLeng(m)-ballLeng(m-1)/4=0)System. out. println(m);break;m+;public static void main(StringLJ args)System out. println(ballLeng(10);System out. println(reboundLong(10);zeroRebound();/*【程序11】*题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字 的三位数?都是多少?*1.程序分析:可填在百

18、位、十位、个位的数字都是1、2、3、4o组 成所有的排列后再去掉不满足条件的排列。*/public class Testll public static void main(String args) int count=0;for(int i=l;i<5;i+)for(int j=l;j<5;j+)for (int k=l;k<5;k+)if(i!=j&&i!=k&&j!=k)count+;System. out. println(i*100+j*10+k);System, out. print In ("由 1, 2, 3, 4 共

19、可以组成"+count+"个互不相 同且无重复数字的三位数! );/*【程序12题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖 金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7. 5%; 20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%; 60 万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输 入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。注意定

20、义时需把奖金定义成长整 型。*/impor t java, util.*;public class Testl2public static void main(String args)double sum; /奖金Scanner sc=new Scanner(System, in):double lirun=sc nextDouble();if (lirun二100000)sum=lirun*0 1;else if (lirun<200000)sum二lirun*0 075;else if (lirun<400000)sum二lirun*0 05;else if (lirun<

21、;600000)sum二lirun*0 03;else if(lirun<1000000)sum二lirun*0 015;elsesum二lirun*0 01;System, out. printin(,z应发的奖金是"+sum);/*【程序13*题目:一个整数,它加上100后是一个完全平方数,再加上168又是 一个完全平方数,请问该数是多少?*/public class Testl3public static void main(String args)for (long i=0;i<100000;i+)if(Math, sqrt(long)(i+100)%l=0&am

22、p;&Math. sqrt(long)(i+2 68)%l=0)System, out. print In (i+"加上100后是一个完全平方数,再 加上168又是一个完全平方数);/*【程序14*题目:输入某年某月某日,判断这一天是这一年的第儿天?*/impor t java, util.*;public class Testl4public static void main(String_ args)int count=0;Scanner in=new Scanner(System, in);System, out. print ("请输入年:");i

23、nt year=in. nextlnt();System, out. print (z,请输入月:");int month=in nextlnt();System, out. print (,z请输入日:");int day二in. nextlnt ();switch(month)case 12: count +二 30;case11:count;+= 31;case10:count;+= 30;case9:cou nt+二31;case8:cou nt+二30;case7:cou nt+二31;case6:cou nt+二31;case5:cou nt+二30;case4

24、:cou nt+二31;case3:cou nt+二28;case2:cou nt+二31;case1:cou nt+二0;count +二 day;if (year%40&&year%100 !=0&&month>=3)count +二 1;System. out. print (year+"-"+month+"-"+day+"是一年中的第 +count+天);/*【程序15*题目:输入三个整数x, y,z,请把这三个数由小到大输出。*/impor t java, util.*;public class

25、Testl5public static void main(String args)Scanner in = new Scanner(System. in);System, out. print (”n 请输入第一个数:);int x = in. nextlnt ();System, out. print (”n 请输入第二个数:);int y = in. nextlnt ();System, out. print (”n 请输入第三个数:);int z = in. nextlnt ();if (x>=y && x>=z)System. out. print (x)

26、;if(y>=z)System out. print(y);System out. print(z);else if(z>二y)System out. print(z);System out. print(y);else if(y>=x && y>二z)System out. print(y);if (x>=z)System out. print(x);System out. print(z);else if (z>=x)System out. print (z);System out. print (x);else if (z>=x

27、&& z>=y)System. out. print (z);if(x>=y)System. out. print (x);System. out. print (y);else if(y>=x)System. out. print (y);System. out. print (x);/*【程序16】*题目:输出9*9 口诀。*1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。*/public static void main(String args)for(int j=l;j<=i;j+)System, out. print(j+*+i+二

28、+i*j+t);System. out. println();/*【程序17*题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不瘾,又多吃了一个 第二天早上又将剩*下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时见只剩下一个桃子了。求第一天共摘 了多少。*1.程序分析:釆取逆向思维的方法,从后往前推断。*/public class Testl7int num=l;num=(num+1)*2;System, out. println(zz第一天共摘 了 "+num+"个苹果");/*题目:两个乒乓球队

29、进行比赛,各出三人。甲队为a, b,c三人,乙队为 x, y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x, z比,请编程序找 出三队赛手的名单。*/public class Testl8public static void main(String args)char arrl= ' a' , ' b', ' c' ;char arr2= ,x,,,y,,,z,;for(int i二0;iarrl. length;i+)for(int j=0;j<arr2. length;j+)if ( (arrl i

30、=,a' &&arr2 j=,x' ) | | (arrl i =,c' &&arr2 j=,x' ) | | (arrl i=,c' &&arr2 j=,z')continue;System. out. println(arrli + " vs " + arr2j);/*【程序19题目:打印出如下图案(菱形)*1 程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一 个规律,利用双重for循环,第一层控制行,第二层控制列。*/public class Testl9/上半

31、部分for (int i=0;i<4;i+)for(int j=0;j<4-i;j+)System. out. print ("");for(int j=0;j<i+l;j+)System. out. print ('*');System, out. println();/中部以及下半部分for(int i=0;i<3;i+)for(int j=0;j<i;j+)System. out. print ("");for (int j=0;j<5-(i+1);j+)System. out. print (&

32、#39;*');System out printin();/*【程序20】题目:有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13.求出这个 数列的前20项之和。1.程序分析:请抓住分子与分母的变化规律。*/public class Test20public static void main(StringEJ args)int fl=l;int f2=2;int sum二0;int temp;for (int i=0;i<20;i+)sum=sum+f2/f1;temp=f1;fl=f2;f2=f2+temp;System. out. printin (

33、sum);/*【程序21】题目:求 l+2!+3!+. .+20!的和1.程序分析:此程序只是把累加变成了累乘。*/public class Test21public static int doFactorial (int n)if(n<0)return -1; /输入不合法if (n=0)return 1;else if(n=l)return 1;elsereturn n*doFactorial(nl);public static void main(String args) int result二0;System .out. pri nt ("please inp ut a

34、 number:z,);java .util. Scanner input 二 new java .util. Scanner(System. in); int n二input nextlnt ();/resuIt二doFactorial(n);for (int i=l;i<=n;i+)result+二doFactorial(i);System out. println(resuIt);/*【程序22题目:利用递归方法求5!。1.程序分析:递归公式:fn二fn_l*4! */求n的阶乘public class Factorialpublic static int doFactorial(

35、int n)辻(n<0)return -1; /输入不合法if (n=0)return 1;else if (n=l)return 1;elsereturn n*doFactorial(nl);public static void main(String args)int resuIt;System. out. print ("please input a number:,z);java .utilScanner input 二 new java .util. Scanner(System. in);int n=input nextint();resuIt二doFactoria

36、l(5);/*【程序23题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2 岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。 最后问第一个人,他说是10岁。请问第五个人多大? */public class Test23public static void main(String args)int age=10:for(int i=l;i<5;i+)age二age+2;System. out. println("第五个人"+age+"岁");/*【程序24】题目:给一个不多于5位的正

37、整数,要求:一、求它是几位数,二、逆序打印出各位数字。*/imp or t java, uti L*;public class Test24Scanner s = new Scanner(System. in);System, out. print("请输入一"个数:");St ring shu=s. nex t ();int len=shu. length();if(len<=5)System, out. println(z,这个数是"+len+"位");char out;while(len>0)out二shu. cha

38、rAt(lenT);System, out. printin C第"+len+"位数是:"+out);len;else System, out. print In ("您输入的数超过5位!请重新输入");/*【程序25题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与 万位相同,十位与千位相同。*/public class Test25public static void main(String args) System, out. print ("请输入一个五位数:");java. util. Scanne

39、r input = new java, uti 1. Scanner (System. in);String shu=input. next ();if (shu. length()二二5)if (shu. charAt (0) =shu. charAt (4)&&(shu. charAt (l)=shu.charAt(2)System, out. printin (shu+/,是回文数");elseSystem, out. println(shu+,z不是回文数");elseSystem, out. printin(,z您输入的不是五位数! ! ”);/*

40、【程序26题目:请输入星期几的第一个字母來判断一下是星期几,如果第一个字 母一样,则继续判断第二个字母。1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况 语句或if语句判断第二个字母。*/public class Test26char weekSecond;System, out. print ("请输入第一"个字母:");java .utilScanner input 二 new java .util. Scanner(System. in);String str二input next ();char weekFirst=str charAt(0

41、);switch(weekFirst)case ':case ': System. out printin ("星期一 (Monday) “);break;case ':case ' T' : System, out. print (,z请输入第二个字母:");str= input next ();weekSecond=str charAt(0);if (weekSecond二u weekSecond二二 'U')System out printin (星期二 (Tuesday) ”);break;else if(we

42、ekSecond二二'h | IweekSecond二二'H)System out printing星期四(Thursday)“);break;elseSystem out printin(星期中第二个字母输入错误! ! “);break;case ' w :case ' W' : System, out. printin ("星期三(Wednesday)"); break;case ' f':case ' F' : System, out. printin ("星期五(Friday)&quo

43、t;); break;case ' s':case ' S' : System, out. print (,z请输入第二个字母:“);str= input next ();weekSecond=str. charAt (0);if (weekSecond=,a" weekSecond二二System out printin (星期(Saturday) “);break;else if (weekSecond二二'i | weekSecond=,U,)System out printin (星期 I I(Sunday)“);break;elseS

44、ystem out printin(星期中第二个字母输入错误! “);break;/*【程序27】题目:求100之内的素数*/public class Test27public static void main(String args)int flag;System, out. print In ("100 以内的素数有:");for (int i=2;i<=100;i+)flag=l;for(int j=2;j<i;j+)if(i%j=0)flag=0;退出循环j=i; /j为i,使”i不成立,使不是素数时if(flag=l)System, out. prin

45、t(i+"");/*【程序28】 题目:对10个数进行排序1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小 的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。*/import java util. *;public class Test28public static void main(String args)Scanner input二new Scanner (System. in):System, out. print ("请输入要排序数的个数:");int num二input nextlnt();int ar

46、r=new intnum;System, out. print ("n 请输入"+num+"个数:");for(int i二0;inum;i+)arr i二input nextint ();System, out. println("n 排序后:");int temp=0;for(int i二0;inum;i+)for(int j=i+l;j<num;j+)if (arrj>arril)temp=arri;arr i=arrj;arr j=temp;for(int i二0;inum;i+)System, out. prin

47、t(arri+ “);/*【程序29题目:求一个3*3矩阵对角线元素之和1.程序分析:利用双重for循环控制输入二维数组,再将aii累加 后输出。*/import java, uti 1.*;public class Test29public static void main(String args)Scanner in = new Scanner(System, in);System, out. println(z,请输入一个 3*3 矩阵:”);int sum二0;int a=new int 3 3;for(int i=0;i<3;i+)for (int j=0;j<3;j+)

48、ai j=in. nextint ();if(i=j)sum+二aij;System, out. print ("n");System, out. println(,/对角线和为"+sum);/*【程序30题目:有一个己经排好序的数组。现输入一个数,要求按原來的规律将 它插入数组中。*/import java, uti 1.*;public class Test30public static int paixu(int arr)int temp=O:for (int i=0; Karr length; i+)for(int j=i+l;j<arrlength

49、;j+)if (arrj>arril)temp二arri;arr i二arr j;arr j二 temp;return arr;public static void display(int arr)for (int i=0; Karr length; i+)/插入元素并排序public static int insert(int arr, int num) int result二new intarr length+1;result O=num; /把待插入元素放到for(int i二0;iarrlength;i+)resulti+l=arri;int temp;for(int i二0;i<resultlength-l;i+)if (resulti<resulti+1)temp=resulti;resulti=resulti+1;resuIti+1二temp;return resuIt;public static void main(String args)Scanner sc二new Scann

温馨提示

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

评论

0/150

提交评论