面向?qū)ο蠹癈_復(fù)習(xí)題_第1頁
面向?qū)ο蠹癈_復(fù)習(xí)題_第2頁
面向?qū)ο蠹癈_復(fù)習(xí)題_第3頁
面向?qū)ο蠹癈_復(fù)習(xí)題_第4頁
面向?qū)ο蠹癈_復(fù)習(xí)題_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο笈cC+復(fù)習(xí)題簡答題簡述解釋方式與編譯方式。答:編譯就是先有目標(biāo)代碼再執(zhí)行; 解釋就是一邊翻譯一邊執(zhí)行。解釋方式是邊掃描源程序、邊進行翻譯,然后執(zhí)行。即解釋一句、執(zhí)行一句,不生成目標(biāo)程序。這種方式運行速度慢,但在執(zhí)行中可以進行人機對話,隨時改正源程序中的錯誤。編譯方式是將源程序全部翻譯后,生成一個等價的目標(biāo)程序,對目標(biāo)程序再進行連接裝配后,便得到“執(zhí)行程序”,最后運行執(zhí)行程序。由于源程序一旦編譯后不再參與運行,以后每次直接運行執(zhí)行程序即可,所以運行速度快。但這種方式不夠靈活,每次修改源程序后,哪怕只是一個符號,也必須重新編譯、連接;簡述面向過程的程序設(shè)計與面向?qū)ο蟮某绦蛟O(shè)計。面向?qū)ο蟪绦?/p>

2、設(shè)計中的概念主要包括:對象、類、數(shù)據(jù)抽象、繼承、動態(tài)綁定、數(shù)據(jù)封裝、多態(tài)性、消息傳遞。通過這些概念面向?qū)ο蟮乃枷氲玫搅司唧w的體現(xiàn)。結(jié)構(gòu)化程序設(shè)計又稱為面向過程的程序設(shè)計。在面向過程程序設(shè)計中,問題被看作一系列需要完成的任務(wù),函數(shù)(在此泛指例程、函數(shù)、過程)用于完成這些任務(wù),解決問題的焦點集中于函數(shù)。其中函數(shù)是面向過程的,即它關(guān)注如何根據(jù)規(guī)定的條件完成指定的任務(wù)。什么是拷貝構(gòu)造函數(shù)。是一種特殊的構(gòu)造函數(shù),它由編譯器調(diào)用來完成一些基于同一類的其他對象的構(gòu)建及初始化。其唯一的參數(shù)(對象的引用)是不可變的(const類型)。此函數(shù)經(jīng)常用在函數(shù)調(diào)用時用戶定義類型的值傳遞及返回??截悩?gòu)造函數(shù)要調(diào)用基類的拷

3、貝構(gòu)造函數(shù)和成員函數(shù)。如果可以的話,它將用常量方式調(diào)用,另外,也可以用非常量方式調(diào)用。重寫與重載的區(qū)別。方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloadin

4、g)。Overloaded的方法是可以改變返回值的類型。動態(tài)綁定與靜態(tài)綁定。靜態(tài)綁定:在面向過程的中又稱為前期綁定在程序編譯時進行了綁定,即在還沒運行時,就已經(jīng)加載到內(nèi)存。 3.動態(tài)綁定:在面向過程中稱為后期綁定(運行時綁定)在運行時就進行綁定,根據(jù)實際情況有選擇的進行綁定。傳值、傳指針與傳引用的優(yōu)缺點。答:傳值安全低效,傳指針與傳引用高效不安全,如果加上CONST就安全了。將函數(shù)聲明為常成員函數(shù)的作用。不可修改成員,即對聲明為const 的成員作改動就會報錯,容易發(fā)現(xiàn)問題構(gòu)造新類時,使用組合與繼承的原則是什么。答:構(gòu)造新類時,例如A是基類,B是A的派生類,繼承的原則如下:1.如果類A和類B毫

5、不相關(guān),不可以為了使B的功能更多些而讓B繼承A的功能和屬性,2.若在邏輯上B是A的“一種”,則允許B繼承A的功能和屬性。組合的原則如下:1.若在邏輯上B是A的“一部分”,則不允許B從A的派生,而是要A與其它東西組合出B。內(nèi)聯(lián)函數(shù)的作用。答:內(nèi)聯(lián)函數(shù)就是指在每個使用它的地方插入全部算法,而不是把函數(shù)地址傳過去,它是編譯在堆內(nèi)存里的,直到程序結(jié)束后它才失效,這樣能加快執(zhí)行的速度,效率更高,但是內(nèi)聯(lián)函數(shù)一定要是短小的,否則只能起到反作用.抽象類。答:用 abstract 修飾的類是抽象類。 在C+中,含有純虛擬函數(shù)的類稱為抽象類,它不能生成對象。 凡是包含純虛函數(shù)的類都是抽象類。它與非抽象類的不同:

