教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

Java面向对象程序设计课后习题参考答案

来源:网络收集 时间:2026-09-04
导读: 由耿祥义和张跃平编著的Java面向对象程序设计课本习题部分参考答案 public class San_4 {// 编写一个应用程序求1!+2!+...+20! /** * @param args//本题考查对循环的运用和对算法的编写 */ public static void main(String[] args) { // TODO Auto-generated

由耿祥义和张跃平编著的Java面向对象程序设计课本习题部分参考答案

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 <= 20; a++) {// for循环实现该功能 b = b * a;// 当a=1时,b=b*a=1,依此类推 sum = sum + b;// 当a=1时,sum=sum+b=1,依次类推 } for (int w = 1; w <= 19; w++) {// for循环打印出阶乘之和的形式来 System.out.print(w + "!" + "+"); } System.out.println("20!" + "=" + sum);// 最终输出阶乘之和 double sum1 = 0, a1 = 1; int i = 1; while (i <= 20)// 用while循环实现该功能 { sum1 = sum1 + a1; i++; a1 = a1 * i; } System.out.println("sum1=" + sum1); } }

输出结果:

1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2.5613274941118203E18 sum1=2.5613274941118203E18

习题3_5

public class San_5 {// 求100以内的素数 /** * @param args//本题考查对for循环、break语句、if语句的运用 */ public static void main(String[] args) { // TODO Auto-generated method stub int i, j; for (i = 2; i <= 100; i++) {// for循环从2开始,逐渐增1 for (j = 2; j <= i / 2; j++) {// for循环从2开始,逐步增1 if (i % j == 0) {// 如果i除以j的余数为0,则终止本次for循环 break; } } if (j > i / 2) {// 如果j>i/2,输出i System.out.print(" " + i); } } } }

由耿祥义和张跃平编著的Java面向对象程序设计课本习题部分参考答案

2 3 5 7 11 13 17 19 23 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 (i <= 20) {// 用while循环实现 sum1 = sum1 + j; i++; j = j * (1.0 / i); } System.out.print("1+"); for (int r = 2; r <= 19; r++) { System.out.print("1/" + r + "!" + "+"); } System.out.print("1/20!" + "=" + sum1); System.out.println(); System.out.print("1+"); for (int r = 2; r <= 19; r++) { System.out.print("1/" + r + "!" + "+"); } for (k = 1; k <= 20; k++) {// 用for循环实现 m *= (1.0 / k); sum2 += m; } System.out.println("1/20!" + "=" + sum2); } }

计算结果:

1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.7182818284590455 1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.7182818284590455

习题3_7

public class San_7 {// 一个数如果恰好等于它的因子之和,这个数就成为”完数“。 // 编写一个应用程序求1000以内的所有完数。 /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i, j,sum; for (i = 1; i <= 1000; i++) { for (j = 1, sum= 0; j < i; j++) {

由耿祥义和张跃平编著的Java面向对象程序设计课本习题部分参考答案

if (i % j == 0) {// 当i除以j的余数为0时,执行sum=sum+j sum = sum + j; } } if (sum == i) {// 如果sum==i,执行下列输出语句 System.out.println("完数:" + i); } } } }

计算结果:

完数:6 完数:28 完数:496

习题3_8

import java.util.Scanner;

public class San_8 {// 编写应用程序,计算两个非零正整数的 // 最大公约数和最小公倍数,要求两个正整数从键盘输入 /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int a, b, c, d = 0, e = 0; System.out.println("请从键盘输入两个正整数:"); Scanner nihao = new Scanner(System.in); System.out.print("你输入的第一个数为:"); a = nihao.nextInt(); System.out.print("你输入的第二个数为:"); b = nihao.nextInt(); if(a==0||b==0){//当输入的数有零存在时,输出错误提示信息 System.out.println("输入有错,请确认后重新输入!!"); } else { for (c = 1; c <= a; c++) { if ((a % c == 0) && (b % c == 0)) {//当a除以c,b除以c的余数皆为0时 d = c;//将c赋给d //将a与c,b与c的商之积与上面得到的最大公约数相乘 e = d * (a / c) * (b / c);//也可以改写为:e=a*b/c } } System.out.println("这两个数的最大公约数为:"+d); System.out.println("这两个数的最小公倍数为:"+e); } } }

计算结果:

请从键盘输入两个正整数: 你输入的第一个数为:45 你输入的第二个数为:60

由耿祥义和张跃平编著的Java面向对象程序设计课本习题部分参考答案

这两个数的最大公约数为:15 这两个数的最小公倍数为:180

习题3_9

public class San_9 {// 求满足1+2!+3!+...+n!≤9999的最大整数n /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int n = 1; long sum = 0, a = 1; while (true) { sum = sum + a; if (sum > 9999) {// 当sum>9999时,跳出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.toUpperCase();//将小写字母转换为大写字母 String b=s.toLowerCase();//将大写字母转换为小写字母 System.out.println(a); System.out.println(b); System.out.println(t.concat(v));//将字符串v连接到字符串t之后 } }

输出结果:

ABCDEFGH abcdefgh

你好!我是中国人

…… 此处隐藏:4317字,全部文档内容请下载后查看。喜欢就下载吧 ……
Java面向对象程序设计课后习题参考答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/95902.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)