95 學年 上學期 金門技術學院 資管系 夜二技 一年級 程式設計 期末考

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

出題者 : 陳鍾誠

(b). 傳回值 (10%)
class Test2 {
public static void main(String args[]) {
int y = f(3);
System.out.println("y="+y);
y = f(y);
System.out.println("y="+y);
f(y);
System.out.println("y="+y);
y=f(y);
System.out.println("y="+y);
y=f(5);
System.out.println("y="+y);
}
public static int f(int x) {
return x*3;
}
}

輸出結果
y=9
y=27
y=27
y=81
y=15

單行程式題 (20%)

(a) 請宣告一個可容納 100 個字元的陣列。 (不用設
初值)
char a[]=new char[100];

(c) 請宣告一個一維陣列 days 用來儲存一年當中每
個月份的天數 (假設是平年,非閏年) (要設初值)

(b) 請宣告一個可容納 1000 個字串的陣列。 (不用設初值)

String a[]=new String[1000];

(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 的二維陣列,並篆寫一個具有

兩層 for 迴圈的函數將九九乘法表設定到對應的
格子中。

出題者 : 陳鍾誠

(b) 請寫出一個可以將兩個整數陣列相減的函數,並寫出其
測試的主程式。
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++)
a[i][j] = (i+1)*(j+1);

c[i] = a[i]-b[i];
}

}

4

函數 (20%)

(a) 請寫出一個遞迴函數可以計算下列公式中的
f(n):
f(1) = 0

(b) 請篆寫一個函數 int min(int x, int y), 可以傳回 x, y
中最小的那個值。

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;
else

return y;
}

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;
}
}

2

Sign up to vote on this title
UsefulNot useful