
【4】27.有關 C++程式碼的執行結果,下列何者正確?
int b, i;
for (b = 1, i = 0; i < 100; i++) b = b * 3 % 7;
• b 的值變成 1 ‚ b 的值變成 2 ƒ b 的值變成 3 „ b 的值變成 4
【4】28.下列哪個情況會讓 C運算式(x >= 10) || (x > 9) && (y / x <= 5)的值為 0?
• x 的值是 10, y的值是 50 ‚ x 的值是 9.5, y的值是 45
ƒ x 的值是 9.5, y的值是-45 „ x 的值是 9, y的值是 40
【3】29.對於下列 Java 程式碼的執行結果,何者正確?
int a = 60, b = 15, c = 30;
if (a <= 30) c = a;
if (b >= 30) c = b;
else c = a - b;
• c 的值變成 15 ‚ c 的值變成 30 ƒ c 的值變成 45 „ c 的值變成 60
【3】30.若我們想使用 Java 語言對兩個整數變數 a和b進行位元互斥或(bitwise XOR)運算,最直接的方法是寫
a ^ b。下列何者在任何情況下都可以用來取代 a ^ b?
• (a | b) ‚ (~a | ~b) ƒ (~a ^ ~b) „ (~a & ~b)
【3】31.假設 rand()函數會回傳一個 0到整數常數 RAND_MAX 之間的整數亂數,下列哪一個 C語言運算式
可以產生隨機擲兩個公正骰子的點數和?
• (rand() % 12) + 1 ‚ (rand() % 6) * 2 + 1
ƒ ((rand() % 6) + 1) + ((rand() % 6) + 1)
„ (rand() / RAND_MAX * 6 + 1) + (rand() / RAND_MAX * 6 + 1)
【1】32.下列的 C++程式碼總共宣告了三個同名變數 x:
static int x = 1;
int main()
{
int x = 2;
for (int i = 1, x = 3; i < 5; i++) {
x *= i;
}
cout << x << endl;
return 0;
}
有關前述這段程式碼的敘述,何者正確?
•程式會印出 2 ‚程式會印出 72
ƒ無法編譯,因為第一個 x和第二個 x不能同時存在
„無法編譯,因為 for 迴圈內不能宣告新的區域變數
【3】33.有關 Java 程式碼的輸出字串,下列何者正確?
String a = "bodhisattva";
a = a.substring(5,7);
char b = a.charAt(1);
System.out.println(b+a);
• sis ‚ sisa ƒ asa „ asat
【3】34.下列哪個 Java 語言的基本型別,使用最多的記憶體空間?
• char ‚ float ƒ long „ int
【4】35.下列哪一個 C語言的敘述可以把值二千三百萬存到整數變數 population?
• population = 23E7; ‚ population = 23E+7;
ƒ population = 0x23E+6; „ population = 2.3e7;
【2】36.在C++語言中宣告字串類別變數 string twolines = "FirstnSecondn";則twolines.length()會傳回什麼值?
• 2 ‚ 13 ƒ 14 „ 15
【2】37. C 語言沒有下列哪一種迴圈語法?
• for 迴圈 ‚ foreach 迴圈 ƒ while 迴圈 „ do while 迴圈
【3】38. Java 的抽象類別(abstract class)一定是:
•介面(interface) ‚沒有定義方法(method)的類別
ƒ至少有一個方法是抽象的類別 „所有方法都是抽象的類別
【3】39.下列何者不是物件導向程式設計的特性?
•封裝(Encapsulation) ‚多型(polymorphism) ƒ事件(event) „繼承(Interitance)
【3】40.有關 C語言 break 指令之用法,下列敘述何者正確?
• break 和continue 效果相同,可以互換 ‚ break 可以用於 switch 語法但不能用於迴圈之中
ƒ break 可以用於 switch 語法或迴圈之中 „ break 可以用於迴圈之中但不能用於 switch 語法
【4】41.用Visual Basic 語言開啟檔案通常如下例所示:
Dim f As FileStream = New FileStream("test.txt", FileMode.Open, FileAccess.ReadWrite)
有關 FileMode 提供的幾種模式,下列敘述何者錯誤?
• OpenOrCreate 會先嘗試開啟現有檔案,若檔案不存在則創造新檔案
‚ Append 做的事跟 OpenOrCreate 一樣,但是會把寫入點指到檔案結尾處
ƒ Truncate 會把既有檔案的內容清除
„ Open 會開啟檔案且不讓其他程序同時開啟
【1】42.在Visual Basic 中,一個敘述太長需要拆成多行時該怎麼做?
•在敘述未完的行末加上底線字元 ‚在敘述未完的行末加上斜線字元
ƒ在敘述未完的行末加上字元& „不用特別做什麼,編譯器會自動判斷敘述在哪一行結束
【2】43.下列 Visual Basic 程式碼的空白處應該用什麼修飾字才能讓swap子程序執行後可以把兩個參數的值互換?
Sub swap(___ x As Integer, ___ y As Integer)
Dim temp As Integer
temp = x
x = y
y = temp
End Sub
• ByVal ‚ ByRef ƒ Optional „ Overridable
【4】44.有關 C++的註解語法的說明,下列何者錯誤?
•可以使用//來加入單行註解 ‚提供開頭為/*而結尾為*/的註解
ƒ可以在//註解內部加入另一個//註解 „可以在/* … */註解內部加入另一個/* … */註解
【1】45.在Visual Basic 語言中,End 關鍵字通常搭配其他關鍵字,用來表示一個區段的結束,如 End Function。
然而下列哪一個組合是不存在的?
• End Do ‚ End Module ƒ End Sub „ End If
【4】46. C++的for 迴圈的判斷敘述包含三個部分,中間用分號隔開,例如 for (i = 0; i < 10; i++) 。在使用時
這三個部分哪一個是絕對不能省略的?
•第1部分 ‚第2部分 ƒ第3部分 „沒有絕對不能省略的部分
【3】47.如果在 C++程式中,不小心把條件式 while (x == 1)寫成 while (x = 1)會發生什麼事?
•會發生編譯錯誤 ‚程式會當掉
ƒ一定會進入 while 迴圈,且判斷式永遠成立,也就是一定會進入無窮迴圈
„不會進入 while 迴圈,但是 x的值會被改寫為 1
【1】48.右列 Java 敘述會輸出什麼字串? System.out.print(-2 + " " + 7 + 2 + " ");
• "-2 72 " ‚ "-2 9 " ƒ " 7 " „會出現編譯錯誤
【3】49.在Java 語言中 Math.sqrt()方法可以計算一個數的平方根,請問下列程式碼編譯執行後會列印出什麼?
double ms = -25;
System.out.println( Math.sqrt(ms));
• 5 ‚ -5 ƒ NaN „ -Infinity
【4】50.有關 Java 程式碼的敘述,下列何者錯誤?
class cx {
private final static int height = 170;
}
• final 代表 height 是一個常數 ‚ private 代表只有 cx 類別內的方法可以取用 height
ƒ static 代表 height 只有一個,給所有 cx類別的變數共同使用
„ Java 提供的圓周率 Math.PI 也是同樣用 private final static 定義的