Java2程序设计基础第四章课后习题

1.编写一个Java应用程序,要求从键盘输入两个整数,计算这两个数之和,并输出。

import java.io.*;

public class exe4_1 {
	public static void main(String args[]) {
		int num1, num2;
		String str1, str2;
		BufferedReader buf;
		buf = new BufferedReader(new InputStreamReader(System.in));
		System.out.print("Please input the first integer:\n");
		try {
			str1 = buf.readLine();
			num1 = Integer.parseInt(str1);
		} catch(IOException e1) {
			num1 = 0;
		}
		System.out.print("Please input the second integer:\n");
		try {
		str2 = buf.readLine();
		num2 = Integer.parseInt(str2);
		} catch (IOException e2) {
			num2 = 0;
		}
		System.out.print(num1 + " + " + num2 + " = " + (num1 + num2));
	}
}

2.将学生的学习成绩按不同的分数段分为优、良、中、及格和不及格5个等级,从键盘上输入一个0~100之间的成绩,输出相应的等级。要求用switch语句实现。

import java.io.*;

public class exe4_2{
	public static void main(String args[]) {
		int score;
		String str;
		BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
		System.out.print("Please input a score(0~100):\n");
		try {
			str = buf.readLine();
			score = Integer.parseInt(str);
		} catch(IOException e1) {
			score = 0;
		}
		while (score < 0 || score > 100) {
			System.out.print("Wrong score. Please re-input:\n");
			try {
				str = buf.readLine();
				score = Integer.parseInt(str);
			} catch(IOException e1) {
				score = 0;
			}
		}
		switch (score / 10) {
			case 10:
			case 9:
				System.out.print("A\n");
				break;
			case 8:
				System.out.print("B\n");
				break;
			case 7:
				System.out.print("C\n");
				break;
			case 6:
				System.out.print("D\n");
				break;
			case 5:
			case 4:
			case 3:
			case 2:
			case 1:
			case 0:
				System.out.print("E\n");
				break;
		}
	}
}

3.编写一个Java应用程序,输出1和100之间所有既可以被3整除,又可被7整除的数。

import java.io.*;

public class exe4_3{
	public static void main(String args[]) {
		int i = 0;
		for (; i <= 100; i++) {
			if (i % 3 == 0 && i % 7 == 0) {
				System.out.print(i + " ");
			}
		}
	}
}

4.编程计算sum = 1 - 1/2! + 1/3! - … (-1)^(n-1)/n!。

import java.io.*;

public class exe4_4{
	public static void main(String args[]) {
		double sum = 0;
		for (int i = 1; i < Integer.MAX_VALUE && sum < Double.MAX_VALUE; i++) {
			sum += Math.pow((-1), (i - 1)) / factorial(i);
			if (factorial(i) >= Double.MAX_VALUE) {
				System.out.print("i = " + i + "\n");
				break;
			} 
		}
		System.out.print("sum = " + sum);
	}
	
	public static double factorial(double number) {
        if (number <= 1)
            return 1;
        else
            return number * factorial(number - 1);
    }
}

5.水仙花数是指其个位、十位和百位三个数的平方和 立方和等于这三个数本身,求出所有的水仙花数。

/**
	书上指示水仙花数为平方和,实际上是立方和,并且只针对三位数
*/
import java.io.*;

public class exe4_5{
	public static void main(String args[]) {
		for (int num = 100; num <= 999; num++) {
			if (isDaffodilNumber(num)) 
				System.out.print("number " + num + " is daffodil number.\n");
		}
	}
	
	public static boolean isDaffodilNumber(int number) {
		int single, ten, hundred, sum;
		single = number % 10;
		ten = number / 10 % 10;
		hundred = number /100;
		sum = single * single * single + ten * ten * ten + hundred * hundred * hundred;
		if (number == sum) 
			return true;
		else 
			return false;
	}

}

