山東建筑大學(xué)Visual C++面向?qū)ο缶幊虖?fù)習(xí)題_第1頁(yè)
山東建筑大學(xué)Visual C++面向?qū)ο缶幊虖?fù)習(xí)題_第2頁(yè)
山東建筑大學(xué)Visual C++面向?qū)ο缶幊虖?fù)習(xí)題_第3頁(yè)
山東建筑大學(xué)Visual C++面向?qū)ο缶幊虖?fù)習(xí)題_第4頁(yè)
山東建筑大學(xué)Visual C++面向?qū)ο缶幊虖?fù)習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

山東建筑大學(xué)繼續(xù)教育學(xué)院復(fù)習(xí)題第張共4張一、選擇題1、C++是(C)。A.面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言B.面向過(guò)程的程序設(shè)計(jì)語(yǔ)言C.既支持面向?qū)ο蟮某绦蛟O(shè)計(jì)又支持面向過(guò)程的程序設(shè)計(jì)的混合型語(yǔ)言D.非結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言2、面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括(D)。A.封裝性B.多態(tài)性C.繼承性D.功能分解,逐步求精3、若定義:stringstr;當(dāng)語(yǔ)句cin>>str;執(zhí)行時(shí),從鍵盤輸入:MicrosoftVisualStudio6.0!所得的結(jié)果是str=(B)。A.MicrosoftVisualStudio6.0!B.MicrosoftC.MicrosoftVisualD.MicrosoftVisualStudio6.04、考慮下面的函數(shù)原型聲明:voidtestDefaulParam(inta,intb=7,charz='*');下面函數(shù)調(diào)用中,不合法的是(C)。A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');5、下列語(yǔ)句中,將函數(shù)intsum(intx,inty)正確重載的是(C)。A.floatsum(intx,inty);B.intsum(inta,intb);C.floatsum(floatx,floaty);D.doublesum(inty,intx);6、下列表示引用的方法中,(A)是正確的。已知:inta=1000;A.int&x=a;B.char&y;C.int&z=1000;D.float&t=&a;7、在一個(gè)函數(shù)中,要求通過(guò)函數(shù)來(lái)實(shí)現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用(A)。A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.遞歸調(diào)用D.嵌套調(diào)用8、下列有關(guān)C++類的說(shuō)法中,不正確的是(D)。A.類是一種用戶自定義的數(shù)據(jù)類型B.只有類中的成員函數(shù)或類的友元函數(shù)才能存取類中的私有成員C.在類中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為私有的D.在類中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為公用的9、已知X類,則當(dāng)程序執(zhí)行到語(yǔ)句:Xarray[3];時(shí),調(diào)用了(D)次構(gòu)造函數(shù)。A.0B.1C.2D.310、下面說(shuō)法中,正確的是(B)A.一個(gè)類只能定義一個(gè)構(gòu)造函數(shù),但可以定義多個(gè)析構(gòu)函數(shù)B.一個(gè)類只能定義一個(gè)析構(gòu)函數(shù),但可以定義多個(gè)構(gòu)造函數(shù)C.構(gòu)造函數(shù)與析構(gòu)函數(shù)同名,只要名字前加了一個(gè)求反符號(hào)(~)D.構(gòu)造函數(shù)可以指定返回類型,而析構(gòu)函數(shù)不能指定任何返回類型,即使是void類型也不可以11、已知:print()函數(shù)是一個(gè)類的常成員函數(shù),它無(wú)返回值,下列表示中,(A)是正確的。A.voidprint()const;B.constvoidprint();C.voidconstprint();D.voidprint(const);12、下面描述中,表達(dá)錯(cuò)誤的是(B)A.公用繼承時(shí)基類中的public成員在派生類中仍是public的B.公用繼承時(shí)基類中的private成員在派生類中仍是private的C.公用繼承時(shí)基類中的protected成員在派生類中仍是protected的D.私有繼承時(shí)基類中的public成員在派生類中是private的13、設(shè)置虛基類的目的是(B)。A.簡(jiǎn)化程序B.消除二義性C.提高運(yùn)行效率D.減少目標(biāo)代碼14、下面(B)的敘述不符合賦值兼容規(guī)則。A.派生類的對(duì)象可以賦值給基類的對(duì)象B.基類的對(duì)象可以賦值給派生類的對(duì)象C.派生類的對(duì)象可以初始化基類的對(duì)象D.派生類的對(duì)象的地址可以賦值給指向基類的指針15、關(guān)于虛函數(shù)的描述中,(C)是正確的。A.虛函數(shù)是一個(gè)static類型的成員函數(shù)B.虛函數(shù)是一個(gè)非成員函數(shù)C.基類中說(shuō)明了虛函數(shù)后,派生類中與其對(duì)應(yīng)的函數(shù)可不必說(shuō)明為虛函數(shù)D.派生類的虛函數(shù)與基類的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)和類型16、下面關(guān)于友元的描述中,錯(cuò)誤的是(D)。A.友元函數(shù)可以訪問(wèn)該類的私有數(shù)據(jù)成員B.一個(gè)類的友元類中的成員函數(shù)都是這個(gè)類的友元函數(shù)C.友元可以提高程序的運(yùn)行效率D.類與類之間的友元關(guān)系可以繼承17、下列關(guān)于靜態(tài)數(shù)據(jù)成員的說(shuō)法,不正確的是(C)。A.類中定義的公用靜態(tài)數(shù)據(jù)成員,可以通過(guò)類的對(duì)象來(lái)訪問(wèn)B.類中定義的所有靜態(tài)數(shù)據(jù)成員,都必須在類外初始化C.靜態(tài)數(shù)據(jù)成員不是所有對(duì)象所共用的D.普通的成員函數(shù)可以直接訪問(wèn)類中的靜態(tài)數(shù)據(jù)成員18、如果表達(dá)式++i*k中的“++”和“*”都是重載的友元運(yùn)算符,若采用運(yùn)算符函數(shù)調(diào)用格式,則表達(dá)式還可以表示為(B)。A.operator*(i.operator++(),k)B.operator*(operator++(i),k)C.i.operator++().operator*(k)D.k.operator*(operator++(i))19、下面對(duì)模板的聲明,正確的是(C)。A.template<T>B.template<classT1,T2>C.template<classT1,classT2>D.template<classT1;classT2>20、下列的各類函數(shù)中,(C)不是類的成員函數(shù)A.構(gòu)造函數(shù)B.析構(gòu)函數(shù)C.友元函數(shù)D.復(fù)制構(gòu)造函數(shù)1、關(guān)于C++與C語(yǔ)言關(guān)系的描述中,(D)是錯(cuò)誤的。A.C語(yǔ)言是C++語(yǔ)言的一個(gè)子集B.C語(yǔ)言與C++語(yǔ)言是兼容的C.C++語(yǔ)言對(duì)C語(yǔ)言進(jìn)行了一些改進(jìn)D.C++語(yǔ)言和C語(yǔ)言都是面向?qū)ο蟮腁2、已知:intm=10;下列表示引用的方法中,()是正確的。A.int&x=m;B.int&y=10;C.int&z;D.float&t=&m;3、考慮下面的函數(shù)原型聲明:voidtestDefaulParam(inta,intb=7,charz='*');下面函數(shù)調(diào)用中,不合法的是(C)。A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');4、系統(tǒng)在調(diào)用重載函數(shù)時(shí)往往根據(jù)一些條件確定哪個(gè)重載函數(shù)被調(diào)用,在下列選項(xiàng)中,不能作為依據(jù)的是(A)。A.函數(shù)的返回值類型B.參數(shù)的類型C.函數(shù)名稱D.參數(shù)個(gè)數(shù)5、下列有關(guān)C++類的說(shuō)法中,不正確的是(D)。A.類是一種用戶自定義的數(shù)據(jù)類型B.只有類中的成員函數(shù)或類的友元函數(shù)才能存取類中的私有成員C.在類中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為私有的D.在類中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為公用的6、已知X類,則當(dāng)程序執(zhí)行到語(yǔ)句Xarray[3];時(shí),調(diào)用了(D)次構(gòu)造函數(shù)。A.0B.1C.2D.37、有關(guān)析構(gòu)函數(shù)的說(shuō)法,不正確的是(B)。A.析構(gòu)函數(shù)有且僅有一個(gè)B.析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參C.析構(gòu)函數(shù)的功能是在系統(tǒng)釋放對(duì)象之前作一些內(nèi)存清理工作D.析構(gòu)函數(shù)無(wú)任何函數(shù)類型8、類定義的內(nèi)容允許被其對(duì)象無(wú)限制地存取的是(C)。A.private部分B.protected部分C.public部分D.以上都不對(duì)9、關(guān)于常數(shù)據(jù)成員的說(shuō)法,不正確的是(D)。A.常數(shù)據(jù)成員的定義形式與一般常變量的定義形式相同,只不過(guò)常數(shù)據(jù)成員的定義必須出現(xiàn)在類體中B.常數(shù)據(jù)成員必須進(jìn)行初始化,并且不能被更新C.常數(shù)據(jù)成員通過(guò)構(gòu)造函數(shù)的成員初始化列表進(jìn)行初始化D.常數(shù)據(jù)成員可以在定義時(shí)直接初始化10、運(yùn)用運(yùn)算符delete刪除一個(gè)動(dòng)態(tài)對(duì)象時(shí)(C)。A.系統(tǒng)首先為該動(dòng)態(tài)對(duì)象調(diào)用構(gòu)造函數(shù),再釋放其占用的內(nèi)存B.系統(tǒng)首先釋放該動(dòng)態(tài)對(duì)象占用的內(nèi)存,再為其調(diào)用構(gòu)造函數(shù)C.系統(tǒng)首先為該動(dòng)態(tài)對(duì)象調(diào)用析構(gòu)函數(shù),再釋放其占用的內(nèi)存D.系統(tǒng)首先釋放動(dòng)態(tài)對(duì)象占用的內(nèi)存,再為其調(diào)用析構(gòu)函數(shù)11、可以在類外用p.a的形式訪問(wèn)派生類對(duì)象p的基類成員a,其中a是(D)。A.私有繼承的公用成員B.公用繼承的私有成員C.公用繼承的保護(hù)成員D.公用繼承的公用成員12、在公用繼承方式下,有關(guān)派生類對(duì)象和基類對(duì)象的關(guān)系,不正確的敘述是(C)。A.派生類的對(duì)象可以賦給基類的對(duì)象B.派生類的對(duì)象可以初始化基類的引用C.派生類的對(duì)象可以直接訪問(wèn)基類中的成員D.派生類的對(duì)象的地址可以賦給指向基類的指針13、設(shè)置虛基類的目的是(B)。A.簡(jiǎn)化程序B.消除二義性C.提高運(yùn)行效率D.減少目標(biāo)代碼14、在C++中,用于實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性的是(D)。A.內(nèi)聯(lián)函數(shù)B.重載函數(shù)C.模板函數(shù)D.虛函數(shù)15、不能說(shuō)明為虛函數(shù)的是(B)。A.析構(gòu)函數(shù)B.構(gòu)造函數(shù)C.類的成員函數(shù)D.以上都不對(duì)16、如果一個(gè)類至少有一個(gè)純虛函數(shù),那么就稱該類為(A)。A.抽象類B.派生類C.純基類D.以上都不對(duì)17、下面關(guān)于友元的描述中,錯(cuò)誤的是(D)。A.友元函數(shù)可以訪問(wèn)該類的私有數(shù)據(jù)成員B.一個(gè)類的友元類中的成員函數(shù)都是這個(gè)類的友元函數(shù)C.友元可以提高程序的運(yùn)行效率D.類與類之間的友元關(guān)系可以繼承18、下列運(yùn)算符中,(C)運(yùn)算符在C++中不能被重載。A.&&B.[]C.::D.new19、模板的使用實(shí)際上是將類模板實(shí)例化成一個(gè)(C)。A.函數(shù)B.對(duì)象C.類D.抽象類20、假定MyClass為一個(gè)類,則該類的拷貝構(gòu)造函數(shù)的聲明語(yǔ)句為(C)。A.MyClass(MyClassx)B.MyClass&(MyClassx)C.MyClass(MyClass&x)D.MyClass(MyClass*x)二、填空題1、類和對(duì)象的關(guān)系可表述為:類是對(duì)象的抽象,而對(duì)象則是類的實(shí)例。2、靜態(tài)成員函數(shù)沒(méi)有隱含的this指針,所以,在C++程序中,靜態(tài)成員函數(shù)主要用來(lái)訪問(wèn)靜態(tài)數(shù)據(jù)成員,而不訪問(wèn)非靜態(tài)成員。3、在圖1中,A,B,C,D,E,F(xiàn)均是類,其中屬于單繼承的派生類有E,屬于多繼承的派生類有DF,類F的基類有ABCDE,類A的派生類有DF。AABCDEF圖1類的繼承層次圖4、如果只想保留公共基類的一個(gè)復(fù)制,就必須使用關(guān)鍵字virtual,把這個(gè)公共基類聲明為虛基類。5、從實(shí)現(xiàn)的角度來(lái)講,多態(tài)性可以劃分為兩類:靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性。6、如果一個(gè)類包含一個(gè)或多個(gè)純虛函數(shù),則該類稱為抽象類。7、若要把voidfun()定義為類A的友元函數(shù),則應(yīng)在類A的定義中加入語(yǔ)句friendvoidfun(A&a)。8、列出C++中的兩種代碼復(fù)用方式:繼承和組合或模板。9、析構(gòu)函數(shù)的作用在對(duì)象被系統(tǒng)釋放之前做一些內(nèi)存清理工作。10、假定A是一個(gè)類名,則該類的拷貝構(gòu)造函數(shù)的原型說(shuō)明語(yǔ)句為:A(constA&)。11、后置自增運(yùn)算符“++”重載為類的成員函數(shù)(設(shè)類名為A)的形式為:Aoperator++(int)。三、閱讀下面4個(gè)程序,寫出程序運(yùn)行時(shí)輸出的結(jié)果。1、#include<iostream>usingnamespacestd;voidfun(int&a,int&b){intp;p=a;a=b;b=p;}voidexchange(int&a,int&b,int&c){if(a<b)fun(a,b);if(a<c)fun(a,c);if(b<c)fun(b,c);}intmain(){inta=12,b=89,c=56;exchange(a,b,c);cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;return0;}答案:a=89,b=56,c=122、#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}};classB{public:B(){cout<<"B";}};classC:publicA{public:C(){cout<<"C";}private:Bb;};intmain(){Cobj;return0;}答案:ABC3、#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A::A()called.\n";}virtual~A(){cout<<"A::~A()called.\n";}};classB:publicA{public:B(inti){ cout<<"B::B()called.\n"; buf=newchar[i];}virtual~B(){ delete[]buf; cout<<"B::~B()called.\n";}private:char*buf;};intmain(){A*a=newB(15);deletea;return0;}答案:A::A()called.B::B()called.B::~B()called.A::~A()called.4、#include<iostream>usingnamespacestd;classA{public: voidf(){cout<<"CallA'sfunctionf()"<<endl;} };classB{public: voidf(){cout<<"CallB'sfunctionf()"<<endl;} voidg(){cout<<"CallB'sfunctiong()"<<endl;} };classC:publicA,publicB{public: voidg(){cout<<"CallC'sfunctiong()"<<endl;} };intmain(){ Ccc; cc.B::f();cc.B::g(); cc.g(); return0;}答案:CallB'sfunctionf()CallB'sfunctiong()CallC'sfunctiong()5、#include<iostream>usingnamespacestd;classDate{public:Date(int,int,int);Date(int,int);Date(int);Date();voiddisplay();private:intmonth,day,year;};Date::Date(intm,intd,inty):month(m),day(d),year(y){}Date::Date(intm,intd):month(m),day(d){year=2009;}Date::Date(intm):month(m){day=1;year=2010;}Date::Date(){month=1;day=1;year=2010;}voidDate::display(){cout<<month<<"/"<<day<<"/"<<year<<endl;}intmain(){Dated1(12,31,2009);Dated2(12,31);Dated3(1);Dated4;d1.display();d2.display();d3.display();d4.display();return0;}答案:12/31/200912/31/20091/1/20101/1/20106、#include<iostream>usingnamespacestd;classA{public:A(){cout<<"constructingA"<<endl;}~A(){cout<<"destructingA"<<endl;}};classB:publicA{public:B(){cout<<"constructingB"<<endl;}~B(){cout<<"destructingB"<<endl;}};classC:publicB{public:C(){cout<<"constructingC"<<endl;}~C(){cout<<"destructingC"<<endl;}};intmain(){Cc1;return0;}答案:constructingAconstructingBconstructingCdestructingCdestructingBdestructingA四、編程題1、已知復(fù)數(shù)類Complex的聲明如下:classComplex{public:Complex();//無(wú)參構(gòu)造函數(shù)Complex(double);//轉(zhuǎn)換構(gòu)造函數(shù)Complex(double,double);//有兩個(gè)形參的構(gòu)造函數(shù)friendComplexoperator+(Complex&,Complex&);//對(duì)“+”運(yùn)算符進(jìn)行重載friendostream&operator<<(ostream&,Complex&);//對(duì)“<<”運(yùn)算符進(jìn)行重載friendistream&operator>>(istream&,Complex&);//對(duì)“>>”運(yùn)算符進(jìn)行重載private:doublereal,imag;};要求:(1)寫出該類的所有構(gòu)造函數(shù)的類外定義代碼。(2)寫出對(duì)運(yùn)算符“+”、“<<”、“>>”進(jìn)行重載的運(yùn)算符重載函數(shù)的定義。答案:1、Complex::Complex(){real=0;imag=0;}Complex::Complex(doubler){real=r;}Complex::Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c1,Complex&c2){Complexc;c.real=c1.real+c2.real;c.imag=c1.imag+c2.imag;returnc;}ostream&operator<<(ostream&output,Complex&c){output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;returnoutput;}istream&operator>>(istream&input,Complex&c){cout<<"inputrealandimaginarypartofcomplexnumber:";input>>c.real>>c.imag;returninput;}2、下列Shape類是一個(gè)表示

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論