資訊處理 105 年程式設計概要考古題
題目為考試當年公告版本,實務標準請以現行規範為準。
請寫一個由兩個函式構成的C 語言程式,舉例說明何謂區域變數與全域變數。(20 分)
請寫出下列程式的輸出:(10 分) #include <stdio.h> #include <stdlib.h> struct POINT { int x; int y; }; struct POINT compute(struct POINT A, struct POINT B); int main() { struct POINT X = {4, 10}; struct POINT Y = {-1, 4}; struct POINT Z; Z = compute(X, Y); printf("Z.x = %d\n", Z.x); printf("Z.y = %d\n", Z.y); return 0; } struct POINT compute(struct POINT A, struct POINT B) { struct POINT C; C.x = (A.x + B.x) / 2; C.y = (A.y + B.y) / 2; return C; } 105年公務人員特種考試關務人員考試、 105年公務人員特種考試身心障礙人員考試及 105年國軍上校以上軍官轉任公務人員考試試題 考試別: 身心障礙人員考試 等 別: 四等考試 類 科: 資訊處理 科 目: 程式設計概要
C 語言函式原型 int search(int A[], int n, int x); 的第一個參數為整數陣列A[],第二個參數為整數n 代表搜尋範圍為索引從0 到n - 1。 若存在一個不為負而且小於n 的整數i,滿足A[i]等於第三個參數整數x,則函式回 傳值為i,否則函式回傳值等於-1。假如有多個i 值滿足條件,則函式回傳值為最大 的i。(每小題20 分,共40 分) ㈠請以遞迴的(recursive)循序搜尋(sequential search)法撰寫這個函式。 ㈡請以疊代的(iterative)循序搜尋(sequential search)法撰寫這個函式。
請寫出下列C 語言算式:(每小題15 分,共30 分) ㈠假設month 為整數變數。請利用三元運算子寫一個C 語言算式(expression)。假 如month 的值為一個31 天的月份則算式值等於31,假如month 的值為一個30 天 的月份則算式值等於30,假如month 的值等於2,則算式值等於28,假如month 的值小於1 或是大於12,算式值等於-1。 ㈡假設year 為整數變數。根據西元曆法,小於4000 的西元年,若可以為400 整除或 是可以被4 整除但不被100 整除的西元年份者為閏年。請寫一個C 語言算式 (expression),算式值為真表示year 年為小於4000 的閏年,反之則否。
請將下列中置式(infix formula)改成後置式(postfix formula),並依據ANSI C 的優 先權( the priority defined in ANSI C)來回答:(每小題4 分,共8 分) ㈠(A/D+B) *D+E/(F+A*(D+C)) ㈡!(A && ! ((B+F<C) || (C>D))) || (C>E )
請寫出副程式factor(int N),對正整數N,做因數分解,例如N=10,輸出1, 2, 5, 10。 (8 分)
在微軟的注音輸入法裡頭,會根據前後字的關係,幫你選字,但常常會發生最常用 的字出現在最後。(每小題4 分,共8 分) ㈠請問這是什麼問題造成的? ㈡如何改變這投票機制(voting scheme),解決上述的問題?
下列變數a、b、c、d、e 在Visual C++ 程式語言(32 位元的作業系統)裡各占多少 的記憶體?(每小題2 分,共8 分) ㈠int a = -100000; ㈡double b[2] = {0.0}; ㈢double *c = 0x10000; ㈣char d[10] = “AB”; 九、請將下列式子最後的y 值計算出來:(每小題4 分,共8 分) ㈠int x[10] = { 1, 3, 7, 8, 4, -1, 7, 6,-1,6 }, y = 0; while (x[y++] > 0); ㈡int x[10] = { 1, 3, 7, 8, 4, -1, 7, 6,-1,6 }, y = 0; while (x[++y/2] > 0); 十、在32 位元的作業系統下,試回答下列問題: ㈠int a; 請問a 的範圍?(4 分) ㈡計時系統都是以正整數範圍(負整數範圍不計)來計算秒數,假如開始計時時間 為:1 January, 1970 at 12:00:00 a.m.(午夜12 點,非中午12 點),請問在西元何年 何月何日何時,這樣的計時系統會出現問題?(8 分)