版權(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ī)試模擬試卷40(共9套)(共376題)國(guó)家二級(jí)(C++)機(jī)試模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:const是一個(gè)C++語(yǔ)言的關(guān)鍵字,它限定一個(gè)變量不允許被改變。使用const在一定程度上可以提高程序的安全性和可靠性。限定符聲明變量只能被讀,必須初始化。B選項(xiàng)中沒(méi)有初始化,c選項(xiàng)為指向常量的指針,定義時(shí)初始化與否均可,如果是const*doublepoint形式,則為常指針,必須在定義時(shí)進(jìn)行初始化,A、C、D都正確。2、有如下程序:#include<iostream>usingnamespacestd;voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={1,2};fun(a[1],a[0]);std::cout<<a[0]<<’,’’<<a[1]<<std::endl;return0;}執(zhí)行后的輸出結(jié)果是()。A、2,2B、1,1C、1,2D、2,1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中的fun函數(shù)的功能是實(shí)現(xiàn)函數(shù)中兩個(gè)參數(shù)的交換。主函數(shù)中fun的調(diào)用中第一個(gè)參數(shù)為數(shù)組第二個(gè)值即2,第二個(gè)參數(shù)為第一個(gè)值即1。在fun的定義中第一個(gè)形參引用類型,其改變會(huì)改變主函數(shù)中實(shí)參的值;而第二個(gè)形參不是引用類型,其改變不會(huì)改變第二個(gè)實(shí)參,所以2,1的交換結(jié)果為1,1,即B。3、以下程序的執(zhí)行結(jié)果是()。#includeintfun(intb[],intn){inti,r=1;for(i=0;iA、5B、6C、7D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序的main函數(shù)入手,調(diào)用fun函數(shù),其中參數(shù)為數(shù)組a和3。fun函數(shù)的功能是for循環(huán)中由第一個(gè)數(shù)組元素開(kāi)始到第三個(gè)元素進(jìn)行累積。4、有如下類聲明:classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0);};下列關(guān)于getValue成員函數(shù)的定義中,正確的是()。A、SAMPLE::setValue(intn0){n=n0;}B、voidSAMPLE::setValue(intn0){n:n0;}C、voidsetValue(intn0){n=n0;}D、setValue(intn0){n=n0;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查在類外定義類的成員函數(shù),需要使用作用域限定符“::”,屬于基礎(chǔ)知識(shí),本題答案為B。5、有如下程序:#include<iostream>usingnamespacestd;classBase{pfivme:voidfunl()const{cout<<”funl”;}protected:voidfun2()const{cout<<”fun2”;}public:voidfun3()coast{cout<<”fun3”;}};classDerived:protectedBase{public:voidfun4()const{cout<<”fun4”;}};intmain(){Derivedobj;obj.funl();//①obj.fun2();//②0bj.fun3();//③obj.fun4();//④return0;}其中有語(yǔ)法錯(cuò)誤的語(yǔ)句是()。A、①②③④B、①②③C、②③④D、①④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問(wèn)屬性,受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,保護(hù)基類的所有成員在派生類中都被保護(hù)起來(lái),在類外不能訪問(wèn),所以①②③錯(cuò)誤。6、下列不屬于軟件工程3個(gè)要素的是()。A、工具B、過(guò)程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程包括3個(gè)要素,即方法、工具和過(guò)程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開(kāi)發(fā)、管理、文檔生成;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制、管理。7、要使程序執(zhí)行后的輸出結(jié)果為ABCD,應(yīng)在橫線處添加語(yǔ)句()。#includeusingnamespacestd;classA{public:A(){cout<<’A’;));classB:_________{public:B(){cout<<’B’;)};classC:virtualpublicA{public:C(){cout<<’C’;}};classD:publicB,publicC{public:D(){cout<<’D’;}};voidmain(){Dobj;)A、publicAB、privateAC、protectedAD、virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義了類D對(duì)象obj。其中D為類B和C的公有繼承,A是C的虛基類。題目中要求的輸出結(jié)果為“ABCD”,依次為類A,類B,類C,類D中構(gòu)造函數(shù)的輸出語(yǔ)句。為了保證基類通過(guò)多條路徑被派生類繼承時(shí),即保證A只被繼承一次,輸出一個(gè)A,所以不但需要聲明A為C的虛基類,同樣也要聲明A為B的虛基類。8、有如下程序:#includeusingnamespacestd;classTestClass{intn:public:TestClass(intk):n(k){}intget(){returnn;}intget()const{returnn+1;}};intmain(){TestClassp(5);constTestClassq(6);cout<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)用原型為"intget()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)用原型為"intgetq()const;"的函數(shù),該函數(shù)將返回n+1,第二個(gè)輸出應(yīng)為7,所以本題答案為57。9、有如下程序:#includeusingnamespaeestd;classBase{proteeted:Base(){eout<<’A’;}Base(charc){eout<A、BB、BAC、ABD、BB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類的對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù);對(duì)象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義了一個(gè)派生類對(duì)象d1,首先執(zhí)行基類的構(gòu)造函數(shù),輸出A;然后執(zhí)行派生類的構(gòu)造函數(shù),輸出B。所以答案為C。10、假定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ì)象名));其中const可以省略。11、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。A、cout>>’A’表達(dá)式可輸出字符AB、eof()函數(shù)可以檢測(cè)是否到達(dá)文件尾C、對(duì)磁盤文件進(jìn)行流操作時(shí),必須包含頭文件:fstreamD、以ios_base::out模式打開(kāi)的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查C++流,想要輸出字符“A”,則應(yīng)該是cout<<“A”,所以本題答案為A。12、將前綴運(yùn)算符“--”重載為非成員函數(shù),下列原型中能正確用于類中說(shuō)明的是()。A、Decr&operator--(int);B、Decroperator--(Deer&,int);C、friendDeer&operator--(Decr&);D、friendDecroperator--(Decr&,int);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:非成員函數(shù)重載用友元函數(shù)的形式實(shí)現(xiàn),“--”運(yùn)算符重載分為前置和后置兩種重載方式。用友元函數(shù)來(lái)實(shí)現(xiàn)“--”運(yùn)算符的重載時(shí),前置“--”運(yùn)算符的重載的一般格式為:friend<type>operator--(ClassName&);后置++運(yùn)算符的重載的一般格式為:friend<type>operator--(ClassName&,int)。所以答案為D。13、有如下程序:#includeusingnamespacestd;classA{public:staticinta;voidinit(){a=1;}A(inta=2){init();a++;}};imA::a=0;Aobj;intmain(){cout<A、0B、1C、2D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù),本題中對(duì)類中的a數(shù)據(jù)成員先是賦值為0,當(dāng)定義了對(duì)象obj時(shí),執(zhí)行構(gòu)造函數(shù),將a的值變?yōu)榱?,所以輸出1。14、執(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次。15、下列關(guān)于類模板的模板參數(shù)的敘述中,錯(cuò)誤的是()。A、模板參數(shù)可以作為數(shù)據(jù)成員的類型B、模板參數(shù)可以作為成員函數(shù)的返回類型C、模板參數(shù)可以作為成員函數(shù)的參數(shù)類型D、模板參數(shù)不能作為成員函數(shù)的局部變量的類型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查類模板的概念和定義,模板參數(shù)可以作為成員函數(shù)的局部變量的類型。16、有如下函數(shù)模板定義:templateT1sum(T1a1){return(al+a2+a3);)則以下調(diào)用中正確的是()。A、sum(5);B、sum<4,3>(5);C、sum(5);D、sum(5);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的函數(shù)模板的使用,有時(shí)不能根據(jù)用戶傳進(jìn)來(lái)的參數(shù)決定所有模板函數(shù)的值類型,如函數(shù)的返回值,還有用戶希望自己指定參數(shù)類型,這時(shí)就需要顯式地指出參數(shù)模板的類型,顯示指定模板的類型格式為:返回值類型函數(shù)模板<參數(shù)類型表>(參數(shù)表)。17、有如下程序:#includeusingnamespacestd;classTestClass{public:TestClass(){cout<<"BB";fun();}voidfun0{cout<<"Bf";)};classTestClass1:publicTestClass{public:TestClass1(){cout<<"DD";}voidfun0{cout<<"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。18、下列關(guān)于基類和派生類關(guān)系的敘述中,正確的是()。A、派生類中的成員可以訪問(wèn)基類中的任何成員B、每個(gè)類最多只能有一個(gè)直接基類C、基類的構(gòu)造函數(shù)必須在派生類的構(gòu)造函數(shù)體中調(diào)用D、派生類除了繼承基類的成員,還可以定義新的成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查繼承與派生,派生類中的成員訪問(wèn)基類中的成員是由派生方式?jīng)Q定的,A選項(xiàng)錯(cuò)誤;一個(gè)類可以有多個(gè)直接基類,B選項(xiàng)錯(cuò)誤;如果基類中定義了缺省構(gòu)造函數(shù)或根本沒(méi)有定義任何一個(gè)構(gòu)造函數(shù)(此時(shí),由編譯器自動(dòng)生成缺省構(gòu)造函數(shù))時(shí),在派生類構(gòu)造函數(shù)的定義中可以省略對(duì)基類構(gòu)造函數(shù)的調(diào)用,即省略“<基類名>(<參數(shù)表>)”,C選項(xiàng)錯(cuò)誤。派生類除了繼承基類的成員,還可以定義新的成員,因此本題選D。19、有如下類聲明:classFoo{intbar;};則Foo類的成員bar是()。A、公有數(shù)據(jù)成員B、公有成員函數(shù)C、私有數(shù)據(jù)成員D、私有成員函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是類的定義。在定義類的成員變量時(shí),如果沒(méi)有使用關(guān)鍵字,所有成員默認(rèn)定義為private私有權(quán)限。20、有如下函數(shù)模板:templateTsquare(Tx){returnx*x;}其中的參數(shù)T是()。A、函數(shù)形參B、函數(shù)實(shí)參C、模板實(shí)參D、模板形參標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題x為函數(shù)形參,選項(xiàng)A錯(cuò)誤;函數(shù)實(shí)參和模板實(shí)參只有在函數(shù)模板被調(diào)用并實(shí)例化的時(shí)候才可知,選項(xiàng)B、C錯(cuò)誤;T是模板形參,選項(xiàng)D正確。答案為D選項(xiàng)。21、醫(yī)院里有不同的科室,每名醫(yī)生分屬不同科室,則實(shí)體科室與實(shí)體醫(yī)生間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:實(shí)體集之間通過(guò)聯(lián)系來(lái)建立聯(lián)接關(guān)系分為3類:一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:m)、多對(duì)多聯(lián)系(m:n)。每個(gè)科室有多名醫(yī)生,但每個(gè)醫(yī)生只能在一個(gè)科室里,故實(shí)體科室和實(shí)體醫(yī)生之間的聯(lián)系是一對(duì)多,因此B選項(xiàng)正確。22、有如下程序:#includeusingnamespacestd;classPoint{public:Point(intxx=0,intyy=0):x(xx),y(yy){}voidSetXY(intxx,intyy){x=xx;y=yy;}protected:intx,y;};classCircle:Point{public:Circle(intr):radius(r){}voidSet(intr,intx,inty){radius=r;SetXY(x,y);}//①voidPrint()const{cout<A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C選項(xiàng)中SetXY為基類的成員函數(shù),派生類也繼承下來(lái),但是SetXY的參數(shù)為兩個(gè),而③調(diào)用時(shí)是3個(gè)參數(shù),所以錯(cuò)誤。23、下列關(guān)于棧的敘述正確的是()。A、棧按"先進(jìn)先出"組織數(shù)據(jù)B、棧按"先進(jìn)后出"組織數(shù)據(jù)C、只能在棧底插入數(shù)據(jù)D、不能刪除數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按"先進(jìn)后出"的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進(jìn)行操作。24、當(dāng)一個(gè)派生類對(duì)象結(jié)束其生命周期時(shí),自動(dòng)做的事情是A、先調(diào)用派生類的析構(gòu)函數(shù)后調(diào)用基類的析構(gòu)函數(shù)B、先調(diào)用基類的析構(gòu)函數(shù)后調(diào)用派生類的析構(gòu)函數(shù)C、如果派生類沒(méi)有定義析構(gòu)函數(shù),則只調(diào)用基類的析構(gòu)函數(shù)D、如果基類沒(méi)有定義析構(gòu)函數(shù),則只調(diào)用派生類的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:執(zhí)行派生類析構(gòu)函數(shù)的順序是:先執(zhí)行派生類析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù),所以A選項(xiàng)正確。25、下列關(guān)于基類和派生類關(guān)系的敘述中,正確的是()。A、每個(gè)類最多只能有一個(gè)直接基類B、派生類中的成員可以訪問(wèn)基類中的任何成員C、基類的構(gòu)造函數(shù)必須在派生類的構(gòu)造函數(shù)體中調(diào)用D、派生類除了繼承基類的成員,還可以定義新的成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類可以定義自己的成員,包括成員變量和成員函數(shù),派生類有自己的屬性,而這個(gè)屬性是基類不具備的,因此可以定義自己的新成員。26、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無(wú)關(guān)的概念是A、重載函數(shù)B、虛函數(shù)C、引用D、指針標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中,實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性必須滿足兩個(gè)條件:1、被調(diào)用的成員函數(shù)為虛函數(shù);2、調(diào)用必須通過(guò)基類類型的引用或指針。選項(xiàng)B、C、D正確;多態(tài)性是虛函數(shù)在運(yùn)行時(shí)期綁定,而重載的函數(shù)是在編譯期綁定,重載主要是為了C++的代碼復(fù)用,與多態(tài)性沒(méi)有關(guān)系;答案為A。27、下列敘述中正確的是A、所謂有序表是指在順序存儲(chǔ)空間內(nèi)連續(xù)存放的元素序列B、有序表只能順序存儲(chǔ)在連續(xù)的存儲(chǔ)空間內(nèi)C、有序表可以用鏈接存儲(chǔ)方式存儲(chǔ)在不連續(xù)的存儲(chǔ)空間內(nèi)D、任何存儲(chǔ)方式的有序表均能采用二分法進(jìn)行查找標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:有序是特指元素按非遞減排列,即從小到大排列,但允許相鄰元素相等,A選項(xiàng)錯(cuò)誤。有序表可以順序存儲(chǔ)也可以鏈?zhǔn)酱鎯?chǔ),B選項(xiàng)錯(cuò)。能使用二分法查找的線性表必須滿足兩個(gè)條件:用順序存儲(chǔ)結(jié)構(gòu);線性表是有序表,D選項(xiàng)錯(cuò)誤。故C選項(xiàng)正確。28、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、并C、交D、差標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:關(guān)系T中的元組是關(guān)系R中有而關(guān)系S中沒(méi)有的元組的集合,即從關(guān)系R中除去與關(guān)系S中相同元組后得到的關(guān)系T。所以做的是差運(yùn)算。29、下列敘述中,錯(cuò)誤的是A、true是一個(gè)邏輯型常量B、x是一個(gè)字符型常量C、100是一個(gè)int常量D、2.71828是一個(gè)double常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:考查常量定義,B選項(xiàng)中"x"為一個(gè)字符串,’x’才是字符常量,所以B選項(xiàng)錯(cuò)誤。30、下列運(yùn)算符中,不能被重載的是()。A、&&B、!=C、.D、++標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++不能重載的運(yùn)算符只有5個(gè),即"."、".*"、"::"、"?:"、"sizeof",故本題答案為C。31、有如下程序:#includeusingnamespacestd;classA{public:A(inti){x=i;}voiddispa(){cout<<x<<′,′;}private:intx;};classB:publicA{public:B(inti):A(i+10){x=i;}voiddispb(){dispa();cout<<x<<endl;}private:intx;};intmain(){Bb(2);b.dispb();return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、10,2B、12,10C、12,2D、2,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù)和基類的構(gòu)造函數(shù)。本題中類B繼承類A,定義了一個(gè)類B的對(duì)象并初始化b(2),此時(shí)會(huì)執(zhí)行類B的構(gòu)造函數(shù),執(zhí)行的結(jié)果是繼承類A中的私有成員賦值了12,給類B自身的數(shù)據(jù)成員x賦值了2,執(zhí)行b.dispb()后,輸出類A的私有成員x,輸出類B自身的數(shù)據(jù)成員,所以答案為C。32、對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:除了堆排序算法的比較次數(shù)是O(nlog2n),其他的都是n(n-1)/2。33、有如下程序段:inti=1;while(1){i++;if(i==100)break;if(i%2==0)cout<<’*’;}執(zhí)行這個(gè)程序段輸出字符*的個(gè)數(shù)是A、100B、48C、49D、50標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題中while循環(huán)中當(dāng)i為偶數(shù)時(shí)輸出*,而i為100時(shí)跳出循環(huán),所以輸出49個(gè)*,答案為C。34、下列語(yǔ)句或語(yǔ)句序列中有語(yǔ)法錯(cuò)誤的是A、inti,j;for(i=0,j=0;i<5;i++,j--)cout<<"HelloWorld!";B、for(10)cout<<"HelloWorld!";C、inti;for(i=0;i<5;i+=2)cout<<"HelloWorld!";D、inti=0;for(;i<5;i++)cout<<"HelloWorld!";標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查for循環(huán)和while循環(huán),其中B選項(xiàng)while里的判斷語(yǔ)句10為真,會(huì)陷入死循環(huán),所以B選項(xiàng)錯(cuò)誤。35、有如下頭文件:intf1();staticintf2();classMA{public:intf3();staticintf4();};在所描述的函數(shù)中,具有隱含的this指針的是()。A、f1B、f2C、f3D、f4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:只有類的非靜態(tài)成員函數(shù)才隱含this指針,其作用域是類內(nèi)部,當(dāng)類的非靜態(tài)成員函數(shù)中訪問(wèn)類的非靜態(tài)成員時(shí),編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù),而不必一定寫(xiě)上this。所以本題答案為C。36、下列有關(guān)運(yùn)算符重載的敘述中,正確的是()。A、運(yùn)算符重載是多態(tài)性的一種表現(xiàn)B、C++中可以通過(guò)運(yùn)算符重載創(chuàng)造新的運(yùn)算符C、C++中所有運(yùn)算符都可以作為非成員函數(shù)重載D、重載運(yùn)算符時(shí)可以改變其結(jié)合性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:重載運(yùn)算符的規(guī)則如下:①C++不允許用戶自己定義新的運(yùn)算符,只能對(duì)已有的C++運(yùn)算符進(jìn)行重載;②C++不能重載的運(yùn)算符只有5個(gè);③重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性;⑤重載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的自定義類型的對(duì)象一起使用,至少應(yīng)有一個(gè)是類對(duì)象,即不允許參數(shù)全部是C++的標(biāo)準(zhǔn)類型。故本題答案為A。37、如果派生類以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。38、有如下程序:#includeusingnamespacestd;intmain(){intsum;for(inti=0;i<3;i+=1){sum=i;for(intj=i;j<9;j++)sum+=j;}cout<<sum<A、39B、17C、110D、37標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:考查for循環(huán)語(yǔ)句,本題中兩層for循環(huán),每次i循環(huán),sum都被重新賦值,所以當(dāng)i=2時(shí),執(zhí)行完for循環(huán)后sum為37。所以答案為D。39、在公有繼承的情況下,允許派生類直接訪問(wèn)的基類成員包括()。A、公有成員B、公有成員和保護(hù)成員C、公有成員、保護(hù)成員和私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問(wèn)屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問(wèn)屬性,其私有成員仍為基類私有。所以本題答案為B。40、下面敘述中錯(cuò)誤的是()。A、軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤B、對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟C、程序調(diào)試通常也稱為DebugD、軟件測(cè)試應(yīng)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測(cè)試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,并不涉及改正錯(cuò)誤,所以選項(xiàng)A錯(cuò)誤。程序調(diào)試的基本步驟有:錯(cuò)誤定位、修改設(shè)計(jì)和代碼,以排除錯(cuò)誤、進(jìn)行回歸測(cè)試,防止引進(jìn)新的錯(cuò)誤。程序調(diào)試通常稱為Debug,即排錯(cuò)。軟件測(cè)試的基本準(zhǔn)則有:所有測(cè)試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性、充分注意測(cè)試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測(cè)試不可能、妥善保存測(cè)試計(jì)劃等文件。二、基本操作題(本題共1題,每題1.0分,共1分。)41、使用VC6打開(kāi)考生文件夾proj1下的工程proj1,其中定義了一個(gè)CD類。程序中位于每個(gè)//ERROR**********found**********下的語(yǔ)句行有錯(cuò)誤,請(qǐng)加以更正,不得修改程序的其他部分。更正后程序的輸出應(yīng)該是:歌唱祖國(guó)30義勇軍進(jìn)行曲95注意:只能修改每個(gè)//ERROR**********found**********下的那一行,不要改動(dòng)程序中的其他內(nèi)容。#include<iostream>#include<cstring>usingnamespaeestd;classCD{charname[20];intnumber;public:voidinit(char*aa,intbb){//ERROR**********found**********name=aa:number=bb;}char*getName(){//ERROR**********found**********return*name:}intgetNumber(){returnnumber;}voidoutput(){//ERROR**********found**********cout<<name[20]<<’’<<number<<end1:}};voidmain(){CDdx,dy;dx.init("歌唱祖國(guó)",30);dy.init("義勇軍進(jìn)行曲",3*dx.getNumber()+5);dx.output();dy.output();}標(biāo)準(zhǔn)答案:(1)strcpy(name,aa):(2)returnname;(3)cout<<name<<’’<<number<<en1;知識(shí)點(diǎn)解析:程序定義CD類,它包含兩個(gè)數(shù)據(jù)成員;字符數(shù)組name和整型變量number;還包含四個(gè)公有成員函數(shù),init()函數(shù)接收兩個(gè)參數(shù),用參數(shù)對(duì)數(shù)據(jù)成員進(jìn)行賦值;getName()函數(shù)返回?cái)?shù)據(jù)成員name;getNumber()函數(shù)返回?cái)?shù)據(jù)成員number;output()函數(shù)將數(shù)據(jù)成員name和number輸出。CD類的定義體中,有三個(gè)錯(cuò)誤:(1)init()函數(shù)將形參aa賦給name,由于name是字符數(shù)組,所以不能通過(guò)簡(jiǎn)單的賦值運(yùn)算符進(jìn)行賦值,應(yīng)該使用strcpy()函數(shù)將形參aa指向的字符串拷貝到name中。(2)getName()函數(shù)的返回值為char*類型,所以函數(shù)體的return語(yǔ)句應(yīng)該返回name,而不是name指向的字符串。(3)output()函數(shù)需要輸出兩個(gè)數(shù)據(jù)成員,輸出字符數(shù)組時(shí),只需要給出數(shù)組名name即可。三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)42、使用VC++6.0打開(kāi)考生文件夾下的源程序文件2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,完成空出部分程序。函數(shù)fun(intn)的功能是在n行n列的矩陣中,每行都有最大的數(shù),本程序求這n個(gè)最大數(shù)中的最小一個(gè),并作為參數(shù)返回。注意:不能修改程序的其他部分,只能修改fun函數(shù)。試題程序:#include#defineN100inta[N][N];intfun(intn){}voidmain(){intn:cout<<"pleaseinputN:"<>n;for(inti=0;i(n;i++)for(intj=0;j>a[i][j];}cout<<"TheminOfmaxnumbersis"<標(biāo)準(zhǔn)答案:introw;intmax;intmin;intcol;for(row=0;row(n;row++)//外循環(huán)求行最大值中的最小值{for(max=a[row][0],col=l;col知識(shí)點(diǎn)解析:本題有兩層循環(huán),內(nèi)層循環(huán)求每一行的最大值,外層循環(huán)求最小值。求最大值,首先將最大值賦值為每行第一列的元素,然后依次循環(huán)比較。將求出的第一個(gè)最大值賦值為第一個(gè)最小值,然后將以后求得的最大值依次與之比較,求出所有值的最小值。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)43、使用VC6打開(kāi)考生文件夾proj3下的工程proj3,其中定義了一個(gè)字符串變量類StringVar。類成員的說(shuō)明在程序注釋中。請(qǐng)?jiān)冢?*******333********//********666********之間填寫(xiě)StringVar成員函數(shù)和友元函數(shù)的實(shí)現(xiàn)代碼。在main函數(shù)中給出了一組測(cè)試數(shù)據(jù),運(yùn)行時(shí)輸入:HelloKitty此情況下程序的輸出應(yīng)該是:HelloKittyBorgBorg注意:只需在//********333********和//********666********之間填入所編寫(xiě)的若干語(yǔ)句,不要改動(dòng)程序中的其他內(nèi)容。//StringVar.h#include<iostream>#include<cstdlib>#include<cstddef>#include<cstring>usingnamespacestd;voidwriteToFile(constchar*path);classStringVar{public:Stringvar(intsize);//構(gòu)造函數(shù),size為字符串長(zhǎng)度(字符個(gè)數(shù))初始值;字符串內(nèi)容初始化為空串Stringvar(constchara[]);//構(gòu)造函數(shù),用參數(shù)數(shù)組a的內(nèi)容初始化當(dāng)前對(duì)象StringVar(constStringVar&strobj)://復(fù)制構(gòu)造函數(shù)_StringVar(){delete[]value;};//析構(gòu)函數(shù)intlength()const{returnstrlen(value);}//從輸入流ins輸入一個(gè)字符串,其中可以包括空格voidinput_line(istream&ins);//返回字符串首地址char*getValue()const{returnvalue;}private:char*value;//字符串首地址intmaX_length;//字符串最大長(zhǎng)度(字符個(gè)數(shù)最大值)};//將the_string通過(guò)輸出流outs輸出ostream&operator<<(ostream&outs,constStringVarthe_string);//main.cpp#include<iostream>#include<string>#include"StringVar.h"//****************333****************//****************666****************intmain(){StringVarnamel(30),name2("Borg");name1.input_line(cin);StringVarname3(name2);cout<<name1<<end1;cout<<name2<<end1;cout<<name3<<end1;writeToFile(".\\");return0;}//writeToFile.cpp#include<iostream>#include<fstream>#include<sstream>#include<string>usingnamespacestd;#include"StringVar.h"voidwriteToFile(constchar*path){charfilename[30];strcpy(filename,path);strcat(filename,"out.dat");ofstreamfout(filename);istringstreamis(string("JennyZheng"));StringVarname1(40),name2("John");name1.input_line(is);StringVarname3(name2);fout<<name1<<name2<<name3:fout.close();}標(biāo)準(zhǔn)答案:StringVar∷StringVar(intsize):max_length(size)//使用成員初始化列表初始化max_length{value=newchar[size];value[0]=’\0’;}StringVar∷StringVar(constchara[]){max_length=strlen(a)+1;value=newchar[max_length];strcpy(value,a);}StringVar∷StringVar(constStringVar&strobj){max_length=strobj.max_length;value=newchar[strlen(strobj.value)+1];strcpy(value,strobj.value);}voidStringVar∷input,_line(istream&ins){inti=0;charch;while(i<max_length_1&&(ch=ins.get())!=’\n’){value[i++]=ch;}value[i]=’\0’;}ostream&operator<<(ostream&outs,constString—Vaurthe_string){outs<<the_string.getValue()<<end1;returnouts;}知識(shí)點(diǎn)解析:由StringVar個(gè)頭文件可知:頭文件重定義了StringVar類,它包含的成員信息如下:兩個(gè)數(shù)據(jù)成員:char*類型的value,指同字符串的首地址;int類型的max_length,表示字符串的最大長(zhǎng)度。兩個(gè)構(gòu)造函數(shù):接收int類型的構(gòu)造函數(shù)和接收constchara[]的構(gòu)造函數(shù)。一個(gè)復(fù)制構(gòu)造函數(shù):用參數(shù)strobj對(duì)象的成員值給當(dāng)前對(duì)象的成員賦值;析構(gòu)函數(shù):使用delete[]釋放value指向的地址空間;length()成員函數(shù):返回成員value指向的字符串長(zhǎng)度;input_line()成員函數(shù):使用輸入流參數(shù)輸入一個(gè)字符串,保存到value指向的內(nèi)存空間;getValue()成員函數(shù):常成員函數(shù),返回value的值。另外類定義體外部還聲明一個(gè)重載“<<”運(yùn)算符函數(shù),將stringVar對(duì)象中value指向的字符串輸出,并返回輸出流outs的引用StringVar.h中,已經(jīng)給出的定義有:析構(gòu)函數(shù)、length()函數(shù)和getValue()函數(shù),所以需要我們完成的函數(shù)定義有:構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)、input_line()函數(shù)和重載的“<<”運(yùn)算符函數(shù)①stringVar(intsize);題意指出,size為字符串長(zhǎng)度(字符個(gè)數(shù))初始值,字符串內(nèi)容初始化為空串,所以需要使用size設(shè)置成員max_length,為value申請(qǐng)size個(gè)字符的存儲(chǔ)空間,并把value的第一個(gè)字符設(shè)置為’\0’表示空串,這樣保證析構(gòu)函數(shù)的delete[]也是正確的。②stringVaur(constchara[]);題意指出,使用參數(shù)數(shù)組a的內(nèi)容初始化對(duì)象的成員,即將數(shù)組a中的內(nèi)容,存放到value指向的內(nèi)存空間,由于value是使用new分配的(保證析構(gòu)函數(shù)的delete[]是正確的),所以不能簡(jiǎn)單的把數(shù)組a的首地址賦給value,需要將數(shù)組a的內(nèi)容復(fù)制到value指向的內(nèi)存空間中,另外成員max)lengh,初值最小必須是value指向的內(nèi)存空間長(zhǎng)度,即value指向的字符串長(zhǎng)度+1(題意中max_length表示字符個(gè)數(shù)的最大值,所以需要包含字符串結(jié)束符’\0’)(此構(gòu)造函數(shù)的形參必須傳入的是字符串,如果是字符數(shù)組,必須傳入數(shù)組的長(zhǎng)度,以防數(shù)組a的最后一個(gè)字符不是結(jié)束符’\0’,此時(shí)strlen()函數(shù)獲取的長(zhǎng)度,就不是字符數(shù)組a的字符個(gè)數(shù))③stringVar(constStringVar&strobj);復(fù)制構(gòu)造函數(shù)需要將形參strobj的成員賦給當(dāng)前調(diào)用該復(fù)制構(gòu)造函數(shù)的對(duì)象成員,在賦值value時(shí),同樣需要為value分配足夠的內(nèi)存空間。④input_line(istream&ins);input_line()函數(shù)需要使用形參ins輸入流,輸入一個(gè)字符串存放到value中,題意要求可以輸入空格,所以我們不能直接用輸入流ins和輸入運(yùn)算符,因?yàn)檩斎脒\(yùn)算符會(huì)丟棄空白符、空格符和制表符,可以使用輸入流ins的成員函數(shù):get()和while循環(huán),逐個(gè)輸入字符存放到value下標(biāo)i的字符中,直到輸入的字符為換行符或value存滿(i=max_lengh)為止,當(dāng)這兩個(gè)條件滿足其一,那么就應(yīng)該停止輸入,另外需要注意:value指向的字符串結(jié)尾,必須包含空字符’\0’,所以下標(biāo)max_lengh-1必須是空字符,循環(huán)輸入時(shí),i取值最大為max_length-2。⑤ostrearn&operator<<(ostream&outs,constStringVarthe_string);輸出運(yùn)算符重載函數(shù),題意要求將the_string通過(guò)輸出流outs輸出,由于the_string是stringVar對(duì)象,所以輸出的應(yīng)該是對(duì)象的成員value指向的字符串,根據(jù)返回值可知,函數(shù)必須返回輸入流ostream的引用:另外由于第一形參是輸入流outs,所以無(wú)法通過(guò)StringVar對(duì)象來(lái)調(diào)用,該函數(shù)不是類的成員函數(shù),函數(shù)定義時(shí),不能限定stringVal作用域,由于該函數(shù)不是類的成員函數(shù),所以使用輸出流outs輸出value指向的字符串時(shí),不能直接使用私有成員value,而是應(yīng)該使用getValue()公有成員函數(shù),返回value的值,再輸出。國(guó)家二級(jí)(C++)機(jī)試模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、可行性分析報(bào)告B、軟件需求規(guī)格說(shuō)明書(shū)C、概要設(shè)計(jì)說(shuō)明書(shū)D、集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A)錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C)錯(cuò)誤,概要設(shè)計(jì)說(shuō)明書(shū)是總體設(shè)計(jì)階段產(chǎn)生的文檔。D)錯(cuò)誤,集成測(cè)試計(jì)劃是在概要設(shè)計(jì)階段編寫(xiě)的文檔。B)正確,需求規(guī)格說(shuō)明書(shū)是后續(xù)工作如設(shè)計(jì)、編碼等需要的重要參考文檔。2、對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:除了堆排序算法的比較次數(shù)是O(nlog2n),其他的都是n(n-1)/2。3、當(dāng)需要將一個(gè)函數(shù)boolisnumber(charc)聲明為內(nèi)聯(lián)函數(shù)時(shí),則此內(nèi)聯(lián)函數(shù)的函數(shù)原型為()。A、enumboolisnumber(charc);B、defineboolisnumber(charc);C、inlineboolisnumber(charc);D、extemboolisnumber(charc);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)的相關(guān)知識(shí)點(diǎn)。函數(shù)原型應(yīng)指出函數(shù)名、返回值類型以及在調(diào)用函數(shù)時(shí)必須提供的參數(shù)的個(gè)數(shù)和類型,因?yàn)橐暶鳛閮?nèi)聯(lián)函數(shù),故應(yīng)加inline關(guān)鍵字。4、下面關(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í)參。5、下面關(guān)于派生類的描述中錯(cuò)誤的是()。A、派生類中至少有一個(gè)基類B、一個(gè)派生類可以作為另一個(gè)派生類的基類C、派生類只繼承了基類中的公有成員和保護(hù)成員D、派生類的缺省繼承方式是私有標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:繼承方式有公有繼承、私有繼承和保護(hù)繼承3種,缺省的繼承方式是私有繼承。派生類從基類繼承所有的成員,但是對(duì)于基類的私有成員派生類是不可直接訪問(wèn)的。6、下面關(guān)于派生類的描述中錯(cuò)誤的是()。A、派生類中至少有一個(gè)基類B、一個(gè)派生類可以作為另一個(gè)派生類的基類C、派生類只繼承了基類中的公有成員和保護(hù)成員D、派生類的缺省繼承方式是私有標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:繼承方式有公有繼承、私有繼承和保護(hù)繼承3種,缺省的繼承方式是私有繼承。派生類從基類繼承所有的成員,但是對(duì)于基類的私有成員派生類是不可直接訪問(wèn)的。7、有如下類定義: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)有一處語(yǔ)法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、函數(shù)getK試圖訪問(wèn)基類的私有成員變量kB、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或privateC、類MyDerived缺少一個(gè)無(wú)參的構(gòu)造函數(shù)D、類MyDerived的構(gòu)造函數(shù)沒(méi)有對(duì)基類數(shù)據(jù)成員k進(jìn)行初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:默認(rèn)繼承方式為私有繼承,私有繼承將基類的公用成員和保護(hù)成員都變?yōu)榱怂接谐蓡T,基類的私有成員依然屬于基類私有,派生類不能訪問(wèn)基類的私有成員。所以A選項(xiàng)正確。8、有如下程序:#includeusingnamespacestd;classTestClass{intn;public:TestClass(intk):n(k){}intget(){returnn;}intget()const{returnn+1;}};intmain(){TestClassp(5);constTestClassq(6);cout<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)用原型為"intget()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)用原型為"intget()const;"的函數(shù),該函數(shù)將返回n+1,第二個(gè)輸出應(yīng)為7,所以本題答案為57。9、如下函數(shù)模板:template<classT>Tsquare(Tx){returnx*x;}其中T是()。A、函數(shù)形參B、函數(shù)實(shí)參C、模板形參D、模板實(shí)參標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查模板函數(shù)的基本概念,根據(jù)模板函數(shù)的定義,T是模板形參,所以答案為C。10、關(guān)系表中的每一行記錄稱為一個(gè)()。A、字段B、元組C、屬性D、關(guān)鍵碼標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在關(guān)系表中,每一列稱為一個(gè)屬性,對(duì)應(yīng)表中的一個(gè)字段;每一行稱為一個(gè)元組,對(duì)應(yīng)表中的一條記錄。11、算法的空間復(fù)雜度是指()。A、算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間。所以選擇A。12、程序調(diào)試的任務(wù)是()。A、設(shè)計(jì)測(cè)試用例B、驗(yàn)證程序的正確性C、發(fā)現(xiàn)程序中的錯(cuò)誤D、診斷和改正程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。13、下列關(guān)于多態(tài)性的描述,錯(cuò)誤的是()。A、C++語(yǔ)言中的多態(tài)性分為編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性B、編譯時(shí)的多態(tài)性可通過(guò)函數(shù)重載實(shí)現(xiàn)C、運(yùn)行時(shí)的多態(tài)性可通過(guò)模板和虛函數(shù)實(shí)現(xiàn)D、實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的機(jī)制稱為動(dòng)態(tài)綁定標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:編譯時(shí)的多態(tài)性是通過(guò)函數(shù)重載和模板體實(shí)現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)體實(shí)現(xiàn)的。14、對(duì)下列二叉樹(shù)進(jìn)行中序遍歷的結(jié)果是()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:C知識(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é)果為GDBEHACF。15、下列關(guān)于完全二叉樹(shù)的敘述中,錯(cuò)誤的是()。A、除了最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值B、可能缺少若干個(gè)左右葉子結(jié)點(diǎn)C、完全二叉樹(shù)一般不是滿二叉樹(shù)D、具有結(jié)點(diǎn)的完全二叉樹(shù)的深度為[log2n]+1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:滿二叉樹(shù)指除最后一層外,每一層上所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)的二叉樹(shù)。完全二叉樹(shù)指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干葉子結(jié)點(diǎn)的二叉樹(shù)。因此選項(xiàng)A敘述正確,而選項(xiàng)B敘述錯(cuò)誤。由定義可知,滿二叉樹(shù)肯定是完全二叉樹(shù),而完全二叉樹(shù)一般不是滿二叉樹(shù)。16、下面程序的運(yùn)行結(jié)果是()。#include<iostream.h>intx=5;intfun(inta){intc;c=x*a;returnc;}voidmain(){intx=3,a=4;x=x+fuh(a);cout<<"x="<<x<<endl;}A、x=1.5B、x=17C、x=23D、x=25標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,首先x被賦值為3,a被賦值為4。然后調(diào)用fun函數(shù),參數(shù)為4,所以在fun函數(shù)中的a=4。而主程序中的x作用域是由它定義開(kāi)始到cout輸出,在fun函數(shù)中無(wú)效。而在fun函數(shù)定義前的變量x作用域是整個(gè)程序,所以fun函數(shù)中的x值為5,這樣c的值就為20。在主函數(shù)中的x+fun(a)中的x為靠近這條語(yǔ)句的x定義,即3,所以最后x的值為20+3=23。17、下面不屬于對(duì)象主要特征的是A、唯一性B、多態(tài)性C、可復(fù)用性D、封裝性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)象的基本特點(diǎn)如下:可知C選項(xiàng)正確。18、派生類的成員函數(shù)不能訪問(wèn)的基類成員是A、公有成員和保護(hù)成員B、私有成員C、保護(hù)成員D、公有成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:基類中的private成員,只有基類和基類的友元可以訪問(wèn),派生類的成員函數(shù)不能直接訪問(wèn),所以派生類若要訪問(wèn)基類的private成員,必須使用基類的接口,答案為B。19、有如下類定義:classB{public:voidfun1(){}private:voidfun2(){}protected:voidfun3(){}};classD:publicB{protected:voidfun4(){}};若obj是類D的對(duì)象,則下列語(yǔ)句中不違反訪問(wèn)控制權(quán)限的是()。A、obj.fun1();B、obj.fun2();C、obj.fun3();D、obj.fun4();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問(wèn)屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問(wèn)屬性,其私有成員仍為基類私有。所以在本題中,在類外引用成員函數(shù)時(shí),派生對(duì)象只能引用基類的公用成員函數(shù)fun1,故本題答案為A。20、有兩個(gè)關(guān)系R和S如下:由關(guān)系R得到關(guān)系S的操作是()。A、選擇B、投影C、自然連接D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)系R到關(guān)系S為一元運(yùn)算,排除C和D。關(guān)系S是關(guān)系R的一部分,是通過(guò)選擇之后的結(jié)果,因此選A。21、有如下程序:#include#includeusingnamespacestd;classAppliance{public:Appliance(stringt="A"):type(t){}~Appliance(){cout<A、041B、410C、0A41TD、41T0A標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:執(zhí)行派生類構(gòu)造函數(shù)的順序是:1、調(diào)用基類構(gòu)造函數(shù),2、調(diào)用子對(duì)象構(gòu)造函數(shù),3、再執(zhí)行派生類析構(gòu)函數(shù),4、執(zhí)行基類的析構(gòu)函數(shù),所以本題中定義分別定義了room1,room2后,調(diào)用構(gòu)造函數(shù)后沒(méi)有輸出,而調(diào)用析構(gòu)函數(shù)的順序依次為room2的析構(gòu)函數(shù),輸出41,然后執(zhí)行Appliance的析構(gòu)函數(shù)輸出T,然后執(zhí)行room1的析構(gòu)函數(shù)輸出0,最后執(zhí)行Appliance的析構(gòu)函數(shù)輸出A,所以D選項(xiàng)正確。22、下列關(guān)于this指針的敘述中,正確的是A、類的成員函數(shù)都有this指針B、類的友元函數(shù)都有this指針C、任何與類相關(guān)的函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)都有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查this指針,只有類的非靜態(tài)成員才有this指針,所以D選項(xiàng)正確。23、關(guān)于函數(shù)聲明格式中的<返回類型>,下列敘述錯(cuò)誤的是A、<返回類型>有可能包含關(guān)鍵字trueB、<返回類型>有可能包含自定義標(biāo)識(shí)符C、<返回類型>有可能包含字符*D、<返回類型>有可能包含關(guān)鍵字float標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查函數(shù)返回類型,函數(shù)返回類型可以是普通常量型的,可以返回指針以及自定義類型,但是不能包含關(guān)鍵字true,所以A選項(xiàng)錯(cuò)誤。24、設(shè)有表示公司和員工及雇傭的三張表,員工可在多家公司兼職,其中公司C(公司號(hào),公司名,地址,注冊(cè)資本,法人代表,員工數(shù)),員工S(員工號(hào),姓名,性別,年齡,學(xué)歷),雇傭E(公司號(hào),員工號(hào),工資,工作起始時(shí)間)。其中表C的鍵為公司號(hào),表S的鍵為員工號(hào),則表E的鍵(碼)為A、公司號(hào),員工號(hào)B、員工號(hào),工資C、員工號(hào)D、公司號(hào),員工號(hào),工資標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二維表中的行稱為元組,候選鍵(碼)是二維表中能唯一標(biāo)識(shí)元組的最小屬性集。若一個(gè)二維表有多個(gè)候選碼,則選定其中一個(gè)作為主鍵(碼)供用戶使用。公司號(hào)唯一標(biāo)識(shí)公司,員工號(hào)唯一標(biāo)識(shí)員工,而雇傭需要公司號(hào)與員工號(hào)同時(shí)唯一標(biāo)識(shí),故表E的鍵(碼)為(公司號(hào),員工號(hào)),故A選項(xiàng)正確。25、有如下程序:#include#includeusingnamespacestd;classAnimal{public:virtualstringGetType()const{return"Animal";}virtualstringGetVoice()const{return"Voice";}};classDog:publicAnimal{public:stringGetType()const{return"Dog";}stringGetVoice()const{return"Woof";}};classCat:publicAnimal{public:stringGetType()const{return"Cat";}stringGetVoice()const{return"Miaow";}};voidType(Animala){cout<A、DogspeakVoice-CatspeakVoiceB、DogspeakWoof-CatspeakMiaowC、AnimalspeakVoice-AnimalspeakVoiceD、AnimalspeakWoof-AnimalspeakMiaow標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查虛函數(shù)的運(yùn)用,本題中定義Dogd;Type(d)時(shí),執(zhí)行基類的Type函數(shù),輸出Animal,然后輸出speak,然后執(zhí)行派生類的Speak函數(shù)輸出Woof,最后輸出-,同理cat輸出類似,所以結(jié)果為D選項(xiàng)正確。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);deletep;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BBBB、BBDC、DBBD、DBD標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù),本題中定義類B的對(duì)象b、對(duì)象指針*p=newD以及類D的對(duì)象d;執(zhí)行fun1會(huì)調(diào)用派生類的show函數(shù),因?yàn)閟how函數(shù)為虛函數(shù),而調(diào)用fun2、fun3仍然為基類的show函數(shù),所以本題答案為C。27、下列關(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)解析:本題考查字符串的定義,A選項(xiàng)中,定義了一個(gè)字符,而用字符串賦值,所以錯(cuò)誤,C選項(xiàng)定義了字符數(shù)組,但是賦值的字符串實(shí)際上有6個(gè)字符,所以賦值錯(cuò)誤,D選項(xiàng)定義了一個(gè)字符串指針數(shù)組,賦值錯(cuò)誤。28、有如下程序:#includeusingnamespacestd;intmain(){voidfunction(doubleval);doubleval;function(val);cout<A、編譯出錯(cuò),無(wú)法運(yùn)行B、輸出:3C、輸出:3.0D、輸出一個(gè)不確定的數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用及傳值方式傳遞參數(shù),執(zhí)行函數(shù)function時(shí),并沒(méi)有將3的值傳回來(lái),而val又沒(méi)有初始化,所以會(huì)輸出一個(gè)不確定的值,D選項(xiàng)正確。29、下列關(guān)于內(nèi)聯(lián)函數(shù)的敘述中,正確的是A、內(nèi)聯(lián)函數(shù)就是在一個(gè)函數(shù)體內(nèi)定義的函數(shù)B、內(nèi)聯(lián)函數(shù)必須通過(guò)關(guān)鍵字inline來(lái)定義C、在類體中定義的函數(shù),都是內(nèi)聯(lián)函數(shù)D、內(nèi)聯(lián)函數(shù)不需要return語(yǔ)句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在類體中定義的成員函數(shù),C++系統(tǒng)會(huì)自動(dòng)將它們作為內(nèi)聯(lián)函數(shù)處理,而在類外定義的成員函數(shù),系統(tǒng)并不把它們默認(rèn)為內(nèi)聯(lián)函數(shù),內(nèi)聯(lián)函數(shù)可以用return,以可以不用,所以只有選項(xiàng)C正確。30、有如下類定義和變量定義:classParents{public:intpublicData;private:intprivateData;};classChildA:publicParents{/*類體略*/};classChildB:privateParents{/*類體略*/};ChildAa;ChildBb;下列語(yǔ)句中正確的是A、cout<<a.publicData<B、cout<<a.privateData<C、cout<<b.privateData<D、cout<<b.publicData<標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查派生類對(duì)基類成員的訪問(wèn)屬性,派生類公用繼承基類,所以派生類可以直接使用基類的公用成員,所以只有A選項(xiàng)正確。31、有如下語(yǔ)句序列:intx=10,&r=x;cout<A、10-10B、10-0x28ff48C、0x28ff44-10D、0x28ff44-0x28ff48標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查引用概念和使用,題目中r為x的引用,所以與x的值相同,結(jié)果為A,A選項(xiàng)正確。32、下列選項(xiàng)中,正確的C++表達(dá)式是A、a+b=b+cB、xyz+C、www++9D、a[3]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:A選項(xiàng)中,a+b是表達(dá)式,不可以作為左值;選項(xiàng)B中,運(yùn)算符"+"作為一元運(yùn)算符,應(yīng)該放在操作數(shù)之前,返回操作數(shù)本身;作為二元運(yùn)算符,必須作用于兩個(gè)操作數(shù)之間;選項(xiàng)C中,運(yùn)算符"++"是一元運(yùn)算符,只能有一個(gè)操作數(shù);答案為D。33、若MyClass為一個(gè)類,執(zhí)行語(yǔ)句"MyClassa[4],*p[5];"時(shí)會(huì)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)是A、2B、4C、5D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù),題中定義了包含4個(gè)元素的一維對(duì)象數(shù)組,而指針數(shù)組不占用空間,所以不調(diào)用構(gòu)造函數(shù),那么構(gòu)造函數(shù)就執(zhí)行4次,答案為B。34、在名為BigNumber的類的類體中對(duì)運(yùn)算符函數(shù)double進(jìn)行了如下聲明:operatordouble(BigNumber);函數(shù)聲明中有一個(gè)明顯的錯(cuò)誤,這個(gè)錯(cuò)誤就是A、參數(shù)表中不應(yīng)該有任何參數(shù)B、缺少對(duì)函數(shù)返回類型的說(shuō)明C、參數(shù)聲明中缺少參數(shù)變量D、函數(shù)聲明中缺少函數(shù)體標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查類型轉(zhuǎn)換函數(shù),其一般形式如下:operator類型名(){實(shí)現(xiàn)轉(zhuǎn)換的語(yǔ)句}在函數(shù)名前面不能指定函數(shù)類型,函數(shù)沒(méi)有參數(shù),所以A選項(xiàng)錯(cuò)誤。35、有如下程序段:inti=2;intj=3;intmain(){inti=9,j=i;cout<A、23B、93C、99D、39標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。它不屬于哪一個(gè)函數(shù),它屬于一個(gè)源程序文件。其作用域是整個(gè)源程序。在函數(shù)中使用全局變量,一般應(yīng)作全局變量說(shuō)明,本題中定義了兩個(gè)全局變量i,j,所以主函數(shù)中對(duì)全局變量重新賦值輸出后為99,所以答案為C。36、已知一程序運(yùn)行后執(zhí)行的第一個(gè)輸出操作是cout<A、1234B、******1234C、**********1234D、1234******標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查輸入輸出格式的控制,先是定義寬度為10個(gè)字符,然后填充字符,1234只有四個(gè)字符,所以要在左側(cè)填充6個(gè)*,即輸出******1234,B選項(xiàng)正確。37、下面不屬于軟件測(cè)試實(shí)施步驟的是A、集成測(cè)試B、回歸測(cè)試C、確認(rèn)測(cè)試D、單元測(cè)試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試主要包括單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。38、在公有繼承的情況下,允許派生類直接訪問(wèn)的基類成員包括()。A、公有成員B、公有成員和保護(hù)成員C、公有成員、保護(hù)成員和私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問(wèn)屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問(wèn)屬性,其私有成員仍為基類私有。所以本題答案為B。39、有如下類聲明:classBase1{};classBase2{};classDerived:publicBase2,publicBase1{};在一個(gè)Derived對(duì)象消亡時(shí),析構(gòu)函數(shù)被調(diào)用的順序是A、~Derived、~Base1、~Base2B、~Derived、~Base1、~Base2C、~Base1、~Base2、~DerivedD、~Base2、~Base1、~Derived標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中,派生類構(gòu)造函數(shù)都是先調(diào)用基類構(gòu)造函數(shù),再根據(jù)聲明次序定義數(shù)據(jù)成員,另外對(duì)于多繼承,派生類的構(gòu)造函數(shù)初始化列表中,基類構(gòu)造函數(shù)是按照基類在派生類的派生列表中出現(xiàn)的次序調(diào)用的;而析構(gòu)函數(shù)是按構(gòu)造函數(shù)運(yùn)行順序的逆序進(jìn)行調(diào)用的,可知題目中析構(gòu)函數(shù)的調(diào)用順序?yàn)椋号缮怐erived的析構(gòu)函數(shù),Base1的析構(gòu)函數(shù),Base2的析構(gòu)函數(shù);答案為A。40、若為類MyClass重載運(yùn)算符"+",下列聲明中,錯(cuò)誤的是A、friendMyClassoperator+(double,double);B、friendMyClassoperator+(double,MyClass);C、friendMyClassoperator+(MyClass,double);D、friendMyClassoperator+(MyClass,MyClass);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:重載運(yùn)算符必須具有一個(gè)類類型的操作數(shù),這條規(guī)則強(qiáng)制重載運(yùn)算符不能重新定義用于內(nèi)置類型對(duì)象的運(yùn)算符。選項(xiàng)B、C、D正確,A錯(cuò)誤,答案為A。二、基本操作題(本題共1題,每題1.0分,共1分。)41、使用VC6打開(kāi)考生文件夾下的proj1工程目錄內(nèi)的proj1.dsw文件,其中在編輯窗口內(nèi)顯示的主程序文件中定義有Xabc類和主函數(shù)main。在程序文本中位于每行"//ERROR**********found**********下面的一一行有錯(cuò)誤,請(qǐng)加以更正。更正后程序的輸出為:57注意:只允許修改每個(gè)"//ERROR**********found**********下面的一行語(yǔ)句,不允許改動(dòng)程序中的其他任何內(nèi)容。#include<iostream>usingnamespacestd;classXabc{int*a;intn;public:Xabc(intaa[],intnn):n(an){a=newint[n];for(inti=0;i標(biāo)準(zhǔn)答案:(1)a[i]=aa[i];(2)d+=x.GetA(i);(3)intf=x.SumA(5);知識(shí)點(diǎn)解析:(1)Xabc的構(gòu)造函數(shù)需要使用形參aa為成員指針a賦值,函數(shù)體中,首先動(dòng)態(tài)分配n個(gè)連續(xù)的整型變量的內(nèi)存空間,并將內(nèi)存空間的首地址賦給a,然后通過(guò)for循環(huán),使用數(shù)組aa為a的n個(gè)元素的賦值(2)x是類Xabc的對(duì)象,成員a在定義時(shí)沒(méi)有指定訪問(wèn)標(biāo)號(hào),默認(rèn)為private成員,所以這里不能通過(guò)x對(duì)象直接訪問(wèn)a,應(yīng)該通過(guò)公有成員函數(shù)GetA()來(lái)訪問(wèn)(3)sumA()函數(shù)是類Xabc的公有成員函數(shù),需要通過(guò)對(duì)象來(lái)引用,而不能直接引用三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)42、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,補(bǔ)充空出的代碼。函數(shù)convert(cha*des,char*str)實(shí)現(xiàn)的功能是:(1)如果字符串最后面有空格,則全部刪除;(2)轉(zhuǎn)換后的數(shù)據(jù)放到des,并且指針作為返回值返回。注意:不能修改程序的其他部分,只能補(bǔ)充convert()函數(shù)。1#include2#include3#defineMAXLEN10244char*convert(char*des,char*str)5{67}8voidmain()9{10chardest[MAXLEN];11char*string="abedef";12cout<<string<<"<一一"<標(biāo)準(zhǔn)答案:1intlength=0;2inti;3for(length=0;str[lengch]!=NULL;length++);//求數(shù)組長(zhǎng)度4length一一;//下標(biāo)從0~len=1,下標(biāo)減1表示最后一個(gè)字符的下標(biāo)值5for(i=length;i>=0;i--)6{7if(str[i]!=’’)//判斷結(jié)尾是否有空格,從后往前判斷直到不是不是空格了跳出循環(huán)8break;9}10for(length=0;length<=i;length++)11{12des[length]=str[1ength];//從前面開(kāi)始,逐個(gè)將str中的字符拷貝到des數(shù)組中,不含最后面的空格13}14des[1ength]=NULL;//最后一個(gè)字符為NULL15returndes;知識(shí)點(diǎn)解析:函數(shù)convert(cha*des,char*str)實(shí)現(xiàn)的功能是將字符串最后面有空格刪除,并將轉(zhuǎn)換后的數(shù)據(jù)放到des,返回指針,可以將字符串最后空格前的所有所有字符拷貝到des中,關(guān)鍵是確定下標(biāo)從那開(kāi)始到最后都是空格。[解題思路](1)利用循環(huán)將字符串str的長(zhǎng)度求出,然后從字符串的尾部開(kāi)始檢索,用循環(huán)從字符串的最后一個(gè)字符往前面逐個(gè)檢查,如果該字符不是空格則退出循環(huán),這個(gè)時(shí)候就找到了最后一個(gè)非空格字符所在的下標(biāo)位置,然后從下標(biāo)0開(kāi)始到該位置,逐個(gè)將str里面字符拷貝到des中。(2)程序當(dāng)中使用了3次循
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度工業(yè)廠房裝修工程承包及后期維護(hù)服務(wù)合同4篇
- 2025年版水庫(kù)承包合同范本:防洪安全責(zé)任書(shū)3篇
- 2025版借名購(gòu)車合同范本:車主與借名人的權(quán)利義務(wù)約定3篇
- 二零二五年度物業(yè)服務(wù)企業(yè)物業(yè)管理合同2篇
- 重市慶南開(kāi)中學(xué)2025屆中考生物最后沖刺模擬試卷含解析
- 二零二五年綠色建筑標(biāo)準(zhǔn)建筑裝飾植筋勞務(wù)分包合同3篇
- 2025年度產(chǎn)權(quán)明確車位租賃市場(chǎng)拓展與營(yíng)銷合同4篇
- 2025年體育用品代理合同
- 2025年倉(cāng)儲(chǔ)貨物檢修協(xié)議
- 龍舟教學(xué)課程設(shè)計(jì)
- 2025-2030年中國(guó)MPV汽車市場(chǎng)全景調(diào)研及投資策略分析報(bào)告
- 二零二五年度數(shù)據(jù)存儲(chǔ)與備份外包服務(wù)協(xié)議2篇
- 家政服務(wù)與社區(qū)合作方案
- 2024年深圳市龍崗區(qū)城市建設(shè)投資集團(tuán)有限公司招聘筆試真題
- 2024-2025學(xué)年北京市朝陽(yáng)區(qū)高三上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 第五單元《習(xí)作例文:風(fēng)向袋的制作》說(shuō)課稿-2024-2025學(xué)年五年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 四年級(jí)數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 四川省綿陽(yáng)市涪城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期1月期末歷史試卷(含答案)
- 2025年山東水發(fā)集團(tuán)限公司社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- JJG 1204-2025電子計(jì)價(jià)秤檢定規(guī)程(試行)
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(kù)(共380題含答案)
評(píng)論
0/150
提交評(píng)論