java习题及答案第3章 习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章习题解答
1. Java语言的注释有哪几种?分别给出一个例子。
答:Java语言的注释有3种,分别是单行注释、多行注释和文档注释。
单行注释的例子如下:
public static Point origin = new Point(0, 0); //类初始化时,创建一个原点实例多行注释的例子如下:
/* 类初始化时,创建一个原点实例 */
public static Point origin = new Point(0, 0);
文档注释的例子如下:
/**
*
* @类名:Point
* @类简介:坐标点类,可以初始化其坐标x和y。
* @编程人:林福平
* @编程日期:2012-8-9
* @修改日期:2012-8-10
*
*/
2. Java语言中分隔符有哪几种?空白符有哪些?
答:Java语言中的分隔符有空白符、注释和普通分隔符三种。Java语言中的空白符(White Space)包括空格(SP,space)、制表符(‘\t’,Tab键)、走纸换页(‘\f’)、回车(‘\r’)和换行(‘\n’)。
3. 简述标识符的用途。下列字符串中,哪些是标识符?
PIx2 -length a+b _bytes $long MIN_VALUE
答:Java语言中的标识符用于对类、方法、变量、类型、数组和文件等进行命名。
上述字符串中,以下这些是Java语言的标识符:
PIx2 _bytes $long MIN_VALUE
4. 下列字符串中,哪些是关键字?
true for int null $float _double
答:上述字符串中,以下这些是Java语言的关键字:
true for int null
5. Java语言的基本数据类型分为那几大类?
答:Java语言的基本数据类型分为数值类型(包括整数类型和浮点类型)、字符类型(char)和布尔类型(Boolean)。整数类型有byte、 short、 int和long。浮点类型有float和double。
6. 编写一个简单的Java程序,验证带有下划线(_)的常量是否符合语法,同时给出一个十六进制形式浮点数常量验证它是否符合语法。
答:根据《Java语言规范》(《The Java™ Language Specification Java SE 7 Edition》)一书的语法规定,常量中可以使用下划线(_),并且允许使用十六进制浮点数的。但是,实际使用中由于难以理解,通常情况下应该避免使用。
例子程序如下:
public class TestJava {
public static final double X123 = 0x1_2_3.0p+0;
public static void main(String[] args) {
System.out.println(X123);
}
}
该程序运行结果如下:
291.0
7. 阅读以下Java语言程序的片段,写出程序输出结果:
int i = 1928;
do{
System.out.println(i);
i = i / 10;
} while(i > 0);
程序运行结果如下:
1
3
9
27
81
8.阅读以下Java语言程序的片段,写出程序输出结果:
int i = 1928;
do{
System.out.println(i);
i = i / 10;
} while(i > 0);
程序运行结果如下:
1928
192
19
1
9.用Java语言编写程序,计算输入的两个整数的最大公约数(GCD)。采用经典的Euclid 算法,方法是:用变量m和n存储两个数的值,如果n为0,程序结束,m的值为最大公约数;否则计算m除以n的余数,把n保存到m中,并且把余数保存到n。重复这个过程,每次都先判定n是否为0。
答:编写程序如下(程序中,变量m和n的值是给定的,要使得程序具有通用性,可以将其改为运行时输入):
public class TestJava {
public static void main(String[] args) {
int m = 420;
int n = 98;
while(n != 0) {
int temp = m % n;
m = n;
n = temp;
}
System.out.println(m);
}
}
程序运行结果是14。
10.用Java语言编写程序,然后对用户输入的一个分数(分别输入分子和分母)进行约分,并且输出约分后的分数(分别输出分子和分母)。例如输入分子为6并且分母为12,那么输出结果为1/2。
答:对于输入的分子和分母,求出其最大公约数,用最大公约数来除这两个数就得到约
分的结果。程序设计如下:
public class TestJava {
public static void main(String[] args) {
Scanner numerator = new Scanner(System.in);
Scanner denominator = new Scanner(System.in);
int m = numerator.nextInt();
int n = denominator.nextInt();
while(n != 0) {
int temp = m % n;
m = n;
n = temp;
}
System.out.println(numerator.nextInt()/m +"/"+denominator.nextInt()/m);
}
}
在输入的分子和分母分别98和420的情况下,程序运行结果是7/30。
11.用Java语言编写程序,计算e=1+1/1! +2/2! +……+n/n!。要求e值精确到小数点第5位。
答:采用逼近法计算e,首先计算至第i项和第i+1项之和,比较它们的差值,满足精确到小数点第5位(差值<0.00001),即得到所求的e。
程序设计如下:
public class TestJava {
public static void main(String[] args) {
double ei;
double ei1 = 1;
i = 1;
double factorial = 1;
do {
ei = ei1;
factorial *= i;
ei1 += 1 / factorial;
i++;
} while(Math.abs(ei1-ei) > 0.00001);
System.out.println(ei1);
}
}
程序运行结果是2.7182815255731922。