看板 FCUProblems 關於我們 聯絡資訊
[開課學院]: 資電學院 [開課系所]: 資訊系 [課程名稱]: 程式語言 [老師名稱]: 黃溪春老師 [開課學期]: [類型]: 97-1期末考 1.現代的程式語言有哪兩種「Abstraction」的觀念? 並分別概述其意義(8%) 2.說明Ada程式語言的「Specification Package」與 「Body Package」的目的分別為何?(8%) 3.何謂「Abstract class」?其目的為何?(8%) 4.C++程式語言「class members」的存取控制,可以 是[Private]、[Public]、[Protected],其意義為何?(9%) 5.請以 C++ 或是 JAVA程式語言,說明物件 「Allocation」&「Deallocation」的作法?(10%) 6.針對下列程式,回答下列問題: (1)畫出程式執行到註記(a)時,Stack配置情形 (2)若程式採用static-scoping處理外參考,在註 記(b)的各項變數分別定義在哪?並說明搜 尋過程。 (3)若程式採用dynamic-scoping處理外參考,在註 記(a)的各項變數分別定義在哪?並說明搜 尋過程。 (4)用Shallow access實做dynamic-scoping,當程 式執行到註記(a)時,畫出各項變數的stack 情形。 ┌───────────────────────────┐ │procedure Bigsub is │ │ A,B: Integer; │ │ procedure Sub1(C:Integer) is │ │ B: Integer; │ │ procedure Sub2 is │ │ D: Integer; │ │ begin -- of Sub2 │ │ A=B+C+D; <-----------(a) │ │ end; -- of Sub2 │ │ begin --of Sub1 │ │ D=A+B+C; <-----------(b) │ │ Sub2; │ │ end; --of Sub1 │ │ procedure Sub3(A:Integer) is │ │ D: Integer; │ │ begin -- of Sub3 │ │ D=A+B+C; <-----------(c) │ │ Sub1(3); │ │ end; -- of Sub3 │ │ begin -- of Bigsub │ │ Sub(3); │ │ end; -- of Bigsub │ └───────────────────────────┘ 7.針對下列程式,若變數 i,j 與陣列X[1..5]:={2,4,6,8,10}為全域性; 請分別用: (1)Pass-by-value (2)Pass-by-reference (3)Pass-by-name 等方式執行參數傳遞,並寫出過程與執行結果 ┌───────────────────┐ │procedure sub(a,b,c,d) <--- 0 │ │begin │ │ a:= b+c; <--- 1 │ │ b:= i+1; <--- 2 │ │ c:= c+1; <--- 3 │ │ j:= a+b; <--- 4 │ │ writeln(a,b,c,d); <---R1 │ │end; │ │begin │ │ i:=1; │ │ j:=2; │ │ sub(i,j,X[i],X[2]); │ │ writeln(i,j,X[i],X[2]); <---R2 │ │end; │ └───────────────────┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.50.110
XX9 :thx 01/17 19:38