《Java语言程序设计(一)》课后习题答案全集 下载本文

内容发布更新时间 : 2024/11/9 5:02:30星期一 下面是文章的全部内容请认真阅读。

1.1 指出JAVA语言的主要特点和JAVA程序的执行过程。

答:(1)强类型; (2)编译和解释;

(3)自动无用内存回收功能; (4)面向对象; (5)与平台无关; (6)安全性; (7)分布式计算; (8)多线程;

程序执行过程如图所示:

编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。

1.2 说出开发与运行JAVA程序的重要步骤。

答:(1)编写源文件:使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java;

(2)编译Java源文件:使用Java编译器(javac.exe)编译源文件得到字节码文件; (3)运行Java程序:Java程序分为两类——Java应用程序必须通过Java解释器(java.exe)来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。

1.3 如何区分应用程序和小应用程序?

答:应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口; 小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。

1.4 说出JAVA源文件的命名规则。

答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。

1.6 JAVA语言使用什么字符集?共有多少个不同的字符?

答:Java语言使用Unicode字符集,共有65535个字符。

1.7 JAVA语言标识符的命名规则是什么?

(1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成 (2)限定标识符的第一个字符不能是数字字符 (3)不能和关键字重名

(4)长度不能超过255个字符

1.8 JAVA有那些基本数据类型,它们的常量又是如何书写的?

数据类型 逻辑类型 布尔型 关键字 boolean 字节数 1 默认值 常量举例 范围 false,true false false,true 1

字符型 字节性 char byte short int long float 2 1 2 8 8 4 8 0 0 0 0 0L 0F 0D a,我,ぽ 12,13,45 12,13,45 12,13,45 12L,13L,45L 12.345F,6.7891F 12.345D,6.7891D 0 ~ 65535 -128 ~ 127 -32768 ~ 32767 -2E31 ~ 2E31-1 -2E63 ~ 2E63-1 -10E38 ~ -10E-38 10E-38 ~ 10E38 -10E308 ~ -10E-308 10E-308 ~ 10E308 整数类型 短整型 整型 长整型 单精度浮点 浮点类型 双精度浮点 double 1.9 指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。

整型常量: 4)0xABCL,8)003,10)077,12)056L

浮点数类型常量:3)-1E-31,5).32E31 13)0.,14).0 两者都不是: 1),2),6),7),9),11)

2

第二章 运算和语句

2.1 Java的字符能参加算术运算吗?

可以。(1)字符与整型数据运算,结果为整型数据,只能赋给整型变量,如果附给字符型变量会损失精度,需要强制类型装换;

(2)字符与字符运算,结果为字符型数据,可以直接赋给字符型或整型变量。

2.2 占字节多的变量能直接赋值给占字节少的变量么?

答:不能直接赋值,需要强制类型转换。

2.3 试用Java语言表达式描述以下数学计算式或逻辑条件:

3V?(43)??r1)

解:V = (4.0/3)*Math.PI*Math.pow(r,3); 2)R?1(1R1?1R2)

解:R = 1.0 / (1.0/R1+1.0/R2);

3)y?x?x?6

解:y = Math.pow(x,5) + Math.pow(x,3) + 6; 4)F?M1?M2R

解: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 < a <10

解:a > 0 && a < 10

7) 条件 x=1 与 y=2 有且只有一个成立.

解:( x == 1 && y != 2) || (x != 1 && y == 2)

2532.4 设在求以下表达式之前,整型变量a的值是4,试指出在求了以下表达式之后,变量a、b和c的值。

1) 2)

b?a?a??;

解:a=5 ; b=16;

c???a?a;;

解:a=5 ; c=10

2.6 若一个数恰好等于它的因子之和,则这个数称为“完全数”。编写程序求1000之内的所有完全数。

分析:若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。例如6=1+2+3;28=1+2+4+7+14

程序运行结果:

3

/**

* @author 段智敏 */

public class Work2_6 {

public static void main(String[] args) { }

String resultString = \以内,完全数有:\; //最后结果字符串 for (int i = 1; i <= 1000; i++){ }

System.out.println(resultString);

if (isPerfectNumber(i)){ resultString += i + \,\; }

private static boolean isPerfectNumber(int number) {

int sum = 0;// 因子的和

String str = new String(\); for (int i = 1; i < number; i++){ }

if (sum == number){// 如果因子之和,等于本身,则是完数

str = str.substring(0, str.length() - 1); // 去掉字符串最后一System.out.println(number + \的因子有:\ + str); return true;

if (number % i == 0){ }

sum += i; str += i + \;

个多余的“+”;

}

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.out.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(\平方不超过\+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