考试酷java 第四章
Java程序设计案例教程 习题答案 第4章 面向对象 下

第4章面向对象(下)一、填空题1. 12.重写3. final4. instanceof5. Implements6.编译时异常7. RuntimeException8.逗号二、判断题1.对2.对3.错4.对5.错6.对7.对8.错9.对10.错三、选择题1. B2. D3. D4. D5. B6. D7. C8. B9. B10.D11.C四、简答题1.抽象类和接口有如下区别:1)抽象类可以有构造方法,接口中不能有构造方法。
2)抽象类中可以有普通成员变量,接口中没有普通成员变量。
3)抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4)抽象类中的抽象方法的访问类型可以是public, protected和(默认类型),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5)抽象类中可以包含静态方法,接口中不能包含静态方法。
6)抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认为public static final类型。
7) 一个类可以实现多个接口,但只能继承一个抽象类。
2.在类的继承中需要注意的问题:1).在Java中,类只支持单继承,不允许多重继承,也就是说一个类只能有一个直接父类;2).多个类可以继承一个父类;3).在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类;4).在Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类。
五、编程题1.Employee.java139//定义一个测试类140 public class Test{141public static void main(String[] args){142//声明一个Employee类型的数组,并创立不同子类型的对象143Employee [ ] employee = {new SalariedEmployee (“张三”,1,6000), newHourlyEmployee (“李四”,2,50,180) , new SalesEmployee (“王五” ,3, 6500,0・15),new BasePlusSalesEmployee(, 4,5000,0.15,2000)}; 144//打印每个员工的工资145for (int i = 0; i < employee.length ;i + + )146System.out.printin(Math.round(employee[i].getSalary(10)));147)148)。
JAVA第四章课后习题解答

txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(5); btn1=new Button("+"); btn2=new Button("-"); btn3=new Button("*"); btn4=new Button("÷");
public class Test4_9 extends Frame implements ActionListener{ Button btn; public Test4_9(){ super("弹出窗口练习"); setSize(300,200);
5
setVisible(true); setLayout(new BorderLayout());
TextField txtFl1,txtFl2,txtFl3;
2
Button btn; public Test4_6(){
super("简单加法运算器"); setSize(300,200); setVisible(true); setLayout(new FlowLayout());
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(10); btn=new Button("=");
Java新教材第四章面试题

第4章数组和字符串操作 (63)4.1 数组 (63)4.1.1 为什么使用数组 (63)4.1.2 数组的基本概念 (64)●什么是数组?答案:数组是编程语言中非常常见的一种数据结构,它用来存储一组相同数据类型数据。
4.1.3 一维数组的创建和使用 (64)●下面哪一项是正确的定义一维数组的方式?答案:两种方式都正确。
4.1.4 一维数组的应用 (70)4.1.5 多维数组 (76)●什么是多维数组?答案:Java中支持多维数组,也就是“数组的数组”。
多维数组的声明是通过每一维一组方括号的方式来实现的。
●如何把一段逗号分割的字符串转换成一个数组?答案:如果不查jdk api,我很难写出来!我可以说说我的思路:用正则表达式,代码大概为:String [] result = orgStr.split(“,”);用StingTokenizer ,代码为:StringTokenizer tokener = StringTokenizer(orgStr,”,”);String [] result = new String[tokener .countTokens()];Int i=0;while(tokener.hasNext(){result[i++]=toker.nextToken();}●数组有没有length()这个方法?答案:数组没有length()这个方法,有length的属性。
String有有length()这个方法。
4.2 String字符串 (77)●请问数组和String有没有length()这个方法或length的属性。
·VI · 答案:数组没有length()这个方法,但有length 的属性。
String 有length()这个方法。
● 什么是字符串?答案:字符串是一系列字符组成的序列。
4.2.2 如何使用String 字符串....................................................................................77 ● String 字符串对象建立后,还能修改吗,为什么?答案:不能,因为String 类是字符串常量类,该类对象建立后不能修改。
047Java入门经典第4章课后习题答案

3
Java 入门经典第 4 章课后习题答案
4.7 习题
选择题
1.当编译和运行下列代码时会发生什么?( BE ) public class Test { public static void main(String[] args) { char myChar='c'; switch (myChar){ default: case'a': System.out.println("a"); break; case'b': System.out.println("b"); break; } } } A.switch 块非法,因为只能使用 int 类型作为参数 B.switch 块合法 C.switch 块非法,因为 default 必须放在块的结尾处 D.运行程序后,控制台无输出 E.运行程序后,控制台输出 a 2.当编译和运行下列代码时会发生什么?( BD ) public class Test { public static void main(String[] args) { int i=5; do { System.out.println(i); }while (--i>5); System.out.println("Finished"); } }
1Байду номын сангаас
A.6
B.5
C.4
D.Finished
3.当编译和运行下列代码后输出的结果是 Second,则 x 的取值范围是?( D ) public class Test { public static void main(String[] args) { int x=( if (x>0) System.out.println("First"); else if (x>-3) System.out.println("Second"); else System.out.println("Third"); } } A.x>0 B.x<=0 C.x<-3 D.x<=0 且 x>-3 4.当编译和运行下列代码时会发生什么?( C ) public class Test { public static void main(String[] args) { boolean flag=false; if(flag=true) { System.out.println("true"); }else{ System.out.println("false"); } } } A.编译错误 B.运行错误 C.输出 true D.输出 false 解析:注意 if(flag=true),若为 if(flag==true),则结果为 D 5. .当编译和运行下列代码时会发生什么?( C ) public class Test { public static void main(String[] args) { int total=0; for(int i=0;i>total;i++) { System.out.println(i); } System.out.println(total); } }
java试卷(第四章)

java试卷(第四章)(⼀)选择题1.假设⽅法没有任何返回值,下⾯哪个关键字可以⽤作此函数的返回类型?()A.v oidB.i ntC.d oubleD.p ublic2.⽅法包含哪些特征?()A.⽅法名B.⽅法名和参数列表C.返回类型、⽅法名和参数列表D.参数列表3.所⽤的java应⽤程序都要有⼀个()⽅法?A.p ublic static Main(String[] args)B.p ublic static Main(String args[])C.p ublic static void main(String[] args)D.p ublic void main(String[] args)4.⽅法的参数总是出现在()A.⼤括号B.圆括号C.花括号D.引号5.每当调⽤⼀个⽅法时,系统将参数、局部变量和系统寄存器存储在⼀个内存区域中,这个内存区域称为()A.堆B.存储器C.栈D.数组6.在调⽤参数⽅法时,实参的值赋给形参,这被称为()A.⽅法调⽤B.值传递C.参数传递D.参数名传递7.下⾯⽅法打印message:System.out.print(message);n--;}}那么nPrint(”a”,4)会输出什么()A.a aaaaB.a aaaC.a aD.调⽤⽆效8.下⾯⽅法打印messagestatic void nPrint(String message, int n) { while (n > 0) {System.out.print(message);n--;}}如果int k = 2;nPrint(“A message”,k);程序运⾏后k的结果是()A.0B.1C.2D.39.分析下⾯代码public class Test {public static void main(String[] args) { System.out.println(xMethod(5, 500L));}public static int xMethod(int n, long l) { System.out.println("int, long");return n;}public static long xMethod(long n, long l) { System.out.println("long, long");}运⾏结果是()A.程序显⽰的是int,long下⼀⾏5B.程序显⽰的是long,long下⼀⾏5C.程序正常运⾏,但是运⾏结果不是A和B中的结果D.程序不能正常运⾏,因为没有匹配的参数列表10.分析下⾯代码:class Test {public static void main(String[] args) {System.out.println(xmethod(5));}public static int xmethod(int n, long t) {System.out.println("int");return n;}public static long xmethod(long n) {System.out.println("long");return n;}}运⾏结果是()A.i nt 下⼀⾏5B.l ong下⼀⾏5C.程序正常运⾏,但是运⾏结果不是A和B中的结果D.程序不能正常运⾏,因为没有匹配的参数列表11.分析下⾯代码:public class Test {public static void main(String[] args) {System.out.println(max(1, 2));}public static double max(int num1, double num2) {System.out.println("max(int, double) is invoked");if (num1 > num2)return num1;elsepublic static double max(double num1, int num2) {System.out.println("max(double, int) is invoked");if (num1 > num2)return num1;elsereturn num2;}}运⾏结果是:()A.程序不能编译,因为不能在返回类型为⾮void的⽅法中有输出语句。
Java基础第4章编程题答案

第四章编程题1. 按要求完成以下题目(1)Circle( ) // 将半径设为0Circle(double r ) // 创建 Circle 对象时将半径初始化为r③三个成员方法double getArea( ) //获取圆的面积double getPerimeter( ) // 获取圆的周长void show( ) //将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder ,它继承于上面的Circle 类。
还拥有:①一个成员变量double hight(私有,浮点型);// 圆柱体的高;②构造方法Cylinder (double r, double h )//创建Circle对象时将半径初始化为r③成员方法double getVolume( ) // 获取圆柱体的体积void showVolume( ) // 将圆柱体的体积输出到屏幕编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。
【参考答案】import java.math.*;class Circle{private double radius;public Circle() {radius=0;}public Circle(double r) {radius=r;}void setRadius(double r) {this.radius=r;}double getRadius(){return this.radius;}double getArea() {return Math.PI*radius*radius;}double getPerimeter() {return Math.PI*2*radius;}void show() {System.out.println("圆的半径为"+radius+"\n圆的周长为"+this.getPerimeter()+"\n圆的面积为"+this.getArea());}}class Cylinder extends Circle{double hight;public Cylinder(double r,double h) {super.setRadius(r);this.hight=h;}double getVolume(){double volume=super.getArea()*hight;return volume;}void showVolume() {System.out.println("圆柱的面积为"+this.getVolume());}}public class Example01 {public static void main(String[] args) {Circle circle=new Circle(5);circle.show();Cylinder cylinder=new Cylinder(2,5);cylinder.showVolume();}}2.按要求编写一个Java应用程序:(l)定义一个接口CanCry,描述会吼叫的方法public void cry()(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口。
Java第四章题

1、已知类的定义如下public class test_3{int x ;int y ;test_3(int a,int b){x=a;y=b;}test_3(){x=-1;y=-1;}int get_x(){return x++;}int get_y(){return y--;}如果用下面三种不同的方法加载类,写出要求的结果:(1)用test_3 a1=new test_3()后;a1.x的内容为_____ ,a1.y的内容为______。
(2)用test_3 a1=new test_3(-2,5)后;a1.x的内容为_____ ,a1.y的内容为______。
(3)用test_3 a1=new test_3(10)后;其结果是__________。
2、设int x=1,float y=2,则表达式x / y的值是( )A、0B、1C、2D、以上都不是3、以下语句有语法错的是( )A、int x=1;y=2;z=3B、for (int x=10,y=0;x>0;x++);C、while (x>5);D、for(;;);4、void 的含义( )A、方法体为空B、定义的方法没有形参C、定义的方法没有返回值D、方法的返回值不能参加算术运算5、以下有关类定义的说法正确的是( )A、一个类可以有成员,也可以没有成员B、类的成员至少有一个属性和一个方法C、类的静态属性同全局变量的概念完全一样,只是表达形式不同D、类的方法在实例化时不占用内存6、以下有关构造函数的说法,正确的是( )A、一个类的构造函数可以有多个B、构造函数在类定义时被调用C、构造函数只能由对象中的其它方法调用。
D、构造函数可以和类同名,也可以和类名不同7、以下有关类的继承的说明中,正确的是( )A、子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B、子类只能继承父类的方法,不能继承父类的属性C、子类只能继承父类的非私有属性,不能继承父类的方法D、子类不能继承父类的私有属性8、以下有关类的构造函数继承的说明,正确的是( )A、子类继承父类的构造函数,但不能自己定义B、子类可定义自己的构造函数,但受父类定义的构造函数的限制C、子类和父类均可独自定义自己的构造函数,但执行时的顺序有规定D、如父类定义了构造函数,则子类只能继承父类的构造函数,不能自己定义9、this 和super的使用中,正确的是( )A、都是指一个内存地址B、可以在同一个方法定义中出现C、意义相同D、以上都不10、分析以下程序,下面(AC)方法是对setVar方法的重载。
考试酷java第四章

第四章1. 关于内部类,下列说法不正确的是()。
内部类不能有自己的成员方法和成员变量2. 有一个类B,下面为其构造方法的声明,正确的是()。
B(int x) {}3. 为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为()static void f()4. 在Java语言中,哪一个包中的类是自动导入的?()ng5. 定义外部类时不能用到的关键字是()。
protected6. 下列哪种类成员修饰符修饰的变量只能在本类中被访问?()private7. 定义一个公有double型常量PI,哪一条语句最好?()public final static double PI=3.14;8. 下面关于方法的说法,不正确的是()。
如果一个类定义了构造方法,也可以用该类的默认构造方法9. 下面关于类的说法,不正确的是()。
类就是对象10. 给出下面的程序代码:public class X4_1_3 {private float a;public static void m ( ){ }}如何使成员变量a被方法m( )访问()将private float a改为static float a11. 给出下面程序代码:byte[] a1, a2[];byte a3[][];byte[][] a4;下列数组操作语句中哪一个是不正确的?()a2 = a112. 下面代码运行后的输出结果为()。
public class X6_1_5 {public static void main(String[] args) {AB aa = new AB();AB bb;bb = aa;System.out.println(bb.equals(aa));}}class AB{ int x = 100; }true13. 设有下列数组定义语句:int a[] = {1, 2, 3};则对此语句的叙述错误的是()。
Java程序设计基础与实战 第4章作业参考答案

第4章作业参考答案
1.填空题
(1)super
(2)extends
(3)Object 类
(4)puclic protected private
(5)final
2.选择题
3 .简答题
(1)回答要点
继承是面向对象最显著的一个特性。
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
(2)回答要点
多态表达为父类引用变量可以指向子类对象。
前提条件:存在子父类关系。
在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。
(3)回答要点方法重载和重写都是实现多态的方式,区别在于重载是编译时多态,重写是运行时多态。
•重载是在同一个类中,两个方法的方法名相同,参数列表不同(参数类型、顺序、个数),与方法返回值无关,所以不能根据返回值类型区分是否是重载,因为重载是编译时多态,调用时不能指定类型信息,所以编译器不知道要调用的是哪个方法。
•重写发生在父类和子类之间,子类继承父类方法(非构造、final、static修饰的方法)并重写父类方法。
4 .编程题
(1)源代码:参考本章资料文件夹下“作业1”。
(2)源代码:参考本章资料文件夹下“作业2”。
(3)源代码:参考本章资料文件夹下“作业3”。
java_开发实战经典_第四章课后习题答案_完整版.doc

for(inti=0; i<score.length; i++){
if(max<score[i]){
max = score[i];
}
}
System.out.printin (”最分为:n+max);
}
}
第八题
public classFour08 {
public static voidmain(String[] args){
switch(Array[i] ) {
case1:{
nl++;
break;
}
case2:{
n2 + +;
break;
}
case3:{
n3 + + ;
break;
}
case4:{
n4++;
break;
}
case5:{
n5++;
break;
}
case6:{
n6++;
break;
}
case7:{
n7 + + ;
}
}
第二题
public static voidmain(String[]args){
inta[]={1,2,3,4,5.6,7,8,9,10,11};
int0=0,e=0;
for(inti=0 ;•丄ength; i++){
if(a[i]%2==0){
e++;
}else{
o++;
}
}
System,out.printIn("奇数个数为:”+o+”\t” + ”偶数个数为:”+e);
考试酷java 第四章

第四章1、关于内部类,下列说法不正确的就是( )。
内部类不能有自己的成员方法与成员变量2、有一个类B,下面为其构造方法的声明,正确的就是( )。
B(int x) {}3、为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为( )static void f()4、在Java语言中,哪一个包中的类就是自动导入的?( )java、lang5、定义外部类时不能用到的关键字就是( )。
protected6、下列哪种类成员修饰符修饰的变量只能在本类中被访问?( )private7、定义一个公有double型常量PI,哪一条语句最好?( )public final static double PI=3、14;8、下面关于方法的说法,不正确的就是( )。
如果一个类定义了构造方法,也可以用该类的默认构造方法9、下面关于类的说法,不正确的就是( )。
类就就是对象10、给出下面的程序代码:public class X4_1_3 {private float a;public static void m ( ){ }}如何使成员变量a被方法m( )访问( )将private float a改为static float a11、给出下面程序代码:byte[] a1, a2[];byte a3[][];byte[][] a4;下列数组操作语句中哪一个就是不正确的?( )a2 = a112、下面代码运行后的输出结果为( )。
public class X6_1_5 {public static void main(String[] args) {AB aa = new AB();AB bb;bb = aa;System、out、println(bb、equals(aa));}}class AB{ int x = 100; }true13、设有下列数组定义语句:int a[] = {1, 2, 3};则对此语句的叙述错误的就是( )。
JAVA_开发实战经典_第四章课后习题答案_完整版

int value[] = new int[a.length+val.length]; System.arraycopy(a,0,value,0,a.length); System.arraycopy(val,0 , value, a.length, val.length); return value; } }
if(c == temp[i]){
flag = true; } } if(flag){ System.out.println("YES,此数组中存在元素"+c); }else{ System.out.println("NO,此数组中不存在元素"+c); } } }
第六题 public class Four06 { public static void main(String[]args){
max=a[i]; maxFoot=i; } } int val = a[0]; a[0] = a[maxFoot]; a[maxFoot] = val; System.out.println(a[0]); } }
第十题 public class Four10 {
public static void main(String[] args){ int temp[]= {1,2,3,4,5,6,7,8,9,10}; java.util.Arrays.sort(temp); print(temp); temp = inc(temp,13,12,34,5,6,7); java.util.Arrays.sort(temp); print(temp);
n8++; break; } case 9:{ n9++; break; } case 0:{ n0++; break; } } } System.out.println("0---->9的个数分别为:"+n0+"、"+n1+"、"+ n2+"、"+n3+"、"+n4+"、"+n5+"、"+n6+"、"+n7+ "、"+n8+"、"+n9); } }
JAVA程序设计教程第四章参考答案

import java.util.*;public class Person{private String name;private char sex;private int year,month;public Person( ){}public Person(String nm,char sx,int y,int m) {name=nm;sex=sx;year=y;month=m;}public void printPerson( ) {Calendar now=Calendar.getInstance();int age=now.get(Calendar.YEAR)-year;System.out.println("Name: "+name+",Sex: "+sex+", Age: "+age);}public static void main(String args[]){Person pe1=new Person("Tom",'m',1980,10);pe1.printPerson();}}2.public class Rectangle{double width,length,girth,area;public Rectangle(){};public Rectangle(double wd,double le) {width=wd;length=le;}public void setWidth(double wd) {width=wd;}public void setLength(double le) {length=le;}public double getWidth( ) {return width;}public double getLength( ) {return length;}public double girth(){return 2*(width+length);public double area(){return width*length;}public void printRectangle(){System.out.println("Width="+width+" ,Length="+length);}public static void main(String args[]){Rectangle re1=new Rectangle(10,20);Rectangle re2=new Rectangle();re2.setWidth(3);re2.setLength(4);re1.printRectangle();System.out.println("Girth="+re1.girth()+",Area="+re1.area());re2.printRectangle();System.out.println("Girth="+re2.girth()+",Area="+re2.area());}}3.public class Matrix{private int mx[][],m,n;public Matrix(int r,int c) {m=r;n=c;mx=new int[m][n];iniMatrix();}public Matrix(){m=3;n=3;mx=new int[3][3];iniMatrix();}public void iniMatrix(){int i,j;for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=(int)(Math.random()*100);}public void tranMatrix(){int i,j,t;int mt[][]=new int[m][n];for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mt[i][j]=mx[i][j];t=m;m=n;n=t;mx=new int[m][n];for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=mt[j][i];}public void printMatrix(){int i,j;for(i=0;i<=m-1;i++){for(j=0;j<=n-1;j++)System.out.print(" "+mx[i][j]);System.out.println();}}public void addMatrix(Matrix b) {int i,j;for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=mx[i][j]+b.mx[i][j];}public static void main(String args[]){Matrix ma=new Matrix(4,3);Matrix mb=new Matrix(4,3);System.out.println("The matrix_A:");ma.printMatrix();System.out.println("The matrix_B:");mb.printMatrix();System.out.println("Matrix_A + Matrix_B:");ma.addMatrix(mb);ma.printMatrix();System.out.println("Transpose Matrix_B:");mb.tranMatrix();mb.printMatrix();}}4.public class Substring{public static void main(String args[]){String str1=new String("addActionListener");String str2=new String("Action");int n;n=str1.indexOf(str2);if(n>=0){System.out.println("String_2 is in String_1");System.out.println("The substring before String_2 is "+str1.substring(0,n));System.out.println("The substring behind String_2 is "+str1.substring(n+str2.length( )));}}}五、写出程序运行后的结果1.2.。
JAVA练习题(第4章)

12、在Java中,所有类的根类是( )。 A.ng.Object B.ng.Class 【答案】: Ajava.awt.Frame C.java.applet.Applet D. 13、int型public成员变量MAX_LENGTH,该 值保持为常数100,则定义这个变量的语句 是( )。 A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100
10、覆盖与重载的关系是 ( ) A、覆盖只有发生在父类与子类之间,而重载 可以发生在同一个类中 B.覆盖方法可以不同名,而重载方法必须同 名 C.final修饰的方法可以被覆盖,但不能被重 载 D.覆盖与重载是同一回事
【答案】:A
11、给定java程序,如下:编译运行Test.java,结 果是( )。 public class Test{ private static final int counter=10; public static void main(String[] args) { System.out.println(++counter) ; } } A、10 B、11 C、编译错误 D、运行时出现异常 【答案】:C
18、下列说法正确的是( )。 A、final 可修饰类、属性、方法 B、abstract可修饰类、属性、方法 【答案】:A C、定义抽象方法需有方法的返回类型、名称、参 数列表和方法体 D、用final修饰的变量,在程序中可对这个变量的 值进行更改 19、在Java中,所有类的根类是( )。 A、ng.Object B、ng.Class C、java.applet.Apple D、java.awt.Frame 【答案】:A
java语言程序设计第4章-习题参考答案

第4章习题解答1.声明一个数组,保存一个学生的数学、语文、英语、物理、化学等课程的成绩,编写一个程序,计算5门课程的平均成绩,精确到0.1分,成绩值从键盘录入。
import java.util.Scanner;public class XT_1_score {public static void main(String[] args) {// TODO Auto-generated method stubdouble score[] = new double[5];System.out.println("请分别输入数学、语文、英语、物理、化学的成绩(数字之间用空格格开):");double sum = 0, average = 0;Scanner in = new Scanner(System.in);int i;for (i = 0; i < 5; i++)score[i] = in.nextDouble();for (i = 0; i < 5; i++)sum += score[i];average = sum / 5;System.out.println("平均成绩为:" + String.format("%.1f", average));}2.编程实现统计50名学生的百分制成绩中各分数段的学生人数,即:分别统计出100分、90-99分、80-89分、70-79分、60-69分、不及格的学生人数。
import java.util.Scanner;public class XT_2_score_sore {public static void main(String[] args) {// TODO Auto-generated method stubdouble score[] = new double[50];int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, i;System.out.println("请依次输入50名学生的成绩(用空格隔开):");Scanner br = new Scanner(System.in);for (i = 0; i < 50; i++)score[i] = br.nextDouble();for (i = 0; i < 50; i++) {if (score[i] == 100)a++;if (score[i] >= 90 && score[i] <= 99)b++;if (score[i] >= 80 && score[i] <= 89)c++;if (score[i] >= 70 && score[i] <= 79)d++;if (score[i] >= 60 && score[i] <= 69)e++;if (score[i] < 60)f++;}System.out.println("成绩为100分的个数:" + a);System.out.println("成绩为90-99分的个数:" + b);System.out.println("成绩为80-89分的个数:" + c);System.out.println("成绩为70-79分的个数:" + d);System.out.println("成绩为60-69分的个数:" + e);System.out.println("成绩为不及格的个数:" + f);}}3.编写一个程序,实现打印输出字符串数组中最大值和最小值。
解析java程序设计第四章课后答案

解析java程序设计第四章课后答案第4章习题解答1.类的继承的主要好处是什么?Java中支持类的多继承形式吗?继承是一种由已有的类创建新类的机制。
利用继承,我们可以先创建一个拥有共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类自动拥有一般类的属性和行为,并根据需要可以增加新的属性和行为,或者改变父类的行为。
类的继承的主要好处是代码复用。
Java不支持类的多继承形式。
2.解释一下方法重载和方法覆盖的概念,并对两者加以对比。
如果子类中定义方法所用的名称、返回类型和参数表和父类中方法所使用的完全一样,但具体实现不同,则称子类方法覆盖了父类中的方法。
在同一类中,如果方法名称相同,但参数表不同,则称为方法重载。
3.编写一个学生和教师的数据输入和显示程序。
学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。
要求将编号、姓名输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的父类。
import java.util.*;class Person {private String name;private int id;public void input(){Scanner sc=new Scanner(System.in); name=sc.nextLine();id=sc.nextInt();}public void display(){System.out.println(\} }class Student extends Person { private int classNo;private int score;public void input(){super.input();Scanner sc=new Scanner(System.in); classNo=sc.nextInt();score=sc.nextInt();}public void display(){super.display();System.out.println(\}public static void main(String[] args){Student s=new Student();s.input();s.display();} } 4.创建Animal(动物):Mouse,Dog等的一个继承分级结构。
JAVA期末复习题及答案——第四章

JAVA期末复习题及答案——第四章一.填空题1.类是属性和方法的集合。
2.在面向对象方法中,类描述的是具有相似属性与操作的一组对象。
3.在面向对象的方法中,类的实例被称为_对象____。
4.面向对象的程序设计方法中涉及的对象是程序中用来描述客观事物的一个实体,它由__属性__和可执行的一组操作共同组成。
5.protected关键字修饰的属性或方法表示可被_类自身,同一个包中的其他类,不同包中的子类_访问。
6.抽象的类不能__生成对象__。
7.构造方法是一种特殊的方法,用它来定义对象的_初始化状态__。
8.___最终___类是不能被继承的类。
9.面向对象的3个最主要的特点是继承性、多态性和封装性。
10.在创建类的对象时都会调用类的构造函数来初始化类中的属性。
11.消息传递的三要素是接收消息的对象、接收消息的方法和方法所需要的参数。
12.访问控制符用来控制类和类的成员的访问权限。
二.选择题1.下列关于Java对import语句规定的叙述中,错误的是:(C )A、在Java程序中import语句可以有多个B、在Java中import语句可以没有C、在Java中import语句必须有一个D、在Java程序中import语句必须引入在所有类定义之前2.下列关于构造函数的叙述中,错误的是:(C)A、Java语言规定构造函数名与类名必须相同B、Java语言规定构造函数没有返回值,但不用void声明C、Java语言规定构造函数不可以重载D、Java语言规定构造函数只能通过new自动调用3.若数组a定义为int[][]a=new int[3][4],则a是:BA、一维数组B、二维数组C、三维数组D、四维数组4.已知:int []a=new int[100]; 在下列给出的数组元素中,非法的是:D A、a[0] B、a[1] C、a[99] D、a[100]5.在Java中,用package语句说明一个包时,该包的层次结构必须是( B)。
java第4章习题答案

2. 数 3. 4.
一个整型数组可以容纳的元素类型有哪些。 答:整型和字符型,byte 型 若有一个声明为“int[] a=new int[10]”的整型数组,可以引用的最小下标和 最大下标是多少? 答:最大下标为 0,最小下标为 9 若有一个声明为“int[] a=new int[10]”的整型数组,其每个元素的初始值是 多少? 答:初始值为 0 以下能对二维数组进行正确初始化的语句是( BC ) 。 A.int[][] a=new int[2][]{{1,2},{3,4}}; B. int[][] a=new int[][]{{1,2},{3,4}}; C. int[][ ] a={{1,2},{3,4}}; D. int[2][2] a={{1,2}下面程序的运行结果 class Happy { public static void main(String args[]) { int index=1; int a[] =new int[3]; int bas =a[index]; int baz =bas + index System.out.println( a[baz] ); } } 答:0
第四章 答案
1. 一个字符型数组,其有 5 个元素,初始值分别为'a','b','c','d','e',写出 可能的声明及初始化语句。 答 :(1)char[] ch={'a','b','c','d','e'}; (2) char[] ch=new char[5]; ch[0]='a'; ch[1]='b'; ch[2]='c'; ch[3]='d'; ch[4]='e'; (3) char[] ch=new char[]{'a','b','c','d','e'}; 获得一个数组可以容纳的元素个数的方法是什么? 答:利用数组型变量的一个整型属性 length,其表示数组可以容纳的元素个
《Java程序设计案例教程》第四章练习答案

第四章练习参考答案一、单项选择题1.对函数而言,下列叙述正确的是(D)。
A.一个程序中可以出现一个以上的主函数B.函数与主函数可以互相调用C.用户自定义的函数必须有形式参数D.调用函数和被调用函数可以不在同一个文件中2.在C++语言中,确定函数返回值的类型由(D)。
A.return语句中的表达式类型决定B.调用该函数的主函数类型决定C.调用该函数时系统状态决定D.定义函数时所指定的函数类型决定3.下列关于C++函数的叙述中,正确的是(C)。
A.每个函数至少要具有一个参数B.每个函数都必须返回一个值C.函数在被调用之前必须先声明D.函数不能自己调用自己4.函数调用语句calc(exp1,(exp2,exp3,exp4));中,含有的实参个数是(B)。
A.1B.2C.3D.45.调用函数时,若实参是一个数组名,则向函数对应的形参传送的是(B)。
A.数组元素的个数B.数组的首地址C.数组第一个元素的值D.数组中全部元素的值6.若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是(D)。
A.调用可以作为独立的语句存在B.调用可以作为一个函数的实参C.调用可以出现在表达式中D.调用可以作为一个函数的形参7.有以下函数定义:void fun( int n,double x){…}若以下选项中的变量都已正确定义并赋值,则对函数fun()的正确调用语句是(C)。
A.fun(int y,double m);B.k=fun(10,12.5);C.fun(x,n);D.void fun(n,x);8.在C++语言中,函数的形式参数是(A)。
A.局部变量B.全局变量C.静态变量D.外部变量9.如果要一个变量在整个程序运行期间都存在,但是仅在说明它的函数内可见,则这个变量的存储类型应该被说明为(A)。
A.静态变量B.自动变量C.外部变量D.寄存器变量10.设有函数原型void test (int a,int b=7,char c="");,下面的函数调用中,属于不合法调用的是(C)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章1. 关于内部类,下列说法不正确的是()。
内部类不能有自己的成员方法和成员变量2. 有一个类B,下面为其构造方法的声明,正确的是()。
B(int x) {}3. 为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为()static void f()4. 在Java语言中,哪一个包中的类是自动导入的?()ng5. 定义外部类时不能用到的关键字是()。
protected6. 下列哪种类成员修饰符修饰的变量只能在本类中被访问?()private7. 定义一个公有double型常量PI,哪一条语句最好?()public final static double PI=3.14;8. 下面关于方法的说法,不正确的是()。
如果一个类定义了构造方法,也可以用该类的默认构造方法9. 下面关于类的说法,不正确的是()。
类就是对象10. 给出下面的程序代码:public class X4_1_3 {private float a;public static void m ( ){ }}如何使成员变量a被方法m( )访问()将private float a改为static float a11. 给出下面程序代码:byte[] a1, a2[];byte a3[][];byte[][] a4;下列数组操作语句中哪一个是不正确的?()a2 = a112. 下面代码运行后的输出结果为()。
public class X6_1_5 {public static void main(String[] args) {AB aa = new AB();AB bb;bb = aa;System.out.println(bb.equals(aa));}}class AB{ int x = 100; }true13. 设有下列数组定义语句:int a[] = {1, 2, 3};则对此语句的叙述错误的是()。
a数组元素的下标为1~314. 已知有定义:String s="I love",下面哪个表达式正确?()s += "you";15. 关于数组,下列说法中不正确的是()。
定义数组时必须分配内存16. 执行语句:int[] x = new int[20];后,下面哪个说法是正确的?()x[19]为01. Applet分别对应了Applet从初始化、启动、暂停到消亡的生命周期的各个阶段。
Init start stop destroy2. 数组是一种Java中,数组是作为的。
数组是有限元素的有序集合,数组中的元素具有相同的复合对象数据类型数组名下标3. 在数组定义语句中,如果[]在数据类型和变量名之间时,[]之后定义的所有变量都是类型,当[]在变量名之后时,只有[]之前的变量是类型,之后没有[]的则不是数组类型。
数组数组4. 利用的排序、查找等操作。
System arraycopy() Arrays sort() binarySearch()5. Java语言提供了两种具有不同操作方式的字符串类和String StringBuffer ng.Object6. System类是一个功能强大、非常有用的特殊的类,,即不能创建System类的对象,所以它所有的属性和方法都是引用时以类名System为前缀即可。
标准输入/输出运行时实例化static7. 方法体内定义变量时,变量前不能加它们都有一修饰符明确赋值默认8. 。
package9. 继承类时需要实现接class extends implements10. 引用static类型的方法时,可以使前缀,也可以使用类名对象名11.问它。
对象名类名12. 从用户的角度看,Java源程序中的类分为两种系统定义的类用户自己定义的类13. static方法中只能引用员方法;而非static类型的方法中既可以引用static static 非static14. 如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个</FILL.TAG>具体语句</FILL.TAG>,不能完成任何操作。
形式参数15.是所有类的直接或间接父类,它在包中。
Object类ng16. 数组初始化包括静态动态17.个对象的内存区中。
因此,一个类的任何对象访问它时,同/不同)的数值。
公共存储相同18. [构造19. 当程序中需要引用java.awt.event包中的类时,导入该包中类的语句为import java.awt.event.*20. </FILL.TAG>成员方法<FILL.TAG>数据成员24. public class X6_3_1 {public static void main(String[] args) {int a[]={12,39,26,41,55,63,72,40,83,95};int i1=0,i2=0;for(int i=0;i<a.length;i++)if(a[i] %2 == 1) i1++;else i2++;System.out.println(i1+"\t"+i2);}6 425.public class X6_3_2 {public static void main(String[] args) {int a[]={36,25,48,14,55,40,32,66};int b1,b2;b1=b2=a[0];for(int i=1;i<a.length;i++)if ( a[i] >b1 ){if ( b1 >b2 ) b2=b1;b1=a[i];}System.out.println(b1+"\t"+b2);}}66 55public static void main(String[] args) { int a[]={36,25,48,14,55,40,32,66 };int b1,b2;b1=b2=a[0];for (int i=1;i<a.length;i++)if ( a[i]<b1 ) {if ( b1<b2 ) b2=b1;b1=a[i];}System.out.println(b1+"\t"+b2);}}14 2527. public class X6_3_4 {public static void main(String[] args) { String str = "abcdabcabfgacd";char[] a =str.toCharArray();int i1 =0, i2=0, i;for(i=0;i<a.length;i++) {if(a[i] == 'a' ) i1++;if(a[i] == 'b' ) i2++;}System.out.println(i1+"\t"+i2);}}4 3public static void main(String[] args) { String str ="abcdabcabdaeff";char[] a = str.toCharArray();int b[] = new int[5],i;for(i=0;i<a.length;i++) {switch (a[i]) {case 'a': b[0] ++; break;case 'b': b[1] ++; break;case 'c': b[2] ++; break;case 'd': b[3] ++; break;default : b[4] ++;}}for(i =0; i<5; i++)System.out.print(b[i]+"\t");System.out.println();}}4 3 2 2 3 29. public class X6_3_6 {public static void main(String[] args) { int a[] = {76,83,54,62,40,75,90,92,77,84}; int b[] = {60,70,90,101};int c[]=new int[4],i;for (i=0; i<a.length; i++) {int j =0;while (a[i] >= b[j] ) j ++;c[j] ++;}for (i=0; i<4; i++)System.out.print(c[i]+"\t");System.out.println();}}2 1 5 2public static void main(String[] args) {int a[][] = {{1,2,7,8},{5,6,11,12},{9,10,3,4}};int m = a[0][0];int ii = 0, jj = 0;for (int i=0;i<a.length;i++)for(int j=0;j<a[i].length;j++)if ( a[i][j]>m ){m =a[i][j];ii =i;jj =j;}System.out.println(ii+"\t"+jj+"\t"+a[ii][jj]);}}1 3 1231.public class X6_3_8 {public static void main(String[] args) {String[] a = {"student" ,"worker" ,"cadre" ,"soldier" ,"peasant" }; String s1,s2;s1 = s2 = a[0];for( int i = 1; i<a.length;i ++) {if (a[i].compareTo(s1)>0) s1=a[i];if (a[i].compareTo(s2)<0) s2=a[i];}System.out.println(s1+"\t"+s2);}}worker cadre1.已知一个数值矩阵A为,另一个矩阵B为,求出A与B的乘积矩阵C[3][4]并输出出来,其中C中的每个元素C[i][j]等于。