You are on page 1of 2

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

學號 : 姓名 : 分數 :
1. 填空題 (函數的基礎) (30%)
public class Exam1 { import java.util.Vector; public class Exam3 {
public static void main(String args[]) { public class Exam2 { public static void main(String args[]) {
int p1 = power(3, 4); public static void main(String args[]) { int x = 3;
System.out.println("p1 = "+p1); Vector v = new Vector(); System.out.println("x="+x);
} String[] a = {"p", "q", "r", "s"}; callByValue(x);
for (int i=0; i<a.length; i++) System.out.println("x="+x);
static int power(int x, int n) { v.add(a[i]); int [] a = {3, 4};
int p = 1; System.out.println("v = "+v); System.out.println("a[0]="+a[0]);
for (int i=0; i<n; i++) { v.set(2, "x"); callByAddress(a);
System.out.println("p = "+p); System.out.println("v = "+v); System.out.println("a[0]="+a[0]);
p = p * x; v.remove(1); }
} System.out.println("v = "+v);
return p; double d1=Double.parseDouble("9.0"); static void callByValue(int x) {
} double d2 = Math.sqrt(d1); x = 5;
} System.out.println("d2 = "+d2); }
Double d3 = new Double(d2);
v.add(1, d3); static void callByAddress(int[] a) {
System.out.println("v = "+v); a[0] = 5;
} }
} }
Exam1 的輸出 : Exam2 的輸出 : Exam3 的輸出 :
p= v= x=
p= v= x=
p= v= a[0] =
p= d2 = a[0] =
p1 = v=

2. 簡單函數
請撰寫一函數 void star(int k) 可以輸出 k 個 * 字串 請利用上題,撰寫一函數 void starTriangle(int n) 可以輸
(10%) 出 * 所組成的三角形 (10%) (範例 : starTriangle(3) 會輸
(範例 : star(3) 會輸出 *** ) 出
*
**
*** )
金門技術學院 資管科 日 四技一年級 程式設計 93 學年上學期 期中考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
3. 數學函數
請撰寫一函數 boolean isTimes(int n, int k) 可以檢查 n 請撰寫一函數 boolean isPowerOf2(int n) 可以檢查 n 是否
是否為 k 的倍數,若是則傳回 true, 不是則傳回 false. 為 2 的次方 (註:2 的次方包含 2, 4, 8, 16, 32, ….) (10%)
(10%)

4. 陣列函數
請寫出一個函數 void add(int[] a, int[] b, int[] c) 可將一 請寫出一個函數 void delete(String[] a, int i) 可以刪除一
維陣列 a , b 相加後放入 c 陣列中 (假設這 a,b,c 都相同 維字串陣列 a 的第 i 個元素. (10%) (ex : b = {“x1”, “x2”,
大小). (10%) (ex : a = {1, 2, 3} , b = {4, 5, 6} , c = {0, 0, 0} “x3”, “x4” } , 則當 delete(b, 2) 呼叫完後,陣列將變成
則當 add(a,b,c) 呼叫完畢後,會輸出 {5, 7, 9} ) {“x1”, “x2”, “x4”, null })

5. 遞迴
(10%) 請寫出一個遞迴函數 f 可計算 n 的 k 次方,其遞
迴公式如下 :
f(n, 0) = 1
f(n, k) = n * f(n, k-1)
以下是一呼叫範例 :
int x = f(2, 3);
System.out.println(“f(2,3)=”+x);
結果會印出 :
f(2,3)=8

(請將答案寫於右側格中.)

(意見調查) 請寫下您對本學期課程的意見,您認為本學期的教法有甚麼缺點,哪些章節您特別不懂呢 ? (不計


分).

You might also like