【java核心技术课后习题】第二章习题2.5

一.选择题

  • 1~5 . BCABB
  • 6~10. DCCC

二.填空题

  1. 合法标识符:abc,a1,_abc,_1a,ab123;其余为不合法标识符
  2. 66
  3. True False
  4. 4
  5. 2
  6. 2 2 False 2
  7. m20/100 (double)m20/100或0.2*m

三.编程题

1.由命令行输入一个成绩,使用switch结构求出成绩的登记。A:90 ~ 100;B:80 ~ 89;C:70 ~ 79;D:60 ~ 69; E:0 ~ 59。

package chapter2_1;

import java.util.Scanner;

public class ScoreOut {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner reader = new Scanner (System.in);
		System.out.println("请输入同学的分数(0-100): ");
		int n = reader.nextInt();
		switch (n/10) {
			case (10) : System.out.println("A");
			break;
			case (9) : System.out.println("A");
			break;
			case (8) : System.out.println("B");
			break;
			case (7) : System.out.println("C");
			break;
			case (6) : System.out.println("D");
			break;
			default	: System.out.println("E");
			break;
		}
	}

}

2.计算圆周率:PI=4-4/3+4/5-4/7…;打印出第一个大于3.1415小于3.1416的值。

package chapter2_1;

public class ScoreOut {

	public static void main(String[] args) {
		double p = 0;
		double n = 1;
		while(p<=3.1415 || p>=3.1416)
		{
			p-=(4/(2*n-1))*(Math.pow(-1,n));
			n++;
		}
		System.out.println("第一个大于3.1415且小于3.1416的圆周率为: "+p);
	}

}

3.输入一个数据n,计算斐波那契数列的第n个值。斐波那契数列:1、1、2、3、8、13、21、34···

package chapter2_1;

import java.util.Scanner;

public class ScoreOut {

	public static void main(String[] args) {
		Scanner readone = new Scanner(System.in);
		int n = readone.nextInt();
		int m1 = 1;
		int sum = 0;
		if (n <= 0) {
			System.out.println("输入错误");
		}
		else if(n <= 2) {
			System.out.println("第n个斐波那契数列值为: "+sum);
		}
		else {
			int m2 = 1;
			for(int i = 3 ; i <= n; i++) {
				sum = m1 + m2;
				m1 = m2;
				m2 = sum;
			}
		}
		System.out.println("第"+n+"个斐波那契数列值为: "+sum);
	}

}

4.计算多项式1-1/3+1/5-1/7+1/9…的值。    
1)要求出前50项和值。  
2)要求出最后一项绝对值小于1e-5的和值。

package chapter2_1;

public class ScoreOut {

	public static void main(String[] args) {
		double sum = 0.0;
		for (int i=1; i <= 50;i++) {
			if(i%2 == 0) {
				sum = sum - 1.0/(2*i-1);
			}else {
				sum = sum + 1.0/(2*i-1);
			}
		}
		System.out.println("前50项的值:"+sum);
		double item = 0.0;
		int j = 1;
		sum = 0.0;
		while(item < 0.00001) {
			item =1.0/(2*j-1);
			if(j%2 == 0) {
				sum -= item;
			}else {
				sum += item;
			}
			j++;
		}
		System.out.println("最后一项绝对值小于le-5的和值为: " +sum);
	}

}

5、产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?

package chapter2_1;

public class ScoreOut {

	public static void main(String[] args) {
		ScoreOut t = new ScoreOut();
		for(int i = 0;i < 100;i++) {
			int num = (int)(Math.random()*1000);
			if(t.isPrime(num)) {
				System.out.println(num+"是素数 ");
			}else {
				System.out.println(num+"不是素数 ");
			}
			System.out.println();
		}
	}
	public boolean isPrime(int num) {
		for(int i = 2;i < num/2;i++) {
			if(num % i == 0) {
				System.out.println(num+"第一个被"+i+"整除");
				return false;
			}
		}
		return true;
	}

}

6、在屏幕上打印出n行的金字塔图案.

package chapter2_1;

import java.util.Scanner;

public class ScoreOut {

	public static void main(String[] args) {
		Scanner sn = new Scanner(System.in);
		int rows = sn.nextInt();
		for(int i = 1;i <= rows;i++) {
			for(int j=1;j <= rows-i;j++) {
				System.out.print(" ");
			}
			for(int k = 1;k <= 2*i-1;k++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}

}

7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和,打印出所有的可能。如输入10,结果为:10=5+5;10=3+7。

package chapter2_1;

import java.util.Scanner;

public class ScoreOut {

	public static void main(String[] args) {
		Scanner sn =new Scanner(System.in);
		int n = sn.nextInt();
		if(n <= 6 || n % 2 != 0) {
			System.out.println("参数错误");
			return ;
		}
		ScoreOut g = new ScoreOut();
		for(int  i = 3;i <= n/2;i++) {
			if(i%2 == 0) {
				continue;
			}
			if(g.isPrime(i) && g.isPrime(n-i)) {
				System.out.println(i+"+"+(n-i)+"="+n);
			}
		}
	}
	public boolean isPrime(int num) {
		for (int i = 2;i <= num/2; i++) {
			if(num%i == 0) {
				return false;
			}
		}
		return true;
	}
}

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值