《Java面向对象程序设计课后习题参考答案.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计课后习题参考答案.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java面向对象程序设计课后习题参考答案 习题3_4 public class San_4 / 编写一个应用程序求1!+2!+ (20) /* * param args/本题考查对循环的运用和对算法的编写 */ public static void main(String args) / TODO Auto-generated method stub int a; double b = 1, sum = 0;/ 定义变量 for (a = 1; a i / 2) / 如果ji/2,输出i System.out.print( + i); 输出结果: 2 3 5 7 11 13 17 19 23
2、29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 习题3_6 public class San_6 / 分别用while和for循环计算1+1/2!+1/3!+1/4!.的前20项和/* * param args/本题考查同学们对while循环、for循环以及对输出字符串格式的运用 */ public static void main(String args) / TODO Auto-generated method stub int i = 1, k; double j = 1, m = 1, sum1 = 0, sum2 = 0; while
3、(i 9999) / 当sum9999时,跳出while循环 break; n+; a = n * a; System.out.println(满足条件的最大整数是: + (n - 1); System.out.println(1至 + (n - 1) + 的阶乘和为: + sum); 计算结果: 满足条件的最大整数是:7 1至7的阶乘和为:46233 习题9_6 public class A public static void main(String args) String s=aBcDeFgH; String t=你好!; String v=我是中国人; String a=s.toUp
4、perCase();/将小写字母转换为大写字母 String b=s.toLowerCase();/将大写字母转换为小写字母 System.out.println(a); System.out.println(b); System.out.println(t.concat(v);/将字符串v连接到字符串t之后 输出结果: ABCDEFGH abcdefgh 你好!我是中国人 习题9_7 public class B public static void main(String args) String a = 书山有路勤为径; char b = a.charAt(0);/ 输出当前字符串的第一
5、个字符 char c = a.charAt(a.length() - 1);/ 输出当前字符串的最后一个字符 System.out.println(b); System.out.println(c); 输出结果: 书 径 习题9_8 import java.util.Calendar; import java.util.Scanner; public class C /* * param args * 输出某年某月的日历页,通过键盘输入年份和月份 */ public static void main(String args) / TODO Auto-generated method stub
6、int m, n; System.out.println(请从键盘输入年份:); Scanner ym = new Scanner(System.in); m = ym.nextInt();/ 读入年份 System.out.println(请从键盘输入月份:); n = ym.nextInt();/ 读入月份 CalendarBean cb = new CalendarBean(); cb.setYear(m); cb.setMonth(n); String a = cb.getCalendar(); / 返回号码的一维数组 char str = 日一二三四五六.toCharArray();
7、 for (char c : str) System.out.printf(%4c, c); for (int i = 0; i a.length; i+) / 输出一维数组 if (i % 7 = 0) System.out.println(); / 换行 System.out.printf(%4s, ai); package xt9_8; import java.util.Calendar; public class CalendarBean String day; int year = 2022, month = 0; public void setYear(int year) this
8、.year = year; public void setMonth(int month) this.month = month; public String getCalendar() String a = new String42; Calendar 日历 = Calendar.getInstance(); 日历.set(year, month - 1, 1); int 星期几 = 日历.get(Calendar.DAY_OF_WEEK) - 1; int day = 0; if (month = 1 | month = 3 | month = 5 | month = 7 | month
9、= 8 | month = 10 | month = 12) day = 31; if (month = 4 | month = 6 | month = 9 | month = 11) day = 30; if (month = 2) if (year % 4 = 0) & (year % 100 != 0) | (year % 400 = 0) day = 29; else day = 28; for (int i = 0; i 星期几; i+) ai = ; for (int i = 星期几, n = 1; i 星期几 + day; i+) ai = String.valueOf(n);
10、n+; for (int i = 星期几 + day; i a.length; i+) ai = ; return a; 输出结果: 请从键盘输入年份: 2022 请从键盘输入月份: 12 日一二三四五六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 习题9_9 import java.util.Calendar; import java.util.Scanner; public class C /* * param args 计算某年、某月、某日与某年、某月、某日之间的天
11、数间隔。 * 要求年、月、日从键盘上输入到程序中 */ public static void main(String args) / TODO Auto-generated method stub int y1, y2, m1, m2, d1, d2; System.out.println(请从键盘输入起始年份:); Scanner ymd = new Scanner(System.in); y1 = ymd.nextInt();/读入数据 System.out.println(请从键盘输入起始月份:); m1 = ymd.nextInt(); System.out.println(请从键盘输
12、入起始日:); d1 = ymd.nextInt(); System.out.println(请从键盘输入终止年份:); y2 = ymd.nextInt(); System.out.println(请从键盘输入终止月份:); m2 = ymd.nextInt(); System.out.println(请从键盘输入终止日:); d2 = ymd.nextInt(); Calendar calendar = Calendar.getInstance();/初始化日历对象 calendar.set(y2, m2 - 1, d2); System.out.print(y2 + 年 + m2 + 月
13、 + d2 + 日与); long time2 = calendar.getTimeInMillis(); calendar.set(y1, m1 - 1, d1); System.out.print(y1 + 年 + m1 + 月 + d1 + 日); long time1 = calendar.getTimeInMillis(); long 相隔天数 = (time2 - time1) / (1000 * 60 * 60 * 24);/毫秒*秒*分*时 System.out.println(相隔 + 相隔天数 + 天); 输出结果: 请从键盘输入起始年份: 1991 请从键盘输入起始月份:
14、 8 请从键盘输入起始日: 8 请从键盘输入终止年份: 2022 请从键盘输入终止月份: 12 请从键盘输入终止日: 6 2022年12月6日与1991年8月8日相隔7425天 习题9_10 public class F /* * param args * Math类的常用方法 */ public static void main(String args) / TODO Auto-generated method stub double a = -5, b = -4; double c1 = 1, c2 = 3; double g = Math.abs(a);/ 返回a的绝对值 System.
15、out.println(g); double d = Math.max(a, b);/ 返回a、b的最大值 System.out.println(d); double m = Math.min(a, b);/ 返回a、b的最小值 System.out.println(m); double x = Math.random();/ 返回01之间的随机数(不包括0和1) System.out.println(x); double r = Math.pow(c1, c2);/ 返回c1的c2次幂 System.out.println(r); double s = Math.sqrt(c1);/ 返回c
16、1的平方根 System.out.println(s); double z=Math.log(c2);/返回c2的对数 System.out.println(z); double t = Math.sin(c1);/ 返回c1的正弦数 System.out.println(t); double w = Math.asin(c1);/ 返回c1的反正弦数 System.out.println(w); 输出结果:5.0 -4.0 -5.0 0.22473943377471817 1.0 1.0 1.0986122886681096 0.8414709848078965 1.5707963267948966 习题7.2,根据例题5.13画出除主类外的UML类图 习题7.3,根据例题5.17画出除主类外的UML 类