《《Java语言程序设计(一)》课后习题答案全集(2020年12月整理).pptx》由会员分享,可在线阅读,更多相关《《Java语言程序设计(一)》课后习题答案全集(2020年12月整理).pptx(127页珍藏版)》请在金锄头文库上搜索。
1、1.1 指出 JAVA 语言的主要特点和 JAVA 程序的执行过程。 答:(1)强类型; (2)编译和解释; (3)自动无用内存回收功能; (4)面向对象; 与平台无关; 安 全 性 ; (7)分布式计算; (8)多线程; 程序执行过程如图所示: 编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。 说出开发与运行 JAVA 程序的重要步骤。 答:(1)编写源文件:使用一个文本编译器,如 Edit 或记事本,不可以使用 Word.将编好 的源文件保存起来,源文件的扩展名必须是.java; 编译 Java 源文件:使用 Java 编译器(javac.exe)编译源文件得到字节码文件; 运
2、行 Java 程序:Java 程序分为两类Java 应用程序必须通过 Java 解释器 (java.exe)来解释执行其字节码文件;Java 小应用程序必须通过支持 Java 标准的浏览器来 解释执行。 如何区分应用程序和小应用程序? 答:应用程序在与源文件名字相同的类中,有 main()方法,该方法代表应用程序的入口; 小应用程序必须有一个 Applet 类的子类,该类称作主类,必须用 public 修饰。 说出 JAVA 源文件的命名规则。 答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源 文件的 public 类同名。 JAVA 语言使用什么字符集?共有多少个
3、不同的字符? 答:Java 语言使用 Unicode 字符集,共有 65535 个字符。 JAVA 语言标识符的命名规则是什么? 由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成 (2)限定标识符的第一个字符不能是数字字符 不能和关键字重名 长度不能超过 255 个字符 1.8 JAVA 有那些基本数据类型,它们的常量又是如何书写的?,1,2,1.9 指出下列内容哪些是 JAVA 语言的整型常量,哪些是浮点数类型常量,哪些 两者都不是。 整型常量: 4)0 xABCL,8)003,10)077,12)056L 浮点数类型常量:3)-1E-31,5).32E31 13)0.,
4、14).0 两者都不是: 1),2),6),7),9),11),第二章 运算和语句,2.1 Java 的字符能参加算术运算吗? 可以。(1)字符与整型数据运算,结果为整型数据,只能赋给整型变量,如果附给字符 型变量会损失精度,需要强制类型装换; (2)字符与字符运算,结果为字符型数据,可以直接赋给字符型或整型变量。 占字节多的变量能直接赋值给占字节少的变量么? 答:不能直接赋值,需要强制类型转换。 试用 Java 语言表达式描述以下数学计算式或逻辑条件: 1)V (4 3) r 3 解 :V = (4.0/3)*Math.PI*Math.pow(r,3); 2) R 1 (1 R1 1 R2
5、) 解 :R = 1.0 / (1.0/R1+1.0/R2); 3) y x5 x3 6 解:y = Math.pow(x,5) + Math.pow(x,3) + 6;,4) F M1 M 2,3,R2,解:F = 1.0 * M1 * M2 / (R * R); 5) sin x/ ax | cos x / 2| 解 :Math.sin(x) / a * x + Math.abs( Math.cos( * x / 2) ); 6)0 0 ; 解:a=5 ; c=10 2.6 若一个数恰好等于它的因子之和,则这个数称为“完全数”。编写程序求 1000 之内的所有完全数。 分析:若一个自然数,
6、它所有的真因子(即除了自身以外的约数)的和恰好等于它本身, 这种数叫做完全数。例如 6=1+23;28=124714 程序运行结果:,/* * author 段智敏 */ public class Work2_6 public static void main(String args) ,String resultString = 1000以内,完全数有:;/最后结果字符串 for (int i = 1; i = 1000; i+) if (isPerfectNumber(i) resultString += i + ,; System.out.println(resultString); p
7、rivate static boolean isPerfectNumber(int number) int sum = 0;/ 因子的和 String str = new String(); for (int i = 1; i number; i+) if (number % i = 0) sum += i; str += i + +; if (sum = number)/ 如果因子之和,等于本身,则是完数 str = str.substring(0, str.length() - 1); / 去掉字符串最后一 个多余的“+”; System.out.println(number + 的因子有
8、: + str); return true; return false; 2.7 编写输入正实数 x,求平方不超过 x 的最大整数 n,并输出。 程序运行结果:,4,第一种命令行方式输入 import java.util.Scanner; /* 编写输入正实数x,求平方不超过x 的最大整数n,并输出。 命令行方式,输入正实数,输出结果 author 段智敏 */ public class Work2_7_1 public static void main(String args) Scanner consoleScanner = new Scanner(System.in); System.o
9、ut.print(请输入正实数 X:); String str = consoleScanner.next(); int number = -1; try number = Integer.parseInt(str); catch( NumberFormatException e ) System.out.println(输入非法字符,程序结束!); return; if (number 1) System.out.println(输入的数不是正实数,程序结束!); else int n = (int) (Math.sqrt(number); System.out.println(平方不超过+
10、number+的最大整数,n=+n+;); 第二种窗口方式输入 运行结果如下图:,/* 编写输入正实数x,求平方不超过x 的最大整数n,并输出。 弹出窗口方式 author 段智敏 */ import javax.swing.JOptionPane; public class Work2_7_2 private int number; public Work2_7_2() number = this.getIntegerNumber(请输入一个正实数, 1); if (number 1),5,6,return; / 非法,程序结束 int n = (int) (Math.sqrt(number
11、); showResult(平方不超过 + number + 的最大整数nn = + n + ;); /* 通过图形界面,得到符合规则的正整数的方法 param message - 在弹出的对话框中,显示提示信息 message param min - 要求此数必须大于等于 min */ public int getIntegerNumber(String message, int min) String str = JOptionPane.showInputDialog(null, 请输入一个正整数 , 提示信息, JOptionPane.INFORMATION_MESSAGE); int
12、number = -1; try number = Integer.parseInt(str); / 得到输入的正整数 catch( Exception e ) JOptionPane.showMessageDialog(null, 输入非数字字符n 程序结束 , 错误警告, JOptionPane.ERROR_MESSAGE); return -1; / 输入的不是数字字符,程序结束 if (number min) JOptionPane.showMessageDialog(null, 输入的数不符合规则,不是正 整数n 程序结束, 错误警告, JOptionPane.ERROR_MESSA
13、GE); return -1; / 输入的数不是大于 2 的正整数时候,程序结束 else return number; /* 弹出对话框,显示结果 param str - 需要显示的字符串 */ public void showResult(String str) JOptionPane.showMessageDialog(null, str, 输出结果, JOptionPane.INFORMATION_MESSAGE); public static void main(String args) new Work2_7_2(); ,2.8 输入正整数 n,输出由 n 行 n 列星号字符组成的
14、三角形图案。 程序运行结果:,源代码文件:Work2_8.java import java.util.*; /* 输入正整数n,输出由n 行n 列星号字符组成的三角形图案。 author 段智敏 */ public class Work2_8 public static void main(String args) Scanner consoleScanner = new Scanner(System.in); System.out.print(请输入正整数 n:); String str = consoleScanner.next(); int n = -1; try n = Integer
15、.parseInt(str); catch( NumberFormatException e ) System.out.println(输入非法字符,程序结束!); return; if (n 1) System.out.println(输入的数不是正实数,程序结束!); else for(int i=0;in;i+) for(int j=0;jn-i-1;j+) System.out.print( ); for(int k=0;ki+1;k+) System.out.print(*); System.out.println(); ,7,设有整型变量 x 和 y 的值分别为 5 和 110。试
16、指出执行了以下循环语句后, 变量 x 和 y 的值分别多少? 1)while(x=1); 解:x=18; y=0; 求小于 999 的所有水仙花数。 程序运行结果:,8,源代码文件:Work2_10.java /* 求小于 999 的所有水仙花数 author 段智敏 */ public class Work2_10 public static void main(String args) String resultString = new String(1000之前的所有水仙花数有:);/ 用 来存结果的字符串 for (int i = 100; i 0)/ 通过循环得到m每个位上的数,存到数组中 aamount = m % 10; m = m / 10; amount+; int sum = 0; for (int j = 0; j amount; j+)/ 累加每位上的数的位数次方, sum += Math.pow(aj, amou