級C綜合習題含答案_第1頁
級C綜合習題含答案_第2頁
級C綜合習題含答案_第3頁
級C綜合習題含答案_第4頁
級C綜合習題含答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、  單項選擇題1. 函數重載是指(  A  )。A. 兩個或兩個以上的函數取相同的函數名,但形參的個數或類型不同B. 兩個以上的函數取相同的名字和具有相同的參數個數,但形參的類型可以不同C. 兩個以上的函數名字不同,但形參的個數或類型相同D. 兩個以上的函數取相同的函數名,并且函數的返回類型相同2. 下列對引用的陳述中不正確的是(  C )。 A. 每一個引用都是其所引用對象的別名,因此必須初始化  B. 形式上針對引用的操作實際上作用于它所引用的對象  C. 一旦定義了引用,一切針對其所引

2、用對象的操作只能通過該引用間接進行   D. 不需要單獨為引用分配存儲空間3. 關于封裝,下列說法中不正確的是(  A )。    A. 通過封裝,對象的全部屬性和操作結合在一起,形成一個整體    B. 通過封裝,一個對象的實現(xiàn)細節(jié)被盡可能地隱藏起來(不可見)   C. 通過封裝,每個對象都成為相對獨立的實體    D. 通過封裝,對象的屬性都是不可見的4. 假定AA為一個類,a為該類公有的數據

3、成員,px為指向該類對象的一個指針,則訪問px所指對象中數據成員a的格式為(  C )。        A. px(a)      B. pxa      C. px->a      D. px.a5. 假定AA為一個類,int a()為該類的一個成員函數,若該成員函數在類定義體外定義,則函數頭為(  A )。  

4、;      A. int AA:a()      B. int AA:a()         C. AA:a()          D. AA:int a()6. 類的構造函數是在定義該類的一個(  C  )時被自動調用執(zhí)行的。      

5、0; A. 成員函數      B. 數據成員      C. 對象      D. 友元函數7.在公有派生情況下,有關派生類對象和基類對象的關系,不正確的敘述是( C ) A.派生類的對象可以賦給基類的對象 B.派生類的對象可以初始化基類的引用 C.派生類的對象可以直接訪問基類中的成員 D.派生類的對象的地址可以賦給指向基類的指針8.對于類定義 class A public: virtual void func1( ) void func2(

6、) ; class B:public A public: void func1( )cout<<class B func 1<<end1; virtual void func2( )cout<<class B func 2<<end1; ;下面正確的敘述是( C ) A、 A:func2( )和B:func1( )都是虛函數 、A:func2( )和B:func1( )都不是虛函數、 B:func1( )是虛函數,而A:func2( )不是虛函數 、B:func1( )不是虛函數,而A:func2( )是虛函數 9. 對于int *pa5;的描述

7、,( D )是正確的。A、      pa是一個指向數組的指針,所指向的數組是5個int型元素;B、       pa是一個指向某個數組中第5個元素的指針,該元素是int型變量;C、    pa5表示某個數組的第5個元素的值;D、      pa是一個具有5個元素的指針數組,每個元素是一個int型指針;10. 下述靜態(tài)數據成員的特征中,( D )是錯誤的。A、   &

8、#160; 說明靜態(tài)數據成員時前邊要加修飾符static;B、        靜態(tài)數據成員要在類體外進行初始化;C、       引用靜態(tài)數據成員時,要在靜態(tài)數據成員名前加<類名>和作用域運算符;D、       靜態(tài)數據成員不是所有對象所共用的。11. 以下關于函數模板敘述正確的是(  C  )。     

9、0;  A. 函數模板也是一個具體類型的函數        B. 函數模板的類型參數與函數的參數是同一個概念        C. 通過使用不同的類型參數,函數模板可以生成不同類型的函數        D. 用函數模板定義的函數沒有類型12. 下列(  B  )的調用方式是引用調用。     

10、0;  A. 形參和實參都是變量          B.形參是指針,實參是地址值        C. 形參是引用,實參是變量      D.形參是變量,實參是地址值13. 為了提高程序的運行速度,可將不太復雜的功能用函數實現(xiàn),此函數應選擇(  A  )。        A. 內聯(lián)

11、函數  B.重載函數  C.遞歸函數  D.函數模板14. 面向對象方法的多態(tài)性是指(  C )。        A. 一個類可以派生出多個特殊類        B. 一個對象在不同的運行環(huán)境中可以有不同的變體        C. 針對一消息,不同的對象可以以適合自身的方式加以響應     

