wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

APCS 0430 exercise

Total questions: 31

Worksheet time: 2hrs 33mins

Name
Class
Date
1.

1. 給定一個1x8的陣列AA={0,2,4, 6, 8, 10, 12, 14}。右側函式 Search(x) 真正目的是找到 A 之中大於 x 的最小值。然而,這個函式有誤。請問下列哪個函式呼叫可測出函式有誤?

a)

Search(-1)

b)

Search(0)

c)

Search(10)

d)

Search(16)

2.

2. 給定函式 A1()A2() F() 如下,以下敘述何者有誤?

a)

A1(5) 印的 '*' 個數比 A2(5) 多

b)

A1(13) 印的 '*' 個數比 A2(13) 多

c)

A2(14) 印的 '*' 個數比 A1(14) 多

d)

A2(15) 印的 '*' 個數比 A1(15) 多

3.

3. 右側 F()函式回傳運算式該如何寫,才會使得 F(14) 的回傳值為 40?

a)

n * F(n-1)

b)

n + F(n-3)

c)

n - F(n-2)

d)

F(3n+1)

4.

4. 右側函式兩個回傳式分別該如何撰寫,才能正確計算並回傳兩參數 a, b 之最大公因數 (Greatest Common Divisor)?

a)

a, GCD(b,r)

b)

b, GCD(b,r)

c)

a, GCD(a,r)

d)

b, GCD(a,r)

5.

5. 若 A 是一個可儲存 n 筆整數的陣列,且資料儲存於A[0]~A[n-1]。經過右側程式碼運算後,以下何者敘述不一定正確?

a)

pA陣列資料中的最大值

b)

qA陣列資料中的最小值

c)

q<p

d)

A[0]<=p

6.

6. 若 A[][] 是一個 MxN 的整數陣列,右側程式片段用以計算 A 陣列每一列的總和, 以下敘述何者正確?

a)

第一列總和是正確,但其他列總和不一定正確

b)

程式片段在執行時會產生錯誤 (run-time error)

c)

程式片段中有語法上的錯誤

d)

程式片段會完成執行並正確印出每一列的總和

7.

7. 若以 B(5,2)呼叫右側 B()函式,總共會印出幾次 “base case” ?

a)

1

b)

5

c)

10

d)

19

8.

8. 給定右側程式,其中 s 有被宣告為全域變數,請問程式執行後輸出為何?

a)

1,6,7,7,8,8,9

b)

1,6,7,7,8,1,9

c)

1,6,7,8,9,9,9

d)

1,6,7,7,8,9,9

9.

9. 右側 F()函式執行時,若輸入依序為整數 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,請問 X[] 陣列的元素值依順序為何?

a)

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

b)

2, 0, 2, 0, 2, 0, 2, 0, 2, 0

c)

9, 0, 1, 2, 3, 4, 5, 6, 7, 8

d)

8, 9, 0, 1, 2, 3, 4, 5, 6, 7

10.

10. 若以 G(100)呼叫右側函式後,n 的值為何?

a)

25

b)

75

c)

150

d)

250

11.

11. 若 A[1]A[2],和 A[3]分別為陣列 A[]的三個元素(element),下列那個程式片段可以將 A[1] A[2]的內容交換?

a)

A[1] = A[2];

A[2] = A[1];

b)

A[3] = A[1];

A[1] = A[2];

A[2] = A[3];

c)

A[2] = A[1];

A[3] = A[2];

A[1] = A[3];

d)

以上皆可

12.

12. 若函式 rand()的回傳值為一介於 0 和 10000 之間的亂數,下列那個運算式可產生介於 100 和 1000 之間的任意數(包含 100 和 1000)?

a)

rand() % 900 + 100

b)

rand()%1000+1

c)

rand() % 899 + 101

d)

rand() % 901 + 100

13.

13. 右側程式片段無法正確列印 20 次的"Hi!",請問下列哪一個修正方式仍無法正確列印 20 次的"Hi!" ?

a)

需要將 i<=100 和 i=i+5 分別修正為 i<20 和 i=i+1

b)

需要將 i=0 修正為 i=5

c)

需要將 i<=100 修正為 i<100;

d)

需要將 i=0 和 i<=100 分別修正為 i=5 和 i<100

14.

14. 若以 F(15)呼叫右側 F()函式,總共會印出幾行數字?

a)

16行

b)

22行

c)

11行

d)

15行

