Java核心技术习题答案
- 格式:doc
- 大小:202.00 KB
- 文档页数:53
Java核心技术习题答案
马志强张然李雷孝编
清华大学出版社
目录
第一章Java语言概述 (3)
第二章 Java语法基础 (4)
第三章面向对象编程 (11)
第四章数组 (25)
第五章高级类特性 (26)
第六章 GUI编程 (26)
第七章集合框架 (29)
第九章集合框架 (42)
第十章 IO流 (46)
第十一章 JDBC访问数据库 (46)
第十二章线程 (48)
第十三章网络编程 (53)
第一章Java语言概述
一、选择题
1-5 ABBBB
6-8 AAB
二、填空题
1. MyClass
2. String数组(String[])一
3. javac java A
三、程序设计题
1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。
1)首先安装JDK;
2)配置环境变量path,classpath可配可不配;
3)
public class HelloWorld{
public static void main(String[] args){
"开始学习Java程序设计!");
}
}
2、修改下面四个Java源文件中的错误,使其能够编译和运行。
:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰;
:源文件中public修饰的类的名字为Testing2,和源文件名字不一致;
:Test3类的main方法的形参类型为String[];
:Test4类的main方法必须使用static关键字修饰。
第二章 Java语法基础
一、选择题
1-5 BCADB
6-9 DCCC
二、填空题
1. abc ,a1, _abc, _1a, ab123
#a,const,$abc,1abc,if,$#1sa,$_a,_$q1
2.题目出现问题:代码修改为 ch = (char) (ch+1);结果为’B’;如果直接结果为
98。
(真) false(假)
5. 2 2 false 2
*20/100 (double)m*20/100
三、编程题
1、由命令行输入一个成绩,使用switch结构求出成绩的等级。A:90-100;
B:80-89;C:70-79;D:60-69;E:0-59。
import class IfElseTest {
public static void main(String[] args) {
Scanner sc = new Scanner;
int grade = ();
if(grade<0 || grade>100){
"aaaa");
(0);
}
int temp =(int)(grade/10);
switch(temp){
case 10:{
"A");
break;
}
case 9:{
"A");
break;
}
case 8:{
"B");
break;
}
case 7:{
"C");
break;
}
case 6:{
"D");
break;
}
default:{
"E");
break;
}
}
}
}
2、计算圆周率:PI=4-4/3+4/5-4/7... ...;打印出第一个大于小于的值。
public class PITest{
public static void main(String[] args){
double result=;
for(int i=1;;i++){
double m=(2*i-1);
if((i%2)==0){
result-=m;
}else{
result+=m;
}
if(result> && result<{
"result: "+result);
break;
}
}
}
}
3、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值。斐波那契数列:1、1、2、3、5、8、13、21、3
4、……。
import class FibonacciTest{
public static void main(String[] args){
Scanner sn=new Scanner;
int num=();
int i=1;
int n1=1,n2=1;
while(i<=num){
if(i==1||i==2){
n2=1;
}else{
int temp=n2;
n2=n1+n2;
n1=temp;
}
i++;
}
"第"+num+"个值为:"+n2);
}
}
4、计算多项式1-1/3+1/5-1/7+1/9......的值。
1)要求出前50项和值。
2)要求出最后一项绝对值小于1e-5的和值。
public class SumTest{
public static void main(String[] args){
double sum=;
for(int i=1;i<=50;i++){
if(i%2==0){
sum=(2*i-1);
}else{
sum=sum+(2*i-1);
}
}
"前50项和值:"+sum);
double item=;
int j=1;
sum=;
while(item<{
item=(2*j-1);
if(j%2==0){
sum-=item;
}else{
sum+=item;
}
j++;