6.从键盘输入一个数,判断该数是否是完全数。完全数是指其所有因数(包括1但不包括其自身)的和等于该数自身的数。例如28 = 1 + 2 + 4 + 7 + 14就是一个完全数。

import java.io.*;

public class exe4_6{
	public static void main(String args[]) {
		int num;
		String str;
		BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
		System.out.print("Please input a number:\n");
		try {
			str = buf.readLine();
			num = Integer.parseInt(str);
		} catch(IOException e1) {
			num = 0;
		}
		if (isCompleteNumber(num)) 
			System.out.print(num + " is complete number.");
		else 
			System.out.print(num + " is not complete number.");
	}
	
	public static boolean isCompleteNumber(int number) {
		int sum = 0;
		int num = number;
		for (int i = 2; i <= number / 2; i++) {
			if (number % i == 0) 
			sum += i;
		}
		if ((sum + 1) == num) return true;
		return false;
	}
}

7.计算并输出一个整数各位数字之和。如:5423 = 5 + 4 + 2 + 3。

import java.io.*;

public class exe4_7{
	public static void main(String args[]) {
		int num, sum = 0;
		String str;
		BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
		System.out.print("Please input a integer:\n");
		try {
			str = buf.readLine();
			num = Integer.parseInt(str);
		} catch(IOException e1) {
			num = 0;
		}
		System.out.print(num + " = ");
		do {
			sum += num % 10;
			num = num / 10;
		} while (num != 0);
		System.out.print(sum);
	}
}

8.编程输出如下的数字图案:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11

import java.io.*;

public class exe4_8{
	public static void main(String args[]) {
		int temp, a = 1, b = 2;
		for (int i = 0; i <= 4; i++) {
			a += i;
			temp = a;
			System.out.print(a + " ");
			for (int j = b; j <= 5; j++) {
				a += j;
				System.out.print(a + " ");
			}
			b++;
			a = temp;
			System.out.print("\n");
		}
	}
}

注:练习均为博主自己编写,不是标准答案,可能存在问题,可以留言讨论。

练习小程序建议用Notepad++

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java面向对象程序设计》(第2版)课后答案 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第1页。《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第1页。Java面向对象程序设计Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第1页。 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第1页。 (编著耿祥义X跃平) 习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用Java解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6. Java源文件的扩展名是.javaJava字节码的扩展名是.class。 7. D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" java.lang.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" java.lang.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" java.lang.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。 习题2 1. D 2.【代码1】【代码2】错误 //【代码3】更正为 float z=6.89F; 3.float型常量后面必须要有后缀"f"或"F"。 对于double常量,后面可以有后缀"d"或"D",但允许省略该后缀。 4.public class Xiti4{ public static void main (String args[ ]){ char ch1='你',ch2='我',ch3='他'; System.out.println("\""+ch1+"\"的位置:"+(int)ch1); System.out.println("\""+ch2+"\"的位置:"+(int)ch2); System.out.println("\""+ch3+"\"的位置:"+(int)ch3); } } 5.数组名字.length 6.数组名字.length 7.【代码1】A,65 【代码2】-127 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第2页。《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第2页。【代码3】 123456.783,123456.78312 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第2页。 《Java面向对象程序设计》(第2版)课后答案全文共39页,当前为第2页。 8. 【代码1】false 【代码2】true 【代码3】false 【代码4】3 【代码5】4.4 【代码6】8.8 习题3 输出110 if-else语句书写的不够规X,复合语句缺少大括号"{}",代码不够清晰。 2.你好好酷!! 3. public class Xiti3_3 { public static void main (String args[ ]){ int startPosition=0,endPosition=0; char cStart='а',cEnd='я'; startPosition=(int)cStart; //cStart做int型转换据运算,并将结果赋值给startPosition endPosition=(int)cEnd ; //cEnd做int型转换运算,并将结果赋值给endPosition System.out.println("俄文字母表:"); for(int i=startPosition;i<=endPosition;i++){ char c='\0'; c=(char)i; //i做char型转换运算,并将结果赋值给c System.out.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值