




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄一、單選題 1二、判斷題 12三、填空題 13四、程序填充 18五、讀程序寫出運行結果 31六、指出以下程序或函數的功能 43七、程序改錯 45八、程序設計 51面向對象程序設計答案 60-、單選題1. C+源程序文件的缺省擴展名為(A )。A. cpp B. exe C. obj D. lik2. 由C+翎程序文件編譯而成的目標文件的缺省擴展名為(C )A. cpp B. exeC. obj D. lik3. 由C+目標文件連接而成的可執行文件的缺省擴展名為(B )A. cppB. exe C. obj D. lik4. 編寫C+程序一般需經過的幾個步驟依次是(B )。A.編譯、編輯、連
2、接、調試B.編輯、編譯、連接、調試C. 編譯、調試、編輯、連接D. 編輯、調試、編輯、連接6.能作為C+理序的基本單位是(C)。A. 字符 B. 語句 C.函數 D. 源程序文件8. C+程序的基本模塊為(D)。A. 表達式 B. 標識符 C. 語句 D.函數10. 存儲以下數據,占用存儲字節最多的是( D )。A. 0 B.0' C."0"D. 0.038. 以下說法中正確的是(B )。A. C+程序總是從第一個定義的函數開始執行B. C+程序總是從 main函數開始執行C. C+函數必須有返回值,否則不能使用函數D. C+程序中有調用關系的所有函數必須放在同一個
3、程序文件中40. 函數重載是指(A )。A.兩個或兩個以上的函數取相同的函數名,但形參的個數或類型不同B. 兩個以上的函數取相同的名字和具有相同的參數個數,但形參的類型可以不同C. 兩個以上的函數名字不同,但形參的個數或類型相同D. 兩個以上的函數取相同的函數名,并且函數的返回類型相同41. 以下關于函數模板敘述正確的是( C )。A. 函數模板也是一個具體類型的函數B. 函數模板的類型參數與函數的參數是同一個概念C.通過使用不同的類型參數,函數模板可以生成不同類型的函數D. 用函數模板定義的函數沒有類型42. 下列(C )的調用方式是引用調用。A.形參和實參都是變量 B.形參是指針,實參是地
4、址值C.形參是引用,實參是變量D. 形參是變量,實參是地址值43. 為了提高程序的運行速度,可將不太復雜的功能用函數實現,此函數應選擇(A )。A.聯函數B.重載函數C.遞歸函數D.函數模板55. 以下正確的描述是(C )。A. 不允許設置參數的默認值B. 設置參數的默認值只能在定義函數時設置C.設置參數的默認值時,應該設置右邊的參數D. 設置參數的默認值時,應該全部參數都設置56. 采用重載函數的目的是( D )。A. 實現共享 B.減少空間C. 提高速度D.使用方便,提高可讀性59. 下面的標識符中,(C ) 是文件級作用域。A.函數形參B.語句標號C.外部靜態類標識符D.自動類標識符60
5、. 以下敘述不正確的是(D )。A.宏替換不占用運行時間B.宏名無類型C.宏替換只是字符替換D.宏名必須用大寫字母表示61. C+語言的編譯系統對宏命令的處理是(D )。A. 在程序運行時進行B. 在程序連接時進行C. 和C+理序的其它語句同時進行編譯D.在對源程序中其它成分正式編譯之前進行62. 當#include后面的文件名用雙引號括起來時,尋找被包含文件的方式是(B )A. 直接按系統設定的標準方式搜索目錄B.先在源程序所在目錄搜索,再按系統設定的標準方式搜索目錄C. 僅僅搜索源程序所在目錄D. 搜索當前邏輯盤上的所有目錄63. 當#include后面的文件名用尖括號括起來時,尋找被包含
6、文件的方式是(A )A.直接按系統設定的標準方式搜索目錄B. 先在源程序所在目錄搜索,再按系統設定的標準方式搜索目錄C. 僅僅搜索源程序所在目錄D. 搜索當前邏輯盤上的所有目錄67. 文件包含命令中被包含的文件的擴展名( C )。A. 必須是.h B.不能是.h C.可以是.h或.cpp D. 必須是.cpp70. 用new運算符創建一個含 10個元素的一維整型數組的正確語句是(C )C. int *p=new int10;80. 假定p指向的字符串為A. string B. ring81. 假定p指向的字符串為A. int *p=new a10; B. int *p=new float10;
7、D. int *p=new int10=1,2,3,4,5C. ingD. istring ”,貝U cout<<p+3的輸出結果為( Cstring : 若要輸出這個字符串的地址值,則使用(D )。A. cout<<*s; B. cout<<s; C. cout<<&s;D. cout<<(void *)s;82. 定義p并使p指向動態空間中的包含30個整數的數組所使用的定義語句為(A )。A. int *p=new int30;B. int *p=new int(30);C. int *p=new 30; D. *p=ne
8、w int30;83. 假定p是具有int*類型的指針變量,則給p賦值的正確語句為(B )。A. p=new int;B. p=new int*; C. p=new int*; D. p=new int10;84. 要使語句"p=new int1020;”能夠正常執行,p應被事先定義為(D )。A. int *p; B. int *p; C. int *p20;D. int(*p)20;85. 假定有"struct BOOKchar title40; float price;BOOKbook=new BOOK;',則正確的語句為(A )。A. strcpy(book
9、->title, " WangTao" ); B. strcpy(book.title, " WangTao");C. strcpy(*book.title," Wang Tao' ); D. strcpy(*book)->title," WangTao”);86. 假定有"struct BOOKchar title40; float price; BOOK *book;",則不正確的語句為(A )。A. BOOK *x=new book; B. BOOK x="C+ Programm
10、ing”,27.0;C. BOOK *x=new BOOK; D. BOOK *x=book;87. 假定有"struct BOOKchar title40; float price;book;”,則正確的語句為(B )。A. BOOK &x= &book;B. BOOK &x=book;C. BOOK &x=new BOOK; D. BOOK &x=BOOK;88. 下列對引用的述中不正確的是( C )。A. 每一個引用都是其所引用對象的別名,因此必須初始化B. 形式上針對引用的操作實際上作用于它所引用的對象C. 一旦定義了引用,一切針對其所
11、引用對象的操作只能通過該引用間接進行D. 不需要單獨為引用分配存儲空間91. 假定指針變量p定義為"int *p=new int(100);”,要釋放p所指向的動態存,應使用語句(A )。A. delete p; B. delete *p; C. delete &p; D. delete p;92. 假定指針變量p定義為"int *p=new int30;",要釋放p所指向的動態存,應使用語句(D )。A. delete p; B. delete *p; C. delete &p;D. delete p;93. 假定變量x定義為“int x=5;
12、",要使rx成為x的引用(別名),rx應定義為(D )。A. int rx=x; B. int rx=&x; C. int *rx=&x;D. int &rx=x;94. 關于消息,下列說法中不正確的是( B )。A. 發送消息的對象請求服務,接受消息的對象提供服務B.消息的發送者必須了解消息的接收者如何相應消息C. 在C+珅,消息的發送具體體現為對接收消息的對象的某個函數的調用D. 每個對象只能接收某些特定格式的消息95. 關于封裝,下列說法中不正確的是( D )。A. 通過封裝,對象的全部屬性和操作結合在一起,形成一個整體B. 通過封裝,一個對象的實現細節
13、被盡可能地隱藏起來(不可見)C. 通過封裝,每個對象都成為相對獨立的實體D.通過封裝,對象的屬性都是不可見的96. 面向對象方法的多態性是指( C )。A. 一個類可以派生出多個特殊類B. 一個對象在不同的運行環境中可以有不同的變體C.針對一消息,不同的對象可以以適合自身的方式加以響應D. 一個對象可以是由多個其他對象組合而成的97. 軟件產品在需求發生變化、運行環境發生變化或發現軟件產品本身的錯誤或不足時進行相應的軟件更新的難易程度叫做軟件的(A )。A.可維護性B.可復用性C.兼容性D.正確性98. 軟件產品可被全部或部分地再用于新的應用的能力叫做軟件的( B )。A. 可維護TB.可復用
14、性C.兼容性D.正確性99. 軟件產品與其他軟件產品組合成一個整體的難易程度叫做軟件的( C )。A.可維護性B.可復用性C.兼容性 D. 正確性100. 軟件產品準確執行軟件需求規格說明書中所規定的任務的能力叫做軟件的(D )。A.可維護性B.可復用性C. 兼容性D.正確性101. 面向對象軟件開發中使用的OOAa示(A )。A.面向對象分析B.面向對象設計C.面向對象語言D.面向對象方法102. 面向對象軟件開發中使用的00酸示(B )。A.面向對象分析 B.面向對象設計C.面向對象語言D.面向對象方法103. 關于面向對象系統分析,下列說法中不正確的是( B )。A. 術語“面向對象分析
15、”可以用縮寫00胰示B.面向對象分析階段對問題域的描述比實現階段更詳細C. 面向對象分析包括問題域分析和應用分析兩個步驟D. 面向對象分析需要識別對象的部和外部特征104. 在一個類的定義中,包含有( C )成員的定義。A. 數據 B. 函數 C.數據和函數 D.數據或函數105. 在類作用域中能夠通過直接使用該類的( D )成員名進行訪問。A. 私有 B. 公用 C. 保護 D.任何106. 在關鍵字public后面定義的成員為類的( B )成員。A. 私有 B.公用 C. 保護 D. 任何107. 在關鍵字private 后面定義的成員為類的( A )成員。A.私有 B. 公用 C. 保護
16、 D. 任何108 .假定AA為一個類,a為該類公有的數據成員,x為該類的一個對象,則訪問 x對 象中數據成員a的格式為(D )。A. x(a) B. xa C. x->aD. x.a109 .假定AA為一個類,a()為該類公有的函數成員,x為該類的一個對象,則訪問 x對象中函數成員a()的格式為(B )。A. x.aB. x.a() C. x->a D. x->a()110 .假定AA為一個類,a為該類公有的數據成員,px為指向該類對象的一個指針,則訪問px所指對象中數據成員a的格式為(C )。A. px(a) B. pxaC. px->a D. px.a111 .假
17、定AA為一個類,a為該類私有的數據成員,GetValue()為該類公有函數成員,它返回a的值,x為該類的一個對象,則訪問x對象中數據成員a的格式為(D )。A. x.a B. x.a() C. x->GetValue()D. x.GetValue()112. 假定AA為一個類,int a()為該類的一個成員函數,若該成員函數在類定義體外定義,則函數頭為(A )。A. int AA:a() B. int AA:a()C. AA:a() D. AA:int a()113. 假定AA為一個類,a為該類公有的數據成員,若要在該類的一個成員函數中訪問它,則書寫格式為(A )。A. a B. AA:
18、a C. a() D. AA:a()114. 若需要把一個類外定義的成員函數指明為聯函數,則必須把關鍵字( B )放在函數原型或函數頭的前面。A. inB. inline C. inLine D. InLiner115. 在多文件結構的程序中,通常把類的定義單獨存放于( D )中。A. 主文件 B. 實現文件 C. 庫文件 D.頭文件116. 在多文件結構的程序中,通常把類中所有非聯函數的定義單獨存放于(B )中。A. 主文件 B.實現文件 C. 庫文件 D. 頭文件117. 在多文件結構的程序中,通常把含有 main()函數的文件稱為(A )。A.主文件 B. 實現文件 C.程序文件D. 頭
19、文件118. 一個C+理序文件的擴展名為( C )。A. .h B. .cC. .cpp D. .cp119. 在C+程序中使用的cin標識符是系統類庫中定義的( A )類中的一個對象。A. istream B. ostream C. iostream D. fstream120. 在C+程序中使用的cout標識符是系統類庫中定義的( B )類中的一個對象。A. istreamB. ostream C. iostream D. fstream121. 假定AA是一個類,abc是該類的一個成員函數,則參數表中隱含的第一個參數的類型為(D )。A. int B. char C. AAD. AA*1
20、22. 假定AA是一個類,abc是該類的一個成員函數,則參數表中隱含的第一個參數為(C )。A. abc B. *thisC. this D. this&123. 假定AA是一個類,“ AA&abc(); ”是該類中一個成員函數的原型,若該函數存在又*this 賦值的語句,當用 x.abc()調用該成員函數后,x的值(A )。A.已經被改變B.可能被改變C. 不變 D.不受函數調用的影響124. 假定AA是一個類,“ AA* abc()const; ”是該類中一個成員函數的原型,若該函數返回this值,當用x.abc()調用該成員函數后,x的值(C )。A.已經被改變B.可能被
21、改變C.不變 D.受到函數調用的影響125. 類中定義的成員默認為( B )訪問屬性。A. publicB. private C. protected D. friend126. 結構中定義的成員默認為( A )訪問屬性。A. public B. private C. protected D. friend127. 當類中一個字符指針成員指向具有n個字節的存儲空間時,它所能存儲字符串的最大長度為(C )。A. n B. n+1C. n-1 D. n-2128. 在一個用數組實現的隊列類中,假定數組長度為MS隊首元素位置為first ,隊列長度為length ,則隊尾(即最后一個)元素的位置為
22、(C )。A. length+1B. first+lengthC. (first+length-1)%MSD. (first+length)%MS129. 在一個用數組實現的隊列類中,假定數組長度為MS隊首元素位置為first ,隊列長度為length ,則隊尾的后一個位置為(D )。A. length+1B. first+lengthC. (first+length-1)%MSD. (first+length)%MS130. 在一個用數組實現的隊列類中,假定數組長度為MS隊首元素位置為first ,隊列長度為length ,則隊首的后一個位置為(B )。A. first+1B. (first
23、+1)%MSC. (first-1)%MS D. (first+length)%MS131. 在一個用鏈表實現的隊列類中,假定每個結點包含的值域用 elem表示,包含的指針域用next表示,鏈隊的隊首指針用 elemHead表示,隊尾指針用 elemTail表示,若鏈隊 非空,則進行插入時必須把新結點的地址賦給(D)。A. elemHeadB. elemTailC. elemHead->next 和 elemHead D. elemTail->next 和 elemTail132. 在一個用鏈表實現的隊列類中,假定每個結點包含的值域用 elem表示,包含的指針域用next表示,鏈隊
24、的隊首指針用 elemHead表示,隊尾指針用 elemTail表示,若鏈隊 為空,則進行插入時必須把新結點的地址賦給(C)。A. elemHeadB. elemTailC. elemHead 和 elemTail D. elemHead 或 elemTail133. 隊列具有(A )的操作特性。A.先進先出B.先進后出C.進出無序D. 進出任意134. 棧具有(B )的操作特性。A.先進先出B.先進后出C.進出無序D. 進出任意135. 對于一個類的構造函數,其函數名與類名(A )。A.完全相同B.基本相同C. 不相同 D. 無關系136. 對于一個類的析構函數,其函數名與類名(C )。A.
25、完全相同B.完全不同C.只相差一個字符D. 無關系137. 類的構造函數是在定義該類的一個(C )時被自動調用執行的。A.成員函數B.數據成員C.對象 D.友元函數138. 類的析構函數是一個對象被(B ) 時自動調用的。A. 建立 B.撤消 C. 賦值 D. 引用139. 一個類的構造函數通常被定義為該類的(A )成員。A.公用 B. 保護 C. 私有 D. 友元140. 一個類的析構函數通常被定義為該類的(C )成員。A. 私有 B. 保護 C.公用 D. 友元141. 假定AB為一個類,則執行 “AB x; ”語句時將自動調用該類的(B )。A.帶參構造函數B.無參構造函數 C.拷貝構造
26、函數D.賦值重載函數142. 假定AB為一個類,則執行 “AB x(a,5); ”語句時將自動調用該類的(A )。A.帶參構造函數 B.無參構造函數 C.拷貝構造函數D.賦值重載函數143. 假定AB為一個類,則執行 "AB *s=new AB(a,5);”語句時得到的一個動態對象為(D )A. sB. s->aC. s.aD. *s144. 假定AB為一個類,則執行 "AB門=2; ”語句時將自動調用該類的(D )。A. 無參構造函數 B.帶參構造函數 C.賦值重載函數D.拷貝構造函數145. 若需要使類中的一個指針成員指向一塊動態存儲空間,則通常在(B )函數中完
27、成。A. 析構 B.構造 C. 任一成員 D. 友元146. 當類中的一個整型指針成員指向一塊具有n*sizeof(int) 大小的存儲空間時,它最多能夠存儲(A )個整數。A. n B. n+1 C. n-1 D. 1147. 假定一個類的構造函數為"A(int aa, int bb) a=aa; b=aa*bb; : 則執行 "Ax(4,5);”語句后,x.a和x.b的值分別為(C )。A. 4 和 5 B. 5 和 4 C. 4 和 20 D. 20 和 5148. 假定一個類的構造函數為"A(int aa=1, int bb=0) a=aa; b=bb;:
28、 則執行“A x(4);“語句后,x.a和x.b的值分別為(D )。A. 1 和 0 B. 1 和 4 C. 4 和 1 D. 4 和 0149. 假定AB為一個類,則(B )為該類的拷貝構造函數的原型說明。A. AB(AB x);B. AB(AB& x); C. void AB(AB& x); D. AB(int x);150. 假定一個類的構造函數為"B(int ax, int bx): a(ax), b(bx) :執行 "Bx(1,2),y(3,4);x=y;” 語句序列后 x.a 的值為(C )。A. 1 B. 2C. 3 D. 4151. 假定一個
29、類AB只含有一個整型數據成員a,當用戶不定義任何構造函數時,系統為該類定義的無參構造函數為(D )。A. AB() a=0; B. AB(int aa=0): a(aa) C. AB(int aa): a(aa) D. AB() 152. 假定一個類AB只含有一個整型數據成員a,用戶為該類定義的帶參構造函數可以為(C )。A. AB() B. AB(): a(0)C. AB(int aa=0) a=aa;D. AB(int aa) 153. 對于任一個類,用戶所能定義白構造函數的個數至多為(D )。A. 0 B. 1 C. 2D.任意個154. 對于任一個類,用戶所能定義白析構函數的個數至多為
30、(B )。A. 0B. 1 C. 2 D. 任意個155. 假定AB為一個類,則執行 “AB *px=new ABn; ”語句時將(A )。A.動態分配一個數組B.動態分配一個對象C.靜態分配一個數組D.靜態分配一個對象156. 設px是指向一個類對象的指針變量,則執行 “delete px; ”語句時,將自動調 用該類的(C )。A. 無參構造函數 B.帶參構造函數C.析構函數D.拷貝構造函數157. 當一個類對象離開它的作用域時,系統自動調用該類的 (D )。A. 無參構造函數 B.帶參構造函數C.拷貝構造函數D.析構函數158. 假定一個類對象數組為An,當離開它定義的作用域時,系統自動
31、調用該類析構函數的次數為(C )。A. 0 B. 1C. n D. n-1159. 假定AB為一個類,則執行 “ABa10; ”語句時調用該類無參構造函數的次數為(D )。A. 0 B. 1 C. 9D. 10160. 假定AB為一個類,則執行AB *px=new ABn;”語句時調用該類無參構造函數的次數為(A )。A. n B. n-1 C. 1 D. 0161. 假定AB為一個類,則執行 “AB a, b(3), *p; ”語句時共調用該類構造函數的次數為(A )。A. 2 B. 3 C. 4 D. 5162. 假定AB為一個類,則執行 “AB a(2), b3, *p4; ”語句時共調
32、用該類構造函數的次數為(B )。A. 3B. 4 C. 5 D. 9163. 假定AB為一個類,則執行“ AB a, b(2), c3, *p=&a;"語句時共調用該類無參構造函數的次數為(D)。A. 5 B. 6 C. 3D. 4164. 假定AB為一個類,則執行" AB *p=new AB(1,2); ”語句時共調用該類構造函數的次數為(B )。A. 0B. 1 C. 2 D. 3165. 假定AB為一個類,px為指向該類的一個含有 n個對象的動態數組的指針,則執行“delete 口px;"語句時共調用該類析構函數的次數為(C )。A. 0 B. 1C
33、. n D. n+1166. 對類對象成員的初始化是通過構造函數中給出的(B )實現的。A. 函數體 B.初始化表C. 參數表 D. 初始化表或函數體167. 對類中常量成員的初始化是通過構造函數中給出的(C )實現的。A.函數體B.參數表C.初始化表D.初始化表或函數體168. 對類中引用成員的初始化是通過構造函數中給出的(C )實現的。A.函數體B.參數表C.初始化表D.初始化表或函數體169. 類的構造函數可以帶有(D ) 個參數。A. 0 B. 1 C. 2D.任意170. 類的析構函數可以帶有(A ) 個參數。A. 0 B. 1 C. 2 D.任意171. 一個類的靜態數據成員所表示
34、屬性(C )。A. 是類的或對象的屬性 B.只是對象的屬性C.只是類的屬性D.類和友元的屬性172. 類的靜態成員的訪問控制( D )。A. 只允許被定義為privateB. 只允許被定義為private或protectedC. 只允許被定義為publicD.可允許被定義為 private 、protected 或 public173. 靜態成員函數對類的數據成員訪問( B )。A. 是不允許的B.只允許是靜態數據成員C.只允許是非靜態數據成員D.可允許是靜態數據成員或非靜態數據成員174. 被非靜態成員函數訪問的類的數據成員(A )。A.可以是非靜態數據成員或靜態數據成員B.不可能是類的靜態
35、數據成員C. 只能是類的非靜態數據成員D.只能是類的靜態數據成員175. 靜態數據成員的初始化是在( D )中進行的。A. 構造函數B.任何成員函數C. 所屬類D.全局區176. 當將一個類A或函數f()說明為另一個類 B的友元后,類A或函數f()能夠直接訪問類8的(D )。A.只能是公有成員B.只能是保護成員C.只能是除私有成員之外的任何成員D.具有任何權限的成員177. 引入友元的主要目的是為了( C )。A.增強數據安全性B.提高程序的可靠性C.提高程序的效率和靈活性D.保證類的封裝性178. 一個類的成員函數也可以成為另一個類的友元函數,這時的友元說明(A )。A.需加上類域的限定B.
36、 不需加上類域的限定C.類域的限定可加可不加D.不需要任何限定179. 一個類的友元不是該類的成員,與該類的關系密切,所以它( D )。A. 有this指針,有默認操作的對象B. 沒有this指針,可以有默認操作的對象C. 有this指針,不能執行默認操作D.沒有this指針,也就沒有默認操作的對象180. 在重載一個運算符時,其參數表中沒有任何參數,這表明該運算符是(B )。A.作為友元函數重載的1元運算符B.作為成員函數重載的1元運算符C.作為友元函數重載的2元運算符D.作為成員函數重載的2元運算符181. 在成員函數中進行雙目運算符重載時,其參數表中應帶有( B )個參數。A. 0B.
37、1 C. 2 D. 3182. 雙目運算符重載為普通函數時,其參數表中應帶有( C )個參數。A. 0 B. 1C. 2 D. 3183. 如果表達式a+b中的“+”是作為成員函數重載的運算符,若采用運算符函數調用格式,則可表示為(A )。A. a.operator+(b) B. b.operator+(a)C. operator+(a,b) D. operator(a+b)184. 如果表達式a=b中的“=”是作為普通函數重載的運算符,若采用運算符函數調用格式,則可表示為(C )。A. a.operator=(b) B. b.operator=(a)C. operator=(a,b) D.
38、operator=(b,a)185. 如果表達式a+中的“ +”是作為普通函數重載的運算符,若采用運算符函數調用格式,則可表示為(C )。A. a.operator+() B. operator+(a)C. operator+(a,1) D. operator+(1,a)186. 如果表達式+a中的“ +”是作為成員函數重載的運算符,若采用運算符函數調用格式,則可表示為(D )。A. a.operator+(1) B. operator+(a)C. operator+(a,1)D. a.operator+()187. 關于運算符重載,下列說確的是( C )。A. 重載時,運算符的優先級可以改變
39、。B. 重載時,運算符的結合性可以改變。C.重載時,運算符的功能可以改變。D. 重載時,運算符的操作數個數可以改變。188. 關于運算符重載,下列說確的是( B )。A. 所有的運算符都可以重載。B.通過重載,可以使運算符應用于自定義的數據類型。C. 通過重載,可以創造原來沒有的運算符。D. 通過重載,可以改變運算符的優先級。189. 一個程序中數組a和變量k定義為“ int a510,k;",且程序中包含有語句“a(2,5)=+k*3; : 則此語句中肯定屬于重載操作符的是( A )。A. ( ) B. = C. + D. *190. 假定K是一個類名,并有定義“ K k; int
40、 j; : 已知K中重載了操作符(),且語句“j=k(3); ”和“k(5)=99; ”都能順利執行,說明該操作符函數的原形只可能是(C )。A. K operator ( ) (int); B. int operator ( )(int&);C. int & operator ( )(int);D. K &operator( )(int);191. 假定M是一個類名,且 M中重載了操作符=,可以實現M對象間的連續賦值,如“m1=m2=m3;。重載操作符=的函數原型最好是(D )。A. int operaotor=(M); B. int operator=(M&
41、);C. M operator=(M&);D. M& operator=(M);192. 下面是重載雙目運算符+的普通函數原形,其中最符合+原來含義的是(A )。A. Value operator+(Value, Value);B. Value operator+(Value,int);C. Value &operator+(Value, Value); D. Value &operator+(Value&, Value&);193. 下面是重載雙目運算符-的成員函數原形,其中最符合-原來含義的是(A )。A. Value Value:opera
42、tor-(Value);B. Value Value:operator-(int);C. Value& Value:operator-(Value);D. Value& Value:operator-(Value&);194. 在重載一運算符時,若運算符函數的形參表中沒有參數,則不可能的情況是(D )。A. 該運算符是一個單目運算符。B. 該運算符函數有一個隱含的參數this 。C. 該運算符函數是類的成員函數。D.該運算符函數是類的友元函數。195. 關于插入運算符 <<的重載,下列說法不正確的是( B )。A. 運算符函數的返回值類型是ostream &
43、amp; 。B.重載的運算符必須定義為類的成員函數。C. 運算符函數的第一個參數的類型是ostream & 。D. 運算符函數有兩個參數。196. 從一個基類派生出的各個類的對象之間(C )。A. 共享所有數據成員,每個對象還包含基類的所有屬性B. 共享部分數據成員,每個對象還包含基類的所有屬性C.不共享任何數據成員,但每個對象還包含基類的所有屬性D. 共享部分數據成員和函數成員197. 如果是類B在類A的基礎上構造,那么,就稱( B )。A. 類A為基類或父類,類 B為超類或子類B.類A為基類、父類或超類,類B為派生類或子類C. 類A為派生類,類B為基類D. 類A為派生類或子類,類B
44、為基類、父類或超類198. C+的繼承性允許派生類繼承基類的( C )。A. 部分特性,并允許增加新的特性或重定義基類的特性B. 部分特性,但不允許增加新的特性或重定義基類的特性C.所有特性,并允許增加新的特性或重定義基類的特性D. 所有特性,但不允許增加新的特性或重定義基類的特性199. 派生類的成員函數可以直接訪問基類的( B )成員。A. 所有B.公有和保護C.保護和私有D. 私有200. 對于公有繼承,基類的公有和保護成員在派生類中將(D )成員。A.全部變成公有B.全部變成保護C.全部變成私有D.仍然相應保持為公有和保護201. 對于公有繼承,基類中的私有成員在派生類中將(C )。A
45、.能夠直接使用成員名訪問B.能夠通過成員運算符訪問C.仍然是基類的私有成員D.變為派生類的私有成員202. 當保護繼承時,基類的( B )在派生類中成為保護成員,在類作用域外不能夠通過派生類的對象來直接訪問該成員。A. 任何成員B.公有成員和保護成員C. 保護成員和私有成員D.私有成員203. 在定義一個派生類時,若不使用保留字顯式地規定采用何種繼承方式,則默認為(A )方式。A.私有繼承B.非私有繼承C. 保護繼承D.公有繼承204. 建立包含有類對象成員的派生類對象時,自動調用構造函數的執行順序依次為(C )的構造函數。A. 自己所屬類、對象成員所屬類、基類B. 對象成員所屬類、基類、自己
46、所屬類C. 基類、對象成員所屬類、自己所屬類D. 基類、自己所屬類、對象成員所屬類205. 當派生類中有和基類一樣名字的成員時,一般來說,( B )。A.將產生二義性B.派生類的同名成員將覆蓋基類的成員C.是不能允許的D.基類的同名成員將覆蓋派生類的成員206. C+中的虛基類機制可以保證:( D )。A. 限定基類只通過一條路徑派生出派生類B. 允許基類通過多條路徑派生出派生類,派生類也就能多次繼承該基類C. 當一個類多次間接從基類派生以后,派生類對象能保留多份間接基類的成員D. 當一個類多次間接從基類派生以后,其基類只被一次繼承207. 下列對派生類的描述中錯誤的說法是:( D )。A.
47、派生類至少有一個基類B. 派生類可作為另一個派生類的基類C. 派生類除了包含它直接定義的成員外,還包含其基類的成員D. 派生類所繼承的基類成員的訪問權限保持不變208. 派生類的對象對其基類中( A )可直接訪問。A. 公有繼承的公有成員B. 公有繼承的私有成員C. 公有繼承的保護成員D. 私有繼承的公有成員二、判斷題1 . C+中標識符的大小寫字母是沒有區別的。(F )2 . C+隹一種以編譯方式實現的高級語言。(T )3 .計算函數參數順序引起的二義性是由不同的編譯系統決定的。(T )4 .返回值類型、參數個數和類型都相同的函數也可以重載。(F )5 .使用關鍵字class定義的類中缺省的
48、訪問權限是私有( private )的。(T )6 .類的私有成員只能被類中的成員函數訪問,任何類以外的函數對它們的訪問都是非法的。(F )7 .多繼承情況下,派生類的構造函數的執行順序取決于成員初始化列表中的順序。(F )8 .在公有繼承中,基類中的公有成員和私有成員在派生類中都是可見的。(F )9 .在私有繼承中,基類中所有成員對派生類都是不可見的。(F )10 .在保護繼承中,對于垂直訪問等同于公有繼承,對于水平訪問等同于私有繼承。(T )11 .構造函數可以聲明為虛函數。(F )12 .在析構函數中調用虛函數時,采用動態束定。(F )13 .在一個成員函數調用一個虛函數時,對該虛函數的
49、調用進行動態束定。(T )14 .公有繼承可以實現子類型。(T )15 .構造函數可以聲明為純虛函數。(F )16 .說明函數原型時不需要指明每個函數參數的名字,只需要說明每個參數的類型和返回值類型就可以了。 對17 .所有的表達式都有值。錯18 .程序的編譯是以文件為單位的,因此將程序分到多個文件中可以減少每次對程序修改所 帶來的編譯工作量。 對19 .類的靜態數據成員需要在定義每個類的對象時進行初始化。錯20 .基類中被說明為 protected 和private 的成員只能被其派生類的成員函數訪問,不能被 其它的函數訪問。錯21 .當將一個類S定義為另一個類 A的友元類時,類 S的所有成
50、員函數都可以直接訪問類A的所有成員。對22 .當函數的返回值是數組類型的,傳遞的是數組第一個元素的地址。錯23 .如果派生類的成員函數的原型與基類中被定義為虛函數的成員函數原型相同,那么,這個函數自動繼承基類中虛函數的特性。對24 .字符串hello,world ”在存中存放時,占用11個字節的空間。 錯25 .用new動態申請的存空間,必須用 delete來釋放。對26 .靜態數據成員必須在類外定義和初始化。(V )27 .保護繼承時,派生類中的成員函數可以直接訪問基類中的protected 成員。(,)28 .靜態成員函數可以引用屬于該類的任何函數成員。(X )29 .指針常量可以指向相應
51、類型的常量。(V )30 .友元函數是在類聲明中由關鍵字friend 修飾說明的類的成員函數。(X)31 .如果程序中未聲明構造函數,則系統自動產生出一個默認形式的構造函數。32 .友元函數訪問對象中的成員可以不通過對象名( X )33 .如果程序中未聲明析構函數,編譯器將自動產生一個默認的析構函數。(,)34 .類中的成員數據可以是另一個類的對象。( V )35 .常引用做形參,在函數中不能更新所引用的對象。(,)36 .虛函數不能是類的靜態成員。對37 .重定義虛函數的派生類必須是公有繼承的。對38 .對于從基類繼承的虛函數,派生類也可以不進行重定義。對39 .純虛函數與函數體為空的虛函數
52、等價。錯40 .多態類提供了一種動態多分支派送機制。對41 .作為虛函數隱含參數的this指針,決定了虛函數調用時執行的代碼。對、填空題1. C+語百是在 語后的基礎上發展起來的。2. C+語言的編譯單位是擴展名為 的 文件。5 .用于輸出表達式值的標準輸出流對象是 。6 .用于從鍵盤上為變量輸入值的標準輸入流對象是 。8 . 一個函數的函數體就是一條 語句。9 .當執行cin語句時,從鍵盤上輸入每個數據后必須接著輸入一個 符,然后 才能繼續輸入下一個數據。10 .在C+程序中包含一個頭文件或程序文件的預編譯命令為 。13 .在#include命令中所包含的頭文件,可以是系統定義的頭文件,也可
53、以是定義的頭文件。14 .使用#include命令可以包含一個頭文件,也可以包含一個 文件。17 . C+以文件和源程序文件的擴展名分別為 和。18 .程序文件的編譯錯誤分為 和 兩類。22 .當執行cout語句輸出endl數據項時,將使C+顯示輸出屏幕上的光標從當前位置 移動到 的開始位置。38 .在C+中存儲字符串" abcdef”至少需要 個字節。39 .在C+中存儲字符串" a+b=c”至少需要 個字節。52 . 設 enum Printstatusready,busy,error;貝U cout<<busy 的輸出 結果是 O則 cout<<
54、;busy 的輸出 結果是53 .設 enum Printstatusready=2,busy,error;55 .枚舉類型中的每個枚舉值都是一個 ,它的值為一個 。87 .在C+語言中,一個函數由函數頭和 組成。88 .重載一個函數的條件是:該函數必須在參數白個數或參數的 上與其它同 名函數有所不同。89 .如果一個函數只允許同一程序中的函數調用,則應在該函數定義前加上 C+保留字。90 .若“double x=100; ”是文件F1.CPP中的一個全局變量定義語句,若文件F2.CPP中的某個函數需要訪問此x ,則應在文件F2.CPP中添加對x的聲明語句為91 .定義一個函數模板要用到的第一
55、個修飾符是 。92 .在函數模板的參數中,用 class修飾的參數稱為 參數。93 .如果一個函數直接或間接地調用自身,這樣的調用稱為 調用。94 .已 知 int cubin(int n)return n*n*n;和double cubin(double n)return n*n*n;是一個函數模板的兩個實例, 假定類型參數用 T表示,則該函數模板的定義是 。96 .如果一個函數定義中使用了 修飾,則該函數不允許被其它文件中的函數 調用。97 .如果一個函數中有多個默認參數,則默認參數必須全部處在形參表的部分。98 .定義外部變量時,不用存儲類說明符 ,而聲明外部變量時用它。99 .調用系統函數時,要先使用 #include命令包含該系統函數的原型語句所在的100 .函數形參的作用域是該函數的 。101 . C+提供的預處理命令有宏定義命令,條件編譯命令和 。103 . C+程序運行時的存空間可以分成全局數據區,堆區,棧區和 。104 .全局變量和靜態局部變量具有靜態生存期,存放在存的 區中。105 .局部變量具有局部生存期,存放在存的 區中。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 特色餐廳股權轉讓與品牌運營管理合同
- 車庫租賃與新能源充電服務合同
- 采礦權質押貸款合同風險管理
- 股東借款用于公司并購重組合同
- 入駐伙伴合同協議書模板
- 教師臨時聘任合同協議書
- 戀愛合同協議書范本下載
- 煤礦后勤服務合同協議書
- 保潔員工合同協議書
- 餐桌合作協議書合同模板
- 珍奇觀賞植物智慧樹知到期末考試答案章節答案2024年西南大學
- MOOC 健康評估-河南大學 中國大學慕課答案
- (正式版)QBT 8006-2024 年糕 標準
- 備貨合同協議書范本
- 數字貿易學-思考題及答案 第5章 數字服務貿易 思考題答案
- 建筑工程施工現場的綠色環保管理措施
- 外研版(三起)五年級下冊全冊單元測試題
- TBNCY 001-2023 西雙版納白茶
- 人工智能在審計工作中的應用
- 《城市更新案例》課件
- 2024在役立式圓筒形鋼制焊接儲罐安全附件檢驗技術規范
評論
0/150
提交評論