Professional Documents
Culture Documents
學號 : 姓名 : 分數 :
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= 10 x= 1
x= 10 y= 1
a[0]= 10 x= 2
a[0]= 15 y= 1
a[1]= 5 x= 2
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;
1
金門技術學院 資管系 日四技一年級 程式設計 94 上 學期 期末考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
3. 直線 (10%)
右列類別代表一條直線,包含兩個端點 (x1,y1) class Line {
(x2,y2)。 double x1,y1,x2,y2;
Line(double x1, double y1, double x2, double y2) {
(1) 請寫一個建構函數 Line(double x1, double y1, this.x1 = x1 ; this.y1 = y1 ; this.x2=x2 ; this.y2=y2 ;
double x2, double y2) 以設定該兩端點的初值。 }
double length() {
double dx = x2-x1 ;
(2) 請寫一個函數 double length() 可以算出該線段的 double dy = y2-y1 ;
長 return Math.sqrt(dx*dx+dy*dy) ;
度。 }
}
4. 三度空間的物件 (20%)
2
金門技術學院 資管系 日四技一年級 程式設計 94 上 學期 期末考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
5. 物件 (20%)
class Date {
請定義一個日期的類別 Date ,其特性如下: int year, month, day;
public Date(int y, int m, int d) {
(1) 包含年(Year)、月(month)、日(day) 等三個欄位 year = y; month = m; day = d;
,該表示法用西元的方式記錄之。 }
public String toString() {
(2) 定義一建構函數 Date(int y, int m, int d) 可設定初 return year+"/"+month+"/"+day;
值。 }
public String toROC() {
(3) 定義一函數 String toString() 可將該表式法轉為字 return "民國"+(year-1911)+"年"+month
串傳回。 +"月"+day+"日";
}
(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 日