java编程练习题及答案 下载本文

内容发布更新时间 : 2024/5/10 4:50:37星期一 下面是文章的全部内容请认真阅读。

java编程练习题及答案

【篇一:java基础编程练习题(50题及答案)2017】

class=txt>【程序1】

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 {

public static void main(string[] args) {

system.out.println(第1个月的兔子对数: 1); system.out.println(第2个月的兔子对数: 1); int f1 = 1, f2 = 1, f, m=24; for(int i=3; i=m; i++) { f = f2;

f2 = f1 + f2; f1 = f;

system.out.println(第 + i +个月的兔子对数: +f2); } } }

【程序2】

题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class lianxi02 {

public static void main(string[] args) { int count = 0;

for(int i=101; i200; i+=2) { boolean b = false;

for(int j=2; j=math.sqrt(i); j++) {

if(i % j == 0) { b = false; break; } else{ b = true; } }

if(b == true) {count ++;system.out.println(i );} }

system.out.println( 素数个数是: + count); } }

【程序3】

题目:打印出所有的 水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。 public class lianxi03 {

public static void main(string[] args) { int b1, b2, b3;

for(int m=101; m1000; m++) { b3 = m / 100;

b2 = m % 100 / 10; b1 = m % 10;

if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) { system.out.println(m+是一个水仙花数); } } } }

【程序4】

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 import java.util.*;

public class lianxi04{

public static void main(string[] args) { scanner s = new scanner(system.in); system.out.print( 请键入一个正整数: ); int n = s.nextint(); int k=2;

system.out.print(n + = ); while(k = n) {

if(k == n) {system.out.println(n);break;}

else if( n % k == 0) {system.out.print(k + *);n = n / k; } else k++; } } }

【程序5】

题目:利用条件运算符的嵌套来完成此题:学习成绩 =90分的同学用a表示,60-89分之间的用b表示,60分以下的用c表示。 import java.util.*;

public class lianxi05 {

public static void main(string[] args) { int x;

char grade;

scanner s = new scanner(system.in); system.out.print( 请输入一个成绩: ); x = s.nextint(); grade = x = 90 ? a : x = 60 ? b :c;

system.out.println(等级为:+grade); } }

【程序6】

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 /**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。* / import java.util.*;

public class lianxi06 {

public static void main(string[] args) { int a ,b,m;

scanner s = new scanner(system.in); system.out.print( 键入一个整数: ); a = s.nextint();

system.out.print( 再键入一个整数: ); b = s.nextint();