C語言內(nèi)容綱要參考版_第1頁
C語言內(nèi)容綱要參考版_第2頁
C語言內(nèi)容綱要參考版_第3頁
C語言內(nèi)容綱要參考版_第4頁
C語言內(nèi)容綱要參考版_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、面向?qū)ο髲?fù)習(xí)提綱(2013-2014-02,計科) 參考版【參考:課本、PPT 講義】一、在回答問題時,可以適當(dāng)加入C+代碼。代碼書寫要清晰,格式要標(biāo)準(zhǔn)。下述內(nèi)是各 章的主要考點,可能以填空、選擇、判對錯、問答、分析程序?qū)懡Y(jié)果等形式出現(xiàn)敘述面向?qū)ο蠹夹g(shù)的特點是什么?(提示:封裝、繼承、多態(tài)。Ref.第?章)使用 const 定義常量與用使用 define 定義常量相比,有什么優(yōu)點? (Ref. 第?章)const定義常量是有數(shù)據(jù)類型的,可以對其進(jìn)行數(shù)據(jù)靜態(tài)類型安全檢查.const在編譯時分配存 儲空間;W#define在預(yù)編譯時編譯,不分配存儲空間用代碼說明在標(biāo)準(zhǔn)C+中如何進(jìn)行輸入輸出,并解釋

2、各語句的含義是什么? (Ref.第? 章)C+中如何進(jìn)行靜態(tài)類型轉(zhuǎn)換,解釋并舉例說明。(Ref.第?章)闡述C+ +中函數(shù)三種調(diào)用的方式實現(xiàn)機(jī)制、特點及其實參、形參的格式,最好用代碼 說明。(提示:傳址、傳值、引用傳遞)(Ref.第?章)什么是先驗條件(Precondition),什么是后置條件(Postcondition)? (google)什么是名稱空間(namespace),它的主要作用是什么? (Ref.第?章)什么是重載(Overloading),解釋并舉例說明?能否根據(jù)返回值不同,對函數(shù)進(jìn)行重載, 為什么? (Ref. 第?章)總結(jié)一下關(guān)鍵字 const 的用法?( Ref. 第?

3、章, google)操作符 new 的作用是什么?如何申請單個空間?如何申請動態(tài)數(shù)組?用 new 創(chuàng)建一個 類的對象時,會發(fā)生哪些操作?必要時,請用代碼說明。 ( Ref. 第?章)操作符 delete 的作用是什么?如何刪除單個用 new 申請的空間?如何刪除申請的動態(tài) 數(shù)組?用 delete 刪除一個類的對象時,會發(fā)生哪些操作?必要時,請用代碼說明。 ( Ref. 第 ?章)什么是懸掛指針(又稱為野指針,Dangling Pointers),其危害是什么?( Ref.第?章, google)什么是類?通常一個類中包含什么樣的內(nèi)容?定義一個類的語法是什么,試舉例說明。 ( Ref. 第?章)

4、類中的成員可以用public/protected/private分別進(jìn)行修飾,這三種成員在什么情況下是可 以被訪問的? ( Ref. 第?章)什么是封裝?其作用是什么? ( Ref. 第?章, google)什么是構(gòu)造函數(shù)?構(gòu)造函數(shù)有返回值嗎?構(gòu)造函數(shù)如何命名?構(gòu)造函數(shù)可以重載嗎? 什么是缺省構(gòu)造函數(shù)(default constructor)? ( Ref.第?章)構(gòu)造函數(shù)的作用是什么?什么時候會被調(diào)用?構(gòu)造函數(shù)的執(zhí)行順序是什么(父類與子類 的構(gòu)造函數(shù)、類本身與其類型是類的數(shù)據(jù)成員的構(gòu)造函數(shù))? ( Ref. 第?章)為什么拷貝構(gòu)造函數(shù)(copy constructor)的參數(shù)必須是按引用傳遞

