國家二級(jí)C++機(jī)試(選擇題)模擬試卷4(共232題)_第1頁
國家二級(jí)C++機(jī)試(選擇題)模擬試卷4(共232題)_第2頁
國家二級(jí)C++機(jī)試(選擇題)模擬試卷4(共232題)_第3頁
國家二級(jí)C++機(jī)試(選擇題)模擬試卷4(共232題)_第4頁
國家二級(jí)C++機(jī)試(選擇題)模擬試卷4(共232題)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國家二級(jí)C++機(jī)試(選擇題)模擬試卷4(共9套)(共232題)國家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共23題,每題1.0分,共23分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù);隊(duì)列是“先進(jìn)先出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。2、有如下程序#include<iostream>usingnamespacestd;intmain(){chara:cin>>a;if(a=‘*’)cout<<“***”<<endl;elsecout<<“###”<<endl;retum0:}輸入字符+時(shí),程序的運(yùn)行結(jié)果是()。A、***B、###C、***###D、無輸出標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題的考點(diǎn)是雙分支選擇語句的執(zhí)行流程,答題的關(guān)鍵點(diǎn)在于選擇條件的判定。雙分支選擇語句的執(zhí)行流程是首先計(jì)算if后表達(dá)式的值,如果表達(dá)式的值為非零,則執(zhí)行if后面的分支,否則執(zhí)行與其匹配的else后面的分支。本題執(zhí)行時(shí)雖然輸入變量a的值為‘+’,但是在執(zhí)行if后括號(hào)內(nèi)表達(dá)式(a=‘*’)的時(shí),由于此表達(dá)式為賦值表達(dá)式,岡此表達(dá)式的值為賦值號(hào)右邊的值‘*’,其AscII碼的值非零,執(zhí)行if后面的輸出語句“***”后回車。3、設(shè)樹T的深度為4,其中度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)分別為4,2,1,1。則T中的葉子結(jié)點(diǎn)數(shù)為()。A、8B、7C、6D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:深度為m二叉樹其總結(jié)點(diǎn)數(shù)為2m一1=24—1=15??偨Y(jié)點(diǎn)數(shù)減去度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)就是葉子結(jié)點(diǎn)數(shù)。15一4一2一1一1=7。4、在長度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)于長度為n的有序線性表,在最壞情況下,二分法查找只需比較log2n次,而順序查找需要比較n次。5、下列描述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()。A、程序的效率第一,清晰第二B、程序的可讀性好C、程序中要有必要的注釋D、輸入數(shù)據(jù)前要有提示信息標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般來講,程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏輯思路。程序設(shè)計(jì)風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,程序必須是可以理解的。著名的“清晰第一,效率第二”的論點(diǎn)已成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。6、下面敘述錯(cuò)誤的是()。A、派生類可以使用pfivate派生B、對(duì)基類成員的訪問必須是無二義性的C、基類成員的訪問能力在派生類中維持不變D、賦值兼容規(guī)則也適用于多繼承的組合標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在建立派生類的時(shí)候,并不是簡(jiǎn)單地把基類的私有成員直接作為派生類的私有成員,把基類的公用成員直接作為派生類的公用成員。涉及如何確定基類的成員在派生類中的訪問屬性問題,不僅要考慮對(duì)基類成員所聲明的訪問屬性,還要考慮派生類所聲明的對(duì)基類的繼承方式,根據(jù)這兩個(gè)因素共同決定基類成員在派生類中的訪問屬性。所以本題選擇C。7、下面程序輸出的結(jié)果為()。#tnclude<iostream.h>voidfun(inta,intb){inttemp;temp=a;a=b;b=temp;}voidmain(){intm,n;m=1;n=2;fun(m,n);cout<<m<<""<<n<<endl;}A、12B、21C、22D、程序有錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)fun中定義的參數(shù)a和b為形式參數(shù),它們并不是實(shí)際存在的數(shù)據(jù),只有在發(fā)生函數(shù)調(diào)用時(shí)才被分配內(nèi)存空間,結(jié)束后,形參所占有的內(nèi)存單元也被釋放。并且函數(shù)fun沒有返回值,它做的交換操作,并不能影響實(shí)際參數(shù)m和n。所以輸出值保持不變,仍然是1和2,即輸出:12。8、軟件是指A、程序B、程序和文檔C、算法加數(shù)據(jù)結(jié)構(gòu)D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)與相關(guān)文檔的完整集合。軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。9、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。A、存儲(chǔ)問題B、共享問題C、安全問題D、保護(hù)問題標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共享”之特點(diǎn),即數(shù)據(jù)庫集中了各種應(yīng)用的數(shù)據(jù),進(jìn)行統(tǒng)一地構(gòu)造與存儲(chǔ),而使它們能被不同的應(yīng)用程序所使用。因而數(shù)據(jù)庫技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的共享問題。10、數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是()。A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)一般提供相應(yīng)的數(shù)據(jù)語言,它們分別是:數(shù)據(jù)定義語言,負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言,負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作:數(shù)據(jù)控制語言,負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。11、數(shù)據(jù)庫設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是()。A、內(nèi)模式B、概念模式C、外模式D、設(shè)計(jì)模式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:概念模式,是由數(shù)據(jù)庫設(shè)計(jì)者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)構(gòu)造的全局邏輯結(jié)構(gòu),是對(duì)數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所有用戶的公共數(shù)據(jù)視圖(全局視圖)。它是由數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)模式描述語言(DataDescriptionLanguage,DDL)來描述、定義的,體現(xiàn)、反映了數(shù)據(jù)庫系統(tǒng)的整體觀。外模式對(duì)應(yīng)于用戶級(jí),它是某個(gè)或某幾個(gè)用戶所看到的數(shù)據(jù)庫的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是從模式導(dǎo)出的一個(gè)子集,也稱為子模式或用戶模式.它是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,它反映了用戶對(duì)數(shù)據(jù)的要求。包含模式中允許特定用戶使用的那部分?jǐn)?shù)據(jù),用戶可以通過外模式描述語言來描述、定義對(duì)應(yīng)于用戶的數(shù)據(jù)記錄(外模式),也可以利用數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)對(duì)這些數(shù)據(jù)記錄進(jìn)行描述。內(nèi)模式,對(duì)應(yīng)于物理級(jí),它是數(shù)據(jù)庫中全體數(shù)據(jù)的內(nèi)部表示或底層描述,是數(shù)據(jù)庫最低一級(jí)的邏輯描述,它描述了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的存儲(chǔ)方式和物理結(jié)構(gòu),對(duì)應(yīng)著實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫。內(nèi)模式由內(nèi)模式描述語言來描述、定義,它是數(shù)據(jù)庫的存儲(chǔ)觀。12、下列字符串中,不可以用作C++標(biāo)識(shí)符的是()。A、y_2006B、_TEST_HC、ReturnD、SWitch標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識(shí)符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。13、必須用對(duì)大括號(hào)括起來的程序段是()。A、switch語句中的case標(biāo)號(hào)語句B、if語句的分支C、循環(huán)語句的循環(huán)體D、函數(shù)的函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是語句塊和函數(shù)。if語句的分支和循環(huán)語句的循環(huán)體可以是一條語句也可以使一個(gè)語句塊,所以不是必須用一個(gè)大括號(hào)括起來;switch語句中的case標(biāo)號(hào)語句可以是一系列語句,也可以包含語句塊,也不是必須用一對(duì)大括號(hào)括起來:函數(shù)的函數(shù)體必須用一對(duì)大括號(hào)括起來。14、在C++中,用于實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、模板函數(shù)D、虛函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的概念。C++語言的多態(tài)性有兩種:函數(shù)重載和虛函數(shù)。虛函數(shù)只有在運(yùn)行時(shí)才能被確定,稱為運(yùn)行時(shí)多態(tài)。編譯時(shí)的多態(tài)是通過函數(shù)重載和模板實(shí)現(xiàn)的。15、在下列原型所示的C++函數(shù)中,按“傳值”方式傳遞參數(shù)的是()。A、voidfl(intx);B、voidf2(int*x);C、voidf3(constint*x);D、voidf4(int&x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:傳值方式是將實(shí)參復(fù)制到形參中,因此實(shí)參和形參是兩個(gè)不同的變量,有各自的存儲(chǔ)空間,可以把函數(shù)的形參看做是函數(shù)的局部變量。其中BC選項(xiàng)為按低值傳遞D選賢為按引用傳遞。16、已知主函數(shù)中通過如下語句序列實(shí)現(xiàn)對(duì)函數(shù)模板swap的調(diào)用:inta[10],b[10];swap(a,b,10);下列對(duì)函數(shù)模板swap的聲明中,會(huì)導(dǎo)致上述語句序列發(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)解析:由題目中函數(shù)sW印(a,b,10)調(diào)用語句可知,在對(duì)函數(shù)模板swap的聲明語句中,應(yīng)將第一、二個(gè)參數(shù)設(shè)為數(shù)組變量,第三個(gè)參數(shù)為整型變量。17、下列關(guān)于析構(gòu)函數(shù)的描述中,錯(cuò)誤的是()。A、析構(gòu)函數(shù)可以重載B、析構(gòu)函數(shù)由系統(tǒng)自動(dòng)調(diào)用C、每個(gè)對(duì)象的析構(gòu)函數(shù)只被調(diào)用一次D、每個(gè)類都有析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般情況下,析構(gòu)函數(shù)在對(duì)象的生存周期即將結(jié)束的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。在調(diào)用完成之后,對(duì)象也就消失了,相應(yīng)的內(nèi)存空間也被釋放。析構(gòu)函數(shù)沒有參數(shù),因此析構(gòu)函數(shù)不能重載,一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)。18、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是()。A、Fractionoperator+(Fraction,F(xiàn)raction);B、Fractionoperator一(Fraction);C、Fraction&operator=(Fraction&,F(xiàn)raction);D、Fraction&operator+=(Fraction&,F(xiàn)raction);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。C++語言規(guī)定,“=”運(yùn)算符只能作為成員函數(shù)重載。19、有如下程序:#incLude<iostream>usingnamespacestd;c1assA{public:A(){cout<"A’;}~A(){cout<<’C’;}};c1assB:publicA{public:BO{cout<<’G’;}~BO{couK<’T’;}};intmain0{Bobj;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、GATCB、AGTCC、GACTD、AGCT標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類B是由基類A公開繼承而來,所以在創(chuàng)建類B的obj對(duì)象時(shí),首先執(zhí)行基類A的構(gòu)造函數(shù)A(),輸出A,再執(zhí)行派生類B的構(gòu)造函數(shù)BO,輸出G,當(dāng)程序結(jié)束時(shí),首先執(zhí)行派生類的析構(gòu)函數(shù)~BO,輸出T,再執(zhí)行基類A的析構(gòu)函數(shù)~A(),輸出C。20、有如下程序:#includeusingnamespacestd;classInstrument{public:virtualvoidDisplay()=0:};classPiano:publicInstrument{public:voidDisplay(){/*函數(shù)體程序略*/}};intmain(){Instruments;Instrument*p=0;//…;return0;}下列敘述中正確的是()。A、語句“Insturment*p=0;”編譯時(shí)出錯(cuò)B、語句“Instruments;”編譯時(shí)出錯(cuò)C、類Piano中的Display函數(shù)不是虛函數(shù)D、類Instrument是一個(gè)虛基類標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于函數(shù)Display()是一個(gè)純虛函數(shù),所以類Instrument是抽象類,而抽象類是不能定義對(duì)象的,因而選項(xiàng)B為正確選項(xiàng)。21、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assPair{intm;intn;public:Pair(inti,intj):m(i),n(j){}booloperator>(Pairp)const;//須在類體外給出定義};intmain(){Pairp1(3,4),p2(4,3),p3(4,5);cout<<(p1>p2)<<(p2>p1)<<(p2>p3)<<(p3>p2);return0;}運(yùn)算符函數(shù)。perator>的功能是比較兩個(gè)Pair對(duì)象的大小,當(dāng)左邊對(duì)象大時(shí),返回true,否則返回false。比較規(guī)則是首先比較兩對(duì)象的m成員,m大者為大;當(dāng)m相等時(shí)比較n,n大者為大。程序輸出0101,下列對(duì)運(yùn)算符重載函數(shù)的正確定義是()。A、boolPair::operator>(Pairp)const{if(mr=p.m)returnm>p.m;retumn>p.n;}B、boolPair::operator>(Pairp){if(m!=p.m)retumm>p.m;retumn>p.n;)C、boolPair::operator>(Pairp)const{if(m>p.m)returntrue;returnn>p.n;}D、boolPair::operator>(Pairp){if(m>p.m)returntrue;retumn>p.n;)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:按照比較規(guī)則:首先比較兩對(duì)象的m成員,m大者為大:當(dāng)m相等時(shí)比較n,n大者為大。這條規(guī)則的用C++寫出來就是選項(xiàng)A。22、有如下函數(shù)模板定義:temp1ate<typenameT1,TypenameT2>T1Fun(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<double>[9]D、FUN<9>(double)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)函數(shù)模板的定義,在選項(xiàng)C的調(diào)用中,把double類型傳遞給T1,int型傳遞給T2。23、當(dāng)使用ofstream流類定義一個(gè)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件的默認(rèn)打開方式為()。A、iosbase::inB、ios_base::binaryC、ios_base::in[ios_base::outD、ios_base::out標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)于ofstream,默認(rèn)的打開方式是iosbase::out,ofstream只能用于輸出,它沒有提供任何用于輸入的操作。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共32題,每題1.0分,共32分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹D、帶鏈棧標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。循環(huán)隊(duì)列、帶鏈隊(duì)列和帶鏈棧都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。2、下列描述中正確的是()。A、線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、雙向鏈表是非線性結(jié)構(gòu)D、只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本單位稱為存儲(chǔ)結(jié)點(diǎn),每個(gè)存儲(chǔ)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域兩個(gè)組成部分。各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的,指向線性表中第一結(jié)點(diǎn)的指針HEAD稱為頭指針,當(dāng)HEAD=NULL時(shí)稱為空表。棧、隊(duì)列和雙向鏈表是線性結(jié)構(gòu),樹是一種簡(jiǎn)單的非線性結(jié)構(gòu)。在樹這種數(shù)據(jù)結(jié)構(gòu)中,所有數(shù)據(jù)元素的關(guān)系具有明顯的層次特征。二叉樹是非線性結(jié)構(gòu)。線性結(jié)構(gòu)和非線性結(jié)構(gòu)是從數(shù)據(jù)的邏輯結(jié)構(gòu)角度來講的,與該數(shù)據(jù)結(jié)構(gòu)中有多少個(gè)元素沒有關(guān)系,即使是空的二叉樹也是非線性結(jié)構(gòu)。3、下列與隊(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ì)列中最先插入的元素將最先被刪除,最后插入的元素將最后被刪除。4、下列敘述中正確的是()。A、對(duì)長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為nB、對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)C、對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(log2n)D、對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(nlog2n)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查的知識(shí)點(diǎn)為查找技術(shù)。順序查找的使用情況:①線性表為無序表;②表采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。二分法查找只適用于順序存儲(chǔ)的有序表,并不適用于線性鏈表。5、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、順序存儲(chǔ)的有序線性表B、線性鏈表C、二叉鏈表D、有序線性鏈表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二分法查找只適應(yīng)于順序存儲(chǔ)的有序表。有序表是指線性表中的元素按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。6、構(gòu)成計(jì)算機(jī)軟件的是()。A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。7、下面不屬于軟件工程過程的4種基本活動(dòng)()。A、軟件規(guī)格說明B、軟件開發(fā)C、軟件演進(jìn)D、軟件測(cè)試標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程過程的4種基本活動(dòng)足:軟件規(guī)格說明、軟件開發(fā)、軟件確認(rèn)、軟件演進(jìn)。8、下列程序的輸出結(jié)果是()。#include<iostream>usingnamespacestd;template<typenameT>Tfun(Ta,Tb){return(a<=b)?a:b;}intmain(){cout<<fun(3,6)<<’,’<<fun(3.14F,6.28F)<<endl;return0:}A、0,3.14B、3,3.14C、3,3D、3.14,3.14標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此函數(shù)模板的功能是輸出a、b兩數(shù)中較小的那個(gè)數(shù)。(3,6)輸出3,(3.14F6.28F)輸出3.14。9、軟件需求規(guī)格說明書的作用不包括()。A、軟件驗(yàn)收的依據(jù)B、用戶與開發(fā)人員對(duì)軟件要做什么的共同理解C、軟件設(shè)計(jì)的依據(jù)D、軟件可行性研究的依據(jù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件規(guī)格說明書主要有三個(gè)作用:①用戶和軟件開發(fā)人員之間的合同;②開發(fā)人員進(jìn)行設(shè)計(jì)和編程的依據(jù);③軟件工程項(xiàng)目驗(yàn)收的依據(jù)。10、軟件生命周期是指()。A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程C、軟件的開發(fā)過程D、軟件的運(yùn)行維護(hù)過程標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。11、“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:實(shí)體集間的聯(lián)系的個(gè)數(shù)可以是單個(gè)也可以是多個(gè)。兩個(gè)實(shí)體集之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種關(guān)系有三種:一對(duì)一的聯(lián)系,簡(jiǎn)記為1:1;一對(duì)多或多對(duì)一聯(lián)系,簡(jiǎn)記為1:m或m:1;多對(duì)多聯(lián)系,簡(jiǎn)記為m:n。本題中“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系是多對(duì)多聯(lián)系。因?yàn)橐环N“商品”可以被多個(gè)“顧客”購買,而一個(gè)“顧客”也可以購買多個(gè)“商品”。12、“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:實(shí)體集間的聯(lián)系的個(gè)數(shù)可以是單個(gè)也可以是多個(gè)。兩個(gè)實(shí)體集之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種關(guān)系有三種:一對(duì)一的聯(lián)系,簡(jiǎn)記為1:l;—對(duì)多或多對(duì)一聯(lián)系,簡(jiǎn)記為1:m或m:1;多對(duì)多聯(lián)系,簡(jiǎn)記為m:n。本題中“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系是多對(duì)多聯(lián)系。因?yàn)橐环N“商品”可以被多個(gè)“顧客”購買,而一個(gè)“顧客”也可以購買多個(gè)“商品”。13、下列描述中正確的是A、軟件測(cè)試應(yīng)該由程序開發(fā)者來完成B、程序經(jīng)調(diào)試后一般不需要再測(cè)試C、軟件維護(hù)只包括對(duì)程序代碼的維護(hù)D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:為了達(dá)到好的測(cè)試效果,應(yīng)該由獨(dú)立的第三方進(jìn)行測(cè)試工作。因?yàn)閺男睦韺W(xué)角度講,程序人員或設(shè)計(jì)方在測(cè)試自己的程序時(shí),要采取客觀的態(tài)度是會(huì)不同程度地存在障礙的,所以選項(xiàng)A)錯(cuò)誤。在程序調(diào)試時(shí),修改了一個(gè)錯(cuò)誤的同時(shí)可能引入了新的錯(cuò)誤,解決的辦法是在修改了錯(cuò)誤之后,必須進(jìn)行回歸測(cè)試,所以選項(xiàng)B)錯(cuò)誤。所謂軟件維護(hù),就是將交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改,所以選項(xiàng)C)錯(cuò)誤。14、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績(jī)),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號(hào),成績(jī)B、學(xué)號(hào),成績(jī)C、學(xué)號(hào),課號(hào)D、學(xué)號(hào),姓名,成績(jī)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)鍵字是指屬性或?qū)傩缘慕M合,其值能夠唯一地標(biāo)識(shí)一個(gè)元組,而在SC中學(xué)號(hào)和課號(hào)的組合可以對(duì)元組進(jìn)行唯一的標(biāo)識(shí)。15、以下程序段是函數(shù)返回a所指數(shù)組中最大的值所在的下標(biāo)值,橫線處的語句為()。fun(int*a,intn){inti,j=0.k:k=j;for(i=j;i<n;i++)if(a[i]>a[k])_______;return(k);}A、k=iB、k=jC、i=iD、i=n標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)fun中首先定義整型變量k用來存放返回最大值的下標(biāo),并將其首先指向第一個(gè)元素,即k=j。然后在for循環(huán)中依次將當(dāng)前元素a[i]與標(biāo)識(shí)為最大值的元素進(jìn)行比較,如果當(dāng)前元素大于這個(gè)標(biāo)識(shí)元素,那么將最大值標(biāo)識(shí)為當(dāng)前元素,即k=i。16、有兩個(gè)關(guān)系R和S如下:則由關(guān)系R得到關(guān)系S的操作是()。A、自然連接B、并C、選擇D、投影標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)系S是由關(guān)系R中的一行元組組成,應(yīng)通過選擇運(yùn)算得到。17、下列關(guān)于繼承方式的描述中,錯(cuò)誤的是()。A、如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)B、采用公有繼承方式時(shí),基類中的公有成員在派生類中仍然是公有成員C、采用保護(hù)繼承方式時(shí),基類中的保護(hù)成員在派生類中仍然是保護(hù)成員D、采用私有繼承方式時(shí),基類中的私有成員在派生類中仍然是私有成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:基類中的私有成員在派生類中是隱蔽的,只能在基類內(nèi)部訪問。派生類中的成員不可以訪問基類中的私有成員,只可以訪問基類中的公有成員和保護(hù)成員。18、有如下程序:#include<iostream>usingnarnespacestd;classTestClass{public:TestClass(){cout<<’’BB’’;fun();}voidfun(){tout<<’’Bf’’;}};classTestClass1:publicTestClass{public:TestClass1(){cout<<’’DD’’;}voidfun(){tout<<’’Df’’;}};intmain(){TestClass1d;return0;}執(zhí)行上面的程序?qū)⑤敵?)。A、BBBfDDB、BBDfDDDfC、DDD、DDBBBf標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:TestClass是TestClass1的基類。由主函數(shù)main入手,定義TestClass1的對(duì)象d,調(diào)用基類TestClass構(gòu)造函數(shù)輸出BB,調(diào)用基類成員函數(shù)fun輸出Bf,然后調(diào)用派生類的構(gòu)造函數(shù),輸出DD。19、下列函數(shù)原型聲明中,錯(cuò)誤的是()。A、intfunction(intm,intn);B、intfunction(int,int);C、intfunction(intm=3,intn);D、intfunction(int&m,int&n).標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中,函數(shù)在使用之前要預(yù)先聲明。這種聲明在標(biāo)準(zhǔn)C++中稱為函數(shù)原型,函數(shù)原型給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時(shí)必須提供的參數(shù)個(gè)數(shù)和類型。其語法為:<返回類型><函數(shù)名>(<形參列表>);使用函數(shù)原型說明有兩種形式:①直接使用函數(shù)定義的頭部,并在后面加上一個(gè)分號(hào);②在函數(shù)原型說明中省略參數(shù)列表中的形參變量名,僅給出函數(shù)名、函數(shù)類型、參數(shù)個(gè)數(shù)及次序。在選項(xiàng)C)中,給出了形參變量m的初值。20、下面程序中對(duì)一維坐標(biāo)點(diǎn)類Point進(jìn)行運(yùn)算符重載#includeusingnamespacestd;classPoint{public:Point(intval){x=val;}Point&operator++(){x++;retum*this;)Pointoperator++(int){Pointold=*this;++(*this);retumold;}IntGetX()const{returnx;}private:intx;};intmain(){Pointa(10);cout<<(++a).GetX();cout<A、運(yùn)行時(shí)輸出101lB、運(yùn)行時(shí)輸出1111C、運(yùn)行時(shí)輸出1112D、編譯有錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是重載增1運(yùn)算符“++”。此題中,Point&operator++()重載的是前綴形式,而Pointoperator十+(int)重載的是后綴形式。所以主函數(shù)中第1條輸出語句輸出ll,此時(shí)a.x的值為ll:第2條輸出語句,首先創(chuàng)建了一個(gè)Point對(duì)象old保存自身,然后通過語句++(*this);調(diào)用前綴++的重載函數(shù),因?yàn)榉祷刂凳歉淖兦氨4娴膐ld對(duì)象,故仍輸出11。21、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。A、long,double,intB、long,float,intC、int,double,longD、int,float,long標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的知識(shí)點(diǎn)是字面常量。對(duì)于整型字面常量,只要沒有超過C++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來存儲(chǔ)此數(shù),也可以通過在整型字面常量后添加u或l來指定無符號(hào)整數(shù)或長整數(shù)來存儲(chǔ);對(duì)于實(shí)型字面常量,C++將自動(dòng)按照雙精度數(shù)來存儲(chǔ),也可以通過在實(shí)型字面常量后添加f來指定按單精度數(shù)存儲(chǔ)。22、有如下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout<<’*’;}執(zhí)行這個(gè)程序段輸出字符*的個(gè)數(shù)是()。A、10B、3C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這段程序代碼的功能是計(jì)算在1~10(包括10)之間偶數(shù)i的個(gè)數(shù),如果整數(shù)i為偶數(shù),則輸出一個(gè)‘*’,共有4個(gè)偶數(shù),所以共輸出4個(gè)‘*’。23、定義派生類時(shí),若不使用關(guān)鍵字顯式地規(guī)定采用何種繼承方式,則默認(rèn)方式為()。A、私有繼承B、非私有繼承C、保護(hù)繼承D、公有繼承標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:繼承的方式包括三種:公有繼承,保護(hù)繼承和私有繼承。如果不顯示的給出繼承方式,缺省的類繼承方式是私有繼承private。24、有如下程序:#inc1ude<iostream>usingnamespacestd;classBase{public:Base(intx=0):valB(x){cout<<valB;}~Base(){cout<<valB;}private:intvalB;};classDerived:publicBase{public:Derived(intx=0,inty=0):Base(x),valD(y){cout<<valD;}~Derived(){cout<<vaID;}private:intvalD;};intmain(){Derivedobj12(2,3);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、2332B、2323C、3232D、3223標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在主函數(shù)中創(chuàng)建類Derived對(duì)象obj12(2,3)時(shí),因?yàn)轭怐erived是從基類Base派生而來,所以首先調(diào)用基類的構(gòu)造函數(shù),輸出2,再調(diào)用派生類構(gòu)造函數(shù),輸出3。當(dāng)主函數(shù)運(yùn)算結(jié)果時(shí),首先調(diào)用派生類的析構(gòu)函數(shù),輸出3,再調(diào)用基類的析構(gòu)函數(shù)輸出2。所以輸出結(jié)果為2332。25、有如下程序:#include<iostrearn>usingnamespacestd;classPublication{//出版物類charname[30];public:Publication(char*name="未知名稱"){strcpy(this->name,name);}constchar*getName()const{returnname;}virtualconstchar*getType()const{return"未知類型";}};classBook:publicPublication{//書類public:Book(char*name):Publication(name){}virtualconstchar*getType()const{return"書";{}};voidshowPublication(Publication&p){cout<<p.getType()<<":"<<p.getName()<<endl;}intmain(){Bookbook("精彩人生");showPublication(book);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、未知類型:未知名稱B、未知類型:精彩人生C、書:未知名稱D、書:精彩人生標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)轭怋ook繼承自基類Publication,所以在類Book中的虛常成員函數(shù)*getType(){return"書";}就會(huì)覆蓋基類中的虛常成員函數(shù)*getTrype()eonst{return"未知類型";},所以在主函數(shù)中調(diào)用函數(shù)showPublication(book)時(shí),getType()函數(shù)的輸出的結(jié)果是“書”,getName()函數(shù)的輸出結(jié)果為“精彩人生”。26、有如下程序;#includeusingnamespacestd;classB{public:virtualvoidshow(){cout<<"B";)};classD:publicB{public:voidshow(){cout<<"D";}};voidfun1(B*ptr){ptr->show();}voidfun2(B&ref){ref.show();}voidfun3(Bb){b.show();}intmain(){Bb,*p=newD;Dd;fun1(p);fun2(b);fun3(d);return0;}程序的輸出結(jié)果是()。A、BBBB、BBDC、DBBD、DBD標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)與多態(tài)性。在成員函數(shù)的聲明前面加上virual關(guān)鍵字,即可把函數(shù)聲明為虛函數(shù);在C++中,一個(gè)基類指針可以用于指向它的派生類對(duì)象,而且通過這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針實(shí)際所指向的對(duì)象類的那個(gè)重定義版本。此題中,fun1()和fun2()的形參分別是基類的指針和引用,給fun1()傳入的實(shí)參是指向派生類對(duì)象的指針p,fun1()將調(diào)用D類中的show()輸出字符‘D’;給fun2()出入的實(shí)參是基類對(duì)象,fun2()調(diào)用類B中的show()輸出字符‘B’;fun3()由于形參是基類對(duì)象,調(diào)用的始終都是基類的show(),輸出字符‘B’。故最終輸出結(jié)果是DBB。27、已知類IMS中兩個(gè)成員函數(shù)的聲明為“voidlisten()const;”與“voidspeak();”,另有兩個(gè)對(duì)象的定義為“IMSobj1;”與“constIMSobj2;”,則下列語句中,產(chǎn)生編譯錯(cuò)誤的是()。A、obj1.listen();B、obj1.speak();C、obj2.listen();D、obj2.speak();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)listen()作為類IMS的常成員函數(shù),一般對(duì)象obj1和常對(duì)象obj2都可以調(diào)用它,而函數(shù)speak()作為IMS的一般成員函數(shù),則只有一般對(duì)象obj1可以調(diào)用,而常對(duì)象obj2調(diào)用會(huì)產(chǎn)生編譯錯(cuò)誤。28、在C++中,打開一個(gè)文件時(shí)與該文件建立聯(lián)系的是()。A、流對(duì)象B、模板C、函數(shù)D、類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在CH中,打開一個(gè)文件時(shí)與該文件建立聯(lián)系的是流對(duì)象。29、當(dāng)使用ofstream流類定義一個(gè)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件的默認(rèn)打開方式為()。A、iosbase::inB、ios_base::binaryC、ios_base_::in|iosbase::outD、ios_base::out標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)于ofstream,默認(rèn)的打開方式是ios_base::out,ofstream只能用于輸出,它沒有提供任何用于輸入的操作。30、有如下函數(shù)模板定義:template<typenameT1,TypenameT2>T1Fun(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<double>[9]D、FUN<9>(double)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)函數(shù)模板的定義,在選項(xiàng)C的調(diào)用中,把double類型傳遞給T1,int型傳遞給T2。31、有如下4個(gè)語句:①tout<<’A’<A、①和③B、①和④C、②和③D、②和④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查C++流的使用。setfill()作用是設(shè)置填充字符:left是使輸出數(shù)據(jù)在指定寬度內(nèi)左對(duì)齊;right是使輸出數(shù)據(jù)在指定寬度內(nèi)右對(duì)齊。32、如下函數(shù)的作用是以雙倍行距輸出文件:voiddouble_space(ifstream&f,ofstream&t){charc;whilc(_________){;_________if(c==’\n’)t.put(c);}}畫線處缺失的部分是()。A、f.get(c)與t.put(c)B、~put(c)與t.get(c)C、t.get(c)與f.put(c)D、t.put(c)與f.get(c)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是文件流。get()函數(shù)作用是讀入一個(gè)字符,所以調(diào)用它的應(yīng)該是輸入文件流ifstream對(duì)象f.put()函數(shù)作用是輸出一個(gè)字符,所以調(diào)用它的應(yīng)該是輸入文件流ofstream對(duì)象t,故選項(xiàng)B、C排除。讀入和輸出應(yīng)該是有順序的,應(yīng)該先讀入后輸出,所以前一空填fget(c),后一空填t.put(c)。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共37題,每題1.0分,共37分。)1、算法的有窮性是指()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時(shí)間是有限的。2、下列敘述中正確的是A、循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(jié)構(gòu)B、在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C、在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D、循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的,元素的動(dòng)態(tài)變化也是通過隊(duì)頭指針和隊(duì)尾指針來反映的。3、在函數(shù)中,可以用auto、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、extemC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。c++語言變量的存儲(chǔ)類型分為如下幾種類型:auto…函數(shù)內(nèi)部的局部變量;static…靜態(tài)存儲(chǔ)分配;extem…全局變量;register.一變量存儲(chǔ)存硬件寄存器中。4、下列語句中錯(cuò)誤的是()。A、constinta:B、constinta=10;C、constint*point=0;D、constint*point*newint(10);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)鍵字const聲明符號(hào)常量的同時(shí)必須為其賦初值。5、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5);下列語句中輸出結(jié)果不是2的是()。A、cout<<*a11r+1<<endl;B、cout<<*(arr+1)<<endl;C、cout<<arr[1]<<endl;D、cout<<*art<<endl;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D)中,輸出*arr的值就是數(shù)組arr[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組air[5]的第二元素2。6、兩個(gè)或兩個(gè)以上的模塊之間關(guān)聯(lián)的緊密程度稱為()。A、耦合度B、內(nèi)聚度C、復(fù)雜度D、連接度標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:耦合度是模塊間互相連接的緊密程度的度量;內(nèi)聚度是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。7、必須用一對(duì)大括號(hào)括起來的程序段是()。A、switch語句中的ease標(biāo)號(hào)語句B、if語句的分支C、循環(huán)語句的循環(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)。8、定義如下枚舉類型enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2};表達(dá)式Wednesday=Friday的值是()。A、falseB、trueC、2D、異常標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:enum<枚舉類型名>{<枚舉元素表>);其中:關(guān)鍵詞“enum”表示定義的是枚舉類型,枚舉類型名由標(biāo)識(shí)符組成,而枚舉元素表由枚舉元素或枚舉常量組成。本題中的枚舉類型中的數(shù)據(jù)值Wednesday為2,而Friday的值賦值為2,所以判斷Wednesday等于Friday的表達(dá)式值為真,即true。9、以下程序運(yùn)行后的輸出結(jié)果是()。#include<iostream.h>voidmain(){charaH=’’abbcabbcabbc’’;inti=0,j=0,k=0;while(a[i]){if(a[i]==’a’)j++;if(a[i]==’b’)k++;i++;}cout<<j<<’’’’<<k<<end1;}A、2,6B、3,5C、4,7D、3,6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序中首先定義字符數(shù)組a,然后在while循環(huán)中統(tǒng)計(jì)字符a和b的個(gè)數(shù)。其中i記錄a的個(gè)數(shù),k記錄b的個(gè)數(shù)。第一個(gè)if語句是當(dāng)?shù)趇個(gè)字符為a時(shí),i加1;第二個(gè)if語句是當(dāng)?shù)趇個(gè)字符為b時(shí),k加1。10、下列描述中正確的是()。A、軟件交付使用后還需要再進(jìn)行維護(hù)B、軟件工具交付使用就不需要再進(jìn)行維護(hù)C、軟件交付使用后其生命周期就結(jié)束D、軟件維護(hù)是指修復(fù)程序中被破壞的指令標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通常將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。已交付的軟件投入運(yùn)行后,應(yīng)在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需要進(jìn)行必要而且可能的擴(kuò)充和刪改。11、下列結(jié)構(gòu)中為非線性結(jié)構(gòu)的是A、樹B、向量C、二維表D、矩陣標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性結(jié)構(gòu)是一個(gè)有序數(shù)據(jù)元素的集合。常用的線性結(jié)構(gòu)有:線性表,棧,隊(duì)列,雙隊(duì)列,數(shù)組,串。常見的非線性結(jié)構(gòu)有:二維數(shù)組,多維數(shù)組,廣義表,樹(二叉樹等),圖。12、下列關(guān)于數(shù)據(jù)庫設(shè)計(jì)的敘述中,正確的是()。A、在需求分析階段建立數(shù)據(jù)字典B、在概念設(shè)計(jì)階段建立數(shù)據(jù)字典C、在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典D、在物理設(shè)計(jì)階段建立數(shù)據(jù)字典標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫設(shè)計(jì)目前一般采用生命周期法,即將整個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)分解成目標(biāo)獨(dú)立的若干階段。分別是:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。數(shù)據(jù)字典是對(duì)系統(tǒng)中數(shù)據(jù)的詳盡描述,是各類數(shù)據(jù)屬性的清單。對(duì)數(shù)據(jù)設(shè)計(jì)來講,數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。13、關(guān)于this指針的說法不正確的是()。A、不能在程序中修改this指針B、this指針可以給其他指針賦值,但不能修改this指針C、靜態(tài)成員函數(shù)中沒有this指針D、this指針可以被賦值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:this指針不能在程序中修改,不能被幅值;靜態(tài)成員沒有this指針,因?yàn)轭愔兄挥幸粋€(gè)靜態(tài)成員函數(shù)實(shí)例,使用this指針無意義。14、有如下程序:#includeusingnamespacestd;classA{public:A(inti):r1(i){}voidprint(){cout<<’E’<*r1<<’一’;}private:intr1;};intmain(){Aa1(2);constAa2(4);a1.print();a2.print();return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、運(yùn)行時(shí)出錯(cuò)B、E2-C16-C、C4-C16D、E2-E4-標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類A包括一個(gè)整型數(shù)據(jù)成員r1,一個(gè)一般成員函數(shù)print(),一個(gè)常成員函數(shù)print()const。在主函數(shù)中定義了對(duì)象a1,并對(duì)r1的值賦2和常對(duì)象a2,并對(duì)r1的值賦4,在C++中,常對(duì)象不能被更新,所以常對(duì)象只能調(diào)用類的常成員函數(shù),而不能調(diào)用一般成員函數(shù)。而一般的對(duì)象,既可以調(diào)用一般成員函數(shù)也可以調(diào)用常成員函數(shù)。所以在本題中,當(dāng)執(zhí)行a1.print()時(shí),輸出為E2-,執(zhí)行a2.print()時(shí),輸出為C16-。15、以下描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是()。A、可隨機(jī)訪問B、需要連續(xù)的存儲(chǔ)空間C、不便于插入和刪除D、邏輯相鄰的數(shù)據(jù)物理位置上不相鄰標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:線性表的順序存儲(chǔ)是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在物理位置的相鄰元素之中,因此不需要另外開辟空間來保存元素之間的關(guān)系。16、“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:實(shí)體集間的聯(lián)系的個(gè)數(shù)可以是單個(gè)也可以是多個(gè)。兩個(gè)實(shí)體集之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種關(guān)系有三種:一對(duì)一的聯(lián)系,簡(jiǎn)記為1:l;—對(duì)多或多對(duì)一聯(lián)系,簡(jiǎn)記為1:m或m:1;多對(duì)多聯(lián)系,簡(jiǎn)記為m:n。本題中“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系是多對(duì)多聯(lián)系。因?yàn)橐环N“商品”可以被多個(gè)“顧客”購買,而一個(gè)“顧客”也可以購買多個(gè)“商品”。17、有如下類定義和變量定義:classA{public:AO{data=O;}~A(){)intGetData0const{returndata;)voidSetData(intn){data=n;)private:intdata;);constAa:Ab;下列函數(shù)調(diào)用中錯(cuò)誤的是()。A、a.GetData0;B、a.SetData(10);C、b.GetData();D、b.SetData(10);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題意可知a為常對(duì)象,因?yàn)槌?duì)象不能被更新,所以通過這個(gè)常對(duì)象只能調(diào)用它的常成員函數(shù)GetData(),而不能調(diào)用其他成員函數(shù)SetData(10),因而選項(xiàng)B為本題的正確答案。18、在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫的設(shè)計(jì)階段包括需要分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì),其中將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于邏輯設(shè)計(jì)階段。19、有如下程序:#include<iostream>usingnamespacestd;intmain(){intf,f1=0(),t2=1;for(inti=3;i<=6;i++){f=f1+f2;f1=f2;f2=f;}cout<<f<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、2B、3C、5D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中for循環(huán)語句執(zhí)行4次,第一次循環(huán)結(jié)束時(shí),變量f的值等于1,n的值等于1,f2的值等于1;第二次循環(huán)結(jié)束時(shí),變量f的值等于2,f1的值等于1,f2的值等于2:第三次循環(huán)結(jié)束時(shí),變量f的值等于3,f1的值等于2,f2的值等于3;第四次循環(huán)結(jié)束時(shí),變量f的值等于5,f1的值等于3,f2的值等于5;結(jié)束循環(huán)。20、關(guān)于函數(shù)中的<返回類型>,下列表述中錯(cuò)誤的是()。A、<返回類型>中有可能包含關(guān)鍵字intB、<返回類型>中有可能包含自定義標(biāo)識(shí)符C、<返回類型>中有可能包含字符*D、<返回類型>中可能包含[]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:<返回類型>又稱為函數(shù)類型,表示一個(gè)函數(shù)所計(jì)算(或運(yùn)行)的結(jié)果值的類型。它可以是C++中已定義的數(shù)據(jù)類型,也可能是用戶自定義的數(shù)據(jù)類型。但是不能包含[],因?yàn)榉?hào)[]不是一個(gè)數(shù)據(jù)類型。21、有如下的運(yùn)算符重載函數(shù)定義:doubleoperator+(inti,intk){returndouble(i+k);)但定義有錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的B、兩個(gè)int型參數(shù)的和也應(yīng)該是int型,而這里將+的返回類型聲明為doubleC、沒有將運(yùn)算符重載函數(shù)聲明為某個(gè)類的友元D、C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,不能再定義同樣的運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。C++語言規(guī)定,不能作為非成員函數(shù)重載的運(yùn)算符有=、[]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符,故選項(xiàng)A錯(cuò)誤;運(yùn)算符重載對(duì)返回值類型沒有限制,故選項(xiàng)B錯(cuò)誤;C++并不強(qiáng)制要求非成員重載的運(yùn)算符一定是某個(gè)類的友元,所以C選項(xiàng)錯(cuò)誤:題目中重載的“+”運(yùn)算符的兩個(gè)參數(shù)都是int類型,而C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,編譯器無法區(qū)分應(yīng)該調(diào)用哪一個(gè),所以應(yīng)該選擇D選項(xiàng)。22、已知在一個(gè)類體中包含如下函數(shù)原型:VOLUMEoperator.(VOLUME)const;,下列關(guān)于這個(gè)函數(shù)的敘述中,錯(cuò)誤的是()。A、這是運(yùn)算符一的重載運(yùn)算符函數(shù)B、這個(gè)函數(shù)所重載的運(yùn)算符是一個(gè)一元運(yùn)算符C、這是一個(gè)成員函數(shù)D、這個(gè)函數(shù)不改變類的任何數(shù)據(jù)成員的值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。運(yùn)算符“一”有一元和二元兩種,在本題中它作為一個(gè)二元運(yùn)算符,所以它不能更新對(duì)象的數(shù)據(jù)成員,也不能調(diào)用該類中沒有const修飾的成員函數(shù)。23、有如下程序:#includeUsingnamespacestd;ClassAmount{intmount;public;Amount(intn=0):amount(n){}IntgetAmountoconst{returnamount;}Amount&operator+=(Amounta){amount+=a.a(chǎn)mount;return;}};intmain(){Amountx(3),y(7);X+=y(tǒng);cout<A、*thisB、thisC、&amountD、amount標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:比題考查的是“+”運(yùn)算符重載和this指針。語句鋤amount+=a.鋤ount;實(shí)現(xiàn)3和7的求和得到amount=10,要使程序的輸出結(jié)果為10,又因?yàn)楹瘮?shù)的返回值類型為Amount&,所以橫線處填入*this。24、為了取代C中帶參數(shù)的宏,在C++中使用()。A、重載函數(shù)B、內(nèi)聯(lián)函數(shù)C、遞歸函數(shù)D、友元函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)。C++語言引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C語言的預(yù)處理宏函數(shù)。故選項(xiàng)B正確。25、若有下面的函數(shù)調(diào)用:fun(a+b,3,max(n-1,b))則fun的實(shí)參個(gè)數(shù)是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用。C++中函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)參表),其中實(shí)參表是用逗號(hào)分隔的一系列表達(dá)式。因此,本題中fun()函數(shù)的實(shí)參表由a+b、3和max(n-1,b)組成。26、有如下程序:#include#includeusingnamespacestd;intmain(){ints[]={123,234};cout<A、123234B、***123234C、***123***234D、***123234***標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在輸出語句中定義了輸出的格式是字符寬度為6,并且向右對(duì)齊,不足的位用‘*’補(bǔ)齊。在c++中,輸出格式的設(shè)置只對(duì)第一次輸出有效,在完成了一個(gè)數(shù)據(jù)的輸出后,寬度設(shè)置自動(dòng)恢復(fù)為0(表示按數(shù)據(jù)實(shí)際寬度輸出)。所以對(duì)于本題來說,在循環(huán)語句中輸出數(shù)組s[O]中的元素時(shí),按照規(guī)定的格式輸出,其結(jié)果為***123,當(dāng)輸出s[1]時(shí),輸出格式已經(jīng)恢復(fù)到按數(shù)據(jù)實(shí)際寬度輸出,所以此時(shí)輸出為234。27、由于常對(duì)象不能被更新,因此()。A、通過常對(duì)象只能調(diào)用它的常成員函數(shù)B、通過常對(duì)象只能調(diào)用靜態(tài)成員函數(shù)C、常對(duì)象的成員都是常成員D、通過常對(duì)象可以調(diào)用任何不改變對(duì)象值的成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常對(duì)象與常成員函數(shù)的概念。使用const關(guān)鍵字修飾的對(duì)象稱為常對(duì)象,它不能被更新,所以常對(duì)象只能調(diào)用常成員函數(shù)而不能調(diào)用其它成員函數(shù);使用const關(guān)鍵字聲明的成員函數(shù)是常成員函數(shù),它也不能被更新,常成員函數(shù)只能調(diào)用常成員函數(shù)而不能調(diào)用其它函數(shù)。28、有如下程序:#includeusingnamespacestd;classBoat;classCar{public:Car(inti):weight(i){)friendintTotal(constCar&c,constBoat&b);//①private:intweight;};classBoat{public:Boat(inti):weight(i){}friendintTotal(constCar&c,constBoat&b);private:intweight;};intTotal(constCar&c,constBoat&b){//②returnc.weight+b.weight;}intmain(){Carc(10);Boatb(8);cout<<”Thetotalweightis”<A、程序編譯正確B、程序編譯時(shí)語句①出錯(cuò)C、程序編譯時(shí)語句②出錯(cuò)D、程序編譯時(shí)語句③出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中定義了類car和類Boat,在兩個(gè)類中分別定義他們的構(gòu)造函數(shù)和友元函數(shù)friend。程序在VC6.0中編譯通過。29、以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是()。A、publicB、staticC、protectedD、private標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類的訪問權(quán)限。在C++語言中,類的訪問權(quán)限有公有、保護(hù)和私有三種。故本題選B。30、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}~A(){cout<<"~A";}};classB:publicA{A*p;public:B(){cout<<"B";p=newA();}~B(){cout<<"~B";deletep;}};intmain(){Bobj;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BAA~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(gòu)造與析構(gòu)。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),一調(diào)用順序按照各個(gè)基類被定義時(shí)聲明的順序(自左向右)->執(zhí)行成員對(duì)象的構(gòu)造函數(shù);調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序->執(zhí)行派生類的構(gòu)造函數(shù)。所以本題在建立派生類B的對(duì)象obj是會(huì)先調(diào)用基類A的構(gòu)造函數(shù),然后調(diào)用自身的構(gòu)造函數(shù)。注意:B類中定義的成員p是A類的指針而不是一個(gè)對(duì)象,故在調(diào)用自身構(gòu)造函數(shù)前不需要構(gòu)造。而在B類構(gòu)造函數(shù)中使用new操作符動(dòng)態(tài)地構(gòu)造了一個(gè)A類的對(duì)象,所以整個(gè)構(gòu)造結(jié)果是輸出:ABA。派生類對(duì)象的析構(gòu)與構(gòu)造嚴(yán)格相反,即先析構(gòu)自身,然后析構(gòu)自身所包含的成員對(duì)象,最后調(diào)用基類的析構(gòu)函數(shù)。故本題中當(dāng)main()函數(shù)返回時(shí),析構(gòu)B類的對(duì)象obj:首先調(diào)用~B(),接著再調(diào)用~A()因?yàn)樵凇獴()函數(shù)中釋放了動(dòng)態(tài)創(chuàng)建的A類對(duì)象,故整個(gè)析構(gòu)所輸出的結(jié)果是~B~A~A。所以這個(gè)程序輸出結(jié)果為ABA~B~A~A。31、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯(cuò)誤的是()。A、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)B、如果基類中沒有缺省構(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)解析:此題考查的是派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)。在撤銷派生類對(duì)象時(shí),析構(gòu)函數(shù)的執(zhí)行過程和構(gòu)造函數(shù)嚴(yán)格相反,即:對(duì)派生類新增普通成員進(jìn)行清理;調(diào)用成員對(duì)象析構(gòu)函數(shù),調(diào)用基類析構(gòu)函數(shù)對(duì)基類進(jìn)行清理。32、有如下程序:#inc1ude<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}~A(){cout<<"~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)解析:此題考查的是派生類對(duì)象的構(gòu)造與析構(gòu)。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被定義時(shí)聲明的順序(自左向右).>執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序.>執(zhí)行派生類的構(gòu)造函數(shù)。所以本題在建立派生類B的對(duì)象obj是會(huì)先調(diào)用基類A的構(gòu)造函數(shù),然后調(diào)用自身的構(gòu)造函數(shù)。注意:B類中定義的成員p是A類的指針而不是一個(gè)對(duì)象,故在調(diào)用自身構(gòu)造函數(shù)前不需要構(gòu)造。而在B類構(gòu)造函數(shù)中使用new操作符動(dòng)態(tài)地構(gòu)造了一個(gè)A類的對(duì)象,所以整個(gè)構(gòu)造結(jié)果是輸出:ABA。派生類對(duì)象的析構(gòu)與構(gòu)造嚴(yán)格相反,即先析構(gòu)自身,然后析構(gòu)自身所包含的成員對(duì)象,最后調(diào)用基類的析構(gòu)函數(shù)。故本題中當(dāng)main()函數(shù)返回時(shí),析構(gòu)B類的對(duì)象obj:首先調(diào)用—B(),接著再調(diào)用—A()因?yàn)樵凇獴()函數(shù)中釋放了動(dòng)態(tài)創(chuàng)建的A類對(duì)象,故整個(gè)析構(gòu)所輸出的結(jié)果是~B~A~A。所以這個(gè)程序輸出結(jié)果為ABA~B~A~A33、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是()。A、∷運(yùn)算符不能重載B、類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載C、將運(yùn)算符作為非成員函數(shù)重載時(shí)必須定義為友元D、重載[]運(yùn)算符應(yīng)完成“下標(biāo)訪問”操作標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱為運(yùn)算符函數(shù)?!斑\(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過重載創(chuàng)造出新的運(yùn)算符。34、若有如下類定義:classB{voidfun1(){}protected:doublevar1;public:voidfun2(){)};classD:publicB{protected:voidfun3(){}};已知obj是類D的對(duì)象,下列句中不違反類成員訪問控制權(quán)限的是()。A、obj.fun1();B、obj.var1;C、obj.fun2();D、obj.fun3();標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是基類成員在派生類中的訪問屬性。派生類中的成員不能訪問基類中的私有成員,可以訪問基類中的公有成員和保護(hù)成員。派生類從基類公有繼承時(shí),基類的公有成員和保護(hù)成員在派生類中仍然是公有成員和保護(hù)成員;派生類從基類私有繼承時(shí),基類的公有成員和保護(hù)成員在派生類中都變成私有成員;派生類從基類保護(hù)繼承時(shí),基類的公有成員在派生類中變成保護(hù)成員,鏨類的保護(hù)成員在派生類中仍然是保護(hù)成員。根據(jù)以上分析可知,本題中只有從B類繼承的fun2()為公有屬性,故選C選項(xiàng)。35、下列類模板的定義中語法格式錯(cuò)誤的是()。A、temp1ate<c1assT>c1assBuffer{/*…*/};B、temp1ate<typenameT>c1assBuffer{/*…*/}.C、temp1ate<c1assT1,c1assT2>c1assBuffer{/*…*/};D、temp1ate<T>c1assBufrer{/*…*/};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:定義類模板的一般形式是:temp1ate<類型名參數(shù)名1,類型名參數(shù)名2,…>class類名{類聲明體};模板的類型參數(shù)由關(guān)鍵字class或關(guān)鍵字t,pename及其后的標(biāo)識(shí)符構(gòu)成。在模板參數(shù)表中關(guān)鍵字class和typename的意義相同。36、下列模板聲明中,有語法錯(cuò)誤的是()。A、template<typenameT>Tfun(Tx){returnx;}B、template<typenameT>Tfun(Tx,intn){returnx*n;}C、template<classT>Tfun(T*p){return*p;}D、template<classT>TclassA{Tn;};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:第四個(gè)選項(xiàng)是定義類模板的,但是class前面的T是多余的。對(duì)于第二個(gè)選項(xiàng),同一個(gè)類的對(duì)象相乘還是同一個(gè)類的對(duì)象,但是可能要考慮溢出的問題。37、在下列枚舉符號(hào)中,用來表示“相對(duì)于當(dāng)前位置”文件定位方式的是()。A、iosbase::curB、iosbase::begC、iosbase::outD、iosbase::end.標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++流的定位方式(也就是指針移動(dòng)方式)有三種,被定義為ios_base::seek_dir中的一組枚舉符號(hào):ios_base::beg相當(dāng)于文件首;ios_base::cur相當(dāng)于當(dāng)前位置(負(fù)數(shù)表示當(dāng)前位置之前);ios_base::end相對(duì)于文件尾。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共19題,每題1.0分,共19分。)1、下列敘述中正確的是()。A、算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(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)解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。算法的工作量用算法所執(zhí)行的基本運(yùn)算的次數(shù)來度量,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問題規(guī)模的函數(shù);算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所齋要的內(nèi)存空間。算法的時(shí)間復(fù)雜度與空間復(fù)雜度并不相關(guān)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)元素之間的邏輯關(guān)系,它足從邏輯上描述數(shù)據(jù)元素之間的關(guān)系,是獨(dú)立于計(jì)算機(jī)的:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是研究數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系如何在計(jì)算機(jī)中表示,它們并非一一對(duì)應(yīng)。算法的執(zhí)行效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān)。2、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù);隊(duì)列是“先進(jìn)先出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。3、下列敘述中正確的是A、棧是“先進(jìn)先出”的線性表B、隊(duì)列是“先進(jìn)后出”的線性表C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查了棧、隊(duì)列、循環(huán)隊(duì)列的概念,棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),又可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。4、下列敘述中正確的是()。A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表,二者均為線性結(jié)構(gòu)。5、下列敘述中正確的是()。A、循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(jié)構(gòu)B、在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C、在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D、循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的,元素的動(dòng)態(tài)變化也是通過隊(duì)頭指針和隊(duì)尾指針來反映的。6、軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。A、學(xué)生成績(jī)管理系統(tǒng)B、C語言編譯程序C、UNIX操作系統(tǒng)D、數(shù)據(jù)庫管理系統(tǒng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:學(xué)生成績(jī)管理系統(tǒng)為應(yīng)用軟件。7、有如下類定義:classMyClass{Intvalue;public;MyClass(intn):value(n){}intgerValueoconst{returnvalue;)};則類MyClass的構(gòu)造函數(shù)的個(gè)數(shù)是()。A、1個(gè)B、2個(gè)C、3個(gè)D、4個(gè)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)的名字必須與類名相同:構(gòu)造函數(shù)不指定返回值類型;構(gòu)造函數(shù)可以重載;在創(chuàng)建對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)。8、在類聲明中,緊跟在“public:”后聲明的成員的訪問權(quán)限是()。A、私有B、公有C、保護(hù)D、默認(rèn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類中提供了3種訪問控制的權(quán)限:公有,私有和保護(hù)。其中公有類型定義了類的外部接口,任何一個(gè)外部的訪問都必須通過外部接口進(jìn)行。私有類型的成員只允許本類的成員函數(shù)訪問,來自類外部的任何訪問都是非法的,保護(hù)類型介于公有類型和私有類型之間,在繼承和派生時(shí)可以體現(xiàn)出其特點(diǎn)。9、有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()。A、*p+9B、*(p+8)C、*p+=9D、p+8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是指針的運(yùn)用。選項(xiàng)A中,*p返回的是數(shù)組元素a[0]的值,所以最后結(jié)果是1+9=10;選項(xiàng)B是指針p后移8個(gè)單位位置處的值,即a[8]其值為9;選項(xiàng)C中表達(dá)式的值和選項(xiàng)A相同;選項(xiàng)D的值是一個(gè)地址值,該值無法確定。10、語句int*p=&k;定義了指針p,與這個(gè)語句等效的語句序列是()。A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p=k標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針的賦值。題目中的語句int*p=&k;定義了一個(gè)int類型的指針p,并將變量k的地址&k賦給指針p。所以等效語句是:int*p;p=&k;。11、有如下定義:inta[5]={1,3,5,7,9},*p=a;下列表達(dá)式中不能得到數(shù)值5的是()。A、a[2]B、a[3]C、*(p+2)D、*p+4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是指針引用數(shù)組元素。B選項(xiàng)中,a[3]是數(shù)組的第四個(gè)元素,即7;其它選項(xiàng)的引用均可得到5。12、有如下程序:#includeusingnamespacestd;clas.sComplex{doublere.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論