12、;   D. 一個對象可以是由多個其他對象組合而成的15. 在類作用域中能夠直接使用該類的(  D )成員名進行訪問。        A. 私有      B. 公用      C. 保護      D. 任何    16. 假定一個類AB只含有一個整型數據成員a,用戶為該類定義的帶參構造函數可以為(

13、0; D  )。        A. AB()                    B. AB(): a(0)        C. AB(int aa=0) a=aa;      D. AB(int aa)

14、17. 對于任一個類,用戶所能定義的構造函數的個數至多為(  D  )。        A. 0      B. 1      C. 2      D. 任意個18. 對類對象成員的初始化是通過構造函數中給出的(  D  )實現(xiàn)的。        A

15、. 函數體      B. 初始化表      C. 參數表      D. 初始化表或函數體19. 被非靜態(tài)成員函數訪問的類的數據成員( A )。        A. 可以是非靜態(tài)數據成員或靜態(tài)數據成員    B. 不可能是類的靜態(tài)數據成員        C. 只能是

16、類的非靜態(tài)數據成員              D. 只能是類的靜態(tài)數據成員20. 引入友元的主要目的是為了(  C  )。        A. 增強數據安全性             B. 提高程序的可靠性   

17、0;    C. 提高程序的效率和靈活性     D. 保證類的封裝性21下面有關重載函數的描述中,正確的是( C )。A)重載函數必須具有不同的返回值類型 B)重載函數形參個數必須不同C)重載函數必須具有不同的形參表D)重載函數名可以不同22假定MyCIass為一個類,那么下列的函數說明中,( D )為該類的析構函數。A)voidMyClass();B)MyClass(int n);C)MyClass( );D)MyClass( );23( A )是以一種完全通用的方法來設計函數或類而不必預先說明將被使用的每個對象的類型。

18、 A)模板B)類C)對象D)函數24下面關于靜態(tài)成員函數的途術中錯語的是( B )。A) 靜態(tài)成員函數可以有返回值 B) this指針可以指向靜態(tài)成員函數C) 靜態(tài)成員函數可以具有指針參數 D) 靜態(tài)成員函數可有具有返回值類型25定義類模板時要使用關鍵字( D )。A)private B) public C)delete D)template26下列是重載乘法運算符的函數原型聲明,其中錯誤的是( A )。A)MyClass operator*(double,double);B)MyClass operator*(double,MyClass);C)MyClass operator*(MyCla

19、ss,double);D)MyClass operator*(MyClass,MyClass);27以下( C )成員函數表示純虛函數。A)virtual int fun(int)B)void fun(int)=0C)virtual void fun()=0D)virtual void fun(int) 28關于純虛函數,下列表述中正確的是( A )。A)純虛函數的聲明總是以"=0"結束B)含有純虛函數的類可以定義對象C)含有純虛函數的類是抽象類 D)上面都是錯誤的 29( C )解決二義性問題。A)能使用作用域分辨操作符B) 只能使用虛基類C) 使用作用域分辨操作符或虛基

20、類D) 上面都不能30實現(xiàn)編譯時的多態(tài)性要使用( A )。A)重載函數B)析構函數C)構造函數D)虛函數31、C+語言是從早期的C語言逐漸發(fā)展演變而來的.與C語言相比,它在求解問題方法上進行的最大改進是(B)   A、面向過程B、面向對象C、安全性D、復用性   32、考慮函數原型void test(int a,int  b=7,char="*"),下面的函數調用中,屬于不合法調用的是(C)   A、test(5); B、test(5,8); C、test(6,"#") D、

21、test(0,0."*");33、下面有關重載函數的說法中正確的是(C)   A、重載函數必須具有不同的返回值類型;B、重載函數形參個數必須不同; C、重載函數必須有不同的形參列表 D、重載函數名可以不同;34、下列關于構造函數的描述中,錯誤的是(D)   A、構造函數可以設置默認參數;B、構造函數在定義類對象時自動執(zhí)行   C、構造函數可以是內聯(lián)函數;D、構造函數不可以重載35. 關于對象概念的描述中,(A )是錯誤的。A、 對象就是C語言中的結構變量;    B、 對象代表著正在創(chuàng)

