}
}
int a [] = { 11,22,33,44,55,66,77,88,99 }; for (i = 0 ; i <= a.length/2 ; i ++)
System.out.print(a[i]+a[a.length-i-1]+\
8.Java不直接支持多继承,但可以通过 实现多继承。7章1节1目 92页
三、程序分析题(每题4分,共20分)
1.下列程序能否编译运行,如果能编译运行,运行结果是什么?如果不能编译,为什么?
编译出错,因为switch后的表达式类型不可以是String类型。3章3节2目 35页
public class TestSwitch{
public static void main(String args[]){ String s=\
switch(s){
case \break;
case \break;
default:System.out.printf(\
break;
case \break; }
}
}
2.下面程序中,在第3行和第8行中,那些行将引起错误?为什么?
第8行有错误,变量name在父类中是私有变量,不可以在子类中访问。7章1节2目 93页
1) class Parent {
2) private String name; 3) public Parent(){} 4) }
5) public class Child extends Parent { 6) private String department; 7) public Child() {}
8) public String getValue(){ return name; } 9) public static void main(String arg[]) { 10) Parent p = new Parent(); 11) } 12) }
3.下面程序能否正确编译或输出?如果能,输出结果是什么?如果不能,为什么?
能正确编译输出BaseSub 7章2节2目101页
class Base { public Base() {
System.out.println(\ } }
public class Sub extends Base {
public static void main(String args[]) { Sub s = new Sub(); }
public Sub () {
System.out.println(\ } }
4.下列程序能否正确编译或输出?如果能,输出结果是什么?如果不能,为什么?
不能编译,因类返回值变量i未正确定义(i定义在for循环内) 6章1节4目79页
class Base {
public static void main(String args[]) { Base b = new Base();
System.out.println(b.myMethod()); }
public int myMethod() {
int intarray[] = new int[10];
for (int i = 0; i < intarray.length; i++) System.out.println(intarray[i]); return i; } }
5.下面程序的运行结果是____________________ 。acd do you come her? How are you when? 5章6节4目 74页
public class TestStringBuffer{
public static void main (String[ ]args){ StringBuffer s1=new StringBuffer( );
StringBuffer s3=new StringBuffer(\char array[ ]={'a','c','d'}; s1.append(\s3.append(\System.out.println(array); System.out.println(s1); System.out.println(s3); }
}
四、问答题(每题4分,共12分)
1.什么是类的多态性?7章2节1目 99页
多态性指同一名字的方法可以有多种实现,即不同的方法体,程序执行时,系统根据调用方
法的参数或调用方法的对象自动选择一个方法执行。
2.什么是类?其成员分为哪两部分?6章1节1目 76页
类是对一个或几个相似对象的描述。类的成员一般分为状态(属性)和行为。用变量来描述类的状态,用方法来实现类的行为。
3.用final修饰的数据成员或方法有什么特点? 7章3节102页
如果一个类的数据成员用final修饰,则这个数据成员就被限定为最终数据成员。它的值在程序执行过程中是不能改变的。
用final修饰的方法称为最终方法。如果一个类的某个方法被final所限定,则该类的子类就不能覆盖父类的方法。
五、编程题(第1,2,3题10分,第4题15分)
1. 设计一个求长方体的体积和表面积的类Cube,包括以下属性和方法。6章1节3目 77页
l1:长方体的长; w1:长方体的宽; h1:长方体的高;
Cube(double l1, double w1 ,double h1):构造方法,创建对象的同时为属性l1,w1,h1赋初值。
vol():成员方法,计算体积; sarea():成员方法,计算表面积。
class Cube{
double l1,w1,h1;
Cube(double l1, double w1, double h1)
{this.l1=l1;this.w1=w1;this.h1=h1;}
double sarea(){
return 2*(l1*w1+l1*h1+w1*h1);} return l1*w1*h1;}
double vol(){
public static void main(String args[]){ } }
Cube c=new Cube(2,3,4); System.out.println(c.sarea()); System.out.println(c.vol());
2. 编程求各分段函数的值,分段函数如附图所示,通过命令行参数输入一个m值,输出n值。3章3节1目 32页
4n+6 (n<0) 0 (n=0)
3n?7 (n>0)
m=
class Subsection{
public static void main(String[] args) {
double n=Integer.parseInt(args[0]); double m; if (n<0)
m=4*n+6;
else if(n==0)
m=0;
m=Math.sqrt(3*n+7);
else
System.out.println(\}
}
3.定义一个CMath类,用重载的add和sub方法处理int和float两种类型数据的两个数的加减运算。 7章2节1目99页
class CMath { }
int add(int i,int j){return i+j;} float add (float i,float j){return i+j;} int sub(int i,int j){return i-j;} float sub (float i,float j){return i-j;}
4.在程序中任意给定m行n列的矩阵,矩阵中的元素为整型,找出其中的最小值所在的行和列,输出该值和行、列位置。5章2节1目57页
class Matrix { }
public static void main(String[] args) }
{
int arr[][]={{3,6,9,-3,6}, {7,9,-18,6,7}, {12,15,2,1,1}}; int x=0,y=0; int min1=arr[0][0];
for (int i=0;i
for(int j=0;j
if (arr[i][j] min1=arr[i][j];x=i;y=j; System.out.println(min1+\