《c++程序設計》課件第2部分 補充習題答案_第1頁
《c++程序設計》課件第2部分 補充習題答案_第2頁
《c++程序設計》課件第2部分 補充習題答案_第3頁
《c++程序設計》課件第2部分 補充習題答案_第4頁
《c++程序設計》課件第2部分 補充習題答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第2部分補充習題第1章面向對象程序設計概述一、選擇題1、C++是(C)。A面向對象的程序設計語言B結構化程序設計語言C既是面向對象的程序設計語言又是結構化的程序設計語言D非結構化的程序設計語言2、C++語言屬于(D)。A機器語言B低級語言C中級語言D高級語言3、下面關于對象概念的描述中,錯誤的是(A)。A對象就是C語言中的結構變量B對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體C對象是一個屬性和操作(或方法)的封裝體D對象之間的信息傳遞是通過消息進行的4、下面關于類概念的描述中,錯誤的是(D)。A類是抽象數(shù)據(jù)類型的實現(xiàn)B類是具有共同行為的若干對象的統(tǒng)一描述體C類是創(chuàng)建對象的樣板D類就是C語言中的結構體類型5、下列關于C++類的描述中錯誤的是(C)。A類與類之間可以通過一些手段進行通信和聯(lián)絡B類用于描述事物的屬性和對事物的操作C類與類之間必須是平等的關系,而不能組成層次關系D類與類之間可以通過封裝而具有明確的獨立性6、面向對象程序設計思想的主要特征中不包括(D)。A封裝性B多態(tài)性C繼承性D功能分解,逐步求精二、填空題1、構成對象的兩個主要因素是屬性和行為,其中屬性用于描述對象的靜態(tài)特征,行為用于描述對象的動態(tài)特征。2、類和對象的關系可表述為:類是對象的抽象,而對象則是類的實例。3、封裝包含兩方面含義,一是用對象把屬性和操作這些屬性的操作包裝起來,二將對象中某些部分對外隱藏。4、繼承是指特殊類自動地擁有或隱含地復制其一般類的全部屬性與操作。5、面向對象的軟件工程包括的五個階段為:面向對象分析,面向對象設計,面向對象編程,面向對象測試,面向對象維護。第2章C++基礎知識一、選擇題1、下列關于C++語言的發(fā)展說法錯誤的是(C)。AC++語言起源于C語言BC++語言最初被稱為“帶類的C”C在1980年C++被命名D在1983年C++被命名2、C++語言是以語言為基礎逐漸發(fā)展而演變而成的一種程序設計語言。(B)APascalBCCBasicDSimula673、下列關于C++與C語言關系的描述中錯誤的是(C)。AC++是C語言的超集BC++是C語言進行了擴充CC++和C語言都是面向對象的程序設計語言DC++包含C語言的全部語法特征4、下列C++標點符號中表示行注釋開始的是(C)。A#B;C//D}5、每個C++程序都必須有且僅有一個(B)。A預處理命令B主函數(shù)C函數(shù)D語句6、C++對C語言做了很多改進,下列描述中哪一項使得C語言發(fā)生了質(zhì)變,即從面向過程變成面向對象(D)。A增加了一些新的運算符B允許函數(shù)重載,并允許設置默認參數(shù)C規(guī)定函數(shù)說明必須用原型D引進類和對象的概念7、對定義重載函數(shù)的下列要求中,錯誤的是(D)。A要求參數(shù)的個數(shù)不同B要求參數(shù)中至少有一個類型不同C要求參數(shù)個數(shù)相同時,參數(shù)類型不同D要求函數(shù)的返回值不同8、在函數(shù)的返回值類型與返回值表達式的類型的描述中,錯誤的是(B)。A函數(shù)返回值的類型是在定義函數(shù)時確定,在函數(shù)調(diào)用時是不能改變的B函數(shù)返回值的類型就是返回值表達式的類型C函數(shù)返回值表達式類型與返回值類型不同時,函數(shù)表達式類型應轉換成返回值類型D函數(shù)返回值類型確定了返回值表達式的類型9、下列不正確的選項是(D)。AC++語言是一種既支持面向過程程序設計,又支持面向對象程序設計的混合型語言B關鍵字是在程序中起分割內(nèi)容和界定范圍作用的一類單詞Ciostream是一個標準的頭文件,定義了一些輸入輸出流對象D類與類之間不可以進行通信和聯(lián)絡10、下列表示引用的方法中,正確的是(A)。已知:intk=1000;Aint&x=k;Bchar&y;Cint&z=1000;Dfloat&t=&k;二、填空題1、C++既可以用來進行面向對象程序設計,又可以進行面向過程程序設計。2、常量分成兩種,一種是直接常量,另一種是符號常量。3、引用就是某一變量的別名,對其操作與對變量直接操作完全一樣。4、按函數(shù)在語句中的地位分類,可以有以下3種函數(shù)調(diào)用方式:函數(shù)語句,函數(shù)表達式,函數(shù)參數(shù)。5、函數(shù)與引用聯(lián)合使用主要有兩種方式:一是函數(shù)的參數(shù)是引用;二是函數(shù)的返回值是引用。6、頭文件由三部分內(nèi)容組成:頭文件開頭處的文件頭注釋,預處理塊,函數(shù)和類結構聲明。三、程序閱讀題1、分析下面的執(zhí)行結果#include<iostream>usingnamespacestd;intmain(){inta,b,sum;//定義a,b,sum三個整型變量a=43;//把整數(shù)常量賦給變量ab=37;sum=a+b;//a與b相加的和賦給變量sumcout<<"Thesumis"<<sum;cout<<endl;//endl是回車換行的作用return0;}2、分析以下程序的執(zhí)行結果#include<iostream>usingnamespacestd;intmain(){inta;int&b=a;//變量引用b=10;cout<<"a="<<a<<endl;return0;}3、下列程序的執(zhí)行結果為#include<iostream>usingnamespacestd;voidmian(){intn=10;int*pn=&n;int*&rn=pn;(*pn)++;cout<<"n="<<n<<endl;(*rn)++;cout<<”n=”<<n<<endl;}4、下面程序的運行結果是#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,b,c;a=12;b=639;c=78;exchange(a,b,c);cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;return0;} 5、下面的程序輸出結果為#include<iostream>usingnamespacestd;intmain(){int*ir;inti;ir=&i;i=17;cout<<"inti="<<i<<endl;cout<<"intir="<<*ir<<endl;}6、下面程序的輸出結果為#include<iostream>usingnamespacestd;intfun(char*s);intmain(){cout<<fun("hello");return0;}intfun(char*s){char*t=s;while(*t!='\0')t++;return(t-s);}第3章類和對象一、選擇題1、有關類的說法不正確的是(D)。A類是一種用戶自定義的數(shù)據(jù)類型.B只有類中的成員函數(shù)才能存取類中的私有成員.C在類中,如果不做特別說明,所指的數(shù)據(jù)均為私有類型.D在類中,如果不做特別說明,所指的成員函數(shù)均為公有類型。2、下面說法正確的是(B)。A類定義只能說明成員函數(shù)頭,不能定義函數(shù)體B類中的函數(shù)成員可以在類體中定義,也可以在類體之外定義C類的函數(shù)成員在類體之外定義時必須要與類聲明在同一文件中D在類體之外定義的函數(shù)成員不能操作該類的私有數(shù)據(jù)成員3、已知類X中的一個成員函數(shù)說明如下:voidSet(x&a);其中,X&a的含義是(C)。A指向類X的指針為aB將a的地址賦給變量SetCa是類X的對象引用,用來做為Set()的形參D變量X是a按位相與作為函數(shù)Set()的參數(shù)4、有關類和對象的說法不正確的是(B)。A對象是類的一個實例B一個類只能有一個對象C任何一個對象只能屬于一個具體的類D類與對象的關系和數(shù)據(jù)類型和變量的關系相似5、關于常數(shù)據(jù)成員的說法不正確的是(D)。A常數(shù)據(jù)成員的定義形式與一般常量的定義形式相同,只不過常數(shù)據(jù)成員的定義必須出現(xiàn)在類體中.B常數(shù)據(jù)成員必須進行初始化,并且不能被更新C常數(shù)據(jù)成員通過構造函數(shù)的成員初始化列表進行初始化D常數(shù)據(jù)成員可以在定義時直接初始化6、下列關于成員訪問權限的描述中,不正確的是(B)。A公有數(shù)據(jù)成員和公有成員函數(shù)都可以被類對象直接處理B類的私有數(shù)據(jù)成員只能被公有成員函數(shù)以及該類的任何友元類或友元函數(shù)訪問C保護成員在派生類中可以被訪問,而私有成員不可以D只有類或派生類的成員函數(shù)和友元類或友元函數(shù)可以訪問保護成員7、類定義的內(nèi)容允許被其他對象無限制地存取是(C)。Aprivate部分Bprotected部分Cpublic部分D以上都不對8、下列不是構造函數(shù)的特征的是(D)。A構造函數(shù)的函數(shù)名與類名相同B構造函數(shù)可以重載C構造函數(shù)可以設置默認參數(shù)D構造函數(shù)必須指定類型說明9、有關析構函數(shù)的說法不正確的是(B)。A析構函數(shù)有且僅有一個B析構函數(shù)和構造函數(shù)一樣可以有形參C析構函數(shù)的功能是在系統(tǒng)釋放對象之前作一些內(nèi)存清理工作D析構函數(shù)無任何函數(shù)類型10、下列的各類函數(shù)中,不是類的成員函數(shù)的是(C)。A構造函數(shù)B析構函數(shù)C友元函數(shù)D拷貝構造函數(shù)11、關于對象成員的構造函數(shù)的調(diào)用順序,說法正確的是(C)。A與它們在成員初始化列表中給出的順序相同B與析構函數(shù)的調(diào)用順序相同C與它們在類中說明順序相同D以上說法都不對12、下面說法中正確的是(B)A一個類只能定義一個構造函數(shù),但可以定義多個析構函數(shù)B一個類只能定義一個析構函數(shù),但可以定義多個構造函數(shù)C構造函數(shù)與析構函數(shù)同名,只要名字前加了一個求反符號(~)D構造函數(shù)可以指定返回類型,而析構函數(shù)不能指定任何返回類型,即使是void類型也不可以二、填空題1、類的私有成員只能被該類的成員函數(shù)或友元函數(shù)訪問。2、類的數(shù)據(jù)成員不能在定義時初始化,而應該通過類的構造函數(shù)初始化。3、類的成員的可訪問性可分為三類:public、private、protected。4、類成員默認的訪問方式是private。5、類的公用成員可以被類作用域內(nèi)的任何對象訪問。6、聲明完類之后,就可以使用類來定義對象了,這個過程稱為實例化。7、類中有兩類成員,一類是數(shù)據(jù)成員,用來描述對象的靜態(tài)屬性;另一類則是成員函數(shù),用來描述對象的動態(tài)行為。8、通過指針訪問公有成員是使用“->”運算符,通過對象訪問公有成員是使用“.”運算符。9、假定AB是一個類,則語句AB(constAB&)是該類拷貝構造函數(shù)的原形說明。10、析構函數(shù)在對象的生命周期結束時被自動調(diào)用,全局對象和靜態(tài)對象的析構函數(shù)在main函數(shù)執(zhí)行完畢或調(diào)用exit函數(shù)結束時調(diào)用。三、程序分析題1、寫出程序的運行結果#include<iostream>usingnamespacestd;ClassMyClass{public:intnumber;voidset(inti);};intnumber=3;voidMyClass::set(inti){number=i;}voidmain(){MyClassmy1;intnumber=10;my1.set(5);cout<<my1.number<<endl;my1.set(number);cout<<my1.number<<endl;my1.set(::number);cout<<my1.number;}2、分析以下程序的執(zhí)行結果#include<iostream.h>classSample{intx;public:Sample(){};Sample(inta){x=a;}Sample(Sample&a){x=a.x+1;}voiddisp(){cout<<"x="<<x<<endl;}};voidmain(){Samples1(2),s2(s1);s2.disp();}3、分析以下程序的執(zhí)行結果#include<iostream.h>classSample{intx,y;public:Sample(){x=y=0;}Sample(inti,intj){x=i;y=j;}voidcopy(Sample&s);voidsetxy(inti,intj){x=i;y=j;}voidprint(){cout<<"x="<<x<<",y="<<y<<endl;}};voidSample::copy(Sample&s){x=s.x;y=s.y;}voidfunc(Samples1,Sample&s2){s1.setxy(10,20);s2.setxy(30,40);}voidmain(){Samplep(1,2),q;q.copy(p);func(p,q);p.print();q.print();}4、分析以下程序的執(zhí)行結果#include<iostream.h>classSample{public:intx;inty;voiddisp(){cout<<"x="<<x<<",y="<<y<<endl;}};voidmain(){intSample::*pc;Samples;pc=&Sample::x;s.*pc=10;pc=&Sample::y;s.*pc=20;s.disp();}5、寫出下面程序的執(zhí)行結果#include<iostream.h>classSample{intA;staticintB;public:Sample(inta){A=a,B+=a;}staticvoidfunc(Samples);};voidSample::func(Samples){cout<<"A="<<s.A<<",B="<<B<<endl;}intSample::B=0;voidmain(){Samples1(2),s2(5);Sample::func(s1);Sample::func(s2);}第4章繼承與組合一、選擇題1、下面對派生類的描述中,錯誤的是(D)。A一個派生類可以作為另一個派生類的基類B派生類至少有一個基類C派生類的成員除了它自己的成員外,還包含了它的基類的成員D派生類中繼承的基類成員的訪問權限到派生類中保持不變2、在多繼承中,公用繼承和私有繼承對于基類成員在派生類中的可訪問性與單繼承的規(guī)則是(A)。A完全相同B完全不同C部分相同,部分不同D以上都不對3、下面敘述不正確的是(D)。A派生類一般都是公用派生B對基類成員的訪問必須是無二義性的C賦值兼容規(guī)則也適用于多重繼承的場合D基類的公用成員在派生類中仍然是公用的4、下面敘述不正確的是(A)。A基類的保護成員在派生類中仍然是保護的B基類的保護成員在公用派生類中仍然是保護的C基類的保護成員在私有派生類中仍然是私有的D對基類成員的訪問必須是無二義性的5、當保護繼承時,基類的(B)在派生類中成為保護成員,不能通過派生類的對象來直接訪問。A任何成員B公用成員和保護成員C公用成員和私有成員D私有成員6、若派生類的成員函數(shù)不能直接訪問基類中繼承來的某個成員,則該成員一定是基類中的(D)。A任何成員B公用成員C保護成員D私有成員7、設置虛基類的目的是(B)。A簡化程序B消除二義性C提高運行效率D減少目標代碼8、繼承具有(B),即當基類本身也是某一個類的派生類時,底層的派生類也會自動繼承間接基類的成員。A規(guī)律性B傳遞性C重復性D多樣性9、在公用繼承情況下,有關派生類對象和基類對象的關系,不正確的敘述是(C)。A派生類的對象可以賦給基類的對象B派生類的對象可以初始化基類的引用C派生類的對象可以直接訪問基類中的成員D派生類的對象的地址可以賦給指向基類的指針10、有如下類定義:classMyBASE{public:voidset(intn){k=n;}intget()const{returnk;}protected:intk;};classMyDERIVDE:protectedMyBASE{public:voidset(n){MyBASE::set(m);j=n;}intget()const{returnMyBASE::get()+j;}protected:intj;};則類MyDERIVDE中保護的數(shù)據(jù)成員和成員函數(shù)的個數(shù)是(C)。A4B3C2D111、有如下程序:#include<iostream>usingnamespacestd;classA{pubilc:A(){cout<<“A”;}};classB{public:B(){cout<<“B”;}};classC:publicA{public:C(){cout<<“C”;}private:Bb;};intmain(){Cobj;return0;}執(zhí)行后的輸出結果是(D)。ACBABBACCACBDABC12、有如下程序:#include<iostream>usingnamespacestd;classBASE{public:~BASE(){cout<<”BASE”;}};classDERIVED:publicBASE{public:~DERIVED(){cout<<”DERIVED”;}};intmain(){DERIVEDX;return0;}執(zhí)行后的輸出結果是(C)。ABASEBDERIVEDCBASEDERIVEDDDERIVEDBASE13、有如下程序:#includ<iostream>usingnamespacestd;classBase{public:voidfun(){cont<<”Base::fun”<<endl;}};classDerived:publicBase{public:voidfun(){cout<<”Derivde::fun”<<endl;}voidmain(){Deriverd;d.fun();}已知其執(zhí)行后的輸出結果為:Base::funDerived::fun則程序中下劃線處應添入的語句是(B)。ABase.fun();BBase::fun();CBase->fun()Dfun();二、填空題1、在C++中,三種繼承方式的說明符號為public、private、protected,如果不加說明,則默認的繼承方式為private。2、當公用繼承時,基類的公用成員成為派生類的公用成員;保護成員成為派生類的保護成員;私有成員成為派生類的不可訪問成員。3、當保護繼承時,基類的公用成員成為派生類的保護成員;保護成員成為派生類的保護成員;私有成員成為派生類的不可訪問成員。4、當私有繼承時,基類的公用成員成為派生類的私有成員;保護成員成為派生類的私有成員;私有成員成為派生類的不可訪問成員。5、多繼承時,多個基類中同名成員在派生類中由于標識符不唯一而出現(xiàn)二義性。第5章多態(tài)性與虛函數(shù)一、選擇題1、向不同的對象發(fā)送統(tǒng)一消息可導致完全不同的行為的現(xiàn)象稱為(A)。A多態(tài)性B抽象C繼承D封裝2、多態(tài)調(diào)用是指(C)。A以任何方式調(diào)用一個虛函數(shù)B以任何方式調(diào)用一個純虛函數(shù)C借助于指向對象的基類指針或引用調(diào)用一個虛函數(shù)D借助于指向對象的基類指針或引用調(diào)用一個純虛函數(shù)3、下面關于抽象類說法不正確的是(C)。A抽象類是指具有純虛函數(shù)的類B一個聲明有純虛函數(shù)的基類一定是抽象類C可以用抽象類定義對象D抽象類中可以進行構造函數(shù)的重載4、在C++中,用于實現(xiàn)運行時多態(tài)性的是(D)。A內(nèi)聯(lián)函數(shù)B重載函數(shù)C模板函數(shù)D虛函數(shù)5、關于純虛函數(shù),下列表述正確的是(B)。A純虛函數(shù)是未給出實現(xiàn)版本(即無函數(shù)體定義)的虛函數(shù)B純虛函數(shù)的聲明總是以“=0”C派生類必須實現(xiàn)基類的純虛函數(shù)D含有純虛函數(shù)的類一定是派生類6、關于虛函數(shù),下列表述正確的是(B)。A如果在重定義虛函數(shù)時使用virtual,則該重定義函數(shù)仍然是虛函數(shù)B虛函數(shù)不得聲明為靜態(tài)函數(shù)C虛函數(shù)不得聲明為另一個類的友元函數(shù)D派生類必須重新定義基類的虛函數(shù)7、關于純虛函數(shù)和抽象類的描述中,錯誤的是(A)。A純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的定義B抽象類是指具有純虛函數(shù)的類C抽象類只能作為基類來使用,其純虛函數(shù)的定義由派生類給出D一個基類中說明有純虛函數(shù),該基類的派生類只有實現(xiàn)了基類的所有純虛函數(shù),才可以用派生類來定義對象。8、下列描述中,是抽象類的特征的是(D)。A可以說明虛函數(shù)B可以進行構造函數(shù)的重載C可以定義友元函數(shù)D不能定義其對象9、抽象類應該有(D)。A至少一個虛函數(shù)B至多一個虛函數(shù)C至多一個純虛函數(shù)D至少一個純虛函數(shù)10、關于虛函數(shù)的說法正確的是(C)。A基類的虛函數(shù)可為派生類繼承,繼承下來仍為虛函數(shù)B虛函數(shù)重定義時必須保證其返回值和參數(shù)個數(shù)及類型與基類中的一致C虛函數(shù)必須是一個類的成員函數(shù),不能是友元,也不能是靜態(tài)函數(shù),但可以作為其他類的友元D析構函數(shù)和構造函數(shù)都可是虛函數(shù),都可被繼承二、填空題1、C++中的多態(tài)性可以分為4類:參數(shù)多態(tài)、包含多態(tài)、重載多態(tài)和強制多態(tài)。前面兩種統(tǒng)稱為通用多態(tài),而后面兩種統(tǒng)稱為專用多態(tài)。2、向上類型轉換是指把一個派生類的對象作為一個基類的對象來使用。3、多態(tài)性從實現(xiàn)的角度來講可以劃分為兩類:靜態(tài)多態(tài)行和動態(tài)多態(tài)行。4、虛函數(shù)的聲明方法是在函數(shù)原型前加上關鍵字virtual。5、如果一個類包含一個或多個純虛函數(shù),則該類為抽象類。第6章面向對象的妥協(xié)一、選擇題1、下面關于友元的描述中,錯誤的是(D)。A友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員。B一個類的友元類中的成員函數(shù)都是這個類的友元函數(shù)。C友元可以提高程序的運行效率。D類與類之間的友元關系可以繼承。2、友元訪問類的對象的成員時使用(D)A類的成員名Bthis指針指向成員名C“類名::成員名”的形式D“對象名.成員名”的形式3、已知類A是類B的友元,類B是類C的友元,則(D)。A類A一定是類C的友元B類C一定是類A的友元C類C的成員函數(shù)可以訪問類B的對象的任何成員D類A的成員函數(shù)可以訪問類B的對象的任何成員4、下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是(A)。A靜態(tài)數(shù)據(jù)成員是類的所有對象共享的數(shù)據(jù)B類的每個對象都有自己的靜態(tài)數(shù)據(jù)成員C類的不同對象有不同的靜態(tài)數(shù)據(jù)成員值D靜態(tài)數(shù)據(jù)成員不能通過類的對象調(diào)用二、填空題1、友元可以訪問與其有好友關系的類中的任何成員。友元包括友元函數(shù)和友元類。2、聲明友元的關鍵字是friend。3、類的靜態(tài)成員包括靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。4、靜態(tài)數(shù)據(jù)成員是在程序編譯時被分配空間的,到程序結束時才釋放空間。第7章運算符重載選擇題1、下列運算符中,下列哪個運算符在C++中不能重載(C)。A&&B[]C::Dnew2、下列關于運算符重載的描述中,正確的是(D)。A運算符重載可以改變操作數(shù)的個數(shù)B運算符重載可以改變優(yōu)先級C運算符重載可以改變結合性D運算符重載不可以改變語法結構3、在表達式x+y*z中,+是作為成員函數(shù)重載的運算符,*是作為非成員函數(shù)重載的運算符。下列敘述中正確的是(C)。Aoperator+有兩個參數(shù),operator*有兩個參數(shù)Boperator+有兩個參數(shù),operator*有一個參數(shù)Coperator+有一個參數(shù),operator*有兩個參數(shù)Doperator+有一個參數(shù),operator*有一個參數(shù)4、在下列成對的表達式中,運算符“+”的意義不相同的一對是(C)。A5.0+2.0和5.0+2B5.0+2.0和5+2.0C5.0+2.0和5+2D5+2.0和5.0+25、下列關于運算符的重載敘述正確的是(C)。A通過運算符重載,可以定義新的運算符B有的運算符只能作為成員函數(shù)重載C若重載運算符+,則相應的運算符函數(shù)名是+D重載一個二元運算符時,必須聲明兩個形參6、如果表達式++i*k中的“++”和“*”都是重載的友元運算符,若采用運算符函數(shù)調(diào)用格式,則表達式還可以表示為(B)。Aoperator*(i.operator++(),k)Boperator*(operator++(i),k)Ci.operator++().operator*(k)Dk.operator*(operator++(i))7、已知在一個類體中包含如下函數(shù)原型:VOLUMEoperator-(VOLUME)const;下面關于這個函數(shù)敘述錯誤的是(B)。A這是運算符-的重載運算符函數(shù)B這個函數(shù)所重載的運算符是一個一元運算符C這是一個成員函數(shù)D這個函數(shù)不改變類的任何數(shù)據(jù)成員的值8、下列關于運算符的重載說法不正確的是(D)。A它可以是成員函數(shù)B它可以是友元函數(shù)C它既不是成員函數(shù)也不是友元函數(shù)D它只能是成員函數(shù)填空題1、運算符的重載是對c++已用的的運算符賦予多重含義,導致不同行為,定義重載運算符函數(shù)的關鍵字是operator。2、要在類的對象上使用運算符,除了運算符=和&外,都須被重載。3、C++中不能被重載的運算符有.、.*、::、?:、sizeof。4、重載不改變運算符的操作數(shù)的個數(shù)、結合性、優(yōu)先級。5、對雙目運算符,被重載為成員函數(shù)時,有1參數(shù),被重載為友元函數(shù)時,有2參數(shù)。第8章模板一、選擇題1、關于模板函數(shù)與函數(shù)模板的說法正確的是(C)。A其實質(zhì)是一樣的,只是說法不同B兩者的形參類型是一樣的C模板函數(shù)是模板的實例化D函數(shù)模板是模板函數(shù)的實例化2、模板的使用實際上是將類模板實例化成一個(C)。A函數(shù)B對象C類D抽象類3、類模板的模板參數(shù)(D)。A只可作為數(shù)據(jù)成員的類型B只可作為成員函數(shù)的返回類型C只可作為成員函數(shù)的參數(shù)類型D以上三者均可4、模板的參數(shù)(A)。A可以有多個B不能是基本數(shù)據(jù)類型C可以是0個D參數(shù)不能給初值5、template<classT,intsize=5>classapple{…};定義模板類apple的成員函數(shù)的正確格式為(C)。ATapple<t,size>::Push(Tobject)BTapple::Push(Tobject)Ctemplate<classT,intsize=5>Tapple<T,size>::Push(Tobject)Dtemplate<classT,intsize=5>Tapple::Push(Tobject)6、下列說法正確的是(D)。A函數(shù)模板的友元函數(shù)必須是模板B模板函數(shù)可以被同名的另一個模板函數(shù)重載C形式參數(shù)的名字只能在模板函數(shù)的形式參數(shù)表中出現(xiàn)一次D關鍵字class定義函數(shù)模板類型參數(shù),實際上表示任何用戶自定義類型二、填空題1、函數(shù)模板使設計與具體數(shù)據(jù)類型無關的通用算法的良好機制,它可以用一種抽象數(shù)據(jù)類型設計通用算法。2、通過關鍵字template可以聲明模板,通過關鍵字class或typename指定函數(shù)模板的類型參數(shù),有幾個類型參數(shù)就有幾個關鍵字,它實際表示任何標準數(shù)據(jù)類型或用戶自定義數(shù)據(jù)類型。3、模板形參表表示將被替換的模板參數(shù),模板參數(shù)之間用逗號分隔,它有待于實例化。4、將函數(shù)模板中的參數(shù)實例化后,函數(shù)模板變成模板函數(shù)。5、對函數(shù)模板的實例化可以有兩種顯示方式:顯示方式、隱式方式,其中的隱式方式是編譯程序根據(jù)實參的類型自動實例化模板。6、模板定義的形式參數(shù)可用來指定傳遞給函數(shù)的參數(shù)類型、函數(shù)返回類型、聲明函數(shù)中的變量。第9章輸入/輸出流一、選擇題1、在程序中要進行文件的輸出,除了包含iostream頭文件外,還要包含頭文件(B)。AifsteamBfstreamCostreamDcstdio2、執(zhí)行下列語句:char*str;cin>>str;cout<<str;若輸入abcd1234↙則輸出(A)。AabcdBabcd1234C1234D輸出亂碼或出錯3、執(zhí)行下列語句:chara[200];cin.getline(a,200,'');cout<<a;若輸入abcd1234↙則輸出(A)。AabcdBabcd1234C1234D輸出亂碼或出錯4、定義char*p="abcd",能輸出p的值("abcd"的地址)的為(B)。Acout<<&p;Bcout<<p;Ccout(char*)p;Dcout<<const_cast<void*>(p)5、定義inta;int*pa=&a;下列輸出式中,結果不是pa的值(a的地址)的為(C)。Acout<<pa;Bcout<<(char*)pa;Ccout<<(void*)pa;Dcout<<(int*)pa;6、下列輸出字符方式錯誤的是(A)。Acout<<put('A');Bcout<<'A';Ccout.put('A');DcharC='A';cout<<C;7、當使用ofstream定義一個文件流對象,并將一個打開文件的文件與之連接,文件默認的打開方式為(B)。Aios::inBios::outCios::in|ios::binaryD

溫馨提示

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

最新文檔

評論

0/150

提交評論