6、 1、抽象類不能直接實例化,并且對抽象類使用 new 運算符是編譯時錯誤。 2、允許(但不要求)抽象類包含抽象成員。 3、抽象類不能被密封。選擇題1、編譯程序的功能是(c )A)將匯編語言程序轉(zhuǎn)換為目標(biāo)程序B)將匯編語言程序轉(zhuǎn)換為高級語言程序C)將高級語言程序轉(zhuǎn)換為目標(biāo)程序D)將高級語言程序轉(zhuǎn)換為匯編語言程序2、在C+語言中,對函數(shù)參數(shù)默認值描述正確的是( d ) A)函數(shù)參數(shù)的默認值只能設(shè)定一個B)一個函數(shù)的參數(shù)若有多個,則參數(shù)默認值的設(shè)定可以不連續(xù) C)函數(shù)參數(shù)必須設(shè)定默認值D)在設(shè)定了參數(shù)的默認值后,該參數(shù)后面定義的所有參數(shù)都必須設(shè)定默認值3、考慮函數(shù)原型voidtest(inta, i

7、ntb=7, float f=6.0),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是:( c )A)test(5); B)test(5,8); C)test(6 ,3.2) D)test(0,1,1.2);4、下面有關(guān)重載函數(shù)的說法中正確的是( c ) A)重載函數(shù)必須具有不同的返回值類型;B)重載函數(shù)形參個數(shù)必須不同; C)重載函數(shù)必須是參數(shù)個數(shù)不同或類型不同;D)重載函數(shù)名可以不同; 5、能作為函數(shù)重載判斷依據(jù)的是:( a ) A參數(shù)個數(shù) B。參數(shù)順序 C。函數(shù)名字 D。返回類型6、下列關(guān)于構(gòu)造函數(shù)的描述中,錯誤的是( d ) A)構(gòu)造函數(shù)可以設(shè)置默認參數(shù);B)構(gòu)造函數(shù)在定義類對象時自動執(zhí)行 C)

8、構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù);D)構(gòu)造函數(shù)不可以重載 7、關(guān)于析構(gòu)函數(shù)的描述中,錯誤的是( c )A)析構(gòu)函數(shù)不能帶參數(shù)B) 析構(gòu)函數(shù)在撤銷對象時自動執(zhí)行 C)析構(gòu)函數(shù)名與類名相同; D) 析構(gòu)函數(shù)不可以重載8、下面描述中,表達錯誤的是( b ) A)公有繼承時基類中的public成員在派生類中仍是public的 B)公有繼承是基類中的private成員在派生類中仍是private的 C)公有繼承時基類中的protected成員在派生類中仍是protected的 D)私有繼承時基類中的public成員在派生類中是private的 9、應(yīng)在下列程序劃線處填入的正確語句是( c ) A)fun(); B

9、)Base.fun(); C)Base:fun(); D)Base-fun(); 10、一個C+類( c )A)只能有一個構(gòu)造函數(shù)和一個析構(gòu)函數(shù) B)可以有一個構(gòu)造函數(shù)和多個析構(gòu)函數(shù)C)可以有多個構(gòu)造函數(shù)和一個析構(gòu)函數(shù)D)可以有多個構(gòu)造函數(shù)和多個析構(gòu)函數(shù)11、以下程序中,while循環(huán)的循環(huán)次數(shù)是( d ) A) 1 B) 10 C) 6 D) 死循環(huán),不能確定次數(shù)12、關(guān)于內(nèi)聯(lián)函數(shù),以下說法錯誤的是( c )A)使用內(nèi)聯(lián)嵌函數(shù)可節(jié)省函數(shù)調(diào)用與返回時的開銷,能夠提高程序的運行速度.B) 內(nèi)聯(lián)函數(shù)必須在調(diào)用之前定義.C) 內(nèi)聯(lián)函數(shù)中可以存在循環(huán)結(jié)構(gòu).D) 內(nèi)聯(lián)函數(shù)必須是短小的.13、引入友元的主

