版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國家二級(jí)C++機(jī)試(選擇題)模擬試卷8(共9套)(共234題)國家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、有如下函數(shù)模板:ternplateTcast(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、一間宿舍可住多個(gè)學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)橐灰婚g宿舍可以住多個(gè)學(xué)生即多個(gè)學(xué)生住在一個(gè)宿舍中,但一個(gè)學(xué)生只能住一間宿舍,所以實(shí)體宿舍和學(xué)生之間是一對(duì)多的關(guān)系。3、有如下程序:#includeusingnamespacestd;intmain(){inta[6]==23,15,64,33,40,58);intsl,s2;sl=s2=a[0];for(int*p=a+l;p<a+6;p++){if(sl>*p)sl=*p;if(s2<*p)s2=*p;)cout<<s1+s2<<endl;retum0:)運(yùn)行時(shí)的輸出結(jié)果是()。A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的值等于15,它小于23,所以把15賦給變量sl;執(zhí)行第二次for循環(huán)時(shí),*p的值等于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于15,小于64,因而變量sl,s2的值不會(huì)再發(fā)生變化,最終值為15+64=79。4、某二叉樹共有12個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹的深度為(根結(jié)點(diǎn)在第1層)A、3B、6C、8D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。題目中的二叉樹的葉子結(jié)點(diǎn)為1,因此度為2的結(jié)點(diǎn)的數(shù)目為0,故該二叉樹為12層,每層只有一個(gè)結(jié)點(diǎn)。5、有以下程序段:#include<iostream.h>#defineMAX(x,y)(x)>(y)?(x):(y)voidmain(){inti,j,k;i=10;j=15;k=MAX(i,j)*10;cout<<k<<end1;}程序執(zhí)行后的輸出結(jié)果是()。A、15B、100C、150D、10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目程序中的MAX函數(shù)是利用條件運(yùn)算符為?:求最大值。即(x>y)?(x):(y)是當(dāng)x大于y時(shí)取x,否則取y。當(dāng)i=10,j=15時(shí),“MAX(i,i)”的值為15,所以“k=MAX(i,j)*10;”答案為:150。6、有如下程序:#includeusingnamespacestd;classPair{intm,n;public:Pair(intj,intk):m(j),n(k){}intget(){retumm;}intget()const{retumm+n;}};intmain(){Paira(3,5);constPairb(3,5);cout<A、33B、38C、83D、88標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義了類Pair的一個(gè)實(shí)例變量a,并分別對(duì)實(shí)例變量a的數(shù)據(jù)成員m,n賦初值3,5。所以調(diào)用a.get()成員函數(shù)時(shí),輸出3。又定義類Pair的一個(gè)常實(shí)例變量b,并分別對(duì)實(shí)例變量b的數(shù)據(jù)成員m,n賦初值3,5。所以調(diào)用成員函數(shù)b.get()時(shí),輸出8。7、算法的空間復(fù)雜度是指()。A、算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A。8、執(zhí)行下列語句段后,輸出字符“*”的個(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)語句,題目中每執(zhí)行完循環(huán)體后,i都會(huì)減2,那么只有50到2之間的偶數(shù)才能輸出“*”,所以總共輸出25次。9、有如下程序:#includeusingnamespacestd;classPart{public:Part(intx=0):va1(x){cout<A、123321B、213312C、213D、123123標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類的構(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ù)。析構(gòu)順序與之相反。本題中,Whole類中有兩個(gè)Part類的成員p1和p2,根據(jù)它們定義的順序,先構(gòu)造pl再構(gòu)造p2。所以,首先被構(gòu)造的是p1(y),輸出2;第二個(gè)被構(gòu)造的是p2(x),輸出1:最后調(diào)用析構(gòu)函數(shù),輸出va1的值3;析構(gòu)函數(shù)調(diào)用順序與構(gòu)造函數(shù)相反。故最后輸出213312。10、軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面屬于定義階段任務(wù)的是A、軟件設(shè)計(jì)B、軟件測(cè)試C、可行性研究D、數(shù)據(jù)庫設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:定義階段包括:?jiǎn)栴}定義、可行性研究和需求分析。問題定義:要求系統(tǒng)分析員與用戶進(jìn)行交流,弄清“用戶需要計(jì)算機(jī)解決什么問題”然后提出關(guān)于“系統(tǒng)目標(biāo)與范圍的說明”,提交用戶審查和確認(rèn);可行性研究:一方面在于把待開發(fā)的系統(tǒng)的目標(biāo)以明確的語言描述出來,另一方面從經(jīng)濟(jì)、技術(shù)、法律等多方面進(jìn)行可行性分析;需求分析:弄清用戶對(duì)軟件系統(tǒng)的全部需求,編寫需求規(guī)格說明書和初步的用戶手冊(cè),提交評(píng)審。11、若有定義語句“inti=2,j=3;”,則表達(dá)式i/j的結(jié)果是()。A、0B、0.7C、0.66667D、0.66666667標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由于變量i、j都是整型變量,所以兩者相除所得的商也是整型數(shù)據(jù)。12、下列語句中,與語句“1n=(a>b?(1)>c?1:0):0);”的功能等價(jià)的是()。A、if(a<=b)n=0;B、if((a>b)Il(b>c))n=1;elsen=0;C、if(a>b)if(b>c)n=1:elsen=0;elsen=0;D、if(a>b)n=1;elseif(<=c)n=1;elseif(b>c)n=1;elsen=0;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:條件表達(dá)式(a>b?(b>c?1:0):0)的含義是,如果a>b成立,則此表達(dá)式的值等于條件表達(dá)式(b>c?1:0)的值,否則其值等于0。而條件表達(dá)式(b>c?1:0)的含義是,如果b>c成立,其值等于1,否則其值等于0。13、在對(duì)函數(shù)進(jìn)行原型聲明時(shí),下列語法成分中,不需要的是()。A、函數(shù)返回類型B、函數(shù)參數(shù)列表C、函數(shù)名D、函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中函數(shù)在使用之前要預(yù)先聲明,這種聲明在標(biāo)準(zhǔn)C++中稱為函數(shù)原型。函數(shù)給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時(shí)必須指明參數(shù)個(gè)數(shù)和類型。14、有如下程序:#include<iostream>usingnarnespacestd;voidfl(int&x){x++;}voidf2(intx){++x;}intmain(){intx=10,y=12;f1(x);f2(y);cout<<x+y<<end1;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、22B、23C、24D、25標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)f1(int&x){x++;}中,是對(duì)變量x的引用,所以當(dāng)在main函數(shù)中執(zhí)行“f1(x);”語句后,變量x的值等于ll,而在函數(shù)voidf2(intx){++x;}中,對(duì)變量x的傳遞調(diào)用,在main函數(shù)中執(zhí)行“f2(y);”語句后,變量y的值仍然等于12,所以輸出x+y的值等于23。15、下列有關(guān)函數(shù)重載的敘述中,錯(cuò)誤的是()。A、函數(shù)重載就是用相同的函數(shù)名定義多個(gè)函數(shù)B、重載函數(shù)的參數(shù)列表必須不同C、重載函數(shù)的返回值類型必須不同D、重載函數(shù)的參數(shù)可以帶有默認(rèn)值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載的概念。在C++語言中,允許定義一系列函數(shù)名相同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。故選項(xiàng)C錯(cuò)誤。16、下列關(guān)于賦值運(yùn)算符“=”重載的敘述中,正確的是()。A、賦值運(yùn)算符只能作為類的成員函數(shù)重載B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制”功能C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對(duì)象作為形參D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:賦值運(yùn)算符“=”只能作為成員函數(shù)重載。17、為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡(jiǎn)單的函數(shù)定義為()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、函數(shù)模板標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C中的預(yù)處理宏函數(shù)。兩者的區(qū)別在于,宏函數(shù)是由預(yù)處理器對(duì)宏進(jìn)行替換,而內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的。內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)像宏函數(shù)一樣展開,所以它沒有一股函數(shù)的參數(shù)壓棧和退棧操作,減少了調(diào)用開銷,因此,內(nèi)聯(lián)函數(shù)比普通函數(shù)有更高的執(zhí)行效率。18、下列語句中錯(cuò)誤的是()。A、constinta;B、constinta=10;C、eonstint*point=0;D、constint*point=newint(10);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)鍵字const聲明符號(hào)常量的同時(shí)必須為其賦初值。19、在下列函數(shù)原型中,可以作為類從構(gòu)造函數(shù)的是()。A、voidAA(int);B、intAA0;C、AA(int)const;D、AA(int);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)是類的一個(gè)特殊成員函數(shù),它與類同名,并且沒有返回值。選項(xiàng)A、B不符合要求。選項(xiàng)C中函數(shù)AA,會(huì)更新對(duì)象的數(shù)據(jù)成員。20、執(zhí)行下列語句段后,輸出字符“*”的個(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)語句。執(zhí)行循環(huán)語句,變量i從50遞減,每次減2,所以循環(huán)會(huì)執(zhí)行25次,輸出25個(gè)’*’。21、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assTest{public:TestO{n+=2;}~Test0{n—=3;}staticintgetNum0{returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<"n="<Test::getNumO<<end1;retum0;}執(zhí)行后的輸出結(jié)果是()。A、n=0B、n=1C、n=2D、n=3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。靜態(tài)數(shù)據(jù)成員是類中所有對(duì)象共享的成員,而不是某個(gè)對(duì)象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有疊加性,執(zhí)行“n+—2”和“n——3”后n的值為0。22、下列有關(guān)繼承和派生的敘述中,正確的是()。A、派生類不能訪問基類的保護(hù)成員B、作為虛基類的類不能被實(shí)例化C、派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)D、虛函,數(shù)必須在派生類中重新實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無論使用哪種繼承方式,派生類中的成員都不能訪問基類中的私有成員,而可以訪問基類中的公有成員和保護(hù)成員,所以選項(xiàng)A錯(cuò)誤:C++中只有抽象類不能被實(shí)例化,而虛基類不一定非得是抽象類,所以選項(xiàng)B錯(cuò)誤;在派生類中可以重新定義從基類繼承下來的虛函數(shù),也可以不重新定義,故選項(xiàng)D錯(cuò)誤。23、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無關(guān)的是()。A、重載函數(shù)B、虛函數(shù)C、指針D、引用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,多態(tài)性可以分為兩類:編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過函數(shù)重載和模版體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過虛函數(shù)體現(xiàn)的。24、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){cout.fill(’*’);cout.width(6);cout.fill(’#’);cout<<123<<end1;retum0;}執(zhí)行后的輸出結(jié)果是()。A、##123B、123##C、***123D、123***標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是I/O格式化輸出。函數(shù)width(intn)設(shè)置輸入輸出寬度,當(dāng)實(shí)際數(shù)據(jù)寬度小于制定的寬度時(shí),多余的位置用填充字符填滿;當(dāng)實(shí)際數(shù)據(jù)寬度大于設(shè)置的寬度時(shí),仍按實(shí)際寬度輸出;函數(shù)fill(charc)用來設(shè)置填充字符。25、有如下類模板定義:template<typenameT>classBigNumber{longn:public:BigNumber(Ti):n(i){}BigNumberoperator+(BigNumberb){returnBigNtmaber(n+b.n);}}已知b1、b2是,BigNumber的兩個(gè)對(duì)象,則下列表達(dá)式中錯(cuò)誤的是()。A、b1+b2B、b1+3C、3+b1D、3+3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++運(yùn)算符的重載有兩個(gè)方式,一種是做為成員函數(shù),另一種是做為友元函數(shù)。前種C++默認(rèn)省略第一個(gè)參數(shù)(事實(shí)上是對(duì)象本身),而后一種是所有的參數(shù)都要寫全。比如對(duì)加法的重載:成員方式為Coperatoroperator+(Coperator&op);,在調(diào)用的過程中我們可以理解為result=operator+(op);友元方式為friendCoperatoroperator.(Coperator&op1,Coperator&op2);,在調(diào)用的過程中我們可以理解為result=operator-(op1,op2);。對(duì)于本題題來說,整數(shù)3與b1相加時(shí),3是誠型,b1是BigNumber<T>型,int型不能和別的型做運(yùn)算。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共32題,每題1.0分,共32分。)1、下面關(guān)于算法的敘述中,正確的是()。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)B、算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止C、算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)D、以上三種描述都正確標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法在運(yùn)行過程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個(gè)算法必須在執(zhí)行有限的步驟后結(jié)束。2、如果進(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)。3、下列各選項(xiàng)中,不屬乎序言性注釋的是()。A、程序標(biāo)題B、程序設(shè)計(jì)者C、主要算法D、數(shù)據(jù)狀態(tài)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:注釋一般為序言性注釋和功能性注釋。序言性注釋常位于程序開頭部分,它包括程序標(biāo)題、程序功能說明、主要算法、接口說明、程序位置、開發(fā)簡(jiǎn)歷、程序設(shè)計(jì)者、復(fù)審者、復(fù)審日期及修改日期等。功能性注釋一般嵌在源程序體之中,用于描述其后的語句或程序的主要功能。4、下列模式中,能夠給出數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是()。A、內(nèi)模式B、外模式C、概念模式D、邏輯模式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對(duì)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的一部分。內(nèi)模式,或存儲(chǔ)模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)上的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。5、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。A、便于用戶,開發(fā)人員進(jìn)行理解和交流B、反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)D、便于開發(fā)人員進(jìn)行需求分析標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求規(guī)格說明書有以下幾個(gè)方面的作用:①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。6、下列不屬于軟件工程3個(gè)要素的是()。A、工具B、過程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理。7、數(shù)據(jù)庫系統(tǒng)在其內(nèi)部具有3級(jí)模式,用來描述數(shù)據(jù)庫中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。A、外模式B、概念模式C、內(nèi)模式D、存儲(chǔ)模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:概念模式,也稱邏輯模式,是對(duì)數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶應(yīng)用公共數(shù)據(jù)視圖。它不涉及具體的硬件環(huán)境與平臺(tái),與具體的軟件環(huán)境也無關(guān)。8、下列語句中,錯(cuò)誤的是()。A、constintbuffer=-256;B、constanttemp;C、constdouble*point;D、constdouble*it=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:符號(hào)常量聲明語句的語法格式是:const類型名符號(hào)常量=初值表達(dá)式,選項(xiàng)B中未給常變量賦初值,故錯(cuò)誤;而選項(xiàng)C中定義的是一個(gè)指向浮點(diǎn)型常量的指針,而不是定義一個(gè)浮點(diǎn)型常量,所以可以不賦初值。9、在進(jìn)行任何C++流的操作后,都可以用C++流的有關(guān)成員函數(shù)檢測(cè)流的狀態(tài);其中只能用于檢測(cè)輸入流狀態(tài)的操作函數(shù)名稱是()。A、failB、eofC、badD、good標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:可以用文件流對(duì)象的成員函數(shù)來判別文件流當(dāng)前的狀態(tài):fail,剛進(jìn)行的操作失敗時(shí)返回true,否則返回false;eof,進(jìn)行輸入操作時(shí),若文件到達(dá)文件尾返回true,否則返回false;bad,如果講行了非法操作扳回true,否則返回false:good,剛進(jìn)行的操作成功時(shí)返回true,否則返回false。10、對(duì)于語句cout<<endl<<x;中的各個(gè)組成部分,下列敘述中錯(cuò)誤的是()。A、“cout”是一個(gè)輸出流對(duì)象B、“end1”的作用是輸出回車換行C、“x”是一個(gè)變量D、“<<”稱作提取運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:語句cout<<end1<<x;作用是輸出回車和變量x的值。所以題目中選項(xiàng)A、B、C的敘述均正確,只有選項(xiàng)D敘述錯(cuò)誤,“<<”是插入運(yùn)算符。11、以下程序的輸出結(jié)果是()。#include<iostream.h>main(){intm=5;if(m++>5)cout<<m;elsecout<<m--;}A、7B、6C、5D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題中,因?yàn)閙++>5成立(此時(shí)m的值變?yōu)?),所以執(zhí)行語句cout<<m;輸出結(jié)果為6。12、閱讀下面的程序:#include<iostream.h>voidmain(){intx;cin>>x;if(x++>5)cout<<x<<end1;elsecout<<x--<<end1;}如果兩次執(zhí)行上述程序,且鍵盤輸入分別為4和6,則輸出結(jié)果分別是()。A、4,6B、3,6C、4,7D、5,7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題首先讀入數(shù)值4賦給變量x,因?yàn)閤++>5不成立,因?yàn)椤?+”后綴,之后x的值變?yōu)?,執(zhí)行語句cout<<x-<<end1;輸出:5,之后x的值變?yōu)?。當(dāng)讀入的數(shù)值是6時(shí),因?yàn)閤++>》5成立,所以執(zhí)行語句cout<<x<<end1;輸出7。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、有如下程序:#include<iostream>usingnamespacestd;inti=1;classFun{public:staticinti;intvalue(){returni-1;}intvalue()const{returni+1;}};intFun::i=2;intmain(){inti=3;Funfun1;constFunfun2;_______return0:}若程序的輸出結(jié)果是:123則程序中橫線處的語句是()。A、cout<<fun1.value()<<Fun:i<<fun2.value();B、cout<<Fun::i<<fun1.value()<<fun2.value();C、cout<<fun1.value()<<fun2.value()<<Fun::i;D、cout<<fun2.value()<<Fun::i<<fun1.value();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題因?yàn)槎x的變量i是static類型的(main()函數(shù)內(nèi)部的i只是一個(gè)局部變量),所以,選項(xiàng)A中fun1.value()的返回值是1,F(xiàn)un::i引用的是外部變量會(huì)輸出2;fun2.value();會(huì)調(diào)用常成員函數(shù)intvalue()const{returni+l;}使得外部靜態(tài)變量i的值增加為3,故輸出3。15、下列對(duì)重載函數(shù)的描述中,()是錯(cuò)誤的。A、重載函數(shù)中不允許使用默認(rèn)參數(shù)B、重載函數(shù)中編譯是根據(jù)參數(shù)表進(jìn)行選擇C、不要使用重載函數(shù)來描述毫不相干的函數(shù)D、構(gòu)造函數(shù)重載將會(huì)給初始化帶來多種方式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A中,重載函數(shù)中是允許使用默認(rèn)參數(shù)的;為了使重載函數(shù)有意義,不要使用重載函數(shù)來描述毫無相干的函數(shù);重載函數(shù)中編譯是根據(jù)參數(shù)表進(jìn)行選擇,包括參數(shù)的個(gè)數(shù)和類型。16、下列關(guān)于對(duì)象概念的描述中,正確的是()。A、對(duì)象就是C語言中的結(jié)構(gòu)變量B、對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體C、對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體D、對(duì)象之間的信息傳遞是通過消息進(jìn)行的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)象之間的信息傳遞是通過消息進(jìn)行的。對(duì)象:方法(函數(shù))+屬性(數(shù)據(jù)),而C語言的結(jié)構(gòu)體其實(shí)就是不同類型數(shù)據(jù)的組合。并沒有處理數(shù)據(jù)的方法。17、在下列double型常量表示中,錯(cuò)誤的是()。A、E15B、.35C、3E5D、3E-5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,科學(xué)計(jì)數(shù)法表示小數(shù)的方法:E(e)左右必須有數(shù),且E(e)的右側(cè)只能為整數(shù)。18、下列給字符數(shù)組進(jìn)行初始化中,正確的是()。A、chars1[]=’’12345abcd’’;B、chars2[3]=’’xyz’’;C、chars3[][3]={’a’,’x’,’y’};D、chars4[2][3]={’’xyz’’,’’mnp’’};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中定義二維數(shù)組時(shí)并賦值,則數(shù)組的行數(shù)可以省略不寫。選項(xiàng)A、B、D均是字符字符串初始化。19、對(duì)于int*pa[5];的描述,正確的是()。A、pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素B、pa是一個(gè)指向某個(gè)數(shù)組中第5個(gè)元素的指針,該元素是int型變量C、pa[5]表示某個(gè)數(shù)組的第5個(gè)元素的值D、pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語句“int*p[5]”表示一個(gè)數(shù)組p,它的大小是5,里面存放的數(shù)據(jù)類型是int*,也就是整型指針。稱之為指針數(shù)組(從右向左解析這個(gè)表示)。20、執(zhí)行后的輸出結(jié)果是()。#include<iostream.h>voidmain(){inti(0);while(++i){if(i==10)break;if(i%3!=1)continue;cout<<i<<end1;}A、147B、247C、432D、731標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:從if(i==10)break;語句了解本循環(huán)只到10,輸出i的條件是只要1-10之間的數(shù)對(duì)3取余為1的輸出,所以輸出的147。21、有如下程序:#include<iostream>usingnarnespacestd;classA{public:AO{cout<<’’A’’;}};classB{public:B(){cout<<’’B’’;}};classC:publicA{Bb:public:C(){cout<<’’C’’;}};intmain(){Cobj;return0:}執(zhí)行后的輸出結(jié)果是()。A、CBAB、BACC、ACBD、ABC標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題中,語句Cobj對(duì)象初始化首先調(diào)用基類的構(gòu)造函數(shù)A(),輸出“A”,其次是C類中對(duì)象的構(gòu)造函數(shù)的調(diào)用,即調(diào)用BO,輸出“B”;最后是調(diào)用自身的構(gòu)造函數(shù)C(),輸出“C”。22、有如下程序:#include<iostream.h>voidmain(){charstr[2][5]={’’1234’’,’’5678’’},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=str[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’\0’;j+=2)s=10*s+p[i][j]-’0’;cout<<s;}該程序的輸出結(jié)果是()。A、1357B、2468C、3556D、23678標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中的“for(i=0;i<2;i++)p[i]=str[i];”語句將str中的值賦值給指針數(shù)組p。在接下來的二重for循環(huán)中,跳取“j+=2”,p指針指向的值即“1”,“3”,“5”,“7”。在分別對(duì)字符到整型的轉(zhuǎn)換,即減去字符’0’,然后依次轉(zhuǎn)換為千位,百位,十位,個(gè)位“10*s”操作輸出整型s,即“1357”。23、以下程序的輸出結(jié)果是()。#include<iostream>usingnamespacestd;voidfun(char**q){++q;cout<<*q<<end1;}main(){staticchar*s[]={’’HI","HELLO’’,’’TEST’’};char**p;p=s;fun(p);system(’’PAUSE’’);return0;}A、為空B、HIC、HELLOD、TEST標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由程序main主函數(shù)入手,調(diào)用fun函數(shù),在fun函數(shù)中執(zhí)行“cout<<*q<<end1;”語句實(shí)現(xiàn)程序輸出。主函數(shù)中變量char*s[]為指針數(shù)組,char**p表示p指向的字符指針數(shù)據(jù)。*p就代表p指向的字符指針。語句“p=s;"表明p指向字符指針s,而**p則是s[]中的第一個(gè)字符串“HI”。主函數(shù)將變量p傳值給函數(shù)fun(char**q)中的q,在函數(shù)體內(nèi)部首先執(zhí)行“++q”語句,就是將q的指針指向s中的下一個(gè)字符串,即“HEILO”,所以輸出語句“cout<<*q<<end1:”輸出該字符串值。24、下列程序用來判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為()。#include<conio.h>#include<iostream.h>intfun(int*p,intn,int*j){inti;*j=0;for(i=0;i<n;i++)if(p[*j]<p[i])*j=i;returnp[*j];}voidmain(){inta[10]={1,3,9,O,8,7,6,5,4,2};intj;fun(a,10,&j);cout<<j<<’,’<<a[j];}A、2,9B、3C、9D、3,9標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由程序中的主函數(shù)main入手,調(diào)用fun函數(shù)。其中第一個(gè)實(shí)參為數(shù)組a的名字,數(shù)組名作為實(shí)參,傳遞的是數(shù)組的起始地址。所以在fun函數(shù)中指針p指向了數(shù)組的第一個(gè)元素a[0]。另外實(shí)參整型j傳遞的是引用,也就是j的地址。在fun函數(shù)中在for循環(huán)中,依次將當(dāng)前元素p[i]與j指針值為標(biāo)識(shí)的p[*j]進(jìn)行比較,取較大的。最后循環(huán)后的結(jié)果就是p[*j]存放數(shù)組中的最大值,并且指針j為該值的標(biāo)識(shí)位??梢钥闯鰯?shù)組的最大值是9標(biāo)識(shí)位為2。25、以下程序的正確運(yùn)行結(jié)果是()。#include<iostream.h>intfun(int);voidmain(){inta=2,i;for(i=0;i<3;i++)cout<<fun(a)<<end1;cout<<end1;}intfun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}A、4,5,6B、6,7,9C、7,8,9D、7,7,7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)中在for循環(huán)中依次調(diào)用fun函數(shù)。其中c為靜態(tài)變量,到程序結(jié)束有效。第一次循環(huán)中2+1+4=7,第二次循環(huán)20+1+5=8,第三次循環(huán)2+1+6=9。即答案為789。26、靜態(tài)數(shù)據(jù)成員在()進(jìn)行初始化。A、成員函數(shù)列表B、類體外C、構(gòu)造函數(shù)D、成員函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員不能在參數(shù)初始化表對(duì)靜態(tài)數(shù)據(jù)成員初始化,只能在類體外進(jìn)行初始化。27、有如下類說明:classTestClass{hatx;public:TestClass(intn){x=n;}};classTestClass1:publicTestClass{inty;public:TestClass1(inta,intb);};在構(gòu)造函數(shù)TestClass1的下列定義中,正確的是()。A、TestClass1::TestClass1(inta,intb):x(a),y(b){}B、TestClass1::TestClass1(inta,intb):TestClass(a),y(b){}C、TestClass1::TestClass1(inta,intb):x(a),TestClass1(b){}D、TestClass1::TestClass1(inta,intb):TestClass(a),TestClass1(b){}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目中程序TestClass為基類,TestClass1為派生類,派生類構(gòu)造函數(shù)的一般形式為:派生類構(gòu)造函數(shù)名(總參數(shù)類表):基類構(gòu)造函數(shù)名(參數(shù)列表){派生類中新增數(shù)據(jù)成員初始化語句}。派生類TestClass1的基類函數(shù)名為TestClass,總參數(shù)為inta,intb,所以選擇B)。28、在聲明派生類時(shí),如果不顯示地給出繼承方式,缺省的類繼承方式是私有繼承private。已知有如下類定義:classTestClass{protected:voidfun(){}};classTestClass1:TestClass{};則TestClass類中的成員函數(shù)fun(),TestClass1類中的訪問權(quán)限是()。A、publicB、privateC、protectedD、virtual標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中的TestClass1為TestClass的派生類,如果不寫繼承方式,則默認(rèn)為private,所以TestClass1私有繼承TestClass,對(duì)于基類中的保護(hù)成員,繼承類的訪問權(quán)限為private。所以選擇B。29、下面敘述錯(cuò)誤的是()。A、對(duì)基類成員的訪問能力在private派生類中和public派生類中是相同的B、基類的private成員在public派生類中不可訪問C、基類中的public成員在protected派生類中是protected的D、基類中的public成員在protected派生類中仍然是public的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:基類的公有成員和保護(hù)成員在保護(hù)派生類中都成了保護(hù)成員,其私有成員仍為基類私有。30、在C++中,實(shí)現(xiàn)封裝性需借助于()。A、枚舉B、類C、數(shù)組D、函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是C++語言中對(duì)象概念的理解。所謂封裝性是指將數(shù)據(jù)和算法捆綁成一個(gè)整體,這個(gè)整體就是對(duì)象。C++語言通過建立用戶定義類型“類”來支持封裝性和信息隱藏。31、下列關(guān)于類和對(duì)象的敘述中,錯(cuò)誤的是()。A、一個(gè)類只能有一個(gè)對(duì)象B、對(duì)象是類的具體實(shí)例C、類是對(duì)某一類對(duì)象的抽象D、類和對(duì)象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是類和對(duì)象的概念。類是用戶定義的一種數(shù)據(jù)類型,可以使用這個(gè)類型來說明一個(gè)或多個(gè)變量,即對(duì)象。32、下列關(guān)于C++函數(shù)的說明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語句必須是return語句C、標(biāo)準(zhǔn)C++要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型D、編譯器會(huì)根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是有關(guān)函數(shù)的概念。內(nèi)聯(lián)函數(shù)是在函數(shù)定義之前加關(guān)鍵字inline來聲明的函數(shù),而不是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù),故選項(xiàng)A錯(cuò)誤;無返回值的函數(shù)在執(zhí)行完最后一條語句后,會(huì)自動(dòng)返回而不必加入return語句,故選項(xiàng)B錯(cuò)誤;如果函數(shù)只是返回值類型不同,而其他完全相同,則不能作為函數(shù)重載來使用。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共22題,每題1.0分,共22分。)1、下列關(guān)于棧敘述正確的是A、棧頂元素能最先被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠(yuǎn)不能被刪除D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表,棧頂?shù)脑刈钕缺粍h除,棧底的元素最后被刪除。2、下列敘述中正確的是()。A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、棧與隊(duì)列都是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。3、下列敘述中正確的是()。A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、以上都不正確標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的。而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。4、有如下類定義:classMyBase{intk;public:MyBase(intn=0):k(n){}intvalue()const{returnk;}};classMyDerived:MyBase{intj;public:MyDerived(inti):j(i){}intgetK()const{returnk;}intgetJ()const{returnj;}};編譯時(shí)發(fā)現(xiàn)有一處語法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、函數(shù)getK試圖訪問基類的私有成員變量kB、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或privateC、類MyDerived缺少一個(gè)無參的構(gòu)造函數(shù)D、類MyDerived的構(gòu)造函數(shù)沒有對(duì)基類數(shù)據(jù)成員k進(jìn)行初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:默認(rèn)繼承方式為私有繼承,私有繼承將基類的公用成員和保護(hù)成員都變?yōu)榱怂接谐蓡T,基類的私有成員依然屬于基類私有,派生類不能訪問基類的私有成員。所以A選項(xiàng)正確。5、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多元性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態(tài)性。6、軟件需求規(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ù)。7、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序流程圖是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過程設(shè)計(jì)工具,通常也稱為程序框圖。其中,用帶箭頭的線段表示控制流,用柜形表示加工步驟,用菱形表示邏輯條件。8、下列關(guān)于this指針的敘述中,正確的是()。A、任何與類相關(guān)的函數(shù)都有this指針B、類的成員函數(shù)都有this指針C、類的友元函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)才有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是this指針的使用。類的每一個(gè)成員函數(shù)都有一個(gè)隱含的常量指針,即this指針。類的靜態(tài)成員函數(shù)不能含有this指針,因?yàn)閠his指針是一個(gè)指向本對(duì)象的指針。9、在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體間聯(lián)系的是()。A、屬性B、二維表C、網(wǎng)狀結(jié)構(gòu)D、樹狀結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在關(guān)系數(shù)據(jù)庫中,實(shí)體間的聯(lián)系由一個(gè)二維表來表示。10、負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是數(shù)據(jù)操縱語言。11、已知類IMS中兩個(gè)成員函數(shù)的聲明為“voidlisten()const;”與“voidspeak();”,另有兩個(gè)對(duì)象的定義為“IMSobjl;”與“constIMSobj2;”,則下列語句中,產(chǎn)生編譯錯(cuò)誤的是()。A、objl.1isten();B、objl.speak();C、obj2.1isten();D、obj2.speak();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù):listen(、)作為類IMS的常成員函數(shù),一般對(duì)象obi和常對(duì)象obj2都可以調(diào)用它,而函數(shù)speak()作為IMS的一般成員函數(shù),則只有一般對(duì)象objl可以調(diào)用,而常對(duì)象obi2調(diào)用會(huì)產(chǎn)生編譯錯(cuò)誤。12、有如下程序:#includeusingnamespacestd;classSample{friendlongfun(Samples);Sample(10nga){x=a;}private:longx;);longfun(SampleS){if(s.x<2)returnl:returns.x*fun(Sample(s.X-1)):)intmain(){intsum=0;for(inti=0;i<6;i++){sum+=fun(Sample(i));)return0:}運(yùn)行時(shí)輸出的結(jié)果是()。A、16B、154C、34標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是友元函數(shù)和遞歸函數(shù)。因?yàn)閒un函數(shù)是Sample類的友元函數(shù),所以fun函數(shù)可以直接訪問Sample類對(duì)象的私有成員x。主函數(shù)調(diào)用fun函數(shù),構(gòu)造參數(shù)為0~5。當(dāng)n小于2時(shí),fun函數(shù)返回l,其余返回值為n*fun(n-1)。n取0~5的值時(shí)fun(n)依次為1,l,2,6,24,120,累加結(jié)果為154。13、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、投影D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選擇是單目運(yùn)算,其運(yùn)算對(duì)象是一個(gè)表。該運(yùn)算按給定的條件,從表中選出滿足條件的行形成一個(gè)新表作為運(yùn)算結(jié)果。投影也是單目運(yùn)算,該運(yùn)算從表中選出指定的屬性值組成一個(gè)新表。自然連接是一種特殊的等價(jià)連接,它將表中有相同名稱的列自動(dòng)進(jìn)行記錄匹配。自然連接不必指定任何同等連接條件。14、類MyClass的定義如下:classMyClass{public:MyClass(){value=0;}SetVariable(inti){value=i;}private;intvalue;);則對(duì)下列語句序列正確的描述是()。MyClass*P,my;p=&my;A、語句p=&my;是把對(duì)象my賦值給指針變量PB、語句Myaass*p,my;會(huì)調(diào)用兩次類MyClass的構(gòu)造函數(shù)C、對(duì)語句*p.SetVariable(5)的調(diào)用是正確的D、語句p->SetVariable(5)與語句my.SetVariable(5)等價(jià)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)A),語句p=&my;是把對(duì)象my的地址值賦值給指針變量p;選項(xiàng)B),語句MyClass*p,my;,由于p只是一個(gè)指向?qū)ο蟮闹羔?,因此定義指針p不調(diào)用構(gòu)造函數(shù),所以此語句只調(diào)用一次構(gòu)造函數(shù);對(duì)成員函數(shù)的引用可以通過兩種形式:指針->成員函數(shù)(形參表)或者對(duì)象名.成語函數(shù)名(形參表),故選項(xiàng)C)錯(cuò)誤,選項(xiàng)D)正確。15、下列字符串中不能作為C++標(biāo)識(shí)符使用的是()。A、WHILEB、userC、_lvarD、9stars標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中變量名的命名必須遵循一定的原則,其中之一即是第一個(gè)字符必須是字母或者F劃線。16、執(zhí)行下列語句段后,輸出字符“*”的個(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)語句。For循環(huán)中i從50開始逐漸遞減,直到i=1時(shí)退出,而此時(shí)沒有機(jī)會(huì)執(zhí)行到循環(huán)體,因此一共執(zhí)行了49次循環(huán)體,所以最終輸出的是49個(gè)字符‘*’。17、己知類MyClass聲明如下:classMyClass{intn;public:MyClass(intk):n(k){}intgetValue()const{returnn;}};在下列數(shù)組定義中正確的是()。A、MyClassx1[2];B、MyClassx2[2]={newMyClass(1),newMyClass(2)};C、MyClass*x3[2];D、MyClass*x4[2]={MyClass(1),MyClass(2)};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:考查的是對(duì)象數(shù)組。選項(xiàng)A中在建立對(duì)象數(shù)組時(shí)也同樣需要調(diào)用構(gòu)造函數(shù):選項(xiàng)B和D的類型不匹配,B中不能將指針傳給非指針,D中是將非指針傳給指針。18、下列有關(guān)抽象類和純虛函數(shù)的敘述中,錯(cuò)誤的是()。A、擁有純虛函數(shù)的類是抽象類,不能用來定義對(duì)象B、抽象類的派生類若不實(shí)現(xiàn)純虛函數(shù),它也是抽象類C、純虛函數(shù)的聲明以“=0;”結(jié)束D、純虛函數(shù)都不能有函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是抽象類和純虛函數(shù)的概念。純虛函數(shù)可以有函數(shù)體,它的實(shí)現(xiàn)由派生類給出。19、下列關(guān)于基類和派生類關(guān)系的敘述中,正確的是()。A、每個(gè)類最多只能有一個(gè)直接基類B、派生類中的成員可以訪問基類中的任何成員C、基類的構(gòu)造函數(shù)必須在派生類的構(gòu)造函數(shù)體中調(diào)用D、派生類除了繼承基類的成員,還可以定義新的成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:繼承分為單繼承和多繼承,一個(gè)類只有一個(gè)直接基類時(shí),稱為單繼承;而一個(gè)類同時(shí)有多個(gè)直接基類時(shí),則稱為多繼承。派生類的數(shù)據(jù)成員由所有基類的的數(shù)據(jù)成員與派生類新增的數(shù)據(jù)成員共同組成。20、有類定義如下:classType{public:Type(inti=0);Typeoperator一(int);friendTypeoperator+(Type,Type);private:intval,};若有對(duì)象定義Typec1;則下列語句序列中,錯(cuò)誤的是()。A、Type(3)+c1;B、c1+Type(3);C、3一c1;D、c1一3;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于在類Type中對(duì)“.”進(jìn)行了重載,所以根據(jù)“.”重載的形式定義,cl一3是正確的,而3一cl是錯(cuò)誤的表達(dá)式。21、下列運(yùn)算符不能重載為友元函數(shù)的是()。A、=()[]->B、+-++--C、><>=<=D、+=-=*=/=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。c1++語言規(guī)定,=、[]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重載為非成員函數(shù)。22、有如下程序:#include#includeusingnamespacestd;intmain(){cout<A、***123***456B、***123456***C、***123456D、123456標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中第一次輸出時(shí)調(diào)用函數(shù)setfill(’*’)設(shè)置填充字符為‘*’,調(diào)用函數(shù)setw(6)設(shè)置每次輸出的寬度為6,所以第一次輸出123時(shí),多余的三個(gè)空位用‘*’填充,即結(jié)果為***123,第二次從輸出流中輸出456。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共20題,每題1.0分,共20分。)1、下列敘述中正確的是()。A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、棧與隊(duì)列都是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。2、已知遞歸函數(shù)fun的定義如下:intfun(intn){if(n<=1)return1;//遞歸結(jié)束情況elsereturnn*fun(n-2);//遞歸}則函數(shù)調(diào)用語句fun(5)的返回值是()。A、5B、12C、15D、30標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:遞歸函數(shù)fun被定義為含有參數(shù)intn,返回整型。其中fun函數(shù)遞歸調(diào)用本身,當(dāng)n=1時(shí),fun返回1,如果大于1那么執(zhí)行n*fun(n-2)。所以,當(dāng)n等于5時(shí),執(zhí)行5*fun(3);當(dāng)3時(shí)繼續(xù)調(diào)用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案為15。3、在下列原型所示的C++函數(shù)中,按“傳值”方式傳遞參數(shù)的是()。A、voidfl(intx);B、voidf2(int*x);C、‘voidt3(eonstint*x);D、voidf4(int&x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)參數(shù)的3種傳遞方式:①將變量名作為形參和實(shí)參,即傳值方式;②傳遞變量指針;③引用形參。其中B、C選項(xiàng)都是傳遞變量指針,D選項(xiàng)為引用形參,所以本題答案為A。4、下列描述中正確的是()。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ò)充和刪改。5、下面屬于白盒測(cè)試方法的是()。A、等價(jià)類劃分法B、邏輯覆蓋C、邊界值分析法D、錯(cuò)誤推測(cè)法標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:白盒測(cè)試的主要方法有邏輯覆蓋、基本路徑測(cè)試等。6、數(shù)據(jù)庫系統(tǒng)的三級(jí)模式不包括()。A、概念模式B、內(nèi)模式C、外模式D、數(shù)據(jù)模式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的三級(jí)模式包括概念模式、外模式和內(nèi)模式(物理模式)。7、軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面不屬于開發(fā)階段任務(wù)的是A、測(cè)試B、設(shè)計(jì)C、編碼D、需求分析標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:發(fā)階段由三個(gè)階段組成:設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試。需求分析屬于定義階段。8、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、投影D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選擇是單目運(yùn)算,其運(yùn)算對(duì)象是一個(gè)表。該運(yùn)算按給定的條件,從表中選出滿足條件的行形成一個(gè)新表作為運(yùn)算結(jié)果。投影也是單目運(yùn)算,該運(yùn)算從表中選出指定的屬性值組成一個(gè)新表。自然連接是一種特殊的等價(jià)連接,它將表中有相同名稱的列自動(dòng)進(jìn)行記錄匹配。自然連接不必指定任何同等連接條件。9、有如下程序:#inc1ude<iostream>voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={23,42};return0,}執(zhí)行后的輸出結(jié)果是()。A、42,42B、23,23C、23,42D、42,23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查是是函數(shù)的調(diào)用以及參數(shù)值的傳遞。函數(shù)fun中的第一個(gè)參數(shù)是引用傳值方式,是雙向的;第二個(gè)參數(shù)是按值傳遞,是單向的。10、已知枚舉類型聲明語句為:enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};則下列說法中錯(cuò)誤的是()。A、枚舉常量YELLOW的值為1B、枚舉常量RED的值為6C、枚舉常量BLACK的值為10D、枚舉常量WHITE的值為1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語法形式為:enum類型名{枚舉值表}。需注意的是:當(dāng)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0、l、2、3…n-1對(duì)應(yīng):若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。11、執(zhí)行下列語句段后,輸出字符“*”的個(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)語句。For循環(huán)中i從50開始逐漸遞減,直到i=1時(shí)退出,而此時(shí)沒有機(jī)會(huì)執(zhí)行到循環(huán)體,因此一共執(zhí)行了49次循環(huán)體,所以最終輸出的是49個(gè)字符‘*’。12、有如下程序:#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。13、下列有關(guān)類繼承的敘述中,錯(cuò)誤的是()。A、繼承可以實(shí)現(xiàn)軟件復(fù)用B、虛基類可以解決由多繼承產(chǎn)生的二義性問題C、派生類構(gòu)造函數(shù)要負(fù)責(zé)調(diào)用基類的構(gòu)造函數(shù)D、派生類沒有繼承基類的私有成員.標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類繼承。派生類繼承了基類的(全部數(shù)據(jù)成員,私有成員),只是基類的私有成員在派生類中是隱藏的,只能在基類內(nèi)部訪問,故選項(xiàng)D錯(cuò)誤。14、有如下類定義:c1assMyBase{intk;public:MyBase(intn=0):k(n){}intvalue()const{retumk;}};c1assMyDerived:MyBase{intj;public:MyDerived(inti):j(i){}intgetK()const{returnk;}intgeU()const{retumj;}};編譯時(shí)發(fā)現(xiàn)有一處語法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、函數(shù)getK試圖訪問基類的私有成員變量kB、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或privateC、類MyDerived缺少一個(gè)無參的構(gòu)造函數(shù)D、類MyDerived的構(gòu)造函數(shù)沒有對(duì)基類數(shù)據(jù)成員k進(jìn)行初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問。因?yàn)轭愔腥笔〉脑L問權(quán)限是私有,所以本題中MyBase類中定義的成員k是私有成員。派生類中的成員只能訪問基類中的公有成員和保護(hù)成員,不能訪問基類中的私有成員。所以派生類中函數(shù)getK()中的語句returnk;是非法的。15、有如下類定義:classPoint{intx_,y_;public:Point():x_(0),y_(0){}Point(intx,inty=0):x_(x),y_(y){}};若執(zhí)行語句Pointa(2)b[3],*c[4];則Point類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。A、2次B、3次C、4次D、5次標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是類的構(gòu)造函數(shù)。構(gòu)造函數(shù)在對(duì)象創(chuàng)建的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。在Pointa(2),b[3],*c[4]語句中:a(2)是定義一個(gè)對(duì)象并傳入構(gòu)造函數(shù)2,所以此時(shí)會(huì)調(diào)用以此構(gòu)造函數(shù);b[3]是定義一個(gè)包含3個(gè)對(duì)象的數(shù)組,所以構(gòu)造函數(shù)會(huì)被調(diào)用3次;*c[4]定義的是4個(gè):Point類對(duì)象指針的數(shù)組,它并沒有創(chuàng)建任何Point對(duì)象,所以不調(diào)用構(gòu)造函數(shù)。16、已知基類Employee只有一個(gè)構(gòu)造函數(shù),其定義如下:Employee::Employee(intn):id(n){}Manager是Employee的派生類,則下列對(duì)Manager的構(gòu)造函數(shù)的定義中,正確的是()。A、Manager::Manager(intn):id(n){}B、Manager::Manager(intn){id=n;}C、Manager::Manager(intn):Employee(n){}D、Manager::Manager(intn){Employee(n);}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:基類的構(gòu)造函數(shù)是帶有參數(shù)的,派生類從基類派生,這就需要在派生類的構(gòu)造函數(shù)名后面顯示的調(diào)用基類的構(gòu)造函數(shù)。17、有如下程序#inc1ude<iostream>usingnamespacestd;classA{public:virtualvoidfunc1(){cout<"A1";}voidfunc2(){cout<<"A2";}};classB:publicA{public:voidfunc1(){cout<"B1";}voidfunc2(){cout<"’B2";}};intmain(){A*p=newB;p一>func1();p一>func2();return0:}運(yùn)行此程序,屏幕上將顯示輸出()。A、BIB2B、AIA2C、BIA2D、AIB2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的概念。此題中,funcl是虛函數(shù),func2是一般成員函數(shù),而且在派生類與基類中都存在兩個(gè)這樣的函數(shù)。在主函數(shù)中,語句A*p=newB;定義了一個(gè)基類的指針p,并讓它指向一個(gè)派生類對(duì)象。所以通過該指針調(diào)用funcl時(shí),運(yùn)行的是派生類的版本,而通過該指針調(diào)用func2運(yùn)行的是基類的版本。所以程序運(yùn)行的最后輸出是:B1A2。18、若需要為XV類重載乘法運(yùn)算符,運(yùn)算結(jié)果為XV類型,在將其聲明為類的成員函數(shù)時(shí),下列原型聲明正確的是()。A、XVoperator*(XV,XV);B、XV*(XV);C、operator*(XV);D、XVoperator*(XV);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“*”是一個(gè)二元運(yùn)算符,在作為成員函數(shù)重載時(shí)參數(shù)表中只有一個(gè)參數(shù),對(duì)應(yīng)于第二個(gè)操作數(shù),而第一個(gè)操作數(shù)就是對(duì)象本身,僅以this指針的形式隱藏在參數(shù)表中。19、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無關(guān)的是()。A、重載函數(shù)B、虛函數(shù)C、指針D、引用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,多態(tài)性可以分為兩類:編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過函數(shù)重載和模版體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過虛函數(shù)體現(xiàn)的。20、下列關(guān)于C++流的說明中,正確的是()。A、與鍵盤、屏幕、打印機(jī)和通信端口的交互都可以通過流類來實(shí)現(xiàn)B、從流中獲取數(shù)據(jù)的操作稱為插入操作,向流中添加數(shù)據(jù)的操作稱為提取操作C、cin是一個(gè)預(yù)定義的輸入流類D、輸出流有一個(gè)名為open的成員函數(shù),其作用是生成一個(gè)新的流對(duì)象標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++流的概念。從輸入流中提取數(shù)據(jù)稱為提取操作,把表達(dá)式插入到輸出流中的操作稱為插入操作,故選項(xiàng)B錯(cuò)誤;cin是一個(gè)預(yù)定義的輸入流對(duì)象而不是流類,故選項(xiàng)C錯(cuò)誤;輸入輸出流中沒有open成員函數(shù),故選項(xiàng)D錯(cuò)誤。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共33題,每題1.0分,共33分。)1、算法的時(shí)間復(fù)雜度是指A、算法的執(zhí)行時(shí)間B、算法所處理的數(shù)據(jù)量C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。算法的工作量可以用算法在執(zhí)行過程中所需基本運(yùn)算的執(zhí)行次數(shù)來度量。2、下列關(guān)于棧的敘述中,正確的是A、棧底元素一定是最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循先進(jìn)后出的原則D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,必須按“后進(jìn)先出”的規(guī)則操作元素。3、對(duì)下列二叉樹進(jìn)行前序遍歷的結(jié)果是()。A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZ標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二叉樹前序遍歷的簡(jiǎn)單描述:若二叉樹為空,則結(jié)束返回;否則:①訪問根結(jié)點(diǎn);②前序遍歷左子樹;③前序遍歷右子樹??梢姡靶虮闅v二叉樹的過程是一個(gè)遞歸的過程。根據(jù)題目中給出的二叉樹的結(jié)構(gòu)可知前序遍歷的結(jié)果是ABDYECFXZ。4、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為A、log2nB、n/2C、nD、n+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在進(jìn)行順序查找過程中,如果被查的元素是線性表中的最后一個(gè)元素,或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中的所有元素進(jìn)行比較,這是順序查找的最壞情況,需要比較的次數(shù)為n次。5、下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是()。A、源程序要文檔化B、數(shù)據(jù)說明的次序要規(guī)范化C、避免濫用goto語句D、模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚標(biāo)準(zhǔn)答案:D知識(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)單和清晰,程序必須是可以理解的。可以認(rèn)為,著名的“清晰第一、效率第二”的論點(diǎn)已成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。良好的程序設(shè)計(jì)風(fēng)格主要應(yīng)注重和考慮下列幾個(gè)因素:①源程序文檔化,包括下列三個(gè)方面:A)符號(hào)的命名應(yīng)具有一定的含義;B)正確的注釋能夠幫助讀者理解程序;C)視覺組織,可以在程序中利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?。②?shù)據(jù)說明的方法,包括下列三個(gè)方面:A)數(shù)據(jù)說明的次序規(guī)范化;B)說明語句中變量安排有序化;C)使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。③語句的結(jié)構(gòu)應(yīng)該簡(jiǎn)單直接,不應(yīng)該為提高效率而把語句復(fù)雜化。④輸入和輸出方式和風(fēng)格應(yīng)盡可能方便用戶的使用。6、有如下類定義:classSample{public;Sample(intx):ref(x){}∥①private:Sample():ref(0){}∥②staticintval=5;∥③constintref;∥④};上述程序段中,錯(cuò)誤的語句是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類的數(shù)據(jù)成員。7、執(zhí)行下列語句段后,輸出字符“*”的個(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)語句,題目中每執(zhí)行完循環(huán)體后,i都會(huì)減2,那么只有50到2之間的偶數(shù)才能輸出“*”,所以總共輸出25次。8、有如下程序:#includeusingnamespacestd;className{charname[20];public:Name(){strcpy(name,"");cout<<’?’;}Name(char*fname){strcpy(name,fname);cout<<’?’;}};intmain(){Namenames[3]={Name("張三"),Name("李四")};return0;}運(yùn)行此程序輸出符號(hào)?的個(gè)數(shù)是()。A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類Name有兩個(gè)構(gòu)造函數(shù),在默認(rèn)構(gòu)造函數(shù)中,給字符數(shù)組name賦空值,并輸出一個(gè)?;在帶有字符指針的構(gòu)造函數(shù)中,把字符指針fname所指的字符串賦給字符數(shù)組name,并輸出一個(gè)?。所以在主函數(shù)中,定義了Name的三個(gè)對(duì)象,name[0]、name[1]、name[2],在創(chuàng)建這三個(gè)對(duì)象時(shí),會(huì)調(diào)用構(gòu)造帶參數(shù)的函數(shù)對(duì)前兩個(gè)對(duì)象賦值,調(diào)用默認(rèn)的構(gòu)造函數(shù)把name[2]的值賦為空值。這時(shí)會(huì)輸出三個(gè)“?”符號(hào)。9、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、除D、并標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:從關(guān)系R、S和T的結(jié)構(gòu)可以得出關(guān)系T是由關(guān)系R、S經(jīng)過除運(yùn)算后得到的。10、在類聲明中,緊跟在“public:”后聲明的成員的訪問權(quán)限是()。A、私有B、公有C、保護(hù)D、默認(rèn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類【{1提供了3種訪問控制的權(quán)限:公有,私有和保護(hù)。其中公有類型定義了類的外部接口,任何一個(gè)外部的訪問都必須通過外部接口進(jìn)行。私有類型的成員只允許本類的成員函數(shù)訪問,來自類外部的任何訪問都是非法的,保護(hù)類型介于公有類型和私有類型之間,在繼承和派生時(shí)可以體現(xiàn)出其特點(diǎn)。11、下列字符串中不能作為C++標(biāo)識(shí)符使用的是()。A、WHILEB、userC、_lvarD、9stars標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中變量名的命名必須遵循一定的原則,其中之一即是第一個(gè)字符必須是字母或者下劃線。12、下列枚舉類型的定義中,包含枚舉值3的是()。A、enumtest{RED,YELLOW,BLUE,BLACK};B、enumtest{RED,YELLOW=4,BLUE,BLACK};C、enumtest{RED=—1,YELLOW,BLUE,BLACK};D、enumtest{RED,YELLOW=6,BLUE,BLACK};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:聲明枚舉類型的語法格式為:enum<類型名>{<枚舉值表>};<枚舉值表>包含多個(gè)枚舉值,它們用逗號(hào)隔開,每個(gè)枚舉值就是一個(gè)枚舉常量。枚舉值有兩種定義形式:一是<值名>;二是<值名>=<整型常量>。關(guān)于枚舉類型有以下4點(diǎn)說明:①一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚舉值代表一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0,1,…n—1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為m.則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚舉值賦的整型常量值應(yīng)從左到右遞增。④枚舉類型的聲明也可作為組聲明若干整型符號(hào)常量的方法。也就是說,把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)枚舉值合在一起定義成一個(gè)枚舉類型。對(duì)于本題來說,在選項(xiàng)A)中,對(duì)4個(gè)枚舉值沒有賦常量值,所以它們從左到右與整數(shù)0,1,2,3相對(duì)應(yīng)。因而選項(xiàng)A)為正確選項(xiàng)。13、有如下程序:#includeusingnamespacestd;classInstrument{public:virtualvoidDisplay()=0;};classPiano:publicInstrument{public:voidDisplay(){/*函數(shù)體程序略*/}};intmain(){Instruments;I
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購合同的供應(yīng)鏈合同自由采購3篇
- 采購合同管理案例解析3篇
- 采購合同評(píng)審表評(píng)分標(biāo)準(zhǔn)3篇
- 采購框架協(xié)議控制3篇
- 采購合同的框架解析與實(shí)踐3篇
- 采購合同買賣合同的培訓(xùn)成果展出3篇
- 采購合同條款的合同續(xù)約條款3篇
- 采購合同中的知識(shí)產(chǎn)權(quán)保護(hù)3篇
- 八大浪費(fèi)培訓(xùn)
- 采購戰(zhàn)略合同的環(huán)境保護(hù)3篇
- 大數(shù)據(jù)建模練習(xí)練習(xí)題及答案1-2023背題版
- 2024年山東濟(jì)南軌道交通集團(tuán)運(yùn)營(yíng)有限公司招聘筆試參考題庫含答案解析
- Ⅲ類射線裝置輻射工作人員考核試題 - 副本
- 土壤檢測(cè)報(bào)告表
- 老年人合理用藥新進(jìn)展課件
- 工程經(jīng)濟(jì)學(xué)案例分析課程設(shè)計(jì)
- 公司投產(chǎn)慶典策劃方案
- 服務(wù)管理的價(jià)值創(chuàng)造
- 內(nèi)科醫(yī)生如何與患者建立有效的溝通
- 植物生長(zhǎng)與環(huán)境課程教案
- 歌廳消防安全管理制度
評(píng)論
0/150
提交評(píng)論