推 XX9 :thx 01/17 19:38
[開課學院]: 資電學院
[開課系所]: 資訊系
[課程名稱]: 程式語言
[老師名稱]: 黃溪春老師
[開課學期]:
[類型]: 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