5、(by reference)而不能 是按值傳遞(by value)? (PPT11-P51, CH11)全局對象(Global scope objects)的構(gòu)造函數(shù)、析構(gòu)函數(shù)分別是什么時候被調(diào)用的?自動局 部對象(Automatic local objects)的構(gòu)造函數(shù)、析構(gòu)函數(shù)分別是什么時候被調(diào)用的?靜態(tài) 局部對象(static local objects)的構(gòu)造函數(shù)、析構(gòu)函數(shù)分別是什么時候被調(diào)用的?(CH9, PPT9-p62)什么是初始化列表(Initialization Sections)?它的作用是什么?( Ref.第?章)什么是抽象數(shù)據(jù)類型(ADT)?抽象類的作用是什么?抽象類

6、是否可實例化?( Ref.第? 章,google)什么是 this 指針,其作用是什么? ( Ref. 第?章)什么是友元(friend)函數(shù)?為什么要使用友員函數(shù)?( Ref.第?章)什么是運算符重載?為什么要使用運算符重載?如何進(jìn)行運算符重載,舉例說明。( Ref. 第?章)什么是析構(gòu)函數(shù)?析構(gòu)函數(shù)有返回值嗎?析構(gòu)函數(shù)如何命名?析構(gòu)函數(shù)可以重載嗎?( Ref. 第?章)析構(gòu)函數(shù)的作用是什么?什么時候會被調(diào)用?為什么析構(gòu)函數(shù)通常是虛函數(shù)、如果不是 虛函數(shù),會如何? ( Ref. 第?章, google)拷貝構(gòu)造函數(shù) (復(fù)制構(gòu)造函數(shù) )的作用是什么?什么是淺拷貝?什么是深拷貝?( Ref.第

7、?章, google)什么是 C+ 中的三大函數(shù)(The Big Three)? ( Ref.第?章,google)常見的類與類之間的關(guān)系有哪幾種?兩個什么樣的類可以實現(xiàn)為繼承關(guān)系? ( Ref. 第 ?章、第?節(jié), google)父類成員中的 public、protected、private 成員,哪些在子類中是可以訪問的?在公有繼 承、私有繼承、受保護(hù)繼承三種繼承方式下,父類成員中的 public、protected、private 成員被繼承到子類后,其可訪問性分別是什么? ( Ref. 第?章)多重繼承會帶來什么問題?在C+中是如何解決的?( Ref.第?章)對于函數(shù)調(diào)用,什么是前期綁

8、定(Early Binding,又稱為靜態(tài)聯(lián)編)?什么是的后期綁定 (Late Binding,又稱為動態(tài)聯(lián)編)?重載函數(shù)是后期綁定嗎,如果不是為什么?舉例說明。 ( Ref. 第?章)要讓一個函數(shù)調(diào)用表現(xiàn)出多態(tài)特征,必須滿足哪些條件? ( Ref. 第?章)什么是隱藏(hiding)、覆蓋(overriding)、重載(overloading)?對比它們的異同? C+代碼 為例進(jìn)行說明。 ( Ref. 第 ?章)什么是多態(tài)? ( Ref. 第?章)什么是切片(Slicing)? ( Ref.第?章,注意參考講義)簡述C+中的異常處理機(jī)制。要捕獲某段代碼中的所有異常,應(yīng)該如何編寫代碼? (Re

9、f. 第?章)分別舉例說明用于算法抽象的模板和用于數(shù)據(jù)抽象的模板。 (Ref. 第?章, google)dynamic-cast的作用是什么?試舉一例說明。(Ref.第?章)二、分析程序,寫出運行結(jié)果1.class BC public:BC( ) sBC = new char3; cout BC allocates 3 bytes.n; BC( ) delete sBC; cout BC free 3 bytes.n; private:char* sBC;class DC : public BC public:DC( ) sDC = new char5; cout DC allocates 5

