Java 2 实用教程(第五版)课后习题-【编程题答案】

 第二章

1.编写一个应用程序,给出汉字“你” “我” “他” 在Unicode表中的位置。

/*
 * 要观察一个字符在Unicode表中的顺序位置,可以使用int型类型转换
 */
public class Test {

	public static void main(String[] args) {

		System.out.println((int)'你');
		System.out.println((int)'我');
		System.out.println((int)'他');
	}

}

2.编写一个java应用程序,输出全部的希腊字母。

/*
 * 要观察要得到0~65535之间的数所代表的Unicode表中相应位置上的字符,必须使用char型类型转换
 */
public class Test {

	public static void main(String[] args) {

		 char cStart='α', cEnd='ω';
		 for(char c = cStart; c <= cEnd; c ++) {
			 System.out.print(c+" ");
		 }
	}

}

第三章

 1.编写应用程序求1!+ 2!+ … + 10!

public class Test {

	public static void main(String[] args) {
		int sum = 0;

		for(int i = 1; i <= 10; i ++) {
			int f = 1;
			for(int j = 1; j <= i; j ++) {
				f *= j;
			}
			sum += f;
		}
		System.out.println(sum);
	}

}

2.编写一个应用程序,求100以内的全部素数。

public class Test {

	public static void main(String[] args) {
		
		for(int i = 2; i <= 100; i ++) {
			int flag = 0;
			for(int j = 2; j*j <= i; j ++) {
				if(i % j == 0) {
					flag = 1;
					break;
				}
			}
			if(flag == 0) {
				System.out.print(i+" ");
			}
		}
	}
}

3.分别用do-while和for循环计算1+1/2!+1/3!+1/4!+…的前20项和。

public class Test{
	public static void main(String[] args) {
		double sum = 0.0;
		for(int i = 1; i <= 20; i ++) {
			int f = 1;
			for(int j = 1; j <= i; j ++) {
				f *= j;
			}
			sum += 1.0/f;
		}
		System.out.println(sum);
	}
}

4.一个数如果恰好等于他的因子之和,这个数就成为完数。编写一个应用程序求1000之内所有的完数。

public class Test {

	public static void main(String[] args) {

		for(int i = 1; i <= 1000; i ++) {
			int sum = 0;
			for(int j = 1; j < i; j ++) {
				if(i % j == 0) {
					sum += j;
				}
			}
			if(sum == i) {
				System.out.print(i+" ");
			}
		}
	}
}

5.编写应用程序,使用for循环语句计算8+88+888+…前10项之和。

public class Test {

	public static void main(String[] args) {

		long sum = 0;
		long ans = 0;
		for(int i = 1; i <= 10; i ++) {
			ans = ans*10 + 8;
			sum += ans;
		}
		System.out.println(sum);
	}
}

6.编写应用程序,输出满足1+2+3+…+n < 8888的最大正整数。 

public class Test {

	public static void main(String[] args) {

		int sum = 0;
		int i = 0;
		while(sum < 8888) {
			i ++;
			sum += i;
		}
		System.out.println(i-1);
	}
}

第四章

 用类描述计算机中CPU的速度和硬盘的容量。

class PC {
	CPU cpu;
	HardDisk HD;
	
	public void setCpu(CPU cpu) {
		this.cpu = cpu;
	}
	
	public void setHD(HardDisk hD) {
		HD = hD;
	}
	
	public void show() {
		System.out.println("CPU的速度:"+cpu.speed+"   硬盘的容量:"+HD.amount);
	}
	
}
class CPU{
	
	int speed;
	public int getSpeed() {
		return speed;
	}

	public void setSpeed(int speed) {
		this.speed = speed;
	}
	
}

class HardDisk{
	
	int amount;
	public int getAmount() {
		return amount;
	}

	public void setAmount(int amount) {
		this.amount = amount;
	}
}

public class Test {

	public static void main(String[] args) {
		CPU cpu = new CPU();
		cpu.setSpeed(2200);
		HardDisk disk = new HardDisk();
		disk.setAmount(200);
		PC pc = new PC();
		pc.setCpu(cpu);
		pc.setHD(disk);
		pc.show();
	}
}

第五章

设计一个动物声音模拟器,希望模拟器可以模拟许多动物的声音:

/*
 * 抽象动物类和两个抽象方法
 */
abstract class Animal{
	abstract void  cry();
	abstract String getAnimalName();
	
}
/*
 * 模拟类
 */
class Simulator{
	
	Animal animal;
	public void playSound(Animal animal) {
		this.animal = animal;
		
	}
	public void show() {
		System.out.println(animal.getAnimalName());
		animal.cry();
	}
}

class Dog extends Animal{
	@Override
	void cry() {
		System.out.println("狗的哭声是呜呜呜~~~");
	}

	@Override
	String getAnimalName() {
		return "狗狗";
	}
}
class Cat extends Animal{

	@Override
	void cry() {
		System.out.println("猫咪的哭声是喵喵喵~~~");
	}

	@Override
	String getAnimalName() {
		return "猫咪";
	}
	
}
public class Test02 {

	public static void main(String[] args) {

		Simulator simulator = new Simulator();
		simulator.playSound(new Dog());
		simulator.show();
		simulator.playSound(new Cat());
		simulator.show();
	}

}

 第六章

该题目和第五章习题5的编程题类似,只不过这里要求使用接口。

设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。

package demo2;

public interface Animal {

	public void cry();
	public String getAnimalName();
}

public class Simulator {

	public void playSound(Animal animal) {
		System.out.print(animal.getAnimalName()+"的叫声是:");
		animal.cry();
	}
}

public class Dog implements Animal {

	public void cry() {
		// TODO Auto-generated method stub
		System.out.println("汪汪汪~");
	}

	public String getAnimalName() {
		// TODO Auto-generated method stub
		return "狗";
	}

}

public class Cat implements Animal {

	public void cry() {
		// TODO Auto-generated method stub
		System.out.println("喵喵喵~");
	}

	public String getAnimalName() {
		// TODO Auto-generated method stub
		return "猫";
	}

}

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Simulator s = new Simulator();
		s.playSound(new Dog());
		s.playSound(new Cat());
	}

}

【未完...待续...】

你可能感兴趣的:(Java 2 实用教程(第五版)课后习题-【编程题答案】)