15.

15. 給定右側函式 F(),執行 F()時哪一行程式碼可能永遠不會被執行到?

a)

a = a + 5;

b)

a = a + 2;

c)

a = 5;

d)

每一行都執行得到

16.

16. 給定右側函式 F(),已知 F(7)回傳值為 17,且 F(8)回傳值為 25,請問 if 的條件判斷式應為何?

a)

a % 2 != 1

b)

a * 2 > 16

c)

a + 3 < 12

d)

a * a < 50

17.

17. 給定右側函式 F()F()執行完所回傳的 x 值為何?

a)

n(n+1)log2nn\left(n+1\right)\sqrt{\lfloor\log_2n\rfloor}

b)

n2(n+1)2\frac{n^2\left(n+1\right)}{2}

c)

(n(n+1)log2n+1)2\frac{\left(n\left(n+1\right)\lfloor\log_2n+1\rfloor\right)}{2}

d)

n(n+1)2\frac{n\left(n+1\right)}{2}

18.

18. 右側程式執行完畢後所輸出值為何?

a)

12

b)

24

c)

16

d)

20

19.

19. 右側程式擬找出陣列 A[]中的最大值和最小值。不過,這段程式碼有誤,請問 A[]初始值如何設定就可以測出程式有誤?

a)

{90, 80, 100}

b)

{80, 90, 100}

c)

{100, 90, 80}

d)

{90,100, 80}

20.

20. 小藍寫了一段複雜的程式碼想考考你是否了解函式的執行流程。請回答程式最後輸出的數值為何?

a)

70

b)

80

c)

100

d)

190

21.

21. 若以 F(5,2)呼叫右側 F()函式,執行完畢後回傳值為何?

a)

1

b)

3

c)

5

d)

8

22.

22. 若要邏輯判斷式 !(X1 || X2)計算結果為真(True),則 X1 X2 的值分別應為何?

a)

X1為False,X2為False

b)

X1為True,X2為True

c)

X1為True,X2為False

d)

X1為False,X2為True

23.

23. 程式執行時,程式中的變數值是存放在

a)

記憶體

b)

硬碟

c)

輸出入裝置

d)

匯流排

24.

24. 程式執行過程中,若變數發生溢位情形,其主要原因為何?

a)

以有限數目的位元儲存變數值

b)

電壓不穩定

c)

作業系統與程式不甚相容

d)

變數過多導致編譯器無法完全處理

25.

25. 若 a, b, c, d, e 均為整數變數,下列哪個算式計算結果與 a+b*c-e 計算結果相同?

a)

(((a+b)*c)-e)

b)

((a+b)*(c-e))

c)

((a+(b*c))-e)

d)

(a+((b*c)-e))

26.

8. 一個費式數列定義第一個數為0, 第二個數為1之後

的每個數都等於前兩個數相加, 如下所示:

0、1、1、2、3、5、8、13、21、34、55、89...。

右列的程式用以計算第N個(N>=2)費式數列的數值

請問(a)與(b)兩個空格的敘述(statement)應該為

何?

a)

(a) f[i] = f[i-1] + f[i-2]

(b) f[N]

b)

(a) a = a + b

(b) a

c)

(a) b = a + b

(b) b

d)

(a) f[i] = f[i-1] + f[i-2]

(b) f[i]

27.

17. 右側程式片段主要功能為:輸入六個整數,

檢測並印出最後一個數字是否為六個數字中最小的

值。

然而,這個程式是錯誤的。

請問以下哪一組測試資料可以測試出程式有誤?

a)

11 12 13 14 15 3

b)

11 12 13 25 28

c)

23 15 18 20 11 12

d)

18 17 19 24 15 16

28.

5.函數f定義如下,如果呼叫f(1000),

指令sum=sum+i被執行的次數最接近下列何者?

a)

1000

b)

3000

c)

5000

d)

10000

29.

a)

1

b)

2

c)

3

d)

4

30.

23. 請問右側程式,執行完後輸出為何?

a)

2417851639229258349412352 7

b)

68921 43

c)

65537 65539

d)

134217728 6

31.

20. 右側為一個計算n階層的函式,請問該如何

修改才會得到正確的結果?

a)

(A)第2行,改為infc=ni

b)

(B)第3行,改為if(n>0)(

c)

(C)第4行,改為fac=n*fun(n+1);

d)

(D)第4行,改為fac=fac*fun(n-1);