版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C++機試(選擇題)模擬試卷30(共9套)(共229題)國家二級C++機試(選擇題)模擬試卷第1套一、選擇題(本題共23題,每題1.0分,共23分。)1、下列關(guān)于類和對象的敘述中,錯誤的是()。A、一個類只能有一個對象B、對象是類的具體實例C、類是對某一類對象的抽象D、類和對象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系標準答案:A知識點解析:此題考查的是類和對象的相關(guān)概念。類是將不同的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝起來裝在一起的集合體。對象是類的具體實例,也即類是對某一類對象的抽象,類和對象之間可以說是數(shù)據(jù)類型與變量的關(guān)系。一個類可以有無數(shù)個對象。2、下列語句中,錯誤的是()。A、constintbuffer=256;B、constdouble*point;C、intconstbuffer=256;D、double木constpoint;標準答案:D知識點解析:此題考查的足常指針和指針常量的概念。常指針是指向一個常量的指針變量,指針自身的內(nèi)容可以改變但指針指向的內(nèi)容不可以改變;指針常量是一個常量,即不能修改指針自身的內(nèi)存,但可以通過指針修改其所指向的內(nèi)容。D選項中指針常量point沒有初始化,編譯無法通過。3、結(jié)構(gòu)化程序設(shè)計的基本原則不包括()。A、多元性B、自頂向下C、模塊化D、逐步求精標準答案:A知識點解析:結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態(tài)性。4、軟件生命周期是指()。A、軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程B、軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程C、軟件的開發(fā)過程D、軟件的運行維護過程標準答案:A知識點解析:軟件生命周期是指軟件產(chǎn)品從提出、實現(xiàn)、使用、維護到停止使用、退役的過程。5、在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是()。A、程序內(nèi)部邏輯B、程序外部功能C、程序數(shù)據(jù)結(jié)構(gòu)D、程序流程圖標準答案:B知識點解析:黑盒測試法指的是根據(jù)程序的外部功能,把程序本身看成一個黑盒子,設(shè)計測試用例來驗證程序外部功能的正確性。6、下列符號中,正確的C++標識符是()。A、enumB、100bitC、s-1D、int標準答案:D知識點解析:此題考查的是C++語言中標識符的概念。標識符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個字符必須是字母或下劃線,中間不能有空格;標識符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個字符;標識符中的大小寫字母是不同的;定義標識符時不能采用系統(tǒng)的保留字。7、以下程序輸出結(jié)果是():#include<iostream>usingnamespacestd;voidadd(intx,inty,int*z){*z=y+x;}intmain(){inta,b,c;add(8,4,&a);add(6,a,&b);add(a,b,&c);cout<<a<<","<<b<<","<<c<<endl;return0;}A、12,10,14B、12,18,30C、12,6,18D、12,14,30標準答案:B知識點解析:由主函數(shù)main入手,調(diào)用add函數(shù),其中第三個參數(shù)為引用,即傳值為地址。當add函數(shù)中第三個參數(shù)改變時,主函數(shù)中這個值也會改變。那么第一個add調(diào)用后a=12,所以第二個調(diào)用中a=12。調(diào)用后b=18。那么第三個調(diào)用后c=30。8、通過派生類的對象可直接訪問其()。A、公有繼承基類的公有成員B、公有繼承基類的私有成員C、私有繼承基類的公有成員D、私有繼承基類的私有成員標準答案:A知識點解析:基類的私有成員在派生類中都是不能訪問的,所以選項B、D是錯誤的,基類的公有成員通過私有繼承后,在派生類中變?yōu)榱怂接谐蓡T,只能在派生類中進行訪問,而通過派生類的對象不能訪問,所以選項C也是錯誤的?;惖墓谐蓡T通過公有繼承后,在派生類中是公有成員,所以可以通過派生對象來訪問。9、執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是()。for(inti=50;i>1-=2)cout<<ˊ*ˊ;A、24B、25C、26D、50標準答案:B知識點解析:此題考查的是for。循環(huán)語句。執(zhí)行循環(huán)語句,變量i從50遞減,每次減2,所以循環(huán)會執(zhí)行25次,輸出25個‘*’。10、有如下程序:#includeusingnamespacestd;classBook{public:Book(char*t=""){strcpy(title,t);)private:chartitle[40];};classNovel:publicBook{public:Novel(char*t=""):Book(t){}char*Category()const{return“文學(xué)”;));intmain(){Book*pb;pb=newNovel();cout<Category();returnO:}若程序運行時輸出結(jié)果是“文學(xué)”,則劃線處缺失的語句是()。A、char*Category();B、char*Category()const;C、virtualchar*Category()const;D、virtualchar*Category()const=O;標準答案:D知識點解析:根據(jù)程序運行的結(jié)果為:文學(xué),說明程序執(zhí)行了派生類Novel中的成員函數(shù)*Category()const{return”文學(xué)”;},所以在基類Book中要把函數(shù)*Category()const定義為純虛函數(shù)。11、在對函數(shù)進行原型聲明時,下列語法成分中,不需要的是()。A、函數(shù)返回類型B、函數(shù)參數(shù)列表C、函數(shù)名D、函數(shù)體標準答案:D知識點解析:在c++中函數(shù)在使用之前要預(yù)先聲明,這種聲明在標準C冉中稱為函數(shù)原型。函數(shù)給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時必須指明參數(shù)個數(shù)和類型。12、有如下程序:#inc1ude<iostream>usingnamespacestd;voidfunction2(intn);voidfunctionl(intn){if(n<=0)return;function2(n一2);}voidfunction2(intn){if(n<=0)return;functionl(n一1);}intmain(){functionl(5);return0:}下列關(guān)于程序運行情況的描述中,正確的是()。A、functionl運行1次,function2運行2次B、functionl運行2次,function2運行1次C、functionl運行2次,function2運行3次D、functionl運行2次,function2運行2次標準答案:D知識點解析:在土函數(shù)中執(zhí)行functionl(5)時,會調(diào)用function2(3),function2(3)又會調(diào)用functionl(2),functionl(2)又會調(diào)用function2(0),到此相互調(diào)用結(jié)束。所以functionl()和function20各執(zhí)行了2次。13、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assVAC{public;intf()const{return3;}intf(){return5;}};Intmain(){VACvl;constVACv2;cout<<vl.f<<v2.f();fetum0;}運行時的輸出結(jié)果是()。A、53B、35C、55D、33標準答案:A知識點解析:此題考查的是常成員函數(shù)的應(yīng)用。VAC類中說明了兩個函數(shù),一個是常成員函數(shù),一個是普通函數(shù);在主函數(shù)中說明了兩個對象,通過普通對象v1調(diào)用的是普通函數(shù),輸出5;通過常對象V2調(diào)用的是常成員函數(shù),輸出3。14、有如下程序:#include<iostream>usingnamespacestd;classBase{private:voidfun1()const{cout<<"fun1";}protected:voidfun2()const{cout<<"fun2";}public:voidfun3()const{cout<<"fun3";}};classDerived:protectedBase{public:voidfun4()corot{cout<<"fun4";}};intmain(){Derivedobj;obj.fun4();//①obj.fun2();//②obj.fun3();//③obj.fun4();//④return0;}其中有語法錯誤的語句是()。A、①②③④B、①②③C、②③④D、①④標準答案:B知識點解析:此題考查的是保護繼承。因為Derived以protected方式繼承了Base類,所以父類Base中的公有成員和保護成員均成了Derived類的保護成員,而Base類的私有成員Derived類不可訪問。所以,主函數(shù)中通過Derived類的對象只能夠。訪問到Derived類的公有成員。15、有如下程序:#include<iostream>usingnamespacestd;classPair{intm,n;public:Pair(intj,intk):m(j),n(k){}intget0{returnm;}intgetoconst{returnm+n;}};intmain(){Paira(3,5);constPairb(3,5);cout<<a.get()<<b.get();return0;}運行時的輸出結(jié)果是()。A、33B、38C、83D、88標準答案:B知識點解析:在主函數(shù)中定義了類Pair的一個實例變量a,并分別對實例變量a的數(shù)據(jù)成員m,n賦初值3,5。所以調(diào)用a.get()成員函數(shù)時,輸出3。又定義類Pair的一個常實例變量b,并分別對實例變量b的數(shù)據(jù)成員m,n賦初值3,5。所以調(diào)用成員函數(shù)b.get()時,輸出8。16、生成派生類對象時,派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)的條件是()。A、無需任何條件B、基類中顯示定義了構(gòu)造函數(shù)C、派生類中顯式定義了構(gòu)造函數(shù)D、派生類構(gòu)造函數(shù)明確調(diào)用了基類構(gòu)造函數(shù)標準答案:A知識點解析:因為派生類從基類中繼承,它含有基類中的數(shù)據(jù)成員和函數(shù)成員,所以當生成派生類對象時,能無條件的調(diào)用基類的構(gòu)造函數(shù)。17、有如下程序:#inc1ude<iostream>usingnamespacestd;classBase{public:voidfunl(){cout<<"Base\n";}virtualvoidfun2(){cout<<"Base\n";}};classDerived:publicBase{public:voidfunl(){cout<<"Derived\n";}voidfun2(){cout<<"Derived\n";}};voidf(Base&b){b.funl();b.fun2();}intmain(){Derivedobj;f(obj);return0;}執(zhí)行這個程序的輸出結(jié)果是()。A、BaseB、BaseBaseDerivedC、DerivedD、DerivedBaseDerived標準答案:B知識點解析:此題考查的是虛函數(shù)的概念。在C++語言中,一個派生類的對象可以被它的任何一個基類的指針所指向,若基類和派生類中存在一模一樣的成員函數(shù)。那么通過該基類指針調(diào)用這樣的成員函數(shù)時,若這個成員函數(shù)被定義成虛函數(shù),那么就調(diào)用派生類中的;否則就調(diào)用基類中的。本題中,在f()函數(shù)中,形參b是一個基類的引用,它引用的是主函數(shù)中定義的派生類對象obj,所以在調(diào)用funl0時,運行的是基類的版本,而fun2()運行的是派生類的版本。18、有如下程序:#includeusingnamespacestd;classXA{inta;public:staticintb;XA(intaa):a(aa){b++;}intgetA(){returna;}};intXA::b=0:intmain(){XAd1(4),d2(5);cout<A、9B、11C、13D、l5標準答案:C知識點解析:在類XA的構(gòu)造函數(shù)中,定義了用成員變量a的值初始化變量aa,同時靜態(tài)成員變量b值加1。所以當在主main函數(shù)中定義類XA的對象d1(4)后,變量b的等了1,定義對象d2(5)后,變量b的值等于2,所以表達式d1.getA()+d2.getA()+XA::d1.b等于4+5+1+2+1==13。19、有如下程序:#includeusingnamespacestd;classBase{public:virtualvoidfunction1(){cout<<’0’;}voidfunction2(){cout<<’1’;}};classDerived:publicBase{public:voidfunction1(){cout<<’2’;}voidfunction2(){cout<<’3’;}};intmain(){Base*p=newDerived();p->function1();p->function2();return0;};運行時的輸出結(jié)果是()。A、01B、21C、03D、23標準答案:B知識點解析:函數(shù)function1()在基類Base中定義為虛成員函數(shù),而在派生類Dervied中重新進行了定義,輸出字符2,函數(shù)function2()在基類Base中定義虛成員函數(shù),在主函數(shù)中使用指向基類的指針變量p訪問function2()時,輸出1。20、下列關(guān)于繼承方式的描述中,錯誤的是()。A、如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)B、采用公有繼承方式時,基類中的公有成員在派生類中仍然是公有成員C、采用保護繼承方式時,基類中的保護成員在派生類中仍然是保護成員D、采用私有繼承方式時,基類中的私有成員在派生類中仍然是私有成員標準答案:D知識點解析:基類中的私有成員在派生類中是隱蔽的,只能在基類內(nèi)部訪問。派生類中的成員不可以訪問基類中的私有成員,只可以訪問基類中的公有成員和保護成員。21、下列運算符中,不能被重載的是()。A、&&B、!=C、.D、++標準答案:C知識點解析:此題考查的是運算符重載。在C++中,只有.、*、->*、::、?:這五個運算符不能重載。22、當使用ifstream流類定義一個流對象并打開一個磁盤文件時,文件的默認打開方式為()。A、ios_base::inB、ios_base::inlios_base::outC、ios_base::outD、ios_base::in&ios_base::out標準答案:A知識點解析:對于ifstream,默認打開模式是iosbase::in。ifstream只能用于輸入,它沒有提供任何用于輸出的操作。23、若目前D盤根目錄下并不存在test.txt文件,則下列打開文件方式不會自動創(chuàng)建test.txt文件的是()。A、ifstreamfin;fin.open("d:\\test.txt",ios_base::in);B、fstreamfio;fio.open("d:\\test.txt",ios_base::out);C、ofstreamfout;fout.open("d:\\test.txt",ios_base::out);D、ofstreamfout;fout.open("d:\\test.txt",ios_base::app);標準答案:A知識點解析:如果以isobase::in模式打開文件但文件又不存在時,可以通過failo測出文件打開失敗,不會自動創(chuàng)建文件。國家二級C++機試(選擇題)模擬試卷第2套一、選擇題(本題共19題,每題1.0分,共19分。)1、下列符號中可以用作C++標識符的是()。A、_nadiusB、foo-barC、elseD、3room標準答案:A知識點解析:此題考查的是C++語言中標識符的定義。標識符有字母、數(shù)字和下劃線構(gòu)成,其第一個字母必須是字母或下劃線;定義標識符時,不要采用系統(tǒng)的保留字。2、下列敘述中正確的是()。A、棧是一種先進先出的線性表B、隊列是一種后進先出的線性表C、棧與隊列都是非線性結(jié)構(gòu)D、棧與隊列都是線性結(jié)構(gòu)標準答案:D知識點解析:棧是先進后出,隊列是先進先出。棧和隊列都是一種線性表,屬于線性結(jié)構(gòu)。3、已知函數(shù)fun的原型為intfun(int,int,int);下列重載函數(shù)原型中錯誤的是()。A、charfun(int,int);B、doublefun(int,int,double);C、intfun(int,char*);D、floatfun(int,int,int);標準答案:D知識點解析:重載函數(shù)至少要在參數(shù)個數(shù)或參數(shù)類型上不同。而選項D中的函數(shù)與原函數(shù)只是函數(shù)類型不同,而其他完全相同(參數(shù)個數(shù)及類型),則不能作為重載函數(shù)來使用。4、數(shù)據(jù)字典(DD)所定義的對象都包含于()。A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標準答案:A知識點解析:數(shù)據(jù)字典是指對數(shù)據(jù)的數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實體等進行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細的說明。5、有如下程序:#includeusingnamespacestd;classBase{public:Base(intx=0){cout<<x;)};classDerived:publicBase{public:Derived(intx=0){cout<<x;)private:Baseval;);intmain(){Derivedd(1);return0:}程序的輸出結(jié)果是()。A、0B、1C、01D、001標準答案:D知識點解析:此題考查的是類的構(gòu)造。建立類的對象時,構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個基類被繼承時聲明的順序(自左向右).>執(zhí)行成員對象的構(gòu)造函數(shù),調(diào)用順序按照各個成員對象在類中聲明的順序.>執(zhí)行自身的構(gòu)造函數(shù)。本題中,首先會構(gòu)造基類Base,調(diào)用Base類的構(gòu)造函數(shù),輸出0;然后還定義了一個Base類的對象,再次調(diào)用Base類的默認構(gòu)造函數(shù)輸出0;最后構(gòu)造自身,因主函數(shù)中傳入了構(gòu)造參數(shù)l,所以輸出1。故最后輸出結(jié)果是:001。6、下列字符串中不能作為C++標識符使用的是()。A、INT。B、testC、_1481D、Itemp標準答案:D知識點解析:用來表示變量、符號常量、函數(shù)、數(shù)組類型等實體名字的有效字符序列稱為標識符,標識符由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或者下劃線。所以D選項錯誤。7、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){charstr[100],*p;cout<<"Pleaseinputastring:";cin;str;p==str;for(inti=0;*p!=’\0’;p++,i++);cout<<"i"<<end1;retum0;}運行這個程序時,若輸入字符串為:abcdefgabcd則輸出結(jié)果是()。A、7B、12C、13D、100標準答案:A知識點解析:此題考查的是默認輸入格式。本題輸入數(shù)據(jù)類型為char,因此輸入的數(shù)據(jù)是“從第…個非空白字符開始到下一個空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefgabcd,其中abcdefg后有空格。所以輸入后str中的字符串為“abcdefg”;主函數(shù)中接下來for語句的作用是計算字符串p的長度,故最終輸出字符串“abcdefg”的長度7。8、有如下語句序列:charstr[10];cin>>str;當從鍵盤輸入"Ilovethisgame"時,str中的字符串是()。A、IlovethisgameB、IlovethiC、IloveD、I標準答案:D知識點解析:由于字符\0作為字符串的結(jié)束標志,所以當從鍵盤上輸入“Ilovethisgame”時,只把字母I輸入字符串str。9、在下列函數(shù)原型中,可以作為類AA構(gòu)造函數(shù)的是(>。A、voidAA(int);B、intAA();C、AA(int)const;D、AA(int);標準答案:D知識點解析:此題考查的是構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)是類的一個特殊成員函數(shù),它與類同名,并且沒有返回值。選項A、B不符合要求。選項C中函數(shù)AA,會更新對象的數(shù)據(jù)成員。10、有如下語句序列:ifstreaminfile("DATA.DAT");if(infile.good())eout<<"A";else{cout<<"B";ofstreamoutfile("DATA.DAT");if(outfile.fail())cout<<"C";elsecout<<"D";}若執(zhí)行這個語句序列顯示的是BD,則說明文件DATA.DAT()。A、以讀方式打開成功B、以讀方式打開失敗,但以寫方式打開成功C、以讀方式打開失敗,以寫方式打開也失敗D、以讀方式打開成功,以寫方式打開也成功標準答案:B知識點解析:由這個語句序列顯示的結(jié)果是BD,說明執(zhí)行了cout<<"B"和eout<<"D"語句。11、有如下類定義:classTest{chara;constcharb;public:Test(charc){a=c;b=c;}//第1行voidf(chara)const{this->a=a;}//第2行voidg(charb){this->b=b;}//第3行charh()const{returna;}//第4行};編譯時沒有錯誤的行是()。A、第1行B、第2行C、第3行D、第4行標準答案:D知識點解析:類Test中的常成員函數(shù)h()返回數(shù)據(jù)成員a的值。12、下列代碼段聲明了3個類classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關(guān)于這些類之間關(guān)系的描述中,錯誤的是()。A、類Person是類Undergraduate的基類B、類Undergraduate從類student公有繼承C、類student是類Person的派生類D、類Undergraduate是類Person的派生類標準答案:B知識點解析:Student類公有繼承自Person類,Undergraduate類私有繼承自Student類。所以Undergraduate類是從Student類私有繼承的。13、下列運算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。A、intoperator-(FunNumber);B、FunNumberoperator-();C、FunNumberoperator-(int);D、intoperator-(FunNumber,F(xiàn)unNumber);標準答案:D知識點解析:此題考查的是運算符“-”的重載?!?”運算符有一元和二元兩種,且均可以重載為成員函數(shù)和非成員函數(shù)。運算符重載為成員函數(shù)時,形參個數(shù)一般為運算符元數(shù)減1;重載為非成員函數(shù)時,形參個數(shù)一般和運算符冗數(shù)相等。所以,“-”運算符重載為成員函數(shù)時,參數(shù)可以是0個或1個:而重裁為非成員函數(shù)時.參數(shù)個數(shù)可以是1個或2個。所以D選項,肯定是重載為非成員函數(shù)。14、在一個派生類的成員函數(shù)中,試圖調(diào)用其基類的成員函數(shù)“voidf();”,但無法通過編譯。這說明()。A、f()是基類的私有成員B、f()是基類的保護成員C、派生類的繼承方式為私有D、派生類的繼承方式為保護標準答案:A知識點解析:在派生類對基類的三種繼承形式中,都無法對基類的私有成員訪問A正確。在B中,三種繼承方式都能訪問基類的保護成員,故B不正確。C選項的情況在f()是基類私有成員情況下是對的,但是還有別的可能,并不一定正確。同樣D也不一定正確。15、下列關(guān)于類模板的描述中,錯誤的是()。A、類模板的成員函數(shù)都是模板函數(shù)B、可以為類模板參數(shù)設(shè)置默認值C、類模板描述了一組類D、類模板中只允許有一個類型參數(shù)標準答案:D知識點解析:類模板就是一系列相關(guān)類的模型或樣板,這些類的成員組成相同,成員函數(shù)的源代碼形式相同,所不同的只是所針對的類型(成員的類型以及成員函數(shù)的參數(shù)和返回值的類型)。一個類模板的格式是:template<<模板形參表聲明>><類聲明>,<模板形參表聲明>是由一個或多個模板形參組成。在定義類模板時,可以為模板形參表聲明的最后若干個參數(shù)設(shè)置默認值。16、下列關(guān)于輸入流類成員函數(shù)getline()的描述中,錯誤的是()。A、該函數(shù)是用來讀取鍵盤輸入的字符串的B、該函數(shù)讀取的字符串長度是受限制的C、該函數(shù)讀取字符串時,遇到終止符便停止D、該函數(shù)讀取字符串時,可以包含空格標準答案:A知識點解析:此題考查的是getline()函數(shù)。getline()函數(shù)的原型為:istream.__t)rpe&getline(char_type*s,streamsize,char_typedelim);。其功能是從當前輸入位置開始提取字符存入s所指向的具有n個字節(jié)的字符空間中。遇到以下情況時停止:已提取并存儲了n—1個字符;到流尾,無字符可取;下一個要提取的字符等于結(jié)束標志字符delim。故選項B、C、D都是正確的。getline()函數(shù)不僅可以用來讀取鍵盤輸入的字符串,還可以用來讀取文件等數(shù)據(jù)流,故選項A錯誤。17、下列關(guān)于賦值運算符“=”重載的敘述中,正確的是()。A、賦值運算符只能作為類的成員函數(shù)重載B、默認的賦值運算符實現(xiàn)了“深層復(fù)制”功能C、重載的賦值運算符函數(shù)有兩個本類對象作為形參D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運算符標準答案:A知識點解析:賦值運算符“=”只能作為成員函數(shù)重載。18、下列關(guān)于模板的敘述中,正確的是()。A、如果一個類中存在純虛函數(shù),這個類就是類模板B、函數(shù)模板不能有形式參數(shù)表C、類模板是一種參數(shù)化類型的類,是類的生成器D、類模板中不能包含構(gòu)造函數(shù)標準答案:C知識點解析:對于函數(shù)模板,數(shù)據(jù)類型本身成了它的參數(shù),是一種參數(shù)化類型的函數(shù)。對于類模板,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類的生成器。19、若MyTemp是一個只有一個虛擬類型參數(shù)的類模板,且有如下語句序列MyTempp2;MyTempp3[2];編譯系統(tǒng)在處理上面的語句序列時,所生成的模板MyTemp的實例的個數(shù)是()。A、1B、2C、3D、0標準答案:C知識點解析:p2是一個double型的MyTemp,p3[2]是一個long型MyTemp數(shù)組,其中包括兩個元素。所以共有3個MyTemp的實例。國家二級C++機試(選擇題)模擬試卷第3套一、選擇題(本題共22題,每題1.0分,共22分。)1、算法的有窮性是指()。A、算法程序的運行時間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標準答案:A知識點解析:算法的有窮性,是指算法必須能在有限的時間內(nèi)做完,即算法必須能在執(zhí)行有限個步驟之后終止。2、有如下程序:intx=3;do{x一=2:cout<A、1B、30C、1-2D、死循環(huán)標準答案:C知識點解析:本題考查d0…while語句,執(zhí)行do…while語句時,先執(zhí)行循環(huán)體內(nèi)的語句,然后判斷while中表達式的值,表達式為非零時,返回重新執(zhí)行循環(huán)體語句。在本題中,先執(zhí)行循環(huán)體內(nèi)的語句,輸出1,然后判斷表達式,為非零,且此時x為0;再次執(zhí)行循環(huán)體時,輸出一2,然后判斷表達式為0,不執(zhí)行,退出,所以答案為C。3、以下程序的輸出的結(jié)果是()。#include<iostream.h>voidmain(){inta,b,c,d(5);c=2,c+=10;a=b=10;a*=2;b/=2;c%=2;cout<<a<<’’,’’<<b<<’’,’<<c<<end1;}A、20,5,0B、20,7,0C、20,5,1D、5,20,0標準答案:A知識點解析:c+=10使得c=12;a=b=10,a*=2使得a=20;b/=2,b=10/2,使得b=5;c=12%2=0,所以輸出值20,5,0。4、下列敘述中正確的是()。A、棧是“先進先出”的線性表B、隊列是“先進后出”的線性表C、循環(huán)隊列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈式存儲結(jié)構(gòu)標準答案:D知識點解析:本題主要考查了棧、隊列、循環(huán)隊列的概念,棧是先進后出的線性表,隊列是先進先出的線性表。根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度.一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。有序線性表既可以采用順序存儲結(jié)構(gòu),又可以采用鏈式存儲結(jié)構(gòu)。5、構(gòu)成計算機軟件的是()。A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標準答案:D知識點解析:軟件由兩部分組成:一是機器可執(zhí)行的程序和數(shù)據(jù);二是機器不可執(zhí)行的,與軟件開發(fā)、運行、維護、使用等有關(guān)的文檔。6、下列描述中正確的是()。A、軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤B、軟件測試的主要目的是確定程序中錯誤的位置C、為了提高軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作D、軟件測試是證明軟件沒有錯誤標準答案:A知識點解析:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。為了達到好的測試效果,應(yīng)該由獨立的第三方來構(gòu)造測試,程序員應(yīng)盡量避免檢查自己的程序。7、下面不能作為結(jié)構(gòu)化方法軟件需求分析工具的是A、系統(tǒng)結(jié)構(gòu)圖B、數(shù)據(jù)字典(DD)C、數(shù)據(jù)流程圖D、判定表標準答案:A知識點解析:按照DeMarco的定義,“結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD圖)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標文檔。”系統(tǒng)結(jié)構(gòu)圖不能作為結(jié)構(gòu)化方法軟件需求分析工具。8、下列符號中,正確的C++標識符是()。A、enumB、100bitC、s-1D、_int標準答案:D知識點解析:此題考查的是c++語言中標識符的概念。標識符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個字符必須是字母或下劃線,中間不能有空格;標識符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個字符;標識符中的大小寫字母是不同的;定義標識符時不能采用系統(tǒng)的保留字。9、在下面的類定義中,錯誤的語句是()。classSample{public:Sample(intval);∥①~Sample();∥②private:inta=2.5:∥③Sample();∥④};A、①②③④B、②C、③D、①②③標準答案:C知識點解析:③是錯誤的,因為在類體內(nèi),不允許對所定義的數(shù)據(jù)成員進行初始化;其他語句構(gòu)造和析構(gòu)函數(shù)的定義都是正確的。10、下列語句中,錯誤的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標準答案:B知識點解析:此題考查的是符號常量的概念。符號常量必須在聲明的同時賦初值,故選項B錯誤;選項C定義的是一個指向常量的指針變量,即通過指針不能改變它所指向的內(nèi)容,而它自己的內(nèi)容是可以改變的,C選項正確。11、要定義一個具有5個元素的一維數(shù)組vect,并使其各元素的初值依次是30,50,—88,0和0,則下列定義語句中錯誤的是()。A、intvect[]={30,50,—88};B、intvect[l={30,50,—88,0,0};C、intvect[5]={30,50,—88};D、intvect[5]={30,50,—88,0,0};標準答案:A知識點解析:此題考查的是一維數(shù)組定義時的初始化。當數(shù)組聲明時沒有給出數(shù)組的大小但是有初始化列表時,數(shù)組的大小就由列表中元素的個數(shù)來確定。所以選項A中數(shù)組只定義3個元素,不符合題目。12、有如下語句序列:charstr[10];cin>>str;當從鍵盤輸入"Ilovethisgame"時,str中的字符串是()。A、IlovethisgameB、IlovethiC、IloveD、"I"標準答案:D知識點解析:由于字符\0作為字符串的結(jié)束標志,所以當從鍵盤上輸入“Ilovethisgame”時,只把字母I輸入字符串str。13、在關(guān)系模式A(S,SN,D)和B(D,CN,NM)中,關(guān)系A(chǔ)的主鍵是S,關(guān)系B的主鍵是D,則屬性D在關(guān)系A(chǔ)中稱為A、外鍵B、主鍵C、超鍵D、候選鍵標準答案:A知識點解析:如果公共關(guān)鍵字在一個關(guān)系中是主關(guān)鍵字,那么這個公共關(guān)鍵字被稱為另一個關(guān)系的外鍵。由此可見,外鍵表示了兩個關(guān)系之間的相關(guān)聯(lián)系。以另一個關(guān)系的外鍵作主關(guān)鍵字的表被稱為豐表,具有此外鍵的表破稱為主表的從表。外鍵又稱作外關(guān)鍵字。14、若一個函數(shù)的原型為“int*Xfunl(intx,int&y,charz);”,則該函數(shù)的返回值類型為()。A、int*B、intC、int&D、char標準答案:A知識點解析:由“int*Xfunl(intx,int&y,charz);”的定義可知,其返回值為指向int指針的函數(shù)。15、已知函數(shù)fun的原型為intfun(int,int,int);下列重載函數(shù)原型中錯誤的是()。A、charfun(int,int);B、doublefun(int,int,double);C、intfun(int,char*);D、floatfun(int,int,int);標準答案:D知識點解析:重載函數(shù)至少要在參數(shù)個數(shù)或參數(shù)類型上不同。而選項D中的函數(shù)與原函數(shù)只是函數(shù)類型不同,而其他完全相同(參數(shù)個數(shù)及類型),則不能作為重載函數(shù)來使用。16、下列字符串中不能作為C++標識符使用的是()。A、WHILEB、userC、_lvarD、9stars標準答案:D知識點解析:在C++中變量名的命名必須遵循一定的原則,其中之一即是第一個字符必須是字母或者下劃線。17、在下列函數(shù)原型中,可以作為類AA構(gòu)造函數(shù)的是(>。A、voidAA(int);B、intAA();C、AA(int)const;D、AA(int);標準答案:D知識點解析:此題考查的是構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)是類的一個特殊成員函數(shù),它與類同名,并且沒有返回值。選項A、B不符合要求。選項C中函數(shù)AA,會更新對象的數(shù)據(jù)成員。18、有如下4個語句:①cout<<’A’<A、①和③B、①和④C、②和③D、②和④標準答案:C知識點解析:此題考查C++流的使用。setfill()作用是設(shè)置填充字符;left是使輸出數(shù)據(jù)在指定寬度內(nèi)左對齊:right是使輸出數(shù)據(jù)在指定寬度內(nèi)右對齊。19、有如下程序:#include<iostream>#include<cstring>usingnamespacestd;classMyString{public:charstr[80];MyString(constchar*s){strcpy(str,s);}MyString&operator+=(MySringa){strcat(str,a.str);return*this;}};ostream&operator<<(ostream&s,constMyString&z){returns<<z.str;}intmain(){MyStringx(’’abe’’),y(’’ede’’);eout<<(x+=y)<<end1;return0;}運行這個程序的輸出結(jié)果是()。A、ahcB、CdeC、abCdeD、ahccde標準答案:D知識點解析:在類MyString中,定義了帶參數(shù)的構(gòu)造函數(shù)MyString(constchar*s),其作用是把s指向的字符串拷貝到字符組str中。在類中還對運算+=進行重載定義,其作用是把字符串s仃和a相連接并賦給str,所以在主函數(shù)中執(zhí)行x+=y時,結(jié)果為abccde。20、有如下程序#include<iostream>#include<iomanip>usingnamespacestd;classMyClass{public:MyClass(){cout<<’A’;}MyClass(chafc){cout<<c;}~MyClass(){cout<<’B’;}};intmain(){MyClassp1,*p2;p2=newMyClass(’X’);deletep2;return0;}執(zhí)行這個程序屏幕上將顯示輸出()。A、ABXB、ABXBC、AXBD、AXBB標準答案:D知識點解析:此題考查的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。構(gòu)造函數(shù)在對象被創(chuàng)建的時候由系統(tǒng)自動調(diào)用,而析構(gòu)函數(shù)在對象的生存期即將結(jié)束的時候由系統(tǒng)自動調(diào)用。此題中,主程序在創(chuàng)建MayClass類的對象p1時,調(diào)用MayClass類的默認構(gòu)造函數(shù),輸出字母A;然后在創(chuàng)建*p2對象時,調(diào)用帶字母參數(shù)的構(gòu)造函數(shù),輸出字母X;語句deletep2:調(diào)用析構(gòu)函數(shù),輸出字母B;在主函數(shù)退出時,調(diào)用析構(gòu)函數(shù)清除對象p1,輸出字母B。21、有如下程序:#include<iostream>usingnamespacestd;classBook{public:Book(char*t=…""){strcpy(title,t);}private:chartitle[40];};classNovel:publicBook{public:Novel(char*t=""):Book(t){}char*Category()const{return"文學(xué)";}};intmain(){Book*pb;pb=newNovel();cout<<pb->Category();return0;}若程序運行時輸出結(jié)果是“文學(xué)”,則劃線處缺失的語句是()。A、char*Category();B、char*Category()const;C、virtualchar*Category()const;D、virtualchar*Category()const=0;標準答案:D知識點解析:根據(jù)程序運行的結(jié)果為:文學(xué),說明程序執(zhí)行了派生類Novel中的成員函數(shù)*Category()const{return"文學(xué)";),所以在基類Book中要把函數(shù)*Category()const定義為純虛函數(shù)。22、若磁盤上已存在某個文本文件,其全路徑文件名為d:\ncre\test.txt,下列語句中不能打開該文件的是()。A、ifstreamfile(’’d:\ncre\test.txt’’);B、ifStreamfile(’’d:\ncre\\test.txt’’);C、ifstreamfile;file.open(’’d:\\ncre\\test.txt’’);ifstream(’’d:\\ncre\\test.txt’’);D、ifstream*pFile=new標準答案:A知識點解析:此題考查的是轉(zhuǎn)義字符。在字符常量或字符串中,以“\”開頭的一系列字符被看做是一個轉(zhuǎn)義字符。要表示“\”字符,必須使用轉(zhuǎn)義字符“\\”。國家二級C++機試(選擇題)模擬試卷第4套一、選擇題(本題共24題,每題1.0分,共24分。)1、下列敘述中正確的是A、線性表鏈式存儲結(jié)構(gòu)的存儲空間一般要少于順序存儲結(jié)構(gòu)B、線性表鏈式存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)的存儲空間都是連續(xù)的C、線性表鏈式存儲結(jié)構(gòu)的存儲空間可以是連續(xù)的,也可以是不連續(xù)的D、以上都不正確標準答案:C知識點解析:線性表的存儲分為順序存儲和鏈式存儲。在順序存儲中,所有元素所占的存儲空間是連續(xù)的。而在鏈式存儲的方式中,將存儲空間的每一個存儲結(jié)點分為兩部分,一部分用于存儲數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲下一個元素的存儲序號,稱為指針域。所以線性表的鏈式存儲方式比順序存儲方式的存儲空間要大一些。2、某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有1個,則該二叉樹的深度為(假設(shè)根結(jié)點在第1層)A、3B、4C、6D、7標準答案:D知識點解析:根據(jù)二叉樹的性質(zhì),度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。題目中的二叉樹的葉子結(jié)點為1,因此度為2的結(jié)點的數(shù)目為0,故該二叉樹為7層,每層只有一個結(jié)點。3、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個派生類私有繼承其基類,則該派生類對象不能訪問基類的保護成員B、派生類的成員函數(shù)可以訪問基類的所有成員C、基類對象可以賦值給派生類對象。D、如果派生類沒有實現(xiàn)基類的一個純虛函數(shù),則該派生類是一個抽象類標準答案:D知識點解析:如果派生類私有繼承基類,不能訪問基類中的私有成員,所以A)、B)是錯誤的。派生類是對基類的具體化,所以C)錯誤的。如果派生類沒有實現(xiàn)基類的一個純虛函數(shù),則該派生類是一個抽象類,即選擇D)。4、有以下程序,輸出結(jié)果()。#include<iostream>usingnamespacestd;classComplex{public:Complex(doubler=0,doublei=0):re(r),im(i){}doublerealoconst{returnre;}doubleimagoconst{returnim;}Complexoperator+(Complexc)const{returnComplex(re+c.re,im+c.im);}private:doublere,im;};intmain(){Complexa=Complex(1,1)+Complex(5);cout<<a.real()<<’+’<<a.imag()<<’i’<<endl;return0:}A、6+iB、2i+5C、6+1iD、1i+5標準答案:C知識點解析:由主函數(shù)入手,調(diào)用“Complexa=Complex(1,1)+Complex(5);”,實際是“Complexa=Complex(1,1)+Complex(5,0);”,調(diào)用“returnComplex(re+c.re,im+c.im):”結(jié)果為:6+1i。5、下面不屬于軟件需求分析階段主要工作的是()。A、需求變更申請B、需求分析C、需求評審D、需求獲取標準答案:A知識點解析:在軟件開發(fā)的過程中,應(yīng)該盡早的制定測試計劃,其中在需求分析階段制定系統(tǒng)測試計劃,在概要設(shè)計階段制定集成測計劃,在詳細設(shè)計階段制定單元測試計劃。6、下面不屬于軟件設(shè)計原則的是()。A、抽象B、模塊化C、自底向上D、信息隱藏標準答案:C知識點解析:軟件設(shè)計的基本原則包括抽象、信息隱藏、模塊化、局部化、確定性、一致性、完備性和可驗證性。7、下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是()。A、可封裝B、自頂向下C、模塊化D、逐步求精標準答案:A知識點解析:結(jié)構(gòu)化程序設(shè)計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。8、有三個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、除D、并標準答案:C知識點解析:從關(guān)系R、S和T的結(jié)構(gòu)可以得出關(guān)系T是由關(guān)系R、S經(jīng)過除運算后得到的。9、下列符號中,正確的C++標識符是()。A、enumB、100bitC、s—1D、_int標準答案:D知識點解析:此題考查的是C++語言中標識符的概念。標識符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個字符必須是字母或下劃線,中間不能有空格;標識符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個字符:標識符中的大小寫字母是不同的;定義標識符時不能采用系統(tǒng)的保留字。10、軟件測試的目的是A、發(fā)現(xiàn)程序中的錯誤B、修改程序中的錯誤C、避免程序中的錯誤D、發(fā)現(xiàn)和修改程序中的錯誤標準答案:A知識點解析:軟件測試的目的是:發(fā)現(xiàn)一些可以通過測試避免的開發(fā)風(fēng)險;實施測試來降低所發(fā)現(xiàn)的風(fēng)險;確定測試何時可以結(jié)束;在開發(fā)項目的過程中將測試看作是一個標準項目。11、關(guān)鍵字unsigned不能修飾的類型是()。A、charB、intC、floatD、longint標準答案:C知識點解析:實型常量指的是float和double兩種數(shù)據(jù)類型,而signed和unsigned只對整型數(shù)起作用,用于確定它們的數(shù)據(jù)范圍(例如16位系統(tǒng)中,一個signedint是-32768~32767,而unsignedint是0~65535)。unsigned對浮點數(shù)是無意義的。12、在一個抽象類中,一定包含有()。A、虛函數(shù)B、純虛函數(shù)C、模板函數(shù)D、重載函數(shù)標準答案:B知識點解析:擁有純虛函數(shù)的類叫做抽象類,所以抽象類中必然包含有虛函數(shù)。13、有如下程序:#includeusingnamespacestd;classA{public:virtualvoidf(){cout<<1;}voidg(){cout<<2;}};classB:publicA{public:virtualvoidf(){cout<<3;}voidg(){cout<<4;}};voidshow(A&a){a.f();a.g();}intmain(){Bb;show(b);return0;}運行時的輸出結(jié)果是()。A、12B、34C、14D、32標準答案:D知識點解析:在派生類classB中對基類中的虛擬成員函數(shù)virtualvoidf()和實函數(shù)voidg()進行了重新定義,在主函數(shù)中通過語句show(b);調(diào)用派生類中的虛函數(shù)virtualvoidf(){cout<<3;}輸出3,調(diào)用基類的實函數(shù)voidg(){cout<<2;}輸出2。所以選項D為正確答案。14、關(guān)于函數(shù)中的<返回類型>,下列表述中錯誤的是()。A、<返回類型>中有可能包含關(guān)鍵字intB、<返回類型>中有可能包含自定義標識符C、<返回類型>中有可能包含字符牛D、<返回類型>中可能包含[]標準答案:D知識點解析:<返回類型>又稱為函數(shù)類型,表示一個函數(shù)所計算(或運行)的結(jié)果值的類型.它可以是C++中已定義的數(shù)據(jù)類型,也可能是用戶自定義的數(shù)據(jù)類型,但是不能包含[],因為符號[]不是一個數(shù)據(jù)類型。15、規(guī)范化主要為克服數(shù)據(jù)庫邏輯結(jié)構(gòu)中的插入異常,刪除異常以及A、數(shù)據(jù)丟失的問題B、冗余度大的問題C、數(shù)據(jù)不一致的問題D、結(jié)構(gòu)不合理的問題標準答案:B知識點解析:規(guī)范化理論正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。16、有如下函數(shù)模板定義:Template<classT>Tfunc(Tx,Ty){returnx*x+y*y;}在下列對fuac的調(diào)用中,錯誤的是()。A、func(3,5);B、func(3.0,5.5);C、func(3,5.5);D、func<int>(3,5.5);標準答案:C知識點解析:此題考查的是函數(shù)模板的使用。引用模板函數(shù)和引用一般函數(shù)在語法形式上基本相同。需要注意的是說明一個函數(shù)模板后,當編譯系統(tǒng)發(fā)現(xiàn)有一個對應(yīng)的函數(shù)調(diào)用時,將根據(jù)實參中的類型來確認是否匹配函數(shù)模板中的對應(yīng)形參。本題C選項中,編譯系統(tǒng)從第一個參數(shù)“3”獲得信息“int”和從第二個參數(shù)獲得信息“double”兩者矛盾,錯誤;A、B選項正確;D選項中,函數(shù)名后的是模板實參表,編譯系統(tǒng)會將double型的形參“5.5”自動轉(zhuǎn)化成int類型。17、有如下程序:#inc1ude<iostream>usingnamespacestd;classPoint{intx,y;public:Point(intxl=0,int’yl=0):x(xl),y(yl){}intget(){returnx+y;}};classCirc1e{Pointcenter;intradius;public:Circ1e(intcx,intcy,intr):center(cx,cy),radius(r){}intget(){retumcenter.get()+radius;}};intmain(){Circ1ec(3,4,5);cout<<c.get()<<endl;return0:}運行時的輸出結(jié)果是()。A、5B、7C、9D、12標準答案:D知識點解析:根據(jù)類Point和類Circle的定義可知,類Circle的實例c(3,4,5)的成員函數(shù)c.get()返回值為3+4+5=12。18、有如下程序:#include<iostream>usingnamespacestd;intmain(){inti,s=0;for(i=1;s<20;i+=2)s+=i*i;cout<i<<end1;return0;}運行這個程序的輸出結(jié)果是()。A、3B、5C、7D、9標準答案:C知識點解析:在這段程序中for循環(huán)共執(zhí)行3次,每次循環(huán)變量i的值增2,在執(zhí)行第三次循環(huán)語句時,變量s的值等于25,大于20而退出循環(huán),此時再執(zhí)行循環(huán)變量i加2運算,所以最后變量i的值等于7。19、有如下類定義:ciassA{char*a:public:A0:a(0){}A(char*aa){//把aa所指字符串拷貝到a所指向的存儲空間a=_________;strcpy(a,aa);}~A()(delete[]a;}};橫線處應(yīng)填寫的表達式是()。A、newchar[strlen(aa)+1]B、char[strlen(aa)+1]C、char[strlen(aa)]D、newchar[sizeof(aa)一1]標準答案:A知識點解析:函數(shù)strlen(aa)返回字符串a(chǎn)a中字符的個數(shù),不包括末尾的空字符。所以在內(nèi)存空間創(chuàng)建字符數(shù)組a時,需要字符數(shù)組的長度是strlen(aa)+1。20、下列運算符函數(shù)中,肯定不屬于類Value的成員函數(shù)的是()。A、Valueoperator+(Value);B、Valueoperator-(Value,Value);C、Valueoperator*(int);D、Valueoperator/(Value);標準答案:B知識點解析:運算符作為非成員函數(shù)時,由于沒有隱含this指針,因此所有的操作數(shù)必須出現(xiàn)在參數(shù)表中。對于第二個選項,出現(xiàn)了兩個操作數(shù),必然是非成員函數(shù),但是對于其他三個選項,有可能都是要求兩個操作數(shù)的成員函數(shù)。21、在下列函數(shù)原型中,可以作為類從構(gòu)造函數(shù)的是()。A、voidAA(int);B、intAA0;C、AA(int)const;D、AA(int);標準答案:D知識點解析:此題考查的是構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)是類的一個特殊成員函數(shù),它與類同名,并且沒有返回值。選項A、B不符合要求。選項C中函數(shù)AA,會更新對象的數(shù)據(jù)成員。22、在C++中,用于實現(xiàn)運行時多態(tài)性的是()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、模板函數(shù)D、虛函數(shù)標準答案:D知識點解析:此題考查的是虛函數(shù)的概念。C++語言的多態(tài)性有兩種:函數(shù)重載和虛函數(shù)。虛函數(shù)只有在運行時才能被確定,稱為運行時多態(tài)。編譯時的多態(tài)是通過函數(shù)重載和模板實現(xiàn)的。23、若要對Data類中重載的加法運算符成員函數(shù)進行聲明,下列選項中正確的是()。A、Data+(Data);B、Dataoperator+{Data};C、Data+operator{Data};D、operator+(Data,Data);標準答案:B知識點解析:“+”是一個二元運算符,因此作為成員函數(shù)重載時參數(shù)表中只有一個參數(shù),對應(yīng)于第二個操作數(shù),而第一個操作數(shù)是對象本身。運算符函數(shù)的函數(shù)名是由運算符前加關(guān)鍵字operator構(gòu)成的。24、如果利用C++流進行輸入輸出,下面的敘述中正確的是()。A、只能借助于流對象進行輸入輸出B、只能進行格式化輸入輸出C、只能借助于cin和cout進行輸入輸出D、只能使用運算符>>和<<進行輸入輸出標準答案:A知識點解析:此題考查的知識點是C++流。利用C++流既可以進行有格式輸入輸出,也可以進行無格式輸入輸出,所以選項B錯誤;C++的4個預(yù)定義的流對象為:cin—標準輸入,cout—標準輸出,cerr—標準出錯信息輸出,clog-一帶緩沖的標準出錯信息輸出,選項C錯誤;C++流除了可以使用提取“>>”插入“<<”進行輸入輸出外,還可以通過流對象的一些成員函數(shù)進行輸入輸出,故選項D錯誤。國家二級C++機試(選擇題)模擬試卷第5套一、選擇題(本題共32題,每題1.0分,共32分。)1、算法的時間復(fù)雜度是指()。A、算法的長度B、執(zhí)行算法所需要的時間C、算法中的指令條數(shù)D、算法執(zhí)行過程中所需要的基本運算次數(shù)標準答案:D知識點解析:算法的時間復(fù)雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數(shù)來度量算法的工作量。2、在關(guān)系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()。A、連接碼B、關(guān)系碼C、外碼D、候選碼標準答案:D知識點解析:在關(guān)系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。3、檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。A、確認測試B、需求測試C、驗證測試D、路徑測試標準答案:A知識點解析:確認測試的任務(wù)是驗證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說明中確定的各種需求。4、數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。A、控制流B、加工C、存儲文件D、源和潭標準答案:A知識點解析:數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,它由一些特定的圖符構(gòu)成,包括4個方面,即加工、數(shù)據(jù)流、存儲文件、源和潭。5、對關(guān)系S和關(guān)系R進行集合運算,結(jié)果中既包含關(guān)系S中的所有元組也包含關(guān)系R中的所有元組,這樣的集合運算稱為()。A、并運算B、交運算C、差運算D、除運算標準答案:A知識點解析:關(guān)系的并運算是指,由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,其中包含兩個關(guān)系中的所有元組。6、下列選項中,不屬于數(shù)據(jù)管理員(DBA)職責(zé)的是()。A、數(shù)據(jù)庫維護B、數(shù)據(jù)庫設(shè)計C、改善系統(tǒng)性能,提高系統(tǒng)效率D、數(shù)據(jù)類型轉(zhuǎn)換標準答案:D知識點解析:數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、設(shè)計、維護、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計,具體地說是進行數(shù)據(jù)模式的設(shè)計:數(shù)據(jù)庫維護。DBA必須對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進行實施與維護;改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。7、關(guān)于虛函數(shù),以下說法正確的是()。A、若在重定義虛函數(shù)時使用了virtual,則該重定義函數(shù)還是虛函數(shù)B、虛函數(shù)不能聲明為友元C、子類必須重定義父類的虛函數(shù)D、虛函數(shù)不能是static的標準答案:D知識點解析:在C++中,虛函數(shù)可以是友元函數(shù),但不能是靜態(tài)成員。虛函數(shù)的重定義函數(shù),無論是否使用virtual關(guān)鍵字,仍然是虛函數(shù)。所以答案選擇D。8、下列關(guān)于純虛函數(shù)與抽象類的描述中,錯誤的是()。A、純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實現(xiàn)B、抽象類是指具有純虛函數(shù)的類C、一個基類中說明具有純虛函數(shù),該基類的派生類一定不再是抽象類D、抽象類只能作為基類來使用,其純虛函數(shù)的實現(xiàn)由派生類給出標準答案:C知識點解析:純虛函數(shù)是在聲明虛函數(shù)時被“初始化”為0的虛函數(shù)。不定義對象而只作為一種基本類型用作繼承的類,稱為抽象類。凡是包含純虛函數(shù)的類都是抽象類。抽象類的作用是作為一個類族的共同基類。9、將x+y*z中的“+”用成員函數(shù)重載,“*”用友元函數(shù)重載應(yīng)寫為()。A、operator+(operator*(y,z))B、x.operator+(operator*(y,z))C、x.operator+(x*(y,z))D、x+(operator*(y,z))標準答案:B知識點解析:在定義了重載運算符后的函數(shù)后,函數(shù)operator+重載了運算符“+”。如果在類以外的其他地方定義了一個函數(shù),在類體中用friend對該函數(shù)進行聲明,此函數(shù)就稱為本類的友員函數(shù)?!?”用友元函數(shù)重載就是運算符函數(shù)不作為成員函數(shù),而把它放在類外,“木"被改寫為“operator*”。“+”為成員函數(shù)重載,x.operator+。所以X+y*z被改寫為“x.operator+(operator*(y,z))”。10、有以下程序,在橫線應(yīng)添加()。#include<iostream>usingnarnespacestd;classTestClass{public:TestClassintn){number=n;}______∥拷貝構(gòu)造函數(shù)~TestClass(){}private:intnumber;};TestClassfun(TestClassp){TestClasstemp(p);returntemp;}intmain(){TestClassobj1(10),obj2(0);TestClassobj3(obj1);obj2=fun(obj3);return0;}A、TestClass(TestClass&other){number=other,number;}B、TestClass(TestClassother){number=other.number;}C、TestClass(TestClms&other){number;}D、TestClass(&other){number=other.number;}標準答案:A知識點解析:拷貝構(gòu)造函數(shù)也是構(gòu)造函數(shù),但它只有一個參數(shù),這個參數(shù)是本類的對象,即other,所以賦值操作將本類的參數(shù)other.number賦值給number;而且采用對象的引用的形式,也就是&other。11、如果表達式一x/y中的“一”和“/”是作為友元函數(shù)重載的運算符,采用運算符函數(shù)調(diào)用格式,該表達式還可表示為()。A、operator/(x.operato--(),y);B、operator/(operator--(x),y);C、x.operator--().operator/(y);D、y.operator/(operator--(x));標準答案:B知識點解析:運算符重載實際上時函數(shù)的重載。重載運算符的一般格式:函數(shù)類型operator運算符名稱(參數(shù)表)。重載運算符之后:函數(shù)operator+重載運算符“+”。“一”重載為“operator-;”,“/”重載為“operator/”。另外重載不能改變運算的優(yōu)先級,-x/y計算-x后,除以y,所以表達式改寫為:operator/(operator-(x),y);。12、將以下程序?qū)懗扇窟\算表達式是()。if(x<y)min=x;elserain=y;A、min=(x>y)?x:yB、min=(x<y)?x:yC、min=(x<y)x:yD、min=(x<y)?x,y標準答案:B知識點解析:題目中給出的程序是求x,y中的小值。即如果x小于y,那么min=x,否則min=y。條件運算符為“?:”,(x<y)?x:y是當x小于y時取x,否則取y。13、定義如下枚舉類型enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2};則下列語句正確的是()。A、表達式Wednesday=Friday的值是trueB、Dayday;day=3C、Dayday;day=Mondday+3D、Dayday;day=Tuesday+10標準答案:A知識點解析:enum<枚舉類型名>{<枚舉元素表>):其中:關(guān)鍵詞enum表示定義的是枚舉類型,枚舉類型名由標識符組成,而枚舉元素表由枚舉元素或枚舉常量組成。其中enum{Monday,Tuesday,Wednesday,Thrusday,F(xiàn)riday=2}的值由0開始,即0,1,2,3。D中的本題中的枚舉類型中的數(shù)據(jù)值Wednesday為2,而Friday的值賦值為2,所以判斷Wednesday等于Friday的表達式值為真,即true。即選擇A。14、下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為()。for(inti(0),j(10);i=j=4;i++,j--)A、0B、1C、4D、無限標準答案:D知識點解析:循環(huán)條件i=j=4;是個賦值語句,使得i,j的值非0,所以是死循環(huán)。15、下述關(guān)于開關(guān)語句的描述中,正確的是()。A、開關(guān)語句中default子句可以沒有,也可以有一個B、開關(guān)語句中每個語句序列中必須有break語句C、開關(guān)語句中default子句只能放在最后D、開關(guān)語句中case子句后面的表達式可以是整型表達式標準答案:A知識點解析:在switch語句中default的位置不是固定在最后的位置,同時default也是可以省略。16、下列存儲類標識符中,可見性與存在性不一致的是()。A、外部類B、自動類C、內(nèi)部靜態(tài)類D、寄存器類標準答案:C知識點解析:可見性是函數(shù)內(nèi)部,存在整個程序中,第二次調(diào)用值不變。17、下述靜態(tài)數(shù)據(jù)成員的特征中,錯誤的是()。A、說明靜態(tài)數(shù)據(jù)成員時前面要加修飾符staticB、靜態(tài)數(shù)據(jù)成員要在類體外進行初始化C、引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運算符D、靜態(tài)數(shù)據(jù)成員不是所有對象所共用的標準答案:D知識點解析:靜態(tài)數(shù)據(jù)成員是在類裝載的時候就分配了內(nèi)存空間,而類的成員變量是在生成對象時分配內(nèi)存空間。所以只要類裝載了,就可以用類名訪問靜態(tài)數(shù)據(jù)成員。事實上,該類的所有對象都只保存類靜態(tài)數(shù)據(jù)成員的引用,它們都指向同一塊內(nèi)存區(qū)域。18、以下程序的執(zhí)行結(jié)果是()。#include<iostream.h>inta[8]={1,2,3,4,5,6,7};voidfun(int*pa,intn);voidmain(){intm=8;fun(a,m);cout<<a[7]<<end1;}voidfun(int*pa,intn){for(intI=0;I<n-1;I++)*(pa+7)+=*(pa+I);}A、0B、1C、4D、28標準答案:D知識點解析:voidfun(int*pa,intn)函數(shù)定義的功能就是把數(shù)組的每個元素的值加到元素pa[7]中,也就是數(shù)組的元素之和放在a[7]中存儲,所以結(jié)果28。19、以下程序段是函數(shù)返回a所指數(shù)組中最大的值所在的下標值,橫線處的語句為()。fun(int*a,intn){intid=0,k;k=j;for(i=j;i<n;i++)if(a[i]>a[k])_____;return(k);}A、k=iB、k=jC、i=jD、i=n標準答案:A知識點解析:函數(shù)fun中首先定義整型變量k用來存放返回最大值的下標,并將其首先指向第一個元素,即k=j。然后在for循環(huán)中依次將當前元素a[i]與標識為最大值的元素進行比較,如果當前元素大于這個標識元素,那么將最大值標識為當前元素,即k=i。20、在C++程序中,如果要求通過函數(shù)來實現(xiàn)一種簡單的功能,并且要求盡可能加快程序執(zhí)行速度,則應(yīng)該選用()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸調(diào)用D、嵌套調(diào)用標準答案:A知識點解析:此題考查的是內(nèi)聯(lián)函數(shù)的相關(guān)知識點。C++引入內(nèi)聯(lián)函數(shù)是用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版活動板房施工協(xié)議標準格式版B版
- 2025年度消防設(shè)施安裝與調(diào)試服務(wù)合同范本3篇
- 2025年度國際文化傳播合作合同2篇
- 二零二五年度公寓房買賣及智能家居娛樂服務(wù)合同3篇
- 2024年鋼筋混凝土擋土墻施工協(xié)議范本版B版
- 課題申報書:鄉(xiāng)村兒童學(xué)校生活的集體記憶及其當代價值轉(zhuǎn)化研究
- 2025年度物業(yè)公司小鎮(zhèn)景區(qū)管理合同3篇
- 2024版大數(shù)據(jù)服務(wù)提供協(xié)議范本-大數(shù)據(jù)安全解決方案3篇
- 2024幼兒園消防安全
- 2025年度桉樹林木砍伐與生態(tài)保護責(zé)任承包協(xié)議3篇
- 公務(wù)員考試申論電子教材及國家公務(wù)員考試申論電子教材
- 度假村開發(fā)方案
- 廣東省惠州市2022-2023學(xué)年高一上學(xué)期期末考試物理試題(含答案)
- 遼寧省丹東市2022-2023學(xué)年八年級上學(xué)期末數(shù)學(xué)期末試卷(含答案)
- 2023年政府項目申報專員年度總結(jié)及下一年規(guī)劃
- 中學(xué)燃氣鍋爐事故應(yīng)急預(yù)案
- 公租房續(xù)租申請書范文示例
- 小學(xué)各項制度執(zhí)行情況總結(jié)
- 2023-2024學(xué)年江蘇省徐州市九年級(上)期中物理試卷
- 搬運裝卸服務(wù)外包投標方案(技術(shù)標)
- 急性腎衰竭屬于中醫(yī)學(xué)“癃閉”范疇5種常用中成藥辨證施治方案
評論
0/150
提交評論