JAVA语言程序设计 第三章作业
作业2-3:Java 语句控制
第3章控制语句学习目标•能够使用if和if…else选择语句来选择各种动作•能够使用for循环结构来重复地执行程序中的语句•能够使用do…while循环和while循环语句重复地执行程序中的语句•能够使用break和continue程序控制语句3.1 实验前检查在学完《Java语言程序设计》的第3章后,请回答以下问题.这些问题旨在检验和巩固你对关键概念的理解。
既可以在实验课程之前,也可以在实验课程期间完成。
3。
1.1 选择题:1.下列语句序列执行后,m 的值是(C )。
int a=10, b=3, m=5;if( a==b ) m+=a; else m=++a*m;A)15 B)50 C) 55 D) 52。
下列语句序列执行后,k 的值是( B ).int i=4,j=5,k=9,m=5;if(i〉j||m〈k)k++; else k—-;A)5 B)10 C)8 D)93.下列语句序列执行后,k 的值是(C)。
int i=10, j=18,k=30;switch( j — i ){case 8 :k++;case 9 :k+=2;case 10:k+=3;default : k/=j;}A) 31 B) 32 C)2 D)334。
若a和b均是整型变量并已正确赋值,正确的switch语句是(D )。
A) switch(a+b);{ 。
... }B)switch(a+b*3。
0 ) {。
.。
. }C) switch a {。
}D)switch (a%b ) {。
..。
.。
}5.下列语句序列执行后,j 的值是( A )。
int j=1;for( int i=5;i〉0;i—=2 ) j*=i;A)15 B)1 C)60 D) 06.以下for循环的执行次数是(B )。
for(int x=0;(x==0)&(x〈4);x++);A)无限次B)一次C)执行4次D)执行3次7。
下列语句序列执行后,j 的值是(D )。
2020电子科技大学Java程序设计作业3
(A) this
(B) super
(C) new
(D) 以上都不是
[参考答案:B] 分值:5
2. 使用下列哪些关键字可以判定实参的具体类型?
(A) as
(B) extends
(C) instanceof
(D) is
[参考答案:C] 分值:5
3. 下列有关类、对象和实例的叙述,正确的是哪一项?
(A) 类是对象的抽象,对象是类的具体化,实例是类的另一个名称
(B) 对象是类的抽象,类是对象的具体化,实例是对象的另一个名称
(C) 类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别
(D) 类是对象的抽象,对象是类的具体化,实例是对象的另一个名称
(D) AppletContext
[参考答案:A] 分值:5
11. 当多个对象被添加作为同一个事件的监听器,那么当事件触发的时候哪个监听器对象被首先调用?
(A) 第一个被添加的监听器对象
(B) 最后一个被添加的监听器对象
(C) 为同一个事件添加多个监听器是无法做到的
(D) 无法确定哪个监听器对象被首先调用
(A) 第1行
(B) 第4行
(C) 第5行
(D) 第3行
[参考答案:C] 分值:5
20. JDK没有包含以下哪个内容?
(A) Java编程语言
(B) Java平台虚拟机
(C) 工具及工具的API
(D) Ja包含JDK,JDK中包含JVM
(C) JDK中包含JRE,JRE中包含JVM
(D) JDK中包含JRE,JVM中包含JRE
[参考答案:C] 分值:5
10. 哪一种类的对象中包含有Internet地址。
java第三章作业答案
习题三一、问答题1.面向对象语言有哪三个特性?答:封装性,继承性,多态性。
2.类体内容中声明成员变量是为了体现对象的属性还是行为?答:属性。
3.类体内容中定义的非构造方法是为了体现对象的属性还是行为?答:行为。
4.什么时候使用构造方法?构造方法有类型吗?答:用类创建对象时使用构造方法。
没有类型。
5.类中的实例变量在什么时候会被分配内存空间?答:用类创建对象时会被分配内存空间。
6.什么叫方法的重载?构造方法可以重载吗?答:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即是参数的个数不同,或者是参数的类型不同。
可以。
7.类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?答:可以。
不可以。
8.类中的实例方法可以用类名直接调用吗?答:不可以。
9.简述类变量和实例变量的区别。
答:一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。
所有对象的类变量都分配给相同的一处内存,对象共享类变量。
二、选择题1.下列哪个叙述是正确的?BA.Java应用程序由若干个类所构成,这些类必须在一个源文件中。
B.Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。
C.Java源文件必须含有主类。
D.Java源文件如果含有主类,主类必须是public类。
2.下列哪个叙述是正确的?DA.成员变量的名字不可以和局部变量的相同。
B.方法的参数的名字可以和方法中声明的局部变量的名字相同。
C.成员变量没有默认值。
D.局部变量没有默认值。
3.对于下列Hello类,哪个叙述是正确的?DA.Hello类有2个构造方法。
B.Hello类的int Hello()方法是错误的方法。
C.Hello类没有构造方法。
D.Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。
java语言程序设计(一)第三章补充
专接本辅导java第三章《面向对象编程基础》补充0.类变量与实例变量区别(类方法与实例方法的区别见习题解答第12题改错)java类的成员变量有两种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量。
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。
总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
例如,对于下面的程序,无论创建多少个实例对象,只在类被第一次装置时初始化一次staticVar变量和sum变量,并且每创建一个实例对象,就会执行一次构造函数;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。
public class类变量与实例变量{public static int staticVar = 0;//类变量初始化,只会在类装载时进行一次!!public int instanceVar = 0;//实例变量初始化public static int sum=1;public类变量与实例变量()//构造方法{staticVar++;instanceVar++;sum=sum+5;System.out.println("staticVar = "+staticVar+",instanceVar="+instanceVar);System.out.println("sum = "+sum);}public static void main(String []args){类变量与实例变量对象1=new类变量与实例变量();类变量与实例变量对象2=new类变量与实例变量();类变量与实例变量对象3=new类变量与实例变量();}}运行结果:staticVar = 1,instanceVar=1sum = 6staticVar = 2,instanceVar=1sum = 11staticVar = 3,instanceVar=1sum = 16再如下面的程序,涉及static块:class Value{static int c=0;static int d;Value(){c=15;d=65;}Value(int i){c=i;d=c-1;}static void inc(){c++;}}public class Count {Value v0=new Value();//调用无参构造函数建立Value类非静态对象v0,类Count和类Value是has-a关系Value v=new Value(10);//调用有参构造函数建立Value类非静态对象vstatic Value v1,v2;//声明Value类的static对象v1,v2//static Value v1=new Value(),v2=new Value();//声明v1、v2并引用新建立的Value类对象static{//★声明static块,其初始化工作会先于任何其它非static块及非static变量而不管其在源程序书写中出现的先后次序!System.out.println("static块中println语句执行结果:"+"\n"+"v0和v是非静态内部类对象,v1和v2是静态内部类对象(请与教材P58例3.18对比),只有声明没有具体指向某对象时:v1.c="+v1.c+" v2.c="+v2.c+" v1.d="+v1.d+" v2.d="+v2.d);v1=new Value(30);//对象v1引用新建立的Value类对象System.out.println("static块中执行完“v1=new Value(30)之后:”v1.c="+v1.c+" v2.c="+v2.c+" v1.d="+v1.d+" v2.d="+v2.d);v2=new Value(15);//对象v2引用新建立的Value类对象System.out.println("static块中执行完“v2=new Value(15)之后:”v1.c="+v1.c+" v2.c="+v2.c+" v1.d="+v1.d+" v2.d="+v2.d);System.out.println("特别说明:因此时还没有建立Count类对象(Count 类和Value类是has-a关系,前者是外部类,后者是内部类)故非静态对象v0和v无法引用!"+"\n");}public static void main(String[] args) {Count ct1=new Count();//建立Count类(外部类)对象Count ct2=new Count();System.out.print("在main方法中,现在建立Count类(外部类)对象,");System.out.println("ct1的在ct2之前创建!分别指向两个Count类对象,Count类和Value类是has-a关系!"+"\n"+"以下是main方法体中println语句执行结果:");System.out.println("v0是无参构造内部类非静态对象,ct1.v0.c="+ct1.v0.c+" ct1.v0.d="+ct1.v0.d+" ct2.v0.c="+ct2.v0.c+"ct2.v0.d="+ct2.v0.d);// 非静态内部类对象只能通过外部类对象名访问System.out.println("v是有参构造内部类非静态对象,ct1.v.c="+ct1.v.c+" ct1.v.d="+ct1.v.d+" ct2.v.c="+ct2.v.c+" ct2.v.d="+ct2.v.d);// 非静态内部类对象只能通过外部类对象名访问System.out.println("v1是有参构造内部类静态对象,Count.v1.c="+Count.v1.c+" count.v1.d="+Count.v1.d);//静态内部类对象可以通过外部类名访问System.out.println("v2是有参构造内部类静态对象,Count.v2.c="+Count.v2.c+" count.v2.d="+Count.v2.d);Value.inc();//通过类名调用类方法System.out.println("调用类方法inc()之后Count.v1.c="+Count.v1.c+" Count.v1.d="+Count.v1.d);//引用类变量既可以通过类名也可以通过对象名System.out.println("调用类方法inc()之后Count.v2.c="+Count.v2.c+" count.v2.d="+Count.v2.d);Count.v2.inc();//通过类名调用类方法,这种写法不妥!System.out.println("调用类方法v1.inc()之后Count.v1.c="+Count.v1.c+" Count.v1.d="+Count.v1.d);//引用类变量既可以通过类名也可以通过对象名System.out.println("调用类方法v1.inc()之后Count.v2.c="+Count.v2.c+" count.v2.d="+Count.v2.d);ct1.v0.c++;//this.v0.c++;//错误,★不能在静态上下文中使用this关键字:!因为Value是Count的内部类,只能使用其外部类的对象ct2.v0.c++;System.out.println("顺序执行语句:ct1.v0.c++;ct2.v0.c++;后,ct1.v0.c="+ct1.v0.c+" ct2.v0.c="+ct2.v0.c);// 非静态内部类对象只能通过外部类对象名访问}}上面这个程序的行动结果如下:static块中println语句执行结果:v0和v是非静态内部类对象,v1和v2是静态内部类对象(请与教材P58例3.18对比),只有声明没有具体指向某对象时:v1.c=0 v2.c=0 v1.d=0 v2.d=0static块中执行完“v1=new Value(30)之后:”v1.c=30 v2.c=30 v1.d=29 v2.d=29static块中执行完“v2=new Value(15)之后:”v1.c=15 v2.c=15 v1.d=14 v2.d=14特别说明:因此时还没有建立Count类对象(Count类和Value类是has-a关系,前者是外部类,后者是内部类)故非静态对象v0和v无法引用!在main方法中,现在建立Count类(外部类)对象,ct1的在ct2之前创建!分别指向两个Count类对象,Count类和Value类是has-a关系!以下是main方法体中println语句执行结果:v0是无参构造内部类非静态对象,ct1.v0.c=10 ct1.v0.d=9 ct2.v0.c=10 ct2.v0.d=9v是有参构造内部类非静态对象,ct1.v.c=10 ct1.v.d=9 ct2.v.c=10 ct2.v.d=9 v1是有参构造内部类静态对象, Count.v1.c=10 count.v1.d=9v2是有参构造内部类静态对象, Count.v2.c=10 count.v2.d=9调用类方法inc()之后 Count.v1.c=11 Count.v1.d=9调用类方法inc()之后 Count.v2.c=11 count.v2.d=9调用类方法v1.inc()之后 Count.v1.c=12 Count.v1.d=9调用类方法v1.inc()之后 Count.v2.c=12 count.v2.d=9顺序执行语句:ct1.v0.c++;ct2.v0.c++;后,ct1.v0.c=14 ct2.v0.c=14以上运行结果中,有五点值得注意:一是static变量和static块是在类第一次装载时被初始化一次,并供类的所有对象共享,故static变量和static块中内容最先被初始化(早于main方法)。
Java语言程序设计(郑莉)一到八章课后习题答案
第二章习题答案1.什么是对象、类,它们之间的联系?答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。
对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。
现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。
2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!两者的关系:对象是类的具体实例.。
2.什么是面向对象的程序设计方法?它有那些基本特征?答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。
它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。
它的特征:抽象,封装,继承,多态。
3.在下面的应用中,找出可能用到的对象,对每一个对象,列出可能的状态和行为。
1)模拟航空预订系统交易的程序2)模拟银行交易的程序答:1)航空预订交易:状态:旅客姓名,身份证号,联系号码,出发地址,抵达地址,出发日期。
行为:订票,领票,买票,退票。
2)银行交易:状态:客户姓名,账号,身份证号。
行为:存款,取款,汇款。
4.请解释类属性、实例属性及其区别。
答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。
5.请解释类方法、实例属性及其区别。
答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。
类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。
区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法;6.类的访问控制符有哪几种?具体含义及其区别。
答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。
区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。
自考教材《java语言程序设计(一)》第三章习题解答
第三章习题解答3.1什么是面向对象技术?它有什么优点?通过面向对象的方式,将现实世界的物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。
程序设计者考虑的是对象的描述、对象间的关系、类的管理、什么时候和什么地方调用对象的哪一种方法。
面向对象技术的最大优点是有效支持重用,使得大的程序也变得相对容易维护。
3.2面积对象的程序设计和面向过程的程序设计有什么区别?面向过程语言编程模式是:程序=数据结构+算法编程时需要考虑和内容是的程序什么、怎么做、重点考虑每个实现的细节。
面向对象的语言的编程模式是:程序=对象+消息程序设计者考虑的是对象的描述、对象间的关系、类的管理、什么时候和什么地方调用对象的哪一种方法。
3.3在程序中类和对象有什么区别?类是同一种对象的描述,类概括了同类对象的共有性质:数据和方法。
类的每个对象都有自己的标识,但它们具有相同的一级属性和提供相同的方法。
在程序中,对象的名称用于捐弃引用对象,对象的成员变量用于存储对象的状态值,对象和方法用于描述对象的行为。
3.4 类变量和实例变量,以及类方法和实例方法的区别。
加载类之前创建对象之后调用方法访问权限成员变量实例变量不分配内存各个对象之间各自分配独立的内存空间对象名.实例变量名被实例方法,构造方法访问类变量直接分配内存各个对象之间共享这段已经分配完的内存对象名.类变量名;类名.类变量名被实例方法,类方法,构造方法访问成员方法实例方法不分配入口地址共享一个入口地址对象名.实例方法名实例变量、类变量,实例方法、类方法类方法直接分配入口地址共享这个入口地址对象名.类方法名;类名.类方法名类变量、类方法3.5 子类能继承超类的哪些成员变量和方法?同包继承不同包继承(import进来的)私有(private)不继承不继承友好(缺省默认)继承不继承受保护(protected)继承继承共有(public)继承继承3.6 子类在什么情况下能隐藏超类的成员变量和方法?解:在子类重载父类的成员变量、方法的情况下。
15春《JAVA语言程序设计》作业3满分答案
15春《JAVA语言程序设计》作业3单选题ssa一、单选题(共 10 道试题,共 100 分。
)1. 下列有关Java的叙述中,正确的是_______。
A. Java语言的标识符是区分大小写的B. 编译器生成的类的扩展名为.jarC. Java源文件的扩展名为.javaD. 归档工具生成的文件扩展名为.ser-----------------选择:A2. Java程序的执行方式是_______。
A. 即时编译方式和非解释执行方式B. 非即时编译方式和非解释执行方式C. 非即时编译方式和解释执行方式D. 即时编译方式和解释执行方式-----------------选择:D3. 下列说法不属于Java语言实现的机制的是_______。
A. Java虚拟机B. 垃圾回收机制C. 代码安全检查D. 内存管理-----------------选择:D4. 开发出Java程序设计语言的公司是_______。
A. SUNB. MicrosoftC. IBMD. Borland-----------------选择:A5. Java语言是由_______发展而来的。
A. BasicB. CC. C++D. Oak-----------------选择:D6. 下列关于字节代码的说法不正确的是_______。
A. 字节代码是一种二进制文件B. 可以看作是虚拟机的机器码C. 可以直接在操作系统上运行D. Java程序首先由编译器转换为标准字节代码-----------------选择:C7. 下列不属于提高Java语言安全保障的方式的是_______。
A. 不允许使用指针B. 对字节码执行前进行检查C. 防治对内存的非法入侵D. 采用半编译和半解释型执行模式-----------------选择:D8. 下列选项中不属于Java核心包的一项是_______。
A. javax.namingB. javax.rmiC. javax.soundD. java.math-----------------选择:D9. 下列关于类、包和源文件的叙述中,不正确的一项是_______。
奥鹏14秋《Java语言程序设计》作业3满分答案
B. Visual Basic
C. C++
D. C
?
正确答案:D
4.下列特点中,是Java虚拟机执行的特点之一的是_______。
A.字节代码
B.多进程
C.静态链接
D.编译
?
正确答案:A
5.要激活一个Java小程序Applet,需要有_______。
A. .class文件
B. .exe文件
C. .html文件
D. .java文件
?
正确答案:C
6.在Java中,程序先由编译器转换为_______。
A.机器码
B.标准字节代码
C.汇编程序
D.标准比特代码
?
正确答案:B
7.下列说法中,正确的一项是_______。
A. Java语言是以类为程序的基本单位的
B. Java语言是部分大小写的
C.多行解释语句必须以//开始
14秋《Java语言程序设计》作业3
一,单选题
1.下列哪一项不属于面向对象程序设计的基本要素?
A.类
B.对象
C.方法
D.安全
?
正确答案:D
2.在创建Applet应用程序时,需要用户考虑的问题是_______。
A.如何创建窗口
B.绘制的图形在窗口中的位置
C.程序的框架
D.事件处理
?
正确答案:B
3.下列不属于面向对象语言的是_______。
D.在Java语言中,公共类的源文件和该类名可以不相同
?
正确答案:A
8. Java语言使用_______进行解释执行。
A.字节码
B.机器码
《Java语言程序设计-基础篇》第03章答案
《Java语言程序设计-基础篇》第03章答案3.1 答:if(i % 2 == 0) System.out.println(“偶数”); else System.out.println(“奇数”); 3.2 答:当 x = 3, y = 2 时,输出:无输出当x = 3, y = 4 时,输出:z is 7 当 x = 2,y = 2 时,输出:x is 2 3.3 答:等价的语句有:a, c和d 正确缩进的是:c 3.4 答:当 x = 2, y = 3 时,输出:x is 2 当 x = 3, y = 2 时,输出:无输出当 x = 3,y = 3 时,输出:z is 7 3.5 答:等价 3.6 答:switch变量可以是char, byte, short, int。
执行case语句后没有break,则继续执行下一个case语句。
switch可转换为等价的if语句(嵌套),反之不一定可以。
3.7 答:y的值是2。
3.8 答:switch(a){ case 1: x += 5; break; case 2: x += 10; break; case 3: x += 16; break; case 4: x += 34; } 3.9 答:System.out.print(count + (count % 10 == 0 ? “\n“ : ““)); 3.10 答:(a)执行0次,无输出(b)执行9次,输出如下:3 5 7 9 3.11 答:(略)3.12 答:相同,均为45。
3.13 答:for(int i = 1; i System.out.println(i); 3.14 答:无限循环。
3.15 答:不能。
3.16 答:能。
(略)3.17 答:(略)3.18 答:(a)输出:balance is 1 (b)不能结束(编译有错,输出语句执行不到)3.19 答:能。
(略)3.20 答:int i=0; while(iif(i%3==0){ i++; continue; } sum += i; i++; } 3.21 答:(a)主方法如下:public static void main(String[] args) { int sum = 0; int number = 0; while(number number++; sum += number; } System.out.println(“The number is “ + number); System.out.println(“The sum is “ + sum); } (b)主方法如下:public static void main(String[] args) { int sum = 0; int number = 0; while(number number++; if(!(number == 10 || number == 11)) sum += number; } System.out.println(“The number is “ + number); System.out.println(“Thesum is “ + sum); } 3.22 答:执行next:后面的语句。
Java第三章习题
第3章一、选择题1.下列()不属于Java语言流程控制结构?(A)分支语句(B)跳转语句(C)循环语句(D)赋值语句2.假设a是int类型的变量,并初始化为1,则下列()是合法的条件语句?(A)if(a){} (B)if(a<<=3){} (C)if(a=2){} (D)if(true){} 3.下列说法中,不正确的一个是(C )。
(A)switch语句的功能可以由if…else if语句来实现(B)若用于比较的数据类型为double型,则不可以用switch语句来实现(C)if …else if语句的执行效率总是比switch语句高(D)case子句中可以有多个语句,并且不需要大括号{}括起来4.设a、b为long型变量,x、y为float型变量,ch为char类型变量且它们均已被赋值,则下列语句中正确的是()。
(A)switch(x+y) {} (B)switch(ch+1) {}(C)switch ch {} (D)switch(a+b); {}5.下列循环体执行的次数是()。
int y=2, x=4;while(--x != x/y){ }(A)1 (B)2 (C)3 (D)46.下列循环体执行的次数是()。
int x=10, y=30;do{ y-=x;x++; }while(x++<y--);(A)1 (B)2 (C)3 (D)47.已知如下代码:switch(m){case 0: System.out.println("Condition 0");case 1: System.out.println("Condition 1");case 2: System.out.println("Condition 2");case 3: System.out.println("Condition 3");break;default:System.out.println("Other Condition");}当m的值为()时,输出“Condition 3”(A)2 (B)0、1 (C)0、1、2 (D)0、1、2、3二、填空题1.跳转语句包括、、和2.switch语句先计算switch后面的的值,再和各语句后的值做比较。
04747Java语言程序设计教材程序设计题答案
04747Java语言程序设计(一)2017年版课后思考题与练习题程序设计题参考答案第三章流程控制语句5.1题_____________________________________________________________________________ public class Chapt3_5_1 {public static void main(String[] args) {int n[ ]={2,4,6,8,10};//分别计算2、4、6、8、10int stepmulti=1;for (int i=0;i<n.length;i++){stepmulti*=n[i];System.out.println("n["+i+"]!="+n[i]+"!="+stepmulti);}}}5.2题_____________________________________________________________________________ public class Chapt3_5_2 {public static void main(String[] args) {float n=30.0f;//可以手动修改n值float sum=0.000f;for (float i=1;i<=n;i++)sum=sum+(1/i);System.out.println("S=1+1/2+1/3+.....+1/n="+sum);}}5.3题_____________________________________________________________________________ public class Chapt3_5_3 {public static void main(String[] args) {float n=30.0f;//可以手动修改n值float sum=1.000f;for (float i=1; i<=n;i++)sum=sum+1/(3*i);System.out.println("S=1+1/3+1/6+...+1/3n="+sum);}}5.4题_____________________________________________________________________________public class Chapt3_5_4 {public static void main(String[] args) {int n=7;int i=0;while(i<n){if (i<n/2){for (int j=0; j<i;j++) System.out.print(" ");for (int k=0; k<n-2*i; k++) System.out.print(" * ");}else {for (int m=0; m<n-i-1;m++) System.out.print(" ");for (int k=0;k<n-(n-(i+1))*2;k++)System.out.print(" * ");}i++;System.out.println("");}}}5.5题_____________________________________________________________________________ public class Chapt3_5_5 {public static void main(String[] args) {int n=10;int i=0;while (i<10){for (int j=1;j<n-i;j++)System.out.print(" * ");i++;System.out.println();}}}5.6题_____________________________________________________________________________ public class Chapt3_5_6 {public static void main(String[] args) {for (int i=1;i<10;i++)System.out.print("\t "+i);for (int i=1;i<10;i++){System.out.print("\n"+i+"\t");for (int j=1;j<10;j++)System.out.print(j+"*"+i+"="+i*j+"\t");}}}5.7题_____________________________________________________________________________ import java.util.Scanner;public class Chapt3_5_7 {public static void main(String[] args) {String str;Scanner scan=new Scanner(System.in);System.out.println("请输入一串字符:");str=scan.nextLine();int k=0;goon: for(int i=0;i<str.length();i++){if (!(str.substring(i,i+1).equals(str.substring(str.length()-i-1,str.length()-i)))) {System.out.println("你输入的字符串("+str+")不是回文");k=1;break;}else continue goon;}if (k==0) System.out.println("你输入的字符串("+str+")是回文");scan.close();}}5.8题_____________________________________________________________________________ import java.util.Scanner;public class Chapt3_5_8 {public static void main(String[] args) {int n=0;Scanner scan=new Scanner(System.in);System.out.println("请输入一个整数:");int num=scan.nextInt();for (int i=2;i<num;i++){if (num%i==0){System.out.println(num+"非质数!");break;}else n=1;}if (n==1)System.out.println(num+"是个质数!");scan.close();}}5.9题_____________________________________________________________________________ import java.util.Scanner;public class Chapt3_5_9 {public static void main(String[] args) {Scanner t=new Scanner(System.in);System.out.println("请输入华氏温度:");double tin=t.nextDouble();System.out.println("转换后的摄氏温度为:"+(tin-32)/1.8);t.close();}}5.10题_____________________________________________________________________________ import java.util.Scanner;public class Chapt3_5_10 {public static void main(String[] args) {double s;Scanner leng=new Scanner(System.in);System.out.println("请输入三角形的第一条边长a:");double a=leng.nextDouble();System.out.println("请输入三角形的第二条边长b:");double b=leng.nextDouble();System.out.println("请输入三角形的第三条边长c:");double c=leng.nextDouble();if (a+b<=c||a+c<=b||b+c<=a||Math.abs(a-b)>=c||Math.abs(a-c)>=b||Math.abs(b-c)>=a) System.out.print("您输入的三条边无法构成三角形");//题目未要求判断,可以忽略else {s=(a+b+c)/2;System.out.println("这个三角形的面积S为"+Math.sqrt(s*(s-a)*(s-b)*(s-c)));}leng.close();}}5.11题_____________________________________________________________________________ import java.util.Calendar;//获取系统当年年份需要用到import java.util.Scanner;/***根据本书进度编写的程序,重复代码比较多,读者可在学习后续章节后再优化**/public class Chapt3_5_11 {public static void main(String[] args) {Scanner in=new Scanner(System.in);System.out.println("请输入数字1、2、3选择你要执行的操作,1、输入一个月份,打印当年该月的月历;2、输入当年的一个日期,查询当天是星期几;3、查询两个日期之间相差几天。
Java语言程序设计基础篇前三章课后习题
第1章计算机、程序和Java概述1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun。
程序:显示:1.2(显示五条消息)编写程序,显示Welcome to Java五次程序:显示:1.3(显示图案)编写一个程序,显示下面的图案:程序:显示:1.4(打印表格)编写程序,显示以下表格:程序:显示:1.5(计算表达式)编写程序,显示(9.5x4.5-2.5x3)/(45.5-3.5)的结果程序:显示:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果程序:显示:1.7(近似求π)可以使用以下公式计算π:Π=4x(1-1/3+1/5-1/7+1/9-1/11+1/13+...)编写程序,显示4x(1-1/3+1/5-1/7+1/9-1/11+1/13...)的结果。
在程序中用1.0代替1 程序:显示:第2章基本程序设计2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型的摄氏温度,然后将其转换华氏温度,并显示结果。
转换公式如下所示:Fahrenheit-=(9/5)*celsius+32 (华氏度=(9/5)*摄氏度+32)程序:显示:2.2(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱体的体积面积=半径x半径xπ体积=面积x高程序:显示:2.3(将英尺转换为米)编写程序,读入英尺数,将其转换为米数并显示结果。
一英尺等于0.305米。
程序:显示:2.4(将磅转换为千克)编写程序,将磅数转换为千克数。
程序提示用户输入磅数,然后转换成千克并显示结果。
1磅等于0.454千克。
程序:显示:2.5(财务应用程序:计算小费)编写一个程序,读入一笔费用与酬金率,就算酬金和总钱数。
例如,如果用户读入10作为费用,15%作为酬金率,计算结果显示酬金为$1.5,总费用为$11.5.程序:显示:2.6(求一个整数各位数的和)编写程序,读取一个在0和1000之间的整数,并将该整数的各位数字相加。
解析JAVA程序设计第三章课后答案
第3章习题解答1.如何定义方法?在面向对象程序设计中方法有什么作用?答:方法的定义包括方法名、方法形参、方法的返回值类型和方法体四部分,方法只能在类中定义。
方法是对象的动态特征的描述,对象通过方法操作属性,进而改变对象的状态,完成程序所预期的功能。
2.定义一个Dog类,有名字、颜色、年龄等属性,定义构造方法用来初始化类的这些属性,定义方法输出Dog的信息。
编写应用程序使用Dog。
答:public class Dog{private String name;private String color;private String age;Dog(String n,String c,String a){name = n; color = c; age = a;}public String toString() {return name + "," + color + "," + age;}public static void main(String args[]) {Dog dog = new Dog("小白", "白色", "2岁");System.out.println(dog.toString());}}3.什么是访问控制修饰符?修饰符有哪些种类?它们各有何作用?答:访问控制修饰符是对类、属性和方法的访问权限的一种限制,不同的修饰符决定了不同的访问权限。
访问控制修饰符有3个:private、protected、public,另外还有一种默认访问权限。
各个修饰符的作用如下表所示:B:包中的类C:所有子类D:本类A:所有类:所有类4.阅读程序,写出程序的输出结果class A{private int privateVar;A(int _privateVar){privateVar=_privateVar;}boolean isEqualTo(A anotherA){if(this.privateVar == anotherA.privateVar)return true;elsereturn false;}}public class B{public static void main(String args[]){A a = new A(1);A b = new A(2);System.out.println(a.isEqualTo(b));}}程序的输出结果为:false5.阅读程序,写出程序的输出结果public class Test {public static void main(String[] args) {int x;int a[] = { 0, 0, 0, 0, 0, 0 };calculate(a, a[5]);System.out.println("the value of a[0] is " + a[0]);System.out.println("the value is a[5] is " + a[5]);}static int calculate(int x[], int y) {for (int i = 1; i < x.length; i++)if (y < x.length)x[i] = x[i - 1] + 1;return x[0];}}程序的输出结果为:the value of a[0] is 0the value is a[5] is 56.阅读程序,写出程序的输出结果public class Test {public static void main(String[] args) {String str1 = new String("Java");String str2 = new String("Java");System.out.println(str1 == str2);}}程序的输出结果为:false7.阅读下列程序,程序中已经指明错误位置,请说出错误原因。
java习题及答案第3章 习题参考答案
第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_VALUE4. 下列字符串中,哪些是关键字?true for int null $float _double答:上述字符串中,以下这些是Java语言的关键字:true for int null5. Java语言的基本数据类型分为那几大类?答:Java语言的基本数据类型分为数值类型(包括整数类型和浮点类型)、字符类型(char)和布尔类型(Boolean)。
整数类型有byte、 short、 int和long。
浮点类型有float和double。
Java语言程序设计(郑莉)第三章课后习题答案
Java语言程序设计(郑莉)第三章课后习题答案1.设N为自然数:n!=1*2*3*….*n称为n的阶乘,并且规定0!=1.试编程计算2!,4!,6!he 10!.并将结果输出到屏幕上。
答:public class Mul{public static void main(String args[]){int i,n;float s;for(n=0;n<=10;n=n+2){if(n==0)System.out.println("0!=1\n");else{s=1;for(i=1;i<=n;i++)s=s*i;System.out.println(n+"!="+s+"\n");}}}}2.编写程序,接收用户从键键盘上输入的三个整数x,y,z..从中选出最大和最小者,并编程实现。
答:public class Math{public static void main(String args[]){int[] IntArg = new int[args.length];for(int i=0;i<args.length;i++){IntArg[i] = Integer.parseInt(args[i]);}int max,min;max=IntArg[0]>IntArg[1]?IntArg[0]:IntArg[1];max=max>IntArg[2]?max:IntArg[2];min=IntArg[0]<IntArg[1]?IntArg[0]:IntArg[1];min=min<IntArg[2]?min:IntArg[2];System.out.println("max="+max);System.out.println("min="+min);}}3.求出100一枚的宿舍,并将这些数在屏幕上5个乙杭地显示出来。
java程序设计1-6章习题作业
change(obj);
System.out.println(obj.x);
}
public static void change(PassRef obj)
{
obj.x=3;
}
}
运行结果:
4.
abstract class Shape {
abstract void display();
}
A没有意义
B表示后面是方法的输出值
C表示方法可能会抛出异常
D方法的标志,每个方法都必须有
10.有如下接口定义,合法的是:
public interface test{
//方法添加处
}
A private String justtest();
B public String justtest();
C protected String justtest();
象
3)3成员方法
publicvoid switchOn() //开灯,即将灯的状态置为开
publicvoidswitchOff() //关灯
public void printInfo() //输出灯的瓦数信息和开关状态
(2)编写1个TubeLight类,该类是对管状灯的描述,它继承于Light类。还拥有:
System.out.println(sU);
String subS = s.substring(11);
System.out.println(subS);
}
}
运行结果:
3.
class PassRef
{
int x;
public static void main(String [] args)
Java程序设计(2021春)——第三章类的重用课后题(选择题+编程题)答案与详解
Java程序设计(2021春)——第三章类的重⽤课后题(选择题+编程题)答案与详解Java程序设计(2021春)——第三章类的重⽤课后题(选择题+编程题)答案与详解⽬录第三章选择题Tip:选择题部分我只针对部分我出错的或我认为有价值的题⽬在此整理。
3.0 导学⽆3.1.1-3.1.2 类继承的概念和语法⽆3.1.3 隐藏和覆盖⽆3.2 Object类⽆3.3 终结类与终结⽅法T2题⾯如果需要抛出异常,可能会使⽤下⾯哪些关键字A finalB finallyC finalizeD catch答案B D详解选项中和异常相关的只有finally和catch。
(其实这应该是没讲过,笔者⽬前还没接触过相关内容,先mark⼀下)T3题⾯下⾯程序的运⾏结果是(忽略换⾏)class C{final public int methos(){System.out.println("a");return 0;}}public class A extends C{final public int method (int x){System.out.println(x);return 0;}public static void main(String[] args){c.method();}}A 2 2B 2 aC 运⾏错误,因为C的final⽅法不能被重写D 运⾏错误,因为A重写method时参数表不⼀样答案B详解由于参数表不⼀样,因此并⾮重写⽅法,⽽是定义新⽅法。
运⾏结果应该为2 a。
T4题⾯不能⽤来修饰interface的有A privateB publicC finalD static答案A C D详解可以修饰interface的只有public。
可以修饰class的有public final abstract。
T6题⾯final类和⽅法的存在处于以下哪些⽅⾯的考虑A 安全⽅⾯B 设计⽅⾯C 代码结构简单D 能够提⾼运⾏效率答案A B D详解详见郑莉⽼师《Java语⾔程序设计(第2版)》118-119页。
JAVA第三章习题答案 (2)
o=cno; ame=cname; this.credit=credit; this.period=period; } public void setCno(String cno){ o=cno; } public String getCno(){ return cno; } public void setCname(String cname){ ame=cname; } public String getCname(){ return cname; } public void setCredit(double credit){ this.credit=credit; } public double getCredit(){ return credit; } public void setPeriod(int period){ this.period=period; } public int getPeriod(){ return period; } public String toString(){ return cno+"\t"+cname+"\t"+credit+"\t"+period; } } 9.设计并实现一个 Box 类。要求:定义 3 个实例变量分别表示 Box 的长、宽和高,并定义 必要的方法。创建一个对象,求给定尺寸的立方体的表面积和体积。 //Box.java public class Box { private double length; private double width; private double height;
10.学生类的创建和使用。 (1)创建一个 Student 类,包括的私有数据成员有学号、姓名、性别、年龄等。 (2)声明一个构造方法,以初始化对象的所有数据成员。 (3)声明分别获得各数据成员(学号、姓名、性别、年龄等)的各个 public 方法。 (4)声明分别修改各数据成员(学号、姓名、性别、年龄等)的各个 public 方法。 (5 ) 声明一个 public 型的 toString( )方法, 把该类中的所有数据成员信息组合成一个字符串。 (6 ) 在类中声明统计班级总人数的私有数据成员 count, 以及获得班级总人数的 public 方法。 (7)将 Student 类放在子包 student 中。 (8 ) 在子包 student 外, 创建测试类 StudentTest。 在测试类中, 使用 Student 类创建多个对象, 测试 Student 类的每个 public 方法。 //Student.java package student; public class Student { private String sno; private String sname; private char ssex; private int sage; private static int count=0; public Student(String no,String name,char sex,int age){ sno=no; sname=name; ssex=sex; sage=age; count++; } public void setSno(String no){ sno=no; } public String getSno(){ return sno; } public void setSname(String name){ sname=name; } public String getSname(){ return sname; } public void setSsex(char sex){ ssex=sex; } public char getSsex(){ return ssex;
Java语言程序设计课后习题解答张思民第三章
第3章面向对象程序设计基础【1】什么是Java程序使用的类?什么是类库?[解答]:Java程序的基本单位是类。
对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念——类。
类是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象则是类的具体化,一旦建立类之后,就可用它来建立许多你需要的对象。
Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface),它可以帮助开发者方便、快捷地开发Java程序。
【2】如何定义方法?在面向对象程序设计中方法有什么作用?[解答]:方法的定义由两部分组成:方法声明和方法体。
方法声明的基本格式如下:返回类型方法名(形式参数){… //方法体内容}方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。
在面向对象程序设计中,方法所起的作用是完成对类和对象属性操作。
【3】简述构造方法的功能和特点。
下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。
void Student(int no,String name){studentNo=no;studentName=name;return no;}[解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。
构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。
以上的代码段出错于:①构造方法Student()前不能加void ②不能用return语句【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。
编写Java程序创建student类的对象及测试其方法的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
output2.setText(resultValue[1]);
}
else{
dispose();
System.exit(0);
}
}
System.out.println("min is: "+ch[ch.length-2]);
InputDemo id=new InputDemo(ch[ch.length-2]);
}
}
input=new Button("计算");
output=new TextField(20);
output1=new TextField(20);
output2=new TextField(20);
btn=new Button("关闭");
上面的示例程序中的错误主要在于拼写,如:点及分号应该用西文的;printIn中的大写字母I应改为小写字母l;另外,main()方法应该带参数,改为:
public static void main(String [] argvs)
2:
(1)2 //取余运算
(2)1 //表达式的结果为3,非0为真
public class InputDemo {
char char1
public InputDemo(char char1) {
this.char1=char1;
JFrame g=new JFrame("输出字框");
Container con=g.getContentPane();
char c;
String str="",strtemp;
System.out.println("请输入字母(分隔用会车)");
do{
c=(char)br.read();
strtemp=br.readLine();//去掉多余的输入
str+=c;
}while(c!='#');
this.char1=char1;
JFrame g=new JFrame("输出字框");
Container con=g.getContentPane();
Label h=new Label(char1);
con.add(h);
g.setLayout(new FlowLayout());
{
public static void main(String args[])
{
new FrameInOut();
}
}
class FrameInOut extends Frame implements ActionListener
{
Label prompt());
add(prompt);
add(input);
add(output);
add(output1);
add(output2);
add(btn);
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int i = 0; i < 10; i++)
{
int j = in.nextInt();
if (max < j) max = j;
if (min > j) min = j;
g.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}});
}
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
char c;
String str="",strtemp;
System.out.println("请输入字母(分隔用会车)");
do{
c=(char)br.read();
{System.exit(0);}});
}
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
strtemp=br.readLine();//去掉多余的输入
str+=c;
}while(c!='#');
char[] ch=str.toCharArray();
for(int i=0;i<ch.length;i++)//比较逆序
for(int j=i+1;j<ch.length;j++){
TextField output,output1,output2;
Button btn,input;
FrameInOut()
{
super("图形界面的Java Application程序员");
prompt =new Label("请输入一个浮点数:");
}
}import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class InputDemo {
char char1
public InputDemo(char char1) {
Label h=new Label(char1);
con.add(h);
g.setLayout(new FlowLayout());
g.setSize(500,200);
h.setLocation(20,100);
h.setVisible(true);
g.setVisible(true);
char[] ch=str.toCharArray();
for(int i=0;i<ch.length;i++)//比较逆序
for(int j=i+1;j<ch.length;j++){
if(ch[i]<ch[j]){
char temp=ch[i];
ch[i]=ch[j];
ch[j]=temp;
}
System.out.println("最大值为" + max);
System.out.println("最小值为" + min);
}
}
5:import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
(3)1 //按位异或运算,相应位相同结果为0,否则为1
(4)1 //2<3,表达式为真
3:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestInOut
{
if(e.getSource()==input){
String a=null;
a=output.getText();
String[] resultValue=a.split("\\.");//注意split方法的转意方式,默认的事逗号
g.setSize(500,200);
h.setLocation(20,100);
h.setVisible(true);
g.setVisible(true);
g.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
if(ch[i]<ch[j]){
char temp=ch[i];
ch[i]=ch[j];
ch[j]=temp;
}
}
System.out.println("min is: "+ch[ch.length-2]);
InputDemo id=new InputDemo(ch[ch.length-2]);
input.addActionListener(this);
btn.addActionListener(this);
setSize(300,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
}
}
}
4:import java.util.*;
public class A
{
public static void main(String[] args)