第 1 頁(yè):選擇題 |
第 5 頁(yè):程序改錯(cuò) |
第 6 頁(yè):綜合應(yīng)用題 |
第 7 頁(yè):參考答案 |
21.D!窘馕觥恐挥泄欣^承的公有成員才能被派生類(lèi)的對(duì)象直接訪問(wèn),其他的情況都會(huì)因?yàn)樵L問(wèn)權(quán)限問(wèn)題產(chǎn)生錯(cuò)誤。
22.C!窘馕觥勘绢}考查考生對(duì)拷貝構(gòu)造函數(shù)的掌握。因?yàn)?+運(yùn)算是右結(jié)合的,所以在使用a對(duì)b賦值時(shí),b的hum變?yōu)?,而a的num變?yōu)?(先賦值再自加)。
23.D。【解析】本題考查cin流對(duì)象的幾種成員函數(shù)get,getline,read及流提取符>>的使用規(guī)則。
24.C!窘馕觥坑芍骱瘮(shù)main入手,定義TestClass類(lèi)的對(duì)象cs1,執(zhí)行cs1.va1,其中va1為靜態(tài)變量,根據(jù)intTestClass::val=0;初始化,TestClass中的TestClass(){val++;}構(gòu)造函數(shù)執(zhí)行后,val值為1。主函數(shù)中接著定義對(duì)象cs2,cs3,cs4。執(zhí)行cout< 25.B!窘馕觥勘绢}考查構(gòu)造函數(shù)的應(yīng)用。對(duì)象建立用初始化列表對(duì)數(shù)據(jù)成員進(jìn)行時(shí)。列表中的參數(shù)類(lèi)型要與構(gòu)造函數(shù)中形參類(lèi)型一致。B選項(xiàng)中第二個(gè)參數(shù)為13301111155,是字符串,而構(gòu)造函數(shù)中第二個(gè)形參為char型,兩者不一致造成錯(cuò)誤。
26.D!窘馕觥柯暶髋缮(lèi)的一般形成為class派生類(lèi)名:[繼承方式]基類(lèi)名。其中繼承方式包括public、private和protected。而virtual為C++中的關(guān)鍵字,所以選項(xiàng)C錯(cuò)。虛函數(shù)的使用方法是在基類(lèi)用virtual聲明成員函數(shù)為虛函數(shù)。
27.D!窘馕觥勘绢}考查的是友元類(lèi)的定義:類(lèi)A為類(lèi)B的友元類(lèi),則類(lèi)A的所有成員函數(shù)都是類(lèi)B的友元函數(shù),但反之則不一定成立。
28.B!窘馕觥刻摶(lèi)的引入就是為了消除二義性,其構(gòu)造函數(shù)的調(diào)用仍然是按照繼承的順序進(jìn)行的,對(duì)于多個(gè)虛基類(lèi)則按它們說(shuō)明的次序調(diào)用,虛基類(lèi)的構(gòu)造函數(shù)先于非虛基類(lèi)的構(gòu)造函數(shù)執(zhí)行。
29.C!窘馕觥烤幾g時(shí)的多態(tài)性是通過(guò)函數(shù)重載和模板體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)體現(xiàn)的。
30.D!窘馕觥渴紫榷xTestClass3的對(duì)象obj,參數(shù)為10。其中TestClass3為T(mén)estClass1和TestClass2的派生類(lèi)。然后調(diào)用disp成員函數(shù)。disp中首先執(zhí)行TestClassl::disp();,然后執(zhí)行TestClass2::disp();,最后執(zhí)行輸出語(yǔ)句cout< 31.D!窘馕觥坑芍骱瘮(shù)main入手,定義了類(lèi)D對(duì)象obi。其中D為類(lèi)B和C的公有繼承,A是C的
虛基類(lèi)。題目中要求的輸出結(jié)果為ABCD,依次為類(lèi)A、類(lèi)B、類(lèi)C、類(lèi)D中構(gòu)造函數(shù)的輸出語(yǔ)句。為了保證基類(lèi)通過(guò)多條路徑被派生類(lèi)繼承,即保證A只被繼承一次,輸出一個(gè)A,所以不但需要聲明A為C的虛基類(lèi),同樣也要聲明A為B的虛基類(lèi)。
32.B。【解析】所謂函數(shù)重載,是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)函數(shù)的實(shí)現(xiàn),類(lèi)AA中定義了兩個(gè)9et()函數(shù),一個(gè)為普通成員函數(shù),另一個(gè)為常成員函數(shù)。一般對(duì)象a既可以調(diào)用普通成員函數(shù)get,也可以調(diào)用常成員函數(shù)get,但是由于常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,所以題中通過(guò)對(duì)象a調(diào)用的函數(shù)為普通成員函數(shù)get(),返回值為5。常對(duì)象b只能調(diào)用常成員函數(shù),所以題中通過(guò)對(duì)象b調(diào)用的函數(shù)為常成員函數(shù)get(),返回值為7。
33.C!窘馕觥亢瘮(shù)Demo()為構(gòu)造函數(shù),而Demo(constDemo&x)為復(fù)制構(gòu)造函數(shù)。C++在創(chuàng)建一個(gè)對(duì)象時(shí),會(huì)自動(dòng)調(diào)用類(lèi)的構(gòu)造函數(shù),所以語(yǔ)句"Demoa,d;"將調(diào)用函數(shù)Demo()2次。當(dāng)一個(gè)對(duì)象作為實(shí)參傳遞給函數(shù)時(shí)為初始化形參,要調(diào)用拷貝構(gòu)造函數(shù);在函數(shù)返回一個(gè)對(duì)象時(shí)調(diào)用拷貝構(gòu)造函數(shù)。由此可知語(yǔ)句d=userCode(a);調(diào)用拷貝構(gòu)造函數(shù)3次。
34.C!窘馕觥勘绢}考查的是析構(gòu)函數(shù)和對(duì)象的生存期。在主函數(shù)中,首先定義了一個(gè)DA類(lèi)對(duì)象數(shù)組d,從初始化列表中可以看出,它包含三個(gè)對(duì)象;然后通過(guò)new運(yùn)算符動(dòng)態(tài)創(chuàng)建了一個(gè)DA類(lèi)的對(duì)象數(shù)組,并將首地址賦給DA類(lèi)指針P;接著通過(guò)delete[]運(yùn)算符銷(xiāo)毀指針P所指向的數(shù)組,故此時(shí)會(huì)輸出11。最后函數(shù)結(jié)束,銷(xiāo)毀前面定義的對(duì)象數(shù)組d,會(huì)輸出333。故最后的輸出結(jié)果是11333。
35.D!窘馕觥吭诮㈩(lèi)對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被繼承的聲明順序;執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員在類(lèi)中的聲明順序;執(zhí)行自身的構(gòu)造函數(shù)。根據(jù)以上總結(jié)以及題意可知答案選擇D選項(xiàng)。
36.B!窘馕觥<返回類(lèi)型>又稱(chēng)函數(shù)類(lèi)型,表示一個(gè)
函數(shù)所計(jì)算(或運(yùn)行)的結(jié)果值類(lèi)型,這里的類(lèi)型可以是預(yù)定義類(lèi)型(如int)、復(fù)合類(lèi)型(如double*)、用戶(hù)定義類(lèi)型(如枚舉類(lèi)),若返回值只做更新(或設(shè)置)等操作,則該函數(shù)返回類(lèi)型為void類(lèi)型,函數(shù)類(lèi)型和內(nèi)置數(shù)組不能作為返回類(lèi)型,但類(lèi)類(lèi)型和容器類(lèi)型可以被直接返回。
37.D!窘馕觥繕(gòu)造函數(shù)在對(duì)象被創(chuàng)建時(shí)由系統(tǒng)自動(dòng)調(diào)用,本題共創(chuàng)建3個(gè)對(duì)象。
38.C。【解析】派生類(lèi)從基類(lèi)保護(hù)繼承classYY:pro-tectedXX時(shí),基類(lèi)的公有成員在派生類(lèi)中變?yōu)楸Wo(hù)成員,基類(lèi)的保護(hù)成員在派生類(lèi)中仍然是保護(hù)成員;本題中YY本身有一個(gè)保護(hù)成員y2,再加上基類(lèi)XX的x2和x3,故選C。
39.A!窘馕觥窟\(yùn)算符的重載是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不能通過(guò)重載創(chuàng)造新的運(yùn)算符。
40.D!窘馕觥款(lèi)模板是一系列相關(guān)類(lèi)的模板,類(lèi)成員組成相同,成員函數(shù)的源代碼形式相同,所不同的是所針對(duì)的類(lèi)型。類(lèi)模板的成員函數(shù)都是模板函數(shù),在用類(lèi)模板定義對(duì)象時(shí),由于沒(méi)有像函數(shù)實(shí)參表這樣的額外信息渠道,因此無(wú)法按函數(shù)模板的方式省略模板實(shí)參。但可以為類(lèi)模板的參數(shù)設(shè)置默認(rèn)值。由此可知應(yīng)選D。
相關(guān)推薦:
2014年計(jì)算機(jī)二級(jí)考試C++上機(jī)考試試題及答案匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |