You are on page 1of 3

金門技術學院 資管系 日四技一年級 程式設計 94 上 學期 期末考 出題者 : 陳鍾誠

學號 : 姓名 : 分數 :
1. 填充題 (20%)
public class ParamTest { class ObjTest {
public static void main(String args[]) { static int x = 0;
int x = 10; int y = 0;
System.out.println("x="+x);
static void addX() { x++; }
modifyValue(x); void addY() { y++; }
System.out.println("x="+x);
int [] a = {10, 5}; public static void main(String[] args) {
ObjTest o1 = new ObjTest();
System.out.println("a[0]="+a[0]); ObjTest o2 = new ObjTest();
modifyArray(a); o1.addX();
System.out.println("a[0]="+a[0]); o1.addY();
System.out.println("x="+o1.x);
System.out.println("a[1]="+a[1]);
System.out.println("y="+o1.y);
} o2.addX();
o2.addY();
static void modifyValue(int x) { System.out.println("x="+o2.x);
System.out.println("y="+o2.y);
x += 5; System.out.println("x="+o1.x);
} }
}
static void modifyArray(int[] a) {
a[0] += 5;
}
}
ParamTest 的輸出 : ObjTest 的輸出 :
x= x=
x= y=
a[0]= x=
a[0]= y=
a[1]= x=

2.函數 (20%)
(1) 請以廻圈的方式定義一個函數 static int power2(int (2) 請以遞回的方式定義一個函數 static int power2(int k),
k),可以計算 2 的 k 次方 2k 後傳回。 可以計算 2 的 k 次方 2k 後傳回,其遞回公式如下。
power2(1) = 2
power2(k) = power2(k-1)*2;

static int power2(int k) { static int power2(int k) {

} }

1
金門技術學院 資管系 日四技一年級 程式設計 94 上 學期 期末考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
3. 直線 (10%)
右列類別代表一條直線,包含兩個端點 (x1,y1) class Line {
(x2,y2)。 double x1,y1,x2,y2;

(1) 請寫一個建構函數 Line(double x1, double y1,


double x2, double y2) 以設定該兩端點的初值。

(2) 請寫一個函數 double length() 可以算出該線段的



 度。

4. 三度空間的物件 (20%)

以下宣告一個代表三度空間物體的類別 Object3D, class Test {


並繼 // (1). 請填入程式碼。
承該類別後宣告一個球體類別與一個立方體類別。 public static double sum(Object3D o[]) {

class Object 3D {
double volume() { return 0.0; }
}
class Ball3D extends Object3D {
double r;
Ball3D(double pr) { r = pr ; }
double volume() { return (4.0/3.0) * 3.14 * r * r *r ; }
} }
class Cube3D extends Object3D { // (2). 請填入程式碼。
double w; public static void main(String[] args) {
Cube3D(double pw) { w = pw ; }
double volume() { return w * w *w ; }
}

請填入右列主程式中的空白段:

(1) 請寫一個 sum 函數計算所有傳入之三度空間物


體的總體積。

(2) 請寫一個主程式,宣告一個 Object3D 陣列,該


陣列一個半徑為 2.0 的球體與一個長寬高都為
1.0 的立方體,接著利用 sum 計算出其總體積後 }
印出。 }

2
金門技術學院 資管系 日四技一年級 程式設計 94 上 學期 期末考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
5. 物件 (20%)

請定義一個日期的類別 Date ,其特性如下:

(1) 包含年(Year)、月(month)、日(day) 等三個欄位


,該表示法用西元的方式記錄之。

(2) 定義一建構函數 Date(int y, int m, int d) 可設定初


值。

(3) 定義一函數 String toString() 可將該表式法轉為字


串傳回。

(4) 定義一函數 toROC() 將該年月日轉成民國的記年


方式 (將西元年減掉 1911 即為民國年)。

以下是上述函數的一個呼叫範例,僅供參考。

class DateTest {
public static void main(String[] args) {
Date d = new Date(2005, 4, 19);
System.out.println(”d.toString()=”+d.toString());
System.out.println(“d.toROC()=”+d.toROC());
}
}

輸出:

d.toString()=2005/4/19
d.toROC()=民國 94 年 4 月 19 日