看板 Examination 關於我們 聯絡資訊
如題請版上高手幫忙解惑 1. 94年高考三級第一試 資訊考科的專業知識測驗(資料結構、程式語言),第57題 有一C程式中定義了以下巨集(macro): #define sum(a, b)a+b #define prod(a, b)a * b 則當以下兩行敘述執行結束時,ans1和ans2之值分別為何? ans1=10 * sum(1, 2); ans2=prod(3+4, 5); (A)ans1=12, ans2=23 (B)ans1=12, ans2=25 (C)ans1=30, ans2=23 (D)ans1=30, ans2=35 => 答案為何為(A) ?? 2. 新思路學習評量題目 若以下程式採用靜態領域規則來決定變數的領域,則其執行結果為何? program Main; var x : integer; procedure p1; procedure p2; var x : integer; begin {p2} x:= 0 p1 end; {p2} begin {p1} while x < 2 do begin write(x); x := x + 1; p2 end; write(x) end; {p1} begin {Main} x := 0; p1 end (A) 0 1 2 2 (B) 0 1 2 2 2 (C) 上述程式在編譯時會有錯誤,因為程式中使用了一個未經宣告的變數 (D) 程式將產生無窮盡(infinite )的結果,因為這個程式包含了一個無窮遞迴。 => 答案為何為(B) ?? 如留言難以解釋,再煩請版上大大站內私信解答,謝謝^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.186.96 ※ 文章網址: http://www.ptt.cc/bbs/Examination/M.1416716561.A.0CB.html
okstephen1: 巨集你就把程式碼直接帶進去 ans1=10*a+b 11/23 13:42
happybean: 感謝解惑!! 11/29 15:31