



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
全國自考C++程序設(shè)計模仿試卷(-)38ー、單項選取題(本大題共20小題,每小題1分,共20分)在每小題列出四個備選項中只有一種是符合題目規(guī)定,請將其代碼填寫在題后括號內(nèi)。錯選、多選或未選均無分。1.編寫C++程序普通需通過幾種環(huán)節(jié)依次是()A.編輯、調(diào)試、編譯、連接B.編輯、編譯、連接、運營C.編譯、調(diào)試、編輯、連接D.編譯、編輯、連接、運營答案:B解析:(P21)通過編輯、編譯、連接和運營四個環(huán)節(jié)。編輯是將C++源程序輸入計算機過程,保存文獻名為cpp。編譯是使用系統(tǒng)提供編譯器將源程序cpp生成機器語言過程,目的文獻為obj,由于沒有得到系統(tǒng)分派絕對地址,還不能直接運營。連接是將目的文獻。bj轉(zhuǎn)換為可執(zhí)行程序過程,成果為exe。運營是執(zhí)行exe,在屏幕上顯示成果過程。.決定C++語言中函數(shù)返回值類型是〇A.return語句中表達式類型B.調(diào)用該函數(shù)時系統(tǒng)隨機產(chǎn)生類型C.調(diào)用該函數(shù)時主調(diào)用函數(shù)類型D,在定義該函數(shù)時所指定數(shù)據(jù)類型答案:D解析:(P51)函數(shù)返回值類型由定義函數(shù)時指定數(shù)據(jù)類型決定。A項表達式值要轉(zhuǎn)換成函數(shù)定義時返回類型。.下面論述不對的是()ム.派生類普通都用公有派生B.對基類成員訪問必要是無二義性C.賦值兼容規(guī)則也合用于多重繼承組合D,基類公有成員在派生類中依然是公有答案:D解析:(P136)繼承方式有三種:公有、私有和保護。多繼承中,各種基類具備同名成員,在它們子類中訪問這些成員,就產(chǎn)生了二義性,但進行訪問時,不能存在二義性。賦值兼容規(guī)則是指派生類對象可以當作基類對象使用,只要存在繼承關(guān)系,因此單繼承或多繼承都合用?;愔泄谐蓡T采用私有繼承時,在派生類中變成了私有成員,因此D項錯誤。.所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)關(guān)于操作組裝在ー起,形成一種實體,這實體也就是〇厶.類B.對象C1函數(shù)體D,數(shù)據(jù)塊答案:A解析:(P39)類即數(shù)據(jù)和操作組合體,數(shù)據(jù)是類靜態(tài)特性,操作是類具備動作。.在公有派生類成員函數(shù)不能直接訪問基類中繼承來某個成員,則該成員一定是基類中〇A,私有成員B.公有成員C.保護成員D.保護成員或私有成員答案:A解析:(P133)在派生類中基類保護或者基類公有都可以直接訪問,基類私有成員只能是基類成員函數(shù)來訪問。因此選取A項。.對基類和派生類關(guān)系描述中,錯誤是〇厶.派生類是基類詳細化B.基類繼承了派生類屬性C.派生類是基類定義延續(xù)D.派生類是基類特殊化答案:B解析:(P129)派生類成員ー種是來自基類,ー種來自自身,因此派生類是基類擴展,也是基類詳細化和特殊化,派生類是對基類擴展。B項基類不能繼承派生類成員,因此錯誤。.關(guān)于this指針使用說法對的是()ム.保證每個對象擁有自己數(shù)據(jù)成員,但共享解決這些數(shù)據(jù)代碼.保證基類私有成員在子類中可以被訪問。C.保證基類保護成員在子類中可以被訪問。D.保證基類公有成員在子類中可以被訪問。答案:A解析:(P86)this指針是隱藏,可以使用該指針來訪問調(diào)用對象中數(shù)據(jù)?;惓蓡T在派生類中能否訪問,與繼承方式關(guān)于,與this沒關(guān)于系。因此選取A項。8.所謂多態(tài)性是指〇A.不同對象調(diào)用不同名稱函數(shù)B,不同對象調(diào)用相似名稱函數(shù)ー種對象調(diào)用不同名稱函數(shù)ー種對象調(diào)用不同名稱對象答案:B解析:(P167)多態(tài)性有兩種靜態(tài)多態(tài)性和動態(tài)多態(tài)性,靜態(tài)多態(tài)性是指調(diào)用同名函數(shù),由于參數(shù)不同調(diào)用不同同名函數(shù);動態(tài)多態(tài)性是指不同對象調(diào)用同名函數(shù)時,由于對象不同調(diào)用不同同名函數(shù)。多態(tài)性必定具備相似函數(shù)名,因此選取B項。9.ー種函數(shù)功能不太復(fù)雜,但規(guī)定被頻繁調(diào)用,則應(yīng)把它定義為〇4.內(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)用要耗費諸多空間和時間,循環(huán)/迭代都比遞歸有效率得多,遞歸只是從形式上,邏輯比較簡潔。嵌套函數(shù)即重復(fù)調(diào)用,速度較慢。因此選取A項。.下面函數(shù)模板定義中不對的是()ABCD答案:A解析:(P147)A項中F是ー種返回Q類型值,而return中用返回類型作為返回值錯誤。因此選取A項。.假設(shè)ClassY:publicX,即類Y是類X派生類,則闡明一種Y類對象時和刪除Y類對象時,調(diào)用構(gòu)造函數(shù)和析構(gòu)函多順序分別為〇X,Y;Y.XX.Y;X,YY,X;X,YY,X;Y.X答案:A解析:(P130)派生類構(gòu)造函數(shù)必要對這三類成員進行初始化,其執(zhí)行順序:調(diào)用基類構(gòu)造函數(shù);調(diào)用子對象構(gòu)造函數(shù);派生類構(gòu)造函數(shù)體。析構(gòu)函數(shù)在執(zhí)行過程中也要對基類和成員對象進行操作,但它執(zhí)行過程與構(gòu)造函數(shù)正好相反,即對派生類新增普通成員進行清理;調(diào)用成員對象析構(gòu)函數(shù),對派生類新增成員對象進行清理;調(diào)用基類析構(gòu)函數(shù),對基類進行清理,因此選取A項。.適當采用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項。.假定一種類構(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,由于后減,b值與a、bb有關(guān),b=4*5=20,而與aa沒有任何關(guān)系。14,在類中闡明成員可以使用核心字是()A.publicB?externC.cpuD?register答案:A解析:extern用于聲明外部變量。register聲明寄存器類型變量。無cpu類型。它們都不能聲明類成員。public聲明為公有訪問權(quán)限,因此選取A項。.下列不能作為類成員是〇ム.自身類對象指針B,自身類對象C?自身類對象引用D.另一種類對象答案:B解析:類定義,如果有自身類對象,使得循環(huán)定義,B項錯誤。在類中具備自身類指針,可以實現(xiàn)鏈表操作,固然也可以使用對象引用。類中可以有另一種類對象,即成員對象。所以選取B選項。.使用地址作為實參傳給形參,下列說法對的是〇A.實參是形參備份B.實參加形參無聯(lián)系C.形參是實參備份
D.實參加形參是同一對象答案:D解析:(P51)地址作為實參,表達實參加形參代表同一種對象。如果實參是數(shù)值,形參也是普通變量,此時形參是實參備份。因此選取D項。17.卜列程序輸出成果是()^includeくiostream.h>voidmain(){intn[][3]={10,20,30,40,50,60);int(*p)[3];vnp=n;cout?p[0]〇0]くく","?*(p[0]+1)?","?(*p)[2]?endl;}10,30,5010,20,3020,40,6010,30,60答案:B解析:如果數(shù)組元素都是相似類型指針,則稱這個數(shù)組為指針數(shù)組。指針數(shù)組普通用于解決二維數(shù)組。聲明格式為:く數(shù)據(jù)類型>く(?變量名)>く[元素個數(shù)]>〇P表達指向數(shù)組n行指針。如果將指針初始化(*p)[3]=b;地址等價形式:p+iP[i]*(p+D都表達b數(shù)組第i+1行第1個元素首地址。*(p+i)+jp[i]+j&p[i][j]都表達b數(shù)組第i+1行、第」+1列元素地址。值等價形式:*(*(p+i)+j)*(p[i]+j)p[i][j]都表達b數(shù)組第i+1、第j+1列元素值。因此題目分別訪問P[0][0],p[0][1],p[0][2]0.在C++中,使用流進行輸入輸出,其中用于屏幕輸入〇A.cinB?cerrC.cout
D.clog答案:A解析:(P193)(1)原則輸入流cin:istream類對象。(2)原則輸出流cout:ostream類對象。(3)非緩沖型原則出錯流ce門":ostream類對象。(4)緩沖型原則出錯流clog:ostream類對象.假定AA為ー種類,a()為該類公有函數(shù)成員,x為該類ー種對象,則訪問x對象中函數(shù)成員a()格式為〇x.ax.a()x->a(*x).a()答案:B解析:(P41)對象訪問成員方式為:對象名.成員。指針可以有兩種:(?對象指針).成員或者對象指針ー〉成員。A選項是訪問數(shù)據(jù)成員,B項是訪問成員函數(shù)。.關(guān)于對象概念描述中,說法錯誤是()厶.對象就是C語言中構(gòu)造變量B.對象代表著正在創(chuàng)立系統(tǒng)中一種實體C.對象是類ー種變量D.對象之間信息傳遞是通過消息進行答案:A解析:(P37)A對象在C++中オ有,涉及數(shù)據(jù)和操作兩項,而C中變量只有數(shù)據(jù),沒有操作。所以A項錯誤。二、填空題(本大題共20小題,每小題1分,共20分)請在每小題空格中填上對的答案〇錯填、不填均無分。C++流庫預(yù)定義了4個流,它們是cin、cout、clog和〇答案:(P193)cerr[解析]cin、cout、clog和cerr分別用于原則輸入、輸出、原則錯誤流(緩沖)和原則錯誤流(非緩沖)。2.每個對象都是所屬類ー種ー。[解析]類是對象抽象,對象是類ー種實例。3,在已經(jīng)定義了整型指針ip后,為了得到ー種涉及10個整數(shù)數(shù)組并由ip所指向,應(yīng)使用語句 答案:(P78)int*ip=newint[10];[解析]new用來動態(tài)開辟空間。慣用來產(chǎn)生動態(tài)數(shù)組及對象構(gòu)造函數(shù)。.函數(shù)模板中緊隨template之后尖括號內(nèi)類型參數(shù)都要冠以保存字ー〇答案:(P145)class[解析]類模板使用。template<classT〉,也可以引入多參數(shù)如:template<classT1,classT2,...,classTn>.定義類動態(tài)對象數(shù)組時,系統(tǒng)只可以自動調(diào)用該類ー構(gòu)造函數(shù)對其進行初始化。答案:(P80)無參[解析]使用new創(chuàng)立對象數(shù)組,調(diào)用無參構(gòu)造函數(shù)。.表達式coutくくendl還可表達為〇答案:'\ガ[解析]endl與字符常量‘\n’等價。.在C++中,訪問ー種指針所指向?qū)ο蟪蓡T所用指向運算符是ー。答案:ー〉[解析]指針使用成員有兩種辦法:“ー>”指向運算符和”成員訪問運算符。.如果ー種類名稱為MyClass,使用這個類ー種對象初始化該類另ー種對象時,可以調(diào)用ー構(gòu)造函數(shù)來完畢此功能。答案:(P80)復(fù)制或拷貝復(fù)制或拷貝構(gòu)造函數(shù)就是用對象初始化新對象。.對賦值運算符進行重載時,應(yīng)聲明為ー函數(shù)。答案:(P183)類成員[解析]運算符重載辦法有友元或者成員函數(shù)兩種途徑,但是賦值運算符只能使用成員函數(shù)辦法來實現(xiàn)。.如果要把A類成員函數(shù)f()且返回值為void聲明為類B友元函數(shù),則應(yīng)在類B定義中加入語句 .答案:(P109)friendvoidA::f();[解析]成員函數(shù)作為另ー種類友元函數(shù),格式為:friend返回類型類名::函數(shù)(形參)。.下列程序段輸出成果是ー〇for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j);cout?k;答案:4[解析]for循環(huán)構(gòu)造,三個表達式作用,初始化、循環(huán)判斷條件和循環(huán)變量變化。循環(huán)執(zhí)行了三次,k作用是計算i、j和。.String類ー辦法返回查找到字符串在主串位置。答案:(P40)find[解析]string類對象辦法find,査不到字符串,則返回ー1。.intn=0;while(n=l)n++;while循環(huán)執(zhí)行次數(shù)是_〇答案:無限次[解析]=是賦值運算符,不是關(guān)系運算符,且不等。,因此死循環(huán)。.控制格式輸入輸出操作中,函數(shù)一是用來設(shè)立填充字符。規(guī)定給出函數(shù)名和參數(shù)類型答案:(P195)setfill(char)[解析]格式控制辦法使用,如setw,setfill等等。.C++語言支持兩種多態(tài)性分別是編譯時多態(tài)性和多態(tài)性。答案:(P167)運營時[解析]多態(tài)性涉及靜態(tài)(編譯時)多態(tài)性和動態(tài)(運營時)多態(tài)性。.設(shè)函數(shù)sum是由函數(shù)模板實現(xiàn),并且sum(3,6)和sum(4.6,8)都是對的函數(shù)調(diào)用,則函數(shù)模板具備ー個類型參數(shù)。答案:(P61)2.執(zhí)行下列代碼stringstr("HelloC++”);cout?str.substr(5,3);程序輸出成果是答案:(P42)C++[解析]substr取子字符串,第1個參數(shù)表達要截取子串在字符串中位置,第2個表達取多少個字符。.在面向?qū)ο蟪绦蛟O(shè)計中,將一組對象共同特性抽象出來形成一〇答案:(P38)類[解析]類是相似特性對象抽象,對象是類ー種實例。.定義類動態(tài)對象數(shù)組時,元素只能靠自動調(diào)用該類ー來進行初始化。答案:(P77)無參構(gòu)造函數(shù)[解析]使用new創(chuàng)立動態(tài)對象數(shù)組,不能有參數(shù),因此只能調(diào)用無參構(gòu)造函數(shù),初始化對象.已知有20個元素int類型向量VI,若用VI初始化為V2向量,語句是ー〇答案:(P151)vector<int>V2(Vl);[解析]采用向量初始化另ー種向量形式:vector<type>namel(name);三、改錯題(本大題共5小題,每小題2分,共10分)下面類定義中有一處錯誤,請用下橫線標出錯誤所在行并給出修改意見。!?#include<iostream.h>classTest{private:intx,y=20;public:Test(inti,intj){x=i,y=j;}intgetx(){returnx;}intgety(){returny;});voidmain(){Testmt(10,20);cout<<mt.getx()<<endl;cout<<mt.gety()<<endl;答案:intx,y=20;在類內(nèi)部不能對數(shù)據(jù)成員直接賦值。[修改]intx,y;#include<iostream.h>classTest{intx,y;public:fun(inti,intj){x=i;y=j;}show(){coutくく"x="くくx;if(y)cout<<",y="<<y<<endl;cout?endl;}};voidmain(){Testa;a.fun(l);a.show();a.fun⑵4);a.show();)答案:inti,intj調(diào)用時,既有一種參數(shù),也有兩個參數(shù),且沒有重載,因此參數(shù)需要帶默認值。因此inti,intj錯誤。[修改]inti,intj=0〃注j只要有一種int類型數(shù)據(jù)就行。Sinclude<iostream.h>classA{inti;public:A(inta){i=a;}};classB:publicA{intj;public:voidfun(){cout?z,B::fun()\n〃;}B(intm,intn=0):A(m),j(n){}};voidmain(){A*pa;Bb(7);pa=&b;)答案:B(intm,intn=0):A(m),j(n){}由于基類是抽象類,不能被實例化,因此在派生類中不能調(diào)用初始化基類對象。因此B(intm,intn=0)初始),j(n){}錯誤,刪去A(m)。[修改]B(intm,intn=0):j(n){}.Sinclude<iostream.h>classX{public:intx;public:X(intx){coutくくthisー〉x=xくくendl;}X(X&t){x=t.X;cout<<t.x<<endl;voidfun(X););voidfun(Xt){cout<<t.x?endl;}voidmain(){fun(X(10));}答案:cout?this->x=x<<endl;要輸出thisー〉x二x表達式值要加括號。[修改]cout?(thisー〉x=x)<<endl;#include<iostream.h>#include<string.h>classBas{public:Bas(char*s="\0"){strcpy(name,s);}voidshow();protected:charname[20];);Basb;voidshow(){cout<<"name:"<<<<endl;}voidmain(){Basd2("hello");show();)答案:voidshow。;是普通函數(shù)不是成員函數(shù),但是要訪問類成員,需要定義為友元函數(shù)。[修改]friendvoidshow();四、完畢程序題(本大題共5小題,每小題4分,共20分).在下,面程序橫線處填上恰當字句,以使該程序執(zhí)行成果為:504342110010.111.1#include<iostream.h>template<classT>voidf(){;for(inti二〇;iくn/2;i++)t=a[i],a[i]=a[n-l-i],a[n-1-i]=t;}voidmain(){inta[5]={10,21,34,4,50);doubled[6]={11.1,10.1,9.1,8.1,7.1};f(a,5);f(d,6);for(inti=0;iく5;i++)cout<<a[i]くく”;cout<<endl;for(i=0;iく6;i++)coutくくd[i]くく””;cout?endl;}答案:Ta[],intn,Tt=0;[解析]不同數(shù)據(jù)類型調(diào)用,使用了模板。f函數(shù)增長t變量,由于實參類型不同,因此t類型應(yīng)當是T類型。.在下面程序底畫線處填上恰當字句,使該程序執(zhí)行成果為40。#include<iostream.h>classTest{public:Test(inti=0){x=i+x;}intGetnumO{returnTest::x+7;}};voidmain(){Testtest;cout<<test.GetnumO<<endl;;}答案:staticintx;,intTest::x=30;[解析]從成員函數(shù)訪問方式類名::成員可知是靜態(tài)成員因此staticintx;從成果要對初始化為30,且在類外進行初始化,intTest::x=30;。.在下列程序空格處填上恰當字句,使輸出為:0,2,10o#include<iostream.h>#include<math.h>classMagic{doublex;public:Magic(doubled=0.00):x(fabs(d)){)Magicoperator+(){returnMagic(sqrt(x*x+c?x*c?x));)operator?(ostream&stream,Magic&c){stream?c.x;returnstream;});{Magicma;coutくくmaくく","?Magic(2)<<","?ma+Magic(-6)+Magic(-8)<<endl;)答案:operator+(Magic&c),friendostream&operator[解析]對加法進行重載,operator+(Magic&c),是對插入符進行重載,要訪問成員因此定義為友兀函數(shù),friendostream&operator〇.下面是ー種輸入半徑,輸出其面積和周長C++程序,在下劃線處填上對的語句。#include<iostream>voidmain(){doublerad;coutくく〃radニ〃;cin>>rad;double1=2.0*pi*rad;doubles=pi*rad*rad;coutくく〃\nThelongis:〃くく1くくendl;coutくく〃Theareais:<<s<<endl;}答案:usingnamespacestd,#definepi3.14159[解析]進行輸入或輸出要引入iostream,因此usingnamespacestd;從標點看沒有分號,因此使用宏定義,#definepi3.14159〇.程序?qū)崿F(xiàn)大寫字母轉(zhuǎn)換成小寫字母。ttinclude<iostream.h>voidmain(){chara;cin>>a;if()a=a+i;cout<<a<<endl;}答案:inti=32;,a>=A&&a<=Z[解析]大寫字母變小寫字母相差32,需要對i聲明并初始化。大寫字母變小寫字母。要判斷字符是大寫字母。五、程序分析題(本大題共4小題,每小題5分,共20分).給出下面程序輸出成果。#include<iostream.h>classa{public:virtualvoidprint(){coutくくaprog..,<<endl;};);classb:publica();classc:publicb{public:voidprint(){coutくく〃cprog...”くくendl;}};voidshow(a*p){(*p).print();)voidmain(){aa;bb;cc;show(&a);show(&b);show(&c);答案:aprog...aprog...cprog...[解析]考查多態(tài)性。a類對象調(diào)用自身虛函數(shù),b類由于沒有覆寫print,因此依然調(diào)用基類虛函數(shù)。而c類重新定義print虛函數(shù),因此調(diào)用c類print。.給出下面程序輸出成果。^include<math.h>#include<iostream.h>#include<iomanip.h>boolfun(longn);voidmain(){longa=10,b=30,1=0;if(a%2==0)a++;for(longm二a;mく=b;m+=2)if(fun(m)){if(l++%10=0)cout<<endl;cout<<setw(5)<<m;)}boolfun(longn){intsqrtm=(int)sqrt(n);for(inti=2;i<=sqrtm;i++)if(n%i==0)returnfalse;returntrue;答案:111317192329[解析]循環(huán)體用來判斷n與否是質(zhì)數(shù)函數(shù),在main函數(shù)判斷10?30之間質(zhì)數(shù)。.給出下面程序輸出成果。3includeくiostream.h>classTest{intx,y;public:Test(inti,intj=0){x=i;y=j;}intget(inti,intj){returni+j;});voidmain(){Testtl(2),t2(4,6);int(Test::*p)(int,int=10);p=Test::get;cout<<(tl.*p)(5)<<endl;Test*pl=&t2;cout<<(pl->*p)(7,20)<<endl;)答案:1527[解析]指向類成員函數(shù)指針使用,*P指向Test類中有兩個參數(shù)函數(shù)一種指針。P=Test::get.這樣p就和get發(fā)生了聯(lián)系。(tl.*p)(5)等價于調(diào)用ー種參數(shù)get函數(shù)。.#include<iostream.h>ttinclude<string.h>#include<iomanip.h>classstudent{charname[8];charlevel[7];friendclassprocess;/Z闡明友元類public:student(charna[],intd){strcpy(name,na);deg=d;1);classprocess{public:voidtrans(student&s){inti=s.deg/10;switch(i){case9:strcpy(s.level,“優(yōu)");break;case8:strcpy(s.level,"良");break;case7:strcpy(s.level,"中");break;case6:strcpy(s.level,"及格");break;default:strcpy(s.level,"不及格");:l:lvoidshow(student&s){cout?setw(10)?<<setw(4)?s.deg<<setw(8)くくs.levelくくendl;});{studentst口={student("張三”,78),student("李四”,92),student("王五",62),student("孫六",88));processp;coutくく"結(jié)果:"くく"姓名"くくsetw(6)くく"成績"くくsetw(8)くく“級別"くくendl;for(inti二〇;iく4;i++){p.trans(stLi]);p.show(st[i]);}}答案:成果:姓名成績級別張三78中李四92優(yōu)王五62及格孫六88良六、程序設(shè)計題(本大題共1小題,共10分).已定義ー種Shape抽象類,在此基本上派生出矩形Rectangle和圓形Circle類,兩者均有GetPerim()函數(shù)計算對象周長,并編寫測試main()函數(shù)。classShape{public:Shape(){}へShape(){}virtualfloatGetPerim()=0;)答案:classRectangle:publicShape{public:Rectangle(floati,floatj):L(i),W(j){}"Rectangle(){}floatGetPerimO{return2*(L+W);}private:floatL,W;);classCircle:publicShape{public:Circle(floatr):R(r){}floatGetPerimO{return3.14*2*R;}private:floatR;);voidmain(){Shape*sp;sp=newCircle(10);cout?sp->GetPerim()<<endl;sp=newRectangle(6,4);coutくくspー)GetPerimO?endl;しー、單項選取題(本大題共20小題,每小題1分,共20分)在每小題列出四個備選項中只有一種是符合題目規(guī)定,請將其代碼填寫在題后括號內(nèi)。錯選、多選或未選均無分。1.靜態(tài)成員函數(shù)沒有〇厶.返回值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ù)當在類外定義時,要注意不能使用static核心字作為前綴。由于靜態(tài)成員函數(shù)在類中只有一種拷貝(副本),因而它訪問對象成員時要受到某些限制:靜態(tài)成員函數(shù)可以直接訪問類中闡明靜態(tài)成員,但不能直接訪問類中闡明非靜態(tài)成員;若要訪問非靜態(tài)成員時,必須通過參數(shù)傳遞方式得到相應(yīng)對象,再通過對象來訪問。2.假定AB為ー種類,則執(zhí)行“ABa(2),b[3],*p[4];”語句時調(diào)用該類構(gòu)造函多次數(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ù)為4。.關(guān)于多態(tài)性說法不對的是〇厶?C++語言多態(tài)性分為編譯時多態(tài)性和運營時多態(tài)性B.編譯時多態(tài)性可通過函數(shù)重載實現(xiàn)C.運營時多態(tài)性可通過模板和虛函數(shù)實現(xiàn)D.實現(xiàn)運營時多態(tài)性機制稱為動態(tài)多態(tài)性答案:C解析:(P171)多態(tài)性分為靜態(tài)和動態(tài)。靜態(tài)通過函數(shù)重載來實現(xiàn),動態(tài)是通過基類指針或基類引用和虛函數(shù)來實現(xiàn)。因此錯誤是C項。.假定一種類構(gòu)造函數(shù)為aA(inti=4,intj=0){a=i;b=j;}",則執(zhí)行"Ax⑴;”語句后,x.a和x.b值分別為()1和〇1和44和〇4和1答案:A解析:(P75)帶默認構(gòu)造函數(shù),相應(yīng)實參沒有值時就采用形參值。調(diào)用構(gòu)造函數(shù)時,i=l,不采用默認值,而只有一種參數(shù),j采用默認值〇即j=o,因而a=l,b=0,選取A項。.類MyA拷貝初始化構(gòu)造函數(shù)是()MyA()MyA(MyA*)MyA(MyA&)MyA(MyA)答案:C解析:(P80)復(fù)制即拷貝構(gòu)造函數(shù)使用對象引用作形參,防止暫時產(chǎn)生一種對象,A無參構(gòu)造函數(shù),B是指針作為形參,D項是對象,因此選取C項。.在C++中,函數(shù)原型不能標記()A,函數(shù)返回類型B,函數(shù)參數(shù)個數(shù)C.函數(shù)參數(shù)類型D,函數(shù)功能答案:D解析:函數(shù)聲明,闡明函數(shù)參數(shù)、返回類型以及函數(shù)名,函數(shù)體即實現(xiàn)某些決定功能。因此函數(shù)原型不能決定函數(shù)功能。.友兀關(guān)系不能()A.提高程序運營效率B,是類與類關(guān)系C.是一種類成員函數(shù)與另ー種類關(guān)系D.繼承答案:D解析:(P111)友元可以是函數(shù)與類關(guān)系即友元函數(shù),也可以類與類關(guān)系即友元類,但友元不能繼承,是單向性,且不具備傳遞性。友元可以訪問類中所有成員,提高了訪問以便性。因而選取D項。.實現(xiàn)兩個相似類型數(shù)加法函數(shù)模板聲明是〇add(Tx,Ty)Tadd(x,y)Tadd(Tx,y)Tadd(Tx,Ty)答案:D解析:(P63)實現(xiàn)兩個相似類型數(shù)加法成果應(yīng)當和操作數(shù)具備相似類型。進行加法運算后成果也是和參數(shù)具備相似類型,需要返回值。A無返回值時要用void,B形參無類型,C形參y沒有類型,因此選取D項。9.在inta=3,int*p=&a:中,*p值是()A.變量a地址值B.無意義C.變量p地址值D.3答案:D解析:*P代表引用a變量值,p代表a地址值。因此選取D項。.下列不是描述類成員函數(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ù),友元則不是成員函數(shù)。因此選取C項。.如果從原有類定義新類可以實現(xiàn)是()A.信息隱藏B.數(shù)據(jù)封裝C.繼承機制D.數(shù)據(jù)抽象答案:C解析:(P129)繼承指在原有類基本上產(chǎn)生新類。數(shù)據(jù)封裝即數(shù)據(jù)和操作組合在一起,形成類。信息隱藏,通過訪問權(quán)限來實現(xiàn)。數(shù)據(jù)抽象,將事物特性抽象為數(shù)據(jù)成員或服務(wù)。因而選取C項。.下面關(guān)于類說法不對的是()ー種類可以有各種構(gòu)造函數(shù)一種類只有一種析構(gòu)函數(shù)C,析構(gòu)函數(shù)需要指定參數(shù)D.在ー種類中可以闡明具備類類型數(shù)據(jù)成員答案:C解析:(P80)構(gòu)造函數(shù)可以有參數(shù)、可以重載、因而可以有各種,A項對的。析構(gòu)函數(shù)只有一種不能重載、不能繼承,沒有返回值,B項對的,C項錯誤。.在函數(shù)定義中形參屬于〇ム.全局變量B.局部變量C.靜態(tài)變量D.寄存器變量答案:B解析:形參或函數(shù)中定義變量都是局部變量。在函數(shù)外定義變量是全局變量。形參只能用局部變量,頻繁使用變量可以聲明為寄存器變量,形參不能使用靜態(tài)變量或寄存器變量。.下列關(guān)于重載函數(shù)說法中對的是()A.重載函數(shù)必要具備不同返回值類型B.重載函數(shù)參數(shù)個數(shù)必要相似C.重載函數(shù)必要有不同形參列表D,重載函數(shù)名可以不同答案:C解析:(P59)函數(shù)重載必要函數(shù)名相似而形參類型或個數(shù)不同,與返回值無關(guān)。.this指針存在目是()ム.保證基類私有成員在子類中可以被訪問B.保證基類保護成員在子類中可以被訪問C.保證每個對象擁有自己數(shù)據(jù)成員,但共享解決這些數(shù)據(jù)成員代碼D.保證基類公有成員在子類中可以被訪問答案:C解析:(P86)C++規(guī)定函數(shù)在被調(diào)用之前,應(yīng)當讓編譯器懂得該函數(shù)原型,以便編譯器運用函數(shù)原型提供信息去檢查調(diào)用合法性,強制參數(shù)轉(zhuǎn)換成為恰當類型,保證參數(shù)對的傳遞。對于原則庫函數(shù),其聲明在頭文獻中,可以用#include宏命令包括這些原型文獻;對于顧客自定義函數(shù),先定義、后調(diào)用函數(shù)可以不用聲明,但后定義、先調(diào)用函數(shù)必要聲明。普通為增長程序可理解性,常將主函數(shù)放在程序開頭,這樣需要在主函數(shù)前對其所調(diào)用函數(shù)ーー進行聲明,以消除函數(shù)所在位置影響。因此選取C項。.關(guān)于new運算符下列描述中,錯誤是〇厶.它可以用來動態(tài)創(chuàng)立對象和對象數(shù)組B,使用它創(chuàng)立對象或?qū)ο髷?shù)組可以使用運算符delete刪除C.使用它創(chuàng)立對象時要調(diào)用構(gòu)造函數(shù)D,使用它創(chuàng)立對象數(shù)組時必要指定初始值答案:D解析:(P78)new創(chuàng)立對象數(shù)組不能指定初始值,因此調(diào)用無參構(gòu)造函數(shù),選取D項。.已知:p是一種指向類A數(shù)據(jù)成員m指針,A1是類A一種對象。如果要給m賦值為5,對的是()Al.p=5;Alー〉p=5;Al.*p=5;*A1.p=5;答案:c解析:(P118)A中p是指針即地址,錯誤;B選項中Al不是指針不能使用指向運算符ー》,錯誤;“*”比”級別要高,因此D選項?Al.p=5相稱于(*Al).p=5;錯誤。此外涉及到指向成員函數(shù)時注意如下幾點:指向成員函數(shù)指針必要于其賦值函數(shù)類型匹配三個方面:(1)參數(shù)類型和個數(shù);(2)返回類型;(3)它所屬類類型。成員函數(shù)指針聲明:指向short型Screen類成員指針定義如下:shortScreen::*ps_Screen;ps_Screen可以用—height地址初始化如下:shortScreen::*psScreen=&Screen::_height;類成員指針必要總是通過特定對象或指向改類型對象指針來訪問。是通過使用兩個指向成員操作符指針(針對類對象和引用.*,以及針對指向類對象指針ー>*)。.如下基類中成員函數(shù)表達純虛函數(shù)是〇virtualvoidtt()=0voidtt(int)=0virtualvoidtt(int)virtualvoidtt(int){}答案:A解析:(P173)當在基類中不能為虛函數(shù)給出ー種故意義實現(xiàn)時,可以將其聲明為純虛函數(shù),實現(xiàn)由派生類完畢。格式:virtualく函數(shù)返回類型闡明符X函數(shù)名》(く參數(shù)表〉)=0;。.C++類體系中,不能被派生類繼承有()ム.常成員函數(shù)B.構(gòu)造函數(shù)C.虛函數(shù)D.靜態(tài)成員函數(shù)答案:B解析:(P132)構(gòu)造函數(shù)不能被繼承。20.靜態(tài)成員函數(shù)不能闡明為〇A,整型函數(shù)B.浮點函數(shù)C.虛函數(shù)D.字符型函數(shù)答案:C解析:(P108)使用核心字static聲明成員函數(shù)就是靜態(tài)成員函數(shù),靜態(tài)成員函數(shù)也屬于整個類而不屬于類中某個對象,它是該類所有對象共享成員函數(shù)。靜態(tài)成員函數(shù)可以在類體內(nèi)定義,也可以在類外定義。當在類外定義時,要注意不能使用static核心字作為前綴。由于靜態(tài)成員函數(shù)在類中只有一種拷貝(副本),因而它訪問對象成員時要受到某些限制:靜態(tài)成員函數(shù)可以直接訪問類中闡明靜態(tài)成員,但不能直接訪問類中闡明非靜態(tài)成員;若要訪問非靜態(tài)成員時,必要通過參數(shù)傳遞方式得到相應(yīng)對象,再通過對象來訪問。虛函數(shù)是非靜態(tài)、非內(nèi)聯(lián)成員函數(shù)。靜態(tài)成員函數(shù)不能被闡明為虛函數(shù)。二、填空題(本大題共20小題,每小題1分,共20分)請在每小題空格中填上對的答案〇錯填、不填均無分。.假設(shè)inta=l,b=2;則表達式(++a/b)*bー值為ー。答案:2[解析]前綴++或ーー表達先使變量值變化,再使用,這和后綴恰恰相反。但是編譯cout?(++a/b)*bー時,先++a/b值為1,后l*b—?先取b=2,成果為2,再讓b=l。.抽象類中至少要有一種ー函數(shù)。答案:(P173)純虛[解析]至少有一種純虛函數(shù)類就稱為抽象類,即不能實例化。.ー種抽象類派生類可以實例化必要條件是實現(xiàn)了所有_。答案:(P173)純虛函數(shù)定義[解析]抽象類只因有純虛函數(shù),因此不能被實例化,因此派生類要實例化必要對純虛函數(shù)進行定義。.下面程序輸出成果為ー。#include<iostream.h>voidmain(){intnum=2,i=6;do{i—;num++;}while(ーーi);cout<<num<<endl;答案:5[解析]do-while循環(huán),前綴先使i減少1后判斷與否為零,不為零時再次執(zhí)行循環(huán),為零退出循環(huán)。循環(huán)值執(zhí)行3次就退出,因此成果為5。.靜態(tài)成員函數(shù)、友元函數(shù)、構(gòu)造函數(shù)和析構(gòu)函數(shù)中,不屬于成員函數(shù)是ー〇答案:(P109)友元函數(shù)[解析]友元函數(shù)不是類成員,但可以訪問類成員。類封裝性保證了數(shù)據(jù)安全,但引入友元,雖然訪問類是以便了,但的確破壞類訪問安全性。.在用C++進行程序設(shè)計時,最佳用一代替malloc。答案:(PlO)new[解析]new與delete是C++語言特有運算符,用于動態(tài)分派和釋放內(nèi)存。new用于為各種數(shù)據(jù)類型分派內(nèi)存,并把分派到內(nèi)存首地址賦給相應(yīng)指針。new功能類似于malloc〇函數(shù)。使用new格式為:〈指針變量〉newく數(shù)據(jù)類型》;其中,〈數(shù)據(jù)類型》可以是基本數(shù)據(jù)類型,也可以是由基本類型派生出來類型;く指針變量〉獲得分派到內(nèi)存首地址。new有3種使用形式。(1)給單個對象申請分派內(nèi)存int*ip;ip=newintノ/ip指向1個未初始化int型對象(2)給單個對象申請分派內(nèi)存同步初始化該對象int*ip;ip=newint(68);〃ip指向1個表達為68int型對象(3)同步給各種對象申請分派內(nèi)存int*ip;ip=newint[5];〃ip指向5個未初始化int型對象首地址for(inti=0;i<5;i++)ip[i]=5*i+l;〃給ip指向5個對象賦值用new申請分派內(nèi)存時,不ー定能申請成功。若申請失敗,則返回NULL,即空指針。因而,在程序中可以通過判斷new返回值與否為〇來獲知系統(tǒng)中與否有足夠空間供顧客使用。.由const修飾對象稱為 〇答案:(P113)常對象[解析]使用const核心字闡明成員函數(shù)稱為常成員函數(shù),使用const核心字闡明對象稱為常對象。常成員函數(shù)闡明格式如下:く返回類型闡明符》く成員函數(shù)名》(く參數(shù)表》)const;常成員函數(shù)不更新對象數(shù)據(jù)成員,也不能調(diào)用該類中沒有用const修飾成員函數(shù)。常對象只能調(diào)用它常成員函數(shù),而不能調(diào)用其她成員函數(shù)。const核心字可以用于參加重載函數(shù)區(qū)分。.在C++程序設(shè)計中,建立繼承關(guān)系倒掛樹應(yīng)使用ー繼承。答案:(P138)單[解析]一種基類可以派生各種子類,ー種子類可以再派生出各種子類,這樣就形成了一種倒立樹。.基類公有成員在派生類中訪問權(quán)限由一決定。答案:(P132)訪問控制方式或繼承方式.不同對象可以調(diào)用相似名稱函數(shù),但執(zhí)行完全不同行為現(xiàn)象稱為ー〇答案:(P167)多態(tài)性[解析]多態(tài)性概念。虛函數(shù)是實現(xiàn)多態(tài)基本,運營過程中多態(tài)需要同步滿足3個條件:(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ù)解決和編譯都是以井開頭。.類模板用來表達具備模板類對象集。答案:(P1
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐廳連鎖品牌授權(quán)與區(qū)域經(jīng)營合同
- 個人借款信息咨詢服務(wù)與合同
- 教育機構(gòu)場地租賃合同終止及學(xué)生安置保障協(xié)議
- 老妖精消防課件內(nèi)容概覽
- 美洲說課課件
- 美術(shù)生職業(yè)規(guī)劃
- 美術(shù)欣賞中國結(jié)小班課件
- 防汛事故應(yīng)急預(yù)案
- 安全生產(chǎn)事故案例分析及事故教訓(xùn)
- 水下作業(yè)安全操作規(guī)程
- 生物的分子進化和分子遺傳學(xué)
- 北京小型實驗室建設(shè)計劃書
- 高校大型儀器設(shè)備利用評價研究-以華南農(nóng)業(yè)大學(xué)為例的中期報告
- 鋼結(jié)構(gòu)橋梁的設(shè)計與建造:鋼結(jié)構(gòu)橋梁的設(shè)計與施工要點與技術(shù)
- 中醫(yī)四大經(jīng)典備考刷題庫匯總(800題)
- 外科護理學(xué)課程說課課件
- 《抗凝藥物與麻醉》課件
- 事業(yè)單位檔案個人自傳范文三篇
- 幼兒園小班體育《小兔子采蘑菇》課件
- 生產(chǎn)現(xiàn)場變化點管理行動指南
- 初三勵志主題班會:初三第一次班會幻燈片PPT
評論
0/150
提交評論