




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.C+程序設(shè)計模擬試卷(四)一、單項選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。1. 當(dāng)一個類的某個函數(shù)被說明為virtual時,該函數(shù)在該類的所有派生類中()A. 都是虛函數(shù)B. 只有被重新說明時才是虛函數(shù)C. 只有被重新說明為virtual時才是虛函數(shù)D. 都不是虛函數(shù)答案:A解析:(P170)在基類聲明為virtual的函數(shù)為虛函數(shù),在派生類中只要有相同的函數(shù)(函數(shù)名相同、返回值相同、形參類型和個數(shù)相同)即使不用virtual說明,也都是虛函數(shù)。2. 要禁止修改指針p本身,又要禁
2、止修改p所指向的數(shù)據(jù),這樣的指針應(yīng)定義為()A. const char *p=“ABCD”;B. char *const p=“ABCD”;C. char const *p=“ABCD”;D. const char * const p=“ABCD”;答案:D解析:(P12)const char *p說明禁止通過p修改所指向的數(shù)據(jù)。char * const p則說明不能修改指針p的地址。因此const char * const p=“ABCD”;它禁止修改指針p本身,又禁止修改p所指向的數(shù)據(jù)。3. 函數(shù)調(diào)用func(exp1,exp2),(exp3,exp4,exp5)中所含實(shí)參的個數(shù)為()A.
3、 1B. 2C. 4D. 5答案:B解析:(exp1,exp2)、(exp3,exp4,exp5)表示是兩個逗號表達(dá)式,值是最后一個值,相當(dāng)于兩個參數(shù)。因此實(shí)參的個數(shù)是2。4. 設(shè)有函數(shù)模板template Q Sum(Q x,Q y)return (x)+(y);則下列語句中對該函數(shù)模板錯誤的使用是()A. Sum(10,2);B. Sum(5.0,6.7);C. Sum(15.2f,16.0f);D. Sum(“AB”,”CD”);答案:D解析:(P40)由Q Sum(Q x,Q y)可知形參和函數(shù)返回值都是同一種數(shù)據(jù)類型。A、B、C三項都正確。而D項用字符串作為實(shí)參,字符串的操作與數(shù)值類
4、型不同,要用特殊方法進(jìn)行字符串的連接和運(yùn)算。5. 類B是類A的公有派生類,類A和類B中都定義了虛函數(shù)func(),p是一個指向類A對象的指針,則p-A:func()將()A. 調(diào)用類A中的函數(shù)func()B. 調(diào)用類B中的函數(shù)func()C. 根據(jù)p所指的對象類型而確定調(diào)用類A中或類B中的函數(shù)func()D. 既調(diào)用類A中函數(shù),也調(diào)用類B中的函數(shù)答案:A解析:(P117)指向類成員指針的使用,A:func()是明確調(diào)用A類的func函數(shù),所以不管p指向基類或者派生類對象,都執(zhí)行基類虛函數(shù)。注意p-A:func()和p-fun();進(jìn)行區(qū)分。如果使用p-fun(),因為p指向派生類對象,由動態(tài)多
5、態(tài)性可知要調(diào)用派生類的虛函數(shù)。6. 在面向?qū)ο蟮某绦蛟O(shè)計中,首先在問題域中識別出若干個 ()A. 函數(shù)B. 類C. 文件D. 過程答案:B解析:(P31)面向過程的和面向?qū)ο蠖季哂小⒑瘮?shù)、文件和過程這些概念,而面向?qū)ο蟪绦虿庞蓄惡蛯ο蟮奶卣?。所以選擇B。7. 已知f1和f2是同一類的兩個成員函數(shù),但f1不能直接調(diào)用f2,這說明()A. f1和f2都是靜態(tài)函數(shù)B. f1不是靜態(tài)函數(shù),f2是靜態(tài)函數(shù)C. f1是靜態(tài)函數(shù),f2不是靜態(tài)函數(shù)D. f1和f2都不是靜態(tài)函數(shù)答案:C解析:(P107)普通成員函數(shù)可以調(diào)用靜態(tài)函數(shù),相反靜態(tài)函數(shù)不能調(diào)用普通成員函數(shù),這與普通函數(shù)與常成員函數(shù)相同。因此選擇C項。
6、8. 下列有關(guān)模板和繼承的敘述正確的是 ()A. 模板和繼承都可以派生出一個類系B. 從類系的成員看,模板類系的成員比繼承類系的成員較為穩(wěn)定C. 從動態(tài)性能看, 繼承類系比模板類系具有更多的動態(tài)特性D. 相同類模板的不同實(shí)例一般沒有聯(lián)系,而派生類各種類之間有兄弟父子等關(guān)系答案:D解析:(P145)類是相同類型事物的抽象,具有不同的操作。而模板是不同類型的事物,具體相同的操作的抽象。類模板的實(shí)例化后,各個對象沒有任何關(guān)系。而類對象是通過派生、繼承等關(guān)系的關(guān)系。9. 有關(guān)C+編譯指令,以下敘述正確的是()A. C+每行可以寫多條編譯指令B. #include指令中的文件名可含有路徑信息C. C+的
7、編譯指令可以以#或/開始D. C+中不管if后的常量表達(dá)式是否為真,該部分都需要編譯答案:B解析:(P96)編譯指令以作為開頭,只能一行寫一條,if有選擇進(jìn)行編譯,所以選擇B項。10. 在C+中不返回任何類型的函數(shù)應(yīng)該說明為()A. intB. charC. voidD. double答案:C解析:無形參或無返回值都可以用void來聲明,int char double分別是整型、字符型和實(shí)型。11. 若Sample類中的一個成員函數(shù)說明如下:void set(Sample& a),則Sample& a的含義是()A. 指向類Sample的名為a的指針B. a是類Sample的對象引用,用來作函
8、數(shù)Set()的形參C. 將a的地址賦給變量SetD. 變量Sample與a按位與的結(jié)果作為函數(shù)Set的參數(shù)答案:B解析:(P53)成員函數(shù)使用對象的引用作為形參。該函數(shù)的功能是將已知對象的所有數(shù)據(jù)成員的值拷貝給相應(yīng)對象的所有數(shù)據(jù)成員,不會建立臨時對象,這里是對象的引用所以選擇B。12. 下列關(guān)于靜態(tài)數(shù)據(jù)成員的描述中正確的是()A. 靜態(tài)數(shù)據(jù)成員是類的所有對象所共有的B. 靜態(tài)數(shù)據(jù)成員要在構(gòu)造函數(shù)內(nèi)初始化C. 類的每個對象有自己的靜態(tài)數(shù)據(jù)成員D. 靜態(tài)數(shù)據(jù)成員不能通過類的對象調(diào)用答案:D解析:(P107)靜態(tài)成員屬于類的即所有對象所共享的,只能在外部進(jìn)行初始化。使用時可以使用形式有兩種,類名:靜
9、態(tài)成員或者對象.靜態(tài)成員。所以選擇D項。13. 在編譯指令中,宏定義使用哪個指令()A. #ifB. #includeC. #defineD. #error答案:C解析:(P7)#if條件編譯,include文件包含,error錯誤處理。14. 類的析構(gòu)函數(shù)是對一個對象進(jìn)行以下哪種操作時自動調(diào)用的是()A. 建立B. 撤銷C. 賦值D. 引用答案:B解析:(P80)刪除對象或結(jié)束程序時,自動調(diào)用析構(gòu)函數(shù)。15. 關(guān)于new運(yùn)算符的下列描述中,錯誤的是()A. 它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組B. 使用它創(chuàng)建的對象或?qū)ο髷?shù)組可以使用運(yùn)算符delete刪除C. 使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù)D.
10、使用它創(chuàng)建對象數(shù)組時必須指定初始值答案:D解析:(P107)靜態(tài)成員的特性是靜態(tài)成員只有一個拷貝(副本),這個副本被所有屬于這個類的對象共享。這種共享與全局變量或全局函數(shù)相比,既沒有破壞數(shù)據(jù)隱藏的原則,又保證了安全性。靜態(tài)成員表示整個類范圍的信息,其聲明以關(guān)鍵字static開始,包括靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。在對靜態(tài)數(shù)據(jù)成員初始化時應(yīng)注意:(1)應(yīng)在類體外對靜態(tài)數(shù)據(jù)成員進(jìn)行初始化(靜態(tài)數(shù)據(jù)成員的初始化與它的訪問控制權(quán)限無關(guān))。(2)靜態(tài)數(shù)據(jù)成員初始化時前面不加static關(guān)鍵字,以免與一般靜態(tài)變量或?qū)ο蠡煜?3)由于靜態(tài)數(shù)據(jù)成員是類的成員,因此在初始化時必須使用作用域運(yùn)算符(:)限定它所屬
11、的類。因此選擇D項。16. 如果類A被說明成類B的友元,則()A. 類B不一定是類A的友元B. 類B的成員即類A的成員C. 類A的成員即類B的成員D. 類A的成員函數(shù)不得訪問類B的成員答案:A解析:(P113)友元關(guān)系不能被繼承,友元關(guān)系是單向的,友元關(guān)系不具有傳遞性。但是友元函數(shù)不是類的成員,所以選擇A項。17. 假定一個類的構(gòu)造函數(shù)為A(int aa,int bb)a=aa+;b=a*+bb;,則執(zhí)行A x(4,5);語句后,x.a和x.b的值分別為()A. 4和5B. 4和20C. 4和24D. 20和5答案:C解析:(P75)執(zhí)行構(gòu)造函數(shù)將數(shù)據(jù)成員進(jìn)行賦值,aa+是后加,先賦值a4,+
12、bb,bb變量值先自加為6,再與a相乘,所以b24。18. 下列運(yùn)算符中,在C+語言中不能重載的是()A. *B. =C. :D. /答案:C解析:(P186)除了類屬關(guān)系運(yùn)算符.、成員指針運(yùn)算符.*、作用域運(yùn)算符:、sizeof運(yùn)算符和三目運(yùn)算符?:以外,C+中的所有運(yùn)算符都可以重載。19. C+語言建立類族是通過()A. 類的嵌套B. 類的繼承C. 虛函數(shù)D. 抽象類答案:B解析:(P174)類族即同一個類派生出來的類,各個類是兄弟或父子關(guān)系。20. 在C+語言中,數(shù)據(jù)封裝要解決的問題是()A. 數(shù)據(jù)的規(guī)范化B. 便于數(shù)據(jù)轉(zhuǎn)換C. 避免數(shù)據(jù)丟失D. 防止不同模塊之間數(shù)據(jù)的非法訪問答案:D解
13、析:(P39)封裝是指把對象屬性和操作結(jié)合在一起,構(gòu)成獨(dú)立的單元,它的內(nèi)部信息對外界是隱蔽的,不允許外界直接存取對象的屬性,只能通過有限的接口與對象發(fā)生聯(lián)系。類是數(shù)據(jù)封裝的工具,對象是封裝的實(shí)現(xiàn)。類的訪問控制機(jī)制體現(xiàn)在類的成員中可以有公有成員、私有成員和保護(hù)成員。對于外界而言,只需要知道對象所表現(xiàn)的外部行為,而不必了解內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。封裝體現(xiàn)了面向?qū)ο蠓椒ǖ摹靶畔㈦[蔽和局部化原則”。二、填空題(本大題共20小題,每小題1分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。1. 若要使用string類,需要引入的頭文件是_。答案:(P40)string.h解析編譯時要將頭文件引入才能使
14、用標(biāo)準(zhǔn)庫中的方法或成員。2. 在函數(shù)前面用_保留字修飾時,則表示該函數(shù)表為內(nèi)聯(lián)函數(shù)。答案:(P59)inline解析內(nèi)聯(lián)函數(shù),用來提高程序運(yùn)行速度。在類內(nèi)部定義的函數(shù)也是內(nèi)聯(lián)函數(shù)。3. 向量操作方法中_方法返回向量中的第一個對象。答案:(P151)front解析考察向量方法的使用。front():返回向量中的第1個對象。back():返回向量中的最后一個對象。operator(size_type,n):返回向量中的第n1個對象(下標(biāo)為n的向量元素)。4. C+派生類使用兩種基本的面向?qū)ο蠹夹g(shù):第一種稱為性質(zhì)約束,即對基類的性質(zhì)加以限制;第二種稱為_,即增加派生類的性質(zhì)。答案:(P129)性質(zhì)擴(kuò)
15、展解析派生類通過繼承可以從基類中獲得成員,也可以自定義成員。5. 重載的運(yùn)算符保持其原有的_、優(yōu)先級和結(jié)合性不變。答案:(P183)操作數(shù)解析運(yùn)算符重載時要遵循以下規(guī)則:(1)除了類屬關(guān)系運(yùn)算符“.”、成員指針運(yùn)算符“.*”、作用域運(yùn)算符“:”、sizeof運(yùn)算符和三目運(yùn)算符“?:”以外,C+中的所有運(yùn)算符都可以重載。(2)重載運(yùn)算符限制在C+語言中已有的運(yùn)算符范圍內(nèi)的允許重載的運(yùn)算符之中,不能創(chuàng)建新的運(yùn)算符。(3)重載之后的運(yùn)算符不能改變運(yùn)算符的優(yōu)先級和結(jié)合性,也不能改變運(yùn)算符操作數(shù)的個數(shù)及語法結(jié)構(gòu)。6. 編譯時的多態(tài)性通過_函數(shù)實(shí)現(xiàn)。答案:(P165)重載解析編譯多態(tài)性,實(shí)現(xiàn)的方法主要通過
16、函數(shù)的重載或運(yùn)算符的重載。7. 預(yù)處理語句有三種,分別是宏定義、文件包含和_。答案:(P7)條件編譯解析宏定義define,文件包含include和條件編譯#if等。8. 構(gòu)造函數(shù)、析構(gòu)函數(shù)和友元函數(shù)中,不是該類成員的是_。答案:(P109)友元函數(shù)解析友元函數(shù)不是類成員,但可以訪問類中成員。9. 控制格式輸入輸出的操作中,函數(shù)_是設(shè)置域?qū)挼摹R蠼o出函數(shù)名和參數(shù)類型)。答案:(P193)setw(int)解析setw(int n):用來設(shè)置n輸出寬度。10. 派生類的成員一般分為兩部分,一部分是_,另一部分是自己定義的新成員。答案:(P127)從基類繼承的成員解析派生類成員一個來自繼承基類成
17、員,一個來自本身增加的成員。11. C中ostream的直接基類_。答案:(P193)ios解析istream和ostream的直接基類是ios。12. vector的_方法返回向量中的最后一個對象。答案:(P151)back解析front():返回向量中的第1個對象。back():返回向量中的最后一個對象。operator(size_type,n):返回向量中的第n1個對象(下標(biāo)為n的向量元素)。13. 執(zhí)行下列代碼int i=230;cout i=hex iendl;程序的輸出結(jié)果為_。答案:(P193)i=e6解析流類庫中使用格式符,輸出十六進(jìn)制數(shù)據(jù)。14. 在C+中有兩種參數(shù)傳遞方式即
18、值傳遞和_傳遞。答案:(P51)引用解析函數(shù)參數(shù)傳遞有傳值和傳引用兩種。15. 使用new為int數(shù)組動態(tài)分配10個存儲空間是_。答案:(P10)new int10;解析new delete動態(tài)開辟空間和刪除空間。new int10,注意不要寫成newint(10),使用小括號只能開辟一個空間,使用10來初始化該值。16. 面向?qū)ο蟮乃膫€基本特性是多態(tài)性、繼承性、和封裝性_。答案:(P37)抽象解析考察面向?qū)ο蟮乃膫€特征。程序由一組抽象的對象組成,一組對象的共同特征抽象出類的概念,類是對象的抽象,對象是類的實(shí)例。封裝即將數(shù)據(jù)和操作緊密結(jié)合提供訪問的接口,外部通過接口實(shí)現(xiàn)訪問數(shù)據(jù),提供安全性。繼
19、承繼承解決了類的擴(kuò)展性。多態(tài)性不同對象調(diào)用相同的函數(shù)名,但調(diào)用不同的函數(shù),實(shí)現(xiàn)不同的功能,解決了接口統(tǒng)一的問題。17. 定義虛函數(shù)所用的關(guān)鍵字是_。答案:(P170)virtual解析在成員函數(shù)前加virtual修飾的函數(shù)就是虛函數(shù)。但不是所有成員函數(shù)都可以定義為虛函數(shù)的。比如構(gòu)造函數(shù),不能定義虛函數(shù)。18. 執(zhí)行下列代碼cout“oct:”oct34;程序的輸出結(jié)果是_。答案:(P193)Oct:42解析oct表示八進(jìn)制,hex表示十六進(jìn)制,但它們只能輸出整型的數(shù)據(jù)。19. 在C+中要創(chuàng)建一個文件輸入流對象fin,同時該對象打開文件“Test.txt”用于輸入,則正確的聲明語句是_。答案:(
20、P200)ifstream fin(“Test.txt”);解析文件操作中ifstream用于文件的輸入,可以調(diào)用它的構(gòu)造函數(shù)與要打開的文件進(jìn)行關(guān)聯(lián)20. 如果一個派生類只有一個唯一的基類,則這樣的繼承關(guān)系稱為_。答案:(P130)單一解析根據(jù)派生類所擁有的基類數(shù)目不同,可以分為單繼承和多繼承。一個類只有一個直接基類時,稱為單繼承;而一個類同時有多個直接基類時,則稱為多繼承。基類與派生類之間的關(guān)系如下:(1)基類是對派生類的抽象,派生類是對基類的具體化,是基類定義的延續(xù)。(2)派生類是基類的組合。多繼承可以看作是多個單繼承的簡單組合。(3)公有派生類的對象可以作為基類的對象處理。五、程序分析題
21、(本大題共4小題,每小題5分,共20分)1. 給出下面程序輸出結(jié)果。#includeclass apublic:a(int i=10)x=i;couta:xendl;int x;class b:public apublic:b(int i):A(i)x=i;coutb:x, a:xendl;private:a A;int x;void main()b B(5);答案:a:10a:5b:5,10解析定義對象B,先調(diào)用基類構(gòu)造函數(shù),在b構(gòu)造函數(shù)中使用的是A(i),注意大小寫,不是a(i),也就是說調(diào)用基類的構(gòu)造函數(shù)時沒有實(shí)參值,所以采用默認(rèn)值;在初始化類成員A,即A(i),i5,所以輸入為a:5;
22、最后是b類的構(gòu)造函數(shù),x=5,來自基類x10,輸出b:5,10。2. 運(yùn)行程序,寫出程序執(zhí)行的結(jié)果。#includeclass Locationpublic:int X,Y;void init(int initX,int initY);int GetX();int GetY();void Location:init (int initX,int initY)X=initX;Y=initY;int Location:GetX()return X;int Location:GetY()return Y;void display(Location& rL)coutrL.GetX() rL.GetY()init(7,8);for (int i=0;i5;i+)display(*(rA+);答案:7 83 31 17 34 4解析對象數(shù)組的使用。使用數(shù)組對象修改了A3元素的值,又使用指針修改指針?biāo)赶虻牡谝粋€元素的值,因此修改了A0和A3元素的值。3. 給出下面程序輸出結(jié)果。#include int a8=1,2,3,4,5,6,7;void fun(int *pa,int n);void main()int m=8;fun(a,m);couta7endl;void fun(int *pa,int n)for (int i=0;in-1;i+)*(pa+7)+=*(pa+i);答案:28解
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度水庫觀光農(nóng)業(yè)承包經(jīng)營協(xié)議
- 2025年度老年公寓保姆雇傭合同范本專業(yè)護(hù)理老人生活
- 二零二五年度旅游文化公司干股分紅與旅游線路合作協(xié)議
- 2025年度網(wǎng)絡(luò)安全產(chǎn)品采購合同范本大全
- 二零二五年度汽車融資租賃與品牌授權(quán)合作協(xié)議
- 二零二五年度口腔醫(yī)療中心人員聘用協(xié)議
- 二零二五年度個人土地租賃合同(特色小鎮(zhèn)建設(shè))
- 2025年度特色商業(yè)街區(qū)租賃協(xié)議書
- 2025年度水稻種植回收與農(nóng)業(yè)循環(huán)經(jīng)濟(jì)發(fā)展合同
- 2025年度藝術(shù)表演團(tuán)體臨時演員及工作人員聘用合同
- 護(hù)理的內(nèi)涵和精髓
- 西門子S7-1200 PLC應(yīng)用技術(shù)項目教程(第3版) 課件 窄屏 9.觸摸屏控制的液體混合系統(tǒng)-LAD
- 鐵路勞動安全 課件 第一章 防暑降溫
- 【MOOC】大學(xué)語文-東南大學(xué) 中國大學(xué)慕課MOOC答案
- 某地區(qū)現(xiàn)代有軌電車施工方案
- GB/T 6974.3-2024起重機(jī)術(shù)語第3部分:塔式起重機(jī)
- 城市軌道交通運(yùn)營安全風(fēng)險評估報告
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- 體重管理健康科普教育
- 群體性突發(fā)社會安全事件應(yīng)急演練
- 輔警考試公安基礎(chǔ)知識考試試題庫及答案
評論
0/150
提交評論