22、建的系統(tǒng)中的一個實體;      C、 對象是一個狀態(tài)和操作(或方法)的封裝體;    D、 對象之間的信息傳遞是通過消息進行的;36. 對于int *pa5;的描述,(D)是正確的。A、      pa是一個指向數組的指針,所指向的數組是5個int型元素;B、       pa是一個指向某個數組中第5個元素的指針,該元素是int型變量;C、    pa5表示某個數組的第5個元

23、素的值;D、      pa是一個具有5個元素的指針數組,每個元素是一個int型指針;37. 下述靜態(tài)數據成員的特征中,( D )是錯誤的。A、     說明靜態(tài)數據成員時前邊要加修飾符static;B、        靜態(tài)數據成員要在類體外進行初始化;C、       引用靜態(tài)數據成員時,要在靜態(tài)數據成員名前加<類名>和作用域運算符;D、 &#

24、160;     靜態(tài)數據成員不是所有對象所共用的。38. ( A )是析構函數的特征。A、 一個類中只能定義一個析構函數;    B、 析構函數與類名不同;C、 析構函數的定義只能在類體內;      D、 析構函數可以有一個或多個參數。39.    已知:p是一個指向類A數據成員m的指針,A1是類A的一個對象。如果要給m賦值為5,( C )是正確的。A、 A1.p=5;    

25、60;               B、  A1->p=5;C、  A1.*p=5;                  D、  *A1.p=5;40.   派生類的對象對它的基類成員中( C )是可以訪問的。A、 

26、     公有繼承的公有成員;   B、        公有繼承的私有成員;C、       公有繼承的保護成員;D、      私有繼承的公有成員。41.下列表示引用的方法中,正確的是(A)。(A)  int m=10; int &x=m; (B) int m=10; int &y=10; (C) int m=10; int &a

27、mp;z; (D) int m=10; ifloat &t=&m;42.下列標識符中,( C )是文件作用域。(A)    函數形參 (B)   語句標號(C)    外部靜態(tài)標識符 (D)  自動類標識符43.在程序中,函數聲明語句正確位置是(D )(A)    隨便任何位置(B)    不包含在另一函數中的任何位置。(C)    該函數使用前的任何位置(D) 該函數使用前的任何

28、位置,但不包含在另一函數中44.下面有關函數重載的程序段正確的是(A ) 。(A) int fun(int x, int y); int fun(float x, float y);(B) int fun(int x, int y); int fun(int a, int b);(C) float fun(int x, int y); int fun(int x, int y);( D) int main(); void main();45.返回類型就是函數返回結果值的數據類型。返回類型可以是(C )(A) 除數組和類以外的任意數據類型(B) 除數組和結構類型以外的任意數據類型(C) 除數組類

29、型以外的任意數據類型(D)     除指針和引用類型以外的任意數據類型46.下面關于帶默認形式參數值的函數聲明正確的是(C )。(A) int fun(int a=1, int b, int c); (B) int fun(int a=1, int b=2, int c);(C) int fun(int a, int b=2, int c=3); (D) int fun(int a=1, int b, int c=3);47.引入內聯(lián)函數的主要目的是(B )(A)   縮短程序代碼,少占用內存空間(B)   既可以

30、保證程序的可讀性,又能提高程序的運行效率(C)   占用內存空間少,執(zhí)行速度快(D)  使程序的結構比較清晰48.有關構造函數的說法不正確的是(D )(A) 構造函數名字和類的名字一樣(B) 構造函數說明類變量時自動執(zhí)行(C) 構造函數無任何函數類型(D)    構造函數有且僅有一個49.通常拷貝初始化構造函數的參數是(C )。(A) 某個對象名 (B) 某個對象的成員名(C) 某個對象的引用名 (D) 某個對象的指針名50.當保護繼承時,基類的(B )在派生類中成為保護成員,不能通過派生類的對象來直接訪問該成員。(A) 任

31、何成員 (B)公有成員和保護成員(C) 保護成員和私有成員 (D)私有成員51. 當將一個類S定義為另一個類A的友元類時,類S的所有成員函數(A )。(A) 可以直接訪問類A的所有成員 (B)只能訪問類A的公有成員(C) 不能訪問類A的私有成員 (D)具有類S中非繼承的成員函數相同的訪問權限52.設置虛基類的目的是(B)(A) 簡化程序(B) 消除二義性。(C) 提高運行效率(D)    減少目標代碼53.派生類的對象對它的基類成員中(A )是可以訪問的。(A)公有繼承的公有成員 (B)公有繼承的私有成員(C)公有繼承的保護成員 (D)私有繼承