10、 bytes.n; DC( ) delete sDC; cout DC free 5 bytesAn; private:char* sDC;int main( ) DC d;cout “” endl;return 0;2.class TradesPerson public:virtual void sayHi() cout Just hi. endl; void run() cout Base:run endl; ;class Tinker : public TradesPerson public:virtual void sayHi() cout Tinker. endl; void run

11、() cout Tinker:run endl; ;class Tailor : public TradesPerson public:void sayHi() cout Tailor. endl; void run() cout Tailor:run endl; ;int main( ) TradesPerson* p;int which ;cout which;switch( which )case 1: p = new TradesPerson; break;case 2: p = new Tinker; break;case 3: p = new Tailor; break;p-say

12、Hi(); p-run(); delete p;return 0; 3.void fl(int i)coutvv”in void f1(int i)”vvendl;void fl(string st) coutvvin void f1(string st)vvendl;int main()int i=0;string st=acb;fl(st);fl(i);return 0;4.class BC1 public:BC1( ) sBC = new char3; cout BC1 allocates 3 bytes.n; BC1( ) delete sBC; cout BC1 free 3 byt

13、esAn; private:char* sBC;class BC2 public:BC2( ) sBC = new char5; cout BC2 allocates 5 bytes.n; BC2( ) delete sBC; cout BC2 free 5 bytes.n; private:BC1 bc1;char* sBC;int main( ) BC1 bc1;BC2 bc2;cout “” endl;return 0;5.class C1public:C1()i=1;void incI()i+;int getI()return i;private:int i;void f1(C1 c)

14、c.incI();coutincI();coutvvin fl * vvc-getI()vvendl;void f2(C1 & c)c.incI();coutvvin f2 & vvc.getI()vvendl;int main()Cl c;fl(c);f1(&c);f2(c); return 0;三、編程基本能寫出框架的給?分; 基本能寫出類的實現(xiàn)的給?分; 基本能寫出類的應(yīng)用的給?分; 整個答案只有少許錯誤的給滿分。采用面向?qū)ο蟮姆绞骄帉懸粋€通迅錄管理程序,通迅錄中的信息包括:姓名,公司,聯(lián) 系電話,郵編。要求的操作有:添加一個聯(lián)系人,列表顯示所有聯(lián)系人。先給出類定義,然 后給出類實現(xiàn)。(

15、提示:可以設(shè)計二個類,一個通迅錄條目類CommEntry, 個通訊錄類 Commus)在一個公司中有兩個類型的人員:雇員(employee)和管理者(manager),注意管理也 是一個(is a)雇員。每個雇員有以下基本信息:姓名(name)、年齡(age)、工作年限(workYear) 和部門號(depNo )。并且一個管理者還有更多的屬性:級別( level)和管理的雇員(numOfEmployee,可以用數(shù)組定義)。一個雇員或是管理者具有以下的行為:void main()Employee e(“Jack, 24, 2, “Development);Manager m(“Tom, 30,

16、 5, “Development, 2);m.addMember(&e);/ m 管理 ee.printOn();/顯示Jack所有數(shù)據(jù)成員的信息m.printOn();顯示Tom所有數(shù)據(jù)成員的信息Employee* p = &e;bool b = p-retire(); /如果雇員的年齡是55,則b為truep = &m;b = p-retire ();/如果管理者的年齡是60,則b為true分別定義并實現(xiàn)類Employee和Manager。3.已知類的定義如下:class Base protected:int iBody;public:virtual void printOn() = 0;

17、Base(int i = 0) : iBody(i) virtual int display(int x=60):iBody(x)return iBody;class Subl : public Base public:Sub1(int i, string s);class Sub2 : public Base public:Sub2(int i, short s);;試完成類Sub1和Sub2的定義和操作的實現(xiàn)代碼,使之能符合下面程序及在注釋中描述的 運行結(jié)果的要求:main()Sub1 s1(1000, This is an object of Sub1);Sub2 s2(1000, 20); s1.printOn(); s2.printOn();/ 此時顯示出:1000: This is an object of Sub1/此時顯示出:20 and 1000c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論