國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷7(共323題)_第1頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷7(共323題)_第2頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷7(共323題)_第3頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷7(共323題)_第4頁(yè)
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷7(共323題)_第5頁(yè)
已閱讀5頁(yè),還剩83頁(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ī)試(選擇題)模擬試卷7(共9套)(共323題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列敘述中正確的是A、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒(méi)有直接關(guān)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間,算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量,兩者之間并沒(méi)有直接關(guān)系,答案為D。2、下列敘述中正確的是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、以上說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。因此,從排頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素。所以循環(huán)隊(duì)列中的元素個(gè)數(shù)與隊(duì)頭指針和隊(duì)尾指針的變化而變化,A正確。3、一棵二叉樹(shù)中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹(shù)中的總結(jié)點(diǎn)數(shù)為A、219B、229C、230D、231標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二叉樹(shù)中,度為0的節(jié)點(diǎn)數(shù)等于度為2的節(jié)點(diǎn)數(shù)加1,即n2=n0-1,葉子節(jié)點(diǎn)即度為0,則n2=79,總結(jié)點(diǎn)數(shù)為n0+n1+n2=80+70+79=229,答案為B。4、對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為A、9B、10C、45D、90標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:冒泡法是在掃描過(guò)程中逐次比較相鄰兩個(gè)元素的大小,最壞的情況是每次比較都要將相鄰的兩個(gè)元素互換,需要互換的次數(shù)為9+8+7+6+5+4+3+2+1=45,選C。5、構(gòu)成計(jì)算機(jī)軟件的是A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件指的是計(jì)算機(jī)系統(tǒng)中與硬件相互依賴的另一部分,包括程序、數(shù)據(jù)和有關(guān)的文檔,選D。6、下面不能作為結(jié)構(gòu)化方法軟件需求分析工具的是A、系統(tǒng)結(jié)構(gòu)圖B、數(shù)據(jù)字典(DD)C、數(shù)據(jù)流程圖(DFD圖)D、判定表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化方法軟件需求分析工具主要有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹(shù)和判定表。7、在關(guān)系模型中,每一個(gè)二維表稱為一個(gè)A、關(guān)系B、屬性C、元組D、主碼(鍵)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系模型采用二維表來(lái)表示,即每個(gè)二維表稱為一個(gè)關(guān)系。8、若實(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)解析:A和B為一對(duì)多的聯(lián)系,則對(duì)于A中的每一個(gè)實(shí)體,B中有多個(gè)實(shí)體與之聯(lián)系,而B與C為一對(duì)一聯(lián)系,則對(duì)于B中的每一個(gè)實(shí)體,C中之多有一個(gè)實(shí)體與之聯(lián)系,則可推出對(duì)于A中的每一個(gè)實(shí)體,C中有多個(gè)實(shí)體與聯(lián)系,所以為一對(duì)多聯(lián)系。9、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、選擇B、投影C、交D、并標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:關(guān)系T中的元素與關(guān)系R和關(guān)系S中不同元素的總和,因此為并操作。10、Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是A、objB、exeC、cppD、out標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++程序開(kāi)發(fā)過(guò)程包括編輯、編譯、鏈接、運(yùn)行和調(diào)試。編譯完成后鏈接之前會(huì)生成后綴為obj的目標(biāo)文件,所以答案為A。11、字符串"8+a=b\n\r"的長(zhǎng)度為A、14B、7C、9D、16標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符常量中轉(zhuǎn)義字符常量,\n,\r為轉(zhuǎn)義字符,只占一個(gè)字節(jié),所以該字符串的長(zhǎng)度為7。選項(xiàng)B正確。12、有如下程序:#includeusingnamespacestd;intmain(){intf,f1=1,f2=1;for(inti=0;i<=5;i+=2){f=f1*2+f2;f1=f2;f2=f;}cout<A、5B、21C、85D、11標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查for循環(huán),當(dāng)i為0時(shí),f1變?yōu)?,f2變?yōu)?;當(dāng)i為2時(shí),f1變?yōu)?,f2變?yōu)?;當(dāng)i為4時(shí),f1變?yōu)?,f2變?yōu)?1,即f為11,所以答案為D。13、有如下程序:#includeusingnamespacestd;intmain(){inta[10];for(int*p=a;pA、20B、21C、22D、23標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查使用指針對(duì)一維數(shù)組賦值,可以看出一維數(shù)組的元素值為下標(biāo)*2+1,所以a[2]=2*2+1=5,a[8]=8*2+1=17,那么a[2]+a[8]=22。C選項(xiàng)錯(cuò)誤。14、若有定義語(yǔ)句"doublea=2/3;",則語(yǔ)句"cout<A、0.66666667B、0.666667C、0.7D、0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查除號(hào)’/’,當(dāng)除號(hào)兩邊都是整數(shù)時(shí),得出的結(jié)果為整數(shù),2/3等于0,所以結(jié)果為0,D選項(xiàng)正確。15、已知函數(shù)f1調(diào)用函數(shù)f2,若要把這兩個(gè)函數(shù)的定義放在同一個(gè)文件中,則A、若f1定義在f2之后,則f1的原型必須出現(xiàn)在f2的定義之前B、若f2定義在f1之后,則f2的原型必須出現(xiàn)在f1的定義之前C、f1必須定義在f2之前D、f2必須定義在f1之前標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)f1調(diào)用f2,如果f2定義在f1之后,那么必須將f2的函數(shù)原型聲明放在f1之前,如果f2定義在f1之前,那么不需要f2函數(shù)原型聲明。所以B選項(xiàng)正確。16、下列關(guān)于運(yùn)算符函數(shù)的表述中,錯(cuò)誤的是A、運(yùn)算符函數(shù)的參數(shù)表可以是空的B、運(yùn)算符函數(shù)的參數(shù)可以是對(duì)象C、運(yùn)算符函數(shù)的名稱總是以operator為前綴D、運(yùn)算符函數(shù)只能定義為類的成員函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查運(yùn)算符重載函數(shù),運(yùn)算符重載函數(shù)既可以定義為類的成員函數(shù)也可以定義為類的友元函數(shù),所以D選項(xiàng)錯(cuò)誤。17、有如下定義:classInner{public:voidf1(){cout<<"f1";}friendvoidf2(){cout<<"f2";}};voidf3(){cout<<"f3";}inlinevoidf4(){cout<<"f4";}其中的內(nèi)聯(lián)函數(shù)包括A、f1和f2B、f3和f4C、f2和f3D、f1和f4標(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ù),使用inline也是內(nèi)聯(lián)函數(shù),所以共有2個(gè)內(nèi)聯(lián)函數(shù)f1和f4,D選項(xiàng)正確。18、若要在Number類的聲明中將減法運(yùn)算符重載為成員函數(shù),下列重載函數(shù)聲明中正確的是A、Number-(Number);B、Numberoperator-(Number);C、Number-operator(Number);D、Numberoperator-(Number,Number);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查重載減法運(yùn)算符,重載運(yùn)算符的一般形式為:函數(shù)類型operator運(yùn)算符名稱(參數(shù)列表){對(duì)運(yùn)算符的重載處理}根據(jù)定義規(guī)則,只有B選項(xiàng)正確。19、有如下程序:#includeusingnamespacestd;voidf1(int&x,int&y){intz=x+y;x=y;y=z;}voidf2(intx,inty){intz=x+y;x=y;y=z;}intmain(){intx=10,y=26;f1(x,y);f2(x,y);cout<A、10B、26C、36D、46標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:參數(shù)傳遞有三種:傳值(value),傳址(address),和傳引用(reference)傳值時(shí)子函數(shù)(被調(diào)用者)復(fù)制父函數(shù)(調(diào)用者)傳遞的值,這樣子函數(shù)無(wú)法改變父函數(shù)變量的值,函數(shù)f2就屬于傳值調(diào)用,所以不會(huì)改變y的值。傳址時(shí)父函數(shù)將變量的地址傳遞給子函數(shù),這樣子函數(shù)可以能過(guò)改寫地址里的內(nèi)容改變父函數(shù)中的變量傳引用則是一種看起來(lái)像傳值調(diào)用,而實(shí)際上功能同傳址一樣的傳遞方式。子函數(shù)可以改寫父函數(shù)的變量值。f1函數(shù)屬于傳引用調(diào)用,所以y的值在執(zhí)行完函數(shù)后變?yōu)榱?6,C選項(xiàng)正確。20、若要對(duì)類Value中重載的類型轉(zhuǎn)換運(yùn)算符long進(jìn)行聲明,下列選項(xiàng)中正確的是A、operatorlong()const;B、operatorlong(Value)const;C、longoperatorlong();D、longoperatorlong(Value);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查類型轉(zhuǎn)換函數(shù),其一般形式如下:operator類型名(){實(shí)現(xiàn)轉(zhuǎn)換的語(yǔ)句}在函數(shù)名前面不能指定函數(shù)類型,函數(shù)沒(méi)有參數(shù),所以A選項(xiàng)正確。21、下列關(guān)于重載運(yùn)算符的說(shuō)法正確的是:A、運(yùn)算符::不能被重載,運(yùn)算符.必須作為類成員重載B、運(yùn)算符[]不能被重載,運(yùn)算符=必須作為類成員重載C、運(yùn)算符*不能被重載,運(yùn)算符()必須作為類成員重載D、運(yùn)算符.不能被重載,運(yùn)算符[]必須作為類成員重載標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查運(yùn)算符重載,不能重載的運(yùn)算符只有5個(gè):.、.*、::、sizeof、?:。C++規(guī)定有的運(yùn)算符(如賦值運(yùn)算符、下標(biāo)運(yùn)算符、函數(shù)調(diào)用運(yùn)算符)必須定義為類的成員函數(shù),只有D選項(xiàng)正確。22、若AA為一個(gè)類,a為該類的非靜態(tài)數(shù)據(jù)成員,在該類的一個(gè)成員函數(shù)定義中訪問(wèn)a時(shí),其書寫格式為A、aB、AA.aC、a()D、AA::a()標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查如何引用類的數(shù)據(jù)成員,本題中要引用類的非靜態(tài)數(shù)據(jù)成員,可以直接引用,所以A選項(xiàng)正確。23、有如下程序:#includeusingnamespacestd;classXA{inta;public:staticintb;XA(intaa):a(aa){b++;}~XA(){}intget(){returna;}};intXA::b=0;intmain(){XAd1(2),d2(3);cout<A、5B、6C、7D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查類的靜態(tài)數(shù)據(jù)成員,題目中定義了類的靜態(tài)數(shù)據(jù)成員b,當(dāng)執(zhí)行定義兩個(gè)對(duì)象時(shí)執(zhí)行構(gòu)造函數(shù),構(gòu)造函數(shù)執(zhí)行b++,所以b最終為2,而d1.get()為2,d2.get()為3,最終結(jié)果為7,C選項(xiàng)正確。24、下列關(guān)于類的析構(gòu)函數(shù)的敘述中,錯(cuò)誤的是A、定義析構(gòu)函數(shù)時(shí)不能指定返回值B、析構(gòu)函數(shù)的函數(shù)名就是類名前加上字符~C、析構(gòu)函數(shù)可以重載D、在一個(gè)類中如果沒(méi)有定義析構(gòu)函數(shù),系統(tǒng)將自動(dòng)生成一個(gè)析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查類的析構(gòu)函數(shù)的定義,析構(gòu)函數(shù)(destructor)與構(gòu)造函數(shù)相反,當(dāng)對(duì)象脫離其作用域時(shí)(例如對(duì)象所在的函數(shù)已調(diào)用完畢),系統(tǒng)自動(dòng)執(zhí)行析構(gòu)函數(shù)。析構(gòu)函數(shù)往往用來(lái)做"清理善后"的工作(例如在建立對(duì)象時(shí)用new開(kāi)辟了一片內(nèi)存空間,應(yīng)在退出前在析構(gòu)函數(shù)中用delete釋放)。以C++語(yǔ)言為例,析構(gòu)函數(shù)名也應(yīng)與類名相同,只是在函數(shù)名前面加一個(gè)波浪符~,例如~stud(),以區(qū)別于構(gòu)造函數(shù)。它不能帶任何參數(shù),也沒(méi)有返回值(包括void類型)。只能有一個(gè)析構(gòu)函數(shù),不能重載。如果用戶沒(méi)有編寫析構(gòu)函數(shù),編譯系統(tǒng)會(huì)自動(dòng)生成一個(gè)缺省的析構(gòu)函數(shù),它也不進(jìn)行任何操作。所以C選項(xiàng)錯(cuò)誤。25、下列關(guān)鍵字中,用來(lái)表示繼承方式的是A、staticB、constC、virtualD、protected標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查繼承使用的關(guān)鍵字,屬于基礎(chǔ)知識(shí),使用D選項(xiàng)為繼承使用的關(guān)鍵字。26、下列選項(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)解析:運(yùn)行時(shí)多態(tài)與虛函數(shù)有關(guān)。派生類的對(duì)象可以認(rèn)為是基類的對(duì)象,但基類的對(duì)象不是其派生類的對(duì)象。因此,C++允許一個(gè)基類對(duì)象的指針指向其派生類對(duì)象,但不允許一個(gè)派生類對(duì)象指向其基類對(duì)象。在調(diào)用虛函數(shù)的過(guò)程中指針和引用會(huì)起到一定的作用。classBase{public:inta;protected:intb;private:intc;};classDerived:publicBase{protected:intd;friendvoidshow();};在類Derived中,函數(shù)show()不能直接訪問(wèn)的數(shù)據(jù)成員是27、在類Derived中,函數(shù)show()不能直接訪問(wèn)的數(shù)據(jù)成員是A、aB、bC、cD、d標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查友元函數(shù),本題中定義的show不能直接訪問(wèn)Base里的私有成員。28、有如下類定義:classCup{public:_______________//構(gòu)造函數(shù)聲明private:doubleprice;};其中下劃線處缺失的構(gòu)造函數(shù)聲明是A、voidCup(doubleprice);B、Cup(doublePrice);C、myCup(doubleprice);D、staticCup(doubleprice);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)的定義,構(gòu)造函數(shù)名為類的名稱,所以只有B選項(xiàng)正確。29、有如下類定義:classBag{public:Bag();//①voidSetSize(strings);//②stringGetSize()const;//③friendvoidDisplay(Bag&b);//④private:stringsize;};在標(biāo)注號(hào)碼的4個(gè)函數(shù)中,不具有隱含this指針的是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:當(dāng)在類的非靜態(tài)成員函數(shù)中訪問(wèn)類的非靜態(tài)成員的時(shí)候,編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù),所以①②③正確使用this指針。30、有如下程序:#include#includeusingstd::cout;classPoint{public:frienddoubledistance(constPoint&p1,constPoint&p2);Point(intxx=0,intyy=0):x(xx),y(yy){}private:intx,y;};doubledistance(constPoint&p1,constPoint&p2){returnsqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));}intmain(){Pointp0,p1(3,4);cout<A、0B、3C、4D、5標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)的應(yīng)用,題目中定義對(duì)象p0時(shí),執(zhí)行默認(rèn)構(gòu)造函數(shù),得出x和y都為0,定義對(duì)象p1(3,4),得到x和y分別是3,4,執(zhí)行distance(p1,p0)后得出5。31、有如下程序:#include#includeusingnamespacestd;classWheel{public:Wheel(strings="W"):name(s){cout<A、RFGB、FRGC、FRGGRFD、FRGFRG標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:定義Bicyclebike時(shí),執(zhí)行Wheel的構(gòu)造函數(shù)輸出FR,然后執(zhí)行Bicycle的構(gòu)造函數(shù)輸出G,最后執(zhí)行析構(gòu)函數(shù),一次執(zhí)行派生類的析構(gòu)函數(shù)輸出G,再輸出基類的析構(gòu)函數(shù)輸出RF,最終輸出FRGGRF,選項(xiàng)C正確。32、有如下類定義:classPoint{public:voidSetX(intxx);voidSetY(intyy);private:intx,y;};classCircle:publicPoint{public:voidRadius(intr);private:intradius;};派生類Circle中的成員個(gè)數(shù)為A、1B、2C、3D、6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查派生類的定義,題目中基類有4個(gè)成員,派生類都繼承下來(lái),派生類本身有2個(gè)成員,所以總共有6個(gè)成員,D選項(xiàng)正確。33、有如下類定義:#includeusingnamespacestd;classPoint{public:intGetXY(){returnx+y;}protected:voidSetXY(inta,intb){x=a;y=b;}private:intx,y;};classCircle:publicPoint{public:intGetR(){returnradius;}intGetAll(){returnGetXY()+radius;}protected:voidSetR(intr){radius=r;}private:intradius;};intmain(){Circlec;c.GetXY();//①c.SetXY(3,4);//②c.GetR();//③c.GetAll();//④return0;}在標(biāo)注號(hào)碼的語(yǔ)句行中存在語(yǔ)法錯(cuò)誤的是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類成員的訪問(wèn)屬性,派生類公用繼承基類的保護(hù)成員,在派生類中也變?yōu)榱吮Wo(hù)成員,只能在派生類內(nèi)訪問(wèn),不能在類外訪問(wèn),所以B選項(xiàng)錯(cuò)誤。34、有如下程序:#includeusingnamespacestd;classAppliance{public:Appliance(){}~Appliance(){cout<<’A’;}};classTV:publicAppliance{public:TV(ints=41):size(s){}~TV(){cout<<’T’<A、T41B、T41AC、T41T41D、T41AT41A標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:執(zhí)行派生類構(gòu)造函數(shù)的順序是:1、調(diào)用基類構(gòu)造函數(shù),2、調(diào)用子對(duì)象構(gòu)造函數(shù),3、再執(zhí)行派生類析構(gòu)函數(shù),4、執(zhí)行基類的析構(gòu)函數(shù),所以本題中定義room1時(shí),程序結(jié)束時(shí)先調(diào)用派生類析構(gòu)函數(shù)輸出T41,然后執(zhí)行基類的析構(gòu)函數(shù)輸出A,而定義對(duì)象指針,并不會(huì)調(diào)用構(gòu)造函數(shù),所以什么也不輸出,所以結(jié)果為T41A,,B選項(xiàng)正確。35、有如下程序:#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é)果為B選項(xiàng)正確。36、下列關(guān)于函數(shù)模板的表述中,正確的是A、函數(shù)模板是一個(gè)實(shí)例函數(shù)B、使用函數(shù)模板定義的函數(shù)沒(méi)有返回類型C、函數(shù)模板的虛擬類型參數(shù)就是函數(shù)參數(shù)D、通過(guò)使用不同的類型參數(shù),可以從函數(shù)模板得到不同的實(shí)例函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)模板是一個(gè)抽象函數(shù),使用模板定義的函數(shù)可以有返回值,函數(shù)模板的虛擬類型參數(shù)并不是函數(shù)參數(shù)。只有D選項(xiàng)正確。37、有如下函數(shù)模板定義:templateT1FUN(T2n){returnn*5.0;}若要求以int型數(shù)據(jù)9作為函數(shù)實(shí)參調(diào)用該模板,并返回一個(gè)double型數(shù)據(jù),則該調(diào)用應(yīng)表示為A、FUN(9)B、FUN<9>C、FUN(9)D、FUN<9>(double)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題中要求返回值為double行,那么T1就是double型,T2默認(rèn)為int,所以只有C選項(xiàng)正確。38、下列有關(guān)C++流的表述中,錯(cuò)誤的是A、C++流操作符setw設(shè)置的輸出寬度永久有效B、C++流操作符endl可以實(shí)現(xiàn)輸出的回車換行C、利用C++流處理文件I/O時(shí),要包含頭文件fstreamD、利用C++流進(jìn)行輸入操作時(shí),eof()函數(shù)用于檢測(cè)是否到達(dá)文件尾標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++操作符endl可以實(shí)現(xiàn)輸出的回車換行的功能;在處理文件I/O時(shí),要包含頭文件iostream,是為了說(shuō)明引用的參數(shù)或函數(shù)的位置;函數(shù)eof()用來(lái)檢測(cè)是否到達(dá)文件尾,如果到達(dá)件尾返回非0值,否則返回0。39、有如下4個(gè)語(yǔ)句:①cout<<’A’<A、①和③B、①和④C、②和③D、②和④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查輸入輸出格式的控制,只有②和③可以輸出符合題目要求的格式,所以C選項(xiàng)正確。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列敘述中正確的是A、算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)B、算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量C、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法的效率與問(wèn)題的規(guī)模和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)都有關(guān),A錯(cuò)誤。算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量,B正確。由于數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)空間中的位置關(guān)系可能與邏輯關(guān)系不同,因此數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)不是一一對(duì)應(yīng)的,C錯(cuò)誤。算法的時(shí)間復(fù)雜度和空間復(fù)雜度沒(méi)有直接的聯(lián)系,D錯(cuò)誤。2、下列敘述中正確的是A、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)B、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間都是連續(xù)的C、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的順序存儲(chǔ)結(jié)構(gòu)具備如下兩個(gè)基本特征:(1)線性表中的所有元素所占的存儲(chǔ)空間是連續(xù)的;(2)線性表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。用一組任意的存儲(chǔ)單元來(lái)依次存放線性表的結(jié)點(diǎn),這組存儲(chǔ)單元既可以是連續(xù)的,也可以是不連續(xù)的,甚至是零散分布在內(nèi)存中的任意位置上的。因此C正確。3、某二叉樹(shù)共有12個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹(shù)的深度為(根結(jié)點(diǎn)在第1層)A、3B、6C、8D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二叉樹(shù)中,度為0的節(jié)點(diǎn)數(shù)等于度為2的節(jié)點(diǎn)數(shù)加1,即n2=n0-1,葉子節(jié)點(diǎn)即度為0,n0=1,則n2=0,總節(jié)點(diǎn)數(shù)為12=n0+n1+n2=1+n1+0,則度為1的節(jié)點(diǎn)數(shù)n1=11,故深度為12,選D。4、對(duì)長(zhǎng)度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為A、nB、n-1C、n(n-1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:快速排序最壞情況就是每次選的基準(zhǔn)數(shù)都和其他數(shù)做過(guò)比較,共需比較(n-1)+(n-2)+…+1=n(n-1)/2,選D。5、結(jié)構(gòu)化程序設(shè)計(jì)中,下面對(duì)goto語(yǔ)句使用描述正確的是A、禁止使用goto語(yǔ)句B、使用goto語(yǔ)句程序效率高C、應(yīng)避免濫用goto語(yǔ)句D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)中,要注意盡量避免goto語(yǔ)句的使用,故選C。6、下面不屬于軟件測(cè)試實(shí)施步驟的是A、集成測(cè)試B、回歸測(cè)試C、確認(rèn)測(cè)試D、單元測(cè)試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試主要包括單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。7、下面不屬于軟件需求分析階段主要工作的是A、需求變更申請(qǐng)B、需求分析C、需求評(píng)審D、需求獲取標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:需求分析階段的工作可概括為4個(gè)方面:①需求獲取。②需求分析。③編寫需求規(guī)格說(shuō)明書。④需求審評(píng)。8、一般情況下,當(dāng)對(duì)關(guān)系R和S進(jìn)行自然連接時(shí),要求R和S含有一個(gè)或者多個(gè)共有的A、記錄B、行C、屬性D、元組標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:自然連接是一種特殊的等值連接,它滿足下面的條件:①兩關(guān)系間有公共域;②通過(guò)公共域的等值進(jìn)行連接,選C。9、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、選擇B、差C、交D、并標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系T是關(guān)系R的一部分,并且是關(guān)系R去掉R和S相同的元素,符合差操作。10、有表示公司和職員及工作的三張表,職員可在多家公司兼職。其中公司C(公司號(hào),公司名,地址,注冊(cè)資本,法人代表,員工數(shù)),職員S(職員號(hào),姓名,性別,年齡,學(xué)歷),工作W(公司號(hào),職員號(hào),工資),則表W的鍵(碼)為A、公司號(hào),職員號(hào)B、職員號(hào),工資C、職員號(hào)D、公司號(hào),職員號(hào),工資標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由于職員可以再多加公司兼職,表W的鍵(碼)應(yīng)為公司關(guān)系和職員關(guān)系的主碼,即公司號(hào)和職員號(hào)。11、下列選項(xiàng)中,不是C++關(guān)鍵字的是A、constB、usingC、classD、final標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查C++關(guān)鍵字,屬于基礎(chǔ)知識(shí),只有D選項(xiàng)不是關(guān)鍵字。12、下列語(yǔ)句中,與語(yǔ)句"(aA、if(aB、if(a>=b)n=0;C、if(a>=b)n=0;elseif(b>=c)n=1;D、if(a標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查逗號(hào)表達(dá)式,題目中逗號(hào)表達(dá)式(ac時(shí),n為0;a>b時(shí),n為0;與該意思相同的就是D選項(xiàng),而A選項(xiàng)if語(yǔ)句中的判斷語(yǔ)句不正確。13、有如下語(yǔ)句序列:intx=10,&r=x;cout<A、10-10B、10-0x28ff48C、0x28ff44-10D、0x28ff44-0x28ff48標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查引用概念和使用,題目中r為x的引用,所以與x的值相同,結(jié)果為A,A選項(xiàng)正確。14、有如下程序:#includeusingnamespacestd;intmain(){intx=4;do{x--;cout<A、輸出31B、輸出20C、輸出3210D、死循環(huán)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查dowhile循環(huán),執(zhí)行第一次時(shí),輸出x為3,執(zhí)行第二次的時(shí)候?yàn)?,所以輸出結(jié)果為31,A選項(xiàng)正確。15、在一個(gè)程序文件中有如下語(yǔ)句:externintvar;關(guān)于這個(gè)語(yǔ)句,下列表述中錯(cuò)誤的是A、var稱為外部變量B、var定義在函數(shù)或類的外部C、var已在另一個(gè)程序文件中定義D、編譯系統(tǒng)在處理這個(gè)語(yǔ)句時(shí)將為之分配空間標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:extern定義的變量表示已經(jīng)在別的地方定義,這里只是引用,所以不會(huì)對(duì)該變量分配內(nèi)存空間,所以D選項(xiàng)錯(cuò)誤。16、已知一運(yùn)算符函數(shù)沒(méi)有參數(shù)。下列關(guān)于該運(yùn)算符函數(shù)的表述中錯(cuò)誤的是A、該運(yùn)算符函數(shù)是成員函數(shù)B、該運(yùn)算符是一元運(yùn)算符C、由于無(wú)參數(shù),使用該運(yùn)算符時(shí)不需要操作數(shù)D、該運(yùn)算符不是后綴++或后綴--標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查運(yùn)算符重載函數(shù),題目中說(shuō)該運(yùn)算符重載函數(shù)沒(méi)有參數(shù),那么只能是重載一元運(yùn)算符,所以需要一個(gè)操作數(shù),并且有默認(rèn)this指針,所以是成員函數(shù),C選項(xiàng)錯(cuò)誤。17、有如下函數(shù)原型:intfunc(int**a,int*b,int&cintd);其中可稱為引用參數(shù)的參數(shù)變量是A、aB、bC、cD、d標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查引用的概念和使用方法,引用使用&來(lái)定義,所以只有C選項(xiàng)是引用,所以C選項(xiàng)正確。18、若要在Viz類中將*重載為一元運(yùn)算符,下列重載函數(shù)聲明中肯定有錯(cuò)的是A、Vizoperator*();B、Vizoperator*(Viz);C、intoperator*(Viz);D、Vizoperator*(Viz,Viz);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題中將*重載為一元運(yùn)算符,所以只有一個(gè)操作數(shù),而D選項(xiàng)有兩個(gè)操作數(shù),所以D選項(xiàng)錯(cuò)誤。19、有如下程序:#includeusingnamespacestd;void_________{intz=x;x=y;y=z;}intmain(){intx=0,y=1;f(x,y);cout<A、f(intx,inty)B、f(int*x,int*y)C、f(int&x,int&y)D、swap(intx,inty)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:參數(shù)傳遞有三種:傳值(value),傳址(address),和傳引用(reference)傳值時(shí)子函數(shù)(被調(diào)用者)復(fù)制父函數(shù)(調(diào)用者)傳遞的值,這樣子函數(shù)無(wú)法改變父函數(shù)變量的值。傳址時(shí)父函數(shù)將變量的地址傳遞給子函數(shù),這樣子函數(shù)可以能過(guò)改寫地址里的內(nèi)容改變父函數(shù)中的變量傳引用則是一種看起來(lái)像傳值調(diào)用,而實(shí)際上功能同傳址一樣的傳遞方式。子函數(shù)可以改寫父函數(shù)的變量值。題目中要求輸出10,即將x和y值調(diào)換,那么就需要使用傳引用來(lái)改變x和y的值,所以只有C選項(xiàng)正確。20、有如下類定義:classMyClass{public:_____________private:intdata;};若要為MyClass類重載流輸出運(yùn)算符<<,使得程序中可以"cout<<obj;"這樣的語(yǔ)句輸出MyClass類的對(duì)象obj中成員變量data的值,則橫線處應(yīng)填入的語(yǔ)句是A、friendostream&operator<<(ostream&os,MyClassa);B、friendostream&operator<<(MyClassa,ostream&os);C、ostream&operator<<(ostream&os,MyClassa);D、ostream&operator<<(MyClassa,ostream&os);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查在類中重載流運(yùn)算符<<,那么需要將該運(yùn)算符重載為友元成員函數(shù),且第一個(gè)參數(shù)為ostream&os,所以A選項(xiàng)正確。21、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是A、Fractionoperator+(Fraction);B、Fractionoperator-(Fraction);C、Fractionoperator*(Fraction);D、Fractionoperator/(Fraction);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:答案D的形式是重載為友元函數(shù),而友元函數(shù)不屬于類的成員函數(shù)。所以重載為友元函數(shù)需要兩個(gè)參數(shù),通過(guò)參數(shù)傳遞的方式得到參加運(yùn)算的兩個(gè)對(duì)象。其他的是重載為類的成員函數(shù),由于對(duì)象本身代表了一個(gè)操作數(shù),所以其參數(shù)只需要一個(gè),其為參加運(yùn)算的另一個(gè)操作數(shù)。22、下列關(guān)于this指針的敘述中,正確的是A、類的成員函數(shù)都有this指針B、類的友元函數(shù)都有this指針C、任何與類相關(guān)的函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)都有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查this指針,只有類的非靜態(tài)成員才有this指針,所以D選項(xiàng)正確。23、有如下類定義:classSample{public:Sample(intx):ref(x){}//①Sample():ref(0){}//②private:staticintval=5;//③constintref;//④};上述程序段中,錯(cuò)誤的語(yǔ)句是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員初始化時(shí),只能在類體外進(jìn)行初始化,一邊形式為:數(shù)據(jù)類型類型::靜態(tài)數(shù)據(jù)成員名=初值所以③錯(cuò)誤,答案為C選項(xiàng)。24、有如下程序:#includeusingnamespacestd;classXB{inta;public:staticintb;XB(intaa):a(aa){b++;}~XB(){b--;}intget(){returna;}};intXB::b=0;intmain(){XBd(2);intn=d.get()+XB(3).get();cout<A、5B、6C、7D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查類的構(gòu)造函數(shù)和靜態(tài)數(shù)據(jù)成員,題目中定義了類的靜態(tài)數(shù)據(jù)成員b,當(dāng)執(zhí)行定義對(duì)象d(2)和XB(3).get()時(shí)執(zhí)行構(gòu)造函數(shù),構(gòu)造函數(shù)執(zhí)行b++,所以b最終為2,而d.get()為2,最終結(jié)果為6,B選項(xiàng)正確。25、下列關(guān)于繼承方式的表述中,錯(cuò)誤的是A、如果不顯式地指定繼承方式,缺省的繼承方式是私有B、采用公有繼承方式時(shí),基類中的公有成員在派生類中仍然是公有成員C、采用保護(hù)繼承方式時(shí),基類中的保護(hù)成員在派生類中仍然是保護(hù)成員D、采用私有繼承方式時(shí),基類中的私有成員在派生類中仍然是私有成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類公用繼承基類,那么基類中私有不可訪問(wèn),保護(hù)成員依舊是保護(hù)成員,公有成員依舊是公有成員;保護(hù)繼承基類,那么基類的公用成員和保護(hù)成員在派生類中成為保護(hù)成員,私有成員不可訪問(wèn);私有繼承那么公有成員和保護(hù)成員變?yōu)樗接校接谐蓡T不可訪問(wèn)。沒(méi)有顯式地顯示繼承方式,默認(rèn)為私有繼承。所以D選項(xiàng)錯(cuò)誤。26、通過(guò)派生類的對(duì)象可直接訪問(wèn)的是A、公有繼承基類的公有成員B、私有繼承基類的公有成員C、公有繼承基類的私有成員D、私有繼承基類的私有成員標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:派生類公用繼承基類,那么基類中私有不可訪問(wèn),保護(hù)成員依舊是保護(hù)成員,公有成員依舊是公有成員;保護(hù)繼承基類,那么基類的公用成員和保護(hù)成員在派生類中成為保護(hù)成員,私有成員不可訪問(wèn);私有繼承那么公有成員和保護(hù)成員變?yōu)樗接?,私有成員不可訪問(wèn)。沒(méi)有顯式地顯示繼承方式,默認(rèn)為私有繼承。派生類可以直接訪問(wèn)的是公用繼承基類的公有成員,所以A選項(xiàng)正確。27、有如下程序:#includeusingnamespacestd;classPoint{intx,y;public:Point(intx1=0,inty1=0):x(x1),y(y1){}intget(){returnx+y;}};classCircle{Pointcenter;intradius;public:Circle(intcx,intcy,intr):center(cx,cy),radius(r){}intget(){returncenter.get()+radius;}};intmain(){Circlec(3,4,5);cout<A、5B、7C、12D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù),題目中定義了Circle類,在類體中又定義了Point的對(duì)象,執(zhí)行Circlec(3,4,5);后輸出三個(gè)數(shù)之和,所以是12,C選項(xiàng)正確。28、有如下類定義:classCup{public:voidSetPrice(doubleval){price=val;}_______________//常成員函數(shù)GetPrice的聲明private:doubleprice;};下列函數(shù)聲明中,能夠作為橫線處缺失的常成員函數(shù)GetPrice的聲明的是A、constdoubleGetPrice();B、doubleconstGetPrice();C、doubleGetPrice()const;D、doubleGetPrice(const);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查常成員函數(shù),其定義的一般形式如下:返回值類型常成員函數(shù)名(參數(shù)列表)const;所以C選項(xiàng)正確。29、有如下類定義:classBag{public:Bag(strings,stringcr);//①~Bag();//②stringGetSize();//③staticintGetCount();//④private:stringsize,color;staticintcount;};在標(biāo)注號(hào)碼的4個(gè)函數(shù)中,不具有隱含this指針的是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:當(dāng)在類的非靜態(tài)成員函數(shù)中訪問(wèn)類的非靜態(tài)成員的時(shí)候,編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù),所以①②③正確使用this指針。而④為靜態(tài)成員,沒(méi)有this指針,答案為D選項(xiàng)。30、有如下程序:#include#includeusingnamespacestd;classMyBag{public:MyBag(stringbr,stringcr):brand(br),color(cr){++count;}~MyBag(){--count;}staticintGetCount(){returncount;}private:stringbrand,color;staticintcount;};intMyBag::count=0;intmain(){MyBagone("CityLife","Gray"),two("Micky","Red");_____________________return0;}若程序運(yùn)行時(shí)的輸出結(jié)果為2,則橫線處缺失的語(yǔ)句不可能是A、cout<B、cout<C、cout<D、cout<標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù),靜態(tài)成員函數(shù)只能使用本類中的靜態(tài)數(shù)據(jù)成員,且靜態(tài)成員函數(shù)不歸屬任何一個(gè)對(duì)象,而是屬于類,題目中要求輸出2,那么就要將count輸出,題目中定義了兩個(gè)對(duì)象,都對(duì)count進(jìn)行了++,所以調(diào)用靜態(tài)成員函數(shù)直接使用類名,B選項(xiàng)正確。31、有如下程序:#include#includeusingnamespacestd;classWheel{public:Wheel(strings="W"):name(s){cout<A、WEWGDDB、WEWGDC、EWGDDD、EWGD標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義Monocyclebike1時(shí),執(zhí)行Wheel的構(gòu)造函數(shù)輸出W,然后執(zhí)行Monocycle的構(gòu)造函數(shù)輸出E,執(zhí)行Monocycle("G")時(shí),輸出WG,最后執(zhí)行析構(gòu)函數(shù),輸出DD,最終輸出WEWGDD,選項(xiàng)A正確。32、有如下程序片段:classTask{public:intGetValue();private:intvalue;};classDisplayed{public:intGetValue();voidDraw();private:intvalue;};classSatellite:publicTask,publicDisplayed{public:voidDraw();};voidfun(Satellite*sp){sp->GetValue();//①sp->Task::GetValue();//②sp->Displayed::GetValue();//③sp->Draw();//④}在標(biāo)注號(hào)碼的語(yǔ)句行中,對(duì)類中成員訪問(wèn)存在二義性的是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類的繼承二義性問(wèn)題,類Satellite公用繼承Task和Displayed,兩個(gè)基類中都有GetValue函數(shù),所以引起二義性,A選項(xiàng)錯(cuò)誤。33、有如下類定義:classPoint{public:voidSetX(intxx){x=xx;}protected:voidSetY(intyy){y=yy;}private:intx,y;};classCircle:publicPoint{public:intGetRadius(){returnradius;}private:voidSetRadius(intr){radius=r;}intradius;};派生類Circle中私有成員的個(gè)數(shù)為A、2B、4C、5D、6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類成員的訪問(wèn)屬性,派生類公用繼承基類,基類的私有成員不可訪問(wèn),所以派生類的私有成員只有本身的兩個(gè)私有成員,A選項(xiàng)正確。34、有如下程序:#include#includeusingnamespacestd;classFather{public:Father(strings):name(s){}~Father(){cout<<’F’;}private:stringname;};classMother{public:Mother(strings):name(s){}~Mother(){cout<<’M’;}private:stringname;};classChild:publicMother,publicFather{public:Child(strings1,strings2,strings3,inta):Father(s1),Mother(s2),name(s3),age(a){}~Child(){cout<<’C’;}private:stringname;intage;};intmain(){Childson("Zhang","Li","Ming",20);return0;}運(yùn)行時(shí)的輸出結(jié)果是A、CB、CMFC、CFMD、20CMF標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:執(zhí)行派生類構(gòu)造函數(shù)的順序是:1、調(diào)用基類構(gòu)造函數(shù),2、調(diào)用子對(duì)象構(gòu)造函數(shù),3、再執(zhí)行派生類析構(gòu)函數(shù),4、執(zhí)行基類的析構(gòu)函數(shù)。所以本題中執(zhí)行析構(gòu)函數(shù)為派生類的析構(gòu)函數(shù)、Father的析構(gòu)函數(shù)、Mother的析構(gòu)函數(shù),所以輸出CFM,答案C正確。35、有如下程序:#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(Animala){cout<A、DogspeakVoice-CatspeakVoiceB、DogspeakWoof-CatspeakMiaowC、AnimalspeakVoice-AnimalspeakVoiceD、AnimalspeakWoof-AnimalspeakMiaow標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查虛函數(shù)的運(yùn)用,本題中定義Dogd;Type(d)時(shí),執(zhí)行基類的Type函數(shù),輸出Animal,然后輸出speak,然后執(zhí)行基類的Speak函數(shù)輸出Voice,最后輸出-,同理cat輸出類似,所以結(jié)果為C選項(xiàng)正確。36、下列關(guān)于模板的表述中,錯(cuò)誤的是A、類模板的成員函數(shù)都是模板函數(shù)B、函數(shù)模板是一種參數(shù)化類型的函數(shù)C、滿足一定條件時(shí)可以省略模板實(shí)參D、模板形參只能由關(guān)鍵字typename聲明標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:模板形參由關(guān)鍵字typename或者class聲明,所以D選項(xiàng)錯(cuò)誤。37、已知主函數(shù)中通過(guò)如下語(yǔ)句序列實(shí)現(xiàn)對(duì)函數(shù)模板swap的調(diào)用:inta[10],b[10];swap(a,b,10);下列對(duì)函數(shù)模板swap的聲明中,會(huì)導(dǎo)致上述語(yǔ)句序列發(fā)生編譯錯(cuò)誤的是A、templatevoidswap(Ta[],Tb[],intsize);B、templatevoidswap(intsize,Ta[],Tb[]);C、templatevoidswap(T1a[],T2b[],intsize);D、templatevoidswap(T1a[],T2b[],intsize);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題中使用模板swap(a,b,10)時(shí),第一個(gè)和第二個(gè)參數(shù)為數(shù)組,第三個(gè)參數(shù)為整型變量,而B選項(xiàng)第一參數(shù)為整型變量與調(diào)用的時(shí)候不符合,所以B選項(xiàng)錯(cuò)誤。38、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是A、iostreamB、fstreamC、strstreamD、cstdlib標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查文件流操作時(shí)使用需要包含的頭文件,屬于基礎(chǔ)知識(shí),B選項(xiàng)正確。39、在語(yǔ)句"cout<<’A’;"中,cout是A、類名B、對(duì)象名C、函數(shù)名D、C++的關(guān)鍵字標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查提取運(yùn)算符<<,cout為對(duì)象名,所以B選項(xiàng)正確。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共36題,每題1.0分,共36分。)1、下面關(guān)于算法的敘述中,正確的是()。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)B、算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止C、算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)D、以上三種描述都正確標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法在運(yùn)行過(guò)程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個(gè)算法必須在執(zhí)行有限的步驟以后結(jié)束。2、下列二叉樹(shù)描述中,正確的是()。A、任何一棵二叉樹(shù)必須有一個(gè)度為2的結(jié)點(diǎn)B、二叉樹(shù)的度可以小于2C、非空二叉樹(shù)有0個(gè)或1個(gè)根結(jié)點(diǎn)D、至少有2個(gè)根結(jié)點(diǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二叉樹(shù)是由n≥0個(gè)結(jié)點(diǎn)的有限集合構(gòu)成,此集合或者為空集,或者由一個(gè)根結(jié)點(diǎn)及兩棵互不相交的左右子樹(shù)組成,并且左右子樹(shù)都是二叉樹(shù)。二叉樹(shù)可以是空集合,根可以有空的左子樹(shù)或空的右子樹(shù)。二叉樹(shù)不是樹(shù)的特殊情況,它們是兩個(gè)概念。二叉樹(shù)具有如下兩個(gè)特點(diǎn):①非空二叉樹(shù)只有一個(gè)根結(jié)點(diǎn)。②每一個(gè)結(jié)點(diǎn)最多有兩棵子樹(shù),且分別稱為該結(jié)點(diǎn)的左子樹(shù)與右子樹(shù)。3、如果進(jìn)棧序列為A,B,C,D,則可能的出棧序列是()。A、C,A,D,BB、B,D,C,AC、C,D,A,BD、任意順序標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧的操作原則為后進(jìn)先出。選項(xiàng)B)中出棧順序可按“A進(jìn),B進(jìn),B出,C進(jìn),D進(jìn),D出,C出,A出”實(shí)現(xiàn)。4、下列各選項(xiàng)中,不屬于序言性注釋的是()。A、程序標(biāo)題B、程序設(shè)計(jì)者C、主要算法D、數(shù)據(jù)狀態(tài)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:注釋一般為序言性注釋和功能性注釋。序言性注釋常位于程序開(kāi)頭部分,它包括程序標(biāo)題、程序功能說(shuō)明、主要算法、接口說(shuō)明、程序位置、開(kāi)發(fā)簡(jiǎn)歷、程序設(shè)計(jì)者、復(fù)審者、復(fù)審日期及修改日期等。功能性注釋一般嵌在源程序體之中,用于描述其后的語(yǔ)句或程序的主要功能。5、下列敘述中,不屬于軟件需求規(guī)格說(shuō)明書的作用的是()。A、便于用戶,開(kāi)發(fā)人員進(jìn)行理解和交流B、反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)D、便于開(kāi)發(fā)人員進(jìn)行需求分析標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求規(guī)格說(shuō)明書有以下幾個(gè)方面的作用:①便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流。②反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)。③作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。6、下列不屬于軟件工程3個(gè)要素的是()。A、工具B、過(guò)程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程包括3個(gè)要素,即方法、工具和過(guò)程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開(kāi)發(fā)、管理、文檔生成;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制、管理。7、數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部具有3級(jí)模式,用來(lái)描述數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。A、外模式B、概念模式C、內(nèi)模式D、存儲(chǔ)模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:概念模式,也稱邏輯模式,是對(duì)數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶應(yīng)用公共數(shù)據(jù)視圖。它不涉及具體的硬件環(huán)境與平臺(tái),與具體的軟件環(huán)境也無(wú)關(guān)。8、將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成()。A、屬性B、關(guān)系C、記錄D、碼標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:E-R圖由實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系3個(gè)要素組成,關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合,將E.R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。如下表所示。[2*]9、某二叉樹(shù)中度為2的結(jié)點(diǎn)有10個(gè),則該二叉樹(shù)中有()個(gè)葉子結(jié)點(diǎn)。A、9B、10C、11D、12標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì)3:對(duì)任何一棵二叉樹(shù),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。10、有如下程序:#includeusingnamespacestd;classA{public:A(){cout<<"A";)一A(){tout<<"~A";}};classB:publicA{A*p;public:B(){cout<<"B";p=newA;}~B(){cout<<"~B";deletep;}};intmain(){Bobj;return0:}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BAA~A~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類的構(gòu)造函數(shù)和析構(gòu)函數(shù)。派生類構(gòu)造函數(shù)的執(zhí)行順序?yàn)椋菏紫日{(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按它們被繼承時(shí)說(shuō)明的順序;然后調(diào)用了對(duì)象的構(gòu)造函數(shù),調(diào)用順序按它們?cè)陬愔姓f(shuō)明的順序;最后是派生類構(gòu)造函數(shù)中的內(nèi)容。兇此本題中,首先調(diào)用基類構(gòu)造函數(shù)輸出A,然后調(diào)用子對(duì)象的構(gòu)造函數(shù)輸出B,p=newA再調(diào)用類A的構(gòu)造函數(shù)輸出A;析構(gòu)函數(shù)的調(diào)用順序和構(gòu)造函數(shù)的調(diào)用順序相反。11、若有以下程序:#includeusingnamespacestd;classA{public:A(inti,intj){a=i;b=j;}voidmove(intx,inty){a+=X:b+=y;}voidshow(){cout<A、3,4B、6,8C、6,9D、4,3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題的執(zhí)行過(guò)程如下:首先Bd(3,4);語(yǔ)句調(diào)用B類的構(gòu)造函數(shù):B(inti,int.j),B的構(gòu)造函數(shù)中調(diào)用基類A的構(gòu)造函數(shù),使得a=3,b=4;d.fun()會(huì)調(diào)用函數(shù)move(3,5),使得(3,4)和(3,5)的對(duì)應(yīng)部分分別相加,最后輸出6,9。12、有如下程序:#includeusingnamespacestd;classTest{public:Vest(){n+=2;}-Test(){n-=3;)staticintgetNum(){returnn;}private:slaticintn;);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)解析:語(yǔ)句Test*p=newTest:會(huì)調(diào)用類的構(gòu)造函數(shù)Test(){n+=2;},使n的值由原來(lái)的1變?yōu)?,然后deletep調(diào)用類的析構(gòu)函數(shù)~Test(){n-=3;},因?yàn)閚是static型變量,所以會(huì)在3的基礎(chǔ)上減3使得輸出結(jié)果為0。13、假定MyClass為一個(gè)類,那么下列的函數(shù)說(shuō)明中,()為該類的析構(gòu)函數(shù)。A、void~MyClass();B、~MyClass(intn);C、MyClass();D、~MyClass();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++語(yǔ)言中析構(gòu)函數(shù)為符號(hào)“~”加類名,且析構(gòu)函數(shù)沒(méi)有返回值和參數(shù),故前不加void關(guān)鍵字。所以正確的形式應(yīng)該是~MyClass(1。14、下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是()。A、用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)B、將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)已知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它的一般格式是:類名::類名(const類名&引用對(duì)象名)。當(dāng)一個(gè)類的對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí),是賦值而不是創(chuàng)建對(duì)象,所以不會(huì)調(diào)用拷貝構(gòu)造函數(shù)。15、下列有關(guān)拷貝構(gòu)造函數(shù)的描述中錯(cuò)誤的是()。A、拷貝構(gòu)造函數(shù)是一種構(gòu)造函數(shù)B、拷貝構(gòu)造函數(shù)與一般的構(gòu)造函數(shù)一樣,可以設(shè)置多個(gè)形參C、每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù)D、拷貝構(gòu)造函數(shù)的功能是用一個(gè)已知對(duì)象去初始化一個(gè)正在創(chuàng)建的對(duì)象標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)已知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它不能指定函數(shù)返回類型;只有一個(gè)參數(shù),是同類的某個(gè)對(duì)象名的引用。每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù),如果類中未聲明,編譯器會(huì)自動(dòng)生成一個(gè)公有的拷貝構(gòu)造函數(shù)。16、類MyClass的定義如下,若要對(duì)value賦值,則下面語(yǔ)句正確的是()。classMyClass{public:MyClass(){)MyClass(inti){value=-newint(i);}int*value;};A、MyClassmy;my.value=10;B、MyClassmy;木my.value:=10;C、MyClassmy;my.*value=10;D、MyClassmy(10);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因題目中定義的指針value是指向變量i的,所以直接利用語(yǔ)句MyClass(inti)fvalue=newint(i):}對(duì)value進(jìn)行賦值即可。17、若有如下程序:#includcusingnamespacestd;ints=0:classsample{staticintn;public:sample(inti){n=i;}staticvoidadd(){S+=n:}};intsample::n=0;intmain(){samplea2),b(5);sample::add0;cout<A、2B、5C、7D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:執(zhí)行語(yǔ)句“samplea(2),b(5)”;的結(jié)果是使n的值最終變?yōu)?,sample::add()語(yǔ)句調(diào)用函數(shù)staticvoidadd(),使得S=S+n=5。18、下列運(yùn)算符中不能在C++中重載的是()。A、?:B、+C、-D、<=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的有關(guān)概念。運(yùn)算符重載是針對(duì)C++原有運(yùn)算符進(jìn)行的,不能通過(guò)重載創(chuàng)造新的運(yùn)算符;除了.、.*、->*、::、?:這五個(gè)運(yùn)算符之外,其他運(yùn)算符都可以重載。19、下列重載函數(shù)中,正確的是()。A、voidfun(inta,floatb);voidfun(intC,floatd)B、voidfun(inta,floatb);voidfun(noata,intb)C、floatfun(inta,floatb);intfun(intb,floata)D、intfun(inta,intb);floatfun(inta,intb)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型卜不同。20、以下不正確的是()。A、語(yǔ)句for(i=0;;i++)表示無(wú)限循環(huán)B、for(;;)表示無(wú)限循環(huán)C、for()表示無(wú)限循環(huán)D、while(1)表示無(wú)限循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:選項(xiàng)c)是一個(gè)錯(cuò)誤的for語(yǔ)句格式,for()語(yǔ)句中三個(gè)表達(dá)式可以省略。但是兩個(gè)分號(hào)(;)不能省略。21、有如下程序:intx=3;do{x-=2:cout<A、1B、30C、1-2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:第一次循環(huán)輸出1,第二次循環(huán)輸出是-2。在輸出二次循環(huán)后!(--x)為0條件不滿足。停止循環(huán)。22、若有以下定義,說(shuō)法錯(cuò)誤的是()。inta=100,*p=&a:A、聲明變量p,其中*表示p是一個(gè)指針變量B、變量p經(jīng)初始化,獲得變量a的地址C、變量p只可以指向一個(gè)整型變量D、變量p的值為100標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:p是一個(gè)指針,用來(lái)存儲(chǔ)a變量的地址,而100是存儲(chǔ)在該地址的一個(gè)值用p表示的為半p。23、若已定義inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用是()。A、a[p·a]B、*(&a[i])C、p[i]D、a[10]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)組有N個(gè)元素,則數(shù)組元素引用為a(0)~a(N.1),共計(jì)N個(gè),沒(méi)有a(10)這個(gè)元素,最后的元素是a(9)。24、程序執(zhí)行后的輸出結(jié)果是()。#includevoidmain(){charflag=’c’;switch(flag){case’a’:cout<<"1"<A、12B、23C、34D、45標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閒lag=’c’,所以執(zhí)行cout<<"3"<25、有如下程序:#includeusingnamespacestd;classsample{private:intx,y;public:sample(inti,intj){x:i:y=j;}voiddisp(){cout<<”displ”<A、displB、disp2C、displdisp2D、程序編譯時(shí)出錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)閷?duì)象a被定義為常對(duì)象,所以a.disp()語(yǔ)句調(diào)用的是類的常成員函數(shù)voiddisp()const,輸出的結(jié)果是disp2。26、有如下程序:#includeusingnamespacestd;classTestClass{protected:’TestClass0{cout<<’x’}TestClass(charC){cout<A、yB、yxC、xyD、yy標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序中的類TestClass為基類,TestClassl為TestClass的派牛類。由main主函數(shù)入手,定義T’estClassl類型的對(duì)象d1,參數(shù)值為’V’。TestClassl類繼承TestClass,所以主函數(shù)中“TestClassldl(’y’);”語(yǔ)句首先調(diào)用調(diào)用基類中的“TestClass(){cout<<’x’;}”輸出x,然后調(diào)用“TestClassl(charc){cout<27、下面是關(guān)于派生類聲明的開(kāi)始部分,其中正確的是()。A、classvirtualB:publicAB、virtualclassB:publicAC、classB:publicAvirtualD、classB:virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:聲明派生類的一般形式為:class派生類名:[繼承方式]基類名。其中繼承方式包括:public,private,protected,而virtual為C++中的關(guān)鍵字。虛函數(shù)的使用方法是在基類用virtual聲明成員函數(shù)為虛函數(shù)。28、在函數(shù)中,可以用auto、extern、register和static這四個(gè)關(guān)鍵字中的一個(gè)來(lái)說(shuō)明變量的存儲(chǔ)類型,如果不說(shuō)明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、extemC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。C++語(yǔ)言變量的存儲(chǔ)類型分為如下幾種類型:auto——函數(shù)內(nèi)部的局部變量;static——靜態(tài)存儲(chǔ)分配;extern---全局變量;register——變量存儲(chǔ)在硬件寄存器中。29、若有以下程序:#includeusingnamespacestd;classTestClass{public:voidwho(){cout<<"TestClass"<who();return0:}則該程序運(yùn)行后的輸出結(jié)果是()。A、TestClass1B、TestClassC、0D、無(wú)輸出標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中的TestClasl為TestClass的派生類,主函數(shù)main中定義TestClass對(duì)象*p,TestClass1對(duì)象obil,然后p引用objl,執(zhí)行p->who()則是調(diào)用基類中的who函數(shù),輸出TestClass。30、下面敘述錯(cuò)誤的是()。A、派生類可以使用private派生B、對(duì)基類成員的訪問(wèn)必須是無(wú)二義性的C、基類成員的訪問(wèn)能力在派生類中維持不變D、賦值兼容規(guī)則也適用于多繼承的組合標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在建立派生類的時(shí)候,并不是簡(jiǎn)單地把基類的私有成員直接作為派生類的私有成員,把基類的公用成員直接作為派生類的公用成員。涉及如何確定基類的成員在派生類中的訪問(wèn)屬性問(wèn)題,不僅要考慮對(duì)基類成員所聲明的訪問(wèn)屬性,還要考慮派生類所聲明的對(duì)基類的繼承方式,根據(jù)這兩個(gè)因素共同決定基類成員在派生類中的訪問(wèn)屬性。所以本題選擇C)。31、要使程序執(zhí)行后的輸出結(jié)果為ABCD,應(yīng)在橫線處添加語(yǔ)句()。#includeusingnamespacestd;classA{public:A(){cout<<’A’;));classB:_________{public:B(){cout<<’B’;)};classC:virtualpublicA{public:C(){cout<<’C’;}};classD:publicB,publicC{public:D(){cout<<’D’;}};voidmain(){Dobj;)A、publicAB、privateAC、protectedAD、virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義了類D對(duì)象obj。其中D為類B和C的公有繼承,A是C的虛基類。題目中要求的輸出結(jié)果為“ABCD”,依次為類A,類B,類C,類D中構(gòu)造函數(shù)的輸出語(yǔ)句。為了保證基類通過(guò)多條路徑被派生類繼承時(shí),即保證A只被繼承一次,輸出一個(gè)A,所以不但需要聲明A為C的虛基類,同樣也要聲明A為B的虛基類。32、下面的描述中,正確的是()。A、virtual可以用來(lái)聲明虛函數(shù)B、含有純虛函數(shù)的類是不可以用來(lái)創(chuàng)建對(duì)象的,因?yàn)樗翘摶怌、即使基類的構(gòu)造函數(shù)沒(méi)有參數(shù),派生類也必須建立構(gòu)造函數(shù)D、靜態(tài)數(shù)據(jù)成員可以通過(guò)成員初始化列表來(lái)初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在基類中用virtual聲明成員函數(shù)為虛函數(shù),所以A是正確的。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的虛函數(shù)。純虛函數(shù)是一種特殊的虛函數(shù),它沒(méi)有具體的實(shí)現(xiàn)。靜態(tài)數(shù)據(jù)成員函數(shù)只能在類外進(jìn)行初始化。33、若要把函數(shù)voidfunO定義為TestClass的友元函數(shù),則應(yīng)該在類TestClass的定義中加入的語(yǔ)句是()。A、voidfriendfun()B、friendfun()C、friendvoidfun()D、TestClassvoidfun()標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果在類以外的其他地方定義了一個(gè)函數(shù),在類體中用fr

溫馨提示

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