《Java 程序设计》习题答案
java程序设计习题答案
第2章Java概述和入门程序一、选择题。
1、B2、C3、E4、D5、AB6、A7、D8、A9、C 10、C二、判断题。
1、√2、√3、√4、×5、√6、√7、√8、×9、×第3章Java程序设计基础一、选择题。
1、C。
byte类型数据的取值范围为-128—127。
Boolean型数据只能是true或false。
实数的默认类型是double,不能赋值给float型变量。
2、A。
注意str="test ok";语句中的“str”为change方法中定义的局部变量。
如果要使用类成员需要用this.str的方式。
3、C。
创建对象时,未被赋初值的int类型数据被初始化为04、A。
不能将double类型的实数送给float型变量,反之可以。
5、B6、AC,Java中的标识符可以以$开头。
7、B。
命名规范中,类名的每个单词的首字母大写。
8、A9、D。
Java中常量的标志是final,没有const关键字。
10、C,D 11、E 12、B13、A。
关于B的解释,保留字可以做变量名,但不建议这样做。
关于E的解释:Java中变量名还可以以”$”开头。
14、A,短路特性。
&运算符不具有短路特性,无论op1的结果真假都会计算op2。
15、C16、A,但是强烈建议不要使用中文。
17、C,字符串在Java中是一个对象。
18、AB19、C 20、AB 21、D 22、A 23、B 24、B 25、B 26、C 27、B 28、C 29、D30、D 31、B 32、C 33、C 34、A 35、CD二、判断题。
1、×2、√3、×4、√5、√6、√第4章类和对象一、选择题。
1、CD。
“extends Object”为缺省设置,可以写也可以不写。
2、CD。
3、B4、D5、D,当应用程序通过new语句创建了一个对象,这个对象的生命周期就开始了,当不再有任何引用变量引用它,这个对象就结束生命周期,它占用的内存就可以被JVM的垃圾回收器回收。
JAVA程序设计练习题(有答案)
《JAVA程序设计》练习题一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B)。
A.javaB. .classC.html D。
exe2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A ).A。
3 B. 3。
5C. 4 D。
53、不允许作为类及类成员的访问控制符的是(C)。
A. public B。
privateC。
static D。
protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为(A )。
A. static void method( )B. public void method()C。
final void method( ) D。
abstract void method( )二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
3、设 x = 2 ,则表达式 ( x + + )/3 的值是 0。
4、若x = 5,y = 10,则x 〈 y和x 〉= y的逻辑值分别为true 和 false 。
5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
最终(final)方法是不能被当前类的子类重新定义的方法。
6、创建一个名为MyPackage的包的语句是package MyPackage ;,该语句应该放在程序的位置为:应该在程序第一句。
7、设有数组定义:intMyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70};则执行以下几个语句后的输出结果是120 。
Java程序设计-习题参考答案
合法的标识符:
a a2_a $a
5.数据类型强制转换的原则是什么?如何转换?
对于变窄转换,如long到short、double到float,或者不兼容转换:float到short、char到short等,则需要进行强制转换。
int r=0;
if(a<b)
{r=a;
b=a;
a=r;}
int i=1;
while(i!=0)
{i=a%b;
a=b;
b=i;
}
return ab/a;
}
}
10.以下程序执行后的输出为。
public class Test
{
static int m1(int a ,int b)
{
int c;
a+=a;
平台独立性
安全性
多线程
网络化
面向对象
3.Java Application的开发步骤有哪些。
Java Application的开发步骤:
(1)下载JDK软件并安装;
(2)配置相应的环境变量(path和classpath);
(3)编写Java源程序(文本编辑器或集成开发环境IDE);
(4)编译Java源程序,得到字节码文件(javac *.java);
C、方法的定义和方法的调用均不可以嵌套
D、方法的定义和方法的调用均可以嵌套
A
3.以下正确的说法为______。
A、在不同方法中不可以使用相同名字的变量
B、实际参数可以在被调方法中直接使用
C、在方法内定义的任何变量只在本方法范围内有效
Java程序设计各章习题及其答案
Java程序设计各章习题及其答案第一章习题及思考题1、Java程序是由什么组成的?一个程序中必须有public类吗?Java源文件的命名规则是怎样的?答:一个Java源程序是由若干个类组成。
一个Java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public 类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。
源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。
如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。
另外,对Applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。
2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?答:Java Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立运行程序,由Web浏览器内部包含的Java解释器来解释运行。
在源程序代码中两者的主要区别是:任何一个Java Application 应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Applet小应用程序要求程序中有且必须有一个类是系统类Applet的子类,即该类头部分以extends Applet结尾。
应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。
小应用程序的主类在任何时候都需要用public来修饰。
3、开发与运行Java程序需要经过哪些主要步骤和过程?答:主要有三个步骤(1)、用文字编辑器notepad(或在Jcreator,Gel, BuleJ,Eclipse, Jbuilder等)编写源文件;(2)、使用Java编译器(如Javac.exe)将.java源文件编译成字节码文件.class;(3)、运行Java程序:对应用程序应通过Java解释器(如java.exe)来运行,而对小应用程序应通过支持Java标准的浏览器(如Microsoft Explorer)来解释运行。
《JAVA程序设计》习题集及参考答案_IT168文库
《JA V A程序设计》习题集及参考答案一、填空题1.Java是面向对象的解释型的高级编程语言,其程序源代码的扩展名为.java生成的字节码文件名的扩展名为.class,Java解释器把各种平台间的差异隐藏起来,这种由解释器包裹起来的完整的软硬件平台称为Java 虚拟机。
2.Java Application 是独立、完整的程序,在命令行调用独立的解释器软件(java.exe)即可运行,其程序主类必须有一个main()方法,完整的方法头为public static void main(String aegs[]) 。
3.把方法看作是数据的特性,而不把数据和方法分开,JA V A正是体现了这种建立面向对象系统过程中重要步骤的思想.。
4.建立类类型的变量(引用)后,系统只分配引用空间,程序员要调用new来创建对象实例,然后才分配相应的存储空间。
5.如果需要在同一类中书写多个方法,让它们对不同的变量进行同样的操作,就需要重载方法名。
如果子类中定义方法所用的名字、返回类型和参数表和父类中方法使用的完全一样,称子类方法覆盖了父类中的方法。
覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。
6.容器中组件的位置由容器的布局管理器决定,容器不仅可以容纳组件,还可以容纳其它容器这一点非常重要,由此可以设计出复杂的图形用户界面布局。
7.Java抽象窗口工具中提供了多种容器,其中最重要的两种是框架和面板。
8.JDK1.1引入了委托模型处理机制,组件必须注册一个事件处理程序,事件对象只传递给已经注册的监听程序,每种事件都有一个对应的监听程序类以实现相应的监听程序接口,并定义了事件对象的接收和处理方法。
9.异常处理的重要性在于,程序不但要发现异常,还要捕获异常并编写代码来处理10.类是同种对象集合的抽象,而属于类的某一个对象则被称为是类的一个实例,对象是具有状态、行为、标志三种属性的计算机软件结构。
11.用户自己定义的Applet子类是Java Applet的标志。
java程序设计试题及答案
java程序设计试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义一个类?A. classB. interfaceC. enumD. struct答案:A2. Java中的“==”操作符用于比较什么?A. 引用是否相同B. 引用所指向的对象的值是否相同C. 基本数据类型的值是否相同D. 引用所指向的对象的内存地址是否相同答案:C3. 下列哪个是Java的合法标识符?A. 2variableB. variable-nameC. #variableD. variable$name答案:B4. Java中,哪个关键字用于实现多态?A. abstractB. finalC. overrideD. implements答案:C5. 在Java中,以下哪个是正确的数组初始化方式?A. int[] array = new int[5] = {1, 2, 3};B. int array[] = {1, 2, 3, 4, 5};C. int array = new int[5] = {1, 2, 3, 4, 5};D. int[] array = {1, 2, 3, 4, 5};答案:D二、填空题根据题目要求,填空题需要根据题目所给的上下文,填写正确的信息。
1. Java是一种______语言。
答案:面向对象2. 在Java中,所有的类都是从______类直接或间接继承的。
答案:Object3. Java中的集合框架中,List接口的实现类ArrayList是______的。
答案:有序4. Java中的异常处理机制是通过______关键字实现的。
答案:try-catch5. Java中的包是用来组织类和接口的,使用______关键字来声明一个包。
答案:package三、简答题1. 简述Java中接口和抽象类的区别。
答案:接口(interface)是一种完全抽象的类型,它可以包含抽象方法和默认方法,但不能有具体实现。
java程序设计课后练习答案
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程序设计试题及答案一、选择题1. 下列关于Java程序设计语言的说法,正确的是()。
A. Java是编译执行的语言;B. Java程序只能运行在Windows操作系统上;C. Java程序可以在任何操作系统上运行;D. Java程序只能由JDK编译。
答案:C. Java程序可以在任何操作系统上运行。
2. 在Java程序中,用于接收用户输入的类是()。
A. Scanner;B. Integer;C. Double;D. String。
答案:A. Scanner。
3. 以下代码的输出结果是()。
```javaint x = 5;int y = 2;System.out.println(x / y);```A. 2.5;B. 2;C. 2.0;D. 2.50。
答案:B. 2。
二、填空题1. Java程序的入口函数是()。
答案:main。
2. 以下代码中,用于定义整型变量的关键字是()。
```java_____________ x = 10;```答案:int。
三、简答题1. 请简要解释Java程序的编译执行过程。
答案:Java程序的编译执行过程包括以下几个步骤:1) 编写Java源代码文件,以`.java`为扩展名;2) 使用JDK中的`javac`命令编译源代码文件,生成字节码文件,以`.class`为扩展名;3) 使用JDK中的`java`命令解释执行字节码文件。
2. 请简述Java中的面向对象编程特性。
答案:Java中的面向对象编程特性包括封装、继承和多态。
- 封装:将数据和操作数据的方法封装在一起,形成类的概念,隐藏内部实现细节;- 继承:通过继承机制,实现代码的重用和扩展性,子类可以继承父类的属性和方法;- 多态:通过多态性,同一类型的对象可以具有不同的行为,提高代码的灵活性和可扩展性。
Java语言程序设计 课后习题+答案
第一章课后习题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程序设计试题答案一、填空题1.(1)java.applet.Applet、(2) javax.swing.JApplet、(3)浏览器2.(1)HTML文件、(2)HTML文档中PARAM3.(1)Color、(2)13、(3)24、红(R)、绿(G)、蓝(B)、(4) 0~2554.(1)Java Applet中没有main()方法5.(1)void paint(Graphics g)方法、(2)void update(Graphics g)方法、(3) void repaint()方法6.(1)Font、(2)Font、(3)Font(String name,int style,int size)7.(1)public、(2)java8.(1)初始化init()、(2)开始执行start()、(3)停止执行stop()、(4)退出destroy()、(5)绘画paint()9.(1)InputStream、(2)OutputStream、(3)Reader、(4)Writer10.(1)输入流和输出流、(2)字节流和字符流二、判断题1.√2.√3.×4.√5.×6.×7.√8.√9.×10.√三、单选题1.A2.B3.B4.C5.C6.C7.B8.C9.C10.A四、简答题1.答:double s=0.0;For(int i=1;i<=10;i++)S=s+1.0/i;2.答:创建所需要的对象、都设置初始状态、装载图像、设置参数等。
3.答:先使用add()方法向容器添加组件,然后调用setBounds()方法设置组件在容器中的位置和组件本身的大小。
4.答:对话框分为强制型和非强制型,强制型对话框强制对话过程不能中断,非强制型对话框可以中断对话过程。
5.答:声明实现Runnable接口的类,在类内实现run()方法;并在类内声明线程对象,在init()方法或start()方法中创建新线程;并在start()方法中启动新线程。
Java程序设计课后练习答案
《Java程序设计》课后练习答案第一章Java概述一、选择题1.( A )是在Dos命令提示符下编译Java程序的命令,( B )是运行Java程序的命令。
2.( D )不是Java程序中有效的注释符号。
A.* */C./** */D.*/ */3.( B )不是Java语言的特点。
A.面向对象B.自动检查语法错误C.跨平台D.解释执行编译器会将Java程序转换为( C )A.可执行代码B.目标代码C.字节码D.机器代码源文件的扩展名是( D )1、.class B. .jar C. .jav D. .java1)、Java的跨平台的含义是什么为什么Java可以跨平台Java语言的一个非常重要的特点就是平台无关性。
它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。
Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。
JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。
Java编程人员在编写完Java程序后,Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。
字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。
以下图展示了Java程序从编译到最后运行的完整过程。
2)、简述Java语言的特点Java具有以下特点:1)、简单性Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。
2)、可靠性和安全性Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。
3)、面向对象Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。
《JAVA程序设计》期末复习 各章习题+ 参考答案
2.在 Java 语言中,( C )是最基本的元素?
(A)方法
(B)包
(C)对象
(D)接口
【解析】构成 Java 程序的基本元素类(抽象的对象)。
3.编译一个定义了 3 个类和 10 个方法的 Java 源文件后,
会产生( D )个字节码文件?扩展名是( D)?
(A)13 个字节码文件,扩展名为.class
D.-nowarn
12.下列标识符(名字)命名原则中,正确的是( C )。
A.类名的首字母小写 B.接口名的首字母小写
C.常量全部大写 D.变量名和方法名的首字母大写
13.下面哪种注释ຫໍສະໝຸດ 法能够支持 javadoc 命令?( C )
A.// B./*...*/ C./**...*/ D./**...**/
项是( A )。
(A)以 0 开头的整数代表 8 进制整型常量
(B)以 0x 或 0X 开头的整数代表 8 进制整型常量
(C)boolean 类型的数据作为类成员变量的时候,相同默
认的初始值为 true
(D)double 型数据占计算机存储的 32 位
8.下列 Java 语句中,不正确的一项是( C )。
【解析】bytel 类型变量的取值范围是-128~127。
11.下列表达式 1+2+ "aa"+3 的值是( B )。
(A)"12aa3" (B)"3aa3 " (C)"12aa" (D)"aa3"
【解析】整数和整数相加得到两个整数的和,而整数
和字符串相加得到的是字符串。
12.已知 y=2, z=3, n=4,则经过 n=n+ -y*z/n 运算后 n 的
java程序设计(第二版)课后习题答案
//习题2.2import java.util.*;class MyDate{private int year;private int month;private int day;public MyDate(int y,int m,int d){//构造函数,构造方法year=y;month=m;day=d;}//end public MyDate(int y,int m,int d)public int getYear(){//返回年return year;}//end getYear()public int getMonth(){//返回月return month;}//end getMonth()public int getDay(){//返回日return day;}//end getDay()}//end class MyDateclass Employee{private String name;private double salary;private MyDate hireDay;public Employee(String n,double s,MyDate d){name=n;salary=s;hireDay=d;}//end public Employee(String n,double s,MyDate d)public void print(){System.out.println("名字:"+name+"\n工资:"+salary+"\n雇佣年份:"+hireYear()+"\n");}//end print()public void raiseSalary(double byPercent){salary*=1+byPercent/100;}//endpublic int hireYear(){return hireDay.getYear();}}//end class Employeepublic class MyTestClass {public static void main(String[] args) {Employee[]staff=new Employee[3];staff[0]=new Employee("Harry Hacker",35000,new MyDate(1989,10,1));- 2 - staff[1]=new Employee("Carl Carcker",75000,new MyDate(1987,12,15)); staff[2]=new Employee("Tony T ester",38000,new MyDate(1990,3,12)); int integerValue;System.out.println("The information of employee are:");for(integerValue=0;integerValue<=2;integerValue++){staff[integerValue].raiseSalary(5);}//end for()for(integerValue=0;integerValue<=2;integerValue++){staff[integerValue].print();}//end for()}//end main() }//end class MyTestClass//习题2.4import java.util.*;public class DataType {public static void main(String[] args) {boolean flag;char yesChar;byte finByte;int intValue;long longValue;short shortValue;float floatValue;double doubleValue;flag=true;yesChar='y';finByte=30;intValue=-7000;longValue=200l;shortValue=20000;floatValue=9.997E-5f;doubleValue=floatValue*floatValue;System.out.println("the values are:");System.out.println("布尔类型变量flag="+flag);System.out.println("字符型变量yesChar="+yesChar);System.out.println("字节型变量finByte="+finByte);System.out.println("整型变量intValue="+intValue);System.out.println("长整型变量longValue="+longValue);System.out.println("短整型变量shortValue="+shortValue);System.out.println("浮点型变量floatValue="+floatValue);System.out.println("双精度浮点型变量doubleValue="+doubleValue);}//end main()}//习题2.9import java.util.*;class PubTest1{private int ivar1;private float fvar1,fvar2;public PubTest1(){fvar2=0.0f;}public float sum_f_I(){fvar2=fvar1+ivar1;return fvar2;}public void print(){System.out.println("fvar2="+fvar2);}public void setIvar1(int ivalue){ivar1=ivalue;}public void setFvar1(float ivalue){fvar1=ivalue;}}public class PubMainTest {public static void main(String[] args) {PubTest1 pubt1=new PubTest1();pubt1.setIvar1(10);pubt1.setFvar1(100.02f);pubt1.sum_f_I();pubt1.print();}}//习题2.10import java.util.*;class Date {private int year;private int month;private int day;public Date(int day, int month, int year) { //构造函数,构造方法this.year = year;this.month = month;this.day = day;} //end public MyDate(int y,int m,int d)- 4 -public int getYear() { //返回年return year;} //end getYear()public int getMonth() { //返回月return month;} //end getMonth()public int getDay() { //返回日return day;} //end getDay()} //end class Datepublic class Teacher {String name;//教师名字boolean sex;//性别,true 表示男性Date birth;//出生日期String salaryID;//工资号String depart;//教师所在系所String posit;//教师职称String getName() {return name;}void setName(String name) { = name;}boolean getSex() {return sex;}void setSex(boolean sex) {this.sex = sex;}Date getBirth() {return birth;}void setBirth(Date birth) {this.birth = birth;}String getSalaryID() {return salaryID;}void setSalaryID(String salaryID) {this.salaryID = salaryID;}String getDepart() {return depart;}void setDepart(String depart) {this.depart = depart;}String getPosit() {return posit;}void setPosit(String posit) {this.posit = posit;}public Teacher(){System.out.println("父类无参数的构造方法!!!!!!!");}//如果这里不加上这个无参数的构造方法将会出错!!!!public Teacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit){ =name;this.sex=sex;this.birth=birth;this.salaryID=salaryid;this.depart=depart;this.posit=posit;}//end Teacher()public void print(){System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if(this.getSex()==false){System.out.println("女");}else{System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear()+"-"+this.getBirth().getMonth()+"-"+this.getBirth().getDay()); System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());}//end print()public static void main(String[] args) {Date dt1=new Date(11,23,1989);Date dt2=new Date(2,6,1975);- 6 -Date dt3=new Date(11,8,1964);Date dt4=new Date(10,4,1975);Date dt5=new Date(8,9,1969);//创建各系教师实例,用来测试Teacher t1=new Teacher("王莹",false,dt1,"123","经济学","prefessor");ResearchTeacher rt=new ResearchTeacher("杨zi 青",true,dt2,"421","软件工程", "associate prefessor","software"); LabTeacher lat=new LabTeacher("王夏瑾",false,dt3,"163","外语","pinstrucor","speech lab");LibTeacher lit=new LibTeacher("马二孩",true,dt4,"521","大学物理","prefessor","physicalLib");AdminTeacher at=new AdminTeacher("王xi",false,dt5,"663","环境","prefessor","dean");/////////分别调用各自的输出方法,输出相应信息//////////////////////////// System.out.println("-------------------------------");t1.print();//普通教师信息System.out.println("-------------------------------");rt.print();//研究系列教师信息System.out.println("-------------------------------");lat.print();//普通教师信息System.out.println("-------------------------------");lit.print();//实验系列教师信息System.out.println("-------------------------------");at.print();//行政系列教师信息System.out.println("-------------------------------");}//end main()}//end public class Teacherclass ResearchT eacher extends Teacher{private String resField;public ResearchT eacher(String name, boolean sex, Date birth, String salaryid, String depart, String posit, String resField) { = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.resField = resField;} //end public ResearchTeacher(){}String getResField(){return resField;}void setResField(String resField){this.resField=resField;}public void print() {System.out.print("research teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'resField:");System.out.println(this.getResField());} //end print()}//end class ResearchTeacherclass LabTeacher extends T eacher{private String labName;public LabTeacher(String name, boolean sex, Date birth,String salaryid, String depart,String posit, String labName) { = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;bName = labName;} //end public ResearchTeacher(){}String getLabName(){return labName;}void setLabName(String labName){- 8 -bName=labName;}public void print() {System.out.print("lab teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'labName:");System.out.println(bName);} //end print()}//end class LabTeacherclass LibTeacher extends Teacher{private String libName;public LibTeacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit,String libName){ = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.libName=libName;}//end public ResearchT eacher(){}String getLibName(){return libName;}void setLibName(String libName){this.libName=libName;}public void print() {System.out.print("lib teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'libName:");System.out.println(this.libName);} //end print()}//end class LibTeacherclass AdminTeacher extends Teacher{private String managePos;public AdminTeacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit,String managePos){ = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.managePos=managePos;- 10 -}//end public ResearchT eacher(){}String getManagePos(){return managePos;}void setManagePos(String managePos){this.managePos=managePos;}public void print() {System.out.print("adminteacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'managePos:");System.out.println(this.managePos);} //end print() }//end class AdminTeacher习题2.11public class Course {private String courseID;private String courseName;private String courseType;private int classHour;private float credit;public Course(String courseID, String courseName, String courseType, int classHour, float credit) {this.courseID=courseID;this.courseName=courseName; this.courseType=courseType; this.classHour=classHour; this.credit=credit;}//end public Course(){}String getID() {return courseID;}void setID(String id) {this.courseID = id;}String getName() {return courseName;}void setName(String name) { this.courseName = name;}String getType() {return courseType;}void setType(String type) { this.courseType = type;}int getClassHour() {return classHour;}void setClassHour(int hour) { this.classHour = hour;}float getCredit() {return classHour;}void setCredit(float credit) { this.credit= credit;}- 12 -public void print(){System.out.println("the basic info of this course as followed:"); System.out.println("courseID="+this.getID());System.out.println("courseName="+this.getName());System.out.println("courseType="+this.getType());System.out.println("classHour="+this.getClassHour());System.out.println("credit="+this.getCredit());}public static void main(String[] args) {Course cs=new Course("d12","java 程序设计(第二版)","cs",64,3.0f); System.out.println("----------------------------------");cs.print();System.out.println("修改课程学分为4.0f");cs.setCredit(4);cs.print();} }//习题2.12public class MyGraphic {String lineColor;String fillColor;MyGraphic(String lc,String fc){this.lineColor=lc;this.fillColor=fc;}void print(){System.out.println("line color is "+this.lineColor+"\t fill color is "+this.fillColor);}public static void main(String[] args) {float rd=(float)4.5;MyCircle mc=new MyCircle(rd,"black","white");MyRectangle mr=new MyRectangle(4,6,"red","blue");System.out.println("Circle info ");mc.print();System.out.println("circumference is " + mc.calCircum());System.out.println("square is " + mc.calSquare());System.out.println("rectangle info: ");mr.print();System.out.println("circumference is " + mr.calCircum());System.out.println("square is " + mr.calSquare()); }//end main(){}}//end public class MyGraphicclass MyRectangle extends MyGraphic{float rLong;float rWidth;MyRectangle (float rl,float rw,String lc,String fc){super(lc,fc);this.rLong=rl;this.rWidth=rw;}//end MyRectangle (){}float calCircum(){return ((float)((this.rLong+this.rWidth)*2));}float calSquare(){return ((float)(this.rLong*this.rWidth));}}//end class MyRectangleclass MyCircle extends MyGraphic{float radius;MyCircle (float rd,String lc,String fc){super(lc,fc);this.radius=rd;}//end MyRectangle (){}float calCircum(){return (float)((this.radius*3.12*2));}float calSquare(){return ((float)(this.radius*this.radius*3.14));}}//end class MyCircle//习题2.13public class Vehicle {String brand;String color;int price;int number;- 14 -public Vehicle(String b, String c) {this.brand = b;this.color = c;}public Vehicle(String b, String c, int p, int n) {this(b, c);this.price = p;this.number = n;}void print() {System.out.println("\n-------------------------");System.out.println("the vehicle info as followed :");System.out.println("brand=" + this.brand + "\t");System.out.println("color=" + this.color + "\t");System.out.println("price=" + this.price + "\t");System.out.println("number=" + this.number + "\t");} //end void print()public static void main(String[] args) {Vehicle c1=new Vehicle("vehicle1","white");Vehicle c2=new Vehicle("vehicle2","white",300,1);Car cr=new Car("car1","red",300,4,400);Truck tk2=new Truck("truck1","black",300,400);c1.print();c2.print();cr.print();tk2.print();} //end main()} //end public class Vehicleclass Car extends Vehicle{int speed;Car(String b, String c, int p, int n,int s){super(b,c,p,n);this.speed=s;}void print(){super.print();System.out.print("speed="+this.speed);}}//end class Carclass Truck extends Vehicle{int weight;Truck(String b, String c, int s,int w){super(b,c);this.speed=s;this.weight=w;}void print(){super.print();System.out.print("speed="+this.speed);System.out.print("weight="+this.weight); }}//end class Truck//习题3.3public class Test {public static void main(String[] args) {int b1=1;int b2=1;System.out.println("b1=" + b1);System.out.println("b2=" + b2);b1<<=31;b2<<=31;System.out.println("b1=" + b1);System.out.println("b2=" + b2);b1 >>= 31;System.out.println("b1=" + b1);b1 >>= 1;System.out.println("b1=" + b1);b2 >>>= 31;System.out.println("b2=" + b2);b2 >>>= 1;System.out.println("b2=" + b2);}}//习题3.4public class Factorial {private int result,initVal;public static int Factorial(int n){if(n==0){- 16 -}return n*Factorial(n-1);}public void print(){System.out.println(initVal+"!="+result);}public void setInitVal(int n){initVal=n;}public static void main(String[] args) {Factorial ff=new Factorial();for(int i=0;i<=4;i++){ff.setInitVal(2*(i+1));ff.result=Factorial(ff.initVal);ff.print();}//end for()}//end main()}//end public class Factorialpublic class Factorial2 {private int result,initVal;public void print(){System.out.println(initVal+"!="+result);}public void setInitVal(int n){initVal=n;}public static void main(String[] args) {Factorial2 ff=new Factorial2();for(int i=0;i<=4;i++){ff.setInitVal(2*(i+1));ff.result=1;for(int j=2;j<=ff.initVal;j++){ff.result*=j;}ff.print();}//end for()}//end main() }//习题3.5public class MathRandomTest {public static void main(String[] args) {int count=0,MAXof100,MINof100;int num,i;MAXof100=(int)(100*Math.random());MINof100=(int)(100*Math.random());System.out.print(MAXof100+" ");System.out.print(MINof100+" ");if(MAXof100>50)count++;if(MINof100>50)count++;if( MAXof100<MINof100){num=MINof100;MINof100=MAXof100;MAXof100=num;}//end if()for(i=0;i<98;i++){num=(int)(100*Math.random());System.out.print(num+((i+2)%10==9?"\n":" "));if(num>MAXof100){MAXof100=num;}else if(num<MINof100){MINof100=num;}if(num>50){count++;}}//end for()System.out.println("the max of 100 random integers is "+MAXof100);System.out.println("the min of 100 random integers is "+MINof100);System.out.println("the number of random more than50 is "+count); }//end main()}//end public class MathRandomTest//习题3.7public class PrintAst {public void printAstar() {System.out.print("*");}public void printSpace() {System.out.print(" ");}- 18 -public static void main(String[] args) {PrintAst pa = new PrintAst();int initNum = 13;for (int i = 1; i <= initNum / 2 + 1; i++) {for (int n = 1; n <= i; n++) {pa.printSpace();pa.printSpace();}for (int m = 1; m <= initNum - 2 * i + 2; m++) {pa.printSpace();pa.printAstar();}System.out.println();} //end forif (initNum % 2 == 0) {for (int i = 1; i <= initNum / 2; i++) {pa.printSpace();pa.printSpace();}pa.printSpace();pa.printAstar();pa.printSpace();pa.printAstar();System.out.println();}for (int i = initNum / 2 + 2; i <= initNum; i++) {for (int n = 1; n <= initNum - i + 1; n++) {pa.printSpace();pa.printSpace();}for (int m = 1; m <= 2 * i - initNum; m++) {pa.printSpace();pa.printAstar();}System.out.println();} //end forSystem.out.println();} //end main()} //end public class PrintAst//习题3.8public class PrintTriag {public void printAstar() {System.out.print("*");}public static void main(String[] args) {int initLine = 10;int initNum = 10;PrintTriag pt = new PrintTriag();for (int i = 0; i < initLine; i++) {for (int j = 0; j < initNum - i; j++) {pt.printAstar();}System.out.println();}}//end main()}//end public class PrintTriag习题3.9import java.util.*;public class MultipleT able {public void printFormula(int i,int j,int res){ System.out.print(i+"*"+j+"="+res+" "); }public static void main(String[] args) {MultipleT able mt=new MultipleT able();int initNum=9;int res=0;for(int i=1;i<=initNum;i++){for(int j=1;j<=i;j++){res=i*j;mt.printFormula(i,j,res);}System.out.println();}//end for}//end main()- 20 - }//end public class MultipleT able习题3,10import java.io.*;public class HuiWen {boolean isHuiWen(char str[], int n) {int net = 0;int i, j;for (i = 0, j = n - 1; i < n / 2; i++, j--) {if (str[i] == str[j]) {net++;} //end if} //end forif (net == (int) (n / 2)) {return true;} //end ifelse {return false;}} //end boolean isHuiWen(char str[], int n)public static void main(String[] args) {HuiWen hw1 = new HuiWen();String pm = "";try {InputStreamReader reader = new InputStreamReader(System.in); BufferedReader input = new BufferedReader(reader);System.out.print("give your test string:\n");pm = input.readLine();System.out.println(pm);} //end trycatch (IOException e) {System.out.print(e);} //end catchboolean bw = hw1.isHuiWen(pm.toCharArray(), pm.length()); if (bw == true) {System.out.println("是回文");}else {System.out.println("不是回文");}} //end main()} //end public class HuiWenimport java.io.*;public class HuiWen2 {String reverse(String w1){String w2;char[]str1=w1.toCharArray();int len=w1.length();char[]str2=new char[len];for(int i=0;i<len;i++){str2[i]=str1[len-1-i];}w2=new String(str2);return w2;}public static void main(String[] args) {HuiWen2 hw1 = new HuiWen2();String pm = "";try {InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your test string:\n");pm = input.readLine();} //end trycatch (IOException e) {System.out.print(e);} //end catchString w2=hw1.reverse(pm);if(pareTo(pm)==0){System.out.println("是回文");}else {System.out.println("不是回文");}}}//习题3.11import java.io.*;public class PrimeNumber {- 22 -private int pm;public void setPm(int pm){this.pm=pm;}public boolean isPrime(){boolean bl=true;int i=2;for(i=2;i<=Math.sqrt(pm);){if(pm%i==0){bl=false;break;}else{i++;}}//end forreturn bl;}//end public boolean isPrime()public static void main(String[] args) {PrimeNumber prim=new PrimeNumber();int testNum=0;try{InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your test number:\n");testNum=Integer.parseInt(input.readLine());}//end trycatch(IOException e){System.out.println(e);}//end catchprim.setPm(testNum);boolean bl=prim.isPrime();if(bl==true){System.out.println(testNum+"是质数");}else {System.out.println(testNum+"不是质数");}}//end main }//end public class PrimeNumber习题3.12import java.io.*;public class Tempconverter {double celsius(double y){return ((y-32)/9*5);}public static void main(String[] args) {Tempconverter tc=new Tempconverter ();double tmp=0;try{InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your fahrenheit number:\n");tmp=Double.parseDouble(input.readLine());}//end trycatch(NumberFormatException e){System.out.println(e);}//end catchcatch(IOException e){System.out.println(e);}//end catchSystem.out.println("the celsius of temperature is "+tc.celsius(tmp));}//end main()}//end public class Tempconverter习题3.13import java.io.*;public class Trigsquare {double x, y, z;Trigsquare(double x, double y, double z) {this.x = x;this.y = y;this.z = z;}boolean isTriangle() {boolean bl = false;if (this.x > 0 && this.y > 0 && this.z > 0) {if ( (this.x + this.y) > this.z && (this.x + this.z) > this.y && (this.z + this.y) > this.x) {bl = true;} //ebd ifelse {bl = false;} //end else} //end if(this.x>0&&this.y>0&&this.z>0)return bl;} //end boolean isTriangle()double getArea() {double s = (this.x + this.y + this.z) / 2.0;return (Math.sqrt(s * (s - this.x) * (s - this.y) * (s - this.z)));} //end double getArea()public static void main(String[] args) {double s[] = new double[3];try {InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("输入三角形的三边的长度:\n");for (int i = 0; i <= 2; i++) { //输入三个数s[i] = Double.parseDouble(input.readLine());} //end for} //end trycatch (NumberFormatException e) {System.out.println("format error!!!");} //end catch- 24 - catch (IOException e) {System.out.print(e);} //end catchTrigsquare ts = new Trigsquare(s[0], s[1], s[2]);if (ts.isTriangle() == true) {System.out.println("三角形的面积是" + ts.getArea());} //end ifelse {System.out.println("输入的三边不能组成三角形!!");} //end else} //end main()} //end public class Trigsquare//习题3.14import java.util.*;import java.io.*;import java.util.Date;import java.text.*;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.GregorianCalendar.*;。
Java_程序设计习题集(答案)
61 <body>该程序的输出结果为:</p>
<applet code="apple.class" width="200" height="70"></applet>
</body>
</html>
第二章
一、判断题
1.难度:容易
答案:错误
知识点:“//“表示单行注释,多行注释以“/*”开始并以“*/”结束。
三、简述题
1.Java语言的编译过程与一般编程语言的编译过程有何不同?
Java应用程序由编译器编译成字节码,这个字节码不是最终可执行的程序,不能在具体
的平台上运行,还需要由运行系统上的字节码解释器将其解释成机器语言,从而达到边解释边
执行的目的。
2.Java开发Application和Applet小程序,主要区别是什么?
6.难度:容易
答案:错误
知识点:Java是对大小写字母敏感的,所以这些变量不相同。
7.难度:容易
答案:错误
知识点:模运算操作符在Java中也可用浮点数。
8.难度:容易
答案:错误
知识点:运算符*,/和%是在同一优先级上,而运算符+和-在另一个优先级。
9.难度:容易
答案:错误
知识点:标识符的命名规则
10.难度:容易
1.难度:容易
答案:A
知识点:所有的程序均可以用顺序结构、选择结构、循环结构三种类型控制结构编写。
2.难度:容易
答案:D
知识点:当条件为真和条件为假时,if/else控制结构可以执行不同的动作。
3.难度:容易
java程序设计试题及答案
java程序设计试题及答案一、选择题(每题2分,共20分)1. 在Java中,下列哪个关键字用于定义类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个选项不是Java的基本数据类型?A. intB. doubleC. StringD. float答案:C3. Java中,哪个关键字用于捕获异常?A. tryB. catchC. throwD. finally答案:B4. 在Java中,下列哪个选项不是合法的变量名?A. _nameB. $nameC. nameD. 2name答案:D5. 下列哪个选项不是Java的访问修饰符?A. publicB. protectedC. privateD. static答案:D6. Java中,下列哪个选项不是集合框架的一部分?A. ListB. SetC. MapD. Stream答案:D7. 在Java中,下列哪个关键字用于定义接口?A. classB. structC. interfaceD. enum答案:C8. 下列哪个选项不是Java的异常处理关键字?A. tryB. catchC. throwD. implements答案:D9. 在Java中,下列哪个选项不是线程的生命周期状态?A. NewB. RunnableC. BlockedD. Dead答案:C10. 下列哪个选项不是Java的泛型类型?A. ListB. SetC. MapD. Object答案:D二、填空题(每题2分,共20分)1. Java中的“Hello World”程序需要继承________类。
答案:Object2. Java中,一个方法的返回类型是________。
答案:void3. 在Java中,________关键字用于定义包。
答案:package4. Java中,________关键字用于定义接口。
答案:interface5. Java中,________关键字用于实现多态。
(完整版)《JAVA程序设计》(含答案)
《JA V A程序设计》练习题一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A. javaB. .classC. htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A)。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( C )。
A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A)。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、关于选择结构下列哪个说法正确?( B )A.if语句和else语句必须成对出现B.if语句可以没有else语句对应C.switch结构中每个case语句中必须用break语句D.switch结构中必须有default语句6、while循环和do…while循环的区别是:( D)A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.while循环是先循环后判断,所以循环体至少被执行一次D.do…while循环是先循环后判断,所以循环体至少被执行一次7、关于for循环和while循环的说法哪个正确?( B)A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空8、下列修饰符中与访问控制无关的是( D)A.private B.publicC.protected D.final9、void的含义:( A)A.方法没有返回值B.方法体为空C.没有意义 D.定义方法时必须使用10、return语句:( C )A.只能让方法返回数值B.方法都必须含有C.方法中可以有多句return D.不能用来返回对象11、关于对象成员占用内存的说法哪个正确?( B)A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对12、下列说法哪个正确?( C)A.不需要定义类,就能创建对象B.对象中必须有属性和方法C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量13、下列说法哪个正确?( A )A、一个程序可以包含多个源文件B、一个源文件中只能有一个类C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用14、关于方法main()的说法哪个正确?( C )A.方法main()只能放在公共类中B main()的头定义可以根据情况任意更改C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中15、构造函数何时被调用?( A )A、创建对象时B、类定义时C、使用对象的方法时D、使用对象的属性时16、抽象方法:( C )A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法17、关于继承的说法正确的是:( B )A、子类将继承父类所有的属性和方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章Java语言面与向对象的程序设计习题1.Java语言有哪些主要特点?答:(要点):1.简单易学2.面向对象3.平台无关性4.安全稳定5.支持多线程6.很好地支持网络编程7.Java丰富的类库使得Java可以广泛地应用2.简述面向过程问题求解和面向对象问题求解的异同。
试列举出面向对象和面向过程的编程语言各两种。
答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。
面向过程的编程语言:C,Pascal,Foratn。
面向对象的编程语言:C++,Java,C#。
3.简述对象、类和实体及它们之间的相互关系。
尝试从日常接触到的人或物中抽象出对象的概念。
答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。
类是同种对象的集合与抽象。
类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。
如果类是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机”。
4.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。
答:对象都具有状态和行为。
对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。
每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。
行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。
学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。
5.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生”与对象“大学生”是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。
对象“班级”与对象“学生”是包含关系。
对象“学生”与对象“大学生”是继承关系。
6.有人说“父母”和“子女”之间是继承的关系。
这种说法是否正确?为什么?答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。
因为这里的继承关系是“is a”的关系,“男人”与“人”之间可以说是继承关系。
7.面向对象的软件开发包括哪些过程?OOA模型包括哪三个层次?OOD模型在OOA模型的基础上引入了哪些工作?答:面向对象的软件开发过程可以大体划分为面向对象的分析(Object Oriented analysis,OOA)、面向对象的设计(Object oriented design,OOD)、面向对象的实现(Object oriented programming,OOP)三个阶段。
面向对象的分析的主要作用是明确用户的需求,并用标准化的面向对象的模型规范地表述这一需求,最后将形成面向对象的分析模型。
面向对象的设计将在OOA模型的基础上引入界面管理、任务管理和数据管理三部分的内容。
8.面向对象的程序设计方法有哪些优点?答:由于对象的概念能够以更接近实际问题的原貌和实质的方式来表述和处理这些问题,所以面向对象的软件开发方法比以往面向过程的方法有更好的灵活性、可重用性和可扩展性,使得上述“分析—设计—实现”的开发过程也更加高效、快捷。
第2章简单的Java程序习题1.简述Java编译和运行的基本方法。
答:编译可以使用JDK中的工具javac.exe。
例如:javac HelloWorldApp.java运行Java程序则可以使用JDK提供的解释器是java.exe。
例如:java HelloWorldApp2.下载并安装JDK软件包,尝试查看其中的JDK文档。
答:Java编程的基本工具包是JDK(Java Development Kit)。
JDK是Sun公司免费提供的开发、运行Java程序的基本软件,它可以在Windows及Unix两种平台下使用。
常用的版本是JDK1.2.2,JDK1.3.0,JDK1.4等。
可以从网站下载较新的版本,如JDK1.5(也称为JDK5.0)。
JDK文档也可以从网上下载。
3.编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序,在屏幕上输出“Welcome to Java World!”。
答:见程序。
4.编写一个Java Applet,使之能够在浏览器中显示“Welcome to Java Applet World!”的字符串信息。
答:见程序。
5.编写一个HTML文件,将上题中生成的Applet字节码嵌入其中,并用WWW浏览器观看这个HTML文件规定的Web页面。
答:与上一题同。
6.编写一个程序,能够从键盘上接收两个数字,然后计算这两个数的积。
答:见程序。
7.编写一个程序,从两个文本框中接收两个数字,然后计算这两个数的积。
答:见程序。
8.常用的集成开发工具有哪些?各有什么特点?答:常用的集成开发工具包括:Borland公司出品的Jbuilder, Sun公司出品的Java Workshop, IBM公司的Visual Age for Java,Oracle公司的Java Develop,等等。
另外,Symantec 公司的Visual Café也是著名的Java开发工具。
近来,Eclipse也是使用很广的集成开发工具。
它们各自的特点略。
第3章数据运算、流控制、数组习题1.简述Java程序的构成。
如何判断主类?下面的程序有几处错误?如何改正,这个程序的源代码应该保存成什么名字的文件?public class MyJavaClass{public static void main(){System.out.printIn("Am I wrong?");}System.out.printIn("程序结束。
");}答:一个复杂的程序可由一个至多个Java源程序文件构成,每个文件中可以有多个类定义。
一般的Java源程序文件由以下三部分组成:package 语句;(0句—1句)import 语句;(0句—多句)类定义(1个—多个类定义)这里所说的主类是指程序中含有main()方法的类。
上面的示例程序中的错误主要在于拼写,如:点及分号应该用西文的;printIn中的大写字母I应改为小写字母l;另外,main()方法应该带参数,改为:public static void main(String [] argvs)2.Java有哪些基本数据类型?写出int型所能表达的最大、最小数据。
答:Java中定义了4类/8种基本数据类型:(1)逻辑型——boolean(2)整数型——byte, short, int, long(3)浮点数型——float, double(4)字符型——char其中整型int占4个字节,其范围为-2147483648-2147483647。
3.Java的字符采用何种编码方案?有何特点?写出五个常见的转义符。
答:char(字符型)是用Unicode编码表达的字符,在内存中占两个字节。
由于Java的字符类型采用了一种新的国际标准编码方案——Unicode编码,这样便于东方字符和西方字符处理,这样与其他语言相比,Java处理多语种的能力大大加强。
常见的转义符,如:\' 单引号字符\'' 双引号字符\\ 反斜杠字符\r 回车\n 换行4.Java对标识符命名有什么规定,下面这些标识符哪些是对的?哪些是错的?错在哪里?(1)MyGame (2)_isHers (3)2JavaProgram (4)Java-Visual-Machine (5)_$abc答:标识符可以由编程者自由指定,但是需要遵循—定的语法规定。
标识符要满足如下的规定:(1)标识符可以由字母、数字和下划线(_)、美元符号($)组合而成。
(2)标识符必须以字母、下划线或美元符号开头,不能以数字开头。
在实际应用标识符时,应该使标识符能一定程度上反映它所表示的变量、常量、对象或类的意义,这样程序的可读性会更好。
题中的标识符中的(3)不对,因为用数字开头了,(4)也不对,因为其中用了减号。
5.什么是常量?什么是变量?字符变量与字符串常量有何不同?答:常量是在程序运行的整个过程中保持其值不改变的量。
变量是在程序的运行过程中数值可变的数据,通常用来记录运算中间结果或保存数据。
字符变量中存放一个字符,字符串常量中存放一串字符。
6.什么是强制类型转换?在什么情况下需要用到强制类型转换?答:强制类型的基本方式是指用以下方式显式地进行数据类型的转换:(类型)表达式一般地说,在赋值运算符两侧的类型不一致的情况下,则需要进行自动或强制类型转换。
变量从占用内存较少的短数据类型转化成占用内存较多的长数据类型时,可以不做显式的类型转换,Java会自动转换;而将变量从较长的数据类型转换成较短的数据类型时,则必须做强制类型转换。
7.Java有哪些算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符?试列举单目和三目运算符。
答:在Java中,按照运算符功能来分,基本的运算符有下面几类:1.算术运算符(+,-,*,/,%,++,--)2.关系运算符(>,<,>=,<=,==,!=)3.布尔逻辑运算符(!,&&,||,&,|)4.位运算符(>>,<<,>>>,&,|,^,~)5.赋值运算符(=,及其扩展赋值运算符如+=)6.条件运算符( ?:)7.其他 (包括分量运算符·,下标运算符 [],实例运算符instanceof,内存分配运算符new,强制类型转换运算符 (类型),方法调用运算符 () 等)其中,单目运算符如-,!,而三目运算符只有一个,即条件运算符(?: )。
8.编写一个字符界面的Java Application程序,接受用户输入的一个浮点数,把它的整数部分和小数部分分别输出。
答:见程序。
9.编写一个字符界面的Java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。
答:见程序。
10.编写一个字符界面的Java Application程序,接受用户输入的字符,以“#”标志输入的结束;比较并输出按字典序最小的字符。
答:见程序。
11.结构化程序设计有哪三种基本流程?分别对应Java中的哪些语句?答:任何程序都可以且只能由三种基本流程结构构成,即顺序结构、分支结构和循环结构。
顺序结构直接书写,分支结构用if及switch语句书写,循环结构用for、while及do 语句来书写。