10、要目的是為了( c )A. 增強數(shù)據(jù)安全性 B. 提高程序的可靠性C. 提高程序的效率和靈活性 D. 保證類的封裝性14、假定AB為一個類,則執(zhí)行AB x;語句時將自動調(diào)用該類的(b )A. 有參構(gòu)造函數(shù) B. 無參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù)15、一個const對象( b )。 A. 能訪問所有成員函數(shù) B. 只能訪問const成員函數(shù)C. 也能訪問volatile成員函數(shù)D. 能訪問const和volatile成員函數(shù)填空題1、C+源程序文件擴展名為_.cpp_2、面向?qū)ο蟮奶卣魇欠庋b、繼承和 多態(tài) 。3、采用malloc函數(shù)申請的內(nèi)存,采用 free 釋放;new操作

11、符申請的內(nèi)存,采用 delete 釋放。4、在C+中,函數(shù)的參數(shù)傳遞的方式有傳值、傳指針和 傳引用 。5、類是對具有共同屬性和行為的一類事物的抽象描述,共同屬性被描述為類中的_數(shù)據(jù)成員_,共同行為被描述為類中的_成員函數(shù)_。6、對類中的成員函數(shù)和屬性的訪問是通過_public_、_proected_和_private_這3個關(guān)鍵字來控制的。7、用關(guān)鍵字 public 控制的成員是類的接口。8、在定義類的對象時,C+程序?qū)⒆詣诱{(diào)用該對象的_構(gòu)造_函數(shù)初始化對象自身。9、在撤銷類的對象時,C+程序?qū)⒆詣诱{(diào)用該對象的_析構(gòu)_函數(shù)。10、非成員函數(shù)應(yīng)聲明為類的_友員_才能訪問這個類的private和p

12、rotected成員。11、補充完整以下程序,使其輸出 10。class MyClasspublic: MyClass ( int i ) x = i ; int getNum()constreturn x; /獲取xprivate: int x;void main() MyClass my(10);cout my.getNum() f=f ;test:test( test& t ) num=t.num ; f=t.f;讀程序,找錯誤,并說明原因。1、class A public:static void f(A a);private:int x;void A:f(A a) cout x; /錯

13、誤,x的地方是非靜態(tài)的,靜態(tài)的成員只能操作靜態(tài)的成員cout a.x; 2、class A protected:int x;int main() A a;a.x = 5; /錯誤,x是保護成員,對外不可訪問3、class Apublic: void A(int i=0)m=i; 錯,構(gòu)造函數(shù)不能返回值。 void show()coutm; void A() 錯,構(gòu)造函數(shù)不能返回值private: int m;void main() A a(5); a.m+=10; 錯,構(gòu)造函數(shù)不能返回值 a.show(); 讀程序,寫結(jié)果。1、/n=102、/i=0 k=2 m=43、/ i=10 d=15.

14、64、Point構(gòu)造函數(shù) Cirlce構(gòu)造函數(shù) Circle析構(gòu)函數(shù) Point析構(gòu)函數(shù)5、base寫2次,寫1次。(base:fun base:fun devide:fun)編程題1、編寫程序,輸出100以內(nèi)的能被3和7同時整除的所有整數(shù)。#include void main()int i; for(i=1;i=100;i+) if(i%3=0&i%7=0) coutiendl;2、編寫一個矩形類,要求可以提示用戶輸入矩形的長度和寬度,并顯示該矩形的長度、寬度和面積。#include class rectange private: int len; int wid; public: rect

15、ange(int a,int b):len(a),wid(b) int getLen()return len; int getwid()return wid; friend int area(rectange T);int area(rectange T) int s; s=T.len*T.wid; return s;int fun(rectange T) int l; l=(T.getLen()+T.getwid()*2; return l;int main() rectange a(5,7); coutnT對象面積為:area(a); coutnT對象周長為:fun(a); return

16、0; 3、下列shape類是一個表示形狀的抽象類,area( )為求圖形面積的函數(shù)。請從shape類派生三角形類(triangle)、圓類(circle),并給出具體的求面積函數(shù)。class shapepublic:virtual float area( )=0; ;class Triangle:public Shapepublic:Triangle(double h,double w)H=h;W=w;double Area() constreturn H*W*0.5;private:double H,W;4、以下是復(fù)數(shù)類Complex的定義。class Complex /復(fù)數(shù)類聲明public:Complex(double r = 0.0,double i = 0.0) real = r; imag=i; Complex operator + (const Complex &c2) const;/+重載成員函數(shù)Complex operator - (const Complex &c2) const;/-重載成員函數(shù)friend ostream & operator (ostream &

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論