




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上一、單項選擇題(本大題共10 小題,每小題2 分,共20 分)1.在C+中,函數原型不能標識(D )A.函數的返回類型B.函數參數的個數C.函數參數類型D.函數的功能2.在C+程序中,對象之間的相互通信通過(B )A.繼承實現B.調用成員函數實現C.封裝實現D.函數重載實現3.對于任意一個類,析構函數的個數最多為(B ) 5.友元關系不能(A )A.繼承B.是類與類的關系C.是一個類的成員函數與另一個類的關系D.提高程序的運行效率6.語句ofstream f(,ios:appios:binary)的功能是建立流對象f,試圖打開文件 并與之連接,并且(A )A.若文件存
2、在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文件B.若文件存在,將其置為空文件;若文件不存在,打開失敗C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個新文件D.若文件存在,打開失敗;若文件不存在,建立一個新文件7.下面說法正確的是(B )A.內聯函數在運行時是將該函數的目標代碼插入每個調用該函數的地方B.內聯函數在編譯時是將該函數的目標代碼插入每個調用該函數的地方C.類的內聯函數必須在類體內定義 D.類的內聯函數必須在類體外通過加關鍵字inline 定義以用 的形式訪問派生類對象p 的基類成員a,其中a 是(D )A.私有繼承的公有成員B.公有繼承的私有成員C.公有繼
3、承的保護成員D.公有繼承的公有成員公有派生情況下,有關派生類對象和基類對象的關系,不正確的敘述是( C)A.派生類的對象可以賦給基類的對象 B.派生類的對象可以初始化基類的引用C.派生類的對象可以直接訪問基類中的成員 D.派生類的對象的地址可以賦給指向基類的指針于類定義class Apublic:virtual void func1( ) void func2( ) class B:public Apublic:void func1( )cout<<class B func 1<<end1virtual void func2( )cout<<class B
4、func 2<<end1下面正確的敘述是(C )A. A:func2( )和B:func1( )都是虛函數 B. A:func2( )和B:func1( )都不是虛函數C. B:func1( )是虛函數,而A:func2( )不是虛函數 D. B:func1( )不是虛函數,而A:func2( )是虛函數第二部分非選擇題(共80 分)二、填空題(本大題共10 小題,每小題2 分,共20 分)11.定義類的動態對象數組時,系統只能夠自動調用該類的_無參_構造函數對其進行初始化。12.在C+程序設計中,建立繼承關系倒掛的樹應使用_單_一_繼承。13.表達式cout<<end
5、1 還可表示為_cout<<n_。14.基類的公有成員在派生類中的訪問權限由_訪問控制_ _決定。+支持的兩種多態性分別是_編譯時的_(操作重載)_靜態_多態性和_運行時的(虛函數)_動態_多態性。+中語句const char * const p=hello;所定義的指針p 和它所指的內容都不能被_改變(重新賦值)_。17.假定AB 為一個類,則語句AB(AB&x);為該類_拷貝_構造函數的原型說明。18.將關鍵字const 寫在成員函數的_函數頭_和_函數體_之間時,所修飾的是this 指針。19.在C+中,訪問一個對象的成員所用的運算符是_·_,訪問一個指針所
6、指向的對象的成員所用的運算符是_>_。20.派生類從一個或多個以前定義的該類的_基類_一、單項選擇題(每題2分,共20分)1. 派生類對象可訪問基類中的什么成員( A)A.公有繼承的公有成員 B.公有繼承的私有成員 C.公有繼承的保護成員 D.私有繼承的公有成員2. 定義析構函數時,應該注意(
7、160; C )A.其名與類名完全相同 B.返回類型是void類型 C.無形參,也不可重載 D.函數體中必須有delete語句3. 如果類A被說明成類B的友元,則( D )。 A.類A的成員即類B的成員 B.類B
8、的成員即類A的成員 C.類A的成員函數不得訪問類B的成員 D.類B不一定是類A的友元 4. 應在下列程序劃線處填入的正確語句是( C ) #include class Base public: void fun()cout<<"Base:fun"<<endl; ; class Derived:public Base void fun() _ (); C. Base:fun(
9、); D. Base->fun();5. 面向對象程序設計將數據與( A )放在一起,做為一個相互依存、不可分割的整體來處理。 A. 對數據的操作 B. 信息 C. 數據隱藏 D. 數據抽象6. 在類中聲明轉換函數時不能指定( A )。 A. 參數 B. 訪問權限 C. 操作 &
10、#160; D. 標識符 7. 在派生類中重新定義虛函數時必須在( A )方面與基類保持一致。 A. 參數類型 B. 參數名字 C. 操作內容 D. 賦
11、值8. 下面關于C+中類的繼承與派生的說法錯誤的是( C )。A基類的protected成員在公有派生類的成員函數中可以直接使用B基類的protected成員在私有派生類的成員函數中可以直接使用C公有派生時,基類的所有成員訪問權限在派生類中保持不變D基類的protected成員在保護派生類的成員函數中可以直接使用9. 重載賦值操作符時,應聲明為( C )函數。 A. 友元 B. 虛 &
12、#160; C. 成員 D. 多態10. 語句 ofstream f(,ios:appios:binary); 的功能是建立流對象 f,試圖打開文件 并與之連接,并且 ( A ) A. 若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個新文件 B. 若文件存在,將其置為空文件;若文件不存在,打開失敗 C. 若文件存在,將
13、文件寫指針定位于文件首;若文件不存在,建立一個新文件 D. 若文件存在,打開失敗;若文件不存在,建立一個新文件 二、填空題(每空2分,共30分)1. 假定 AB 為一個類,則語句 AB(AB&x) ;為該類 _ 復制 構造函數的原型說明。2. C+ 支持的兩種多態性分別是 _編譯時的_ 多態性和 運行時的_ 多態性。3. 定義類的動態對象數組時,系統只能夠自動調用該類的 無參的_ 構造函數對其進行初始化。4. 運算符重載時,其函數名由 _
14、operator運算符_ 構成。成員函數重載雙目運算符時,左操作數是_當前對象_,右操作數是_函數形參_。C+標準庫中的異常層次的根類為exception _類;MFC類庫中絕大多數類都源自根類_ CObject _類。在下面橫線處填上適當字句,完成類中成員函數的定義。 class A int * a; public: A(int aa=0) a=_ new int(aa)_; 在下面選項中,對類的拷貝構造函數的聲明形式是(B)A. A:A(&) B. A:A(constA&
15、amp;) C. A:A(A) D. void A:A(A&a)2. 下面關于成員函數特征的描述中,錯誤的是(A )A成員函數不可以設置參數的默認值 B成員函數可以重載C成員函數可以是內聯函數 D成員函數可以是靜態的3. 下面關于類模板敘述不正確的是( B ) A可以有多個構造函數 B. 類模板是模板類的實例C. 一個類模板可以用來實例化多個模板類 D. 類模板可以有多個參數4. 要使一個類成為抽象類,這個類應具有的條件是(A )A至少有一個純虛函數 B. 至少有一個虛函數C. 只含有一個純虛函數 D. 只含有一個虛函數5. 有關運算符重載正確的描述是
16、( D )A. C+語言允許在重載運算符時改變運算符的操作個數 B. C+語言允許在重載運算符時改變運算符的優先級C. C+語言允許在重載運算符時改變運算符的結合性 D. C+語言允許在重載運算符時改變運算符的原來的功能6. 下列說法正確的是( D )。A. 一個類的對象可以是另一個類的成員 B. 一個類可以作為另一個類的派生類C. 一個類可以在另一個類定義體進行定義 D. 以上說法均正確7. 有如下程序: #include <>class BASEchar c; public:BASE(char n):c(n) virtualBASE()cout<<c; ; clas
17、s DERIVED:public BASE char c; public: DERIVED(char n):BASE(n+1),c(n) DERIVED()cout<<c; ; int main() DERIVED('X'); return 0; 執行上面的程序將輸出( C )。A)X B)YX C)XY D)Y8. 類MyClass的定義如下:class MyClass public:MyClass()value=0;SetValue(int i)value=i; private: int value;則對語句:MyClass
18、*p,my;p=&my;正確的描述是( D )。A. 語句p=&my;是把對象my賦值給指針變量p;B. 語句MyClass *p,my;會調用兩次類MyClass的構造函數C. 對語句*(5)的調用是正確的 D. 語句p->SetValue(5)與(5)等價9. 下列各類函數中, C不是類的成員函數。A. 構造函數 B. 析構函數 C. 友元函數 D. 拷貝構造函數10. 派生類的對象對它的基類成員中 A 是可以訪問的。A. 公有繼承的公有成員 B. 公有繼承的私有成員 C. 公有繼承的保護成員 D. 私有繼承的公有成員二、填空題(每空2分,共30分)1. 定
19、義內聯函數所用的關鍵字 inline ,定義友元所用的關鍵字為 friend 。2. 當一個派生類具有多個基類時,這種繼承方式稱為_ 多重繼承 _。3. 通過一個構造函數調用虛函數時,C+系統對該調用采用 靜態 聯編。4. 任何類中允許有_privated_、public_、_protected_三種訪問控制類型的成員,數據成員和成員函數的默認類型為_privated _。5. 只有在 公有 繼承的情況下,基類和派生類之間才有賦值兼容性規則。6. C+標準庫中的異常層次的根類定義在庫的頭文件_ _中。7. 運算符重載使用的兩種方式是_成員函數_和友元函數_。8. C+支持面向對象程序設計的四個
20、要素是:抽象性、多態性_、封裝性_和_繼承性_。一、單項選擇題(每題2分,共20分)1. 下面有關構造函數和new運算符關系正確的說法是(D )Anew運算符不調用構造函數 B. 構造函數一定調用new運算符C當生成新類的實例時,先調用new運算符,然后調用構造函數進行初始化D. 當new運算符動態產生類的對象時,new運算符也自動調用構造函數2. 下面有關類性質的說法錯誤的是( D ) A.一個類可以有多個構造函數,但只有一個析構函數 B.析構函數和構造函數都不能有返回類型C.不能給析構函數指定參數 D.一個類中不可以聲明具有類類型的數據成員3. 下面關于友元函數描述正確的是( C)A友元函
21、數是類的成員B友元函數在類的外部聲明C友元函數在類中聲明D. 友元函數能夠派生4. 下面敘述正確的是( D ) A. 派生類不可以使用私用派生 B. 保護派生時,基類的保護成員在派生類中是公有的C. 對基類成員的訪問允許二義性 D. 賦值兼容規則也適用于多重繼承的組合5. 有關運算符重載正確的描述是( D)A. C+語言允許在重載運算符時改變運算符的操作個數 B. C+語言允許在重載運算符時改變運算符的優先級C. C+語言允許在重載運算符時改變運算符的結合性 D. C+語言允許在重載運算符時改變運算符的原來的功能6. 下面描述中,表達錯誤的是( B ) ?A. 公有繼承時基類中的public成
22、員在派生類中仍是public的B. 公有繼承是基類中的private成員在派生類中仍是private的 C. 公有繼承時基類中的protected成員在派生類中仍是protected的D. 私有繼承時基類中的public成員在派生類中是private的7. 拷貝構造函數的參數是( )A. 某個對象名 B. 某個對象的成員名 C. 某個對象的引用名 D. 某個對象的指針名8. 下列關于構造函數的描述中,錯誤的是( )A構造函數可以設置默認參數 B.構造函數在定義類對象時自動執行C構造函數可以是內聯函數D.構造函數不可以重載9. 數組作為函數的形參時,把數組名作為實參,傳遞給函數的是( )A該數組
23、的首地址 B該數組的元素個數C該數組中的各元素值 D該數組的大小10. 通過一個析構函數調用虛函數時,C+系統對該調用采用()。A. 動態聯編 B. 靜態聯編 C. 不確定是哪種聯編 D.函數重載二、填空題(每空2分,共30分)1成員名限定的符號是 : ,它可以在引用成員時避免 二義性 。2只有在 公有 繼承的情況下,基類和派生類之間才有賦值兼容性規則。3. 模板分為 類 模板和 函數 模板。4. 在用class定義一個類時,數據成員和成員函數的默認訪問權限是 。5. 已知int DBL(int n)return n+n;和long DBL(long n)return n+n;是一個函數模板的
24、兩個實例,則該函數模板的定義是 () 。(要求寫出函數模板的完整定義)6. 靜態數據成員必須在 類外 進行初始化。7. 含有純虛函數的類稱為 抽象類 。8. 若Queue是一個類,aQueue是它的一個對象,而且該類中定義了一個靜態成員函數show()則在類外對該成員的函數進行調用的方式可以為 () 和 Queue:show() 。9. 定義內聯函數所用的關鍵字為 ,定義友元所用的關鍵字為 。10. 使用成員函數重載運算符時,若運算符是二元的,則參數表中有 個操作數,此時當前對象 作為此運算符的左操作數。一、單項選擇題(每題2分,共20分)1. 下面有關重載函數的說法中正確的是(C ) A重載
25、函數必須具有不同的返回值類型;B重載函數形參個數必須使用string類建立對象的不正確方式是(D)。A. string str(“OK”); B. string str=”OK”; C. string str; D. string str=OK;3. 面關于C+中類的繼承與派生的說法錯誤的是( C)A基類的protected成員在公有派生類的成員函數中可以直接使用B基類的protected成員在私有派生類的成員函數中可以直接使用C私有派生時,基類的所有成員訪問權限在派生類中保持不變D繼承可以分為單一繼承與多重繼承4. 面向對象程序設計將數據與(A )放在一起,作為一個相互依存、不可分割的整體來
26、處理。A. 對數據的操作B. 信息C. 數據隱藏D.數據抽象5. 一個類的析構函數 A 。A.唯一的 B.允許重載 C.至多可有兩個 D.只能是缺省的6. 下列各類函數中,( C )不是類的成員函數。A. 構造函數 B. 析構函數 C. 友元函數 D. 拷貝構造函數7. 在下面選項中,對類的拷貝構造函數的聲明形式是( B )AA:A(&) B. A:A(constA&) C. A:A(A) D. void A:A(A&a)8. 下面關于靜態成員描述正確的是(B )A. 靜態成員是對象的數據成員B. 靜態成員是對象的成員C. 靜態成員是對象的成員函數D. 靜態成員不是對象
27、的成員9. 下面關于成員函數特征的描述中,錯誤的是( A )A成員函數不可以設置參數的默認值 B成員函數可以重載C成員函數可以是內聯函數D成員函數可以是靜態的10. 下面敘述正確的是( D)A基類的保護成員在派生類中仍然是保護的 B基類的公有成員在派生類中仍然是公有的C基類的私有成員在派生類中是私有的 D從基類派生時,可以有3種派生方法1. class base int a;public:int b;int f(int i,int j);class derive:baseint c;public:int base:b; base:f(int i,int j); ; 1 2 2. #includ
28、e <>class Apublic:void A(int i=0)m=i;void show()cout<<m;void A()private:int m; ;void main()A a(5);+=10;();3 4 5 3. #include<iostream>using namespace std;class baseint a;static int b;public:base(int m,int n):a(m),b(n)static int geta()return a;static int getb()return b;void show()cou
29、t<<geta()<<”,”<<getb()<<endl;base:int b=45;void main()6 7 8 1 int base:b; 2 base:f(int i,int j);1 base:b; (或訪問聲明僅僅調整名字的訪問,不可為它說明任何類型) 2 base:f; (或訪問聲明不應說明函數參數)3 void A(int i=0)m=i;4 void A()5 +=10;3 構造函數去掉void(或構造函數不能指定返回值類型)4 析構函數去掉void(或析構函數不能指定返回值類型)5 對象不能訪問私有成員 6 base(int
30、 m,int n):a(m),b(n)7 static int geta()return a;8 base:int b=45;6 不能通過構造函數初始化靜態數據成員(只要把b(n)去掉即可) 7 靜態成員函數中不能引用非靜態成員數據成員(或去掉static) 8 int base:b = 45; 1. Template<class T>T fun(T x)T y;y=T-2*x;retrun y;1 2 2. class basepublic: f(); f(int a); f(char *p);class derive:basepublic: void f(int s); bas
31、e:f; 3. #include <>class A public: void setA(int); void showA(); private: int a;class B public: void setB(int); void showB(); private: int b;class C : public A, private B public: void setC(int, int, int); void showC(); private: int c;void A:setA(int x) a=x; void B:setB(int x) b=x; void C:setC(
32、int x, int y, int z) a=x; b=y; setA(x); setB(y); c=z; 1 Template<class T>2 y=T-2*x;1 改為template<class T> 2 T不能用作-的操作數 3 base:f;3 派生類中具有與基類同名的函數,則基類中的此函數不能在派生類中進行訪問聲明4 a=x;5 b=y;6 (6);7 ();8 return 0;4 派生類不能訪問基類A類的私有成員5 派生類不能訪問基類B類的私有成員6 不能訪問B類的公有成員setB 7 不能訪問B類的公有成員showB 8 去掉此語句,或主函數的返回值
33、void去掉或改為int 一、 填空(每題2分,共20分)1、 C+程序中,對象的初始化和清理工作,分別由兩個特殊的成員函數()和()來完成。2、 在c+中,分別用(變量)與(函數)來表現某種事物的所具有的屬性和行為,并且將它們封裝在一起,形成一種抽象數據類型類。3、 當用一個對象初始化另一個新的同類對象,將調用(),其特殊之處在于:形參是()。4、 模板是C+支持參數化的工具,我們通常用類模板和函數模板,這些只是面向對象的()性的一個方面。5、 如果在某個類定義中用關鍵字()聲明了一個外部函數(也許是其他類的一個成員)后,這個外部函數就可以例外的訪問該類的任何成員,這個外部函數稱為類的()函
34、數。6、 可以將類的成員聲明為static,使其成為()。這樣的成員在編譯時被創建,其實例只有一個,為所有該類的對象()。7、 ()是動態動態聯編的基礎。它是非靜態的成員函數,經過()之后,在類族中可以實現運行過程中的多態。8、 程序中有如下語句:int a=30;int b=a+;int c=+a; 則b=( ),c=()9、 數組A2020中,第一個元素是(),最后一個元素是()10、聲明一個int型指針,請為其動態分配含10個元素的地址空間:( )。二、 程序分析(30分)1、分析程序,寫出程序的輸出結果(7分)。#include<> class Clock private:
35、 int Hour,Minute,Second;public:void SetTime(int NewH=24,int NewM=24,int NewS=24)Hour=NewH;Minute=NewM;Second=NewS;void ShowTime()cout<<Hour<<”:”<<Minute<<”:”<<Second<<endl;void main()cout<<”time set and output: ”<<endl;Clock MyClock;();();(8,30,30);();
36、2、分析程序,寫出程序的輸出結果(7分)。#include<> class pointprivate:int x,y;public:point(int xx=0,int yy=0)x=xx;y=yy;cout<<”構造函數被調用”<<endl;point(point &p);int GetX()return x;int GetY()return y;point:point(point &p)x=;y=;cout<<”拷貝構造函數被調用”<<endl;void main()point A(4,5);point B(A);cout<<()<<endl;3、 在括號中注釋相應的語句(8分)n”;delete pa;/()4、注釋下列語句(8分)#include<>#include<>#include&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內設計量房標準流程
- 醫護聯動:溝通與協作
- Acid-PEG4-NHS-ester-生命科學試劑-MCE
- 2025年人工智能法律政策圖景研究報告
- 新能源汽車充電設施布局優化與2025年運營效率提升風險控制策略
- 智能家居系統互聯互通標準下的智能家居行業市場細分及競爭格局報告
- 2025年醫藥行業CRO模式下的臨床試驗數據監查員培訓與認證報告
- 紡織服裝制造業智能化生產智能化生產設備技術升級項目報告
- 教育游戲化在虛擬現實教育中的應用與教學創新報告
- 2025年土壤污染修復技術產業現狀與發展趨勢研究報告
- 科室vte管理制度
- 中小學美術教學評價構建及實施策略
- 江蘇省揚州市2024-2025學年四年級下學期6月數學期末試題一(有答案)
- 2024年西南醫科大學招聘專職輔導員真題
- 建設工程動火管理制度
- 保育師操作考試題及答案
- 學校公務外出管理制度
- 天津市部分區2025年九年級下學期中考二模數學試卷(含詳解)
- 廣東省珠海市文園中學2025屆七下數學期末質量跟蹤監視試題含解析
- 公共組織績效評估-形考任務二(占10%)-國開(ZJ)-參考資料
- AI驅動的智能汽車故障診斷系統
評論
0/150
提交評論