Data Structures (1st Exam). 1.[5] Suppose there are only two constructors for a class, one that passes in a single integer parameter called amount, for.

Slides:



Advertisements
Similar presentations
FCU, Department of ECE, IC Design Research Lab. TEL: # 4945 Pre-SIm , Post-Sim.
Advertisements

Divide-and-Conquer. 什麼是 divide-and-conquer ? Divide 就是把問題分割 Conquer 則是把答案結合起來.
6-1 指標簡介 6-2 指標與陣列 6-3 動態配置記憶體 6-4 本章綜合練習
Introduction to Java Programming Lecture 13 Classes I OO Programming.
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
:Word Morphing ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10508:word morphing 解題者:楊家豪 解題日期: 2006 年 5 月 21 日 題意: 第一行給你兩個正整數, 第一個代表下面會出現幾個字串,
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/3 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH3.5 ~ CH /10/31.
3Com Switch 4500 切VLAN教學.
PowerPoint2010 李燕秋 版面配置 版面配置指的是每一個頁面的內容配置 方式,不同的版面配置會有對應的母片。
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
IPSec 的使用模式 傳輸模式 (Transport mode) 傳輸模式 (Transport mode) 通道模式 (Tunnel mode) 通道模式 (Tunnel mode)
What is static?. Static? 靜態 ? class Test { static int staticX; int instanceX; public Test(int var1, int var2) { this.staticX = var1; this.instanceX =
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章 CS340100, NTHU Yoshi.
SIP Mobiity TA: 洪敏書
: Factstone Benchmark ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: : Factstone Benchmark 解題者:鐘緯駿 解題日期: 2006 年 06 月 06 日 題意: 假設 1960.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
JAVA 程式設計與資料結構 第十四章 Linked List. Introduction Linked List 的結構就是將物件排成一列, 有點像是 Array ,但是我們卻無法直接經 由 index 得到其中的物件 在 Linked List 中,每一個點我們稱之為 node ,第一個 node.
MATLAB 程式設計 第 11 章 多維陣列 多維陣列的定義 在 MATLAB 的資料型態中,向量可視為 一維陣列,矩陣可視二維陣列,對於維 度 (Dimensions) 超過 1 的陣列則均可視 為「多維陣列」 (Multidimesional Arrays , 簡稱 N-D Arrays)
程式註解說明. 2 程式註解格式 塊狀註解 對檔案、 class 、 method 、資料結構、一段程式 …. 等程式區塊 做說明。 第一行的開頭必需為 “/*” 且沒有其他文字,最後一行的開頭 必需以 “*/” 做為結束,在中間每一行的開頭都必需是一個 “*” 。 單行註解 佔據一整行的說明。 以.
8.1 何謂高度平衡二元搜尋樹 8.2 高度平衡二元搜尋樹的加入 8.3 高度平衡二元搜尋樹的刪除
: The Playboy Chimp ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10611: The Playboy Chimp 解題者:蔡昇宇 解題日期: 2010 年 2 月 28 日 題意:給一已排序的數列 S( 升冪.
Introduction to Java Programming Lecture 5: Using Java Classes : String & Math Spring 2009.
Introduction to pointers in C/C++. Pointers 特殊變數 存放變數在記憶體中的位址 MinGW C++ 中佔用 4 bytes 間接定址取執法 位址 指標變數 變數內容 變數.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
:Problem D: Bit-wise Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10232: Problem D: Bit-wise Sequence 解題者:李濟宇 解題日期: 2006 年 4 月 16.
第九章 結構. 結構的宣告 結構 它是由許多不同 ( 或相同 ) 資料型態的變數所組成的 集合,通常利用結構標籤稱呼此集合 struct student { char *name; int score; }; struct 為保留字,表示結構的宣告開始 結構項目需定義於大括號「 { } 」內 結尾需加上分號.
Introduction to Java Programming Lecture 10 Array I Declaring, Creating, and Initializing Arrays.
7 陣列與搜尋 7.1 陣列 一般資料變數 宣告一維陣列 起始一維陣列 7-4
: Tight words ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: : Tight Words 解題者:鐘緯駿、林一帆 解題日期: 2006 年 03 月 14 日 題意: 給定數字 k 與 n (0 ≦ k.
Chapter 12 Pointers and Dynamic Arrays. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. Slide 2 Overview Pointers (12.1) Dynamic Arrays.
第十章 再論結構. 指標與結構的關係 /* File name: ex10-1a.c */ #include int main() { struct student { char *name; int score; }; struct student st= {"Brian", 97}; struct.
: Count DePrimes ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11408: Count DePrimes 解題者:李育賢 解題日期: 2008 年 9 月 2 日 題意: 題目會給你二個數字 a,b( 2 ≦ a ≦ 5,000,000,a.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
資料結構實習-一 參數傳遞.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
第 9 章 TSR 程式基本教練. 本章提要 TSR 程式 以熱鍵 (Hot key) 叫用 TSR 程式 Clock 中斷 int 08h 、 int 1ch DOS reentrant 的問題 有用的 TSR 程式.
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/25 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH 2.4~CH 2.6 &
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
資料結構實習-二.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
Pointer and Array 指標 與 陣列 double *a, b[10]; char name[80], *np;
逆向選擇和市場失調. 定義  資料不對稱 在交易其中,其中一方較對方有多些資料。  逆向選擇 出現在這個情況下,就是當買賣雙方隨意在 市場上交易,與比較主動交易者作交易為佳 。
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Chapter 10 m-way 搜尋樹與B-Tree
: Function Overloading ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11032:Function Overloading 解題者:許智祺 解題日期: 2007 年 5 月 8 日 題意:判對輸入之數字是否為.
1 523: Minimum Transport Cost ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 523: Minimum Transport Cost 解題者:林祺光 解題日期: 2006 年 6 月 12 日 題意:計算兩個城市之間最小的運輸成本,運輸.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
中序轉後序 藉由由左向右掃瞄中序運算式產生後序運算式,遇到 運算元就直接輸出,遇到運算符號則先存入堆疊,將 優先權較高者輸出。 範例: a + b * c TokenStack [0] [1] [2] topoutput aa ++0a b+0ab *+ *1ab c+ *1abc eosabc*+
Teacher : Ing-Jer Huang TA : Chien-Hung Chen 2015/6/30 Course Embedded Systems : Principles and Implementations Weekly Preview Question CH7.1~CH /12/26.
Miscellanea Switch Bitwise operations ?,. break; continue; (example) (example) do { a = getc(stdin); if (a=='q') break; else if (a=='c') continue; n++;
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
Visual C++重點複習.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2008.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
: SAM I AM ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11419: SAM I AM 解題者:李重儀 解題日期: 2008 年 9 月 11 日 題意: 簡單的說,就是一個長方形的廟裡面有敵人,然 後可以橫的方向開砲或縱向開砲,每次開砲可以.
C 語言練習題 2010/12/2. C 程式的格式 一、 C 程式的格式 (1). /* …. */ 是 C 程式的 ______ main() 的內容是由敘述構成的 (2). 敘述要以 __ 為結束符號 (3). 變數、函數都要做 ____ 的宣告 (4). ‘=’ 是 ____ 用的算符 (5).
7.4 程式範例 在螢幕上寫出“Hello” 的程式 (參考 code/pep-p200.odc).
What is static? CS340100, NTHU Yoshi. Static? 靜態 ? class Test { static int staticX; int instanceX; public Test(int var1, int var2) { this.staticX = var1;
Introduction to Java Programming Lecture 16 Super and Sub Classes.
著作權所有 © 旗標出版股份有限公司 第 14 章 製作信封、標籤. 本章提要 製作單一信封 製作單一郵寄標籤.
6 使用者函數 6.1 函數定義 宣告函數 呼叫函數 呼叫多個函數 6-6
幼兒行為觀察與記錄 第八章 事件取樣法.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2009.
第 8 章 記憶體指標. 8.0 變數、數值、位址 8.1 指標與變數 對 C++ 語言而言,指標( pointers )是存放 變數或陣列的位址,因此也可以藉由指標 間接取得變數或陣列中的值。 對 C++ 語言而言,指標( pointers )是存放 變數或陣列的位址,因此也可以藉由指標 間接取得變數或陣列中的值。
質數 (Prime) 相關問題 Introducer: Hsing-Yen Ann Date: 2009/05/13.
Effective C# 50 Specific Way to Improve Your C# Item 6, 7 Sephiroth.Wang2012/08/01.
Group 2 Block 胡貴蓉 Project 2 JMVC code tracing.
Speaker: Liu Yu-Jiun Date: 2009/4/15
Presentation transcript:

Data Structures (1st Exam)

1.[5] Suppose there are only two constructors for a class, one that passes in a single integer parameter called amount, for setting an amount data member, and another that passes in a single integer parameter called code, for setting a code data member. Is this class valid? Why? no 由於兩個 constructor 的 parameter 都為一個 int ,所以 overload 會輸入一個 parameter int 不知道要指向哪個 constructor.

2. [5] Suppose we write a function for a class which is not supposed to change any data members in the class. When we test the class, we get a runtime error. After tracking down the source of the runtime error, we realize that this function mistakenly changed the value of a data member. How will you do to fix the bug? 把 function const

3.[10] Suppose you find a class that matches your need. In this class, no constructors are provided. A function, called setValue, for setting the value of a data member is provided. In your application, for this particular data member, after the setValue function has been used once, there is no reason to use it again. You use this class very often in the program, so you want to save time from having to use a call to the setValue function every time. How will you do to achieve your goal? 建立一個 constructor 直接把 setValue 的值輸 入。

4. [10] Suppose you develop a WashingMachine class and we have a function called raisePrice, which passes in an amount to raise the price by. After the class has been in use by a number of clients, you wish to add more to the raisePrice function, passing in two parameters, the amount to raise the price by and the date the price is being raised. You plan to replace the old one-parameter raisePrice function by a new two-parameter raisePrice function in the WashingMachine class. It this a good idea? Why? No 由於 one-parameter 若改成 two-parameter 的話,之 前有使用到的 function 都要改成 two-parameter 。於 是最好是在建立一個 two-parameter 的 function 並保 留 one-parameter 的 function 。

5. [5] Suppose the following is part of your program: int foo(int x) { x = x + x; return x; } void main() { int x = 5, y=10; y=foo(x); cout << “x = “ << x << “y = “ << y; } What are the values of x and y printed out by the cout statement? x=5, y=10;

6.[10] Suppose the following is part of your program: int foo(int & x) { x = x + x; return x; } void main() { int x = 5, y=10; y=foo(x); cout << “x = “ << x << “y = “ << y; } What are the values of x and y printed out by the cout statement? X=10, y=10;

7.[10] We would like to make a dynamic array that can store 10 Check objects, and we would declare arr to be the “name” of the array. (a) Which of the following lines would be used for the declaration: A. Check *arr = new Check arr[ 10 ]; B. Check arr = new Check [10]; C. Check *arr = new Check [10]; D. Check new *arr[10]; C

7.(b) What is the difference between “delete arr” and “ delete [] arr”? arr 500 arr 500 delete arr delete [] arr

8.[5] We can always pass parameters into a function by call by reference, but we cannot always return by reference from a function. Why? 因為 function 執行完後, function 裡所宣告的 資料會被釋放,傳 return by reference 所指向 的資料已被釋放,所以抓不到值。

9.[5] Suppose a client makes a function foo in the main program which declares an Array object locally. The return type of foo is Array, and at the end of the function, the client returns the local Array object (without using return by reference) back to the calling function in the main program. The Array object is destroyed at the end of the function (being a local object), so why is there no problem in returning it? call by value

10.[5] Compare a class that uses an Array as a data member to a class that uses a dynamic array (pointer) in the private section. Why would we need to write a destructor, overloaded assignment operator, and copy constructor for the latter, but not the former? Destructor: 若是有去定義動態記憶體 必須在執行後去釋放動態記 憶體。 overloaded assignment operator, and copy constructor: 必須去定義一個 deep copy 去做動態記憶體裡的資料搬移 (=) 。 Ex a=b shallow copy: b=abc; a=b; b=xyz; 則 a=xyz Deep copy: b=abc; a=b; b=xyz; 則 a=abc;

11.[10] In the class, we showed the = operator for the Array class as follows: template ……………….. ::operator =( const Array & right ) {. delete [ ] elements; deepCopy( right ); } Why don’t we just use the following code? template ……………….. ::operator =( const Array & right ) {. deepCopy( right );. } 沒加 delete [ ] elements; 造成 memory leak.

12.[10] In the class, we showed the = operator for the Array class as follows: template Array & Array ::operator =( const Array & right ) { if ( this == &right ) return *this; delete [ ] elements; deepCopy( right ); return *this; } Why don’t we just use the following code: template Array & Array ::operator =( const Array & right ) { delete [ ] elements; deepCopy( right ); return *this; } 當沒加 if 判斷式時,當 x=x 時,會錯誤,原因是因為執行 delete [ ] elements 時,左邊 x 會被釋放,當 x 被釋放時,右邊 x 也會被釋放,所以 要加 if 判斷式。

13.[10] In the class, we showed that class MinBalCheckBook is derived from class CheckBook and we have the following code: template MinBalCheckBook ::MinBalCheckBook(float initBalance, float minBal, float sFee, float cFee ) : CheckBook ( initBalance ), minBalance( minBal ), serviceFee( sFee ), checkFee( cFee ) { } (a) What is the above code for? (b) Can the above code be rewritten as below? template MinBalCheckBook ::MinBalCheckBook(float initBalance, float minBal, float sFee, float cFee ) { CheckBook ( initBalance ); minBalance = minBal; serviceFee = sFee; checkFee = cFee; } (a) constructor (b) 不能直接呼叫 constructor CheckBook.