java核心技术习题答案

java核心技术习题答案
java核心技术习题答案

j a v a核心技术习题答案 The pony was revised in January 2021

Java核心技术

习题答案

马志强张然李雷孝编

清华大学出版社

目录

第一章Java语言概述 (3)

第二章 Java语法基础 (4)

第三章面向对象编程 (15)

第四章数组 (38)

第五章高级类特性 (45)

第六章 GUI编程 (51)

第七章集合框架 (62)

第九章集合框架 (77)

第十章 IO流 (81)

第十一章 JDBC访问数据库 (84)

第十二章线程 (85)

第十三章网络编程 (90)

第一章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。

public class IfElseTest {

public static void main(String[] args) {

Scanner sc = new Scanner;

int grade = ();

if(grade<0 || grade>100){

(0);

}

int temp =(int)(grade/10); switch(temp){

case 10:{

break;

}

case 9:{

break;

}

case 8:{

break;

}

case 7:{

break;

}

case 6:{

break;

}

default:{

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<{

break;

}

}

}

}

3、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值。斐波那契数列:1、1、2、3、5、8、13、21、3

4、……。

public 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++;

}

最后一项绝对值小于1e-5的和值:"+sum);

}

}

5、产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?

public class PrimeTest {

public static void main(String[] args) {

PrimeTest t = new PrimeTest();

for(int i=0;i<100;i++){

int num = (int)()*1000);

if(num)){

是素数!");

}else{

不是素数!");

}

}

}

public boolean isPrime(int num){

for(int i=2;i<=num/2;i++){

if(num%i==0){

第一个被"+i+"整除!");

return false;

}

}

return true;

}

}

6、在屏幕上打印出n行的金字塔图案,如,若n=3,则图案如下:

*

***

*****

public class PrintStar{

public static void main(String[] args){

Scanner sn=new Scanner;

int rows=();

for(int i=1;i<=rows;i++){

for(int j=1;j<=rows-i;j++){

}

for(int k=1;k<=2*i-1;k++){

}

}

}

}

7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和,打印出所有的可能。如输入10,结果为:10=5+5;10=3+7。

public class Gede {

public static void main(String[] args) {

int n = (args[0]);

if(n<=6 || n%2!=0){

错误的参数!");

return;

}

Gede g = new Gede();

ava。

public class CalenderModelA

{

ava。

public class TestCalenderModelA

{

public static void main(String[] args) {

Scanner scan = new Scanner;

请输入年份:");

int year = ();

请输入月份:");

int month = ();

月历如下");

CalenderModelA testBegin = new CalenderModelA();

(year, month);

}

}

第三章面向对象编程

一、选择题

1-5 CABDD

2-10 DCCBC

11-12 CC

二、填空题

1.Package mypackage?;

2.final

3.Object

4.package import class

5.c

三、程序设计题

2、按下列要求编写程序:

①创建Teacher类

要求:Teacher类要描述姓名、年龄、薪水,类型分别为String、int、double ②创建TeacherTest类

要求:在TeacherTest类中创建Teacher的对象;为该对象的属性(姓名、性别、年龄)赋值;将该对象的属性(姓名、性别、年龄)输出;

③为Teacher类添加一个方法,用于在教师原有薪水的基础上增加5000;

④修改TeacherTest类,增加对教师增加薪水方法的调用,并将增加后的薪水值输出。

public class Teacher {

public String name;

public int age;

public double salary;

public String getName() {

return name;

}

public void setName(String name) {

= name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

= age;

}

public double getSalary() {

return salary;

}

public void setSalary(double salary) {

= salary;

}

public Teacher(){

}

public Teacher(String name,int age,double salary){

=name;

=age;

=salary;

}

public void addSalary(){

=+5000;

}

}

public class TeacherTest {

public static void main(String[] args) {

Teacher teacher=new Teacher();

=35;

="zhangsan";

=;

();

}

}

3、定义一个Person类。

①包含以下属性:String name; int age; boolean gender; Person partner。

②定义marry(Person p)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。下列情况不能结婚:结婚年龄,男<24,女<22;3,某一方已婚。

③定义测试类,来测试以上程序。

public class Person{

private String name;

private int age;

private boolean gender;

Person partner;

public Person(String name,int age,boolean gender,Person partner){ =name;

=age;

=gender;

=partner;

}

public void marry(Person p){

if=={

同性不能结婚!");

return;

}

if(==true && <24)||==false && <22)

|| ==true && <24) || ==false && <22)){

没有达到结婚年龄!");

return;

}

if!=null || !=null){

有一方已经结婚!");

相关主题
相关文档
最新文档