32、的公有成員54.關于純虛函數和抽象類的描述中,下面描述錯誤的是(C )。(A) 純虛函數是一種特殊的函數,它沒有具體的實現(xiàn)(B) 抽象類是指具有純虛函數的類(C) 一個基類中說明有純虛函數,該基類的派生類一定不再是抽象類(D) 抽象類只能作為基類使用,其純虛函數的實現(xiàn)由派生類給出55. ( C)是一個在基類中說明的虛函數,它在該類中沒有定義,但要求任何派生類都必須定義自己的版本。(A)虛析構函數 (B)虛構造函數(C)純虛函數 (D)靜態(tài)成員函數二、填空題1 當一個成員函數被調用時,該成員函數的( 函數指針 ) 指向調用它的對象。2 在公有繼承的情況下,基類數據成員在派生類中的訪問權限 ( 不

33、變 ) 。3 靜態(tài)數據成員在類外進行初始化,且靜態(tài)數據成員的一個拷貝被類的所有對象 ( 共享 ) 。4 構造函數與析構函數除功能不同外,在定義形式上,它們的區(qū)別還包括構造函數名與類名相同,而析構函數名是在類名前加一個、 ( 析構函數沒有參數 ) 、 析構函數可以定義為虛函數 。5 C+中沒有輸入輸出語句,輸入輸出是通過輸入輸出庫實現(xiàn)的, 寫出一條打印整型變量n的輸出語句:( cout<<n);6 面向對象的程序設計有四大特征,它們是抽象、封裝、( 繼承 )、( 多態(tài) )。7動態(tài)聯(lián)編要滿足兩個條件,它們是 ( 被調用的成員函數是虛函數 )、 ( 用指針或引用調用虛函數 ) 。8 在C

34、+類中,有一種不能定義對象的類,這樣的類只能被繼承,稱之為 ( 抽象類 ) ,定義該類至少具有一個( 純虛函數 ) 。9 在C+類中,const關鍵字可以修飾對象和成員函數,const對象不能( 賦值) ,const成員函數不能 (修改成員數據 ) 。10 舉出C+中兩種代碼復用的方式: (繼承) 、 (復用 ) 。11對于派生類的構造函數,在定義對象時構造函數的執(zhí)行順序為:先執(zhí)行調用 ( 基類)的構造函數,再執(zhí)行調用子對象類的構造函數,最后執(zhí)行派生類的構造函數體中的內容。12聲明類模板應使用關鍵字( template )。13重載的關系運算符和邏輯運算符的返回類型應當是( bool型 )。1

35、4在面向對象方法中,類的實例稱為( 對象 )。15在類的對象被釋放時,( 析構函數 )函數會被自動調用。16 當一個成員函數被調用時,該成員函數的( 函數指針) 指向調用它的對象。17 在公有繼承的情況下,基類數據成員在派生類中的訪問權限 ( 不變 ) 。18 靜態(tài)數據成員在類外進行初始化,且靜態(tài)數據成員的一個拷貝被類的所有對象 ( 共享) 。19 構造函數與析構函數除功能不同外,在定義形式上,它們的區(qū)別還包括構造函數名與類名相同,而析構函數名是在類名前加一個、 ( 析構函數沒有參數 ) 、 析構函數可以定義為虛函數 。20 C+中沒有輸入輸出語句,輸入輸出是通過輸入輸出庫實現(xiàn)的, 寫出一條打

36、印整型變量n的輸出語句:( cout<<n );三、綜合題1編程題:設計一個立方體類Box,它能計算并輸出立方體的體積和表面積。2 :()下面程序的打印結果是_1251121_ .  #incude   int f(int);   int main()   int i;   for(i=0;i<5;i+)   cout<<F(I)<<""   return0;    

37、;  int f(int i)   static int k=1;   for(;i>0;i- -)   k + = i;   return k;      (2)在用class定義一個類時,數據成員和成員函數的默認訪問權限是 _private_.  (3)含有純虛函數的類稱為_抽象類_.   (4)已知intDBL(int n)return n + n;和longDBL(long n)return n +n;  是一個函數模板的兩個實例,則該函數模板的定義_ templateT DBL(T n)return n+n;_. 

溫馨提示

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

評論

0/150

提交評論