版權(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ī)試(選擇題)模擬試卷5(共9套)(共337題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共34題,每題1.0分,共34分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹(shù)D、帶鏈棧標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:樹(shù)是簡(jiǎn)單的非線性結(jié)構(gòu),所以二叉樹(shù)作為樹(shù)的一種也是一種非線性結(jié)構(gòu)。2、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按先進(jìn)后出的原則組織數(shù)據(jù)的。隊(duì)列是先進(jìn)先出的原則組織數(shù)據(jù)。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ì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu)所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針有時(shí)也可能小于隊(duì)尾指針。4、算法的空間復(fù)雜度是指()。A、算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間。所以選擇A。5、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。A、可封裝B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句,所以選擇A。6、軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:該圖是()。A、N―S圖B、PAD圖C、程序流程圖D、E―R圖標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:N―s圖提出了用方框圖來(lái)代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對(duì)。PAD圖是問(wèn)題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形表示工具,所以B不對(duì)。E―R圖是數(shù)據(jù)庫(kù)中的用于表示E―R模型的圖示工具,所以D不對(duì)。根據(jù)圖中所示表示方法是進(jìn)行軟件詳細(xì)設(shè)計(jì)時(shí)使用的程序流程圖。7、數(shù)據(jù)庫(kù)管理系統(tǒng)是()。A、操作系統(tǒng)的一部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)D、一種操作系統(tǒng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。是一種在操作系統(tǒng)之上的系統(tǒng)軟件。8、在E―R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是()。A、橢圓形B、矩形C、菱形D、三角形標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在E―R圖中實(shí)體集用矩形,屬性用橢圓,聯(lián)系用菱形。9、下列各組類型聲明符中,含義相同的一組是()。A、unsignedlongim和longB、signedshortint和shortC、unsignedshort和shortD、shortint和int標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查整型變量的類型,A、c選項(xiàng)中前者為無(wú)符號(hào)的,后者為有符號(hào)的,D選項(xiàng)中shortint為2個(gè)字節(jié),int為4個(gè)字節(jié)。10、必須用一對(duì)大括號(hào)括起來(lái)的程序段是()。A、switch語(yǔ)句中的cIise標(biāo)號(hào)語(yǔ)句B、if語(yǔ)句的分支C、循環(huán)語(yǔ)句的循環(huán)體D、函數(shù)的函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查c++基本控制結(jié)構(gòu),A、B、c三個(gè)選項(xiàng)中的大括號(hào)不是必須的,而D選項(xiàng)中的函數(shù)體必須使用大括號(hào)。11、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>1;i-=2)cout<<’*’;A、24B、25C、26D、50標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查for循環(huán)語(yǔ)句,題目中每執(zhí)行完循環(huán)體后,i都會(huì)減2,那么只有50到2之間的偶數(shù)才能輸出“*”,所以總共輸出25次。12、下列關(guān)于運(yùn)算符重載的敘述中,錯(cuò)誤的是()。A、有的運(yùn)算符可以作為非成員函數(shù)重載B、所有的運(yùn)算符都可以通過(guò)重載而被賦予新的含義C、不得為重載的運(yùn)算符函數(shù)的參數(shù)設(shè)置默認(rèn)值D、有的運(yùn)算符只能作為成員函數(shù)重載標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:重載運(yùn)算符的規(guī)則如下:①c++不允許用戶自己定義新的運(yùn)算符,只能對(duì)已有的C++運(yùn)算符進(jìn)行重載;②C++不能重載的運(yùn)算符只有5個(gè);③重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性;⑤重載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的自定義類型的對(duì)象一起使用,至少應(yīng)有一個(gè)是類對(duì)象,即不允許參數(shù)全部是C++的標(biāo)準(zhǔn)類型。所以答案為B。13、對(duì)C++編譯器區(qū)分重載函數(shù)無(wú)任何意義的信息是()。A、參數(shù)類型B、參數(shù)個(gè)數(shù)C、返回值類型D、常成員函數(shù)關(guān)鍵字const標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)的實(shí)現(xiàn)。每種實(shí)現(xiàn)對(duì)應(yīng)一個(gè)函數(shù)體,這些函數(shù)的名字相同,其參數(shù)類型或個(gè)數(shù)不同,但不能出現(xiàn)函數(shù)返回值類型不同而參數(shù)類型和個(gè)數(shù)完全相同的重載。所以本題答案為c。14、運(yùn)算符重載時(shí)不需要保持的性質(zhì)是()。A、操作數(shù)個(gè)數(shù)B、操作數(shù)類型C、優(yōu)先級(jí)D、結(jié)合性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:重載運(yùn)算符的規(guī)則如下:①c++不允許用戶自己定義新的運(yùn)算符,只能對(duì)已有的c++運(yùn)算符進(jìn)行重載;②C++不能重載的運(yùn)算符只有5個(gè);③重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性;⑤重載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的自定義類型的對(duì)象一起使用,至少應(yīng)有一個(gè)是類對(duì)象,即不允許參數(shù)全部是C++的標(biāo)準(zhǔn)類型。所以答案為B。15、下列關(guān)于函數(shù)的描述中,錯(cuò)誤的是()。A、函數(shù)可以沒(méi)有返回值B、函數(shù)可以沒(méi)有參數(shù)C、函數(shù)可以是一個(gè)類的成員D、函數(shù)不能被定義為模板標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)的基礎(chǔ)知識(shí),函數(shù)可以沒(méi)有返回值,沒(méi)有參數(shù),也可以是一個(gè)類的成員,函數(shù)可以定義為模板,即模板函數(shù)。16、關(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ù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)的實(shí)現(xiàn)。每種實(shí)現(xiàn)對(duì)應(yīng)一個(gè)函數(shù)體,這些函數(shù)的名字相同,其參數(shù)類型或個(gè)數(shù)不同,但不能出現(xiàn)函數(shù)返回值類型不同而參數(shù)類型和個(gè)數(shù)完全相同的重載。所以本題答案為C。17、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。A、運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無(wú)參數(shù),重載的是一元運(yùn)算符B、一元運(yùn)算符只能作為成員函數(shù)重載C、二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)D、C++中可以重載所有的運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:運(yùn)算符重載為成員函數(shù)時(shí),會(huì)省略一個(gè)參數(shù),如果無(wú)參數(shù),表明是一元運(yùn)算符。一元運(yùn)算符既可以作為成員函數(shù)重載,也可以作為非成員函數(shù)重載。二元運(yùn)算符如果作為非成員函數(shù),則參數(shù)表中必須有兩個(gè)參數(shù)。C++有5個(gè)運(yùn)算符不能重載,它們是:(成員訪問(wèn)運(yùn)算符)、*(成員指針訪問(wèn)運(yùn)算符)、::(域運(yùn)算符)、sizeof(長(zhǎng)度運(yùn)算符)和?:(條件運(yùn)算符)。故本題答案為A。18、對(duì)于一個(gè)類定義,下列敘述中錯(cuò)誤的是()。A、如果沒(méi)有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)B、如果沒(méi)有定義缺省的構(gòu)造函數(shù),編譯器一定將生成一個(gè)缺省的構(gòu)造函數(shù)C、如果沒(méi)有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù)D、如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù),如果沒(méi)有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù),如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)。如果沒(méi)有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)。19、下列關(guān)于類定義的說(shuō)法中,正確的是()。A、類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B、類成員的缺省訪問(wèn)權(quán)限是保護(hù)的C、數(shù)據(jù)成員必須被聲明為私有的D、成員函數(shù)只能在類體外進(jìn)行定義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類的成員的缺省訪問(wèn)權(quán)限是私有的,數(shù)據(jù)成員可以是私有,可以是公用的,也可以是受保護(hù)的。類的成員函數(shù)可以在類內(nèi)定義。20、如果派生類以protected方式繼承基類,則原基類的protected成員和public成員在派生類中的訪問(wèn)屬性分別是()。A、public和publicB、public和pmtectedC、protected和publicD、protected和protected標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問(wèn)屬性,在受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,所以本題答案為D。21、下列有關(guān)繼承和派生的敘述中,正確的是()。A、派生類不能訪問(wèn)基類的保護(hù)成員B、作為虛基類的類不能被實(shí)例化C、派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)D、虛函數(shù)必須在派生類中重新實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:派生類可以訪問(wèn)基類的保護(hù)成員,而不能訪問(wèn)基類的私有成員。作為虛基類的類可以被實(shí)例化。虛函數(shù)如果沒(méi)有派生類中重新實(shí)現(xiàn),那么仍然使用基類的成員函數(shù)。22、有如下類定義:classAA{inta;public:AA(intn=0):a(n){}};classBB:public從{public:BB(intn)};其中橫線處缺失的部分是()。A、:a(n)||B、:AA(n)||C、{a(n);|D、{a=n;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問(wèn)屬性。公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問(wèn)屬性,其私有成員仍為基類私有,本題中若要給派生類繼承下來(lái)基類的私有成員賦值,那么只能調(diào)用基類的成員函數(shù)來(lái)對(duì)它賦值,所以本題答案為B。23、有如下程序:#includeusingnamespacestd;classCD{public:一CD(){cout<<‘C’;}private:charname[80];};intmain(){CDa,*b,d[2];return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、CCCCB、CCCC、CCD、C標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查類的析構(gòu)函數(shù),題目中定義了類的一個(gè)對(duì)象a,對(duì)象指針*b,對(duì)象數(shù)組d[2],當(dāng)程序執(zhí)行完后,析構(gòu)函數(shù)執(zhí)行了3次,輸出“CCC”,對(duì)象指針不會(huì)執(zhí)行析構(gòu)函數(shù)。所以本題答案為B。24、有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(){++count;}~MyClass(){一一count;}staticintgetCount(){returncount;}private:staticintcount;};intMyClass::count=0;immain(){MyClassobj;cout<A、121B、232C、221D、122標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查靜態(tài)數(shù)據(jù)成員。靜態(tài)數(shù)據(jù)成員在內(nèi)存中只占一份空間,靜態(tài)數(shù)據(jù)成員屬于類,即使不定義對(duì)象,也會(huì)給靜態(tài)數(shù)據(jù)成員分配空間,可以被引用。本題中先是定義了一個(gè)對(duì)象obj,執(zhí)行構(gòu)造函數(shù)使得靜態(tài)數(shù)據(jù)成員count變?yōu)榱?,然后又定義了指針對(duì)象,執(zhí)行構(gòu)造函數(shù)后,count變?yōu)榱?,釋放指針后,執(zhí)行析構(gòu)函數(shù),使得count變?yōu)榱?。所以本題答案為A。25、有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(intX):val(X){}voidPrint()const{cout<<“const:val=”<A、val=10const:val:20B、const:val=10const:val=20C、const:val=10val=20D、val=10val=20標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查常對(duì)象、常成員函數(shù)及構(gòu)造函數(shù)。常對(duì)象只能調(diào)用常成員函數(shù),普通對(duì)象調(diào)用普通成員函數(shù)。所以本題中objl為常對(duì)象,執(zhí)行objl.print()后,會(huì)執(zhí)行常構(gòu)造函數(shù),輸出const:val=10;而obj2為普通對(duì)象,執(zhí)行obj2.print()時(shí),會(huì)執(zhí)行默認(rèn)構(gòu)造函數(shù),輸出val=20。故答案為C。26、有如下程序:橢ncludeusingnamespacestd;classPart{public:Part(intx=0):val(X){tout<A、123321B、213312C、213D、123123標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查帶參數(shù)的構(gòu)造函數(shù)。本題中定義了一個(gè)對(duì)象obj,那么執(zhí)行其構(gòu)造函數(shù),初始化p1,p2的順序是由聲明這兩個(gè)成員的順序決定的,而不是由參數(shù)化列表順序決定,所以本題中,會(huì)先執(zhí)行p1,輸出2,然后執(zhí)行p2輸出1,然后輸出3,最后一次輸出312。所以本題答案為B。27、有如下程序:#includeusingnamespacestd;classBase{public:Base(intx=0){cout<A、0B、1C、01D、001標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類的對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù),對(duì)象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。所以本題中定義了一個(gè)對(duì)象d,先執(zhí)行基類的構(gòu)造函數(shù)輸出0,因?yàn)榕缮愔械乃接袛?shù)據(jù)成員為Base,所以還會(huì)執(zhí)行一次基類的構(gòu)造函數(shù)輸出0,最后執(zhí)行派生類的構(gòu)造函數(shù)輸出1,所以本題答案為D。28、下列代碼段中聲明了3個(gè)類:classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關(guān)于這些類之間關(guān)系的描述中,錯(cuò)誤的是()。A、類Person是類Undergraduate的基類B、類Undergraduate從類Student公有繼承C、類Student是類Person的派生類D、類Undergraduate是類Person的派生類標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查基類和派生類的邏輯關(guān)系,屬于基礎(chǔ)知識(shí),如果沒(méi)有指明哪種繼承方式,那么默認(rèn)為私有繼承,所以B選項(xiàng)錯(cuò)誤。29、有如下程序:#includeusingnamespacestd;classBase{public:voidoutput(){cout<<1;}virtualvoidPrint(){cout<<‘B’;}};classDerived:publicBase{public:voidoutput(){tout<<2;}voidPrint(){cout<<‘D’;}};intmain(){Base*ptr=newDerived;ptr->output();ptr->Print();deleteptr;rettLrn0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、1BB、1DC、2BD、2D標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù),本題中定義了一個(gè)指向派生類對(duì)象的基類指針ptr,執(zhí)行ptr一>output后,會(huì)執(zhí)行基類的output函數(shù),輸出1,由于Print是虛函數(shù),所以ptr一>Print()會(huì)執(zhí)行派生類的Print,即輸出D,所以本題答案為B。30、有如下程序:#inchdeusingnamespacestd;classB{public:virtualvoidshow(){cout<<“B”;}};classD:publicB{public:voidshow(){tout<<“D”;}};voidfunl(B*ptr){ptr一>show();}voidfun2(B&ref){ref..show();}voidfun3(Bb){b.show();}intmain(){Bb,*p=newD;Dd;funl(p);fun2(b);fun3(d);deletep;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BBBB、BBDC、DBBD、DBD標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù),本題中定義類B的對(duì)象b、對(duì)象指針木p=newD以及類D的對(duì)象d;執(zhí)行funl會(huì)調(diào)用派生類的show函數(shù),因?yàn)閟how函數(shù)為虛函數(shù),而調(diào)用fun2、fun3仍然為基類的show函數(shù),所以本題答案為C。31、C++中的模板包括()。A、對(duì)象模板和函數(shù)模板B、對(duì)象模板和類模板C、函數(shù)模板和類模板D、變量模板和對(duì)象模板標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)模板和類模板,所以答案為c。32、下列關(guān)于類模板的模板參數(shù)的敘述中,錯(cuò)誤的是()。A、模板參數(shù)可以作為數(shù)據(jù)成員的類型B、模板參數(shù)可以作為成員函數(shù)的返回類型C、模板參數(shù)可以作為成員函數(shù)的參數(shù)類型D、模板參數(shù)不能作為成員函數(shù)的局部變量的類型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查類模板的概念和定義,模板參數(shù)可以作為成員函數(shù)的局部變量的類型。33、下列關(guān)于C++預(yù)定義流對(duì)象的敘述中,正確的是()。A、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象B、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類C、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象D、eout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,cout是C++預(yù)定義的標(biāo)準(zhǔn)輸出流對(duì)象。34、有如下語(yǔ)句序列:charstr[10];cin>>str;當(dāng)從鍵盤輸入“Ilovethisgame”時(shí),str中的字符串是()。A、“Ilovethisgame”B、“Ilovethi”C、“Ilove”D、“I”標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,cin用來(lái)接收字符串時(shí),遇“空格”、“TAB”、“回車”時(shí)都會(huì)結(jié)束。所以本題答案為D。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共36題,每題1.0分,共36分。)1、設(shè)c1和c2是類MyClass的對(duì)象,若將后綴運(yùn)算符“++”作為類MyClass的友元函數(shù)重載,運(yùn)算符“,作為類MyClass的成員函數(shù)重載,則表達(dá)式e2*c1++等價(jià)于()。A、c1.operaor++(0).operator*(c2)B、c2.operator*(c1.operator++(0))C、c2.operator*(operator++(c1,0))D、operator*(operator++(c1,0),c2)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:友元函數(shù)不是類的成員函數(shù),所以友元函數(shù)的調(diào)用不需要使用類對(duì)象;另外運(yùn)算符重載不改變運(yùn)算符的優(yōu)先級(jí),所以表達(dá)式c2*c1++先執(zhí)行c1++;為了區(qū)分運(yùn)算符的前綴和后綴形式,規(guī)定后綴式運(yùn)算符函數(shù)接受一個(gè)額外的int型形參,使用時(shí)可以提供0作為形參的實(shí)參,所以c1++相當(dāng)于叩erator++(c1,0),c2*c1++相當(dāng)于c2.operator*(opemtor++(c1,0));答案為C。2、有如下類定義:classMyClass{public:MyClass(doubled=O.0):val(d){}_____________//前綴自增運(yùn)算符++的聲明private:doubleval;};若要使語(yǔ)句序列MyClassx(2.1),y;y=++x;能夠正常運(yùn)行,橫線處的語(yǔ)句應(yīng)為()。A、MyClass&operator++();B、MyClass&operator++(int);C、MyClassoperator++(int);D、MyClassoperator++();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:橫線處填寫的語(yǔ)句,是重載前綴自增運(yùn)算符++的函數(shù)聲明,為了與內(nèi)置類型一致,前綴自增運(yùn)算符應(yīng)該返回自增對(duì)象的引用,選項(xiàng)C、D錯(cuò)誤;自增運(yùn)算符是一元運(yùn)算符,即操作數(shù)是類對(duì)象,所以參數(shù)列表為空,選項(xiàng)B錯(cuò)誤;答案為A。3、有如下程序:#includeusingnamespacestd;voidfun(int&a,_________){intc;c=a;a=b;b=c;}intmain(){intx,y;x=1;y=2;fun(x,y);eout<A、intbB、int*bC、im&bD、b標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:main函數(shù)中定義兩個(gè)整型變量x=1,y=2,由輸出x,y的結(jié)果為21,可知函數(shù)fun的功能是交換兩個(gè)實(shí)參的值,由于函數(shù)fun中未使用指針類型的變量,所以若想通過(guò)函數(shù)fun交換實(shí)參的值,形參類型必然為引用類型,橫線處語(yǔ)句為int&b,答案為C。4、下列關(guān)于this指針的描述中,正確的是()。A、類的非const成員函數(shù)都有this指針B、類的const成員函數(shù)都有this指針C、任何靜態(tài)成員函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)都有this指針標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中,靜態(tài)成員是類的組成部分,不是任何對(duì)象的組成部分,因此靜態(tài)成員函數(shù)沒(méi)有this指針,類的非const成員函數(shù)包括靜態(tài)成員函數(shù),所以選項(xiàng)A、C錯(cuò)誤;答案選B或D。5、有如下類定義:classSample{public:Sample(intx):ref(x){}//1private:Sample(){ref=0;}//2staticintval=5;//3constintref;//4};上述程序段中,有四個(gè)語(yǔ)句編號(hào)分別為1、2、3、4,其中錯(cuò)誤的語(yǔ)句是()。A、1,3B、2,4C、2,3D、3,4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++中,不能在類中直接初始化const數(shù)據(jù)成員,因?yàn)樵陬悰](méi)有被初始化時(shí),成員是不存在的,所以const數(shù)據(jù)成員必須在構(gòu)造函數(shù)初始化列表中初始化,語(yǔ)句1、4正確,語(yǔ)句2錯(cuò)誤;另外類的static數(shù)據(jù)成員不能在類定義中初始化,也不能通過(guò)類的構(gòu)造函數(shù)進(jìn)行初始化,而必須在類定義體的外部定義,語(yǔ)句3錯(cuò)誤;答案為C。6、有如下頭文件:intn();staticintf2();classMA{public:intf=;();staticimf4();friendintf1();friendstaticintf2();};在所描述的函數(shù)中,具有隱含的this指針的是()。A、f1B、f2C、f3D、f4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:類的非靜態(tài)成員函數(shù)都隱含this指針,靜態(tài)成員是類的組成部分,不是任何對(duì)象的組成部分,因此靜態(tài)成員函數(shù)沒(méi)有this指針,選項(xiàng)D錯(cuò)誤;友元函數(shù)不屬于成員函數(shù),沒(méi)有this指針,選項(xiàng)A、B錯(cuò)誤;答案為C。7、有如下類定義:classB{private:voidfunl(){}protected:voidfun2(){}public:voidfun3(){}};classD:publicB{protected:voidfun4(){}};若obj是類D的對(duì)象,則下列語(yǔ)句中正確的是()。A、obj.fun1();B、obj.fun2();C、obj.fun4();D、obj.fun3();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對(duì)基類成員的訪問(wèn)權(quán)限由基類成員的訪問(wèn)標(biāo)識(shí)和類派生列表中的訪問(wèn)標(biāo)識(shí)共同決定的,類D公有繼承類B,所以類B中成員函數(shù)funl對(duì)類D不可見(jiàn);成員函數(shù)fun2為類D的protected成員;成員函數(shù)fun3為類D的public成員;綜上所述funl,fun2,fun4對(duì)類D對(duì)象obj均不可見(jiàn),fun3對(duì)obj可見(jiàn),答案為D。8、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的表述中,錯(cuò)誤的是()。A、在基類中沒(méi)有定義構(gòu)造函數(shù),那么在派生類中也可不定義構(gòu)造函數(shù);B、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù);C、在建立派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù);D、在銷毀派生類對(duì)象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)。標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對(duì)象的撤銷順序與構(gòu)造順序相反:首先運(yùn)行派生類析構(gòu)函數(shù),然后按繼承層次依次向上調(diào)用各基類析構(gòu)函數(shù),這樣做是為了每次析構(gòu)函數(shù)銷毀的都是完整的對(duì)象,選項(xiàng)D錯(cuò)誤,答案為D。9、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無(wú)關(guān)的概念是()。A、重載函數(shù)B、虛函數(shù)C、引用D、指針標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中,實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性必須滿足兩個(gè)條件:1、被調(diào)用的成員函數(shù)為虛函數(shù);2、調(diào)用必須通過(guò)基類類型的引用或指針。選項(xiàng)B、C、D正確;多態(tài)性是虛函數(shù)在運(yùn)行時(shí)期綁定,而重載的函數(shù)是在編譯期綁定,重載主要是為了C++的代碼復(fù)用,與多態(tài)性沒(méi)有關(guān)系;答案為A。10、有如下類聲明:classFin{public:Fin();//①Fin*pf;//②Finf;//③Fin&p;//④};在標(biāo)有數(shù)字的四個(gè)成員聲明中,將產(chǎn)生編譯錯(cuò)誤的是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:只有當(dāng)類定義體完成之后才能定義類,題目中四個(gè)聲明語(yǔ)句位置,F(xiàn)in類未定義完整,屬于不完全類型,此時(shí)數(shù)據(jù)成員只能是指向該類類型的指針或引用,而不能是該類的對(duì)象;語(yǔ)句3會(huì)產(chǎn)生編譯錯(cuò)誤;答案為c。11、下列有關(guān)虛函數(shù)的表述中,錯(cuò)誤的是()。A、在C++中,運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)體現(xiàn)的B、在類聲明中只有加了保留字virtual的成員函數(shù)才是虛函數(shù)C、通過(guò)指針或引用對(duì)虛函數(shù)的調(diào)用稱為多態(tài)調(diào)用D、非多態(tài)調(diào)用總是通過(guò)成員訪問(wèn)運(yùn)算符進(jìn)行的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中,觸發(fā)多態(tài)性必須滿足兩個(gè)條件:1、被調(diào)用函數(shù)為虛函數(shù);2、必須通過(guò)基類類型的引用或指針調(diào)用函數(shù),選項(xiàng)A、C正確;非多態(tài)調(diào)用虛函數(shù)只能通過(guò)類對(duì)象調(diào)用,類對(duì)象調(diào)用虛函數(shù)使用成員訪問(wèn)運(yùn)算符“.”進(jìn)行,選項(xiàng)D正確;一旦函數(shù)在基類中被聲明為虛函數(shù),那它在后續(xù)的派生類中都是虛函數(shù),可以不使用virtual關(guān)鍵字,派生類無(wú)法改變?cè)摵瘮?shù)是虛函數(shù)這一事實(shí);選項(xiàng)B錯(cuò)誤;答案為B。12、有如下類定義:classBasel{intm;public:Base(intm1)_m(m1){}};classBase2{intn;public:Base(imn1):n(n1){}};classDerived:publicBase2,publicBasel{intq;public:Derived(intm1,intn1,intq1):q(q1),Basel(m1),Base2(n1){};};在創(chuàng)建一個(gè)Derived對(duì)象時(shí),數(shù)據(jù)成員lIl、rl和q被初始化的順序是()。A、m、n、qB、n、m、qC、q、m、nD、q、n、m標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中,派生類構(gòu)造函數(shù)都是先調(diào)用基類構(gòu)造函數(shù),再根據(jù)聲明次序定義數(shù)據(jù)成員,所以Derired構(gòu)造函數(shù)的初始化列表中,最后初始化q;另外對(duì)于多繼承,派生類的構(gòu)造函數(shù)初始化列表中,基類構(gòu)造函數(shù)是按照基類在派生類的派生列表中出現(xiàn)的次序調(diào)用的;由于Derived類的派生列表中,Base2存前,所以應(yīng)該先調(diào)用Base2的構(gòu)造函數(shù);這樣Derived類中初始化順序?yàn)椋夯怋ase2、基類Basel、數(shù)據(jù)成員q;所以數(shù)據(jù)成員m、n、q的初始化順序?yàn)椋簄、m、q,答案為B。13、有如下類聲明:classMau{intk;constintm;public:Mau(intk1,intm1);};則構(gòu)造函數(shù)Mau的下列定義中,有編譯錯(cuò)誤的是()。A、Mau::Mau(intk1,intm1):k(k1){m=m1;}B、Mau::Mau(intk1,intm1):m(m1){k=k1;}C、Mau::Mau(intk1,intm1):k(k1),m(m1){}D、Mau::Mau(intk1,intm1):m(m1),k(k1){}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中,常數(shù)據(jù)成員必須在構(gòu)造函數(shù)的初始化列表中完成初始化,答案為A。14、有如下類定義:classPa{intk;public:Pa():k(0){//①Pa(intn):k(11){}//②Pa(Pa&p):k(p.k){}//③};若執(zhí)行語(yǔ)句Paa[]={Pa(1),Pa(2)};則在標(biāo)有號(hào)碼的構(gòu)造函數(shù)中,被調(diào)用的包括()。A、①B、①和②C、②D、②和③標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)象數(shù)組,就是數(shù)組元素是類對(duì)象,不管對(duì)象數(shù)組在哪里定義,如果沒(méi)有顯式的調(diào)用構(gòu)造函數(shù)初始化,編譯器將使用類的默認(rèn)構(gòu)造函數(shù)初始化對(duì)象元素,這里程序中顯式的使用構(gòu)造函數(shù)Pa(intn)初始化各個(gè)元素,所以被調(diào)用的構(gòu)造函數(shù)只有Pa(intn),沒(méi)有調(diào)用默認(rèn)構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù),答案為C。15、有如下程序:#includeusingnamespaeestd;classAA{public:AA(){eout<<"A";}~AA(){tout<<"~A";}};classBB{public:BB(){eout<<"B";}~BB(){tout<<"~B";}f;intmain(){AA*pa=newAA:BBb;deletepa;return0;}運(yùn)行這個(gè)程序的輸出是()。A、AB~A~BB、BA~A~BC、AB~B~AD、BA~B~A標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:main()函數(shù)中首先動(dòng)態(tài)創(chuàng)建AA類對(duì)象,調(diào)用AA類構(gòu)造函數(shù),輸出“A”,創(chuàng)建BB類對(duì)象,調(diào)用BB類構(gòu)造函數(shù),輸出“B”,使用delete顯式銷毀AA類對(duì)象,調(diào)用AA類析構(gòu)函數(shù),輸出“~A”,程序結(jié)束時(shí),銷毀BB類對(duì)象,編譯器自動(dòng)調(diào)用BB類析構(gòu)函數(shù),輸出“~B”,整個(gè)程序輸出結(jié)果為:“AB~A~B”,答案為A。16、有如下程序:#includeusingnamespaeestd;classShape{//圖形類public://圖形繪制函數(shù)(用顯示字母模擬)virtualvoiddraw()eonst{tout<<’S’;}};elassTriangle:publicShape{//三角形類public:voiddraw()eonst{eout<<’T’;}};voidplot(Shape*s){s->draw();}intmain(){Shapes;Trianglet;plot(&s);plot(&t);s=t:s.draw();return0;}運(yùn)行這個(gè)程序的輸出是()。A、STTB、STSC、TSSD、TTT標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:main函數(shù)中,plot函數(shù)的參數(shù)通過(guò)Shape對(duì)象引用和Triangle對(duì)象引用來(lái)調(diào)用虛函數(shù)draw(),由于形參s是基類引用,所以符合多態(tài)性調(diào)用,程序?qū)⒃谶\(yùn)行時(shí)期根據(jù)s引用對(duì)象的類型決定調(diào)用哪個(gè)draw(),這里實(shí)參s是Shape類類型,因而調(diào)用Shape類的draw()函數(shù),實(shí)參t是Triangle類類型,因而調(diào)用Triangle類的draw()函數(shù),輸出:“ST”;程序接著將派生類對(duì)象t賦給s,由于基類Shape沒(méi)有顯式的定義賦值運(yùn)算符和將派生類對(duì)象作為參數(shù)的基類構(gòu)造函數(shù),因而編譯器自動(dòng)產(chǎn)生基類Shape的賦值運(yùn)算符operator=(Shape&a),語(yǔ)句s=t將調(diào)用賦值運(yùn)算符,a引用派生類對(duì)象t,完成賦值,此時(shí)s包含t中基類的副本,而t中剩下部分將被忽略,語(yǔ)句s.draw()將調(diào)用Shape類中的draw()函數(shù),輸出“s”,程序輸出結(jié)果為“STS”。答案為B。17、有如下的類聲明:#includeusingnamespacestd;classAA{public:virtualvoiddisp(){eout<<’A’;}};classBB:publicAA{public:voiddisp(){eout<<’B’;}};classCC:publicBB{public:virtualvoiddisp(){eout<<’C’;}};voidplot(AAa){a.disp();}intmltinf){BBbb;CCCC;BB&rb=CC:plot(bb);CC.disp();rb.disp();return0;}運(yùn)行這個(gè)程序的輸出是()。A、ACCB、ACBC、BCCD、BCB標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序定義了類AA,成員函數(shù)disp是虛函數(shù);類BB公有繼承AA,重新定義了函數(shù)disp,由虛函數(shù)的性質(zhì)可知,即使BB中未使用virtual修飾disp,函數(shù)disp仍然是虛函數(shù);類CC公有繼承了BB,同樣重新定義了虛函數(shù)disp;main函數(shù)中定義了BB類對(duì)象bb,CC類對(duì)象cc,BB類引用rb,rb被初始化指向cc;然后調(diào)用plot函數(shù),由于plot函數(shù)的形參是AA類對(duì)象a,不滿足多態(tài)性中調(diào)用者必須要是引用或者指針類型的條件,所以無(wú)論實(shí)參是bb或cc,a.disp()調(diào)用的都是AA類中的函數(shù)disp,輸出“A”;cc.disp()顯然調(diào)用的是類cc中的函數(shù),輸出“c”;rb.disp(),由于rb是引用,指向的是類CC對(duì)象cc,所以這里由多態(tài)性司知調(diào)用的是cC類中的disp函數(shù),輸出“CC”;程序輸出結(jié)果為:“ACC”;答案為A。18、若目前E盤根目錄下不存在data.txt文件,則下列打開(kāi)文件方式不會(huì)自動(dòng)創(chuàng)建data.txt文件的是()。A、ifstreamfin;fin.open("e:\data.txt",ios_base::in);B、fstreamrio;rio.open("e:\data.txt”,ios_base::out);C、ofstreamfout;fout.open("e:\data.txt",ios_base::out);D、ofstreamfout;fout.open("e:\data.txt",ios_base::app);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義文件流對(duì)文件進(jìn)行操作時(shí),需要指定文件模式,選項(xiàng)B、c中,ios_base::out是打開(kāi)文件進(jìn)行寫操作,刪除文件所有數(shù)據(jù),如果文件不存在則創(chuàng)建它,不符合題意;選項(xiàng)D中,ios_base::app是扣開(kāi)文件進(jìn)行寫操作,在文件尾部追加數(shù)據(jù),由于文件與ofstream流關(guān)聯(lián),當(dāng)文件不存在時(shí)創(chuàng)建文件,也不符合題意,選項(xiàng)A正確,ios_base::in是打開(kāi)文件做讀操作,文件不存在時(shí)打開(kāi)文件失敗。答案為A。19、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是()。A、iomanipB、fstreamC、strstreamD、cstdlib標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:iomanip是I/O流控制頭文件;strstream是輸入輸出字符串流頭文件;cstdlib是常用函數(shù)庫(kù),提供一些函數(shù)和符號(hào)常量;選項(xiàng)A、C、D錯(cuò)誤;fstream是輸入輸出文件流頭文件,答案為B。20、下列關(guān)于重載運(yùn)算符錯(cuò)誤的是A、運(yùn)算符::不能被重載B、重載類型轉(zhuǎn)換運(yùn)算符不需要聲明返回值C、-既可以作為一元運(yùn)算符,又可以作為二元運(yùn)算符被重載D、運(yùn)算符[]不能被重載標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查運(yùn)算符重載,重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);不能改變運(yùn)算符的優(yōu)先級(jí)別;不能改變運(yùn)算符的結(jié)合性;重載運(yùn)算符的函數(shù)不能有默認(rèn)值,否則就改變了運(yùn)算符參數(shù)的個(gè)數(shù);不能定義新的運(yùn)算符,不能重載的運(yùn)算符只有5個(gè):.、.*、::、sizeof、?:。所以本題選擇D。21、下列關(guān)于對(duì)象初始化的敘述中,正確的是A、定義對(duì)象的時(shí)候不能對(duì)對(duì)象進(jìn)行初始化B、定義對(duì)象之后可以顯式地調(diào)用構(gòu)造函數(shù)進(jìn)行初始化C、定義對(duì)象時(shí)將自動(dòng)調(diào)用構(gòu)造函數(shù)進(jìn)行初始化D、在一個(gè)類中必須顯式地定義構(gòu)造函數(shù)實(shí)現(xiàn)初始化標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查對(duì)象的定義和對(duì)象的初始化,定義對(duì)象時(shí),自動(dòng)調(diào)用構(gòu)造函數(shù),不需要顯示調(diào)用,所以C選項(xiàng)正確。22、若MyClass為一個(gè)類,執(zhí)行語(yǔ)句"MyClassa[4],*p[5];"時(shí)會(huì)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)是A、2B、4C、5D、9標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù),題中定義了包含4個(gè)元素的一維對(duì)象數(shù)組,而指針數(shù)組不占用空間,所以不調(diào)用構(gòu)造函數(shù),那么構(gòu)造函數(shù)就執(zhí)行4次,答案為B。23、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是A、通過(guò)運(yùn)算符重載不可能在C++中創(chuàng)建新的運(yùn)算符B、賦值運(yùn)算符可以重載為友元函數(shù)C、運(yùn)算符函數(shù)重載為類的成員函數(shù)時(shí),第一操作數(shù)不出現(xiàn)在參數(shù)表中D、重載類型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回類型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查運(yùn)算符重載,重載運(yùn)算符不能定義新的運(yùn)算符,C++規(guī)定=,[],(),->這四個(gè)運(yùn)算符只能被重載為類的非靜態(tài)成員函數(shù),其他的可以被友元重載,主要是因?yàn)槠渌倪\(yùn)算符重載函數(shù)都會(huì)根據(jù)參數(shù)類型或數(shù)目進(jìn)行精確匹配,這四個(gè)不具有這種檢查的功能,用友元定義就會(huì)出錯(cuò),所以本題選擇B。24、下列有關(guān)類繼承的表述中,錯(cuò)誤的是A、繼承可以實(shí)現(xiàn)軟件復(fù)用B、派生類構(gòu)造函數(shù)要負(fù)責(zé)調(diào)用基類的構(gòu)造函數(shù)C、虛基類可以解決由多繼承產(chǎn)生的二義性問(wèn)題D、派生類沒(méi)有繼承基類的私有成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件方面的可重用性是通過(guò)繼承來(lái)實(shí)現(xiàn)的,A選項(xiàng)正確。派生類的構(gòu)造函數(shù)負(fù)責(zé)調(diào)用基類的構(gòu)造函數(shù),B選項(xiàng)正確。虛基類解決了由多繼承產(chǎn)生的二義性問(wèn)題,所以C選項(xiàng)正確。派生類可以繼承基類的私有成員,但是不能直接訪問(wèn),所以D選項(xiàng)錯(cuò)誤。25、在下列關(guān)鍵字中,不能用來(lái)表示繼承方式的是A、privateB、publicC、staticD、protected標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查派生類定義時(shí)使用的關(guān)鍵字,三種繼承方式分別為private、public、protected,而C選項(xiàng)為靜態(tài)聲明關(guān)鍵字,故選擇C。26、有如下兩個(gè)類定義:classXX{private:doublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubley1;protected:doubley2;public:doubley3;};在類YY中保護(hù)成員變量的個(gè)數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類成員的訪問(wèn)屬性,派生類保護(hù)繼承基類,那么基類的公用成員和保護(hù)成員在派生類中成為保護(hù)成員,所以派生類YY總共有3個(gè)保護(hù)成員,C選項(xiàng)正確。27、有如下類定義:classCup{public:voidSetPrice(doubleval=5.8);doubleGetPrice(){returnprice;}doubleGetPrice()const{returnprice;}private:doubleprice;};voidCup::SetPrice(doubleval){price=val;}下列關(guān)于類中成員函數(shù)的敘述中,錯(cuò)誤的是A、成員函數(shù)SetPrice不是內(nèi)聯(lián)函數(shù)B、成員函數(shù)SetPrice的形參val具有默認(rèn)值C、成員函數(shù)GetPrice可以重載D、類中沒(méi)有對(duì)成員函數(shù)GetPrice進(jìn)行重載標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在類體中定義的成員函數(shù),C++系統(tǒng)會(huì)自動(dòng)將它們作為內(nèi)聯(lián)函數(shù)處理,而在類外定義的成員函數(shù),系統(tǒng)并不把它們默認(rèn)為內(nèi)聯(lián)函數(shù),所以SetPrice不是內(nèi)聯(lián)函數(shù),SetPrice的形參val具有默認(rèn)值5.8,類體中有兩個(gè)GetPrice,所以這是對(duì)GetPrice函數(shù)進(jìn)行了重載,D選項(xiàng)錯(cuò)誤。28、有如下程序:#includeusingnamespacestd;classTV{public:TV(ints=41):size(s){}TV(constTV&r):size(r.size){}~TV(){}private:intsize;};TVfun(TV&u){TVt=u;returnt;}intmain(){TVx,y;x=fun(y);return0;}則TV類的復(fù)制構(gòu)造函數(shù)被調(diào)用的次數(shù)是A、1次B、2次C、3次D、4次標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù),是一種特殊的構(gòu)造函數(shù),它由編譯器調(diào)用來(lái)完成一些基于同一類的其他對(duì)象的構(gòu)建及初始化??截悩?gòu)造函數(shù)要調(diào)用基類的拷貝構(gòu)造函數(shù)和成員函數(shù)。本題中調(diào)用fun函數(shù)時(shí)調(diào)用了一次復(fù)制構(gòu)造函數(shù),函數(shù)返回執(zhí)行x=fun(y)時(shí)又調(diào)用了一次復(fù)制構(gòu)造函數(shù),所以總共2次。B選項(xiàng)正確。29、有如下程序:#include#includeusingnamespacestd;classMyBag{public:MyBag(stringbr="ABC"):brand(br){cout<A、MyBagarrays[2];B、MyBag*array[2]=newMyBag[2];C、MyBag*array[2]={MyBag("ABC"),MyBag("ABC")};D、MyBagarray[2]={newMyBag("ABC"),newMyBag("ABC")};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)的應(yīng)用,題目中要求輸出"ABCABC",那么就需要執(zhí)行兩次構(gòu)造函數(shù),只有A選擇可以執(zhí)行兩次構(gòu)造函數(shù),所以A選項(xiàng)正確。30、有如下程序:#include#includeusingnamespacestd;classWheel{public:Wheel(strings="W"):name(s){cout<A、GB、RGC、WRGD、RWG標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義Bicyclebike時(shí),執(zhí)行Wheel的構(gòu)造函數(shù)輸出W,然后執(zhí)行Bicycle的構(gòu)造函數(shù)輸出RG,最終輸出WRG,選項(xiàng)C正確。31、有如下類定義:classFather{//基類public:Father(strings):name(s){}private:stringname;};classMother{//基類public:Mother(strings):name(s){}private:stringname;};___________________________{//Father和Mother的派生類public:Child(strings1,strings2,strings3):Father(s1),Mother(s2),name(s3){}private:stringname;};若派生類Child從基類Father和基類Mother處公有繼承,則橫線處缺失的部分是A、classChildB、classChild:Father,MotherC、classChild:publicFather,MotherD、classChild:publicFather,publicMother標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)派生類同時(shí)繼承兩個(gè)或者多個(gè)基類時(shí)稱為多重繼承,其一般形式為:class派生類名:[繼承方式]基類名1,[繼承方式]基類名2,所以D選項(xiàng)正確。32、有如下類定義:classPoint{public:voidSetX(intxx){x=xx;}protected:voidSetY(intyy){y=yy;}private:intx,y;};classCircle:Point{public:intGetRadius(){returnradius;}private:voidSetRadius(intr){radius=r;}intradius;};派生類Circle中不可訪問(wèn)成員的個(gè)數(shù)為A、2B、3C、4D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類成員的訪問(wèn)屬性,派生類無(wú)論何種繼承,派生類的成員函數(shù)都不能訪問(wèn)基類的私有成員,所以Circle不可訪問(wèn)的個(gè)數(shù)有2個(gè),A選項(xiàng)正確。33、有如下程序:#include#includeusingnamespacestd;classAnimal{public:virtualstringGetType()const{return"Animal";}virtualstringGetVoice()const{return"Voice";}};classDog:publicAnimal{public:stringGetType()const{return"Dog";}stringGetVoice()const{return"Woof";}};classCat:publicAnimal{public:stringGetType()const{return"Cat";}stringGetVoice()const{return"Miaow";}};voidType(Animal&a){cout<A、DogspeakVoice-CatspeakVoiceB、DogspeakWoof-CatspeakMiaowC、AnimalspeakVoice-AnimalspeakVoiceD、AnimalspeakWoof-AnimalspeakMiaow標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查虛函數(shù)的運(yùn)用,本題中定義Dogd;Type(d)時(shí),執(zhí)行類class的Type函數(shù),輸出Dog,然后輸出speak,然后執(zhí)行基類的Speak函數(shù)輸出Voice,最后輸出-,同理cat輸出類似,所以結(jié)果為A選項(xiàng)正確。34、下列關(guān)于模板的表述中,正確的是A、如果一個(gè)類中存在純虛函數(shù),這個(gè)類就是類模板B、函數(shù)模板不能有形式參數(shù)表C、類模板是一種參數(shù)化類型的類,是類的生成器D、類模板中不能包含構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查模板相關(guān)知識(shí),一個(gè)類中存在純虛函數(shù),這個(gè)類不一定就是類模板。函數(shù)模板需要形式參數(shù)表,類模板中可以包含構(gòu)造函數(shù)。所以C選項(xiàng)正確。35、有函數(shù)模板聲明和一些變量定義如下:templateT1sum(T2,T3);doubled1,d2;則下列調(diào)用中,錯(cuò)誤的是A、sum(d1,d2);B、sum(d1,d2);C、sum(d1,d2);D、sum(d1,d2);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)模板的定義和使用,編譯器無(wú)法推演出T1的類型,D選項(xiàng)里沒(méi)有寫明T1的類型,而sum函數(shù)需要T1的類型去特化出一個(gè)函數(shù)能夠處理d1和d2這兩個(gè)參數(shù)的函數(shù)。其他的都可以。36、關(guān)于C++流,下面的表述中正確的是A、利用C++流能夠借助于流對(duì)象進(jìn)行輸入輸出B、利用C++流只能進(jìn)行格式化輸入輸出C、利用C++流只能借助于cin和cout進(jìn)行輸入輸出D、利用C++流只能使用運(yùn)算符>>和<<進(jìn)行輸入輸出標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:輸入輸出流出了cin和cout還有cerr、clog等,所以CD選項(xiàng)錯(cuò)誤,C++流不只是進(jìn)行格式化輸入輸出,所以B選項(xiàng)錯(cuò)誤,A選項(xiàng)正確。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列關(guān)于棧和隊(duì)列的描述中,正確的是()。A、棧是先進(jìn)先出B、隊(duì)列是先進(jìn)后出C、隊(duì)列允許在隊(duì)頭刪除元素D、棧在棧頂刪除元素標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧實(shí)際也是線性表,只不過(guò)是一種特殊的線性表。棧是只能在表的一端進(jìn)行插入和刪除運(yùn)算的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。隊(duì)列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭,允許插入的一端叫做隊(duì)尾。2、已知二叉樹(shù)后序遍歷序列是CDABE,中序遍歷序列是CADEB,它的前序遍歷序列是()。A、ABCDEB、ECABDC、EACDBD、CDEAB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于后序遍歷的最后一個(gè)元素為E,所以E為根結(jié)點(diǎn),所以它的前序遍歷的首個(gè)元素為E,故排除A)和D)選項(xiàng)。由于中序遍歷中,元素B在元素根結(jié)點(diǎn)E的后面,所以B為二叉樹(shù)的右子樹(shù),并且該二叉樹(shù)右子樹(shù)只有一個(gè)元素,所以前序遍歷的最后一個(gè)元素應(yīng)為B,故選項(xiàng)C)為正確選項(xiàng),即該二叉樹(shù)的前序遍歷序列是EACDB。3、在數(shù)據(jù)流圖中,帶有箭頭的線段表示的是()。A、控制流B、數(shù)據(jù)流C、模塊調(diào)用D、事件驅(qū)動(dòng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)流圖中帶箭頭的線段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。4、結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。A、順序結(jié)構(gòu),分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu)B、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)C、分支結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)D、分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu),循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序設(shè)計(jì)語(yǔ)言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。遵循程序結(jié)構(gòu)化的設(shè)計(jì)原則,按結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序易于理解、使用和維護(hù);可以提高編程工作的效率,降低軟件的開(kāi)發(fā)成本。5、下列方法中,不屬于軟件調(diào)試方法的是()。A、回溯法B、強(qiáng)行排錯(cuò)法C、集成測(cè)試法D、原因排除法標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件調(diào)試主要采用以下三種方法:強(qiáng)行排錯(cuò)法:作為傳統(tǒng)的調(diào)試方法,其過(guò)程可概括為設(shè)置斷點(diǎn)、程序暫停、觀察程序狀態(tài)、繼續(xù)運(yùn)行程序。回溯法:該方法適合于小規(guī)模程序的排錯(cuò)、即一旦發(fā)現(xiàn)了錯(cuò)誤,先分析錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。原因排除法:原因排除法是通過(guò)演繹和歸納,以及二分法來(lái)實(shí)現(xiàn)。6、下列選項(xiàng)中,不屬于模塊間耦合的是()。A、內(nèi)容耦合B、異構(gòu)耦合C、控制耦合D、數(shù)據(jù)耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:耦合可以分為下列幾種,它們之間的耦合度由高到低排列:內(nèi)容耦合——若一個(gè)模塊直接訪問(wèn)另一模塊的內(nèi)容,則這兩個(gè)模塊稱為內(nèi)容耦合。公共耦合——若一組模塊都訪問(wèn)同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱為公共耦合。外部耦合——若一組模塊都訪問(wèn)同一全局?jǐn)?shù)據(jù)項(xiàng),則稱為外部耦合。控制耦合——若一模塊明顯地把開(kāi)關(guān)量、名字等信息送入另一模塊,控制另一模塊的功能,則稱為控制耦合。標(biāo)記耦合——若兩個(gè)以上的模塊都需要其余某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)時(shí),不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱為標(biāo)記耦合。數(shù)據(jù)耦合——若一個(gè)模塊訪問(wèn)另一個(gè)模塊,被訪問(wèn)模塊的輸入和輸出都是數(shù)據(jù)項(xiàng)參數(shù),則這兩個(gè)模塊為數(shù)據(jù)耦合。非直接耦合——若兩個(gè)模塊沒(méi)有直接關(guān)系,它們之間的聯(lián)系完全是通過(guò)程序的控制和調(diào)用來(lái)實(shí)現(xiàn)的,則稱這兩個(gè)模塊為非直接耦合,這樣的耦合獨(dú)立性最強(qiáng)。7、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。A、多態(tài)性B、標(biāo)識(shí)惟一性C、封裝性D、耦合性標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:面向?qū)ο笤O(shè)計(jì)方法與面向過(guò)程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。其特點(diǎn)包括:標(biāo)識(shí)惟一性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性好。8、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將.E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù):概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),為了能夠用某一DBMS實(shí)現(xiàn)用戶需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。它包括從E.R圖向關(guān)系模式轉(zhuǎn)換和邏輯模式規(guī)范化及調(diào)整、實(shí)現(xiàn)。9、在一棵二叉樹(shù)上,第5層的結(jié)點(diǎn)數(shù)最多是()。A、8B、9C、15D、16標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì):二叉樹(shù)第i(i>1)層上至多有2i-1</sup>個(gè)結(jié)點(diǎn)。得到第5層的結(jié)點(diǎn)數(shù)最多是16個(gè)。10、下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是()。A、數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題C、數(shù)據(jù)庫(kù)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持D、數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型。數(shù)據(jù)庫(kù)技術(shù)的主要目的是有效地管理和存取大量的數(shù)據(jù)資源,包括:提高數(shù)據(jù)的共享性,使多個(gè)用戶能夠同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù);減小數(shù)據(jù)的冗余,以提高數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開(kāi)發(fā)和維護(hù)代價(jià)。11、以下程序的輸出結(jié)果是()。#includemain(){intb[3][3]={0,1,2,0,1,2,0,1,2),i,j,t=,1;for(i=0;i<3;i++)for([i=i;<=i;j++)t=c+1b[i][b[j][j]];cout<A、2B、3C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序中通過(guò)for二重循環(huán)依次取二維數(shù)組中的數(shù)值進(jìn)行與t的累加。取數(shù)組中的元素為i行和符合循環(huán)條件的b[i][j]列的數(shù)據(jù)。循環(huán)為0,1,2行,對(duì)應(yīng)0,1,2列。即0,1,2。所以1+0+1+24。12、當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說(shuō)明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為()。A、下溢B、上溢C、異常D、溢出標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于頭尾指針不斷前移,超出向量空間。這時(shí)整個(gè)向量空間及隊(duì)列是滿的卻產(chǎn)生了“上溢"現(xiàn)象。13、以下程序的輸出的結(jié)果是()。#includevoidmain(){inti,k,a.[10],p[3];k=5;for(i=0;i<9;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;cout<A、20B、21C、22D、23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中首先在第一個(gè)for循環(huán)中將數(shù)組a每一個(gè)元素賦值為0,1,2,……。然后在第二個(gè)循環(huán)中數(shù)組p的第i元素為a中的第i*(i+1),即0,2,6,第三個(gè)循環(huán)中數(shù)組p中的每個(gè)元素值乘以2,然后加上5,累加。14、以下程序的執(zhí)行結(jié)果是()。#includeintfun(intb[],intn){inti,r=1;for(i=0;iA、5B、6C、7D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序的main函數(shù)入手,調(diào)用fun函數(shù),其中參數(shù)為數(shù)組a和3。fun函數(shù)的功能是for循環(huán)中由第一個(gè)數(shù)組元素開(kāi)始到第三個(gè)元素進(jìn)行累積。15、有如下程序:#includeusingnamespacestd;intmain(){int*p;*p=9;cout<<"Thevalueatp:"<<*p;return0:}編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況是()。A、編譯時(shí)出現(xiàn)語(yǔ)法錯(cuò)誤,不能生成可執(zhí)行文件B、運(yùn)行時(shí)一定輸出:Thevalueatp:9C、運(yùn)行時(shí)一定輸出:Thevalueatp:*9D、運(yùn)行時(shí)有可能出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目程序中“int*p;”是定義了一個(gè)指針變量p,“*p=9;”是將p當(dāng)前指向的指針賦為9。指針p在執(zhí)行這個(gè)賦值操作前并沒(méi)有初始化這個(gè)變量p,所以會(huì)有p未初始化的警告錯(cuò)誤。16、下列有關(guān)指針的用法中,錯(cuò)誤的是()。A、inti;int*p=&i;B、inti;int*p;i=*p;C、int*p;p=0;D、inti=5;int*p;p=&i;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:‘‘inti:,,語(yǔ)句為定義了一個(gè)整型變量i。“int*p”為定義一個(gè)整型指針p。選項(xiàng)A)中的“int*p=&i;”是定義整型指針變量p,并指向整型i的地址。選項(xiàng)B)中“i=*p”語(yǔ)句是將p指向的變量賦值給i,而指針p沒(méi)有初始化,所以選項(xiàng)B)錯(cuò)誤。選項(xiàng)C)中“p=0;”表示p指向0的地址。選項(xiàng)D)中“&i”為取i的地址,并賦值給p。17、如果有以下定義及初始化:inta=3,*p=&a;則由此可以推斷,*p的值是()。A、變量a的值,即3B、變量a的地址值C、變量P的地址值D、無(wú)意義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:題目中的定義初始化是定義一個(gè)整型變量a,初始化為3。而“int*p=&a;”是定義一個(gè)整型指針變量p,將變量a的地址作為指針變量p的初值。*p是指針變量p指向的存儲(chǔ)單元的內(nèi)容,即變量值。所以*p指向a的值3。18、執(zhí)行語(yǔ)句序列intx=1,&y=x;cout<A、x—xB、1—1C、1一0D、異常標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中的“intx=1”定義x為int型變量,并賦值為1。語(yǔ)句“&y=x”中“&”為引用運(yùn)算符,&y=x語(yǔ)句可以理解為y具有x的地址,所以y的值也是1,即輸出為:1-1。19、下列程序輸出的結(jié)果是()。#includefunl(chara,charb){charc;c=a;a=b;b=c;}fun2(char*a,charb){charc;c=*a;*a=b;b=c;}fun3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}voidmain(){chara,b;a=’A’;b=’B’;fun1(a,b);putchar(a);putchar(b);a=’A’;b=’B’;fun2(&a,b);putchar(a);putchar(b);a=’A’;b=’B’;fun3(&a,&b);putchar(a);putchar(b);putchar(’\n’);}A、BABBABB、ABBBBAC、ABBABAD、ABABBA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序中的主函數(shù)main入手,分別調(diào)用fun1,fun2,fun3函數(shù),得到輸出結(jié)果。其中,三個(gè)函數(shù)都是實(shí)現(xiàn)兩個(gè)形參的交換功能,只是參數(shù)傳遞的方式不同,有的是地址,有的是傳值。第一個(gè)函數(shù)中參數(shù)采用的是值傳遞的方式,形參的變化不影響實(shí)參。所以調(diào)用fun1后,實(shí)參a和b并沒(méi)有交換,仍然是AB。第二個(gè)調(diào)用中,實(shí)參a采用的是地址,即傳遞的是地址,所以形參a的改變會(huì)影響實(shí)參a的值,即:BB。同理,調(diào)用fun3后為BA。20、下列程序?qū)、y和z按從小到大的順序排列,橫線處應(yīng)添加語(yǔ)句()。templatevoidfun(){Ta;if(x>y){a=x;x=y;y=a;}if(y>z){a=y;y=z;z=a;}if(x>y){a=x;x=y;y=a;}}A、Tx,Ty,TZB、Tx;y;zC、T&x,T&y,T&zD、T&x,&y,&z標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun的類型為void沒(méi)有任何返回值,函數(shù)中變量的改變,即參數(shù)的改變應(yīng)該影響實(shí)參。應(yīng)該是地址傳遞方式,即把引用型作為函數(shù)形參。類T是類的抽象,可以利用模板建立各種數(shù)據(jù)類型的類。所以補(bǔ)全函數(shù)的定義為“T&x,T&y,T&z”。21、下面c++標(biāo)識(shí)符中正確的是()。A、abeB、3abC、intD、+ab標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++標(biāo)識(shí)符命名的規(guī)則:只能由’a’-’z’、’A’-’Z’、’0’-’9’、’_’等字符組成,且數(shù)字不能開(kāi)頭,不能與系統(tǒng)保留字沖突。22、下列哪項(xiàng)不是面向?qū)ο蟪绦蛟O(shè)計(jì)的主要特征()。A、封裝B、繼承C、多態(tài)D、結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn):標(biāo)識(shí)惟一性,分類性,多態(tài)性,封裝性,模塊獨(dú)立性好。23、已知i=5,j=0,下列各式中運(yùn)算結(jié)果為j=6的表達(dá)式是()。A、j=i+(++j)B、j=j+i++C、j=++i+jD、j=j+++i標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:++在變量前面先執(zhí)行自身加1的運(yùn)算,然后再進(jìn)行其他運(yùn)算。++在變量后面先做其他運(yùn)算,再自身加1。選項(xiàng)D)的運(yùn)算式是(j++)+i,因?yàn)?+的優(yōu)先級(jí)比+高。24、若整型變量a、b、C、d中的值依次為:1、4、3、2。則條件表達(dá)式aA、1B、2C、3D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:酉先把c25、以下程序的輸出的結(jié)果是()。#includevoidmain(){inta,b,c,d(5);c=2,c+=10;a=b=10:a*=2;b/=2;c%=2;cout<A、20,5,0B、20,7,0C、20,5,1D、5,20,0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:c+=10使得c=12;a=b=10,a*=2使得a=20;b/=2,b=10/2,使得b=5;c=12%2=0.所以輸出值20,5,0。26、以下程序的執(zhí)行結(jié)果是()。#includeclassTestClass2{public:TestClass2(){);TestClass2(inti,intj);voidprintb();private:inta,b;};classTestClass1{public:TestClass1(){}TestClass1(inti,intj);voidprinta();pfivate:TestClass2c;};TestClass1::TestClass1(inti,intj):c(i,j){}voidTestClass1::printa(){c.printb();}TestClass2::TestClass2(inti,intj){a=i;b=j;}voidTestClass2::printb(){cout<<"a="<A、a=7,b=8B、a=8,b=7C、a=7,b=9D、a=8,b=9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義了TestClass1的對(duì)象m,其中參數(shù)為7和9。“m.printa();”中TestClass1中printa為“c.printb(),其中c為TestClass2的對(duì)象,所以printb為TestClass2中的“voidTestClass2::printb()”,即輸出為“a=7,b=9”。27、以下程序的輸出的結(jié)果是()。#includeintx=3;voidmain(){voidfun();inti;for(i=1;iA、3,3B、2,2C、2,6D、2,5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)入手,在for循環(huán)中調(diào)用fun函數(shù),其中調(diào)用次數(shù)為2次。fun中x為靜態(tài)變量,有效到文件結(jié)束,所以第一次調(diào)用為x=x*(x+1)=1*(1+1)=2,第二次調(diào)用2*(2+1)=6。28、閱讀下面程序:#includefun(inta,intb){intc;c=a+b:retumC;}voidmain(){intx=6,y:7,z=8,r;r=fun((x--,y++,x+y),z--);cout<A、11B、20C、21D、31標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)入手,定義變量x、y、z,然后調(diào)用函數(shù)fun,其中的參數(shù)為(x-,y++,x+y)的計(jì)算結(jié)果和z-的計(jì)算結(jié)果,所以調(diào)用fun(13,8)計(jì)算結(jié)果為21。29、對(duì)虛函數(shù)的調(diào)用()。A、一定使用動(dòng)態(tài)聯(lián)編B、必須使用動(dòng)態(tài)聯(lián)編C、一定使用靜態(tài)聯(lián)編D、不一定使用動(dòng)態(tài)聯(lián)編標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:虛函數(shù)在運(yùn)行階段和類的對(duì)象綁定在一起,這樣成為動(dòng)態(tài)聯(lián)編。虛函數(shù)聲明只能出現(xiàn)在類聲明中虛函數(shù)原型中,而不能在成員的函數(shù)體實(shí)現(xiàn)的時(shí)候。必須由成員函數(shù)來(lái)調(diào)用或者通過(guò)指針、引用來(lái)訪問(wèn)虛函數(shù)。如果通過(guò)對(duì)象名來(lái)訪問(wèn)虛函數(shù),則聯(lián)編在編譯過(guò)程中認(rèn)為是靜態(tài)聯(lián)編。30、下列函數(shù)的運(yùn)行結(jié)果是()。#includeintadd(inta,intb);voidmain(){extemintx,y;cout<A、25B、30C、20D、15標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義外部變量x和y,調(diào)用函數(shù)add。因?yàn)閤,y為外部變量,所以“intx(20),y(5);”的賦值在add也是有效的,即add函數(shù)的運(yùn)算結(jié)果為25。31、下面程序的輸出結(jié)果為()。#includeclassTestClass{public:TestClass(){val++;}staticintval;};intTestClass::val=0:voidmain(){TestClasscsl;cout<A、03B、13C、14D、24標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義TestClass類的對(duì)象cs1,執(zhí)行cs1.val,其中val為靜態(tài)變量,根據(jù)“intTestClass::val=0;”初始化,TestClass中的TestClass(){val++;}構(gòu)造函數(shù)執(zhí)行后,val值為1。主函數(shù)中接著定義對(duì)象cs2,cs3,cs4。執(zhí)行“cout<32、下面程序的運(yùn)行結(jié)果是()。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版對(duì)講門品牌授權(quán)與市場(chǎng)推廣合同2篇
- 教培機(jī)構(gòu)2025年度27份合同協(xié)議(教育版權(quán)保護(hù))2篇
- 二零二五版住宅小區(qū)配套設(shè)施使用權(quán)轉(zhuǎn)讓合同3篇
- 二零二五年度采砂廠承包生態(tài)補(bǔ)償金支付合同范本3篇
- 2024蔬菜種植項(xiàng)目承包合同協(xié)議2篇
- 二零二五版工程招投標(biāo)與合同管理專家指導(dǎo)與案例分析3篇
- 工業(yè)廠房結(jié)構(gòu)檢測(cè)與2025年度注漿加固合同3篇
- 展會(huì)安全保障合同(2篇)
- 二零二五年度餐飲業(yè)食品安全標(biāo)準(zhǔn)制定合同3篇
- 二零二五版鋼結(jié)構(gòu)工程專用材料采購(gòu)合同范本5篇
- 小學(xué)四年級(jí)數(shù)學(xué)知識(shí)點(diǎn)總結(jié)(必備8篇)
- GB/T 893-2017孔用彈性擋圈
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 醫(yī)學(xué)會(huì)自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項(xiàng)機(jī)電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動(dòng)物遺傳育種學(xué)》動(dòng)物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報(bào)告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
評(píng)論
0/150
提交評(píng)論