C++程序設(shè)計(jì) 試卷及答案 共3套_第1頁
C++程序設(shè)計(jì) 試卷及答案 共3套_第2頁
C++程序設(shè)計(jì) 試卷及答案 共3套_第3頁
C++程序設(shè)計(jì) 試卷及答案 共3套_第4頁
C++程序設(shè)計(jì) 試卷及答案 共3套_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C++程序設(shè)計(jì)試卷及答案試卷A一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。1.對(duì)C++語言和C1.A.C++兼容CBA.C++兼容CB.C++部分兼容CC.C++不兼容CD.C兼容C++2.A.cerrB.2.A.cerrB.cinC.coutD.cfile在C++中使用流進(jìn)行輸入輸出,其中用于屏幕輸出的對(duì)象是(A.freeB.createA.freeB.createC.deleteD.realse3.對(duì)使用關(guān)鍵字new3.4.如沒有使用private4.A.privateB.publicC.D.friend5.A.privateB.publicC.D.tected使用值傳遞方式將實(shí)參傳給形參,下列說法正確的是(A.形參是實(shí)參的備份B.實(shí)參是形參的備份C.形參和實(shí)參是同一對(duì)象D.形參和實(shí)參無聯(lián)系6.A.其之前所有參數(shù)都必須賦值B.6.A.其之前所有參數(shù)都必須賦值B.其之后所有參數(shù)都必須賦值C.其前、后所有參數(shù)都必須賦值D.其前、后所有參數(shù)都不必賦值在函數(shù)調(diào)用時(shí),如某一默認(rèn)參數(shù)要指明一個(gè)特定值,則有(7.設(shè)存在函數(shù)intmax(int,int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列表達(dá)式不正確的是(A.intm=A.intm=max(22,max(59,70));B.intm=max(max(22,59),70);C.8.intm=max(22,59,70);下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)(C.8.intm=max(22,59,70);下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)(D.intm=max(59,max(22,70));A.函數(shù)體語句較多B.函數(shù)體語句較少C.函數(shù)執(zhí)行時(shí)間較短D.函數(shù)執(zhí)行時(shí)間過長(zhǎng)9.A.intFunc(int,int,int)9.A.intFunc(int,int,int);B.doubleFunc(int,int);C.doubleFunc(double,double);D.doubleFunc(int,double);intFunc(int,int);不可與下列哪個(gè)函數(shù)構(gòu)成重載(10.對(duì)類中聲明的變量,下列描述中正確的是(A.屬于全局變量B.只屬于該類C.屬于該類,某些情況下也可被該類不同實(shí)例所共享DA.屬于全局變量B.只屬于該類C.屬于該類,某些情況下也可被該類不同實(shí)例所共享D.任何情況下都可被該類所有實(shí)例共享11.類的私有成員可在何處訪問(通過子類的對(duì)象訪問B.本類及子類的成員函數(shù)中通過子類的對(duì)象訪問B.本類及子類的成員函數(shù)中C.通過該類對(duì)象訪問D.本類的成員函數(shù)中12.如果沒有為一個(gè)類定義任何構(gòu)造函數(shù)的情況下,下列描述正確的是()編譯器總是自動(dòng)創(chuàng)建一個(gè)不帶參數(shù)的構(gòu)造函數(shù)這個(gè)類沒有構(gòu)造函數(shù)這個(gè)類不需要構(gòu)造函數(shù)該類不能通過編譯13.一個(gè)類可包含析構(gòu)函數(shù)的個(gè)數(shù)是()A.0個(gè)B.1個(gè)C.至少一個(gè)D.0個(gè)或多個(gè)this指針存在的目的是()保證基類公有成員在子類中可以被訪問保證每個(gè)對(duì)象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼保證基類保護(hù)成員在子類中可以被訪問保證基類私有成員在子類中可以被訪問下列關(guān)于類的權(quán)限的描述錯(cuò)誤的是()類本身的成員函數(shù)只能訪問自身的私有成員類的對(duì)象只能訪問該類的公有成員普通函數(shù)不能直接訪問類的公有成員,必須通過對(duì)象訪問—個(gè)類可以將另一個(gè)類的對(duì)象作為成員在編譯指令中,宏定義使用哪個(gè)指令()A.#includeB.#defineC.#ifD.#else設(shè)類A將其它類對(duì)象作為成員,則建立A類對(duì)象時(shí),下列描述正確的是()A.A類構(gòu)造函數(shù)先執(zhí)行C.兩者并行執(zhí)行下列描述錯(cuò)誤的是()A.在創(chuàng)建對(duì)象前,靜態(tài)成員不存在C.靜態(tài)成員不能是虛函數(shù)對(duì)于友元描述正確的是()A.友元是本類的成員函數(shù)C.友元不是函數(shù)B.成員構(gòu)造函數(shù)先執(zhí)行D.不能確定B.靜態(tài)成員是類的成員靜態(tài)成員函數(shù)不能直接訪問非靜態(tài)成員B.友元不是本類的成員函數(shù)D.友元不能訪問本類私有成員在protected派生方式中,派生類可以訪問基類中的哪種成員()A.public和privateB.public和protectedC.protected和privateD.僅protected二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。TOC\o"1-5"\h\z設(shè)要把一個(gè)文件輸出流對(duì)象myFile與文件“f:\myText.txt相關(guān)聯(lián),所用的C++語句是:。C++中ostream類的直接基類是。23.運(yùn)算符[]只能用運(yùn)算符來重載,不能用友元運(yùn)算符來重載。定義虛函數(shù)所用的關(guān)鍵字是。vector類中用于返回向量中第1個(gè)對(duì)象的方法是。在C++中,利用向量類模板定義一個(gè)具有20個(gè)char的向量E,其元素均被置為字符't',實(shí)現(xiàn)此操作的語句是類的繼承是指子類繼承基類的和成員函數(shù)。不同對(duì)象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為。指令指示編譯器將一個(gè)源文件嵌入到帶該指令的源文件之中。設(shè)類A有成員函數(shù)voidFun(void);若要定義一個(gè)指向類成員函數(shù)的指針變量pafn來指向Fun,該指針變量的聲明語句是:。設(shè)在程序中使用如下語句申請(qǐng)了一個(gè)對(duì)象數(shù)組:Point*ptr=newPoint[2];則在需要釋放ptr指向的動(dòng)態(tài)數(shù)組對(duì)象時(shí),所使用的語句是。在保護(hù)派生中,基類權(quán)限為Private的成員在派生類中。類A有如下成員函數(shù)intA::fun(doublex){return(int)x/2;}intA::fun(intx){returnx*2;}設(shè)a為類A的對(duì)象,在主函數(shù)中有ints=a.fun(6.0)+a.fun(2),則執(zhí)行該語句后,s的值為。對(duì)象傳送的消息一般由3部分組成:接收對(duì)象名、調(diào)用操作名和。將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對(duì)象指針,實(shí)參是對(duì)象的。在使用string類的find成員函數(shù)來檢索主串中是否含有指定的子串時(shí),若在主串中不含指定的子串,find函數(shù)的返回值是。在C++中,聲明布爾類型變量所用的關(guān)鍵字是。執(zhí)行下列代碼inta=29,b=100;cout<<setw(3)<<a<<b<<endl;程序的輸出結(jié)果是:。執(zhí)行下列代碼coutvv〃Hex:〃<<hex<<255;程序的輸出結(jié)果為。C++語言中可以實(shí)現(xiàn)輸出一個(gè)換行符并刷新流功能的操控符。三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。41.#include<iostream.h>main(){intx=5,y=6;constint*p=&x;*p=y;cout<<*p<<endl;}42.#include<iostream.h>classf{private:intx,y;public:f1(){x=0;y=0;}print(){coutvvxvv“vvyvvendl;}}main(){fa;a.f1(1,1);a.print();}43.#include<iostream.h>classf{private:intx=0,y=0;public:voidf1(inta,intb){x=a;y=b;}voidget(){cout<<x<<'<<y<<;en}dl};main(){fa;a.f1(1,3);a.get();}44.#include<iostream.h>classpoint{private:floatx;public:voidf(floata){x=a;}voidf(){x=0;}friendfloatmax(point&a,point&b);};floatmax(point&a,point&b){return(a.x>b.x)?a.x:b.x;}main(){pointa,b;a.f(2.2);b.f(3.3);cout<<a.max(a,b);}45.#include<iostream.h>template<classT>classf{private:Tx,y;public:voidf1(Ta,Tb){x=a;y=b;}Tmax(){retum(x>y)?x:y;}};main(){fa;a.f1(1.5,3.8);'cout<<a.x<<a.y<<a.max()<<endl;}四、完成程序題(本大題共5小題,每小題4分,共20分)46.完成下面類中的成員函數(shù)的定義。classpoint{private:intm,n;public:point(int,int);point(point&);};point::point(inta,intb){m=a;=b;}point::point(){m=t.m;n=t.n;}47.下面是一個(gè)輸入半徑,輸出其面積和周長(zhǎng)的C++程序,在下劃線處填上正確的語句。#include<iostream>usingnamespacestd;pi=3.14159;voidmain(){doubler;coutvv〃r=〃;\doublel=2.0*pi*r;doubles=pi*r*r;coutvv〃\nThelongis:〃vvlvvendl;coutvv〃Theareais:〃vvsvvendl;}48.在下劃線處填上缺少的部分。#include<iostream>#include<fstream>usingnamespacestd;classcomplex{public:intreal;intimag;complex(intr=0,inti=0){real=r;imag=i;}};complexoperator+(,complex&b){intr=a.real+b.real;inti=a.imag+b.imag;return;}voidmain(){complexx(1,2),y(3,4),z;z=x+y;coutvvz.realvv"+〃vvz.imagvv"i〃vvendl;}49.程序的輸出結(jié)果如下:1,950,30請(qǐng)根據(jù)輸出數(shù)據(jù)在下面程序中的下劃線處填寫正確的語句。源程序如下:#include<iostream>usingnamespacestd;classbase{private:intm;public:base(){};base(inta):m(a){}intget(){returnm;}voidset(inta){m=a;}};voidmain(){base*ptr=newbase[2];ptr->set(30);ptr=;ptr->set(50);basea[2]={1,9};coutvva[0].get()vv〃,〃vva[l].get()vvendl;coutvvptr->get()<<〃,〃;ptr=ptr-l;cout<<<<endl;delete[]ptr;}50.在下面橫線處填上求兩個(gè)浮點(diǎn)數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法。#include<iostream>usingnamespacestd;voidmain(){floata,b;//函數(shù)cha的原型聲明a=l2.5;b=6.5;floatc=;//調(diào)用函數(shù)chacout<<c<<endl;}floatcha(floatx,floaty){floatw;w=x-y;returnw;}五、程序分析題(本大題共4小題,每小題5分,共20分)51.給出下面程序的輸出結(jié)果。#include<iostream.h>template<classT>classSample{Tn;public:Sample(Ti){n=i;}intoperator==(Sample&);};template<classT>intSample<T>::operator==(Sample&s){if(n==s.n)return1;elsereturn0;}voidmain(){Sample<int>sl(2),s2(3);.coutvv〃si與s2的數(shù)據(jù)成員〃vv(sl==s2?〃相等〃:〃不相等“)vvendl;Sample<double>s3(2.5),s4(2.5);coutvv"s3與s4的數(shù)據(jù)成員〃vv(s3==s4?〃相等〃:〃不相等“)vvendl;}52.給出下面程序的輸出結(jié)果。

#include<iostream>usingnamespacestd;template<classT>Tmax(Tml,Tm2){return(m1>m2)?ml:m2:}voidmain(){)<<endl;coutvvmax(l,7)<<“\t〃vvmax(2.0,5.0)vvendl;coutvvmax('yzb‘vv〃\t〃vvmax(〃A〃,〃a")<<endl;53.給出下面程序的輸出結(jié)果#include<iostream>usingnamespacestd;classA{public:intx;A(){}A(inta){x=a;}intget(inta){returnx+a;}};voidmain(){Aa(8);int(A::*p)(int);p=A::get;cout<<(a.*p)(5)<<endl;A*pi=&a;cout<<(pi->*P)(7)<<endl;}54.給出下面程序的輸出結(jié)果。include<iostream>#include<string>usingnamespacestd;classBook{char*title;char*author;intnumsold;public:Book(){}Book(constchar*strl,constchar*str2,constintnum)intlen=strlen(strl);title=newchar[len+l];strcpy(title,str1);len=strlen(str2);author=newchar[len+1];strcpy(author,str2);numsold=num;}voidsetbook(constchar*str1,constchar*str2,constintnum){intlen=strlen(str1);title=newchar[len+1];strcpy(title,str1);len=strlen(str2);author=newchar[len+1];strcpy(author,str2);numsold=num;}?Book(){deletetitle;deleteauthor;}voidprint(ostream&output){outputv<〃書名:〃vvtitlevvendl;outputv<〃作者:〃vvauthorvvendl;outputvv〃月銷售量:〃vvnumsoldvvendl;}.};voidmain(){Bookobj1(〃數(shù)據(jù)結(jié)構(gòu)〃,〃嚴(yán)蔚敏〃,200),obj2;obj1.print(cout);obj2.setbook(〃C++語言程序設(shè)計(jì)〃,〃李春葆〃,210);obj2.print(cout);}六、程序設(shè)計(jì)題(本大題共1小題,共10分)55.在三角形類TRI實(shí)現(xiàn)兩個(gè)函數(shù),功能是輸入三個(gè)頂點(diǎn)坐標(biāo)判斷是否構(gòu)成三角形#includeviostream.h>#includevmath.h>classpoint{private:floatx,y;public:point(floata,floatb){x=a;y=b;}point(){x=0;y=0;},voidset(floata,floatb){x=a;y=b;}floatgetx(){returnx;}floatgety(){returny;}};classtri{pointx,y,z;floats1,s2,s3;public;...settri(....);//用于輸入三個(gè)頂點(diǎn)坐標(biāo)test();//用于判斷是否構(gòu)成三角形};請(qǐng)寫出兩個(gè)函數(shù)的過程(如果需要形式參數(shù),請(qǐng)給出形參類型和數(shù)量,以及返回值類型)一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。1A2C3C4A5A6A7C8A9B10C11D12A13B14B15A16B17B18A19B20B二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。21.myFile.open(“f:\\myText.txt”)22.ios23.成員24.virtual25.front26.Vectorvchar>E(20't‘)27數(shù)據(jù)成員28多態(tài)性29#include30Void(A::*pafn)()=A::Fun;31Delete[]ptr;32不能直接訪問33734必要的參數(shù)35地址36-137bool382910039Hex:ff40endl三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)下面的類定義中有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。.*p=y;//*p不能作為左值.a.fl(l,l);〃函數(shù)原型不匹配.private:intx=0,y=0;〃數(shù)據(jù)成員不能直接賦值.coutvva.max(a,b);//max不是a的成員函數(shù).coutvva.xvva.yvva.max()vvendl;〃私有成員不能直接訪問四、完成程序題(本大題共5小題,每小題4分,共20分)___n=b;point::point(__point&_t).constdouble__pi=3.14159;cin>>r;complexoperator+(__complex&a,complex&b)return_complex(r,i)___;ptr=__ptr+l;cout<<___ptr->get()<<endl;_floatcha(floatx,floaty)_;_floatc=_cha(a,b);//調(diào)用函數(shù)cha五、程序分析題(本大題共4小題,每小題5分,共20分).S1與S2的數(shù)據(jù)成員不相等S3與S4數(shù)據(jù)成員相等52.75—書名:數(shù)據(jù)結(jié)構(gòu)作者:嚴(yán)蔚敏

53.a(chǎn)131554.六、程序設(shè)計(jì)題(本大題共1小題,共10分)55.voidtri::settri(floatxlfloatylfloatx2,floaty2,floatx3floaty3){x.set(x1,y1);y.set(x2,y2);z.set(x3,y3);}voidtri::test(){s1=sqrt((x.getx()-y.getx())*(x.getx()-y.getx())+(x.gety()-y.gety())*(x.gety()-y?gety()));s2=sqrt((x.getx()-z.getx())*(x.getx()-z.getx())+(x.gety()-z.gety())*(x.gety()-z.gety()));s3=sqrt((y?getx()-z.getx())*(y.getx()-z.getx())+(y?gety()-z.gety())*(y.gety()-z.gety()));一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。對(duì)C++中主函數(shù)描述正確的是()名稱為main,可為多個(gè)B.名稱不限,可為多個(gè)C.名稱為main,必須有且只能有一個(gè)D.名稱不限,必須有且只能有一個(gè)調(diào)用聲明為intresult(inta,intb)的函數(shù)時(shí),正確的方法是()result(1,2)B.result(1)C.result(0.1,0.3)D.result(1,2,3)3.用于包含C++標(biāo)準(zhǔn)庫iostream的預(yù)處理指令是()B.#include<iostream>D.#include‘iostream'B.#include<iostream>D.#include‘iostream'B.boolC.#define‘iostream'TOC\o"1-5"\h\z無類型標(biāo)識(shí)符是指()A.voidC.shortD.long從本質(zhì)上看,引用是被引用變量的()A.拷貝B.別名C.復(fù)制D.克隆下面關(guān)于數(shù)組的初始化正確的是()charstr[]={'a','b','c'};charstr[2]={'a','b','c'};charstr[1][2]={{'a','b'},{'e','d'}};charstr[][]={'a','b','c'};C++類中定義的成員默認(rèn)訪問屬性為()A.publicB.privateC.protectedD.friend8?決定C++語言中函數(shù)的返回值類型的是()return語句中的表達(dá)式類型調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型9.函數(shù)int&min(int&,int&)返回參數(shù)中較小者,設(shè)有兩整型變量inta=10;intb=15;在執(zhí)行語句在執(zhí)行語句min(a,b)--;之后,a,b值分別為()A.9,14B.9,15C.10,14D.10,15TOC\o"1-5"\h\z聲明函數(shù)為內(nèi)聯(lián)函數(shù)時(shí)所使用的關(guān)鍵字為()A.constB.inlineC.shortD.signed函數(shù)intsum(inta=l,intb=1,intc=3)可與下列哪個(gè)函數(shù)同時(shí)聲明()A.doublesum(int);B.charsum(int,int);C.intsum(double);D.intsum(int,int,int);函數(shù)模板templatevtypenameT>voidFunc(T,T)可具有下列哪種實(shí)例化形式()A.voidFunc(float,int)B.voidFunc(char,char)C.voidFunc(int,double)D.voidFunc(bool,float)下列訪問成員的方式哪個(gè)是正確的()A.對(duì)象名?對(duì)象成員名B.對(duì)象指針名?對(duì)象成員名C.對(duì)象名—對(duì)象成員名D.類名—對(duì)象成員名14?對(duì)類A,復(fù)制構(gòu)造函數(shù)的原型是()A.A::A(constA&);B.A::A(constA*);C.A::A(constA);D.A::A();對(duì)classpoint,如使用point*ptr=newpoint[2];創(chuàng)建對(duì)象數(shù)組,則刪除此數(shù)組使用的語句是()A.deleteptr[2];B.delete[]ptr;C.deleteptr[];D.delete[2]ptr;下列哪個(gè)編譯指令不屬于條件編譯指令()A.#ifB.#elseC.#endifD.#error類A中存在靜態(tài)數(shù)據(jù)成員x,設(shè)a和b是類A的兩個(gè)對(duì)象,在執(zhí)行a.x=10之后,b.x的值為()A.未初始化B.等于a.xC.等于0D.隨機(jī)TOC\o"1-5"\h\z使用string.h庫操縱字符串時(shí),將兩個(gè)字符串連接成一個(gè)字符串的函數(shù)是()A.strlen()B.strcap()C.strcat()D.strcmp()基類中的public成員,通過public派生,其在派生類中的訪問權(quán)限為()A.不可訪問B.privateC.protectedD.public不同對(duì)象調(diào)用同名函數(shù),但導(dǎo)致完全不同行為的現(xiàn)象稱為()A.抽象B.封裝C.繼承D.多態(tài)性二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。在C++語言的面向?qū)ο笤O(shè)計(jì)框架中,是程序的基本組成單元。執(zhí)行代碼doublepi=3.1415192;coutvvsetprecision(3)vvpi;程序的輸出結(jié)果是C++語言提供的的基本控制結(jié)構(gòu)可以分為3種類型:順序結(jié)構(gòu)、和循環(huán)結(jié)構(gòu)。TOC\o"1-5"\h\z要使用STL庫提供的對(duì)數(shù)組進(jìn)行降冪排序算法,在源程序中需要包含的頭文件是。在C++標(biāo)準(zhǔn)庫中,用類來表示復(fù)數(shù)。將對(duì)象作為函數(shù)參數(shù),是將實(shí)參對(duì)象的傳遞給形參對(duì)象,這種傳遞是單向的。C++函數(shù)的返回類型可以是除數(shù)組與以外的任何類型。28?能提供封裝的C++關(guān)鍵字是。在C++的類聲明中,用public關(guān)鍵字聲明的類成員的訪問權(quán)限是。開發(fā)一個(gè)C++語言程序的步驟通常包括編輯、、連接、運(yùn)行和調(diào)試。C++類中的函數(shù)在對(duì)象的生存期結(jié)束時(shí)被自動(dòng)調(diào)用。友元函數(shù)可以存取類的、公有成員和保護(hù)成員。TOC\o"1-5"\h\z若類的成員函數(shù)用關(guān)鍵字static進(jìn)行修飾,這樣的成員函數(shù)稱為。在C++中,創(chuàng)建派生類對(duì)象時(shí),總是先從的初始化開始的。類的繼承是指派生類繼承基類的數(shù)據(jù)成員和。36?在C++中,利用向量類模板定義一個(gè)具有20個(gè)double的向量,其元素均被置為0.5,實(shí)現(xiàn)此操作的語句是vector類中用于返回向量中的最后一個(gè)對(duì)象的方法是。虛函數(shù)類似于重載函數(shù),但與重載函數(shù)的實(shí)現(xiàn)策略不同,對(duì)虛函數(shù)聲明時(shí)應(yīng)使用關(guān)鍵字。在C++中,雖然友元提供了類之間數(shù)據(jù)進(jìn)行訪問的一種方式,但它破壞了面向?qū)ο蟪绦蛟O(shè)計(jì)白特性。執(zhí)行下列代碼cout<<showpoint<<123.0;程序的輸出結(jié)果是。三、改錯(cuò)題(本大題共5小題,每小題4分,共20分)下面的每個(gè)程序都有一處錯(cuò)誤,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出修改意見。#include<iostream>usingnamespacestd;intmain(){intnum;max=10;num=1while(num<max)num++;cout<<“Num=“<<num;return0;}#include<iostream>usingnamespacestd;classA{voidshow(){coutvv〃Hello!";}};intmain(){Aa;a.show();return0;}#include<iostream>usingnamespacestd;intmain(){constintnum=20;intscores[num];for(inti=1;i<=num;i++){scores[i]=i;}return0;}#include<iostream>usingnamespacestd;classCMax{private:intxx;intyy;public:CMax(intx,inty){xx=x;yy=y;}voidsetValue(intx,inty){xx=x;yy=y;}intmax(){returnxx>yy?xx:yy;}};voidmain(){CMaxm();m.setValue(20,30);coutvv〃Max=〃vvm.max()vvendl;}#includeviosiream>usingnamespacestd;classA{public:charname[255];private:char*getName(){returnname;}};classB:publicA{public:B(char*n){strcpy(name,n);}};voidmain(){Bb(〃Hello!〃);coutvv〃Name:"vvb.getName();}四、完成程序題(本大題共5小題,每小題4分,共20分將下面程序補(bǔ)充完整,使程序輸出結(jié)果為:BeginWelcomeShowEnd程序如下:#includeviostream>usingnamespacestd;classA{public:{coutvv"Begin"vvendl;}voidshow(){coutvv"Show"vvendl;}{coutvv"End"vvendl;}};Aobject;intmain(){coutvv"Welcome"vvendl;object.show();return0;}請(qǐng)將下面程序補(bǔ)充完整,使程序可以正常打印9x9乘法口訣。#includeviostream>usingnamespacestd;classA{private:inta;intb;public:{a=x;b=y;}voidset(intx,inty){a=x;b=y;}voiddisplay(){coutvvavv*'vvbvv'='vva*b;}};intmain(){Aa(1,1);for(inti=1;iv=9;i++){for(intj=1;;j++){a.set(j,i);a.display();coutvv"";}coutvvendl;}return0;}將下面程序補(bǔ)充完整,使程序可以輸入學(xué)生信息并計(jì)算平均成績(jī)#includeviostream>#includevstring.h>usingnamespacestd;classStudent{private:charname[255];intscore[10];public:Student(charn[],ints[]){,for(inti=0;i<10;i++){score[i]=s[i];}}voidShow(){intsum=0;for(inti=0;i<10;i++){}coutv<〃名字:〃<<namevv〃,平均成績(jī):〃vvsum/10;}};voidmain(){charname[255];intscore[10];coutv<〃姓名:〃;cin>>name;for(inti=0;i<10;i++){coutv<〃成績(jī)〃vvi+lvv〃:〃;cin>>score[i];}Students(name,score);s.Show();}將下面程序補(bǔ)充完整,使程序可以正常運(yùn)行,并釋放內(nèi)存。#includeviostream.h>classA{private:T*data;intlength;public:A(intlen){length=len;data=newT[len];}?A(){}T&operator[](inti){returndata[i];}};intmain(){Avint>obj(2);obj[0]=1;obj[1]=2;coutvvobj[0]vvendl;coutvvobj[1]vvendl;}}return0;}將下面程序補(bǔ)充完整,使程序運(yùn)行結(jié)果為C1assAClassB程序如下:#include<iostream.h>#include<string.h>classA{public:virtualvoidGetA()=0;};classB:publicA{private:charstr[32];public:voidGetA(){coutvv〃ClassA"vvendl;}constchar*GetB(){}B(char*s){strcpy(str,s);}};voidmain(){A*a;Bb("ClassB");a=;a->GetA();coutvvb.GetB()vvendl;return;}五、程序分析題(本大題共2小題,每小題5分,共10分)#includeviostream>usingnamespacestd;intmain(){inti,j;for(i=l;iv=4;i+=1)for(j=2;jv=4;j+=j){if(i+jv5)coutvv"+";elsecoutvv"*";}return0;#include<iostream>usingnamespacestd;classA{inta;public:A(intaa=0){a=aa;}?A(){cout<<"DestructorA!〃vvavvendl;}};classB:publicA{intb;public:B(intaa=0,intbb=0):A(aa){b=bb;}?B(){cout<<"DestructorB!"<<b<<endl;}};voidmain(){Bx(5),y(6,7);}六、程序設(shè)計(jì)題(本大題10分)53.下面Shape類是一個(gè)表示形狀的抽象類,Area()為求圖形面積的函數(shù)。請(qǐng)從Shape類派生梯形類(Trapezoid)、圓形類(Circle),三角形類(Triangle),并給出具體的求面積函數(shù)。其中,所有派生類計(jì)算面積需要用到的參數(shù)由構(gòu)造函數(shù)給出,梯形面積計(jì)算需要上底、下底和高,三角形面積需要底和高,圓形面積需要半徑。形狀的抽象類聲明如下:classShape{public:virtualdoubleArea()=0;};一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)C2.A3.B4.A5.B6.A7.B8.D9.B10.B11.C12.B13.A14.A15.B16.D17.B18.C19.D20.D二、填空題(本大題共20小題,每小題1分,共20分)21.壟22.3.1423.選擇結(jié)構(gòu)24.plex26.值27.函數(shù)28.Class29.公有的30.編譯31.析構(gòu)32.私有成員33.靜態(tài)成員函數(shù)34.基類35.成員函數(shù)36.Vector<double>E(20,0.5)37.back()38.Virtual39.封裝40.123.000三、改錯(cuò)題(本大題共5小題,每小題4分,共20分)max=10;在main函數(shù)中max變量未定義a.show();或voidshow()類A的成員函數(shù)show默認(rèn)為私有,不可訪問i<=num或scores[i]=i;數(shù)組訪問越界44CMaxm();定義對(duì)象時(shí),參數(shù)和給出構(gòu)造函數(shù)不一致cout<<"Name:"vvb.getName();不可訪問基類A的私有成員函數(shù)getName四、完成程序題(本大題共5小題,每小題4分,共20分)A()~A()47.A(intx,inty)j<=iStrcpy(name,n)sum+=score[i];Template<classT>delete[]data50.Returnstr&b五、程序分析題(本大題共2小題,每小題5分,共10分)51.+*+*****52.DestructorB!7DestructorA!6DestructorB!0DestructorA!5六、程序設(shè)計(jì)題(本大題共1小題,共10分)classcircle:publicshape{public:Circle(doubler){radius=r;}doublearea()const{return3.1416*radius*radius;}private:doubleradius;}classtrapezoid:publicshape{public:trapezoid(doubletop,doublebottom,doublehigh){t=top;b=bottom;h=high;}doublearea()const{return(t+b)*h*0.5;}private:doublet,b,h;}classtriangle:publicshape{public:triangle(doublebottom,doublehigh){b=bottom;h=high;}doublearea()const{returnb*h*0.5;}private:doubleb,h;}C++面向?qū)ο蟪绦蛟O(shè)計(jì)模擬試題3一、單項(xiàng)選擇題(本大題共10小題,每小題2分,共20分)在每小題列出的四個(gè)備選項(xiàng)中,只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無分。1.說明虛函數(shù)的關(guān)鍵字是()。A.inlineB.virtualC.defineD.static在每個(gè)C++程序中都必須包含有這樣一個(gè)函數(shù),該函數(shù)的函數(shù)名為()。A.mainB.MAINC.nameD.functioncout是某個(gè)類的標(biāo)準(zhǔn)對(duì)象的引用,該類是()。A.ostreamB.istreamC.stdoutD.stdin如果在類外的非類的成員函數(shù)中有函數(shù)調(diào)用CPoint::func();貝V函數(shù)func()是類CPoint的()。A.私有靜態(tài)成員函數(shù)B.公有非靜態(tài)成員函數(shù)C.公有靜態(tài)成員函數(shù)B.友元函數(shù)如果class類中的所有成員在定義時(shí)都沒有使用關(guān)鍵字public、private或protected,貝V所有成員缺省定義為()。A.publicB.protectedC.privateD.static一個(gè)類的所有對(duì)象共享的是()。A.私有數(shù)據(jù)成員B.公有數(shù)據(jù)成員C.保護(hù)數(shù)據(jù)成員D.靜態(tài)數(shù)據(jù)成員動(dòng)態(tài)聯(lián)編所支持的多態(tài)性稱為()。A.虛函數(shù)B.繼承C.編譯時(shí)多態(tài)性D.運(yùn)行時(shí)多態(tài)性定義類模板時(shí)要使用關(guān)鍵字()。A.constB.newC.deleteD.template對(duì)虛基類的定義()。A.不需要使用虛函數(shù)B.必須使用虛函數(shù)C.必須使用privateD.必須使用public類類型轉(zhuǎn)換函數(shù)()。A.不能帶有參數(shù)B.只能帶一個(gè)參數(shù)C.只能帶2個(gè)參數(shù)D.只能帶3個(gè)參數(shù)二、判斷正誤題(本大題共6小題,每小題2分,共12分)判斷正誤,在題后的括號(hào)內(nèi),正確的劃上“廠錯(cuò)誤的劃上“X”。虛函數(shù)在基類和派生類之間定義,并且要求函數(shù)原型完全一致。()抽象類可以用來直接創(chuàng)建對(duì)象。()3?內(nèi)聯(lián)函數(shù)類體內(nèi)實(shí)現(xiàn)時(shí)必須使用關(guān)鍵字inline°()模板類與類模板的意義完全相同。()常對(duì)象只能調(diào)用常成員函數(shù)。()重載函數(shù)要求函數(shù)有相同的函數(shù)名,但通常具有不同的參數(shù)序列。()三、填空題(本大題共6小題,每小題2分,共12分)不寫解答過程,將正確的答案寫在每小題的空格內(nèi)。錯(cuò)填或不填均無分。在用C++進(jìn)行程序設(shè)計(jì)時(shí),最好用()代替malloc。函數(shù)模板中緊隨template之后尖括號(hào)內(nèi)的類型參數(shù)都要寇以保留字()。3.編譯時(shí)多態(tài)性可以用()函數(shù)實(shí)現(xiàn)。4.拷貝構(gòu)造函數(shù)用它所在類的()作為參數(shù)。5.用關(guān)鍵字static修飾的類的成員稱為()成員。6.重載運(yùn)算符“+”的函數(shù)名為()。四、程序分析題(本大題共4小題,每小題5分,共20分)給出下面各程序的輸出結(jié)果1.閱讀下面程序,寫出輸出結(jié)果。#include<iostream>usingnamespacestd;classCArray{public:CArray(intiArray[],intiSize):m_pArray(iArray),m_iSize(iSize){}intGetSize(){returnm_iSize;}int&operator[](intiIndex){returnm_pArray[iIndex-1];}private:int*m_pArray;//指向一個(gè)數(shù)組空間intm_iSize;//數(shù)組元素個(gè)數(shù)};intmain(){ints[]={3,7,2,1,5};CArrayoArray(s,5);oArray[1]=9;for(inti=1;i<=5;i++){cout<<oArray[i]<<"";}cout<<endl;return0;}上面程序的輸出結(jié)果為:2.閱讀下面程序,寫出輸出結(jié)果#include<iostream>usingnamespacestd;template<classType>voidPrint(Typea[],intn){for(inti=0;i<n;i++){cout<<a[i]<<"";}}intmain(){inta[]={5,6,8};doubleb[]={6.8,9.6};Print(a,sizeof(a)/sizeof(int));Print(b,2);cout<<endl;return0;}上面程序的輸出結(jié)果為:3.閱讀下面程序,寫出輸出結(jié)果#include<iostream>usingnamespacestd;classCTest{public:CTest(intiVar):m_iVar(iVar){m_iCount++;}~CTest(){}voidPrint()const;staticintGetCount(){returnm_iCount;}private:intm_iVar;staticintm_iCount;};intCTest::m_iCount=0;voidCTest::Print()const{cout<<this->m_iVar<<""<<this->m_iCount<<}intmain(){CTestoTest1(6);oTest1.Print();CTestoTest2(8);oTest2.Print();cout<<CTest::GetCount();cout<<endl;return0;}上面程序的輸出結(jié)果為:4.閱讀下面程序,寫出輸出結(jié)果。#include<iostream>usingnamespacestd;classCTest{public:CTest(intiX=0,intiY=0,intiZ=0):m_iZ(iZ){m_iX=iX;m_iY=iY;}voidPrint(){cout<<m_iX<<endl;cout<<m_iY<<endl;}voidPrint()const{cout<<m_iZ<<endl;}private:intm_iX,m_iY;constintm_iZ;};intmain(){CTestoTest1;oTest1.Print();CTestoTest2(1,6,8);oTest2.Print();constCTestoTest3(6,0,18);oTest3.Print();cout<<endl;return0;}上面程序的輸出結(jié)果為:五、程序改錯(cuò)題(本大題共4小題,每小題5分,共20分)指出下面程序中的錯(cuò)誤,說明錯(cuò)誤原因,并加以改正1.下面程序中類的定義中有一處錯(cuò)誤,請(qǐng)指出出錯(cuò)的行,說明錯(cuò)誤原因,并加以改正。#include<iostream>//1usingnamespacestd;//2//3classCTest//4{//5public://6CTest(intiVar=0):m_iArr(iVar)//7{//8cout<<"構(gòu)造函數(shù):"<<m_iArr<<endl;//9}//10//11void~CTest()//12{//13cout<<"析造函數(shù):"<<m_iArr<<endl;//14}//15//16private://17intm_iArr;//18};//19//20//21intmain()//22{//23CTestoTest1,oTest2(8);//24cout<<endl;//25//26return0;//27}//282.下面程序中類的定義中有一處錯(cuò)誤,請(qǐng)指出出錯(cuò)的行,說明錯(cuò)誤原因,并加以改正。#include<iostream>//1usingnamespacestd;//2//3classCTest//4{//5public://6CTest(intiA=0,intiB):m_iA(iA),m_iB(iB)//7{//8}//9//10voidShow()//11{//12cout<<m_iA<<","<<m_iB<<endl;//13}//14//15private://16intm_iA,m_iB;//17};//18//19//20intmain()//21{//22CTestoTest(12,16);//23oTest.Show();//24cout<<endl;//25//26return0;//27}//283.下面程序中類的定義中有一處錯(cuò)誤,請(qǐng)指出出錯(cuò)的行,說明錯(cuò)誤原因,并加以改正#include<iostream>//1usingnamespacestd;//2//3classCTest//4{//5public://6CTest(intiVar=0)//7{//8m_iVar=iVar//9}//10//11voidPrint()const//12{//13cout<<m_iVar<<endl;//14}//15//16private://17constintm_iVar;//18};//19//20//21intmain()//22{//23constCTestoTest(16);//24oTest.Print();//25cout<<endl;//26//27return0;//28}//294.下面程序中有一處錯(cuò)誤,請(qǐng)指出出錯(cuò)的行,說明錯(cuò)誤原因,并加以改正#include<iostream>//1usingnamespacestd;//2//3classCBase//4{//5public://6CBase(intiBase=0):m_iBase(iBase)//7{//8}//10//11virtualvoidShow()=0;//12//13intGet()const//14{//15returnm_iBase;//16}//17//18private://19intm_iBase;//20};//21//22classCDerive:publicCBase//23{//24public://25CDerive(intiBase=0,intiDerive=0):CBase

溫馨提示

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

評(píng)論

0/150

提交評(píng)論