System.out.println( "r5 = " + ((a == 3)? (b == 3)? a: (c == 5)? b: c : d));
9
}
10
}
(20 分)
二、填入下列Java 程式的空格(不可是常數),使該程式能夠印出陣列dset 中所有值
在0 至100 的數的平均值。(請在試卷上作答)
指出此程式在何種狀況下會產生嚴重錯誤。只能修改一個敘述,且不能新增敘述
或刪除原有敘述,使程式能克服該項錯誤。
class javaTest
{public static void main(String args[])
{int dset[] = {90,30,-5,70,95,110,80};
int c = 0; int s = 0;
for (int i = 0; i <
(1)
; i++)
{if (dset[i] <= 100
(2)
dset[i] >= 0)
{c++;
s+= dset[i];
}
}
System.out.println( "Av = "+(s/c));
}
}
(20 分)
97 年公務人員特種考試警察人員考試及
97 年公務人員特種考試關務人員考試試題
等
別:四等考試
類
科:資訊處理
科
目:程式語言概要
全一張
(背面)
三、何謂資訊隱藏(Information hiding)?
試以建立堆疊(Stack)抽象資料結構為例,說明Java 或C++(任擇一種)資訊
隱藏之作法。
(20 分)
四、寫出執行下列C++程式所印出的結果:
#include <iostream>
using namespace std;
int binsearch(int * dset, int ib, int ie, int data)
{cout << "search: ib = " << ib << ", ie = " << ie << endl;
int ii;
if (ib > ie)
{ii = -1; } else {
ii = (ib + ie) / 2;
if (dset[ii] > data)
{ii = binsearch(dset, ib, ii-1, data);
} else if (dset[ii] < data) {
ii = binsearch(dset, ii+1, ie, data);
};
};
cout <<"search ib = "<<ib<<", ie = "<<ie<<"
return: "<<ii<<endl;
return ii;
}
int main()
{int dset[] = {1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33};
cout << "Final data 13 is at: " << binsearch(dset,0,15,13) << endl;
cout << "Final data 20 is at: " << binsearch(dset,0,15,20) << endl;
return 0;
}
(20 分)
五、如果希望執行下列C++程式印出的結果是:
x = 3
y = 5
寫出爲何下列程式不能達到目的的理由。
只能修改一個敘述,且不能新增敘述或刪除原有敘述,使程式能印出正確的結果。
void swap(int a, int b)
{int temp = a;
a = b;
b = temp;
return;
}
int main()
{int x = 5;
int y = 3;
swap(x,y);
cout << "x = " << x << "
y = " << y << endl;
return 0;
}
(20 分)