版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
自考C試題及答案(9套合集)2009年全國自考C++程序設(shè)計(jì)模擬試卷(一)ー、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯(cuò)選、多選或未選均無分。1.編寫C++程序一般需經(jīng)過的幾個(gè)步驟依次是()A.編輯、調(diào)試、編譯、連接B.編輯、編譯、連接、運(yùn)行C.編譯、調(diào)試、編輯、連接D.編譯、編輯、連接、運(yùn)行答案:B解析:(P21)經(jīng)過編輯、編譯、連接和運(yùn)行四個(gè)步驟。編輯是將C++源程序輸入計(jì)算機(jī)的過程,保存文件名為cpp。編譯是使用系統(tǒng)提供的編譯器將源程序cpp生成機(jī)器語言的過程,目標(biāo)文件為obj,由于沒有得到系統(tǒng)分配的絕對地址,還不能直接運(yùn)行。連接是將目標(biāo)文件。bj轉(zhuǎn)換為可執(zhí)行程序的過程,結(jié)果為exe。運(yùn)行是執(zhí)行exe,在屏幕上顯示結(jié)果的過程。2.決定C++語言中函數(shù)的返回值類型的是()A.return語句中的表達(dá)式類型B.調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型C.調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型D.在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型答案:D解析:(P51)函數(shù)的返回值類型由定義函數(shù)時(shí)的指定的數(shù)據(jù)類型決定的。A項(xiàng)的表達(dá)式的值要轉(zhuǎn)換成函數(shù)的定義時(shí)的返回類型。3.下面敘述不正確的是。A.派生類一般都用公有派生B.對基類成員的訪問必須是無二義性的C.賦值兼容規(guī)則也適用于多重繼承的組合D.基類的公有成員在派生類中仍然是公有的答案:D解析:(P136)繼承方式有三種:公有、私有和保護(hù)。多繼承中,多個(gè)基類具有同名成員,在它們的子類中訪問這些成員,就產(chǎn)生了二義性,但進(jìn)行訪問時(shí),不能存在二義性。賦值兼容規(guī)則是指派生類對象可以當(dāng)作基類對象使用,只要存在繼承關(guān)系,所以單繼承或多繼承都適用?;愔械墓谐蓡T采用私有繼承時(shí),在派生類中變成了私有成員,所以D項(xiàng)錯(cuò)誤。4.所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在ー起,形成一個(gè)實(shí)體,這實(shí)體也就是()A.類B.對象C.函數(shù)體D.數(shù)據(jù)塊答案:A解析:(P39)類即數(shù)據(jù)和操作的組合體,數(shù)據(jù)是類的靜態(tài)特征,操作是類具有的動(dòng)作。5.在公有派生類的成員函數(shù)不能直接訪問基類中繼承來的某個(gè)成員,則該成員一定是基類中的()A,私有成員B.公有成員C.保護(hù)成員D.保護(hù)成員或私有成員答案:A解析:(P133)在派生類中基類的保護(hù)或者基類公有都可以直接訪問,基類的私有成員只能是基類的成員函數(shù)來訪問。所以選擇A項(xiàng)。6.對基類和派生類的關(guān)系描述中,錯(cuò)誤的是()A.派生類是基類的具體化B.基類繼承了派生類的屬性C.派生類是基類定義的延續(xù)D.派生類是基類的特殊化答案:B解析:(P129)派生類的成員ー個(gè)是來自基類,ー個(gè)來自本身,所以派生類是基類的擴(kuò)展,也是基類的具體化和特殊化,派生類是對基類擴(kuò)展。B項(xiàng)基類不能繼承派生類成員,所以錯(cuò)誤。7.關(guān)于this指針使用說法正確的是()A.保證每個(gè)對象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)的代碼B.保證基類私有成員在子類中可以被訪問。C.保證基類保護(hù)成員在子類中可以被訪問。D.保證基類公有成員在子類中可以被訪問。答案:A解析:(P86)this指針是隱藏的,可以使用該指針來訪問調(diào)用對象中的數(shù)據(jù)。基類的成員在派生類中能否訪問,與繼承方式有關(guān),與this沒有關(guān)系。所以選擇A項(xiàng)。8.所謂多態(tài)性是指()A.不同的對象調(diào)用不同名稱的函數(shù)B.不同的對象調(diào)用相同名稱的函數(shù)ー個(gè)對象調(diào)用不同名稱的函數(shù)ー個(gè)對象調(diào)用不同名稱的對象答案:B解析:(P167)多態(tài)性有兩種靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性,靜態(tài)多態(tài)性是指調(diào)用同名函數(shù),由于參數(shù)的不同調(diào)用不同的同名函數(shù);動(dòng)態(tài)多態(tài)性是指不同對象調(diào)用同名函數(shù)時(shí),由于對象不同調(diào)用不同的同名函數(shù)。多態(tài)性肯定具有相同的函數(shù)名,所以選擇B項(xiàng)。9.ー個(gè)函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,則應(yīng)把它定義為()A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C,遞歸函數(shù)D.嵌套函數(shù)答案:A解析:(P59)內(nèi)聯(lián)函數(shù)特征代碼少,頻繁調(diào)用,執(zhí)行效率高。重載函數(shù)解決統(tǒng)ー接口的問題;遞歸是子程序調(diào)用,程序調(diào)用要耗費(fèi)很多空間和時(shí)間,循環(huán)/迭代都比遞歸有效率得多,遞歸只是從形式上,邏輯比較簡潔。嵌套函數(shù)即反復(fù)調(diào)用,速度較慢。所以選擇A項(xiàng)。10.下面函數(shù)模板定義中不正確的是()ABCD.D答案:A解析:(P147)A項(xiàng)中F是ー個(gè)返回Q類型的值,而return中用返回類型作為返回值錯(cuò)誤。所以選擇A項(xiàng)。.假設(shè)ClassY:publicX,即類丫是類X的派生類,則說明一個(gè)丫類的對象時(shí)和刪除丫類對象時(shí),調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的次序分別為()X,Y;Y,XX,Y;X,YY,X;X,YY,X:Y,X答案:A解析:(P130)派生類構(gòu)造函數(shù)必須對這三類成員進(jìn)行初始化,其執(zhí)行順序:調(diào)用基類構(gòu)造函數(shù);調(diào)用子對象的構(gòu)造函數(shù);派生類的構(gòu)造函數(shù)體。析構(gòu)函數(shù)在執(zhí)行過程中也要對基類和成員對象進(jìn)行操作,但它的執(zhí)行過程與構(gòu)造函數(shù)正好相反,即對派生類新增普通成員進(jìn)行清理;調(diào)用成員對象析構(gòu)函數(shù),對派生類新增的成員對象進(jìn)行清理;調(diào)用基類析構(gòu)函數(shù),對基類進(jìn)行清理,所以選擇A項(xiàng)。.適宜采用inline定義函數(shù)情況是。A.函數(shù)體含有循環(huán)語句B.函數(shù)體含有遞歸語句C.函數(shù)代碼少、頻繁調(diào)用D.函數(shù)代碼多、不常調(diào)用答案;C解析;(P59)內(nèi)聯(lián)函數(shù)具有程序代碼少、頻繁調(diào)用和執(zhí)行效率高的特征,所以選擇C項(xiàng)。13.假定一個(gè)類的構(gòu)造函數(shù)為A(intaa,intbb){a=aa—;b=a*bb;},則執(zhí)行Ax(4,5);語句后,x.a和x.b的值分別為()3和!55和44和2020和5答案:C解析:(P75)a=4,因?yàn)楹鬁p,b的值與a、bb相關(guān),b,4*5=20,而與aa沒有任何關(guān)系。14.在類中說明的成員可以使用關(guān)鍵字的是()publicexterncpuregister答案:A解析:extern用于聲明外部變量的。register聲明寄存器類型變量。無cpu類型。它們都不能聲明類成員。public聲明為公有訪問權(quán)限,所以選擇A項(xiàng)。15.下列不能作為類的成員的是()A.自身類對象的指針B.自身類對象C.自身類對象的引用D.另ー個(gè)類的對象答案:B解析:類的定義,如果有自身類對象,使得循環(huán)定義,B項(xiàng)錯(cuò)誤。在類中具有自身類的指針,可以實(shí)現(xiàn)鏈表的操作,當(dāng)然也可以使用對象的引用。類中可以有另ー個(gè)類的對象,即成員對象。所以選擇B選項(xiàng)。16.使用地址作為實(shí)參傳給形參,下列說法正確的是()A.實(shí)參是形參的備份B.實(shí)參與形參無聯(lián)系C.形參是實(shí)參的備份D.實(shí)參與形參是同一對象答案:D解析:(P51)地址作為實(shí)參,表示實(shí)參與形參代表同一個(gè)對象。如果實(shí)參是數(shù)值,形參也是普通變量,此時(shí)形參是實(shí)參的備份。所以選擇D項(xiàng)。17.下列程序的輸出結(jié)果是()Sinclude<iostream.h>voidmain(),={10,20,30,40,50,60};{intn,,,3int(*p),3,;P=n;cout?p,0,,0,?*,"く<*(p,0,+1)くく","?(*p),2,?endl;}A.10,30,5010,20,3020,40,6010,30,60答案:B解析:如果數(shù)組元素都是相同類型的指針,則稱這個(gè)數(shù)組為指針數(shù)組。指針數(shù)組一般用于處理二維數(shù)組。聲明的格式為:く數(shù)據(jù)類型>く(?變量名)〉く,元素個(gè)數(shù),>〇P表示指向數(shù)組n的行指針。如果將指針的初始化(*p),3,=b;地址的等價(jià)形式:i,*(p+i)都表示b數(shù)組第i+1行的第1個(gè)元素的首地址。p+ip,*(p+i)+jp,i,+j&p,i,,j,都表示b數(shù)組第i+1行、第j+1列元素的地址。值的等價(jià)形式:*(*(p+i)+j)*(p,i,+j)p,i,,j,都表示b數(shù)組第i+1、第j+1列元素的值。所以題目分別訪問P,〇,,〇,,P,0,,1,,P,0,,2,〇18.在C++中,使用流進(jìn)行輸入輸出,其中用于屏幕輸入()cincerrcoutclog答案:A解析:(P193)(1)標(biāo)準(zhǔn)輸入流cin:istream類的對象。(2)標(biāo)準(zhǔn)輸出流cout:ostream類的對象。(3)非緩沖型標(biāo)準(zhǔn)出錯(cuò)流cerr:ostream類的對象。(4)緩沖型標(biāo)準(zhǔn)出錯(cuò)流clog:ostream類的對象19.假定AA為一個(gè)類,a()為該類公有的函數(shù)成員,x為該類的ー個(gè)對象,則訪問x對象中函數(shù)成員a()的格式為〇X.ax.a()x->a(*x).a()答案:B解析:(P41)對象訪問成員的方式為:對象名.成員。指針可以有兩種:(?對象指針).成員或者對象指針ー〉成員。A選項(xiàng)是訪問數(shù)據(jù)成員,B項(xiàng)是訪問成員函數(shù)。20.關(guān)于對象概念的描述中,說法錯(cuò)誤的是()A.對象就是C語言中的結(jié)構(gòu)變量B.對象代表著正在創(chuàng)建的系統(tǒng)中的ー個(gè)實(shí)體C.對象是類的ー個(gè)變量D.對象之間的信息傳遞是通過消息進(jìn)行的答案:A解析:(P37)A對象在C,,中オ有,包括數(shù)據(jù)和操作兩項(xiàng),而C中的變量只有數(shù)據(jù),沒有操作。所以A項(xiàng)錯(cuò)誤。二、填空題(本大題共20小題,每小題1分,共20分)請?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。.C++的流庫預(yù)定義了4個(gè)流,它們是cin、cout>clog和 〇答案:(P193)cerr,解析,cin、cout、clog和cerr分別用于標(biāo)準(zhǔn)輸入、輸出、標(biāo)準(zhǔn)錯(cuò)誤流(緩沖)和標(biāo)準(zhǔn)錯(cuò)誤流(非緩沖)。.每個(gè)對象都是所屬類的ー個(gè)ー。答案:(P69)實(shí)例,解析,類是對象的抽象,對象是類的ー個(gè)實(shí)例。.在已經(jīng)定義了整型指針ip后,為了得到ー個(gè)包括10個(gè)整數(shù)的數(shù)組并由ip所指向,應(yīng)使用語句ー。答案:(P78)int*ip=newint,10,;,解析,new用來動(dòng)態(tài)開辟空間。常用來產(chǎn)生動(dòng)態(tài)數(shù)組及對象構(gòu)造函數(shù)。.函數(shù)模板中緊隨template之后尖括號內(nèi)的類型參數(shù)都要冠以保留字ー〇答案:(P145)class,解析,類模板的使用。template<classT>,也可以引入多參數(shù)的如:template<classTl,classT2,...,class'Tn>.定義類的動(dòng)態(tài)對象數(shù)組時(shí),系統(tǒng)只能夠自動(dòng)調(diào)用該類的ー構(gòu)造函數(shù)對其進(jìn)行初始化。答案:(P80)無參創(chuàng)建對象數(shù)組,調(diào)用無參構(gòu)造函數(shù)。,解析,使用new.表達(dá)式coutくくendl還可表示為〇答案:‘,n',解析,endl與字符常量,n’等價(jià)。.在C++中,訪問ー個(gè)指針?biāo)赶虻膶ο蟮某蓡T所用的指向運(yùn)算符是ー。答案:ー》,解析,指針使用成員有兩種方法:“ー〉”指向運(yùn)算符和”成員訪問運(yùn)算符。.假如一個(gè)類的名稱為MyClass,使用這個(gè)類的ー個(gè)對象初始化該類的另ー個(gè)對象時(shí),可以調(diào)用ー構(gòu)造函數(shù)來完成此功能。答案:(P80)復(fù)制或拷貝復(fù)制或拷貝構(gòu)造函數(shù)就是用對象初始化新的對象。.對賦值運(yùn)算符進(jìn)行重載時(shí),應(yīng)聲明為ー函數(shù)。答案:(P183)類成員,解析,運(yùn)算符重載的方法有友元或者成員函數(shù)兩種途徑,但是賦值運(yùn)算符只能使用成員函數(shù)的方法來實(shí)現(xiàn)。.如果要把A類成員函數(shù)f()且返回值為void聲明為類B的友元函數(shù),則應(yīng)在類B的定義中加入的語句ー〇答案:(P109)friendvoidA::f();,解析,成員函數(shù)作為另ー個(gè)類的友元函數(shù),格式為:friend返回類型類名::函數(shù)(形參)。11.下列程序段的輸出結(jié)果是ー〇for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j);cout?k:答案:4,解析,for循環(huán)結(jié)構(gòu),三個(gè)表達(dá)式的作用,初始化、循環(huán)判斷條件和循環(huán)變量變化。循環(huán)執(zhí)行了三次,k的作用是計(jì)算i、j的和。.String類的一方法返回查找到的字符串在主串的位置。答案:(P40)find,解析,string類對象方法的find,查不到字符串,則返回T。.intn=0;while(n=l)n++;while循環(huán)執(zhí)行次數(shù)是ー〇答案:無限次,解析,,是賦值運(yùn)算符,不是關(guān)系運(yùn)算符,且不等〇,所以死循環(huán)。.控制格式輸入輸出的操作中,函數(shù)一是用來設(shè)置填充字符。要求給出函數(shù)名和參數(shù)類型答案:(P195)setfill(char),解析,格式控制方法的使用,如setw,setfill等等。.C++語言支持的兩種多態(tài)性分別是編譯時(shí)的多態(tài)性和一的多態(tài)性。答案:(P167)運(yùn)行時(shí),解析,多態(tài)性包括靜態(tài)的(編譯時(shí))多態(tài)性和動(dòng)態(tài)的(運(yùn)行時(shí))多態(tài)性。.設(shè)函數(shù)sum是由函數(shù)模板實(shí)現(xiàn)的,并且sum(3,6)和sum(4.6,8)都是正確的函數(shù)調(diào)用,則函數(shù)模板具有一個(gè)類型參數(shù)。答案:(P6D2.執(zhí)行下列代碼stringstr("HelloC++”);cout?str.substr(5,3);程序的輸出結(jié)果是ー。答案:(P42)C++,解析,substr取子字符串,第1個(gè)參數(shù)表示要截取子串在字符串中的位置,第2個(gè)表示取多少個(gè)字符。.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,將一組對象的共同特性抽象出來形成答案:(P38)類,解析,類是相似特征的對象的抽象,對象是類的ー個(gè)實(shí)例。.定義類動(dòng)態(tài)對象數(shù)組時(shí),元素只能靠自動(dòng)調(diào)用該類的ー來進(jìn)行初始化答案:(P77)無參構(gòu)造函數(shù),解析,使用new創(chuàng)建動(dòng)態(tài)對象數(shù)組,不能有參數(shù),所以只能調(diào)用無參的構(gòu)造函數(shù),初始化對象20.已知有20個(gè)元素int類型向量VI,若用VI初始化為V2向量,語句是ー〇答案:(P151)ectorくint>V2(Vl);,解析,采用向量初始化另ー個(gè)向量的形式:vector<type>namel(name);ー、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯(cuò)選、多選或未選均無分。1.靜態(tài)成員函數(shù)沒有。A.返回值B.this指針C.指針參數(shù)D.返回類型答案:B解析:(P107)靜態(tài)成員函數(shù)是普通的函數(shù)前加入static,它具有函數(shù)的所有的特征:返回類型、形參,所以使用(P107)靜態(tài)成員函數(shù),指針可以作為形參,也具有返回值。靜態(tài)成員是類具有的屬性,不是對象的特征,而this表示的是隱藏的對象的指針,因此靜態(tài)成員函數(shù)沒有this指針。靜態(tài)成員函數(shù)當(dāng)在類外定義時(shí),要注意不能使用static關(guān)鍵字作為前綴。由于靜態(tài)成員函數(shù)在類中只有一個(gè)拷貝(副本),因此它訪問對象的成員時(shí)要受到ー些限制:靜態(tài)成員函數(shù)可以直接訪問類中說明的靜態(tài)成員,但不能直接訪問類中說明的非靜態(tài)成員;若要訪問非靜態(tài)成員時(shí),必須通過參數(shù)傳遞的方式得到相應(yīng)的對象,再通過對象來訪問。.假定AB為ー個(gè)類,則執(zhí)行“ABa(2),b,3,,*p,4,;”語句時(shí)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為()3459答案:B解析:(P79)a(2)調(diào)用1次帶參數(shù)的構(gòu)造函數(shù),b,3?調(diào)用3次無參數(shù)的構(gòu)造函數(shù),指針沒有給它分配空間,沒有調(diào)用構(gòu)造函數(shù)。所以共調(diào)用構(gòu)造函數(shù)的次數(shù)為4。.有關(guān)多態(tài)性說法不正確的是()A.C++語言的多態(tài)性分為編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性B.編譯時(shí)的多態(tài)性可通過函數(shù)重載實(shí)現(xiàn)C.運(yùn)行時(shí)的多態(tài)性可通過模板和虛函數(shù)實(shí)現(xiàn)D.實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的機(jī)制稱為動(dòng)態(tài)多態(tài)性答案:C解析:(P171)多態(tài)性分為靜態(tài)的和動(dòng)態(tài)的。靜態(tài)通過函數(shù)的重載來實(shí)現(xiàn),動(dòng)態(tài)是通過基類指針或基類引用和虛函數(shù)來實(shí)現(xiàn)的。所以錯(cuò)誤的是C項(xiàng)。4.假定一個(gè)類的構(gòu)造函數(shù)為"A(inti=4,intj=0){a=i;b=j;}”,則執(zhí)行“Ax⑴;”語句后,x.a和x.b的值分別為()1和〇1和44和〇4和1答案:A解析:(P75)帶默認(rèn)的構(gòu)造函數(shù),對應(yīng)實(shí)參沒有值時(shí)就采用形參值。調(diào)用構(gòu)造函數(shù)時(shí),i=l,不采用默認(rèn)值,而只有一個(gè)參數(shù),j采用默認(rèn)值。即j=0,因此a=l,b=0,選擇A項(xiàng)。5.類MyA的拷貝初始化構(gòu)造函數(shù)是()MyA()MyA(MyA*)MyA(MyA&)MyA(MyA)答案:C解析:(P80)復(fù)制即拷貝構(gòu)造函數(shù)使用對象的引用作形參,防止臨時(shí)產(chǎn)生一個(gè)對象,A無參構(gòu)造函數(shù),B是指針作為形參,D項(xiàng)是對象,所以選擇C項(xiàng)。6.在C++中,函數(shù)原型不能標(biāo)識()A.函數(shù)的返回類型B.函數(shù)參數(shù)的個(gè)數(shù)C.函數(shù)參數(shù)類型D.函數(shù)的功能答案:D解析:函數(shù)的聲明,說明函數(shù)的參數(shù)、返回類型以及函數(shù)名,函數(shù)體即實(shí)現(xiàn)部分決定功能。所以函數(shù)的原型不能決定函數(shù)的功能。.友元關(guān)系不能。A.提高程序的運(yùn)行效率.是類與類的關(guān)系C.是ー個(gè)類的成員函數(shù)與另ー個(gè)類的關(guān)系D.繼承答案:。解析:(P111)友元可以是函數(shù)與類的關(guān)系即友元函數(shù),也可以類與類的關(guān)系即友元類,但友元不能繼承,是單向性,且不具有傳遞性。友元可以訪問類中所有成員,提高了訪問的方便性。因此選擇D項(xiàng)。.實(shí)現(xiàn)兩個(gè)相同類型數(shù)加法的函數(shù)模板的聲明是()add(Tx,Ty)Tadd(x,y)Tadd(Tx,y)Tadd(Tx,Ty)答案:D解析:(P63)實(shí)現(xiàn)兩個(gè)相同類型數(shù)加法結(jié)果應(yīng)該和操作數(shù)具有相同類型。進(jìn)行加法運(yùn)算后結(jié)果也是和參數(shù)具有相同類型,需要返回值。A無返回值時(shí)要用void,B形參無類型,C形參y沒有類型,所以選擇D項(xiàng)。.在inta=3,int*p=&a;中,*p的值是()A.變量a的地址值B,無意義C.變量p的地址值D.3答案:D解析:*P代表引用a變量的值,p代表a的地址值。所以選擇D項(xiàng)。10.下列不是描述類的成員函數(shù)的是()A.構(gòu)造函數(shù)B.析構(gòu)函數(shù)C.友元函數(shù)D.拷貝構(gòu)造函數(shù)答案:C解析:(P109)構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)都是特殊的成員函數(shù),友元?jiǎng)t不是成員函數(shù)。所以選擇C項(xiàng)。11.如果從原有類定義新類可以實(shí)現(xiàn)的是()A.信息隱藏B.數(shù)據(jù)封裝C,繼承機(jī)制D.數(shù)據(jù)抽象答案:C解析:(P129)繼承指在原有類的基礎(chǔ)上產(chǎn)生新類。數(shù)據(jù)封裝即數(shù)據(jù)和操作組合在ー起,形成類。信息的隱藏,通過訪問權(quán)限來實(shí)現(xiàn)。數(shù)據(jù)抽象,將事物的特征抽象為數(shù)據(jù)成員或服務(wù)。因此選擇C項(xiàng)。12.下面有關(guān)類說法不正確的是()ー個(gè)類可以有多個(gè)構(gòu)造函數(shù)一個(gè)類只有一個(gè)析構(gòu)函數(shù)C.析構(gòu)函數(shù)需要指定參數(shù)D.在ー個(gè)類中可以說明具有類類型的數(shù)據(jù)成員答案:C解析:(P80)構(gòu)造函數(shù)可以有參數(shù)、可以重載、因此可以有多個(gè),A項(xiàng)正確。析構(gòu)函數(shù)只有一個(gè)不能重載、不能繼承,沒有返回值,B項(xiàng)正確,C項(xiàng)錯(cuò)誤。13.在函數(shù)定義中的形參屬于()A.全局變量B.局部變量C.靜態(tài)變量D.寄存器變量答案:B解析:形參或函數(shù)中定義的變量都是局部變量。在函數(shù)外定義的變量是全局變量。形參只能用局部變量,頻繁使用的變量可以聲明為寄存器變量,形參不能使用靜態(tài)變量或寄存器變量。14,下列有關(guān)重載函數(shù)的說法中正確的是()A.重載函數(shù)必須具有不同的返回值類型B.重載函數(shù)參數(shù)個(gè)數(shù)必須相同C.重載函數(shù)必須有不同的形參列表D.重載函數(shù)名可以不同答案:C解析:(P59)函數(shù)的重載必須函數(shù)名相同而形參類型或個(gè)數(shù)不同,與返回值無關(guān)。15.this指針存在的目的是()A.保證基類私有成員在子類中可以被訪問B.保證基類保護(hù)成員在子類中可以被訪問C.保證每個(gè)對象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼D.保證基類公有成員在子類中可以被訪問答案:c解析:(P86)C++要求函數(shù)在被調(diào)用之前,應(yīng)當(dāng)讓編譯器知道該函數(shù)的原型,以便編譯器利用函數(shù)原型提供的信息去檢查調(diào)用的合法性,強(qiáng)制參數(shù)轉(zhuǎn)換成為適當(dāng)類型,保證參數(shù)的正確傳遞。對于標(biāo)準(zhǔn)庫函數(shù),其聲明在頭文件中,可以用include宏命令包含這些原型文件;對于用戶自定義函數(shù),先定義、后調(diào)用的函數(shù)可以不用聲明,但后定義、先調(diào)用的函數(shù)必須聲明。一般為增加程序的可理解性,常將主函數(shù)放在程序開頭,這樣需要在主函數(shù)前對其所調(diào)用的函數(shù)ーー進(jìn)行聲明項(xiàng)。,以消除函數(shù)所在位置的影響。所以選擇C16.關(guān)于new運(yùn)算符的下列描述中,錯(cuò)誤的是()A.它可以用來動(dòng)態(tài)創(chuàng)建對象和對象數(shù)組B.使用它創(chuàng)建的對象或?qū)ο髷?shù)組可以使用運(yùn)算符delete刪除C.使用它創(chuàng)建對象時(shí)要調(diào)用構(gòu)造函數(shù)D.使用它創(chuàng)建對象數(shù)組時(shí)必須指定初始值答案:D解析:(P78)new創(chuàng)建的對象數(shù)組不能指定初始值,所以調(diào)用無參的構(gòu)造函數(shù),選擇D項(xiàng)。17.已知:p是一個(gè)指向類A數(shù)據(jù)成員m的指針,A1是類A的ー個(gè)對象。如果要給m賦值為5,正確的是〇Al.p=5;Al->p=5;AL*p=5;*A1.p=5;答案:C解析:(PU8)A中p是指針即地址,錯(cuò)誤;B選項(xiàng)中A1不是指針不能使用指向運(yùn)算符ー》,錯(cuò)誤;“*”比:"級別要高,所以D選項(xiàng)?ALp=5相當(dāng)于(*Al).p=5;錯(cuò)誤。另外涉及到指向成員函數(shù)時(shí)注意以下幾點(diǎn):指向成員函數(shù)的指針必須于其賦值的函數(shù)類型匹配的三個(gè)方面:(1)參數(shù)類型和個(gè)數(shù);(2)返回類型;(3)它所屬的類類型。成員函數(shù)指針的聲明:指向short型的Screen類的成員的指針定義如下:shortScreen::*ps_Screen;ps_Screen可以用—height的地址初始化如下:shortScreen::*ps_Screen=&Screen::_height;類成員的指針必須總是通過特定的對象或指向改類型的對象的指針來訪問。是通過使用兩個(gè)指向成員操作符的指針(針對類對象和引用的.*,以及針對指向類對象的指針的ー>*)。18.以下基類中的成員函數(shù)表示純虛函數(shù)的是()virtualvoidtt()=0voidtt(int)=0virtualvoidtt(int)virtualvoidtt(int){}答案:A解析:(P173)當(dāng)在基類中不能為虛函數(shù)給出ー個(gè)有意義的實(shí)現(xiàn)時(shí),可以將其聲明為純虛函數(shù),實(shí)現(xiàn)由派生類完成。格式:virtualく函數(shù)返回類型說明符X函數(shù)名》(〈參數(shù)表>)=0;。19.C++類體系中,不能被派生類繼承的有()A.常成員函數(shù)B.構(gòu)造函數(shù)C,虛函數(shù)D.靜態(tài)成員函數(shù)答案:B解析:(P132)構(gòu)造函數(shù)不能被繼承。20,靜態(tài)成員函數(shù)不能說明為()A.整型函數(shù)B.浮點(diǎn)函數(shù)C,虛函數(shù)D.字符型函數(shù)答案:C解析:(P108)使用關(guān)鍵字static聲明的成員函數(shù)就是靜態(tài)成員函數(shù),靜態(tài)成員函數(shù)也屬于整個(gè)類而不屬于類中的某個(gè)對象,它是該類的所有對象共享的成員函數(shù)。靜態(tài)成員函數(shù)可以在類體內(nèi)定義,也可以在類外定義。當(dāng)在類外定義時(shí),要注意不能使用static關(guān)鍵字作為前綴。由于靜態(tài)成員函數(shù)在類中只有一個(gè)拷貝(副本),因此它訪問對象的成員時(shí)要受到ー些限制:靜態(tài)成員函數(shù)可以直接訪問類中說明的靜態(tài)成員,但不能直接訪問類中說明的非靜態(tài)成員;若要訪問非靜態(tài)成員時(shí),必須通過參數(shù)傳遞的方式得到相應(yīng)的對象,再通過對象來訪問。虛函數(shù)是非靜態(tài)的、非內(nèi)聯(lián)的成員函數(shù)。靜態(tài)成員函數(shù)不能被說明為虛函數(shù)。二、填空題(本大題共20小題,每小題1分,共20分)請?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。1.假設(shè)inta=l,b=2;則表達(dá)式(++a/b)*b—的值為〇答案:2,解析,前綴,,或ーー表示先使變量值變化,再使用,這和后綴恰恰相反。但是編譯cout<<(++a/b)*b―時(shí),先++a/b值為1,后l*b-,先取b,2,結(jié)果為2,再讓b,1。2.抽象類中至少要有一個(gè)函數(shù)。答案:(P173)純虛,解析,至少有一個(gè)純虛函數(shù)的類就稱為抽象類,即不能實(shí)例化。.ー個(gè)抽象類的派生類可以實(shí)例化的必要條件是實(shí)現(xiàn)了所有的ー。答案:(P173)純虛函數(shù)的定義,解析,抽象類只因有純虛函數(shù),所以不能被實(shí)例化,所以派生類要實(shí)例化必須對純虛函數(shù)進(jìn)行定義。.下面程序的輸出結(jié)果為_。#include<iostream.h>voidmain(){intnum=2,i=6;do{i-;num++;}while(―i);cout?num<<endl;)答案:5,解析,do,while循環(huán),前綴先使i減少1后判斷是否為零,不為零時(shí)再次執(zhí)行循環(huán),為零退出循環(huán)。循環(huán)值執(zhí)行3次就退出,所以結(jié)果為5。.靜態(tài)成員函數(shù)、友元函數(shù)、構(gòu)造函數(shù)和析構(gòu)函數(shù)中,不屬于成員函數(shù)的是。答案:(P109)友元函數(shù),解析,友元函數(shù)不是類成員,但可以訪問類成員。類的封裝性保證了數(shù)據(jù)的安全,但引入友元,雖然訪問類是方便了,但確實(shí)破壞類訪問的安全性。.在用C,,進(jìn)行程序設(shè)計(jì)時(shí),最好用一代替malloc。答案:(PIO)new,解析,new與delete是C++語言特有的運(yùn)算符,用于動(dòng)態(tài)分配和釋放內(nèi)存。new用于為各種數(shù)據(jù)類型分配內(nèi)存,并把分配到的內(nèi)存首地址賦給相應(yīng)的指針。new的功能類似于mallocO函數(shù)。使用new的格式為:〈指針變量》newく數(shù)據(jù)類型》:數(shù)據(jù)類型〉可以是基本數(shù)據(jù)類型,也可以是由基本類型派生出來的類型;(指針變量〉取得其中,く分配到的內(nèi)存首地址。new有3種使用形式。(1)給單個(gè)對象申請分配內(nèi)存int*ip;ip=newint;〃ip指向1個(gè)未初始化的int型對象(2)給單個(gè)對象申請分配內(nèi)存的同時(shí)初始化該對象int*ip;ip=newint(68);〃ip指向1個(gè)表示為68的int型對象(3)同時(shí)給多個(gè)對象申請分配內(nèi)存int*ip;ip=newint,5,;〃ip指向5個(gè)未初始化的int型對象的首地址for(inti=0;i<5;i++)ip,i,=5*i+l;〃給ip指向的5個(gè)對象賦值用new申請分配內(nèi)存時(shí),不ー定能申請成功。若申請失敗,則返回NULL,即空指針。因此,在程的返回值是否為〇來獲知系統(tǒng)中是否有足夠的空間供用戶使用。序中可以通過判斷new.由const修飾的對象稱為ー〇答案:(PH3)常對象,解析,使用const關(guān)鍵字說明的成員函數(shù)稱為常成員函數(shù),使用const關(guān)鍵字說明的對象稱為常對象。常成員函數(shù)的說明格式如下:く返回類型說明符》く成員函數(shù)名》(〈參數(shù)表》)const;常成員函數(shù)不更新對象的數(shù)據(jù)成員,也不能調(diào)用該類中沒有用const修飾的成員函數(shù)。常對象只能調(diào)用它的常成員函數(shù),而不能調(diào)用其他成員函數(shù)。const關(guān)鍵字可以用于參與重載函數(shù)的區(qū)分。.在C++程序設(shè)計(jì)中,建立繼承關(guān)系倒掛的樹應(yīng)使用ー繼承。答案:(P138)單,解析,一個(gè)基類可以派生多個(gè)子類,ー個(gè)子類可以再派生出多個(gè)子類,這樣就形成了一個(gè)倒立的樹。.基類的公有成員在派生類中的訪問權(quán)限由一決定。答案:(P132)訪問控制方式或繼承方式.不同對象可以調(diào)用相同名稱的函數(shù),但執(zhí)行完全不同行為的現(xiàn)象稱為ー。答案:(P167)多態(tài)性,解析,多態(tài)性的概念。虛函數(shù)是實(shí)現(xiàn)多態(tài)的基礎(chǔ),運(yùn)行過程中的多態(tài)需要同時(shí)滿足3個(gè)條件:(1)類之間應(yīng)滿足子類型關(guān)系。(2)必須要有聲明的虛函數(shù)。(3)調(diào)用虛函數(shù)操作的是指向?qū)ο蟮闹羔樆蛘邔ο笠?或者是由成員函數(shù)調(diào)用虛函數(shù)(如果是在構(gòu)造函數(shù)或析構(gòu)函數(shù)中調(diào)用虛函數(shù),則采用靜態(tài)聯(lián)編)。.this指針始終指向調(diào)用成員函數(shù)的〇答案:對象this指針是隱藏的指針,它指向調(diào)用函數(shù)的對象。.預(yù)處理命令以ー符號開頭。答案:(P183)operater,解析,文件包含、預(yù)處理和編譯都是以,開頭。.類模板用來表達(dá)具有一的模板類對象集。答案:(P145)相同處理方法,解析,模板特點(diǎn)是不同的數(shù)據(jù)具有相同的處理方法的抽象。.C++程序的源文件擴(kuò)展名為答案:(P21)cpp,解析,源程序?.cpp,目標(biāo)文件為?.obj,可執(zhí)行程序?.exe。.在#include命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是—的頭文件。答案:(P7)自定義,解析,,include裝入文件有兩種方式?和“”,一是系統(tǒng)的,ー是自定義文件。16.vector類中向向量尾部插入一個(gè)對象的方法是〇答案:(P157)pushback.C++語言中如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取ー方式。答案:(P51)傳地址或引用,解析,傳地址即指針,在函數(shù)中通過指針修改它指向的變量的值時(shí),實(shí)參也就變化了。使用引用,直接修改變量的別名即引用的值,該變量也就隨著變化。.語句序列ifstreaminfile;infile.open("data.dat");的功能可用ー個(gè)語句實(shí)現(xiàn),這個(gè)語句是ー。答案:(P199)ifstreaminfile("data,dat");,解析,voidifstream::open(constchar*fname,intmode=ios::in,intaccess=filebuf::openprot);ifstream::ifstream(constchar*fname,intmode=ios::in,intaccess=filebuf::openprot);其中,第一個(gè)參數(shù)是用來傳遞文件名的;第二個(gè)參數(shù)mode的值決定文件將如何被打開;第三個(gè)參數(shù)access的值決定文件的訪問方式,一般取缺省值filebuf::openprot,表示是普通文件。mode的取值如下:(1)ios::in:打開"ー個(gè)文件進(jìn)行讀操作,而且該文件必須已經(jīng)存在;(2)ios::nocreate:不建立新的文件。當(dāng)文件不存在時(shí),導(dǎo)致open。失敗;(3)ios::noreplace:不修改原來己經(jīng)存在的文件。若文件已經(jīng)存在,導(dǎo)致open。失敗;(4)ios::binary:文件以二進(jìn)制方式打開,缺省時(shí)為文本文件。.如果要把類B的成員函數(shù)voidfun()說明為類A的友元函數(shù),則應(yīng)在類,中加入語句. 〇答案:(Pill)friendvoidB::fun();,解析,聲明成員函數(shù)作為另外一個(gè)類的友元函數(shù)時(shí),使用類作用域運(yùn)算符::〇20.在編譯指令中,宏定義使用一指令。答案:(P6、97)#define,解析,靜態(tài)成員是所有對象共享的特征,也就是類的特征。2010年全國自考C++程序設(shè)計(jì)模擬試卷(三)一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯(cuò)選、多選或未選均無分。.設(shè)有定義inti;doublej,5;,則10+i+j值的數(shù)據(jù)類型是。intdoublefloatD.不確定答案:B解析:考察數(shù)據(jù)的轉(zhuǎn)換,j是double類型,運(yùn)算只能作同類型的運(yùn)算,所以要轉(zhuǎn)換,而int能自動(dòng)轉(zhuǎn)換為double類型,所以結(jié)果是double類型。2.要禁止修改指針p本身,又要禁止修改p所指向的數(shù)據(jù),這樣的指針應(yīng)定義為〇A.constchar*p="ABCD";char*constp="ABCD";charconst*p="ABCD";constchar*constp="ABCD";答案:D解析:(P12)constchar*p說明禁止通過p修改所指向的數(shù)據(jù)。char*constP則說明不能修改指針p的地址。因此constchar*constp="ABCD";它禁止修改指針P本身,又禁止修改p所指向的數(shù)據(jù)。3.類的構(gòu)造函數(shù)被自動(dòng)調(diào)用執(zhí)行的情況是在定義該類的()A.成員函數(shù)時(shí)B.數(shù)據(jù)成員時(shí)C.對象時(shí)D,友元函數(shù)時(shí)答案:C解析:(P75)建立對象時(shí),自動(dòng)構(gòu)造函數(shù)的初始化對象,是系統(tǒng)自動(dòng)調(diào)用的。而成員函數(shù)、友元函數(shù),需要用戶直接調(diào)用,因此選擇C項(xiàng)。4.已知類A是類B的友元,類B是類C的友元,則()A.類A一定是類C的友元B.類C一定是類A的友元C.類C的成員函數(shù)可以訪問類B的對象的任何成員D.類A的成員函數(shù)可以訪問類B的對象的任何成員答案:C解析:(P105)友元說明方法如下:friend?く類名》;〃友元類類名使用友元可以訪問所有成員:(1)友元關(guān)系不能被繼承。(2)友元關(guān)系是單向的,不具有交換性。所以,B項(xiàng)和D項(xiàng)錯(cuò)誤。(3)友元關(guān)系不具有傳遞性。所以,A項(xiàng)錯(cuò)誤。5.假定一個(gè)類的構(gòu)造函數(shù)為"A(inti=4,intj=0){a=i;b=j;}n,則執(zhí)行“Ax(1);”語句后,x.a和x.b的值分別為()1和〇1和44和〇4和1答案:A解析:(P75)帶默認(rèn)的構(gòu)造函數(shù),對應(yīng)實(shí)參沒有值時(shí)就采用形參值。調(diào)用構(gòu)造函數(shù)時(shí),i=l,不采用默認(rèn)值,而只有一個(gè)參數(shù),j采用默認(rèn)值〇即j=O,因此a=l,b=O,選擇A項(xiàng)。6.關(guān)于this指針使用說法正確的是。A.保證每個(gè)對象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)的代碼B.保證基類私有成員在子類中可以被訪問。C.保證基類保護(hù)成員在子類中可以被訪問。D.保證基類公有成員在子類中可以被訪問。答案:A解析:(P86)this指針是隱藏的,可以使用該指針來訪問調(diào)用對象中的數(shù)據(jù)?;惖某蓡T在派生類中能否訪問,與繼承方式有關(guān),與this沒有關(guān)系。所以選擇A項(xiàng)。7.所謂多態(tài)性是指()A.不同的對象調(diào)用不同名稱的函數(shù)B.不同的對象調(diào)用相同名稱的函數(shù)ー個(gè)對象調(diào)用不同名稱的函數(shù)ー個(gè)對象調(diào)用不同名稱的對象答案:B解析:(P167)多態(tài)性有兩種靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性,靜態(tài)多態(tài)性是指調(diào)用同名函數(shù),由于參數(shù)的不同調(diào)用不同的同名函數(shù);動(dòng)態(tài)多態(tài)性是指不同對象調(diào)用同名函數(shù)時(shí),由于對象不同調(diào)用不同的同名函數(shù)。多態(tài)性肯定具有相同的函數(shù)名,所以選擇B項(xiàng)。8.友元關(guān)系不能()A.提高程序的運(yùn)行效率.是類與類的關(guān)系C.是一個(gè)類的成員函數(shù)與另ー個(gè)類的關(guān)系D.繼承答案:D解析:(P111)友元可以是函數(shù)與類的關(guān)系即友元函數(shù),也可以類與類的關(guān)系即友元類,但友元不能繼承,是單向性,且不具有傳遞性。友元可以訪問類中所有成員,提高了訪問的方便性。因此項(xiàng)。選擇D.語句ofstreamf("TEMP.DAT",ios::app,ios::binary)?的功能是建立流對象f,試圖打開文件TEMP.DAT并與之連接,并且()A.若文件存在,將文件寫指針定位于文件尾;若文件不存在,建立一個(gè)新文件B,若文件存在,將其置為空文件;若文件不存在,打開失敗C.若文件存在,將文件寫指針定位于文件首;若文件不存在,建立一個(gè)新文件D.若文件存在,打開失敗;若文件不存在,建立一個(gè)新文件答案:A解析:(P199)ios::binary,采用二進(jìn)制形式,ios::app定位到文件尾部。10.構(gòu)造函數(shù)不具備的特征是()A.構(gòu)造函數(shù)的函數(shù)名與類名相同B.構(gòu)造函數(shù)可以重載C.構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)D.構(gòu)造函數(shù)必須指定類型說明答案:D解析:(P75)構(gòu)造函數(shù)無返回類型不能繼承但可以重載,所以選擇D項(xiàng)。11.在公有繼承的情況下,基類的公有或保護(hù)成員在派生類中的訪問權(quán)限()A.受限制B.保持不變C.受保護(hù)D.不受保護(hù)答案:B解析:(P132)繼承方式的不同派生類成員的權(quán)限也不同,采用公有繼承,除了私有無法訪問外,公有、保護(hù)在派生類中保持不變,所以選擇B項(xiàng)。12.假定一個(gè)類的構(gòu)造函數(shù)為A(intaa,intbb){a=aa—;b=a*bb;},則執(zhí)行Ax(4,5);語句后,x.a和x.b的值分別為()3和155和44和2020和5答案:C解析:(P75)a=4,因?yàn)楹鬁p,b的值與a、bb相關(guān),b,4*5=20,而與aa沒有任何關(guān)系。13.C++對C語言做了很多改進(jìn),即從面向過程變成為面向?qū)ο蟮闹饕蚴?)A.增加了一些新的運(yùn)算符B.允許函數(shù)重載,并允許設(shè)置缺省參數(shù)C.規(guī)定函數(shù)說明符必須用原型D.引進(jìn)了類和對象的概念答案:。解析:(P29)C++是一面向?qū)ο蟮恼Z言,面向?qū)ο蟮奶卣?抽象、多態(tài)、繼承和封裝。14.在類中說明的成員可以使用關(guān)鍵字的是()publicexterncpuregister答案:A解析:extern用于聲明外部變量的。register聲明寄存器類型變量。無cpu類型。它們都不能聲明類成員。public聲明為公有訪問權(quán)限,所以選擇A項(xiàng)。15.C++語言中所有在函數(shù)中定義的變量,連同形式參數(shù),都屬于()A.全局變量B.局部變量C.靜態(tài)變量D.函數(shù)答案:B解析:變量存儲類可分為兩類:全局變量和局部變量。(1)全局變量:在函數(shù)外部定義的變量稱為全局變量,其作用域?yàn)?從定義變量的位置開始到源程序結(jié)束。使用全局變量降低了程序的可理解性,軟件工程學(xué)提倡盡量避免使用全局變量。(2)局部變量:在函數(shù)內(nèi)部定義的變量稱為局部變量,其作用域?yàn)?從定義變量的位置開始到函數(shù)結(jié)束。局部變量包含自動(dòng)變量(auto)靜態(tài)變量(static)以及函數(shù)參數(shù)。形參不能是靜態(tài)的。所以選擇B項(xiàng)。16,在私有繼承的情況下,基類成員在派生類中的訪問權(quán)限()A.受限制B.保持不變C.受保護(hù)D.不受保護(hù)答案:A選項(xiàng)。解析:(P132)私有繼承下,基類中的公有或保護(hù)成員在派生類中也是私有的,所以選擇A17.使用地址作為實(shí)參傳給形參,下列說法正確的是()A.實(shí)參是形參的備份B.實(shí)參與形參無聯(lián)系C.形參是實(shí)參的備份D.實(shí)參與形參是同一對象答案:D解析:(P51)地址作為實(shí)參,表示實(shí)參與形參代表同一個(gè)對象。如果實(shí)參是數(shù)值,形參也是普通變量,此時(shí)形參是實(shí)參的備份。所以選擇D項(xiàng)。18.C++的繼承性允許派生類繼承基類的()A.部分特性,并允許增加新的特性或重定義基類的特性B.部分特性,但不允許增加新的特性或重定義基類的特性C.所有特性,并允許增加新的特性或重定義基類的特性D.所有特性,但不允許增加新的特性或重定義基類的特性答案:A解析:(P129)派生類有兩類成員:一是基類,二是自身類。派生類中的成員不能訪問基類中的私有成員,可以訪問基類中的公有成員和保護(hù)成員。.對于int*pa,5,;的描述,正確的是()pa是ー個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素pa是ー個(gè)指向某個(gè)數(shù)組中第5個(gè)元素的指針,該元素是int型變量pa,5,表示某個(gè)數(shù)組的第5個(gè)元素的值pa是ー個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是ー個(gè)int型指針答案:D解析:(P117)指針數(shù)組:數(shù)組元素都是相同類型的指針,相同類型的指針是說指針?biāo)赶虻膶ο箢愋褪窍嗤?。例?語句int*pa,5,;定義了一個(gè)指針數(shù)組。在指針數(shù)組的定義中有兩個(gè)運(yùn)算符:?和,,,運(yùn)算符,,的優(yōu)先級高于?,所以?pa,5,等價(jià)于?(pa,5,),pa,5,表示一個(gè)數(shù)組,而*表示后面的對象為指針變量,合在ー起?pa,5,表示一個(gè)指針數(shù)組。該數(shù)組包含5個(gè)元素,每個(gè)元素都是指向int型的指針。所以選擇D選項(xiàng)。.以下基類中的成員函數(shù)表示純虛函數(shù)的是()virtualvoidtt()=0voidtt(int)=0virtualvoidtt(int)virtualvoidtt(int){}答案:A解析:(P173)當(dāng)在基類中不能為虛函數(shù)給出ー個(gè)有意義的實(shí)現(xiàn)時(shí),可以將其聲明為純虛函數(shù),實(shí)現(xiàn)由派生類完成。格式:virtualく函數(shù)返回類型說明符X函數(shù)名》(く參數(shù)表>)=0;。二、填空題(本大題共20小題,每小題1分,共20分)請?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。1.單目運(yùn)算符作為類成員函數(shù)重載時(shí),形參個(gè)數(shù)為ー個(gè)。答案:(P189)0,解析,單目運(yùn)算符使用成員函數(shù)重載可以不用形參,雙目運(yùn)算符使用ー個(gè)參數(shù)。2.抽象類中至少要有一個(gè)ー函數(shù)。答案:(P173)純虛,解析,至少有一個(gè)純虛函數(shù)的類就稱為抽象類,即不能實(shí)例化。.設(shè)類A有成員函數(shù)voidf(void);若要定義ー個(gè)指向類成員函數(shù)的指針變量pf來指向f,該。指針變量的聲明語句是:—答案:(PU7)void(A::*pf)(void)=&A::f;,解析,void(A::*pf)(void)=&A::f;指向成員函數(shù)的指針,它相當(dāng)于兩條語句:void(A::*pf)(void);和pf=&A::f;。.執(zhí)行下列程序doublea=3.1415926,b=3.14;coutくくsetprecision(5)くくaくく,「くくsetprecision(5)くくbくくendl;程序的輸出結(jié)果是ー。答案:3.1416,3.14,解析,題目設(shè)置精度即有效數(shù)字都是5,a四舍五入是3.1416,b是3.14。5.vector類中用于刪除向量中的所有對象的方法是 〇答案:(P151)clear。,解析,向量的使用。返回向量中對象的方法有:front。back。operator,,,在向量中刪除對象的方法pop_backeraseclear。.重載的運(yùn)算符保持其原有的一、優(yōu)先級和結(jié)合性不變。答案:(P183)操作數(shù),解析,運(yùn)算符重載時(shí)要遵循以下規(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ù)的個(gè)數(shù)及語法結(jié)構(gòu)。.編譯時(shí)的多態(tài)性通過ー函數(shù)實(shí)現(xiàn)。答案:(P165)重載,解析,編譯多態(tài)性,實(shí)現(xiàn)的方法主要通過函數(shù)的重載或運(yùn)算符的重載。.基類的公有成員在派生類中的訪問權(quán)限由一決定。答案:(P132)訪問控制方式或繼承方式.假設(shè)類X的對象x是類丫的成員對象,則“YObj”語句執(zhí)行時(shí),先調(diào)用類ー的構(gòu)造函數(shù)。答案:(P130)X,解析,派生類中的構(gòu)造函數(shù)的執(zhí)行順序,先基類后派生類。.下列程序段的輸出結(jié)果是 。cout.setf(ios::showpos);cout<<509.3<<endl;答案:(P193)+509.3,解析,輸入、輸出格式ios::showpos用于輸出數(shù)據(jù)的符號位。.下列程序段的輸出結(jié)果是ー。for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j);cout?k:答案:4,解析,for循環(huán)結(jié)構(gòu),三個(gè)表達(dá)式的作用,初始化、循環(huán)判斷條件和循環(huán)變量變化。循環(huán)執(zhí)行了三次,k的作用是計(jì)算i、j的和。.C,,中ostream的直接基類。答案:(P193)ios,解析,istream和ostream的直接基類是n=0;while(n=l)n++;while循環(huán)執(zhí)行次數(shù)是ー。答案:無限次,解析,,是賦值運(yùn)算符,不是關(guān)系運(yùn)算符,且不等0,所以死循環(huán)。.C++中有兩種繼承:單繼承和。答案:(P138)多繼承,解析,單繼承和多繼承,多繼承即有多個(gè)基類。.在C++中,利用向量類模板定義一個(gè)具有10個(gè)int的向量A,其元素均被置為1,實(shí)現(xiàn)此操作的語句是ー。答案:(P151)vectorくint>A(10,1),解析,定義向量列表vectorくint>A(10,1),使用兩個(gè)參數(shù),10表示長度,1表示數(shù)值。16.vector類中向向量尾部插入一個(gè)對象的方法是.答案:(P157)push_back.C++語言中如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取ー方式。答案:(P51)傳地址或引用,解析,傳地址即指針,在函數(shù)中通過指針修改它指向的變量的值時(shí),實(shí)參也就變化了。使用引用,直接修改變量的別名即引用的值,該變量也就隨著變化。.若函數(shù)的定義處于調(diào)用它的函數(shù)之前,則在程序開始可以省去該函數(shù)的ー語句。答案:聲明,解析,函數(shù)使用有兩部分:聲明和定義。定義在前,可以無聲明;但函數(shù)定義在后,調(diào)用在前的話,需要先聲明函數(shù)的原型。.在C++中有兩種參數(shù)傳遞方式:傳值和一。答案:(P51)傳引用,解析,(1)傳值調(diào)用又分為數(shù)據(jù)傳值調(diào)用和地址傳值調(diào)用。(2)引用調(diào)用是將實(shí)參變量值傳遞給形參,而形參是實(shí)參變量的引用名。引用是給ー個(gè)已有變量起的別名,對引用的操作就是對該引用變量的操作。.將指向?qū)ο蟮囊米鳛楹瘮?shù)的形參,形參是對象的引用,實(shí)參是__。答案:(P53)對象名,解析,實(shí)參與形參類型要一致,形參是對象的引用,實(shí)參應(yīng)該是對象名。2009年全國自考C++程序設(shè)計(jì)模擬試卷(四)ー、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯(cuò)選、多選或未選均無分。1.當(dāng)ー個(gè)類的某個(gè)函數(shù)被說明為virtual時(shí),該函數(shù)在該類的所有派生類中()A.都是虛函數(shù)B.只有被重新說明時(shí)オ是虛函數(shù)C,只有被重新說明為virtual時(shí)オ是虛函數(shù)D.都不是虛函數(shù)答案:A的函數(shù)為虛函數(shù),在派生類中只要有相同的函數(shù)(函數(shù)名相解析:(P170)在基類聲明為virtual同、返回值相同、形參類型和個(gè)數(shù)相同)即使不用virtual說明,也都是虛函數(shù)。2.要禁止修改指針p本身,又要禁止修改p所指向的數(shù)據(jù),這樣的指針應(yīng)定義為()A.constchar*p="ABCD";char*constp="ABCD";charconst*p="ABCD";constchar*constp="ABCD";答案:D解析:(P12)constchar*p說明禁止通過p修改所指向的數(shù)據(jù)。char*constP則說明不能修改指針p的地址。因此constchar*constp="ABCD";它禁止修改指針P本身,又禁止修改p所指向的數(shù)據(jù)。3.函數(shù)調(diào)用func((expl,exp2),(exp3,exp4,exp5))中所含實(shí)參的個(gè)數(shù)為()A.1245答案:B(exp3,exp4,exp5)表示是兩個(gè)逗號表達(dá)式,值是最后ー個(gè)值,相當(dāng)于兩個(gè)解析:(expl,exp2)、參數(shù)。因此實(shí)參的個(gè)數(shù)是2。.設(shè)有函數(shù)模板template<classQ>QSum(Qx,Qy){return(x)+(y);}則下列語句中對該函數(shù)模板錯(cuò)誤的使用是()Sum(10,2);Sum⑸0,6.7);Sum(15.2f,16.Of);Sum(“AB",“CD”);答案:D解析:(P40)由QSum(Qx,Qy)可知形參和函數(shù)返回值都是同一種數(shù)據(jù)類型。A、B、C三項(xiàng)都正確。而D項(xiàng)用字符串作為實(shí)參,字符串的操作與數(shù)值類型不同,要用特殊方法進(jìn)行字符串的連接和運(yùn)算。.類B是類A的公有派生類,類A和類B中都定義了虛函數(shù)func(),p是ー個(gè)指向類A對象的指針,則p->A::func()將()A.調(diào)用類A中的函數(shù)func().調(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(),因?yàn)閜指向派生類對象,由動(dòng)態(tài)多態(tài)性可知要調(diào)用派生類的虛函數(shù)。6.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,首先在問題域中識別出若干個(gè)()A.函數(shù)B.類C.文件D.過程答案:B解析:(P31)面向過程的和面向?qū)ο蠖季哂小⒑瘮?shù)、文件和過程這些概念,而面向?qū)ο蟪绦颔些栴惡蛯ο蟮奶卣鳌K赃x擇B7.已知門和f2是同一類的兩個(gè)成員函數(shù),但fl不能直接調(diào)用f2,這說明()fl和f2都是靜態(tài)函數(shù)fl不是靜態(tài)函數(shù),f2是靜態(tài)函數(shù)fl是靜態(tài)函數(shù),f2不是靜態(tài)函數(shù)fl和f2都不是靜態(tài)函數(shù)答案:C解析:(P107)普通成員函數(shù)可以調(diào)用靜態(tài)函數(shù),相反靜態(tài)函數(shù)不能調(diào)用普通成員函數(shù),這與普通函數(shù)與常成員函數(shù)相同。因此選擇C項(xiàng)。.下列有關(guān)模板和繼承的敘述正確的是()A.模板和繼承都可以派生出ー個(gè)類系B.從類系的成員看,模板類系的成員比繼承類系的成員較為穩(wěn)定C.從動(dòng)態(tài)性能看,繼承類系比模板類系具有更多的動(dòng)態(tài)特性D,相同類模板的不同實(shí)例一般沒有聯(lián)系,面派生類各種類之間有兄弟父子等關(guān)系答案:。解析:(P145)類是相同類型事物的抽象,具有不同的操作。而模板是不同類型的事物,具體相同的操作的抽象。類模板的實(shí)例化后,各個(gè)對象沒有任何關(guān)系。而類對象是通過派生、繼承等關(guān)系的關(guān)系。.有關(guān)C++編譯指令,以下敘述正確的是()A.C++每行可以寫多條編譯指令B.由nclude指令中的文件名可含有路徑信息C++的編譯指令可以以#或〃開始C++中不管,if后的常量表達(dá)式是否為真,該部分都需要編譯答案:B解析:(P96)編譯指令以,作為開頭,只能一行寫一條,,if有選擇進(jìn)行編譯,所以選擇B項(xiàng)。!0.在C++中不返回任何類型的函數(shù)應(yīng)該說明為()intcharvoiddouble答案:C解析:無形參或無返回值都可以用void來聲明,intchardouble分別是整型、字符型和實(shí)型。11.若Sample類中的一個(gè)成員函數(shù)說明如下:voidset(Sample&a),則Sample&a的含義是〇A.指向類Sample的名為a的指針B.a是類Sample的對象引用,用來作函數(shù)Set()的形參C.將a的地址賦給變量SetD.變量Sample與a按位與的結(jié)果作為函數(shù)Set的參數(shù)答案:B解析:(P53)成員函數(shù)使用對象的引用作為形參。該函數(shù)的功能是將已知對象的所有數(shù)據(jù)成員的值拷貝給相應(yīng)對象的所有數(shù)據(jù)成員,不會建立臨時(shí)對象,這里是對象的引用所以選擇B。12.下列關(guān)于靜態(tài)數(shù)據(jù)成員的描述中正確的是()A.靜態(tài)數(shù)據(jù)成員是類的所有對象所共有的B.靜態(tài)數(shù)據(jù)成員要在構(gòu)造函數(shù)內(nèi)初始化C.類的每個(gè)對象有自己的靜態(tài)數(shù)據(jù)成員D.靜態(tài)數(shù)據(jù)成員不能通過類的對象調(diào)用答案:D解析:(P107)靜態(tài)成員屬于類的即所有對象所共享的,只能在外部進(jìn)行初始化。使用時(shí)可以使用形式有兩種,類名::靜態(tài)成員或者對象靜態(tài)成員。所以選擇D項(xiàng)。.在編譯指令中,宏定義使用哪個(gè)指令()#ifttincludettdefineterror答案:C解析:(P7)#if條件編譯,,include文件包含,,ebor錯(cuò)誤處理。.類的析構(gòu)函數(shù)是對ー個(gè)對象進(jìn)行以下哪種操作時(shí)自動(dòng)調(diào)用的是()A.建立B.撤銷C.賦值D.引用答案:B解析:(P80)刪除對象或結(jié)束程序時(shí),自動(dòng)調(diào)用析構(gòu)函數(shù)。15.關(guān)于new運(yùn)算符的下列描述中,錯(cuò)誤的是〇A.它可以用來動(dòng)態(tài)創(chuàng)建對象和對象數(shù)組B.使用它創(chuàng)建的對象或?qū)ο髷?shù)組可以使用運(yùn)算符delete刪除C.使用它創(chuàng)建對象時(shí)要調(diào)用構(gòu)造函數(shù)D.使用它創(chuàng)建對象數(shù)組時(shí)必須指定初始值答案:。解析:(P107)靜態(tài)成員的特性是靜態(tài)成員只有一個(gè)拷貝(副本),這個(gè)副本被所有屬于這個(gè)類的對象共享。這種共享與全局變量或全局函數(shù)相比,既沒有破壞數(shù)據(jù)隱藏的原則,又保證了安全性。靜態(tài)成員表示整個(gè)類范圍的信息,其聲明以關(guān)鍵字static開始,包括靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。在對靜態(tài)數(shù)據(jù)成員初始化時(shí)應(yīng)注意:(1)應(yīng)在類體外對靜態(tài)數(shù)據(jù)成員進(jìn)行初始化(靜態(tài)數(shù)據(jù)成員的初始化與它的訪問控制權(quán)限無關(guān))〇(2)靜態(tài)數(shù)據(jù)成員初始化時(shí)前面不加static關(guān)鍵字,以免與一般靜態(tài)變量或?qū)ο蠡煜?。?)由于靜態(tài)數(shù)據(jù)成員是類的成員,因此在初始化時(shí)必須使用作用域運(yùn)算符(::)限定它所屬的類。因此選擇D項(xiàng)。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項(xiàng)。.假定一個(gè)類的構(gòu)造函數(shù)為A(intaa,intbb){a=aa++;b=a*++bb;},則執(zhí)行Ax(4,5);語句后,x.a和x.b的值分別為()4和54和204和2420和5答案:C解析:(P75)執(zhí)行構(gòu)造函數(shù)將數(shù)據(jù)成員進(jìn)行賦值,aa++是后加,先賦值a,4,++bb,bb變量值先自加為6,再與a相乘,所以b,24。.下列運(yùn)算符中,在C++語言中不能重載的是()*>=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)類族即同一個(gè)類派生出來的類,各個(gè)類是兄弟或父子關(guān)系。20.在C++語言中,數(shù)據(jù)封裝要解決的問題是()A.數(shù)據(jù)的規(guī)范化B.便于數(shù)據(jù)轉(zhuǎn)換C.避免數(shù)據(jù)丟失D.防止不同模塊之間數(shù)據(jù)的非法訪問答案:。解析:(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分)請?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。.若要使用string類,需要引入的頭文件是ー。答案:(P40)string,h,解析,編譯時(shí)要將頭文件引入才能使用標(biāo)準(zhǔn)庫中的方法或成員。.在函數(shù)前面用ー保留字修飾時(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.向量操作方法中一方法返回向量中的第一個(gè)對象。答案:(P151)front,解析,考察向量方法的使用。front。:返回向量中的第1個(gè)對象。back。:返回向量中的最后ー個(gè)對象。operator,,(size_type,n):返回向量中的第n,1個(gè)對象(下標(biāo)為n的向量元素)〇.C++派生類使用兩種基本的面向?qū)ο蠹夹g(shù):第一種稱為性質(zhì)約束,即對基類的性質(zhì)加以限制;第二種稱為ー,即增加派生類的性質(zhì)。答案:(P129)性質(zhì)擴(kuò)展,解析,派生類通過繼承可以從基類中獲得成員,也可以自定義成員。.重載的運(yùn)算符保持其原有的一、優(yōu)先級和結(jié)合性不變。答案:(P183)操作數(shù),解析,運(yùn)算符重載時(shí)要遵循以下規(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ù)的個(gè)數(shù)及語法結(jié)構(gòu)。.編譯時(shí)的多態(tài)性通過ー函數(shù)實(shí)現(xiàn)。答案:(P165)重載,解析,編譯多態(tài)性,實(shí)現(xiàn)的方法主要通過函數(shù)的重載或運(yùn)算符的重載。?.預(yù)處理語句有三種,分別是宏定義、文件包含和一。答案:(P7)條件編譯,解析,宏定義,define,文件包含,include和條件編譯#if等。.構(gòu)造函數(shù)、析構(gòu)函數(shù)和友元函數(shù)中,不是該類成員的是 〇答案:(P109)友元函數(shù),解析,友元函數(shù)不是類成員,但可以訪問類中成員。.控制格式輸入輸出的操作中,函數(shù)一是設(shè)置域?qū)挼?。要求給出函數(shù)名和參數(shù)類型)。答案:(P193)setw(int),解析,setw(intn):用來設(shè)置n輸出寬度。.派生類的成員一般分為兩部分,一部分是ー,另一部分是自己定義的新成員。答案:(P127)從基類繼承的成員,解析,派生類成員一個(gè)來自繼承基類成員,ー個(gè)來自本身增加的成員。11.C,,中ostream的直接基類〇答案:(P193)ios,解析,istream和ostream的直接基類是ios。12.vector的一方法返回向量中的最后一個(gè)對象。答案:(P151)back,解析,front():返回向量中的第1個(gè)對象。back。:返回向量中的最后ー個(gè)對象。operator,,(sizetype,n):返回向量中的第n,1個(gè)對象(下標(biāo)為n的向量元素)。13.執(zhí)行下列代碼inti=230;coutくく"i="くくhex?i?endl;程序的輸出結(jié)果為ー〇答案:(P193)i=e6,解析,流類庫中使用格式符,輸出十六進(jìn)制數(shù)據(jù)。.在C++中有兩種參數(shù)傳遞方式即值傳遞和ー傳遞。答案:(P51)引用,解析,函數(shù)參數(shù)傳遞有傳值和傳引用兩種。.使用new為int數(shù)組動(dòng)態(tài)分配10個(gè)存儲空間是 〇答案:(PlO)newint,10,;,解析,newdelete動(dòng)態(tài)開辟空間和刪除空間。newint,10,,注意不要寫成newint(10),使用小括號只能開辟ー個(gè)空間,使用10來初始化該值。16.面向?qū)ο蟮乃膫€(gè)基本特性是多態(tài)性、繼承性、和封裝性一〇答案:(P37)抽象,解析,考察面向?qū)ο蟮乃膫€(gè)特征。程序由一組抽象的對象組成,ー組對象的共同特征抽象出類的概念,類是對象的抽象,對象是類的實(shí)例。封裝即將數(shù)據(jù)和操作緊密結(jié)合提供訪問的接口,外部通過接口實(shí)現(xiàn)訪問數(shù)據(jù),提供安全性。繼承繼承解決了類的擴(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ù)。.執(zhí)行下列代碼coutくく’'oct:"くくoctくく34;程序的輸出結(jié)果是ー〇答案:(P193)Oct:42表示八進(jìn)制,hex表示十六進(jìn)制,但它們只能輸出整型的數(shù)據(jù)。,解析,。ct.在C++中要?jiǎng)?chuàng)建一個(gè)文件輸入流對象fin,同時(shí)該對象打開文件“Test.txt”用于輸入,則正確的聲明語句是ー〇答案:(P200)ifstreamfin("Test.txtw);,解析,文件操作中ifstream用于文件的輸入,可以調(diào)用它的構(gòu)造函數(shù)與要打開的文件進(jìn)行關(guān)聯(lián)20.如果ー個(gè)派生類只有一個(gè)唯一的基類,則這樣的繼承關(guān)系稱為ー。答案:(P130)單ー,解析,根據(jù)派生類所擁有的基類數(shù)目不同,可以分為單繼承和多繼承。ー個(gè)類只有一個(gè)直接基類時(shí),稱為單繼承;而ー個(gè)類同時(shí)有多個(gè)直接基類時(shí),則稱為多繼承。基類與派生類之間的關(guān)系如下:(1)基類是對派生類的抽象,派生類是對基類的具體化,是基類定義的延續(xù)。⑵派生類是基類的組合。多繼承可以看作是多個(gè)單繼承的簡單組合。(3)公有派生類的對象可以作為基類的對象處理。\2010年全國自考C++程序設(shè)計(jì)模擬試卷(五)ー、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯(cuò)選、多選或未選均無分。1.靜態(tài)成員函數(shù)沒有()A.返回值B.this指針C.指針參數(shù)D.返回類型答案:B解析:(P107)靜態(tài)成員函數(shù)是普通的函數(shù)前加入static,它具有函數(shù)的所有的特征:返回類型、形參,所以使用(P107)靜態(tài)成員函數(shù),指針可以作為形參,也具有返回值。靜態(tài)成員是類具有的屬性,不是對象的特征,而this表示的是隱藏的對象的指針,因此靜態(tài)成員函數(shù)沒有this指針。靜態(tài)成員函數(shù)當(dāng)在類外定義時(shí),要注意不能使用static關(guān)鍵字作為前綴。由于靜態(tài)成員函數(shù)在類中只有一個(gè)拷貝(副本),因此它訪問對象的成員時(shí)要受到ー些限制:靜態(tài)成員函數(shù)可以直接訪問類中說明的靜態(tài)成員,但不能直接訪問類中說明的非靜態(tài)成員;若要訪問非靜態(tài)成員時(shí),必須通過參數(shù)傳遞的方式得到相應(yīng)的對象,再通過對象來訪問。2.在類的定義中,用于為對象分配內(nèi)存空間,對類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是()A.友元函數(shù)B.虛函數(shù)C.構(gòu)造函數(shù)D.析構(gòu)函數(shù)答案:C解析:(P75)定義構(gòu)造函數(shù)作用就是初始化對象,而析構(gòu)函數(shù)釋放對象空間。虛函數(shù)用于完成多態(tài)性,友元增加訪問方便性。3.所有在函數(shù)中定義的變量,都是()A.全局變量B.局部變量C?靜態(tài)變量D.寄存器變量答案:B解析:(P136)變量存儲類可分為兩類:全局變量和局部變量。(1)全局變量:在函數(shù)外部定義的變量稱為全局變量,其作用域?yàn)?從定義變量的位置開始到源程序結(jié)束。全局變量增加了函數(shù)之間數(shù)據(jù)聯(lián)系的渠道,全局變量作用域內(nèi)的函數(shù),均可使用、修改該全局變量的值,但是使用全局變量降低了程序的可理解性,軟件工程學(xué)提倡盡量避免使用全局變量。)局部變量:在函數(shù)內(nèi)部定義的變量稱為局部變量,其作用域?yàn)?從定義變量的位置開始(2到函數(shù)結(jié)束。局部變量包含自動(dòng)變量(auto)靜態(tài)變量(static)以及函數(shù)參數(shù)。auto變量意味著變量的存儲空間的分配與釋放是自動(dòng)進(jìn)行的。說明符auto可以省略。函數(shù)中的局部變量存放在??臻g。在函數(shù)開始運(yùn)行時(shí),局部變量被分配內(nèi)存單元,函數(shù)結(jié)束時(shí),局部變量釋放內(nèi)存單元。因此,任兩個(gè)函數(shù)中的局部變量可以同名,因其占有不同的內(nèi)存單元而不影響使用。這有利于實(shí)現(xiàn)軟件開發(fā)的模塊化。static變量是定義在函數(shù)體內(nèi)的變量,存放在靜態(tài)存儲區(qū),不用??臻g存儲,其值并不隨存儲空間的釋放而消失。.假定AB為ー個(gè)類,則執(zhí)行“ABa(2),b,3,,*p,4,;”語句時(shí)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為()3459答案:B解析:(P79)a(2)調(diào)用1次帶參數(shù)的構(gòu)造函數(shù),b,3,調(diào)用3次無參數(shù)的構(gòu)造函數(shù),指針沒有給它分配空間,沒有調(diào)用構(gòu)造函數(shù)。所以共調(diào)用構(gòu)造函數(shù)的次數(shù)為.如果表達(dá)式++a中的“++”是作為成員函數(shù)重載的運(yùn)算符,若采用運(yùn)算符函數(shù)調(diào)用格式,則可表示為()a.operator++(l)operator++(a)operator++(a,1)a.operator++()答案:D解析:(P186)運(yùn)算符的重載,前綴先讓變量變化。調(diào)用,,a,等價(jià)為a.operator++(),注意無參的形式。后綴的話a++,等價(jià)于a.operator(0),帶形參,形參名可省。6.已知fl和f2是同一類的兩個(gè)成員函數(shù),但fl不能直接調(diào)用f2,這說明()A.門和f2都是靜態(tài)函數(shù)fl不是靜態(tài)函數(shù),f2是靜態(tài)函數(shù)fl是靜態(tài)函數(shù),f2不是靜態(tài)函數(shù)fl和f2都不是靜態(tài)函數(shù)答案:C解析:(P107)普通成員函數(shù)可以調(diào)用靜態(tài)函數(shù),相反靜態(tài)函數(shù)不能調(diào)用普通成員函數(shù),這與普通項(xiàng)。函數(shù)與常成員函數(shù)相同。因此選擇C.ー個(gè)函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,則應(yīng)把它定義為()A.內(nèi)聯(lián)函數(shù).重載函數(shù)C,遞歸函數(shù)D.嵌套函數(shù)答案:A解析:(P59)內(nèi)聯(lián)函數(shù)特征代碼少,頻繁調(diào)用,執(zhí)行效率高。重載函數(shù)解決統(tǒng)ー接口的問題;遞歸是子程序調(diào)用,程序調(diào)用要耗費(fèi)很多空間和時(shí)間,循環(huán)/迭代都比遞歸有效率得多,遞歸只是從形式上,邏輯比較簡潔。嵌套函數(shù)即反復(fù)調(diào)用,速度較慢。所以選擇A項(xiàng)。8.解決定義二義性問題的方法有()A.只能使用作用域分辨運(yùn)算符B.使用作用域分辨運(yùn)算符或成員名限定C.使用作用域分辨運(yùn)算符或虛基類D.使用成員名限定或賦值兼容規(guī)則答案:B解析:(P139)解決二義性問題主要要兩種方法:(1)賦值兼容規(guī)則;(2)虛基類。9.在main函數(shù)中可以用p.a的形式訪問派生類對象p的基類成員a,其中a是()A,私有繼承的公有成員B.公有繼承的私有成員C.公有繼承的保護(hù)成員D.公有繼承的公有成員答案:D解析:(P132)公有成員可以在類外訪問,保護(hù)類型成員可以在派生類中訪問,但不能在類外訪問,在main函數(shù)中訪問,說明a是公有成員。只有公有繼承時(shí)a才能是公有的,所以D項(xiàng)正確。10.在C++中不返回任何類型的函數(shù)應(yīng)該說明為()intcharvoidD.double答案:c解析:無形參或無返回值都可以用void來聲明,intchardouble分別是整型、字符型和實(shí)型。11.若Sample類中的一個(gè)成員函數(shù)說明如下:voidset(Samplefta)?則Sample&a的含義是()A.指向類Sample的名為a的指針B.a是類Sample的對象引用,用來作函數(shù)Set()的形參C.將a的地址賦給變量SetD.變量Sample與a按位與的結(jié)果作為函數(shù)Set的參數(shù)答案:B解析:(P53)成員函數(shù)使用對象的引用作為形參。該函數(shù)的功能是將已知對象的所有數(shù)據(jù)成員的值拷貝給相應(yīng)對象的所有數(shù)據(jù)成員,不會建立臨時(shí)對象,這里是對象的引用所以選擇B。12.要實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編必須〇A.通過成員名限定來調(diào)用虛函數(shù)B.通過對象名來調(diào)用虛函數(shù)C,通過派生類對象來調(diào)用虛函數(shù)D.通過對象指針或引用來調(diào)用虛函數(shù)答案:D解析:(P170)通過基類指針或基類引用來調(diào)用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性,靜態(tài)多態(tài)性通過重載來實(shí)現(xiàn)的。所以選擇D項(xiàng)。13.在派生類中定義虛函數(shù)時(shí),可以與基類中相應(yīng)的虛函數(shù)不同的是()A.參數(shù)類型B.參數(shù)個(gè)數(shù)C.函數(shù)名稱D.函數(shù)體答案:D解析:(P170)虛函數(shù)在基類和派生類,具有相同的返回類型、形參類型和形參個(gè)數(shù),而函數(shù)體可以根
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)三年級(森林資源保護(hù)與管理)森林防火階段測試題及答案
- 2025年本科旅游管理(旅游企業(yè)管理)試題及答案
- 2025年中職寵物養(yǎng)護(hù)與馴導(dǎo)(寵物訓(xùn)練技巧)試題及答案
- 2026年銑工工程師(銑工標(biāo)準(zhǔn))專項(xiàng)測試題及答案
- 2025年大學(xué)護(hù)理(消毒滅菌護(hù)理進(jìn)階)試題及答案
- 2026年橋梁工程師(橋梁設(shè)計(jì))考題及答案
- 2025年中職體育運(yùn)營與管理(運(yùn)營管理)試題及答案
- 2025年中職(寵物養(yǎng)護(hù)與經(jīng)營)寵物護(hù)理技能測試題及答案
- 2025年高職機(jī)場運(yùn)行(機(jī)場管理)技能測試題
- 2025年中職心理學(xué)(心理健康教育)試題及答案
- 廣東省普通高中學(xué)生檔案
- 冬季預(yù)防疾病版
- 認(rèn)知障礙的護(hù)理及健康宣教
- 兒童孤獨(dú)癥的篩查與轉(zhuǎn)診課件
- 當(dāng)代網(wǎng)絡(luò)文學(xué)中的創(chuàng)新與影響力探究
- 軟件使用授權(quán)書
- 慰問品采購?fù)稑?biāo)方案(技術(shù)方案)
- 社會組織財(cái)務(wù)管理
- 國家開放大學(xué)一網(wǎng)一平臺電大《建筑測量》實(shí)驗(yàn)報(bào)告1-5題庫
- 品質(zhì)異常通知單
- 鼎捷T100-V1.0-總賬管理用戶手冊-簡體
評論
0/150
提交評論