國(guó)家二級(jí)(C++)機(jī)試模擬試卷11(共367題)_第1頁(yè)
國(guó)家二級(jí)(C++)機(jī)試模擬試卷11(共367題)_第2頁(yè)
國(guó)家二級(jí)(C++)機(jī)試模擬試卷11(共367題)_第3頁(yè)
國(guó)家二級(jí)(C++)機(jī)試模擬試卷11(共367題)_第4頁(yè)
國(guó)家二級(jí)(C++)機(jī)試模擬試卷11(共367題)_第5頁(yè)
已閱讀5頁(yè),還剩106頁(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套)(共367題)國(guó)家二級(jí)(C++)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、無(wú)序線性表B、線性鏈表C、二叉鏈表D、順序存儲(chǔ)的有序表標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二分法查找只適用于順序存儲(chǔ)的有序表,表中的元素按值從小到大排列。2、下列敘述中,不屬于設(shè)計(jì)準(zhǔn)則的是()。A、提高模塊獨(dú)立性B、使模塊的作用域在該模塊的控制域中C、設(shè)計(jì)成多入口、多出口模塊D、設(shè)計(jì)功能可預(yù)測(cè)的模塊標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:大量軟件設(shè)計(jì)表明,以下的設(shè)計(jì)準(zhǔn)則是可以借鑒為設(shè)計(jì)的指導(dǎo)和對(duì)軟件結(jié)構(gòu)圖進(jìn)行優(yōu)化,這些準(zhǔn)則是:提高模塊獨(dú)立性:模塊規(guī)模適中;深度、寬度、扇出和扇入適當(dāng);使模塊的作用域在該模塊的控制域中;應(yīng)減少模塊的接口和界面的復(fù)雜性;設(shè)計(jì)成單入口、單出口的模塊;設(shè)計(jì)功能可預(yù)測(cè)的模塊。3、下列隊(duì)列的描述中,正確的是()。A、隊(duì)列屬于非線性表B、隊(duì)列在隊(duì)尾刪除數(shù)據(jù)C、隊(duì)列按“先進(jìn)后出”進(jìn)行數(shù)據(jù)操作D、隊(duì)列按“先進(jìn)先出”進(jìn)行數(shù)據(jù)操作標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:隊(duì)列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭,允許插入的一端叫做隊(duì)尾。隊(duì)列的操作數(shù)是依據(jù)先進(jìn)先出的原則進(jìn)行的。因此隊(duì)列亦稱作先進(jìn)先出的線性表,或后進(jìn)后出的線性表。4、對(duì)下列二樹(shù)進(jìn)行前序遍歷的結(jié)果為()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:遍歷就是不重復(fù)地訪問(wèn)二叉樹(shù)的所有結(jié)點(diǎn)。二叉樹(shù)遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:①前序,訪問(wèn)根→按前序遍歷左子樹(shù)→按前序遍歷右子樹(shù)。②中序,按中序遍歷左子樹(shù)→訪問(wèn)根→按中序遍歷右子樹(shù)。③后序,按后序遍歷左子樹(shù)→按后序遍歷右子樹(shù)→訪問(wèn)根。所以對(duì)該二叉樹(shù)的中序遍歷結(jié)果為ABDGEHCF。5、對(duì)于長(zhǎng)度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是()。A、冒泡排序?yàn)閚(n-1)/2B、簡(jiǎn)單插入排序?yàn)閚C、希爾排序?yàn)閚D、快速排序?yàn)閚/2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2:簡(jiǎn)單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為O(nlog2n)。6、為了使模塊盡可能獨(dú)立,要求()。A、內(nèi)聚程度要盡量高,耦合程度要盡量強(qiáng)B、內(nèi)聚程度要盡量高,耦合程度要盡量弱C、內(nèi)聚程度要盡量低,耦合程度要盡量弱D、內(nèi)聚程度要盡量低,耦合程度要盡量強(qiáng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。7、下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是()。A、軟件測(cè)試B、概要設(shè)計(jì)C、軟件維護(hù)D、詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段,其中開(kāi)發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試。8、數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫(kù)技術(shù)的重要特點(diǎn)之一。所謂數(shù)據(jù)獨(dú)立性是指()。A、數(shù)據(jù)與程序獨(dú)立存放B、不同的數(shù)據(jù)被存放在不同的文件中C、不同的數(shù)據(jù)只能被對(duì)應(yīng)的應(yīng)用程序所使用D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。所以選項(xiàng)A,選項(xiàng)B和選項(xiàng)C都不正確。9、在學(xué)校中,“班級(jí)”與“學(xué)生”兩個(gè)實(shí)體集之間的聯(lián)系屬于()關(guān)系。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)班可以有多名學(xué)生,而一名學(xué)生只能屬于一個(gè)班級(jí),所以“班級(jí)”與“學(xué)生”兩個(gè)實(shí)體集之間的聯(lián)系屬于一對(duì)多關(guān)系。10、軟件調(diào)試的目的是()。A、發(fā)現(xiàn)錯(cuò)誤B、改善軟件的性能C、改正錯(cuò)誤D、驗(yàn)證軟件的正確性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在對(duì)程序進(jìn)行了成功的測(cè)試之后將進(jìn)入程序調(diào)試,程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。11、在公有派生時(shí),派生類中定義的成員函數(shù)只能訪問(wèn)原基類的()。A、私有成員、保護(hù)成員和公有成員B、保護(hù)成員和私有成員C、公有成員和保護(hù)成員D、公有成員和私有成員標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:派生類中的成員,一部分是從基類繼承來(lái)的,另一部分是自己定義的新成員,所有的這些成員也分為公有、私有和保護(hù)三種訪問(wèn)權(quán)限。其中,從基類繼承下來(lái)的全部成員構(gòu)成派生類的基類,這部分的私有成員是派生類不能直接訪問(wèn)的,而公有成員和保護(hù)成員則是派生類可以直接訪問(wèn)的,但它們?cè)谂缮愔械脑L問(wèn)屬性隨著派生類對(duì)基類的繼承方式而改變。12、有如下定義:intb[10]={1,2,3,4,5,6,7,8,9,10},*q=b;則數(shù)值為8的表達(dá)式是()。A、*q+8B、*(q+7)C、*q+=8D、q+7標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)組的下標(biāo)是從0到數(shù)組的長(zhǎng)度減1。*(p+i)是取數(shù)組的第i+1個(gè)元素,即下標(biāo)為i的元素。因此*(p+7)取數(shù)組的第八個(gè)元素,即元素8。13、下面的符號(hào)中可以用作C++標(biāo)識(shí)符的是()。A、3testB、fcc~otherC、elseD、radius標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++標(biāo)識(shí)符是以字母、下劃線開(kāi)頭的,由字母、數(shù)字及下劃線組成的,不與關(guān)鍵字相同的字符串。選項(xiàng)C中else為關(guān)鍵字。14、下列程序執(zhí)行后,輸出的結(jié)果是()。intx=-5,y=0;while(++x)y++;cout<<y<<endl;A、1B、2C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:循環(huán)條件是++x,在C++中;對(duì)于非0值全都為真,0代表假。x的初始值為-5,所以循環(huán)能進(jìn)行4次。15、有如下類聲明:classTestClass{intn;public:TestClass(inti=0):n(i){}voidsetValue(intn0);};下面關(guān)于setValue成員函數(shù)的實(shí)現(xiàn)中,正確的是()。A、TestClass::setValue(intn0){n=n0;}B、voidTestClass::setValue(intn0){n=n0;}C、voidsetValue(intn0){n=n0;}D、setValue(intn0){n=n0;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中類成員函數(shù)的實(shí)現(xiàn)形式為:返回類型類名::成員函數(shù)名(參數(shù)列表){代碼塊}16、下面關(guān)于常成員函數(shù)的說(shuō)法中正確的是()。A、常成員函數(shù)不能修改任何的數(shù)據(jù)成員B、常成員函數(shù)只能修改一般的數(shù)據(jù)成員C、常成員函數(shù)只能修改常數(shù)據(jù)成員D、常成員函數(shù)只能通過(guò)常對(duì)象來(lái)調(diào)用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中使用const關(guān)鍵字來(lái)說(shuō)明函數(shù)稱為常成員函數(shù),常成員函數(shù)不能更新對(duì)象中的數(shù)據(jù)成員。17、下面的函數(shù)調(diào)用為:fun(x+y,3,min(n-1,y))則fun的實(shí)參個(gè)數(shù)是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,<形參列表>是由逗號(hào)分開(kāi)的,分別說(shuō)明函數(shù)的各個(gè)參數(shù)。在fun()函數(shù)中它包括三個(gè)形參:x+y,3和min(n-1,y);當(dāng)調(diào)用一個(gè)函數(shù)時(shí),實(shí)參與形參一對(duì)一匹配,所以實(shí)參個(gè)數(shù)也是3個(gè)。18、下面關(guān)于虛函數(shù)的描述中,正確的是()。A、基類中利用virtual關(guān)鍵字說(shuō)明一個(gè)虛函數(shù)后,其派生類中定義相同的原型函數(shù)時(shí)可不必加virtual來(lái)說(shuō)明B、虛函數(shù)是非成員函數(shù)C、虛函數(shù)是static類型的成員函數(shù)D、派生類中的虛函數(shù)與基類中類型相同的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)或類型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:虛函數(shù)是非static類型的成員函數(shù),基類中可以利用virtual關(guān)鍵字來(lái)聲明虛函數(shù),派生類中定義相同原型函數(shù)時(shí)可不必加virtual說(shuō)明,直接重寫基類中的函數(shù)。在派生類中的虛函數(shù)必須與基類中的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)與類型。19、有如下程序:#include<iostream>usingnamespacestd;classBase{protected:Base(){cout<<ase’;}Base(charc){cout<<c;}};classDerived:publicBase{public:Derived(charc){cout<<c;}};intmain(){Derivedd(’Derived’);return0;}執(zhí)行這個(gè)程序屏幕上將顯示輸出()。A、DerivedB、DerivedBaseC、BaseDerivedD、DerivedDerived標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:派生類Derived由基類Base公有派生,在派生類構(gòu)造函數(shù)聲明時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用基類的缺省構(gòu)造函數(shù)。調(diào)用Derivedd(’Deftved’);后,執(zhí)行類Derived構(gòu)造函數(shù)的Derived(charc),系統(tǒng)自動(dòng)調(diào)用基類的缺省構(gòu)造函數(shù)Base(),輸出字母Base;再執(zhí)行派生類的構(gòu)造函數(shù)Derived(charc),輸出字母Derived。20、有如下程序:#include<iostream>usingnamespacestd;intmain(){cout.fill(’*’);cout.width(6);cout.fill(’#’);cout<<888<<endl;return0:}的執(zhí)行結(jié)果是()。A、###888B、888###C、***888D、888***標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++在流操作中,利用cout對(duì)象的width屬性設(shè)置輸出字符的寬度,用fill函數(shù)來(lái)設(shè)置需要填充的字符。題目程序中,首先設(shè)置填充字符為*,輸出寬度為6,但在輸出前又設(shè)置了填充字符為#,所以在輸出時(shí),其填充字符為#,由于888不足6個(gè)字符,所以在前面以三個(gè)“#”來(lái)填充。21、假定一個(gè)類的構(gòu)造函數(shù)為A(intaa,intbb){a=aa--;b=a*bb;},則執(zhí)行Ax(4,5);語(yǔ)句后,x.a(chǎn)和x.b的值分別為()。A、3和15B、5和4C、4和20D、20和5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閍a后減,所以a=4:b的值與a、bb相關(guān),b=4*5=20,與aa沒(méi)有任何關(guān)系。22、在類中說(shuō)明的成員可以使用關(guān)鍵字的是()。A、publicB、extemC、cpuD、register標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:extem用于聲明外部變量的,register聲明寄存器類型變量,無(wú)cpu類型。它們都不能聲明類成員。public聲明為公有訪問(wèn)權(quán)限。23、下列不能作為類的成員的是()。A、自身類對(duì)象的指針B、自身類對(duì)象C、自身類對(duì)象的引用D、另一個(gè)類的對(duì)象標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類的定義,如果有自身類對(duì)象,會(huì)使其循環(huán)定義,選項(xiàng)B錯(cuò)誤。在類中具有自身類的指針,可以實(shí)現(xiàn)鏈表的操作,當(dāng)然也可以使用對(duì)象的引用,類中可以有另一個(gè)類的對(duì)象,即成員對(duì)象。24、使用地址作為實(shí)參傳給形參,下列說(shuō)法正確的是()。A、實(shí)參是形參的備份B、實(shí)參與形參無(wú)聯(lián)系C、形參是實(shí)參的備份D、參與形參是同一對(duì)象標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:地址作為實(shí)參,表示實(shí)參與形參代表同一個(gè)對(duì)象。如果實(shí)參是數(shù)值,形參也是普通變量,此時(shí)形參是實(shí)參的備份。25、下列程序的輸出結(jié)果是()。#include<iostrearn.h>voidmain(){intn[][3]={10,20,30,40,50,60};int(*p)[3];p=n;cout<<p[0][0]<<’’,’’<<*(p[0]+1)<<’’,’’<<(*p)[2]<<endl;}A、10,30,50B、10,20,30C、20,40,60D、10,30,60標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:如果數(shù)組元素都是相同類型的指針,則稱這個(gè)數(shù)組為指針數(shù)組。指針數(shù)組一般用于處理二維數(shù)組。聲明的格式為:<數(shù)據(jù)類型><(*變量名)><[元素個(gè)數(shù)]>。p表示指向數(shù)組n的行指針,初始化“(*p)[3]=n;”,地址的等價(jià)形式:p+i、p[i]、*(p+i)都表示數(shù)組第i+1行的第1個(gè)元素的首地址。*(p+i)+j、p[i]+j、&p[i][j]都表示數(shù)組第i+1行、第j+1列元素的地址。值的等價(jià)形式:*(p+j)+j)、*(1)[i]+j)、p[i][j]都表示數(shù)組第i+1、第j+1列元素的值。所以本題中分別訪問(wèn)數(shù)組元素p[0][0],p[0][1],p[0][2]。26、設(shè)程序如下:#include<iostrearn>usingnarnespacestd;intmain(){int**p,*q,r=10;q=&r;p=&q;cout<<**p+1<<endl;return0;}以上程序的輸出結(jié)果是()。A、p的地址B、r的地址C、11D、運(yùn)行錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:p為一個(gè)二級(jí)指針,其存放的是指針變量q的地址,而q存放的又是r的地址。故式子**p相當(dāng)于對(duì)r的引用。所以最后輸出的結(jié)果為11。27、下面關(guān)于函數(shù)模板的表述中不正確的是()。A、類模板的成員函數(shù)都是模板函數(shù)B、類模板本身在編譯過(guò)程中不會(huì)產(chǎn)生任何代碼C、類模板只能有虛擬類型的參數(shù)D、用類模板定義一個(gè)對(duì)象時(shí),實(shí)參不能省略標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:類模板本身在編譯時(shí)是不會(huì)產(chǎn)生代碼的,只有在其實(shí)例化以后才產(chǎn)生代碼。定義一個(gè)對(duì)象時(shí),不能省略其實(shí)參。28、下面類的聲明中的幾個(gè)語(yǔ)句,正確的是(設(shè)定語(yǔ)句是主函數(shù)中的語(yǔ)句)()。classTestClass{private:intdata;public:TestClass(intg_data){data=g_data;}voidshow(){cout<<data<<endl;}};A、TestClass*p;B、TestClassm;C、TestClass.data=8;D、TestClass.show();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中,若沒(méi)有類的顯式聲明構(gòu)造函數(shù)則系統(tǒng)會(huì)為其提供一個(gè)默認(rèn)的構(gòu)造函數(shù),若提供了構(gòu)造函數(shù)則會(huì)將系統(tǒng)提供的默認(rèn)的構(gòu)造函數(shù)覆蓋。調(diào)用構(gòu)造函數(shù)時(shí),實(shí)參必須與形參匹配。但是如果聲明一個(gè)對(duì)象指針時(shí),不是定義一個(gè)對(duì)象,不調(diào)用對(duì)象的構(gòu)造函數(shù)。29、類中的一個(gè)字符指針成員指向具有m個(gè)字節(jié)的存儲(chǔ)空間時(shí),它所能存儲(chǔ)的字符串的最大長(zhǎng)度為()。A、m-2B、m-1C、mD、m+1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C++中,字符串以’\0’作為字符串結(jié)束的標(biāo)志,所以個(gè)數(shù)為m-1。30、有如下程序:#include<iostream>usingnamespacestd;classTestClass{staticinti;public:TestClass(){i++;}~TestClass(){i--;)staticintgetVal0{returni;}};intTestClass::i=0;voidf(){TestClassobj2;cout<<o(jì)bj2.getVal();}intmain(){TestClassobj1;f();TestClass*obj3=newTestClass;cout<<o(jì)bj3->getVal();deleteobj3;cout<<TestClass::getVa1();return0;}程序的輸出結(jié)果是()。A、232B、221C、222D、231標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于i是類TestClass的靜態(tài)成員,該成員被類的所有實(shí)例共享。當(dāng)定義obil時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)TestClass(),i的值將加1;調(diào)用函數(shù)f()時(shí),在定義obj2時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)TestClass(),i的值將再加1;調(diào)用obj2.gotVal();后,將i的值輸出,輸出值為2;當(dāng)調(diào)用函數(shù)f()即將結(jié)束時(shí),系統(tǒng)自動(dòng)調(diào)用析構(gòu)函數(shù)~TestClass(),i的值將減1;當(dāng)定義obj3時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)TestClass(),i的值將加1,調(diào)用cout<getVal();后,將i的值輸出,輸出值為2:調(diào)用deleteobj3后將執(zhí)行TestClass的析構(gòu)函數(shù)~TestClass(),執(zhí)行后,i的值將減1,TestClass::getVal()為類的一個(gè)靜態(tài)成員函數(shù),其作用是返回私有靜態(tài)成員變量i的值1。31、下面關(guān)于派生類的描述中錯(cuò)誤的是()。A、派生類中至少有一個(gè)基類B、一個(gè)派生類可以作為另一個(gè)派生類的基類C、派生類只繼承了基類中的公有成員和保護(hù)成員D、派生類的缺省繼承方式是私有標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:繼承方式有公有繼承、私有繼承和保護(hù)繼承3種,缺省的繼承方式是私有繼承。派生類從基類繼承所有的成員,但是對(duì)于基類的私有成員派生類是不可直接訪問(wèn)的。32、有如下程序:#include<iostream>usingnamespacestd;classTestClass{intn;public:TestClass(intk):n(k){}intget(){returnn;}imgetOconst{returnn+l;}};intmain(){TestClassp(5);constTestClassq(6);cout<<p.get()<<q.get();return0:}執(zhí)行后的輸出結(jié)果是()。A、55B、57C、75D、77標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中對(duì)常對(duì)象的成員函數(shù)調(diào)用,將自動(dòng)調(diào)用其常成員函數(shù),程序中調(diào)用原型為"intgot()const;"的函數(shù),對(duì)于非常對(duì)象將調(diào)用原型為"intget();’’的函數(shù)。因?yàn)槭紫扔?對(duì)對(duì)象p進(jìn)行了初始化,所以執(zhí)行p.get()時(shí)直接返回5,而對(duì)于常對(duì)象則以6對(duì)q進(jìn)行初始化,在調(diào)用q.get()時(shí),將調(diào)用原型為"intgot()const;"的函數(shù),該函數(shù)將返回n+1,第二個(gè)輸出應(yīng)為7,所以本題答案為57。33、執(zhí)行下列語(yǔ)句:#include<iostream>usingnamespacestd;intmain(){intx=3;if(x=5)cout<<x++<<endl;elsecout<<x<<endl;return0;}程序的輸出是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:if(條件)語(yǔ)句1else語(yǔ)句2,語(yǔ)句的執(zhí)行過(guò)程是:首先判斷條件是否為真(不為0),為真則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2。題目中的條件是x=5,意思是把5賦予變量x,它將x置5且返回一個(gè)真值。34、假定TestClass為一個(gè)類。則該類的拷貝構(gòu)造函數(shù)的聲明語(yǔ)句為()。A、TestClass(TestClassx)B、TestClass&(TestClassx)C、TestClass(TestClass*x)D、TestClass(TestClass&x)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++中的拷貝構(gòu)造函數(shù)是用一個(gè)已知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象。拷貝構(gòu)造函數(shù)的一般格式如下:(類名)::<類名)(const(類名)&<引用對(duì)象名>);其中eonst可以省略。35、下面關(guān)于指針的說(shuō)法中錯(cuò)誤的是()。A、在指針定義的同時(shí)可以對(duì)其進(jìn)行初始化B、指針根據(jù)其所指向變量的類型的不同,所占用內(nèi)存大小也不同C、指針中存放的是內(nèi)存單元的地址D、相同類型的指針之間可以相互賦值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:指針是一種用來(lái)存放其他變量地址的數(shù)據(jù)類型,它的聲明形式為:(類型)*(變量名),可以在聲明的時(shí)候?qū)ζ溥M(jìn)行初始化。由于其存放的是內(nèi)存單元的地址,所以大小一般都是4個(gè)字節(jié)。36、下面不屬于C++的預(yù)定義的流對(duì)象是()。A、cinB、iostreamC、clogD、cerr標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中的四個(gè)預(yù)定義流對(duì)象:cout,cin,cerr,clog。37、下列程序執(zhí)行后,屏幕的輸出是()。#include<iostream>usingnamespacestd;voidswap(intx,inty){inttemp=x;x=y;y=temp;cout<<’’x=’’<<x<<’’,y=’’<<y<<endl;}intmain(){intx=3,y=2;swap(x,y);cout<<’’x=’’<<x<<’’,y=’’<<y<<endl;return0:}A、x=3,y=2x=3,y=2B、x=2,y=3x=3,y=2C、x=2,y=3x=2,y=3D、x=3,y=2x=2,y=3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中默認(rèn)的參數(shù)傳遞是值傳遞,也就是將實(shí)參的副本傳遞給被調(diào)用函數(shù)的形參,被調(diào)用的函數(shù)中對(duì)形參的任何改動(dòng)都不會(huì)影響實(shí)參。38、在每個(gè)C++程序中必須有且僅有一個(gè)()。A、函數(shù)B、主函數(shù)C、預(yù)處理指令D、語(yǔ)句標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在每一個(gè)C++程序中必須有且只有一個(gè)主函數(shù),每個(gè)程序的執(zhí)行都是從主函數(shù)的開(kāi)始。39、有如下程序:#inelude<iostream>usingnarnespacestd;classA{public:A(){cout<<’’A’’;}};classB{public:B(){cout<<’’B’’;}};classC:publicA{Bb;public:C0{cout<<’’C’’;}};intmain(){Cobj;return0;}執(zhí)行后的輸出結(jié)果是()。A、ABCB、BACC、ACBD、CBA標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++程序中的執(zhí)行子類,首先執(zhí)行基類的構(gòu)造函數(shù),然后執(zhí)行數(shù)據(jù)成員類的構(gòu)造函數(shù),最后執(zhí)行子類本身的構(gòu)造函數(shù),所以輸出結(jié)果為ABC。二、基本操作題(本題共1題,每題1.0分,共1分。)40、使用VC6打開(kāi)考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使得程序輸出:10TestClass1注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。#include<iostream>classTestClass1{public:TestClass1(){};//********error********private:virtual~TestClass1(){usingnamespacestd;cout<<’’TestClass1’’<<endl;};};iassTestClass2:publicTestClass1{public://********error********explicitTestClass2(inti){m__i=i;};TestClass2&operator()(inti){this->m__i=i;}voidprint(){//********error********cout<<m__i<<endl;}private:intm__i;};voidfun(TestClass2C1){C1.print();}intmain(){fun(10);return0;}標(biāo)準(zhǔn)答案:(1)刪除’’private:’’語(yǔ)句(2)TestClass2(inti)(3)std::cout<<m_i<<std::endl;知識(shí)點(diǎn)解析:(1)第1個(gè)標(biāo)識(shí)下的“virtual~TestClass1()”語(yǔ)句是TestClass1()析構(gòu)函數(shù),不是私有函數(shù),所以刪除“private:”。(2)“explicitTestClass2(inti)”構(gòu)造函數(shù)語(yǔ)句中的“explicit”是禁止隱式轉(zhuǎn)換。程序中無(wú)法實(shí)現(xiàn)對(duì)類TestClass2的直接使用,所以這里應(yīng)該將其刪除。即“TestClass2(inti)”。(3)第3個(gè)標(biāo)識(shí)下實(shí)現(xiàn),fun函數(shù)中m_i的標(biāo)準(zhǔn)輸出,即在屏幕上輸出10。在程序中用到C++標(biāo)準(zhǔn)庫(kù)時(shí),要使用std標(biāo)準(zhǔn)命名空間進(jìn)行限定。cout為標(biāo)準(zhǔn)庫(kù)函數(shù),所以要聲明cout是在命名空間。std中定義的流對(duì)象,即“std::cout<<m_i<<std::endl;”或者添加“usingnamespacestd;”。三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)41、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.epp。請(qǐng)完成函數(shù)fun(char*s),該函數(shù)完成以下功能:(1)把S中的大寫字母轉(zhuǎn)換成小寫字母,把其中的小寫字母轉(zhuǎn)換成大寫字母。并且在函數(shù)中調(diào)用寫函數(shù)WriteFile()將結(jié)果輸出到modi2.txt文件中。例如:s=’’helloTEST’’,則結(jié)果為:s=’’HELLOtest’’(2)完成函數(shù)WriteFile(char*s),把字符串輸入文件中。提示:打開(kāi)文件使用的第二參數(shù)為ios注意:不要改動(dòng)main函數(shù),不得增行或行,也不得更改程序的結(jié)構(gòu)。#include<iostream>#include<fstream>#include<cmath>usingnarnespacestd;voidWriteFile(char*s){}voidfun(ehar*s){}voidClearFile(){orstreamout1;out1.open(’’modi2.txt’’);out1.close();}intmain(){ClearFile();chars[1024];tout<<’’pleaseinputastring:’’<<endl;cin.getline(s,1024);fun(s);return.0;}標(biāo)準(zhǔn)答案:(1)voidWriteFile(char*s)中的命令語(yǔ)句:ofstreamout1;out1.open(’’modi2.txt",ios_base::binarylios_base::app);//打開(kāi)文件modi2out1<<s://寫入字符串sout1.close();(2)voidfun(char*s)中的命令語(yǔ)句:for(inti=0;s[i]!=0;i++)//循壞判斷每一個(gè)字符{if(s[i]>=’A’&&s[i]<=’Z’)//如果是大寫字符,轉(zhuǎn)換為小寫字符{s[i]=s[i]-’A’+’a’;//s[i]-’A’+’a’等于字符s[i]+’32’}Elseif(s[i]>=’a’&&s[i]<=’z’)∥如果是小寫字符,轉(zhuǎn)換為大寫字符{s[i]=s[i]-’a’+’A’;//s[i]-’a’+’A’等于字符s[i]-32}}WriteFile(s);知識(shí)點(diǎn)解析:(1)在WriteFile(char*s)函數(shù)中,利用標(biāo)準(zhǔn)流ofstream實(shí)現(xiàn)字符串寫入文件modi2.txt。(2)在fun函數(shù)中,利用for循環(huán)逐個(gè)判斷字符是大寫還是小寫。(3)如果是大寫,那么加上32實(shí)現(xiàn)大寫轉(zhuǎn)換為小寫。否則,就減去32,實(shí)現(xiàn)小寫到大寫的轉(zhuǎn)換。最后調(diào)用前面實(shí)現(xiàn)的WriteFile函數(shù),將字符串寫入文件。國(guó)家二級(jí)(C++)機(jī)試模擬試卷第2套一、選擇題(本題共36題,每題1.0分,共36分。)1、有如下函數(shù)模板:templateTcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast(i);D、cast(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)模板的基本運(yùn)用,屬于基礎(chǔ)知識(shí)。函數(shù)模板實(shí)際上是建立一個(gè)通用函數(shù),其函數(shù)類型和形參類型不具體指定,用一個(gè)虛擬的類型代表,這個(gè)通用函數(shù)就是函數(shù)模板。函數(shù)模板可以設(shè)定默認(rèn)參數(shù),這樣在調(diào)用模板函數(shù)時(shí)就可以省略實(shí)參,函數(shù)模板的實(shí)例就是一個(gè)函數(shù)的定義。所以本題答案為D。2、執(zhí)行下列語(yǔ)句段后,輸出字符"*"的個(gè)數(shù)是()。for(inti=50;i>1;--i)cout<<′*′;A、48B、49C、50D、51標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查for循環(huán)語(yǔ)句,--i表示用之前先減1,那么這個(gè)for循環(huán)語(yǔ)句只有50到2時(shí)才會(huì)輸出"*",所以總共輸出49次。3、如果派生類以protected方式繼承基類,則原基類的protected成員和public成員在派生類中的訪問(wèn)屬性分別是()。A、public和publicB、public和protectedC、protected和publicD、protected和protected標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問(wèn)屬性,在受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,所以本題答案為D。4、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是A、a[0]="AAA"B、strcpy(a[1],"BBB")C、a[2][3]=’C’D、a[1][1]=a[2][2]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查二維字符數(shù)組,a[0]="AAA"中a[0]表示一個(gè)地址,不能將字符串直接賦值給指針,所以A選項(xiàng)錯(cuò)誤。5、有如下類定義:classAA{inta;public:AA(intn=0):a(n){}};classBB:publicAA{public:BB(intn)__________};其中橫線處缺失部分是A、:AA(n){}B、:a(n){}C、{a(n);}D、{a=n;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù),其一般形式為:派生類構(gòu)造函數(shù)名(總參數(shù)表列):基類構(gòu)造函數(shù)名(參數(shù)表列)所以只有A選項(xiàng)正確。6、下列與隊(duì)列結(jié)構(gòu)有關(guān)聯(lián)的是A、函數(shù)的遞歸調(diào)用B、數(shù)組元素的引用C、多重循環(huán)的執(zhí)行D、先到先服務(wù)的作業(yè)調(diào)度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:隊(duì)列的修改是依先進(jìn)先出的原則進(jìn)行的,D正確。7、已知函數(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)正確。8、有如下類定義: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)。9、下面描述不屬于軟件特點(diǎn)的是A、軟件是一種邏輯實(shí)體,具有抽象性B、軟件在使用中不存在磨損、老化問(wèn)題C、軟件復(fù)雜性高D、軟件使用不涉及知識(shí)產(chǎn)權(quán)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件具有以下特點(diǎn):軟件是一種邏輯實(shí)體,具有抽象性;軟件沒(méi)有明顯的制作過(guò)程;軟件在使用期間不存在磨損、老化問(wèn)題;對(duì)硬件和環(huán)境具有依賴性;軟件復(fù)雜性高,成本昂貴;軟件開(kāi)發(fā)涉及諸多的社會(huì)因素,如知識(shí)產(chǎn)權(quán)等。故選項(xiàng)D正確。10、下列運(yùn)算符中,不能作為成員函數(shù)重載的是A、+B、=C、<<(流運(yùn)算符)D、||標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:流運(yùn)算符"<<"不能重載為類的成員函數(shù),因?yàn)橐坏┰摬僮鞣剌d為類的成員函數(shù),那么左操作數(shù)將只能是該類類型的對(duì)象,這樣的用法與正常I/O使用方式相反。為了支持正常用法,左操作數(shù)必須為ostream類型。但是,標(biāo)準(zhǔn)庫(kù)中的類是不能人為添加成員的,答案為C。11、在定義一個(gè)類模板時(shí),模板形參表是用一對(duì)括號(hào)括起來(lái)的,所采用的括號(hào)是A、圓括號(hào)B、中括號(hào)C、尖括號(hào)D、花括號(hào)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:定義類模板時(shí),模板形參表同樣使用尖括號(hào)括起來(lái),答案為C。12、結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu)是A、順序、選擇和重復(fù)(循環(huán))B、過(guò)程、子程序和分程序C、順序、選擇和調(diào)用D、調(diào)用、返回和轉(zhuǎn)移標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu):順序、選擇和重復(fù),故A選項(xiàng)正確。13、判斷一個(gè)字符串是否是回文串的遞歸函數(shù)定義如下:boolhuiwen(strings){intn=s.length();if(n<=1)returntrue;if(s[0]==s[n-1])returnhuiwen(s.substr(1,n-2));elsereturnfalse;}若執(zhí)行函數(shù)調(diào)用表達(dá)式huiwen("radar"),函數(shù)huiwen被調(diào)用的次數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)huiwen通過(guò)遞歸地比較字符串s的首尾字符是否相等,來(lái)判斷字符串s是否是回文串,所以字符串"radar"需要判斷"radar"的首尾字符、"ada"的首尾字符、"d"的首尾字符,函數(shù)huiwen需要被調(diào)用3次,答案為C。14、有如下程序:#includeusingnamespacestd;classBase{public:voidfun1(){cout<<"Base\n";}virtualvoidfun2(){cout<<"Base\n";}};classDerived:publicBase{public:voidfun1(){cout<<"Derived\n";}voidfun2(){cout<<"Derived\n";}};voidf(Base&b){b.fun1();b.fun2();}intmain(){Derivedobj;f(obj);return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BaseBaseB、BaseDerivedC、DerivedBaseD、DerivedDerived標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù),本題中定義了一個(gè)派生類對(duì)象obj,執(zhí)行f函數(shù)后,將派生類對(duì)象obj轉(zhuǎn)化為基類對(duì)象,由于fun1不是虛函數(shù),所以輸出基類的fun1;而fun2是虛函數(shù),所以輸出派生類的fun2,所以本題答案為B。15、某二叉樹(shù)中共有935個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)有435個(gè),則該二叉樹(shù)中度為2的結(jié)點(diǎn)個(gè)數(shù)為A、64B、66C、436D、434標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。對(duì)任何一棵二叉樹(shù),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。葉子結(jié)點(diǎn)有435個(gè),則度為2的結(jié)點(diǎn)為434,D選項(xiàng)正確。16、有如下程序:#includeusingnamespacestd;classBase{public:Base(){cout<<’B’;}~Base(){cout<<’b’;}};classDerived:publicBase{public:Derived(){cout<<’D’;}~Derived(){cout<<’d’;}};intmain(){Derivedobj;return0;}運(yùn)行這個(gè)程序的輸出是A、BDbdB、BDdbC、DBbdD、DBdb標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類構(gòu)造函數(shù)在構(gòu)造派生類過(guò)程中,首先初始化基類,然后根據(jù)聲明次序初始化派生類的成員,最后執(zhí)行函數(shù)體;析構(gòu)函數(shù)在程序結(jié)束時(shí)負(fù)責(zé)撤銷自己的成員,首先運(yùn)行派生類析構(gòu)函數(shù),然后按繼承層次依次向上調(diào)用各基類析構(gòu)函數(shù);在main函數(shù)中,創(chuàng)建Derived類對(duì)象obj,此時(shí)調(diào)用Derived的構(gòu)造函數(shù),構(gòu)造函數(shù)在進(jìn)入函數(shù)體之前,又調(diào)用基類Base的構(gòu)造函數(shù)構(gòu)造基類,由于Derived中沒(méi)有數(shù)據(jù)成員,所以構(gòu)造完基類,執(zhí)行函數(shù)體,輸出為:"BD";撤銷obj對(duì)象時(shí),首先執(zhí)行Derived的析構(gòu)函數(shù),然后調(diào)用基類的析構(gòu)函數(shù),輸出為"db";答案為B。17、某二叉樹(shù)共有845個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)有45個(gè),則度為1的結(jié)點(diǎn)數(shù)為A、400B、754C、756D、不確定標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。對(duì)任何一棵二叉樹(shù),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。二叉樹(shù)共有845個(gè)結(jié)點(diǎn),度為0的結(jié)點(diǎn)有45個(gè),度為1的結(jié)點(diǎn)數(shù)為n1,度為2的結(jié)點(diǎn)數(shù)為n2,則845=45+n1+n2,且45=n2+1,則n1=756,C選項(xiàng)正確。18、有如下類定義:classMyClass{public:MyClass(constchar*c=NULL);~MyClass();______________//運(yùn)算符=的聲明private:char*p;};若要使語(yǔ)句序列MyClasss1("test"),s2;s2=s1;能夠正常運(yùn)行,橫線處的語(yǔ)句應(yīng)為A、friendMyClass&operator=(constMyClass&);B、MyClass&operator=(constMyClass&);C、MyClass&operator=(MyClass,constMyClass&);D、friendMyClass&operator=(MyClass,constMyClass&);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:首先賦值運(yùn)算符只能重載為成員函數(shù),以便編譯器可以知道是否需要合成一個(gè),選項(xiàng)A、D錯(cuò)誤;另外賦值運(yùn)算符是二元運(yùn)算符,左操作數(shù)是調(diào)用該賦值運(yùn)算符的類對(duì)象,所以賦值運(yùn)算符的重載函數(shù)的形參只需要右操作數(shù),選項(xiàng)C中有兩個(gè)形參,錯(cuò)誤;答案為B。19、關(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)解析:程序中的typename都可以替換為class,但程序中的class不可以全部替換為typename。在模板類型形參中除了typename和class以外,也可以用常規(guī)類型來(lái)聲明參數(shù)的類型,所以C、D選項(xiàng)錯(cuò)誤。20、執(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次。21、有如下類和對(duì)象的定義:classConstants{public:staticdoublegetPI(){return3.1416;}};Constantsconstants;下列各組語(yǔ)句中,能輸出3.1416的是()。A、cout<getPI();和cout<B、cout<C、cout<getPI();和cout<getPI();D、cout<標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查靜態(tài)成員函數(shù)。靜態(tài)成員函數(shù)由于沒(méi)有this指針,所以不能訪問(wèn)本類中的非靜態(tài)成員。引用靜態(tài)成員函數(shù)有2種方式,一種是直接使用類來(lái)引用,即Constants::getPI();另一種是使用對(duì)象來(lái)引用,即constants.getPI()。所以本題答案為D。22、下面不屬于需求分析階段任務(wù)的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說(shuō)明書評(píng)審D、制定軟件集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作有:需求獲??;需求分析;編寫需求規(guī)格說(shuō)明書;需求評(píng)審,所以選擇D)。23、有如下兩個(gè)類定義:classAA{};classBB{AAv1,*v2;BBv3;int*v4;};其中有一個(gè)成員變量的定義是錯(cuò)誤的,這個(gè)變量是A、v1B、v2C、v3D、v4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查類的定義,類定義中不能包含自己本身的對(duì)象,否則會(huì)引起像無(wú)限遞歸的問(wèn)題,結(jié)果就是內(nèi)存被消耗殆盡。所以C選項(xiàng)錯(cuò)誤。24、下列關(guān)于類模板的表述中,錯(cuò)誤的是A、類模板的成員函數(shù)都是模板函數(shù)B、可以為類模板參數(shù)設(shè)置默認(rèn)值C、類模板表述了一組類D、類模板中只允許有一個(gè)類型參數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查模板的相關(guān)知識(shí),一個(gè)類模板可以有多個(gè)類型參數(shù)。所以D選項(xiàng)錯(cuò)誤。25、若有定義語(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)正確。26、有如下類定義: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)。27、在數(shù)據(jù)庫(kù)中,數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和A、數(shù)據(jù)約束B、數(shù)據(jù)類型C、關(guān)系運(yùn)算D、查詢標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束3部分組成。故A選項(xiàng)正確。28、某二叉樹(shù)的前序序列為ABCD,中序序列為DCBA,則后序序列為A、BADCB、DCBAC、CDABD、ABCD標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二叉樹(shù)遍歷可以分為3種:前序遍歷(訪問(wèn)根結(jié)點(diǎn)在訪問(wèn)左子樹(shù)和訪問(wèn)右子樹(shù)之前)、中序遍歷(訪問(wèn)根結(jié)點(diǎn)在訪問(wèn)左子樹(shù)和訪問(wèn)右子樹(shù)兩者之間)、后序遍歷(訪問(wèn)根結(jié)點(diǎn)在訪問(wèn)左子樹(shù)和訪問(wèn)右子樹(shù)之后)。本題中前序序列為ABCD,中序序列為DCBA,可知D為根結(jié)點(diǎn),ABC為左側(cè)結(jié)點(diǎn),C為D左子結(jié)點(diǎn),A為B子結(jié)點(diǎn),故后序序列為DCBA,故B選項(xiàng)正確。29、有如下程序:#includeusingnamespacestd;voidfun(int&x,int&y){y=y+x;x=y/4;x++;}intmain(){intx=4,y=5;fun(x,y);cout<A、4,5B、3,5C、3,9D、2,5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun兩個(gè)形參x,y都是引用類型,函數(shù)功能是通過(guò)形參的引用類型修改實(shí)參值,首先修改y值為x、y之和;然后將修改后的y值除以4,結(jié)果賦給x,再將x自增1;main函數(shù)中定義x=4,y=5,通過(guò)fun函數(shù)的調(diào)用,修改y的值為4+5=9,x的值為9/4+1=3,最終輸出結(jié)果為3,9,答案為C。30、有如下程序:#includeusingnamespacestd;classAA{public:AA(intn){cout<A、321B、231C、213D、123標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:構(gòu)造函數(shù)初始化列表僅指定用于初始化成員的值,并不指定這些初始化執(zhí)行的次序;初始化執(zhí)行的次序是根據(jù)類定義中成員的聲明順序完成的,初始化列表結(jié)束后,再執(zhí)行函數(shù)體;程序創(chuàng)建CC對(duì)象c,調(diào)用CC的構(gòu)造函數(shù),由于在類CC中,AA類對(duì)象a首先聲明,所以先調(diào)用AA類的構(gòu)造函數(shù),完成成員a的初始化,輸出"1",再調(diào)用BB類的構(gòu)造函數(shù),完成成員b的初始化,輸出"2",最后執(zhí)行CC構(gòu)造函數(shù)的函數(shù)體,輸出"3";答案為D。31、下列字符串中,不可以用做C++標(biāo)識(shí)符的是()。A、y_2006B、_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。32、一個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多個(gè)人使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)多D、多對(duì)一標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)橐粋€(gè)人可以操作多個(gè)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)又可以被多個(gè)人使用,所以兩個(gè)實(shí)體之間是多對(duì)多的關(guān)系。33、下列關(guān)于虛函數(shù)的敘述中,正確的是A、虛函數(shù)不得是靜態(tài)成員函數(shù)B、從虛基類繼承的函數(shù)都是虛函數(shù)C、只能通過(guò)指針或引用調(diào)用虛函數(shù)D、抽象類中的成員函數(shù)都是虛函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查虛函數(shù),在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù)成為虛函數(shù),虛函數(shù)不得是靜態(tài)成員函數(shù),但可以是友元函數(shù)。34、軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。A、學(xué)生成績(jī)管理系統(tǒng)B、C語(yǔ)言編譯程序C、UNIX操作系統(tǒng)D、數(shù)據(jù)庫(kù)管理系統(tǒng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫(kù)管理系統(tǒng)都屬于系統(tǒng)軟件。所以B)、C)、D)都是系統(tǒng)軟件,只有A)是應(yīng)用軟件。35、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句,所以選擇A)。36、有如下類聲明:classMau{intk;public:Mau(intn):k(n){}intcalc()const;};則成員函數(shù)calc的下列定義中有編譯錯(cuò)誤的是A、intMau::calc()const{returnk-1;}B、intMau::calc()const{returnk*k;}C、intMau::calc()const{returnk+1;}D、intMau::calc()const{return++k;}標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)calc()聲明的形參表后面有關(guān)鍵字const,說(shuō)明該函數(shù)是常成員函數(shù),常成員函數(shù)改變了隱含的this形參的類型,使得this是指向const對(duì)象的指針,因而該函數(shù)只能讀取數(shù)據(jù)成員的值,不能修改數(shù)據(jù)成員,所以D選項(xiàng)錯(cuò)誤,答案為D。二、基本操作題(本題共1題,每題1.0分,共1分。)37、請(qǐng)使用“答題”菜單或使用VC6打開(kāi)考生文件夾proj1下的工程proj1,其中有“住宅”類Home和主函數(shù)main的定義。程序中位于每個(gè)/ERROR**********found**********下的語(yǔ)句行有錯(cuò)誤,請(qǐng)加以更正。更正后程序的輸出應(yīng)該是:南21條12號(hào)李四注意:只能修改每個(gè)//ERROR**********found**********下的那一行,不要改動(dòng)程序中的其他內(nèi)容。#includeusingnamespacestd;classHome{//"住宅"類char*addresS;//地址char*owner;//業(yè)主姓名public://EFRROR**********found**********Home(constchar*ad=NULL,constchar*ow){//EFRROR**********found**********if(ad=NULL)address=NULL;else{address=newchar[strlen(ad)+1];strcpy(address,ad);}if(OW==NULL)owner=NULL;else{owner=newchar[strlen(ow)+1];strcpy(owner,ow);}}~Home()tif(address)delete[]address;//ERFOR**********found**********if(owner)deleteowner;}constchar*getAdress()const{returnaddress,}constchar*getOwner()const{returnowner;}};intmain(){Homemyhome("南21條12號(hào)","李四");cout<標(biāo)準(zhǔn)答案:(1)Home(constchar*ad=NULI.,constchar*ow=NULL)或Home(constchar*ad,constchar*ow)(2)if(ad==NULL)(3)if(owner)delete[]owner;知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)構(gòu)造函數(shù)默認(rèn)參數(shù)的掌握,如果有一個(gè)形參具有默認(rèn)實(shí)參,那么它后面所有的形參都必須有默認(rèn)實(shí)參。Home構(gòu)造函數(shù)中ad具有默認(rèn)實(shí)參,所以ow也必須有默認(rèn)實(shí)參。(2)主要考查考生對(duì)賦值操作符和相等操作符區(qū)別的掌握,在if語(yǔ)句的判斷條件中,使用賦值操作符時(shí),表達(dá)式值始終為true,這里需要修改為相等操作符。(3)主要考查考生對(duì)動(dòng)態(tài)分配的掌握,在Home構(gòu)造函數(shù)中,使用newchar[]對(duì)owner動(dòng)態(tài)分配內(nèi)存,那么在析構(gòu)函數(shù)中,必須對(duì)應(yīng)使用delete[]owner釋放內(nèi)存。三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)38、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj2下的工程proj2。此工程中包含一個(gè)源程序文件main.cpp,其中有類Quadritic、類Root及主函數(shù)main的定義。一個(gè)Quadritic對(duì)象表示一個(gè)形如ax2+bx+c的一元二次多項(xiàng)式。一個(gè)Root對(duì)象用于表示方程ax2+bx+c=0的一組根,它的數(shù)據(jù)成員num_of_roots有3種可能的值,即0、1和2,分別表示根的3種情況:無(wú)實(shí)根、有兩個(gè)相同的實(shí)根和有兩個(gè)不同的實(shí)根。請(qǐng)?jiān)跈M線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為(注:輸出中的X^2表示x2):3X^2+4X+5=0.1無(wú)實(shí)根4.5X^2+6X+2=0.0有兩個(gè)相同的實(shí)根:一0.666667和一0.6666670.5X^2+2X一3=0.0有兩個(gè)不同的實(shí)根:0.896805和一2.23014注意:只在橫線處填寫適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。#include#include#includeusingnamespacestd;classRoot{//一元二次方程的根public:constdoublex1;//第一個(gè)根constdoublex2;//第二個(gè)根constintnumofroots;//不同根的數(shù)量:0、1或2//創(chuàng)建一個(gè)“無(wú)實(shí)根”的Root對(duì)象Root():x1(0.0),x2(0.0),numofroots(0){}//創(chuàng)建一個(gè)“有兩個(gè)相同的實(shí)根”的Root對(duì)象Root(doubleroot):x1(root),x2(root),numOfroots(1){)//創(chuàng)建一個(gè)“有兩個(gè)不同的實(shí)根”的Root對(duì)象Root(doubleroot1,doubleroot2)//**********found**********:________[]voidshow()const{//顯示根的信息cout<<"\t\t";//**********found**********switch(________){case0:cout<<"無(wú)實(shí)根";break;case1:cout<<"有兩個(gè)相同的實(shí)根:"<標(biāo)準(zhǔn)答案:(1)x1(root1),x2(root2),num_of_roots(2)(2)num_of_roots(3)a(x.a),b(x.b),c(x.c)(4)returnRoot()知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,應(yīng)使用成員列表初始化。(2)主要考查考生對(duì)switch語(yǔ)句的掌握,使用num_of_roots判斷根的信息。(3)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,應(yīng)使用成員列表初始化。(4)主要考查考生對(duì)成員函數(shù)的掌握,結(jié)合數(shù)學(xué)知識(shí)可知,當(dāng)delta<0.0時(shí),方程式無(wú)解。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)39、請(qǐng)使用【答題】菜單命令或直接用VC6打開(kāi)考生文件夾下的工程proj3,其中聲明了一個(gè)人員信息類Person。在Person類中數(shù)據(jù)成員nallle、age和address分別存放人員的姓名、年齡和地址。構(gòu)造函數(shù)Person用以初始化數(shù)據(jù)成員。補(bǔ)充編制程序,使其功能完整。在main函數(shù)中分別創(chuàng)建了兩個(gè)Person類對(duì)象p1和p2,并顯示兩個(gè)對(duì)象信息,此種情況下程序的輸出應(yīng)為:jane25BeijingTom22Shanghai注意:只能在函數(shù)Person中的“//**********333**********”和“//**********666**********”之間填入若干語(yǔ)句,不要改動(dòng)程序中的其他內(nèi)容。//proj3.h#include#includeusingnamespacestd;classPerson{public:charname[20];intage;char*address,public:Person(char*_name,int_age,char*_add=NULL);//構(gòu)造函數(shù)voidinfo_display();//人員信息顯示~Person();//析構(gòu)函數(shù)};voidwriteToFile(constchar*path="");//proj3.cpp#include#include#include"proj3.h"usingnamespacestd;Person::Person(char*_name,int_age,char*_add):age(_age){//把字符串name復(fù)制到數(shù)組name中//使address指向一個(gè)動(dòng)態(tài)空間,把字符串_add復(fù)制到該數(shù)組中。//********333********//********666********}voidPerson::info_display(){cout<info_display();deletep2;writeToFile("");}標(biāo)準(zhǔn)答案:strcpy(name,_name);address=newchar[strlen(_add)+1];strcpy(address,_add);知識(shí)點(diǎn)解析:主要考查考生對(duì)構(gòu)造函數(shù)的掌握,根據(jù)題目要求,首先使用strcpy()函數(shù)把字符串_name復(fù)制到數(shù)組name中,然后使用new語(yǔ)句分配一個(gè)動(dòng)態(tài)空間,使address指向空間首地址,最后把字符串_add復(fù)制到該數(shù)組中。國(guó)家二級(jí)(C++)機(jī)試模擬試卷第3套一、選擇題(本題共38題,每題1.0分,共38分。)1、if語(yǔ)句的語(yǔ)法格式可描述為:格式1:if(<條件>)<語(yǔ)句>或格式2:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>關(guān)于上面的語(yǔ)法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語(yǔ)句,例如if(if(a==0)…)…B、<語(yǔ)句>部分可以是一個(gè)if語(yǔ)句,例如if(…)if(…)…C、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語(yǔ)句1>和<語(yǔ)句2>的位置,語(yǔ)句功能不變D、<語(yǔ)句>部分可以是一個(gè)循環(huán)語(yǔ)句,例如if(…)while(…)…標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if語(yǔ)句,if語(yǔ)句的條件部分不能嵌套if語(yǔ)句,所以A選項(xiàng)錯(cuò)誤;B選項(xiàng)就是if語(yǔ)句嵌套;C選項(xiàng)其實(shí)就是將判斷條件顛倒,然后執(zhí)行語(yǔ)句也顛倒,所以效果一樣;D選項(xiàng)也正確。2、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說(shuō)法中,錯(cuò)誤的是()。A、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)B、如果基類中沒(méi)有缺省構(gòu)造函數(shù),那么派生類必須定義構(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ì)象時(shí),先調(diào)用派生類的析構(gòu)函數(shù),再調(diào)用基類的析構(gòu)函數(shù)。3、有如下語(yǔ)句序列:charstr[10];cin>>str;當(dāng)從鍵盤輸入"Ilovethisgame"時(shí),str中的字符串是()。A、IlovethisgameB、IlovethiC、IloveD、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。4、下列語(yǔ)句中,正確的是A、charstr="abcde";B、char*str="abcde";C、charstr[5]="abcde";D、char*str[5]="abcde";標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符串的定義,A選項(xiàng)中,定義了一個(gè)字符,而用字符串賦值,所以錯(cuò)誤,C選項(xiàng)定義了字符數(shù)組,但是賦值的字符串實(shí)際上有6個(gè)字符,所以賦值錯(cuò)誤,D選項(xiàng)定義了一個(gè)字符串指針數(shù)組,賦值錯(cuò)誤。5、有如下程序:#includeusingnamespacestd;classBase{public:voidfun(){cout<<"Base::fun"<A、Base.fun();B、Base->fun();C、Base::fun();D、fun();標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類成員的訪問(wèn)屬性,派生類公用繼承基類,所以派生類可以直接使用基類的公用成員,題目中輸出了Base::fun,所以可以推斷派生類一定是調(diào)用了基類的fun函數(shù),只有C選項(xiàng)正確調(diào)用了基類的fun函數(shù),所以C選項(xiàng)正確。6、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35。現(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。在循環(huán)隊(duì)列中進(jìn)行出隊(duì)、入隊(duì)操作時(shí),頭尾指針仍要加1,朝前移動(dòng)。只不過(guò)當(dāng)頭尾指針指向向量上界時(shí),其加1操作的結(jié)果是指向向量的下界0。由于入隊(duì)時(shí)尾指針向前追趕頭指針,出隊(duì)時(shí)頭指針向前追趕尾指針,故隊(duì)空和隊(duì)滿時(shí),頭尾指針均相等。答案為D選項(xiàng)。7、有如下類定義: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指針。8、算法的有窮性是指()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時(shí)間是有限的。9、有如下類定義:classBase1{intm;public:Base(intm1):m(m1){}};classBase2{intn;public:Base(intn1):n(n1){}};classDerived:publicBase2,publicBase1{intq;public:Derived(intm1,intn1,intq1):q(q1),Base1(m1),Base2(n1){};};在創(chuàng)建一個(gè)Derived對(duì)象時(shí),數(shù)據(jù)成員m、n和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ù)成員,所以Derived構(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、基類Base1、數(shù)據(jù)成員q;所以數(shù)據(jù)成員m、n、q的初始化順序?yàn)椋簄、m、q,答案為B。10、某二叉樹(shù)中有15個(gè)度為1的結(jié)點(diǎn),16個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中總的結(jié)點(diǎn)數(shù)為A、32B、46C、48D、49標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。對(duì)任何一棵二叉樹(shù),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。由16個(gè)度為2的結(jié)點(diǎn)可知葉子結(jié)點(diǎn)個(gè)數(shù)為17,則結(jié)點(diǎn)結(jié)點(diǎn)總數(shù)為16+17+15=48,C選項(xiàng)正確。11、有如下類定義:classMyClass{public:MyClass(doubled=0.0):val(d){}______________//運(yùn)算符函數(shù)-的聲明private:doubleval;};若要使語(yǔ)句序列MyClassy(4.6),z;z=6.7-y;能夠正常運(yùn)行,橫線處的聲明語(yǔ)句應(yīng)為A、friendMyClassoperator-(MyClass&,MyClass&);B、friendMyClassoperator-(double,MyClass);C、friendMyClassoperator-(MyClass&,double);D、friendMyClassoperator-(double&,MyClass&);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由調(diào)用函數(shù)6.7-y可知,double類型在運(yùn)算符"-"的左邊,應(yīng)該作為運(yùn)算符函數(shù)"-"的第一形參,選項(xiàng)A、C錯(cuò)誤;由于運(yùn)算符"-"函數(shù)并不改變操作數(shù)的狀態(tài),所以形參應(yīng)該聲明為const對(duì)象的引用,或者按值傳遞,參數(shù)按引用類型傳遞可能會(huì)改變操作數(shù)的狀態(tài),選項(xiàng)D錯(cuò)誤;答案為B。12、有如下類定義:classPet{charname[30];public:Pet(char*n){strcpy(name,n);}voidbark(){cout<<"Woof!";}};且有如下變量定義:Petmy_dog("Weiwei"),*p=&my_dog;則下列訪問(wèn)成員函數(shù)bark的表達(dá)式中,錯(cuò)誤的是A、p.bark()B、my_dog.bark()C、p->bark()D、(*p).bark()標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:Pet類指針p指向my_dog對(duì)象,通過(guò)指針訪問(wèn)類對(duì)象的成員函數(shù),與通過(guò)指針訪問(wèn)內(nèi)置類型對(duì)象一樣,有兩種方法:p->bark()、(*p).brak(),選項(xiàng)A錯(cuò)誤,答案為A。13、A、投影B、交C、選擇D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:用于查詢的3個(gè)操作無(wú)法用傳統(tǒng)的集合運(yùn)算表示,引入的運(yùn)算為投影運(yùn)算、選擇運(yùn)算、笛卡爾積。常用的擴(kuò)充運(yùn)算有交、除、連接及自然連接等。投影,從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系,題目中從R中指定AB組成新的關(guān)系T,故A選項(xiàng)正確。選擇,從關(guān)系中找出滿足給定條件的元組的操作稱為選擇,即結(jié)果T應(yīng)該包含R中全部屬性,故C選項(xiàng)錯(cuò)誤。假設(shè),R與S經(jīng)過(guò)某種關(guān)系得到T,則并:R∪S是將S中的記錄追加到R后面;交:R∩S結(jié)果是既屬于R又屬于S的記錄組成的集合。上述兩種操作中,關(guān)系R與S以及T要求有相同的結(jié)構(gòu),故B、D選項(xiàng)錯(cuò)誤。14、下列關(guān)于thi

溫馨提示

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