※ 本文為 ott 轉寄自 ptt.cc 更新時間: 2014-11-23 22:24:35
看板 Examination
作者 happybean (豆子)
標題 [考題] 求解計算機概論兩題
時間 Sun Nov 23 12:22:38 2014


如題請版上高手幫忙解惑

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+b1F 11/23 13:42

--
※ 看板: ott 文章推薦值: 0 目前人氣: 0 累積人氣: 260 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