國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷11(共223題)_第1頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷11(共223題)_第2頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷11(共223題)_第3頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷11(共223題)_第4頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷11(共223題)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(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)介

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷11(共9套)(共223題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共33題,每題1.0分,共33分。)1、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。A、存儲(chǔ)在外存中的數(shù)據(jù)B、數(shù)據(jù)所占的存儲(chǔ)空間量C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。2、在下列字符中,不允許作為C++標(biāo)識(shí)符的是()。A、bB、BC、_D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符是一個(gè)以字母或下劃線開(kāi)頭的,由字母、數(shù)字、下劃線組成的字符串。3、下列關(guān)于棧的描述中錯(cuò)誤的是()。A、棧是先進(jìn)后出的線性表B、棧只能順序存儲(chǔ)C、棧具有記憶作用D、對(duì)棧的插入與刪除操作中,不需要改變棧底指針標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。棧頂(top):插入數(shù)據(jù)(即入棧)的一端:棧底(bottom):不能入棧也不能出棧的…端。棧存儲(chǔ)數(shù)據(jù)的原則:“先進(jìn)后出”或“后進(jìn)先出”。棧的特性是具有記憶作用。4、下列敘述中正確的是()。A、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針與隊(duì)尾指針的變化而動(dòng)態(tài)變化B、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針的變化而動(dòng)態(tài)變化C、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)尾指針的變化而動(dòng)態(tài)變化D、循環(huán)隊(duì)列中的元素個(gè)數(shù)不會(huì)變化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:所謂循環(huán)結(jié)構(gòu)就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置上,形成邏輯上的環(huán)狀空間,循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置,因此,隊(duì)列中的元素?cái)?shù)等于從隊(duì)頭指針front指向的后一個(gè)位置與隊(duì)尾指針rear指向位置之間的元素?cái)?shù)量。5、—棵二叉樹(shù)中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹(shù)中的總結(jié)點(diǎn)數(shù)為()。A、219B、221C、229D、231標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在二叉樹(shù)中,葉子結(jié)點(diǎn)個(gè)數(shù)為n0,則度為2的結(jié)點(diǎn)數(shù)n2=n0—1。本恿中葉子結(jié)點(diǎn)的個(gè)數(shù)為70,所以度為2的結(jié)點(diǎn)個(gè)數(shù)為69,因而總結(jié)點(diǎn)數(shù)=葉子結(jié)點(diǎn)數(shù)+度為1的結(jié)點(diǎn)數(shù)+度為2的結(jié)點(diǎn)數(shù)=70+80+69=219。6、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。A、自頂向下B、逐步求精C、模塊化D、可復(fù)用標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自項(xiàng)向下,逐步求精,模塊化,限制使用goto語(yǔ)句。自頂向下是指程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。逐步求精是指對(duì)復(fù)雜問(wèn)題應(yīng)設(shè)計(jì)一些子目標(biāo)過(guò)渡,逐步細(xì)化。模塊化是把程序要解決的總目標(biāo)先分解成分目標(biāo),再進(jìn)一步分解成具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊??蓮?fù)用性是指軟件元素不加修改成稍加修改便可在不同的軟件開(kāi)發(fā)過(guò)程中重復(fù)使用的性質(zhì)。軟件可復(fù)用性是軟件工程追求的目標(biāo)之一,是提高軟件生產(chǎn)效率的最主要力法,不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法。7、有如下程序:#includevoidfun(int&X,inty){intt=x;x=y;y=t;)intmain(){inta[2]={23,42);fun(a[1],a[0]);std::cout<<a[0]<<“,”<<a[1]<<std::endl;retum0:}執(zhí)行后的輸出結(jié)果是()。A、42,42B、23,23C、23,42D、42,23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查是是函數(shù)的調(diào)用以及參數(shù)值的傳遞。函數(shù)fun中的第一個(gè)參數(shù)是引用傳值方式,是雙向的;第二個(gè)參數(shù)是按值傳遞,是單向的。8、設(shè)有如下關(guān)系表:則下列操作正確的是()。A、T=R/SB、T=R×SC、T=R∩SD、T=R∪S標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:T就是關(guān)系R中有的,同時(shí)S中也有的有序組(4、5、6),即交運(yùn)算(∩)。9、軟件生命周期可分為定義階段、開(kāi)發(fā)階段和維護(hù)階段,下面不屬于開(kāi)發(fā)階段任務(wù)的是()。A、測(cè)試B、設(shè)計(jì)C、可行性研究D、實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用退役的過(guò)程。其中,定義階段包括可行性研究與計(jì)劃制定和需求分析。測(cè)試、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)屬于開(kāi)發(fā)階段。10、軟件生命周期可分為定義階段,開(kāi)發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于()。A、定義階段B、開(kāi)發(fā)階段C、維護(hù)階段D、上述三個(gè)階段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查軟件生命周期的相關(guān)概念。通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。也就是說(shuō),軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。還可以將軟件生命周期分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。11、在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、可行性分析報(bào)告B、軟件需求規(guī)格說(shuō)明書C、概要設(shè)計(jì)說(shuō)明書D、集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:需求分析的最終結(jié)果是生成軟件需要規(guī)格說(shuō)明書,可以為用戶、分析人員和設(shè)計(jì)人員之間的交流提供方便,可以直接支持目標(biāo)與確認(rèn),又可以作為控制軟件開(kāi)發(fā)進(jìn)程的依據(jù)。12、下列描述中正確的是()。A、數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題C、數(shù)據(jù)庫(kù)管理系統(tǒng)就是數(shù)據(jù)庫(kù)系統(tǒng)D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)由如下幾個(gè)部分組成:數(shù)據(jù)庫(kù)(數(shù)據(jù))、數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件)、數(shù)據(jù)庫(kù)管理員(人員)、系統(tǒng)平臺(tái)之一——硬件平臺(tái)(硬件)、系統(tǒng)平臺(tái)之二——軟件平臺(tái)(軟件)。這五個(gè)部分構(gòu)成了一個(gè)以數(shù)據(jù)庫(kù)為核心的完整的運(yùn)行實(shí)體,稱為數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)技術(shù)的根本目的是要解決數(shù)據(jù)的共享問(wèn)題。數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有“集成”、“共享”之特點(diǎn),亦即數(shù)據(jù)庫(kù)集中了各種應(yīng)用的數(shù)據(jù),進(jìn)行統(tǒng)一地構(gòu)造與存儲(chǔ),而使它們可被不同應(yīng)用程序所使用。數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱DBMS),是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。它是數(shù)據(jù)庫(kù)系統(tǒng)的核心。13、有如下程序:#includeusingnamespacestd;classBoat;classCar{public:Car(inti):weight(i){}friendintTotal(constCar&c,constBoat&b);∥①private:intweight;};classBoat{public:Boat(inti):weight(i){}friendintTotal(constCar&c,constBoat&b);private:intweight;};intTotal(constCar&c,constBoat&b){∥②returnc.weight+b.weight;}intmain(){Carc(10);Boatb(8);cout<<"Thetotalweightis"<A、程序編譯正確B、程序編譯時(shí)語(yǔ)句①出錯(cuò)C、程序編譯時(shí)語(yǔ)句②出錯(cuò)D、程序編譯時(shí)語(yǔ)句⑧出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中定義了類Car和類Boat,在兩個(gè)類中分別定義他們的構(gòu)造函數(shù)和友元函數(shù)friend。程序在VC6.0中編譯通過(guò)。14、有如下類說(shuō)明:classTestClass{hatx;public:TestClass(intn){x=n;}};classTestClass1:publicTestClass{inty;public:TestClass1(inta,intb);};在構(gòu)造函數(shù)TestClass1的下列定義中,正確的是()。A、TestClass1::TestClass1(inta,intb):x(a),y(b){}B、TestClass1::TestClass1(inta,intb):TestClass(a),y(b){}C、TestClass1::TestClass1(inta,intb):x(a),TestClass1(b){}D、TestClass1::TestClass1(inta,intb):TestClass(a),TestClass1(b){}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目中程序TestClass為基類,TestClass1為派生類,派生類構(gòu)造函數(shù)的一般形式為:派生類構(gòu)造函數(shù)名(總參數(shù)類表):基類構(gòu)造函數(shù)名(參數(shù)列表){派生類中新增數(shù)據(jù)成員初始化語(yǔ)句}。派生類TestClass1的基類函數(shù)名為TestClass,總參數(shù)為inta,intb,所以選擇B)。15、已知類IMS中兩個(gè)成員函數(shù)的聲明為“voidlisten()const;”與“voidspeak();”,另有兩個(gè)對(duì)象的定義為“IMSobjl;”與“constIMSobj2;”,則下列語(yǔ)句中,產(chǎn)生編譯錯(cuò)誤的是()。A、objl.1isten();B、objl.speak();C、obj2.1isten();D、obj2.speak();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù):listen(、)作為類IMS的常成員函數(shù),一般對(duì)象obi和常對(duì)象obj2都可以調(diào)用它,而函數(shù)speak()作為IMS的一般成員函數(shù),則只有一般對(duì)象objl可以調(diào)用,而常對(duì)象obi2調(diào)用會(huì)產(chǎn)生編譯錯(cuò)誤。16、下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為()。for(inti(0),j(10);i=j=4;i++,j--)A、0B、1C、4D、無(wú)限標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)條件i=i=4;是個(gè)賦值語(yǔ)句,使得i,i的值非0,所以是死循環(huán)。17、下列關(guān)于C++函數(shù)的敘述中,正確的是()。A、每個(gè)函數(shù)至少要具有一個(gè)參數(shù)B、每個(gè)函數(shù)都必須返回一個(gè)值C、函數(shù)在被調(diào)用之前必須先聲明D、函數(shù)不能自己調(diào)用自己標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)的性質(zhì)。當(dāng)調(diào)用無(wú)參函數(shù)時(shí)主函數(shù)并不將數(shù)據(jù)傳送給被調(diào)函數(shù),且可以帶回或不帶回函數(shù)值。函數(shù)的遞歸調(diào)用就是直接或間接的調(diào)用自己。18、下列敘述中,錯(cuò)誤的是()。A、false是一個(gè)邏輯型常量B、”b”是一個(gè)字符型常量C、365是一個(gè)int常量D、3.1415926是一個(gè)double常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符常量簡(jiǎn)稱字符,它以單引號(hào)作為起止符號(hào),中間有一個(gè)或若干個(gè)字符。或者以“\”開(kāi)頭的包括多個(gè)字符的字符序列也符合規(guī)定的字符常量。19、在表達(dá)式x+y*z中,+是作為成員函數(shù)重載的運(yùn)算符,*是作為非成員函數(shù)重載的運(yùn)算符。下列敘述中正確的是()。A、operator+有兩個(gè)參數(shù),operator*有兩個(gè)參數(shù)B、operator+有兩個(gè)參數(shù),operator*有一個(gè)參數(shù)C、operator+有一個(gè)參數(shù),operator*有兩個(gè)參數(shù)D、operator+有一個(gè)參數(shù),operator*有一個(gè)參數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。運(yùn)算符可重載成員函數(shù),也可重載為友元函數(shù)。當(dāng)重載為成員函數(shù)時(shí),運(yùn)算符重載函數(shù)的形參個(gè)數(shù)要比運(yùn)算符操作數(shù)的個(gè)數(shù)少一個(gè);當(dāng)重載為友元函數(shù)時(shí),其參數(shù)個(gè)數(shù)應(yīng)與操作數(shù)的個(gè)數(shù)相同。20、在表達(dá)式x+y*z中,+是作為成員函數(shù)重載的運(yùn)算符,*是作為非成員函數(shù)重載的運(yùn)算符。下列敘述中正確的是()。A、operator+有兩個(gè)參數(shù),operator*有兩個(gè)參數(shù)B、operator+有兩個(gè)參數(shù),operator*有一個(gè)參數(shù)C、operator+有一個(gè)參數(shù),operator*有兩個(gè)參數(shù)D、operator+有一個(gè)參數(shù),operator*有一個(gè)參數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。運(yùn)算符可重載成員函數(shù),也可重載為友元函數(shù)。當(dāng)重載為成員函數(shù)時(shí),運(yùn)算符重載函數(shù)的形參個(gè)數(shù)要比運(yùn)算符操作數(shù)的個(gè)數(shù)少一個(gè);當(dāng)重載為友元函數(shù)時(shí),其參數(shù)個(gè)數(shù)應(yīng)與操作數(shù)的個(gè)數(shù)相同。21、關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是()。A、重載函數(shù)的函數(shù)名必須相同B、重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同C、重載函數(shù)的返回值類型必須相同D、重載函數(shù)的函數(shù)體可以有所不同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載。在C++語(yǔ)言中,允許定義一系列函數(shù)名相同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。22、有如下程序:#include#includeusingnamespacestd;classXCF{inta;public:XCF(intaa=0):a(aa){cout<<”1”;)XCF(XCF&x){a=x.a(chǎn);cout<<”2”;)~XCF(){cout<Geta();deletepd;return0:)運(yùn)行時(shí)的輸出結(jié)果是()。A、1215588B、1218855C、12185D、128512標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在這個(gè)程序中在建立對(duì)象d1(5)時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){cout<<"1";},輸出1;在建立d2(d1)時(shí),調(diào)用拷貝構(gòu)造函數(shù)XCF(XCF&x){a=x.a(chǎn);cout<<"2";},輸出2:在建立newXCF(8)對(duì)象時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){cout<<"1";},輸出1;語(yǔ)句cout<Geta()的功能是輸出8;語(yǔ)句deletepd;調(diào)用析構(gòu)函數(shù)~XCF(),輸出8;當(dāng)退出程序時(shí),分別釋放對(duì)象d2、d1,輸出55。23、有如下程序:#inc1ude<iostream>usingnamespacestd;classBase{public:Base(intx=0){cout<<x;}};classDeriVed:publicBase{public:Derived(intx=0){cout<<x;}private:Baseval:};intmain(){Derivedd(1);return0;}程序的輸出結(jié)果是()。A、0B、1C、01D、001標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類的構(gòu)造。建立類的對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被繼承時(shí)聲明的順序(自左向右).>執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序.>執(zhí)行自身的構(gòu)造函數(shù)。本題中,首先會(huì)構(gòu)造基類Base,調(diào)用Base類的構(gòu)造函數(shù),輸出0;然后還定義了一個(gè)Base類的對(duì)象,再次調(diào)用Base類的默認(rèn)構(gòu)造函數(shù)輸出0;最后構(gòu)造自身,因主函數(shù)中傳入了構(gòu)造參數(shù)1,所以輸出l。故最后輸出結(jié)果是:001。24、有如下程序:#include#includeusingnamespacestd;intmain(){ints[]={123,234};cout<A、123234B、***123234C、***123***234D、***123234***標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在輸出語(yǔ)句中定義了輸出的格式是字符寬度為6,并且向右對(duì)齊,不足的位用‘*’補(bǔ)齊。在C++中,輸出格式的設(shè)置只對(duì)第一次輸出有效,在完成了一個(gè)數(shù)據(jù)的輸出后,寬度設(shè)置自動(dòng)恢復(fù)為0(表示按數(shù)據(jù)實(shí)際寬度輸出)。所以對(duì)于本題來(lái)說(shuō),在循環(huán)語(yǔ)句中輸出數(shù)組s[0]中的元素時(shí),按照規(guī)定的格式輸出,其結(jié)果為***123,當(dāng)輸出s[1]時(shí),輸出格式已經(jīng)恢復(fù)到按數(shù)據(jù)實(shí)際寬度輸出,所以此時(shí)輸出為234。25、有如下程序:#includeusingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n-=3;}staticintgetNum(){returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<”n=”<A、n=0B、n=1C、n=2D、n=3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。靜態(tài)數(shù)據(jù)成員是類中所有對(duì)象共享的成員,而不是某個(gè)對(duì)象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有疊加性,執(zhí)行“n+=2”和“n-=3”后n的值為0。26、在C++中,打開(kāi)一個(gè)文件時(shí)與該文件建立聯(lián)系的是()。A、流對(duì)象B、模板C、函數(shù)D、類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在c++中,打開(kāi)一個(gè)文件時(shí)與該文件建立聯(lián)系的是流對(duì)象。27、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問(wèn)基類的保護(hù)成員B、派生類的成員函數(shù)可以訪問(wèn)基類的所有成員C、基類對(duì)象可以賦值給派生類對(duì)象D、如果派生類沒(méi)有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)描象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無(wú)論是哪種繼承方式,派生類都能夠訪問(wèn)基類的公有和保護(hù)成員,而不能訪問(wèn)基類的私有成員,故選項(xiàng)A和B錯(cuò)誤;公有繼承時(shí),基類的對(duì)象不可作為派生類的對(duì)象處理,即基類對(duì)象不可賦值給派生類對(duì)象,所以選項(xiàng)C錯(cuò)誤。28、有如下類定義:classXX{intxx;public:XX():xx(0){cout<<’A’;}XX(intn):xx(n){cout<<’B’;}};classYY:publicXX{intyy;public:YY():yy(0){cout<<yy;}YY(intn):XX(n+1),yy(n){cout<<yy;}YY(intm,intn):XX(m),yy(n){cout<<yy;}};下列選項(xiàng)中,輸出結(jié)果為A0的語(yǔ)句是()。A、YYy1(0,0);B、YYy2(1);C、YYy3(0);D、YYy4;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:考查的是類的繼承。選項(xiàng)A的執(zhí)行結(jié)果為B0,建立YY的對(duì)象y1,首先調(diào)用其構(gòu)造函數(shù),YY繼承于XX所以先調(diào)用的為XX的構(gòu)造函數(shù),根據(jù)輸入的參數(shù)可知輸出B,然后執(zhí)行YY的構(gòu)造函數(shù)輸出0;同理,選項(xiàng)B的執(zhí)行結(jié)果為Bl,選項(xiàng)C的執(zhí)行結(jié)果為B0。29、在一個(gè)派生類的成員函數(shù)中,試圖調(diào)用其基類的成員函數(shù)"voidf();’’,但無(wú)法通過(guò)編譯。這說(shuō)明()。A、f()是基類的私有成員B、f()是基類的保護(hù)成員C、派生類的繼承方式為私有D、派生類的繼承方式為保護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在派生類對(duì)基類的三種繼承形式中,都無(wú)法對(duì)基類的私有成員訪問(wèn)A正確。在B中,三種繼承方式都能訪問(wèn)基類的保護(hù)成員,故B不正確。C選項(xiàng)的情況在f()是基類私有成員情況下是對(duì)的,但是還有別的可能,并不一定正確。同樣D也不一定正確。30、有如下程序#include<iostream>usingnamespacestd;classBase{protected:Base(){cout<<’A’;}Base(charc){cout<<c;}};classDerived:publicBase{public:Derived(charc){cout<<c;}};intmain(){Derivedd1(’B’);return0;}執(zhí)行這個(gè)程序屏幕上將顯示輸出()。A、BB、BAC、ABD、BB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(gòu)造。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序是:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被被繼承時(shí)聲明的順序;執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序:執(zhí)行派生類的構(gòu)造函數(shù)。此題中,在建立派生類Derived的對(duì)象dl時(shí)會(huì)先調(diào)用基類Base的構(gòu)造,調(diào)用的是默認(rèn)構(gòu)造函數(shù),輸出字符‘A’;然后調(diào)用自身的構(gòu)造函數(shù),輸出‘B’;故程序的輸出結(jié)果是:AB。31、有如下程序:#includeusingnamespacestd;className{charname[20];public:Name(){strcpy(name,"");cout<<’?’;}Name(char*fame){strcpy(name,fname);cout<<’?’;}};intmain(){Namenames[3]={Name("張三"),Name("李四")};return0:}運(yùn)行此程序輸出符號(hào)?的個(gè)數(shù)是()。A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類Name有兩個(gè)構(gòu)造函數(shù),在默認(rèn)構(gòu)造函數(shù)中,給字符數(shù)組name賦空值,并輸出一個(gè)?;在帶有字符指針的構(gòu)造函數(shù)中,把字符指針fname所指的字符串賦給字符數(shù)組name,并輸出一個(gè)?。所以在主函數(shù)中,定義了Name的三個(gè)對(duì)象,name[0]、name[1]、name[2],在創(chuàng)建這三個(gè)對(duì)象時(shí),會(huì)調(diào)用構(gòu)造帶參數(shù)的函數(shù)對(duì)前兩個(gè)對(duì)象賦值,調(diào)用默認(rèn)的構(gòu)造函數(shù)把name[2]的值賦為空值。這時(shí)會(huì)輸出三個(gè)“?”符號(hào)。32、已知表達(dá)式++a中的“++”是作為成員函數(shù)重載的運(yùn)算符,則與++a等效的運(yùn)算符函數(shù)調(diào)用形式為()。A、a.operator++(1)B、operator++(a)C、operator++(a,1)D、a.operator++()標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要是對(duì)運(yùn)算符重載的考查?!?+”實(shí)現(xiàn)增加1,所以除了8之外的另一個(gè)參數(shù)默認(rèn)為1。33、若在表達(dá)式y(tǒng)/x中,"/"是作為成員函數(shù)重載的運(yùn)算符,則該表達(dá)式還可以表示為()。A、x.operator/(y)B、operator/(x,y)C、y.operator/(x)D、operator/(y,x)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:運(yùn)算符函數(shù)的函數(shù)名是由運(yùn)算符前加關(guān)鍵字operator構(gòu)成的。所以當(dāng)“/”作為運(yùn)算符重載后,其格式為operator/。所以其作為成員函數(shù)調(diào)用時(shí)的格式為y.operator/(x)。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共23題,每題1.0分,共23分。)1、關(guān)鍵字unsigned不能修飾的類型是()。A、charB、intC、floatD、longint標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:實(shí)型常量指的是float和double兩種數(shù)據(jù)類型,而signed和unsigned只對(duì)整型數(shù)起作用,用于確定它們的數(shù)據(jù)范圍(例如16位系統(tǒng)中,一個(gè)signedint是-32768~32767,而unsignedint是0~65535)。unsigned對(duì)浮點(diǎn)數(shù)是無(wú)意義的。2、在一個(gè)容量為15的循環(huán)隊(duì)列中,若頭指針front=6,尾指針rear=9,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:循環(huán)隊(duì)列中,rear表示尾指針,front表示頭指針,當(dāng)有元素入隊(duì)時(shí),rear=rear+1,而元素出隊(duì)的時(shí)候,frontfront+l,當(dāng)rear值大于front值時(shí),隊(duì)列中的元素個(gè)數(shù)為rear—front,當(dāng)rear的值小于front時(shí),列隊(duì)中的元素個(gè)數(shù)為rear—front+m(m表示隊(duì)列的容量)。3、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是()。A、a[2]="WIN"B、strcpy(a[2],"WIN")C、a[2][3]=’W’D、a[0][1]=a[0][1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要是對(duì)字符數(shù)組的考查。選項(xiàng)A中a[2]為一個(gè)地址,所以不能用等號(hào)進(jìn)行賦值操作。4、下列字符串中,不可以用做C++標(biāo)識(shí)符的是()。A、y2006B、_TEST_HC、ReturnD、switch標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查c++標(biāo)識(shí)符的命名規(guī)則,其規(guī)則有如下幾點(diǎn):①所有標(biāo)識(shí)符必須由字母、數(shù)字或下畫線組成,且必須由字母或下畫線開(kāi)頭;②所有標(biāo)識(shí)符不能使用C++已有的關(guān)鍵字;③大、小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符。選項(xiàng)C中雖然return是關(guān)鍵字,但因首字母大、小寫不同,也可用于標(biāo)識(shí)符,但不建議使用。故答案為D。5、已知遞歸函數(shù)fun的定義如下:intfun(intn){if(n<=1)return1;//遞歸結(jié)束情況elsereturnn*fun(n.2);//遞歸}則函數(shù)調(diào)用語(yǔ)句fun(5)的返回值是()。A、5B、12C、15D、30標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:遞歸函數(shù)fun被定義為含有參數(shù)intn,返回整型。其中fun函數(shù)遞歸調(diào)用本身,當(dāng)n=1時(shí),fun返回1,如果大于1那么執(zhí)行n*fun(n-2)。所以,當(dāng)n等于5時(shí),執(zhí)行5*fun(3);當(dāng)3時(shí)繼續(xù)調(diào)用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案為15。6、軟件測(cè)試的目的是()。A、評(píng)估軟件可靠性B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、改正程序中的錯(cuò)誤D、發(fā)現(xiàn)程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件測(cè)試的目的是為了發(fā)現(xiàn)程序中的錯(cuò)誤,而軟件調(diào)試是為了更正程序中的錯(cuò)誤。7、下列字符串中,正確的C++標(biāo)識(shí)符是()。A、foo-1B、2bC、newD、_256標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言中標(biāo)識(shí)符的定義。標(biāo)識(shí)符由字母、數(shù)字或下劃線構(gòu)成,但第一個(gè)字符必須是字母或下劃線;標(biāo)識(shí)符中大小寫字母是不同的;用戶定義標(biāo)識(shí)符時(shí),不允許采用系統(tǒng)的關(guān)鍵字。8、下列描述中正確的是A、為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系B、表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成若干數(shù)據(jù)項(xiàng)C、一個(gè)關(guān)系的屬性名表稱為關(guān)系模式D、一個(gè)關(guān)系可以包括多個(gè)二維表標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:為了建立一個(gè)關(guān)系,首先要指定關(guān)系的屬性,所以選項(xiàng)A是錯(cuò)誤的。表示關(guān)系的二維表中各元組的每一個(gè)分量必須是不可分的基本數(shù)據(jù)項(xiàng),所以選項(xiàng)B是錯(cuò)誤的。在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成_維表,而一個(gè)二維表就是一個(gè)關(guān)系,所以選項(xiàng)D足錯(cuò)誤的。一個(gè)關(guān)系的屬性名表稱為該關(guān)系的關(guān)系模式,其記法為:<關(guān)系名>(<屬性名1>,<屬性名2>,…,<屬性名n>)。9、假設(shè)函數(shù)fun已經(jīng)定義,其原型為“voidfun(inta,intb—7,char*p="**");”下列函數(shù)調(diào)用中錯(cuò)誤的是()。A、fun(5)B、fun(5,8)C、fun(6,"##")D、fun(0,0,"==")標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)函數(shù)fun()的定義,其前兩個(gè)形參為整型變量,第三個(gè)形參為字符型變量。所以在調(diào)用時(shí),必須符合形參的數(shù)據(jù)類型,而選項(xiàng)C)的第二個(gè)實(shí)參的數(shù)據(jù)類型為字符串,不符合第二個(gè)形參的數(shù)據(jù)類型。10、有如下函數(shù)定義:voidfunc(inta,int&b){a++;b++;)若執(zhí)行代碼段:intx=0,y=1;func(x,y);則變量x和y的值分別是()。A、0和1B、1和1C、0和2D、1和2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)參數(shù)的傳遞方式。此題中形參a是普通參數(shù),即傳值調(diào)用,函數(shù)中對(duì)a增1不會(huì)影響到實(shí)參x的值;形參b是傳址調(diào)用,函數(shù)中對(duì)b增l同時(shí)會(huì)改變實(shí)參y的值。故最終結(jié)果是0和2。11、有如下類定義:classAA{inta:Public:intgetRef()const{return&a;}//①intgetValue()const{returna;}//②voidset(intn)const{a=n;}//③friendvoidshow(AAaa)const{cout<<a;)//④};其中的四個(gè)函數(shù)定義中正確的是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查了常成員函數(shù)和友元函數(shù)的概念。選項(xiàng)A中,getRef()函數(shù)的返回值和函數(shù)函數(shù)類型不符,故錯(cuò)誤;C選項(xiàng)中set()常成員函數(shù)改變了數(shù)據(jù)成員的值,這是不允許的:D選項(xiàng)中show()函數(shù)被同時(shí)定義成友元函數(shù)和常成員函數(shù)是錯(cuò)誤的。12、派生類的成員函數(shù)不能訪問(wèn)基類的()。A、公有成員和保護(hù)成員B、公有成員C、私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問(wèn)。派生類對(duì)基類的各個(gè)成員的訪問(wèn)能力與繼承方式無(wú)關(guān),其成員不能訪問(wèn)基類中的私有成員,可以訪問(wèn)基類的公有成員和保護(hù)成員。13、有如下程序:classBase{public:intdata;};classDerived1:publicBase{};classDerived2:protectedBase{};intmain(){Derived1d1;Derived2d2;d1.data=0:∥①d2.data=0;//②return0;}下列關(guān)于程序編譯結(jié)果的描述中,正確的是()。A、①②皆無(wú)編譯錯(cuò)誤B、①有編澤錯(cuò)誤,②無(wú)編譯錯(cuò)誤C、①無(wú)編譯錯(cuò)誤,②有編譯錯(cuò)誤D、①②皆有編譯錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:保護(hù)繼承的類Dervied2不能訪問(wèn)基類Base中的公共數(shù)據(jù)成員data。14、若MyClass是一個(gè)類名,且有如下語(yǔ)句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的語(yǔ)句序列所定義的類對(duì)象的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C1、*C2、C3是3個(gè)MyClass對(duì)象,C4是MyClass對(duì)象的引用,它是對(duì)象C1的別名。15、生成派生類對(duì)象時(shí),派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)的條件是()。A、無(wú)需任何條件B、基類中顯示定義了構(gòu)造函數(shù)C、派生類中顯式定義了構(gòu)造函數(shù)D、派生類構(gòu)造函數(shù)明確調(diào)用了基類構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)榕缮悘幕愔欣^承,它含有基類中的數(shù)據(jù)成員和函數(shù)成員,所以當(dāng)生成派生類對(duì)象時(shí),能無(wú)條件的調(diào)用基類的構(gòu)造函數(shù)。16、在一個(gè)抽象類中,一定包含有()。A、虛函數(shù)B、純虛函數(shù)C、模板函數(shù)D、重載函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:擁有純虛函數(shù)的類叫做抽象類,所以抽象類中必然包含有虛函數(shù)。17、有如下程序:#includeusingnamespacestd;classGA{public;virtualintf0{return1;}};classGB:publicGA{public;virtualintf(){return2;}};voidshow(GAg){cout<A、1111B、1211C、1112D、1212標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查派生類與虛函數(shù)的考查。由主函數(shù)main入手,其中分別定義了類GA和GB的對(duì)象a和b。首先,執(zhí)行參數(shù)a的show函數(shù)調(diào)用,其中的輸出語(yǔ)句為調(diào)用GA類中的f()虛函數(shù),返回1。同理display(a)函數(shù)輸出1。show(b)函數(shù)中調(diào)用的為GA中的f()函數(shù),display(b)調(diào)用GA中f()函數(shù),返回1,display(b)調(diào)用GB中的f()函數(shù)返回2。所以最后輸出為1112。18、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。A、cout>>’A’表達(dá)式可輸出字符AB、eof()函數(shù)可以檢測(cè)是否到達(dá)文件尾C、對(duì)磁盤文件進(jìn)行流操作時(shí),必須包含頭文件fstreamD、以ios_base::out模式打開(kāi)的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:Cout是一個(gè)標(biāo)準(zhǔn)輸出流對(duì)象。>>稱之為提取運(yùn)算符,它的功能是從輸入流中提取數(shù)據(jù)賦值給一個(gè)變量。<<為插入運(yùn)算符,其功能是把表達(dá)式的值插入到輸出流中。當(dāng)系統(tǒng)執(zhí)行cout<<x操作時(shí),首先根據(jù)x值的類型調(diào)用相應(yīng)的插入運(yùn)算符重載器函數(shù),把x的值傳送給對(duì)應(yīng)的形參,接著執(zhí)行函數(shù)體,把x的值輸出到顯示器屏幕上,在當(dāng)前屏幕光標(biāo)位置處顯示出來(lái),然后返回ostream流,以便繼續(xù)使用插入運(yùn)算符輸出下一個(gè)表達(dá)式的值。對(duì)于本題來(lái)說(shuō),要輸出字符‘A’的值應(yīng)該寫成cout<’A’,因而選項(xiàng)A)是錯(cuò)誤的。19、有如下程序:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){cout<<setw(10)<<setfill(’x’)<<setprecision(8)<<left;cout<<12.3456793<<_________<<98765;return0;}若程序的輸出是12.345679x98765xxxxx,則劃線處缺失的部分是()。A、setw(10)B、setfill(’x’)C、setprecision(8)D、right標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)程序輸出的結(jié)果最后5個(gè)位置用x進(jìn)行填充,又因?yàn)閟etw(10)設(shè)置輸出的寬度效果只對(duì)一次輸出有效。所以劃線處應(yīng)該填寫setw(10)。20、對(duì)于語(yǔ)句cout<<end<<x;中的各個(gè)組成部分,下列敘述中錯(cuò)誤的是()。A、cout是一個(gè)輸出流對(duì)象B、end1的作用是輸出回車換行C、x是一個(gè)變量D、<<稱作提取運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言的輸出流。符號(hào)“<<”是預(yù)定義插入符,提取運(yùn)算符是“>>”。21、已知表達(dá)式++a中的’’++"是作為成員函數(shù)重載的運(yùn)算符,則與++a等效的運(yùn)算符函數(shù)調(diào)用形式為()。A、a.operator++(1)B、operator++(a)C、operator++(a,1)D、a.operator++()標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要是對(duì)運(yùn)算符重載的考查。“++”實(shí)現(xiàn)增加1,所以除了a之外的另一個(gè)參數(shù)默認(rèn)為1。22、下列關(guān)于賦值運(yùn)算符“=”重載的敘述中,正確的是()。A、賦值運(yùn)算符只能作為類的成員函數(shù)重載B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制”功能C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對(duì)象作為形參D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:賦值運(yùn)算符“=”只能作為成員函數(shù)重載。23、有如下程序:#include<iostrearn>usingnamespacestd;intmain(){cout.fill(’*’);cout.width(6);cout.fill(’#’);cout<<123<<endl;return0;}執(zhí)行后的輸出結(jié)果是()。A、###123B、123###C、***123D、123***標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是I/O格式化輸出。函數(shù)width(intn)設(shè)置輸入輸出寬度,當(dāng)實(shí)際數(shù)據(jù)寬度小于制定的寬度時(shí),多余的位置用填充字符填滿;當(dāng)實(shí)際數(shù)據(jù)寬度大于設(shè)置的寬度時(shí),仍按實(shí)際寬度輸出;函數(shù)fill(charc)用來(lái)設(shè)置填充字符。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列選項(xiàng)可以做C++標(biāo)識(shí)符的是()。A、_256B、fxt/pigC、deleteD、5char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:標(biāo)識(shí)符的命名規(guī)則:①所有標(biāo)識(shí)符必須由一個(gè)字母(a~z或A~Z)或下劃線()開(kāi)頭;②標(biāo)識(shí)符的其他部分可以用字母、下劃線或數(shù)字(0~9)組成;③大小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符,如gout和Cout。2、下列枚舉類型的定義中,包含枚舉值3的是()。A、enumtest{RED,YELLOW,BLUE,BLACK);B、enumtest{RED,YELLOW=4,BLUE,BLACK};C、enumtest{RED=-1,YELLOW,BLUE,BLACK);D、enumtest{RED,YELLOW=6,BLUE,BLACK};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:聲明枚舉類型的語(yǔ)法格式為:enum<類型名>{<枚舉值表>};<枚舉值表>包含多個(gè)枚舉值,它們用逗號(hào)隔開(kāi),每個(gè)枚舉值就是一個(gè)枚舉常量。枚舉值有兩種定義形式:一是<值名>;二是<值名>=<整型常量>。關(guān)于枚舉類型有以下4點(diǎn)說(shuō)明:①一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚舉值代表一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0,1,…n-1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚舉值賦的整型常量值應(yīng)從左到右遞增。④枚舉類型的聲明也可作為組聲明若干整型符號(hào)常量的方法。也就是說(shuō),把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)枚舉值合在一起定義成一個(gè)枚舉類型。對(duì)于本題來(lái)說(shuō),在選項(xiàng)A中,對(duì)4個(gè)枚舉值沒(méi)有賦常量值,所以它們從左到右與整數(shù)0,1,2,3相對(duì)應(yīng)。因而選項(xiàng)A為正確選項(xiàng)。3、對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。A、隊(duì)頭指針是固定不變的B、隊(duì)頭指針一定大于隊(duì)尾指針C、隊(duì)頭指針一定小于隊(duì)尾指針D、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置。循環(huán)隊(duì)列的主要操作是:入隊(duì)運(yùn)算和退隊(duì)運(yùn)算。每進(jìn)行一次入隊(duì)運(yùn)算,隊(duì)尾指針就進(jìn)一。每進(jìn)行一次退隊(duì)運(yùn)算,隊(duì)頭指針就進(jìn)一。當(dāng)rear或front等于隊(duì)列的長(zhǎng)度加1時(shí),就把rear或front值置為1。所以在循環(huán)隊(duì)列中,隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針。4、下列敘述中正確的是()。A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、棧與隊(duì)列都是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。5、下列敘述中正確的是A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空問(wèn)一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、上述三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的,各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。所以每個(gè)元素只存儲(chǔ)其值就可以了,而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域:另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。6、軟件生命周期可分為定義階段、開(kāi)發(fā)階段和維護(hù)階段,下面不屬于開(kāi)發(fā)階段任務(wù)的是()。A、測(cè)試B、設(shè)計(jì)C、可行性研究D、實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用退役的過(guò)程。其中,定義階段包括可行性研究與計(jì)劃制定和需求分析。測(cè)試、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)屬于開(kāi)發(fā)階段。7、設(shè)表的長(zhǎng)度為n。在下列結(jié)構(gòu)所對(duì)應(yīng)的算法中,最壞情況下時(shí)間復(fù)雜度最低的是A、堆排序B、有序鏈表查找C、希爾排序D、循環(huán)鏈表中尋找最大項(xiàng)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在循環(huán)鏈表中尋找最大項(xiàng)算法是,首先取出第一個(gè)數(shù)作為最大數(shù),然后和后面的所有項(xiàng)進(jìn)行比較查找。囚此,比較次數(shù)為n-1。8、數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。A、控制流B、事件驅(qū)動(dòng)C、模塊調(diào)用D、數(shù)據(jù)流標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。其中帶箭頭的線段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。9、下列說(shuō)法中錯(cuò)誤的是()。A、公有繼承時(shí)基類中的public成員在派生類中仍是public的B、公有繼承時(shí)基類中的private成員在派生類中仍是private的C、私有繼承時(shí)基類中的public成員在派生類中是private的D、保護(hù)繼承時(shí)基類中的public成員在派生類中是protected的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是繼承時(shí)基類成員屬性改變。選項(xiàng)B中,公有繼承時(shí)基類中的private成員在派生類中不是private的,而是不可訪問(wèn)的。所以選項(xiàng)B錯(cuò)誤;其他選項(xiàng)敘述均正確。10、下列給字符數(shù)組進(jìn)行初始化中,正確的是()。A、chars1[]="12345abcd";B、chars2131="xyz";C、chars3[][3]={’a’,’x’,’y’};D、chars412131={"xyz","mnp"};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中定義二維數(shù)組時(shí)并賦值,則數(shù)組的行數(shù)可以省略不寫。選項(xiàng)A)、B)、D)均是字符字符串初始化。。11、若實(shí)體A和B是一對(duì)多的聯(lián)系,實(shí)體B和C是一對(duì)一的聯(lián)系,則實(shí)體A和C的聯(lián)系是()。A、—對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于B和C有一一對(duì)應(yīng)的聯(lián)系,而A和B只間有一對(duì)多的聯(lián)系,則通過(guò)關(guān)系之間的傳遞,則A和C之間也是一對(duì)多的聯(lián)系。12、下列語(yǔ)句中錯(cuò)誤的是()。A、constinta;B、constinta=10;C、constint*point=0;D、constint*point=newint(10;)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)鍵字const聲明符號(hào)常量的同時(shí)必須為其賦初值。13、有如下程序:#includeusingnamespacestd;intmain(){charstr[100],*p;cout<<"Pleaseinputastring:";cin;str;p=str;for(inti=0;*p!=ˊ\0ˊ;p++,i++);cout<<"i"<A、7B、12C、13D、100標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類型為char,因此輸入的數(shù)據(jù)是“從第一個(gè)非空白字符開(kāi)始到下一個(gè)空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefgabcd,其中abcdefg后有空格。所以輸入后str中的字符串為“abcdefg”:主函數(shù)中接下來(lái)for語(yǔ)句的作用是計(jì)算字符串p的長(zhǎng)度,故最終輸出字符串“abcdefg”的長(zhǎng)度7。14、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語(yǔ)句中輸出結(jié)果不是2的是()。A、cout<<*arr+1<<endl;B、cout<<*(arr+1)<<endl;C、cout<<arr[1]<<endl;D、cout<<*art<<endl;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D中,輸出*arr的值就是數(shù)組art[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組art[5]的第二元素2。15、已知枚舉類型聲明語(yǔ)句為:enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};則下列說(shuō)法中錯(cuò)誤的是()。A、枚舉常量YELLOW的值為1B、枚舉常量RED的值為6C、枚舉常量BLACK的值為10D、枚舉常量WHITE的值為1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語(yǔ)法形式為:enurn類型名{枚舉值表}。需注意的是:當(dāng)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0、1、2、3…n-1對(duì)應(yīng);若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。16、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是符號(hào)常量的概念。符號(hào)常量必須在聲明的同時(shí)賦初值,故選項(xiàng)B錯(cuò)誤;選項(xiàng)c定義的是一個(gè)指向常量的指針變量,即通過(guò)指針不能改變它所指向的內(nèi)容,而它自己的內(nèi)容是可以改變的,C選項(xiàng)正確。17、有如下程序:#include<iostream>usingnamespacestd;classXA{inta;public:staticintb;XA(intaa):a(aa){b++;}~XA(){}intget(){returna;}};intXA::b=0;intmain()XAd1(2),d2(3);cout<<d1.get()+d2.get()+XA::b<<endl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、5B、6C、7D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:執(zhí)行XA類的實(shí)例變量d1(2)時(shí),成員函數(shù)d1.get()的返回值等于2,XA.b的值等于1,執(zhí)行XA類的實(shí)例變量d2(3)時(shí),成員函數(shù)d1.get()的返回值等于3,XA.b的值等于2,所以輸出結(jié)果為2+3+2=7。18、關(guān)于關(guān)鍵字class和typename,下列表述中正確的是()。A、程序中的typename都可以替換為classB、程序中的class都可以替換為typenameC、在模板形參表中只能用typename來(lái)聲明參數(shù)的類型D、在模板形參表中只能用class或typename來(lái)聲明參數(shù)的類型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是class和typename兩個(gè)關(guān)鍵字。關(guān)鍵字class除了能用來(lái)定義類以外還能用來(lái)聲明模板的虛擬類型參數(shù)。在用作聲明虛擬類型參數(shù)時(shí)typename與class可以互換,但不能使用t)rpename來(lái)定義類;在模板形參表中除了可以用typename和class聲明虛擬類型參數(shù)外,還可以使用普通類型聲明常規(guī)函數(shù),故選項(xiàng)C錯(cuò)誤。19、已知類Myclass的定義如下classMyClass{public:voidfunction1(MyClass&c){cout<<c.data;}staticvoidfunction2(MyClass&c){cout<<c.data;}voidfunction3(){cout<<data;}staricvoidfunction4(){cout<<data;}private:intdata;};其中有編譯錯(cuò)誤的函數(shù)是()。A、function1B、function2C、function3D、function4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:funcyion4()函數(shù)作為類的靜態(tài)成員函數(shù),不能直接訪問(wèn)類中說(shuō)明的非靜態(tài)成員,即cout<<data在編譯時(shí)會(huì)出錯(cuò)。20、關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是()。A、重載函數(shù)的函數(shù)名必須相同B、重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同C、重載函數(shù)的返回值類型必須相同D、重載函數(shù)的函數(shù)體可以有所不同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載。在C++語(yǔ)言中,允許定義一系列函數(shù)名相同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。21、在公有繼承的情況下,允許派生類直接訪問(wèn)的基類成員包括()。A、公有成員B、公有成員和保護(hù)成員C、公有成員、保護(hù)成員和私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問(wèn)?;惖某蓡T有公有、保護(hù)和私有三種訪問(wèn)屬性:類的繼承方式也有公有繼承、保護(hù)繼承和私有繼承三種。無(wú)論那種繼承方式,派生類中的成員都不能訪問(wèn)基類中的私有成員,但可以訪問(wèn)基類中的公有成員和保護(hù)成員。22、下列關(guān)于派生類和基類的描述中,正確的是()。A、派生類成員函數(shù)只能訪問(wèn)基類的公有成員B、派生類成員函數(shù)只能訪問(wèn)基類的公有和保護(hù)成員C、派生類成員函數(shù)可以訪問(wèn)基類的所有成員D、派生類對(duì)基類的默認(rèn)繼承方式是公有繼承標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類不論是采用那種繼承方式繼承基類,它的成員函數(shù)只能訪問(wèn)基類的公有成員和保護(hù)成員。23、虛函數(shù)支持多態(tài)調(diào)用,一個(gè)基類的指針可以指向派生類的對(duì)象,而且通過(guò)這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是指針?biāo)傅膶?shí)際對(duì)象的虛函數(shù)。而非虛函數(shù)不支持多態(tài)調(diào)用。有如下程序:#inc1ude<iostream>usingnamespacestd;c1assBase{public:virtualvoidf(){cout<<"f0+";}voidg(){cout<<"g0+";}};c1assDerived:publicBase{public:Voidg(){cont<<"f+";}voidgo{cout.<<,"g+";}};intmain{Derivedd;Base*p==&d;p—>f();P—>g();retum0;}運(yùn)行時(shí)輸出的結(jié)果是()。A、f+g+B、f0+g+C、f+g0+D、f0+g0+標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)和多態(tài)性。此題中,因?yàn)閒()是虛函數(shù)具有多態(tài)性,所以通過(guò)指針p調(diào)用的f()是派生類Derived中定義的f();而go不是虛函數(shù),通過(guò)指針p調(diào)用的是Base中的g()。24、要利用C++流實(shí)現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是()。A、fstreamB、istrearaC、ostreamD、iomanip標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:要使用setw、fixed等操作符,須包含iomanip這個(gè)文件。25、模板對(duì)類型的參數(shù)化提供了很好的支持,因此()。A、類模板的主要作用是生成抽象類B、類模板實(shí)例化時(shí),編譯器將根據(jù)給出的模板實(shí)參生成一個(gè)類C、在類模板中的數(shù)據(jù)成員都具有同樣類型D、類模板中的成員函數(shù)都沒(méi)有返回值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查了類模板的概念。在定義對(duì)象的過(guò)程中,系統(tǒng)會(huì)自動(dòng)地根據(jù)需要生成相應(yīng)的類定義,這種依據(jù)類模板生成具體類的過(guò)程稱為類模板的實(shí)例化。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共22題,每題1.0分,共22分。)1、下列符號(hào)中,正確的C++標(biāo)識(shí)符是()。A、enumB、100bitC、s-1D、int標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言中標(biāo)識(shí)符的概念。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格;標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于編譯系統(tǒng)的限制一般不超過(guò)31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的:定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。2、下列敘述中正確的是()。A、在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化B、在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化C、在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化D、上述三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧跟隊(duì)列不同,元素只能在棧頂壓入或彈出,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化,遵循后進(jìn)先出的規(guī)則。3、下列選項(xiàng)中,正確的C++表達(dá)式是()。A、counter++3B、element3+C、a+=bD、’a’=b標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中由一個(gè)或多個(gè)操作數(shù)與操作符連接而成的有效運(yùn)算式稱為表達(dá)式。選項(xiàng)C是C++的合法表達(dá)式。4、下列敘述中正確的是()。A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、上述三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的,各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。所以每個(gè)元素只存儲(chǔ)其值就可以了,而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。5、對(duì)下列二叉樹(shù)進(jìn)行前序遍歷的結(jié)果是()。A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZ標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二叉樹(shù)前序遍歷的簡(jiǎn)單描述:若二叉樹(shù)為空,則結(jié)束返回;否則:①訪問(wèn)根結(jié)點(diǎn);②前序遍歷左子樹(shù);③前序遍歷右子樹(shù)。可見(jiàn),前序遍歷二叉樹(shù)的過(guò)程是一個(gè)遞歸的過(guò)程。根據(jù)題目中給出的二叉樹(shù)的結(jié)構(gòu)可知前序遍歷的結(jié)果是ABDYECFXZ。6、在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分法查找只需比較log2n次,而順序查找需要比較n次。7、在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠A、對(duì)象的繼承B、對(duì)象的多態(tài)C、對(duì)象的封裝D、對(duì)象的分類標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)象的封裝性是指從外部看只能看到對(duì)象的外部特征,即只需知道數(shù)據(jù)的取值范圍和可以對(duì)該數(shù)據(jù)施加的操作,而不需要知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見(jiàn)的。從外面不能直接使用對(duì)象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。8、Sample是一個(gè)類,執(zhí)行下面語(yǔ)句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是()。Samplea[2],*P=newSample;A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中,聲明一個(gè)類對(duì)象時(shí),編譯程序需要調(diào)用類的構(gòu)造函數(shù)為對(duì)象分配存儲(chǔ)空間,進(jìn)行必須的初始化。在本題的這條語(yǔ)句中,聲明了一個(gè)Sample類型的包含2個(gè)數(shù)組元素的數(shù)組a[2],一個(gè)指向類Sample對(duì)象的指針P,所以Sample類的構(gòu)造函數(shù)共調(diào)用了3次。9、有如下類聲明:classMyBASE{intk:public:voidset(intn){k=n;)intgetOconst{retumk;}};classMyDERIVED:protectedMyBASE{protected:intj;public:voidset(intm,intn){MyBASE::set(m);j=n;}intgetoconst{returnMyBASE::get0+j;}};則類MyDERIVED中保護(hù)的數(shù)據(jù)成員和成員函數(shù)的個(gè)數(shù)是()。A、4B、3C、2D、1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生與繼承中的訪問(wèn)權(quán)限。protected派生:private->不可見(jiàn):protected->priVate;public一>protected。10、在下列橫線處應(yīng)添加的語(yǔ)句是()。classBase{public:voidfun(){cout<<"Base::fun"<<endl;}};classDerived:publicBase{public:voidfun(){//顯示調(diào)用基類的fun函數(shù)cout<<"Derived::fun"<<endl;}};A、Derived::funB、Base::fun();C、Pubic::funD、fun();標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是成員函數(shù)的調(diào)用。因?yàn)闄M線處的作用是調(diào)用基類的fun函數(shù),又因?yàn)榕缮愔幸灿衒un()函數(shù),所以必須對(duì)fun()函數(shù)加以限定,即Base::fun();。11、下面描述中不屬于數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn)的是A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨(dú)立性高標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)系統(tǒng)的基本特點(diǎn)有數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。12、下列關(guān)于C++函數(shù)的說(shuō)明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語(yǔ)句必須是return語(yǔ)句C、標(biāo)準(zhǔn)C++要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型D、編譯器會(huì)根據(jù)函數(shù)的返回值類型和參數(shù)表來(lái)區(qū)分函數(shù)的不同重載形式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是有關(guān)函數(shù)的概念。內(nèi)聯(lián)函數(shù)是在函數(shù)定義之前加關(guān)鍵字inline來(lái)聲明的函數(shù),而不是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù),故選項(xiàng)A錯(cuò)誤;無(wú)返回值的函數(shù)在執(zhí)行完最后一條語(yǔ)句后,會(huì)自動(dòng)返回而不必加入return語(yǔ)句,故選項(xiàng)B錯(cuò)誤;如果函數(shù)只是返回值類型不同,而其它完全相同,則不能作為函數(shù)重載來(lái)使用,故選項(xiàng)D錯(cuò)誤。13、有如下程序:#includeusingnamespacestd;classA{public:staticinta;voidinit(){a=1;}A(inta=2){int();a++;}};intA::a=0:Aobj;intmain(){cout<A、0B、1C、2D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題實(shí)際考查的是變量作用域的屏蔽效應(yīng)。在C++中,當(dāng)標(biāo)識(shí)符的作用域發(fā)生重疊時(shí),在一個(gè)函數(shù)中聲明的標(biāo)識(shí)符可以屏蔽函數(shù)外聲明的標(biāo)識(shí)符或全局標(biāo)識(shí)符。聲明類A的全局對(duì)象時(shí),構(gòu)造函數(shù)首先調(diào)用int函數(shù),但由于靜態(tài)成員變量a被構(gòu)造函數(shù)內(nèi)部的形參a所屏蔽所以a++改變的是形參a的值,對(duì)靜態(tài)成員變量a沒(méi)有影響。14、有如下程序:#inc1ude<iostream>usingnamespacestd;classObj{staticinti;public:Obj(){i++;)一Obj(){i一一;)staticintgetVal(){returni;)};intObj::i=0;voidf(){Objob2;cout<<o(jì)b2.getVal();}intmain(){Objobl;f();Obj*ob3=newObj;cout<<o(jì)b3一>getVal();deleteob3;cout<<Obj::getVal();return0;}程序的輸出結(jié)果是()。A、232B、231C、222D、221標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是靜態(tài)成員。本題中,Obj類定義了一個(gè)靜態(tài)數(shù)據(jù)成員i,并初始化為0.在主函數(shù)中,首先定義了1個(gè)該類對(duì)象obl,所以構(gòu)造函數(shù)被調(diào)用1次,i加l;然后調(diào)用函數(shù)f(),該函數(shù)中又定義了一個(gè)對(duì)象ob2,此時(shí)i再次加l變?yōu)?,然后通過(guò)函數(shù)getVal()輸出i的值2。f()函數(shù)結(jié)束,ob2變量被釋放,故析構(gòu)函數(shù)被調(diào)用了1次,i變成1;回到主函數(shù)中,又動(dòng)態(tài)創(chuàng)建了1個(gè)對(duì)象并讓ob3指向它,此后i變成2并輸出。最后釋放動(dòng)態(tài)創(chuàng)建的對(duì)象i變?yōu)?,輸出1。故最終的輸出結(jié)果是221。15、有如下程序:#include<iostream>usingnamespacestd;classBase{public:voidfun(){cout<<"Base::fun"<<endl;}};classDerived:publicBase{public:voidfun(){___________cout<<"Derived::fun"<<endl;}};intmain(){Derivedd;d.fun();return0;}已知其執(zhí)行后的輸出結(jié)果為:Base::funDerived::fun則程序中下劃線處應(yīng)填入的語(yǔ)句是()。A、Base.fun();B、Base::fun();C、Base->fun();D、fun();標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是繼承的使用。分析題目可知,橫線處應(yīng)填入對(duì)基類成員函數(shù)fun()的調(diào)用語(yǔ)句,此處只能使用作用域運(yùn)算符“::”才能調(diào)用到基類的同名函數(shù),故選項(xiàng)B正確。16、有如下程序:#includeusingnamespacestd;classC1{public:~C1(){cout<<1;}};classC2:publicC1{public:~C2(){cout<<2;}};intmain(){C2cb2;C1*cb1:return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、121B、21C、211D、12標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義C2類的對(duì)象,當(dāng)程序結(jié)束時(shí),首先調(diào)用C2類的析構(gòu)函數(shù)~C2,輸出2,再調(diào)用C1類的析構(gòu)函數(shù)~C1,輸出1。所以程序運(yùn)行的結(jié)果就是21。17、下列關(guān)于析構(gòu)函數(shù)的描述中,錯(cuò)誤的是()。A、析構(gòu)函數(shù)可以重載B、析構(gòu)函數(shù)由系統(tǒng)自動(dòng)調(diào)用C、每個(gè)對(duì)象的析構(gòu)函數(shù)只被調(diào)用一次D、每個(gè)類都有析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般情況下,析構(gòu)函數(shù)在對(duì)象的生存周期即將結(jié)束的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。在調(diào)用完成之后,對(duì)象也就消失了,相應(yīng)的內(nèi)存空間也被釋放。析構(gòu)函數(shù)沒(méi)有參數(shù),因此析構(gòu)函數(shù)不能重載,一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)。18、有如下程序:#include<iostream>usingnamespacestd;classXA{ima;public:staticintb;XA(intaa):a(aa){b++;}intgetA(){returna;}};intXA::b=0;intmain(){XAd1(4),d2(5);cout<<d1.getA()+d2.getA()+XA::b+d1.b<<end1;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、9B、11C、13D、15標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在類XA的構(gòu)造函數(shù)中,定義了用成員變量a的值初始化變量aa,同時(shí)靜態(tài)成員變量b值加1。所以當(dāng)在主main函數(shù)中定義類xA的對(duì)象d1(4)后,變量b的等于1,定義對(duì)象d2(5)后,變量b的值等于2,所以表達(dá)式d1.getA()+d2.getA()::b+d1.b等于4+5+1+2+1=13。19、下列關(guān)于運(yùn)算符重載的敘述中,正確的是()。A、通過(guò)運(yùn)算符重載機(jī)制可以為C++語(yǔ)言擴(kuò)充新的運(yùn)算符B、運(yùn)算符重載的作用是使已有的運(yùn)算符作用于類的對(duì)象C、重載運(yùn)算符的操作數(shù)類型可以全部為基本類型D、所有運(yùn)算符都可以被重載標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符重載就是賦予已有的運(yùn)算符多重含義。通過(guò)重新定義運(yùn)算符,使它能夠用于特定類的對(duì)象執(zhí)行特定的功能,這便增強(qiáng)了C++語(yǔ)言的擴(kuò)充能力。運(yùn)算符重載要注意以下3點(diǎn):①不能重載的運(yùn)算符包括::,.,.*,?:②必須重載為成員函數(shù)的運(yùn)算符包括[],(),->,=;③在類成員函數(shù)中重載運(yùn)算符是不允許返回引用的,會(huì)出現(xiàn)“返回局部變量的地址”警告。20、下面程序中對(duì)一維坐標(biāo)點(diǎn)類Point進(jìn)行運(yùn)算符重載#inc1ude<iostream>usingnamespacestd;c1assPoint{public:Point(intval){x=val,)Point&operator++(){x++;return*this;}Pointoperator++(int){Pointold=*this;H(*this);returnold;)IntGetX()const{returnx,}private:intX;);intmain(){Pointa(10);count<<(++a).GetX();cout<<a++.GetX();retum0;}編譯和運(yùn)行情況是()。A、運(yùn)行時(shí)輸出1011B、運(yùn)行時(shí)輸出1111C、運(yùn)行時(shí)輸出1112D、編譯有錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是重載增l運(yùn)算符“++”。此題中,Point&operator++()重載的是前綴形式,而Pointoperator++(int)重載的是后綴形式。所以主函數(shù)中第1條輸出語(yǔ)句輸出11,此時(shí)a.x的值為11;第2條輸出語(yǔ)句,首先創(chuàng)建了一個(gè)Point對(duì)象old保存自身,然后通過(guò)語(yǔ)句++(*this);調(diào)用前綴+的重載函數(shù),因?yàn)榉祷刂凳歉淖兦氨4娴膐ld對(duì)象,故仍輸出11。21、模板對(duì)類型的參數(shù)化提供了很好的支持,因此()。A、類模板的主要作用是生成抽象類B、類模板實(shí)例化時(shí),編譯器將根據(jù)給出的模板實(shí)參生成一個(gè)類C、在類模板中的數(shù)據(jù)成員都具有同樣類型D、類模板中的成員函數(shù)都沒(méi)有返回值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查了類模板的概念。在定義對(duì)象的過(guò)程中,系統(tǒng)會(huì)自動(dòng)地根據(jù)需要生成相應(yīng)的類定義,這種依據(jù)類模板生成具體類的過(guò)程稱為類模板的實(shí)例化。22、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。A、cout>>’A’表達(dá)式可輸出字符AB、eof()函數(shù)可以檢測(cè)是否到達(dá)文件尾C、對(duì)磁盤文件進(jìn)行流操作時(shí),必須包含頭文件fstreamD、以iosbase::out模式打開(kāi)的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cout是一個(gè)標(biāo)準(zhǔn)輸出流對(duì)象。>>稱之為提取運(yùn)算符,它的功能是從輸入流中提取數(shù)據(jù)賦值給一個(gè)變量。<<為插入運(yùn)算符,其功能是把表達(dá)式的值插入到輸出流中。當(dāng)系統(tǒng)執(zhí)行cout<<x操作時(shí),首先根據(jù)x值的類型調(diào)用相應(yīng)的插入運(yùn)算符重載器函數(shù),把x的值傳送給對(duì)應(yīng)的形參,接著執(zhí)行函數(shù)體,把x的值輸出到顯示器屏幕上,在當(dāng)前屏幕光標(biāo)位置處顯示出來(lái),然后返回ostream流,以便繼續(xù)使用插入運(yùn)算符輸出下一個(gè)表達(dá)式的值。對(duì)于本題來(lái)說(shuō),要輸出字符‘A’的值應(yīng)該寫成cout<<’A’。因而選項(xiàng)A)是錯(cuò)誤的。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共19題,每題1.0分,共19分。)1、下列關(guān)于棧的敘述中,正確的是A、棧底元素一定

溫馨提示

  • 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)論