阿摩線上測驗
登入
首頁
>
程式語言
> 96年 - 96 公務升官等考試_薦任_資訊處理:程式語言#34452
96年 - 96 公務升官等考試_薦任_資訊處理:程式語言#34452
科目:
程式語言 |
年份:
96年 |
選擇題數:
0 |
申論題數:
10
試卷資訊
所屬科目:
程式語言
選擇題 (0)
申論題 (10)
⑴ class diagram(類別圖繪)
⑵ object diagram(物件圖繪)
⑶ deployment diagram (佈建圖繪)
⑷ Use case diagram(使用狀況圖繪)
⑸ Sequence diagram(序向圖繪) (25 分)
⑴ Plate 具有半徑大小,其面積為 3.14 乘半徑平方。無體積值。其售價(Price)為 5 倍面積大小。
⑵其 liquid 具有重量及密度,無面積值。體積為重量除以密度。其售價為 2 倍重量 大小。
⑶長方體磚塊具長、寬、高三特性,其面積為表面積大小(即 2 倍的(長*寬+ 寬*高+高*長))。體積為長乘寬乘高(長*寬*高)。其售價為 2 倍體積大小。 (25 分)
三、請問 operator overloading 的用途為何?假設有 X,Y 為 2 陣列(array)變數,如果要 使得程式中可以利用此一指令 Z=(X+Y)*2 將 X 及 Y 相加,結果乘以 2 放回陣列 Z。 請問要設計那些 operator overloading 函式方可使 Z=(X+Y)*2 正確完成上述功能? (25 分)
四、Memory leakage 所造成之錯誤在程式 debug 階段往往無法即時查覺,因此為 C++ 程式設計者所需特別留意的問題之一。請說明何謂 memory leakage?其造成的錯誤 原因為何?(13 分)以下程式片斷在數個地方會造成 memory leakage,請修正其程 式內容。答案中請寫出被修正過之類別或函式(function)之完整內容,不需修正之 類別或函式無須再謄寫於答案中。(12 分) class Fruit{ private: double weight; char *color; public: Fruit(double, char *); virtual ~Fruit(); }; Fruit::Fruit(double w, char *col) { weight = w; color = new char[strlen(col)+1]; strcpy(color, col); } Fruit::~Fruit(){ delete color; } class Apple:public Fruit{ private: char *variety; public: Apple(double, char *, char *); ~Apple(); }; Apple::Apple(double w, char *col, char *var): Fruit(w,col) { variety = new char[strlen(var)+1]; strcpy(variety, var); } Apple::~Apple(){ delete variety; } main(){ Fruit *basket[20]; int i; double weight; char color[128], variety[128]; for(i=0; i<20; i++) basket[i] = new Apple(weight, color, variety); delete [] basket; }