lawpalyer logo

資訊處理 110 年程式設計考古題

民國 110 年(2021)資訊處理「程式設計」考試題目,共 4 題 | 資料來源:考選部

0 題選擇題 + 4 題申論題

請問下列程式碼之輸出結果為何?(25 分) #include <stdio.h> #include <stdlib.h> int function(int n) { if (n < 10) return n; int sum = 0; while (n > 0) { sum += n % 10; n /= 10; } return function(sum); } int main() { int n = 12345; int output; output = function(n); printf("output%d\n", output); return 0; }
假設一堆疊(Stack)的推入(Push)順序為:123、234、345、456、567, 並且途中可以隨意彈出(Pop)取值,則下列彈出(Pop)取值之順序有 無可能出現? 345、567、456、234、123 若有可能,請依序將推入(Push)與彈出(Pop)的步驟列出。若無可能, 請解釋原因為何?(25 分)
請問下列程式碼之輸出結果以及該程式碼的目的為何?(25 分) #include "stdio.h" int f(int a, int b) { if(a%b == 0) return b; return f(b,a%b); } int main(void) { printf("f(21,9) = %d\n",f(21,9)); printf("f(6,44) = %d\n",f(6,44)); return 0; }
請問下列程式碼之輸出結果為何?(25 分) #include <stdio.h> #include <stdlib.h> void function(int a, int b) { printf("a=%d,b=%d\n", a, b); for (i = 0; i < 8; i++) { if (!(a > 10 && b < 10) && (a <= 10 || b >= 10)) { a = a + 1; b = b - 1; printf("a=%d,b=%d\n", a, b); } } } int main() { int x = 5; int y = 10; function(x, y); return 0; }