清华大学java程序设计基础第四版课后习题答案
- 格式:pdf
- 大小:784.32 KB
- 文档页数:23
Java编程思想(第四版)习题答案第二章练习1:public class PrimitiveTest {static int i;static char c;public static void main(String[] args) {System.out.println("int = " + i);System.out.println("char = " + c);}}练习2:public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!");}}练习3:public class ATNTest {public static void main(String[] args) {class ATypeName {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}A TypeName a = new ATypeName();a.i = 3;a.d = 2.71828;a.b = false;a.show();}}练习4:public class DataOnlyTest {public static void main(String[] args) {class DataOnly {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}DataOnly data = new DataOnly();data.i = 3;data.d = 2.71828;data.b = false;data.show();}}练习5:public class DOTest2 {public static void main(String[] args) {class DataOnly {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}DataOnly data = new DataOnly();data.i = 234;data.d = 2.1234545;data.b = true;data.show();}}练习6:public class StorageTest {public static void main(String[] args) {class StoreStuff {int storage(String s) {return s.length() * 2;}}StoreStuff x = new StoreStuff();System.out.println(x.storage("hi"));}}练习7:class StaticTest {static int i = 47;}class Incrementable {static void increment() { StaticTest.i++; }}public class ITest {public static void main(String[] args) {System.out.println("StaticTest.i= " + StaticTest.i);StaticTest st1 = new StaticTest();StaticTest st2 = new StaticTest();System.out.println("st1.i= " + st1.i);System.out.println("st2.i= " + st2.i);Incrementable sf = new Incrementable();sf.increment();System.out.println("After sf.increment() called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);}}练习8:class StaticTest {static int i = 47;}class Incrementable {static void increment() { StaticTest.i++; }}public class OneStaticTest {public static void main(String[] args) {System.out.println("StaticTest.i= " + StaticTest.i);StaticTest st1 = new StaticTest();StaticTest st2 = new StaticTest();System.out.println("st1.i= " + st1.i);System.out.println("st2.i= " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment() called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);st1.i = 3;System.out.println("After st1.i = 3, ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);System.out.println("Create another StaticTest, st3.");StaticTest st3 = new StaticTest();System.out.println("st3.i = " + st3.i);}}练习9:public class AutoboxTest {public static void main(String[] args) {boolean b = false;char c = 'x';byte t = 8;short s = 16;int i = 32;long l = 64;float f = 0.32f;double d = 0.64;Boolean B = b;System.out.println("boolean b = " + b);System.out.println("Boolean B = " + B);Character C = c;System.out.println("char c = " + c);System.out.println("Character C = " + C);Byte T = t;System.out.println("byte t = " + t);System.out.println("Byte T = " + T);Short S = s;System.out.println("short s = " + s);System.out.println("Short S = " + S);Integer I = i;System.out.println("int i = " + i);System.out.println("Integer I = " + I);Long L = l;System.out.println("long l = " + l);System.out.println("Long L = " + L);Float F = f;System.out.println("float f = " + f);System.out.println("Float F = " + F);Double D = d;System.out.println("double d = " + d);System.out.println("Double D = " + D);}}练习10:public class CommandArgTest {public static void main(String[] args) {int[]args1={1,2,3};System.out.println("args[0] = " + args1[0]);System.out.println("args[1] = " + args1[1]);System.out.println("args[2] = " + args1[2]);}}练习11:public class Rainbow {public static void main(String[] args) {AllTheColorsOfTheRainbow atc = new AllTheColorsOfTheRainbow();System.out.println("atc.anIntegerRepresentingColors = " + atc.anIntegerRepresentingColors);atc.changeColor(7);atc.changeTheHueOfTheColor(77);System.out.println("After color change, atc.anIntegerRepresentingColors = " + atc.anIntegerRepresentingColors);System.out.println("atc.hue = " + atc.hue);}}class AllTheColorsOfTheRainbow {int anIntegerRepresentingColors = 0;int hue = 0;void changeTheHueOfTheColor(int newHue) {hue = newHue;}int changeColor(int newColor) {return anIntegerRepresentingColors = newColor;}}练习12:public class DocTest {/** Entry poing to class & application.* @param args array of string arguments* @throws exceptions No exceptions thrown*/public static void main(String[] args) {System.out.println("Hello, it's: ");System.out.println(new Date());}}练习13-1:public class Documentation1 {/** A field comment */public int i;/** A method comment */public void f() {}}2:public class Documentation2 {Date d = new Date();void showDate() {System.out.println("Date = " + d);}}3:public class Documentation3 {public static void main(String[] args) {Date d = new Date();System.out.println("d = " + d);}}练习14:public class Documentation4 {public int i = 2;private int j = 3;public static void main(String[] args) {Date d = new Date();System.out.println("d = " + d);}}练习15:public class HelloDocTest {public static void main(String[] args) {System.out.println("Hello World!");}}练习16:class Tree {int height;Tree() {System.out.println("Planting a seedling");height = 0;}Tree(int initialHeight) {height = initialHeight;System.out.println("Creating new tree that is " + height + " feet tall");}void info() {System.out.println("Tree is " + height + " feet tall");}void info(String s) {System.out.println(s + ": Tree is " + height + " feet tall"); }}public class Overloading {public static void main(String[] args) {for(int i = 0; i < 5; i++) {Tree t = new Tree(i);();("overloading method");}// Overloaded constructor:new Tree();}}第三章练习1:public class PrintTest {public static void main(String[] args) {print("Hello, from short form.");P.rintln("Hello from greggordon form.");System.out.println("Hello from long form.");}}练习2:class Tube {float level;}public class Assign {public static void main(String[] args) {Tube t1 = new Tube();Tube t2 = new Tube();t1.level = 0.9f;t2.level = 0.47f;P.rintln("1: t1.level: " + t1.level + ", t2.level: " + t2.level);t1 = t2;P.rintln("2: t1.level: " + t1.level + ", t2.level: " + t2.level);t1.level = 0.27f;P.rintln("3: t1.level: " + t1.level + ", t2.level: " + t2.level);}}练习3:class Box {float a;}public class PassObject2 {static void f(Box y) {y.a = 2.71828f;}public static void main(String[] args) {Box x = new Box();x.a = 3.1416f;print("1: x.a = " + x.a);f(x);print("2: x.a = " + x.a);}}练习4:class VelocityCalculator {static float velocity (float d, float t) {if(t == 0) return 0f;else return d/t;}}public class VelocityTester {public static void main(String[] args) {float d = 565.3f;float t = 3.6f;System.out.println("Distance: " + d);System.out.println("Time: " + t);float v = VelocityCalculator.velocity(d, t);System.out.println("Velocity: " + v);}}练习5:class Dog {String name;String says;void setName(String n) {name = n;}void setSays(String s) {says = s;}void showName() {P.rintln(name);}void speak() {P.rintln(says);}}public class DogTest {public static void main(String[] args) {Dog spot = new Dog();spot.setName("Spot");spot.setSays("Ruff!");Dog scruffy = new Dog();scruffy.setName("Scruffy");scruffy.setSays("Wurf!");spot.showName();spot.speak();scruffy.showName();scruffy.speak();}}练习6:class Dog {String name;String says;void setName(String n) {name = n;}void setSays(String s) {says = s;}void showName() {P.rintln(name);}void speak() {P.rintln(says);}}public class DogCompare {public static void main(String[] args) {Dog spot = new Dog();spot.setName("Spot");spot.setSays("Ruff!");Dog scruffy = new Dog();scruffy.setName("Scruffy");scruffy.setSays("Wurf!");spot.showName();spot.speak();scruffy.showName();scruffy.speak();Dog butch = new Dog();butch.setName("Butch");butch.setSays("Hello!");butch.showName();butch.speak();P.rintln("Comparison: ");P.rintln("spot == butch: " + (spot == butch));P.rintln("spot.equals(butch): " + spot.equals(butch));P.rintln("butch.equals(spot): " + butch.equals(spot));P.rintln("Now assign: spot = butch");spot = butch;P.rintln("Compare again: ");P.rintln("spot == butch: " + (spot == butch));P.rintln("spot.equals(butch): " + spot.equals(butch));P.rintln("butch.equals(spot): " + butch.equals(spot));P.rintln("Spot: ");spot.showName();spot.speak();P.rintln("Butch: ");butch.showName();butch.speak();}}练习7:。
java第四版课后习题答案Java第四版课后习题答案Java是一种广泛应用于软件开发领域的编程语言,具有跨平台、面向对象等特点。
对于学习Java的人来说,课后习题是巩固知识、提高编程能力的重要方式。
本文将为读者提供Java第四版课后习题的答案,帮助读者更好地理解和掌握Java编程。
一、基础知识1. 什么是Java虚拟机(JVM)?它的作用是什么?答:Java虚拟机(JVM)是Java程序运行的环境,它负责将Java源代码编译成字节码,并在不同的操作系统上运行。
JVM的作用是实现Java的跨平台特性,使得Java程序可以在不同的操作系统上运行。
2. Java中的八种基本数据类型是什么?答:Java中的八种基本数据类型分别是byte、short、int、long、float、double、char和boolean。
3. 什么是面向对象编程(OOP)?Java是一种面向对象的编程语言吗?答:面向对象编程(OOP)是一种编程范式,通过将数据和方法封装在对象中,以对象为中心进行程序设计和开发。
Java是一种面向对象的编程语言,它支持封装、继承和多态等面向对象的特性。
二、控制流程1. Java中的条件语句有哪些?答:Java中的条件语句包括if语句、switch语句和三元运算符。
2. Java中的循环语句有哪些?答:Java中的循环语句包括for循环、while循环和do-while循环。
3. 如何在循环中使用break和continue语句?答:break语句用于立即终止循环,跳出循环体。
continue语句用于跳过当前循环的剩余代码,继续下一次循环。
三、数组和集合1. 如何声明和初始化一个一维数组?答:可以使用以下方式声明和初始化一个一维数组:```int[] array = new int[5]; //声明一个长度为5的整型数组int[] array = {1, 2, 3, 4, 5}; //声明并初始化一个整型数组```2. 如何声明和初始化一个二维数组?答:可以使用以下方式声明和初始化一个二维数组:```int[][] array = new int[3][2]; //声明一个3行2列的整型二维数组int[][] array = {{1, 2}, {3, 4}, {5, 6}}; //声明并初始化一个整型二维数组```3. Java中常用的集合类有哪些?答:Java中常用的集合类有ArrayList、LinkedList、HashSet、TreeSet、HashMap和TreeMap等。
1.2.1 什么是硬件和软件?硬件是指计算机中可见的物理部分(比如:处理器,显示器,鼠标,键盘等),而软件提供不可见的指令(常用的软件程序:应用软件,系统软件,病毒等)。
1.2.2 列举计算机的 5个主要硬件组件。
中央处理器(CPU)、内存、存储设备、输入设备和输出设备、通信设备。
1.2.3 缩写“CPU”代表什么含义?Central Processing Unit1.2.4 衡量 CPU速度的单位是什么?Hz(赫兹)、MHz(兆赫兹)、GHz(吉赫兹)1.2.5 什么是比特? 什么是字节?比特就是二进制数字系统中的数,计算机中字节是最小的存储单元1.2.6 内存是用来做什么的?RAM代表什么?为什么内存成为RAM?计算机的内存由一个有序的字节序列组成,用于存储程序及程序需要的数据。
RAM代表随机访问存储器。
每个字节都有唯一的地址,使用这个地址确定字节的位置,以便于存储和获取数据,因为可以按任意顺序存取字节,所以内存也被称为: 随机访问存储器(RAM)。
1.2.7 用于衡量内存大小的单位是什么?字节1.2.8 用于衡量磁盘大小的单位是什么?B、KB、MB、GB1.2.9 内存和永久存储设备的主要不同是什么?内存和永久存储设备的不同是计算机的内存是一种易失的数据保存形式:断电时存储在内存中的信息就会丢失。
程序和数据被永久的存放在存储设备上,当计算机确实要用他们时再移入内存,因为从内存读取比从存储设备读取要快得多。
1.3.1 CPU 能理解什么语言?机器语言1.3.2 什么是汇编语言?什么是汇编器?汇编语言(assembly language)就是使用短的描述性单词(助记符)来表示每一条机器语言指令。
由于计算机不理解汇编语言,所以需要使用一种称为汇编器(assembler)的程序将汇编语言程序转换为机器代码。
1.3.3 什么是高级编程语言?什么是源程序?高级编程语言类似于英语,易于学习和使用,高级语言中的指令称为语句。
Java语言程序设计课后习题答案全集Java语言程序设计是一门广泛应用于软件开发领域的编程语言,随着其应用范围的不断扩大,对于掌握Java编程技巧的需求也逐渐增加。
为了帮助读者更好地掌握Java编程,本文将提供Java语言程序设计课后习题的全集答案,供读者参考。
一、基础知识题1. 代码中的注释是什么作用?如何使用注释.答:注释在代码中是用来解释或者说明代码的功能或用途的语句,编译器在编译代码时会自动忽略注释。
在Java中,有三种注释的方式:- 单行注释:使用"// " 可以在代码的一行中加入注释。
- 多行注释:使用"/* */" 可以在多行中添加注释。
- 文档注释:使用"/** */" 可以添加方法或类的文档注释。
2. 什么是Java的数据类型?请列举常见的数据类型。
答:Java的数据类型用来指定变量的类型,常见的数据类型有:- 基本数据类型:包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)、布尔型(boolean)。
- 引用数据类型:包括类(class)、接口(interface)、数组(array)等。
二、代码编写题1. 编写Java程序,输入两个整数,求和并输出结果。
答:```javaimport java.util.Scanner;public class SumCalculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个整数:");int num1 = scanner.nextInt();System.out.print("请输入第二个整数:");int num2 = scanner.nextInt();int sum = num1 + num2;System.out.println("两个整数的和为:" + sum);}}```三、综合应用题1. 编写Java程序,实现学生信息管理系统,要求包括以下功能:- 添加学生信息(姓名、年龄、性别、学号等);- 修改学生信息;- 删除学生信息;- 查询学生信息。
《Java程序设计》课后习题参考答案Java程序设计课后习题参考答案1. 介绍在 Java 程序设计课程中,课后习题是帮助学生巩固知识、加深理解和提高编程能力的重要环节。
本文将为大家提供《Java程序设计》课后习题的参考答案,以帮助学生更好地学习和掌握 Java 编程。
2. 基本概念Java 程序设计课后习题涵盖了从基础到高级的各种知识点,包括但不限于变量、数据类型、条件语句、循环语句、数组、类、对象、继承、多态等内容。
通过解答这些习题,学生可以加深对这些概念的理解,并且通过实际操作来巩固他们的编程能力。
3. 习题解答策略当解答课后习题时,以下几个策略可以帮助你更好地理解和解决问题:3.1 仔细阅读题目要求。
确保自己充分理解题目所要求的功能和目标。
3.2 分析问题。
在着手解答问题之前,先理清思路,分析问题的要点和关键部分。
3.3 设计算法。
根据问题的要求,设计一个合适的算法来解决问题。
3.4 编写代码。
用 Java 编程语言将你设计的算法转化为代码实现。
3.5 测试和调试。
对编写的代码进行测试和调试,确保程序能够正常运行,并且得到正确的结果。
4. 习题参考答案示例下面我们将列举几个常见的习题参考答案示例,以帮助大家更好地理解和学习 Java 程序设计:4.1 变量与数据类型:习题要求定义一个整型变量并赋值为10,然后输出该变量的值。
```public class VariableExample {public static void main(String[] args) {int num = 10;System.out.println("变量的值为:" + num);}}```4.2 条件语句:习题要求判断一个数是否是偶数,如果是,则输出“偶数”,否则输出“奇数”。
```public class EvenOddExample {public static void main(String[] args) {int num = 5;if (num % 2 == 0) {System.out.println("偶数");} else {System.out.println("奇数");}}}```4.3 循环语句:习题要求输出1到10之间的所有偶数。
第一章课后习题1.编译Java程序的命令是什么?2.执行Java程序的命令是什么?3.Java应用程序和小程序的区别是什么?4.编写一个application ,实现在屏幕上打印自己名字的功能。
第一章课后习题答案1.编译Java程序的命令是什么?答案:javac 源文件名2.执行Java程序的命令是什么?java 主类名3.Java应用程序和小程序的区别是什么?Java application⏹由Java解释器独立运行字节码⏹由专门的命令行启动程序执行⏹程序中有定义了main()方法的主类Java applet⏹不能独立运行,字节码必须嵌入HTML文档⏹当浏览器调用含applet的Web页面时执行⏹程序中含有java. applet. Applet 类的子类4.编写一个application ,实现在屏幕上打印自己名字的功能。
class Test{public static void main(String[] args){System.out.println(“张三”);}}第二章课后习题(1)一、选择题1.下列变量定义错误的是。
A) int a; B) double b=4.5; C) boolean b=true; D)float f=9.8;2.下列数据类型的精度由高到低的顺序是:a)float,double,int,longb)double,float,int,bytec)byte,long,double,floatd)double,int,float,long3.执行完下列代码后,int a=3;char b='5';char c=(char)(a+b);c的值是?A)’8’ b)53 c)8 d)564.Unicode是一种_____________A) 数据类型 B)java包 C)字符编码 D)java类5.6+5%3+2的值是___________A)2 B)1 C) 9 D)106.下面的逻辑表达式中合法的是__________A)(7+8)&&(9-5) B)(9*5)||(9*7) C)9>6&&8<10 D)(9%4)&&(8*3) 7.java语言中,占用32位存储空间的是__________。
Java程序设计基础习题答案Java程序设计基础课后习题参考答案第2章1. 关于Java Application 的入口方法main()的检验:main()方法的参数名是否可以改变?main()方法的参数个数是否可以改变?该方法名是否可以改变?参考答案:(1)main()方法的参数名可以改变。
(2)main()方法的参数个数不可以改变。
(3)该方法名不可以改变。
2. 当一个程序没有main()方法时,能编译吗?如果能编译,能运行吗?参考答案:当一个程序没有main()方法是,是可以编译通过的,但是不能给运行,因为找不到一个主函数入口。
3. 下列语句能否编译通过?byte i = 127;byte j = 128;long l1 = 999999;long l2 = 9999999999;参考答案:byte i 和long l1可以编译通过。
而byte j 和long l2 超出自身数据类型范围,所以编译失败。
4. 下列语句能否编译通过?float f1 = 3.5;float f2 = 3.5f;参考答案:java中浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,必须在数据后面加上“F”或“f”;因此,float f1 无法编译通过。
5. 验证int 和char,int和double等类型是否可以相互转换。
参考答案:(1)char类型可以转换为int 类型的,但是int类型无法转换为char类型的;(2)int 可以转换为double类型的,但是double类型无法转换为int 类型的。
6. 计算下列表达式,注意观察运算符优先级规则。
若有表达式是非法表达式,则指出不合法之处且进行解释。
(1) 4+5 == 6*2 (2) (4=5)/6(3) 9%2*7/3>17 (4) (4+5)<=6/3(5) 4+5%3!=7-2 (6) 4+5/6>=10%2参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4是不合法的。
java程序设计基础课后习题答案Java程序设计基础课后习题答案Java程序设计是一门广泛应用于软件开发领域的编程语言。
在学习这门课程时,除了理论知识的学习外,课后习题也是非常重要的一部分。
通过课后习题的练习,可以帮助学生巩固所学的知识,并且提高编程能力。
下面将为大家提供一些Java程序设计基础课后习题的答案,希望对大家的学习有所帮助。
习题一:编写一个Java程序,输出从1到100之间所有的奇数。
```javapublic class OddNumbers {public static void main(String[] args) {for (int i = 1; i <= 100; i++) {if (i % 2 != 0) {System.out.println(i);}}}}```习题二:编写一个Java程序,计算1到100之间所有偶数的和。
```javapublic class EvenSum {public static void main(String[] args) {for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}System.out.println("1到100之间所有偶数的和为:" + sum); }}```习题三:编写一个Java程序,判断一个数是否为素数。
```javaimport java.util.Scanner;public class PrimeNumber {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个整数:");int num = scanner.nextInt();boolean isPrime = true;for (int i = 2; i <= Math.sqrt(num); i++) {if (num % i == 0) {isPrime = false;}}if (isPrime) {System.out.println(num + "是素数");} else {System.out.println(num + "不是素数");}}}```习题四:编写一个Java程序,统计一个字符串中每个字符出现的次数。