You are on page 1of 2

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

學號 : 姓名 : 分數 :
1 請寫出下列程式的輸出結果 (20%)
(a). 參數傳遞 (10%) (b). 傳回值 (10%)
class Test1 { class Test2 {
public static void main(String args[]) { public static void main(String args[]) {
int a[]={ 2, 1, 3}; int y = f(3);
System.out.println("a[0]="+a[0]); System.out.println("y="+y);
intAdd(a[0]); y = f(y);
System.out.println("a[0]="+a[0]); System.out.println("y="+y);
arrayAdd(a, 0); f(y);
System.out.println("a[0]="+a[0]); System.out.println("y="+y);
arrayAdd(a, 1); y=f(y);
System.out.println("a[1]="+a[1]); System.out.println("y="+y);
intAdd(a[1]); y=f(5);
System.out.println("a[1]="+a[1]); System.out.println("y="+y);
} }
public static void intAdd(int x) {
x++; public static int f(int x) {
} return x*3;
public static void arrayAdd(int y[], int i) { }
y[i]++; }
}
}
輸出結果 輸出結果
a[0]=2 y=9
a[0]=2 y=27
a[0]=3 y=27
a[0]=2 y=81
a[0]=2 y=15

2 單行程式題 (20%)
(a) 請宣告一個可容納 100 個字元的陣列。 (不用設 (b) 請宣告一個可容納 1000 個字串的陣列。 (不用設初值)
初值)

char a[]=new char[100]; String a[]=new String[1000];

(c) 請宣告一個一維陣列 days 用來儲存一年當中每 (d) 請宣告一個二維陣列用來儲存矩陣 5 0 0 (要設初值)。


個月份的天數 (假設是平年,非閏年) (要設初值) 030
001

int days[] = int a[][] = {{5,0,0},{0,3,0},{0,0,1}};


{31,28,31,30,31,30,31,31,30,31,30,31};

1
95 學年 上學期 金門技術學院 資管系 夜二技 一年級 程式設計 期末考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
3 陣列 (20%)
(a) 請宣告一個 9*9 的二維陣列,並篆寫一個具有 (b) 請寫出一個可以將兩個整數陣列相減的函數,並寫出其
兩層 for 迴圈的函數將九九乘法表設定到對應的 測試的主程式。
格子中。
static void sub(int a[], int b[], int c[])
static void init99(int a[][]) { {
for (int i=0; i<9; i++) for (int i=0; i<a.length; i++)
for (int j=0; j<9; j++) c[i] = a[i]-b[i];
a[i][j] = (i+1)*(j+1); }
}

4 函數 (20%)
(a) 請寫出一個遞迴函數可以計算下列公式中的 (b) 請篆寫一個函數 int min(int x, int y), 可以傳回 x, y
f(n): 中最小的那個值。
f(1) = 0
f(n) = 2*f(n-1)+1
並篆寫一主程式印出 f(5) 的值以進行測試。 static int min(int x, int y)
{
static int f(int n) if (x<y)
{ return x;
if (n==1) else
return 0; return y;
else }
return 2*f(n-1)+1;
}

5 排序搜尋 (20%)
(a) 請以泡沫排序法寫出一個函數可將整數陣列由大 (b) 請寫出一個函數可以找出整數陣列中某元素的位置並傳
排到小。 回其索引值。

static int sort(int a[]) static int find(int a[], int x)


{ {
for (int i=0; i<a.length; i++) for (int i=0; i<a.length; i++)
for (int j=i+1; j<a.length; j++) if (a[i] < x) return i;
if (a[i] < a[j]) return -1;
{ }
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}

You might also like