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

下載本文檔

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

文檔簡介

國家二級(jí)(C++)機(jī)試模擬試卷14(共9套)(共364題)國家二級(jí)(C++)機(jī)試模擬試卷第1套一、選擇題(本題共38題,每題1.0分,共38分。)1、在面向?qū)ο蠓椒ㄖ?,不屬?對(duì)象"基本特點(diǎn)的是()。A、一致性B、分類性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象有如下一些基本特點(diǎn):標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性好。所以選擇A)。2、下列運(yùn)算符中,不能被重載的是()。A、&&B、!=C、.D、++標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++不能重載的運(yùn)算符只有5個(gè),即"."、".*"、"::"、"?:"、"sizeof",故本題答案為C。3、有如下程序:#includeusingnamespacestd;classBase{public:voidoutput(){cout<<1;}virtualvoidPrint(){cout<<′B′;}};classDerived:publicBase{public:voidoutput(){cout<<2;}voidPrint(){cout<<′D′;}};intmain(){Base*ptr=newDerived;ptr->output();ptr->Print();deleteptr;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、1BB、1DC、2BD、2D標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù),本題中定義了一個(gè)指向派生類對(duì)象的基類指針ptr,執(zhí)行ptr->output后,會(huì)執(zhí)行基類的output函數(shù),輸出1,由于Print是虛函數(shù),所以ptr->Print()會(huì)執(zhí)行派生類的Print,即輸出D,所以本題答案為B。4、有三個(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)解析:自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以根據(jù)T中元組可以判斷R和S做的是自然連接操作。5、有如下類定義和變量定義:classA{public:A(){data=0;}~A(){}intGetData()const{returndata;}voidSetData(intn){data=n;}private:intdata;};constAa;Ab;下列函數(shù)調(diào)用中錯(cuò)誤的是A、a.GetData();B、a.SetData(10);C、b.GetData();D、b.SetData(10);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查常對(duì)象,如果一個(gè)對(duì)象被定義為常對(duì)象,那么它不能調(diào)用該對(duì)象的非const型的成員函數(shù),所以B選項(xiàng)錯(cuò)誤,a為常對(duì)象,調(diào)用了SetData這個(gè)非const型的成員函數(shù)。6、下列關(guān)于模板形參的敘述中,錯(cuò)誤的是A、模板形參表必須在關(guān)鍵字template之后B、模板形參表必須用括弧()括起來C、可以用class修飾模板形參D、可以用typename修飾模板形參標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查模板的定義,使用的括號(hào)為<>,所以B選項(xiàng)錯(cuò)誤。7、下列選項(xiàng)中,正確的C++標(biāo)識(shí)符是A、student-3B、_3studentC、3studentD、student3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:用來表示變量、符號(hào)常量、函數(shù)、數(shù)組類型等實(shí)體名字的有效字符序列稱為標(biāo)識(shí)符,標(biāo)識(shí)符由字母、數(shù)字、和下劃線3種字符組成,且第一個(gè)字符必須為字母或者下劃線,只有B選項(xiàng)正確。8、下列關(guān)于類的析構(gòu)函數(shù)的敘述中,錯(cuò)誤的是A、定義析構(gòu)函數(shù)時(shí)不能指定返回值B、析構(gòu)函數(shù)的函數(shù)名就是類名前加上字符~C、析構(gòu)函數(shù)可以重載D、在一個(gè)類中如果沒有定義析構(gòu)函數(shù),系統(tǒng)將自動(dòng)生成一個(gè)析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查類的析構(gòu)函數(shù)的定義,析構(gòu)函數(shù)(destructor)與構(gòu)造函數(shù)相反,當(dāng)對(duì)象脫離其作用域時(shí)(例如對(duì)象所在的函數(shù)已調(diào)用完畢),系統(tǒng)自動(dòng)執(zhí)行析構(gòu)函數(shù)。析構(gòu)函數(shù)往往用來做"清理善后"的工作(例如在建立對(duì)象時(shí)用new開辟了一片內(nèi)存空間,應(yīng)在退出前在析構(gòu)函數(shù)中用delete釋放)。以C++語言為例,析構(gòu)函數(shù)名也應(yīng)與類名相同,只是在函數(shù)名前面加一個(gè)波浪符~,例如~stud(),以區(qū)別于構(gòu)造函數(shù)。它不能帶任何參數(shù),也沒有返回值(包括void類型)。只能有一個(gè)析構(gòu)函數(shù),不能重載。如果用戶沒有編寫析構(gòu)函數(shù),編譯系統(tǒng)會(huì)自動(dòng)生成一個(gè)缺省的析構(gòu)函數(shù),它也不進(jìn)行任何操作。所以C選項(xiàng)錯(cuò)誤。9、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是A、iostreamB、fstreamC、strstreamD、cstdlib標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:iostream通用I/O流類和其他I/O流的基類;fstream類用來對(duì)文件流進(jìn)行操作,fstream類的頭文件是fstream.h:stxstream類同時(shí)可以支持C風(fēng)格的串流的輸入輸出操作iomanip是I/O流控制頭文件,就像c中的格式化輸出一樣。10、有如下程序段:inti=1;intj=4;intmain(){intj=i,i=8;cout<A、14B、81C、88D、18標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序首先在main函數(shù)之前定義兩個(gè)int型全局變量i、j,并賦予初始值i=1,j=4;在main函數(shù)中又定義了兩個(gè)int型局部變量i、j,并使用全局變量i初始化局部變量j,使用數(shù)值8初始化局部變量i,所以局部變量j=1,局部變量i=8;由于在命名空間中,局部變量會(huì)覆蓋同名的全局變量,所以輸出的i、j都是局部變量,輸出結(jié)果為81,答案為B。11、有如下類定義:classB{private:voidfun1(){}protected:voidfun2(){}public:voidfun3(){}};classD:publicB{protected:voidfun4(){}};若obj是類D的對(duì)象,則下列語句中正確的是A、obj.fun1();B、obj.fun2();C、obj.fun4();D、obj.fun3();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對(duì)基類成員的訪問權(quán)限由基類成員的訪問標(biāo)識(shí)和類派生列表中的訪問標(biāo)識(shí)共同決定的,類D公有繼承類B,所以類B中成員函數(shù)fun1對(duì)類D不可見;成員函數(shù)fun2為類D的protected成員;成員函數(shù)fun3為類D的public成員;綜上所述fun1,fun2,fun4對(duì)類D對(duì)象obj均不可見,fun3對(duì)obj可見,答案為D。12、某二叉樹的前序序列為ABCD,中序序列為DCBA,則后序序列為A、BADCB、DCBAC、CDABD、ABCD標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二叉樹遍歷可以分為3種:前序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹之前)、中序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹兩者之間)、后序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹之后)。本題中前序序列為ABCD,中序序列為DCBA,可知D為根結(jié)點(diǎn),ABC為左側(cè)結(jié)點(diǎn),C為D左子結(jié)點(diǎn),A為B子結(jié)點(diǎn),故后序序列為DCBA,故B選項(xiàng)正確。13、下列關(guān)于函數(shù)參數(shù)的敘述中,錯(cuò)誤的是A、函數(shù)的實(shí)參與形參應(yīng)該一一匹配B、定義函數(shù)時(shí)必須給出函數(shù)的實(shí)參C、函數(shù)形參可以看做函數(shù)的局部變量D、C++中可以為形參指定默認(rèn)值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)定義時(shí),形參列表若不為空,需要給出函數(shù)的形參;調(diào)用函數(shù)時(shí),參數(shù)列表若不為空,必須給出函數(shù)的實(shí)參;選項(xiàng)A、C、D正確,選項(xiàng)B錯(cuò)誤;答案為B。14、有如下類定義:classBase{intm;public:intn;protected:intp;};classDerived:privateBase{intk;public:voidf();};則允許成員函數(shù)f訪問的數(shù)據(jù)成員的個(gè)數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:私有繼承中,基類的所有成員(除了private成員)在派生類中為private成員;另外C++中,class關(guān)鍵字定義的類,默認(rèn)的訪問級(jí)別為private;題目中Derived以private方式繼承Base,所以Derived中private成員有:n、p、k,沒有public和protected成員,成員函數(shù)f可以訪問Derived的private成員、public成員和protected成員,答案為C。15、下面描述不屬于軟件特點(diǎn)的是A、軟件是一種邏輯實(shí)體,具有抽象性B、軟件在使用中不存在磨損、老化問題C、軟件復(fù)雜性高D、軟件使用不涉及知識(shí)產(chǎn)權(quán)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件具有以下特點(diǎn):軟件是一種邏輯實(shí)體,具有抽象性;軟件沒有明顯的制作過程;軟件在使用期間不存在磨損、老化問題;對(duì)硬件和環(huán)境具有依賴性;軟件復(fù)雜性高,成本昂貴;軟件開發(fā)涉及諸多的社會(huì)因素,如知識(shí)產(chǎn)權(quán)等。故選項(xiàng)D正確。16、下列運(yùn)算符中,不能作為成員函數(shù)重載的是A、+B、=C、<<(流運(yùn)算符)D、||標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:流運(yùn)算符"<<"不能重載為類的成員函數(shù),因?yàn)橐坏┰摬僮鞣剌d為類的成員函數(shù),那么左操作數(shù)將只能是該類類型的對(duì)象,這樣的用法與正常I/O使用方式相反。為了支持正常用法,左操作數(shù)必須為ostream類型。但是,標(biāo)準(zhǔn)庫中的類是不能人為添加成員的,答案為C。17、有下列類模板聲明中,出現(xiàn)語法錯(cuò)誤的是A、templateclassA;B、templateclassA;C、templateclassA;D、templateclassA;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在類模板聲明中,每個(gè)模板類型形參前面都必須用關(guān)鍵字class和typename來修飾;選項(xiàng)D錯(cuò)誤,答案為D。18、設(shè)變量x和y為整型變量,若有函數(shù)調(diào)用為"fun(&x,&y)",則下列選項(xiàng)中,能夠作為函數(shù)fun原型聲明的是A、voidfun(int&a,int&b);B、voidfun(int&a,int*b);C、voidfun(int*a,int&b);D、voidfun(int*a,int*b)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:fun(&x,&y),函數(shù)調(diào)用參數(shù)列表中傳遞的是變量x,y的地址,所以函數(shù)原型聲明的形參列表中參數(shù)應(yīng)該是兩個(gè)整型變量地址,A、B、C選項(xiàng)中都包含引用傳遞,不正確;答案為D。19、有如下類聲明:classPam{intk;public:Pam(intn):k(n){}voidshow()const;};若要在類體外給出成員函數(shù)show的定義,下列定義中正確的是A、voidshow()const{cout<B、voidshow()const{cout<C、voidPam::show()const{cout<D、voidPam::show()const{cout<標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在類定義體外定義成員函數(shù),必須指定成員函數(shù)的作用域,因此需要在使用類名和作用域運(yùn)算符來修飾函數(shù)名,答案為C。20、耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。A、提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性B、降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性C、耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度D、內(nèi)聚性是指模塊間互相連接的緊密程度標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A)錯(cuò)誤,B)正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度,所以C)與D)錯(cuò)誤。21、有如下頭文件: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ù)中訪問類的非靜態(tài)成員時(shí),編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù),而不必一定寫上this。所以本題答案為C。22、C++系統(tǒng)預(yù)定義了4個(gè)用于標(biāo)準(zhǔn)數(shù)據(jù)流的對(duì)象,下列選項(xiàng)中不屬于此類對(duì)象的是()。A、coutB、cinC、cerrD、cset標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++標(biāo)準(zhǔn)數(shù)據(jù)流的對(duì)象分別是cout、cin、cerr、clog,所以本題答案為D。23、下列關(guān)于運(yùn)算符重載的敘述中正確的是A、跟普通函數(shù)一樣,可以為重載的運(yùn)算符函數(shù)的參數(shù)設(shè)置默認(rèn)值B、通過重載,可以改變一個(gè)運(yùn)算符原有的優(yōu)先級(jí)和操作數(shù)個(gè)數(shù)C、只能重載C++中已經(jīng)有的運(yùn)算符,不能定義新運(yùn)算符D、C++中已有的運(yùn)算符都可以重載標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查運(yùn)算符重載,重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);不能改變運(yùn)算符的優(yōu)先級(jí)別;不能改變運(yùn)算符的結(jié)合性;重載運(yùn)算符的函數(shù)不能有默認(rèn)值,否則就改變了運(yùn)算符參數(shù)的個(gè)數(shù);不能定義新的運(yùn)算符,某些運(yùn)算符不能重載。所以答案為C。24、有如下程序:#includeusingnamespacestd;classTV{public:TV(ints=41):size(s){}voidPrint(){cout<<’/’<<’N’<A、/N41/S54B、/N41/C54C、/C41/S54D、/C41/C54標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)相關(guān)知識(shí),本題中定義一個(gè)對(duì)象room1,執(zhí)行room1.Print時(shí)執(zhí)行構(gòu)造函數(shù)給size賦值為41,然后執(zhí)行voidPrint(){cout<<’/’<<’N’<25、下面描述中不屬于數(shù)據(jù)庫系統(tǒng)特點(diǎn)的是A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨(dú)立性高標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的特點(diǎn)為高共享、低冗余、獨(dú)立性高、具有完整性等,C錯(cuò)誤。26、有如下程序:#includeusingnamespacestd;classXA{inta;public:staticintb;XA(intaa):a(aa){b++;}~XA(){}intget(){returna;}};intXA::b=0;intmain(){XAd1(2),d2(3);cout<A、5B、6C、7D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查類的靜態(tài)數(shù)據(jù)成員,題目中定義了類的靜態(tài)數(shù)據(jù)成員b,當(dāng)執(zhí)行定義兩個(gè)對(duì)象時(shí)執(zhí)行構(gòu)造函數(shù),構(gòu)造函數(shù)執(zhí)行b++,所以b最終為2,而d1.get()為2,d2.get()為3,最終結(jié)果為7,C選項(xiàng)正確。27、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是A、iostreamB、fstreamC、strstreamD、cstdlib標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查文件流操作時(shí)使用需要包含的頭文件,屬于基礎(chǔ)知識(shí),B選項(xiàng)正確。28、下列選項(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。29、有如下類定義:classBase1{intm;public:Base(intm1):m(m1){}};classBase2{intn;public:Base(intn1):n(n1){}};classDerived:publicBase2,publicBase1{intq;public:Derived(intm1,intn1,intq1):q(q1),Base1(m1),Base2(n1){};};在創(chuàng)建一個(gè)Derived對(duì)象時(shí),數(shù)據(jù)成員m、n和q被初始化的順序是A、m、n、qB、n、m、qC、q、m、nD、q、n、m標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中,派生類構(gòu)造函數(shù)都是先調(diào)用基類構(gòu)造函數(shù),再根據(jù)聲明次序定義數(shù)據(jù)成員,所以Derived構(gòu)造函數(shù)的初始化列表中,最后初始化q;另外對(duì)于多繼承,派生類的構(gòu)造函數(shù)初始化列表中,基類構(gòu)造函數(shù)是按照基類在派生類的派生列表中出現(xiàn)的次序調(diào)用的;由于Derived類的派生列表中,Base2在前,所以應(yīng)該先調(diào)用Base2的構(gòu)造函數(shù);這樣Derived類中初始化順序?yàn)椋夯怋ase2、基類Base1、數(shù)據(jù)成員q;所以數(shù)據(jù)成員m、n、q的初始化順序?yàn)椋簄、m、q,答案為B。30、下列選項(xiàng)中,不是C++關(guān)鍵字的是A、intB、staticC、enumD、final標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:A選項(xiàng)中,int是定義整型數(shù)據(jù)的關(guān)鍵字;B選項(xiàng)中,static是定義靜態(tài)數(shù)據(jù)類型的關(guān)鍵字;C選項(xiàng)中enum是定義枚舉類型的關(guān)鍵字;答案為D。31、對(duì)長度為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。32、以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是()。A、publicB、staticC、protectedD、private標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類的成員訪問權(quán)限有3種:public(公用)、protected(保護(hù))、private(私有)。33、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹D、帶鏈棧標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:樹是簡單的非線性結(jié)構(gòu),所以二叉樹作為樹的一種也是一種非線性結(jié)構(gòu)。34、為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡單的函數(shù)定義為()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、函數(shù)模板標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時(shí),是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換,一般只將規(guī)模很小而使用頻繁的函數(shù)聲明為內(nèi)聯(lián)函數(shù),可以避免函數(shù)調(diào)用時(shí)間開銷,從而提高運(yùn)行速度。35、有如下程序:#include#includeusingnamespacestd;classPerson{public:Person(stringn):name(n){cout<<’P’;}private:stringname;};classDate{public:Date(inty=2012,intm=12,intd=21):year(y),month(m),day(d){cout<<’D’;}private:intyear,month,day;};classStudent:publicPerson{public:Student(stringn,inty,intm,intd,charc):birthday(y,m,d),sex(c),Person(n){cout<<’S’;}private:Datebirthday;charsex;};intmain(){Studentstu1("Zhang",1990,10,1,’F’);return0;}運(yùn)行時(shí)的輸出結(jié)果是A、SB、PSC、DPSD、PDS標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù),派生類的構(gòu)造函數(shù)初始化時(shí)按照參數(shù)列表初始化順序,所以先初始化Person(n),輸出P,然后依次輸出D和S,答案為D選項(xiàng)。36、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語句中輸出結(jié)果不是3的是A、cout<<*arr+2<B、cout<<*(arr+2)<C、cout<D、cout<<*arr<標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查以為數(shù)組和指針,一維數(shù)組名可以作為一個(gè)指針,指向數(shù)組的第一個(gè)元素,題目中要求輸出3,那么就是指向了數(shù)組的第三個(gè)元素,*arr表示數(shù)組的第一個(gè)元素1,所以輸出不出來3,所以選擇D選項(xiàng)。37、有如下程序:#include#includeusingnamespacestd;classTV{public:TV(ints=41):size(s){cout<<’C’;}~TV(){cout<<’D’;}voidPrint()const{cout<A、CCC54DDDB、CCC54DDC、C54D、54標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)相關(guān)知識(shí),本題中定義一個(gè)對(duì)象room1,輸出C,定義room2時(shí)輸出CC,然后執(zhí)行room3.Print時(shí),輸出54,最后執(zhí)行三個(gè)析構(gòu)函數(shù)輸出DDD,所以答案為A。38、執(zhí)行語句序列intn=0;for(inti=60;i>0;i-=3)n++;之后,變量n的值是A、20B、21C、60D、61標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查for循環(huán)語句,i每次減1,所以for循環(huán)執(zhí)行20次。選項(xiàng)A正確。二、基本操作題(本題共1題,每題1.0分,共1分。)39、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾prog1下的工程prog1,該工程中包含程序文件main.cpp,其中有Salary(“工資”)類和主函數(shù)main的定義。程序中位于每個(gè)“//ERROR****found****”之后的一行語句行有錯(cuò)誤,請(qǐng)加以改正。改正后程序的輸出結(jié)果應(yīng)為:應(yīng)發(fā)合計(jì):3500應(yīng)扣合計(jì):67.5實(shí)發(fā)工資:3432.5注意:只修改每個(gè)“//ERROR****found****”下的那一行,不要改動(dòng)程序中的其他內(nèi)容。#includeusingnamespacestd;classSalary{public:Salary(constchar*id,doublethe_base,doublethebonus,doublethe_tax)//ERROR**********found**********:thebase(base),thebonus(bonus),thetax(tax){staffid=newchar[strlen(id)+1];strcpy(staffid,id);}//ERROR**********found**********~Salary(){delete*staffid;)doublegetGrossPay()const{returnbase+bonus;}//返回應(yīng)發(fā)項(xiàng)合計(jì)doublegetNetPay()const{returngetGrossPay()_tax;}//返回實(shí)發(fā)工資額private:char*staffid;//職工號(hào)doublebase;//基本工資doublebonus;//獎(jiǎng)金doubletax;//代扣個(gè)人所得稅};intmain(){Salarypay("888888",3000.0,500.0,67.50);cout<<"應(yīng)發(fā)合計(jì):"<標(biāo)準(zhǔn)答案:(1):base(the_base),bonus(the_bonus),tax(the_tax)(2)~Salary(){delete[]staff_id;}(3)cout<<"實(shí)發(fā)工資:"<知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)構(gòu)造函數(shù)的掌握情況,構(gòu)造函數(shù)的成員初始列表要把形參放在括號(hào)內(nèi)。(2)主要考查考生對(duì)析構(gòu)函數(shù)的掌握情況,析構(gòu)函數(shù)使用delete釋放指針,delete后要跟標(biāo)識(shí)符“[]”。(3)主要考查考生對(duì)成員函數(shù)調(diào)用的掌握情況,調(diào)用類的成員函數(shù)使用標(biāo)識(shí)符“.”,而不是作用域符“::”。三、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)40、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾pmj2下的工程pmj2,該工程中包含程序文件main.epp,其中有類Mammal(“哺乳動(dòng)物”)、類Elephant(“大象”)、類Nouse(“老鼠”)的定義和主函數(shù)main的定義。請(qǐng)?jiān)跈M線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述定義。此程序的正確輸出結(jié)果應(yīng)為:ELEPHANTMOUSE注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//:****found****”。#includeusingnamespacestd;enHMcategory{ENPTY,ELEPHANT,NOUSE};char*output[]={"ENPTY","ELEPHANT","NOUSE");classMammal{public:Nammal(char*str){//**********found**********name=new________strcpy(name,str);}virtualchar*NhoAmI()=0;virtual—Nammal(){delete[]name;}voidPrint(){cout<Print();deletepm;pm=newNouse("Nicky");pm->Print();deletepm;return0;}標(biāo)準(zhǔn)答案:(1)char[strlen(sir)+1];(2)Mammal(str)(3)retumoutput[MOUSE];(4)Elephant知識(shí)點(diǎn)解析:(1)主要考查分配空間,程序要給name分配空間,由下一條語句中strcpy(name,str)可知程序要把字符串str復(fù)制給name,因此要分配的空間大小為strlen(str)+1。(2)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,因?yàn)镋lephant類是Mammal類的派生類,所以其構(gòu)造函數(shù)要使用成員列表先對(duì)Mammal類初始化。(3)主要考查考生對(duì)枚舉類型的掌握,先看程序:enumcategory{EMPTY,ELEPHANT,MOUSE}。再參考Elephant類中的WhoAmI函數(shù):char*WhoAmI(){returnoutput[ELEPHANT];}。可知這里要填寫的返回語句為:retumoutput[MOUSE];。(4)主要考查考生對(duì)派生類的掌握,題目要求輸出:ELEPHANANTMOUSE可知,要先調(diào)用Elephant類的WhoAmI函數(shù),因此給指針pm分配Elephant類空間。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)41、請(qǐng)使用VC6或使用【答題】菜單打開考生目錄proj3下的工程文件pmj3,該工程中包含一個(gè)源程序文件proj3.cpp,其中定義了用于表示平面坐標(biāo)系中的點(diǎn)的類NyPoint和表示圓形的類NyCircle;程序應(yīng)當(dāng)顯示:(1,2),5,31.4159,78.5398但程序中有缺失部分,請(qǐng)按照以下提示,把缺失部分補(bǔ)充完整:(1)在“//**1******found****”的下方是構(gòu)造函數(shù)的定義,它用參數(shù)提供的圓心和半徑分別對(duì)cen和rad進(jìn)行初始化。(2)在“//**2******found****”的下方是非成員函數(shù)perimeter的定義,它返回圓的周長。(3)在“//**3******found****”的下方是友元函數(shù)area的定義,它返回圓的面積。注意:只在指定位置編寫適當(dāng)代碼,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“****found****”。//proj3.cpp#include#includeusingnamespacestd;classMyPoint{//表示平面坐標(biāo)系中的點(diǎn)的類doublex;doubley;public:MyPoint(doublex,doubley){this->x=x;this->y=y;}doublegetX()const{returnx;}doublegetY()const{returny;}voidshow()const{cout<<’(’<標(biāo)準(zhǔn)答案:(1)rad(r)(2)2*c.radius()(3)MyCirclea知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,使用成員列表初始化給rad賦初始值。(2)主要考查考生對(duì)成員函數(shù)的掌握,函數(shù)功能為返回圓c的周長。要返回圓的周長,應(yīng)利用公式PI*2*c.radius()完成。(3)主要考查考生對(duì)成員函數(shù)的掌握,因?yàn)楹瘮?shù)功能為返回圓a的面積,所以函數(shù)的形參應(yīng)該為MyCirclea。國家二級(jí)(C++)機(jī)試模擬試卷第2套一、選擇題(本題共38題,每題1.0分,共38分。)1、下列敘述中正確的是()。A、棧是“先進(jìn)先出”的線性表B、隊(duì)列是“先進(jìn)后出”的線性表C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表,所以A錯(cuò)誤;隊(duì)列是先進(jìn)先出的線性表,所以B錯(cuò)誤;循環(huán)隊(duì)列是線性結(jié)構(gòu)的線性表,所以C錯(cuò)誤。2、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線性表,在主程序調(diào)用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),因此本題的答案為A。3、某二叉樹有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是()。A、10B、8C、6D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹的基本性質(zhì)3:在任意一顆二叉樹中,度為0的葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè),所以本題中是5+1=6個(gè)。4、下列排序方法中,最壞情況下比較次數(shù)最少的是()。A、冒泡排序B、簡單選擇排序C、直接插人排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:冒泡排序、直接插入排序與簡單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。5、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。A、編譯程序B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、匯編程序標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有c教務(wù)管理系統(tǒng)才是應(yīng)用軟件。6、下面敘述中錯(cuò)誤的是()。A、軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤B、對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟C、程序調(diào)試通常也稱為DebugD、軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,并不涉及改正錯(cuò)誤,所以選項(xiàng)A錯(cuò)誤。程序調(diào)試的基本步驟有:錯(cuò)誤定位、修改設(shè)計(jì)和代碼,以排除錯(cuò)誤、進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。程序調(diào)試通常稱為Debug,即排錯(cuò)。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計(jì)劃等文件。7、耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。A、提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性B、降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性C、耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度D、內(nèi)聚性是指模塊間互相連接的緊密程度標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊問互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度,所以C與D錯(cuò)誤。8、數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是()。A、數(shù)據(jù)庫設(shè)計(jì)B、數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)C、數(shù)據(jù)庫維護(hù)D、數(shù)據(jù)庫管理員培訓(xùn)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是數(shù)據(jù)庫的設(shè)計(jì)。9、有兩個(gè)關(guān)系R,S如下:由關(guān)系R通過運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為()。A、選擇B、投影C、插AD、連接標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:投影運(yùn)算是指對(duì)于關(guān)系內(nèi)的域指定可引入新的運(yùn)算。本題中s是在原有關(guān)系R的內(nèi)部進(jìn)行的,是由R中原有的那些域的列所組成的關(guān)系。所以選擇B。10、將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為()。A、屬性B、鍵C、關(guān)系D、域標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。11、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。A、long、double、intB、long、float、intC、int、double、longD、int、float、long標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查整型變量的類型和浮點(diǎn)變量的類型,42默認(rèn)為jnt型數(shù)據(jù),42后面加上L后,表示long型數(shù)據(jù),4.2默認(rèn)為double型數(shù)據(jù)。12、執(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)語句,--i表示用之前先減1,那么這個(gè)for循環(huán)語句只有50到2時(shí)才會(huì)輸出“*”,所以總共輸出49次。13、有如下程序段:inti=0,j=1;nt&r=i;//①r=j;//②int*p=&i;//③*p=&r;//④其中會(huì)產(chǎn)生編譯錯(cuò)誤的語句是()。A、④B、③C、②D、①標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查指針和引用。①為引用,使用正確;④中&r表示一個(gè)地址,而*p已經(jīng)是一個(gè)值了,不能將一個(gè)指針賦值給一個(gè)值,所以編譯錯(cuò)誤。14、下列符號(hào)中不屬于C++關(guān)鍵字的是()。A、friendB、namespaeeC、continueD、byte標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查C++關(guān)鍵字,屬于基本常識(shí),顯然D選項(xiàng)不正確。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ù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)甬?dāng)?shù)的實(shí)現(xiàn)。每種實(shí)現(xiàn)對(duì)應(yīng)著一個(gè)函數(shù)體,這些函數(shù)的名字相同,但是函數(shù)參數(shù)的類型不同,還允許參數(shù)的個(gè)數(shù)不同,但不能只有函數(shù)的返回值類型不同而參數(shù)的個(gè)數(shù)和類型相同的重載。所以本題答案為C。16、下列有關(guān)運(yùn)算符重載的敘述中,正確的是()。A、運(yùn)算符重載是多態(tài)性的一種表現(xiàn)B、C++中可以通過運(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。17、將前綴運(yùn)算符“--”重載為非成員函數(shù),下列原型中能正確用于類中說明的是()。A、Deer&operator--(int);B、Deeroperator--(Deer&,int);C、friendDeer&operator--(Deer&);D、friendDeeroperatoi--(Deer&,int);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:非成員函數(shù)重載用友元函數(shù)的形式實(shí)現(xiàn),“--”運(yùn)算符重載分為前置和后置兩種重載方式。用友元函數(shù)來實(shí)現(xiàn)“--”運(yùn)算符的重載時(shí),前置“--”運(yùn)算符的重載的一般格式為:friendoperator。--(ciassName&);后置++運(yùn)算符的重載的一般格式為:friendoperator--(ClassName&,int)。所以答案為D。18、有如下函數(shù)定義:voidfunc(inta,int&b){a++;b++;}若執(zhí)行代碼段:intx=0,y=1;func(x,y);則變量x和y的值分別是()。A、0和1B、1和1C、0和2D、1和2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)參數(shù)的3種傳遞方式:①將變量名作為形參和實(shí)參,即傳值方式;②傳遞變量指針;③引用形參。本題中實(shí)參x為傳值方式,所以x的值不會(huì)改變;y為引用形參,所以會(huì)改變。故本題答案為C。19、下列運(yùn)算符中,不能被重載的是()。A、&&B、!=C、.D、++標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++不能重載的運(yùn)算符只有5個(gè),即“.”、“.*”、“::”、“?:”、“sizeot”,故本題答案為C。20、關(guān)于運(yùn)算符重載,下列表述中正確的是()。A、C++已有的任何運(yùn)算符都可以重載B、運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型C、在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型D、可以通過運(yùn)算符重載來創(chuàng)建C++中原來沒有的運(yùn)算符標(biāo)準(zhǔn)答案:C知識(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)類型。故本題答案為C。21、下列關(guān)于類定義的說法中,正確的是()。A、類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B、類成員的缺省訪問權(quán)限是保護(hù)的C、數(shù)據(jù)成員必須被聲明為私有的D、成員函數(shù)只能在類體外進(jìn)行定義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類的成員的缺省訪問權(quán)限是私有的,數(shù)據(jù)成員可以是私有,可以是公用的,也可以是受保護(hù)的。類的成員函數(shù)可以在類內(nèi)定義。22、有如下程序:#includeusingnamespacestd;classA{public:staticinta;voidinit(){a=1;}A(inta=2){init();a++;}};intA::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。23、以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是()。A、publicB、staticC、protectedD、private標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類的成員訪問權(quán)限有3種:public(公用)、proteeted(保護(hù))、private(私有)。24、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯(cuò)誤的是()。A、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)B、如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)C、在建立派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)D、在銷毀派生類對(duì)象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在銷毀派生類對(duì)象時(shí),先調(diào)用派生類的析構(gòu)函數(shù),再凋用基類的析構(gòu)函數(shù)。25、派生類的成員函數(shù)不能訪問基類的()。A、公有成員和保護(hù)成員B、公有成員C、私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查3種繼承方式,其中,基類的私有成員始終為基類私有。所以派生類無法訪問基類的私有成員。本題答案為C。26、有如下類定義:classAA{inta;Public:AA(intn=0):a(n){}};classBB:publicAA{public:BB(intn)__________};其中橫線處的缺失部分是()。A、:a(n){}B、:AA(n){}C、{a(n);}D、{a=n;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問屬性。公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有,本題中若要給派生類繼承下來基類的私有成員賦值,那么只能調(diào)用基類的成員函數(shù)來對(duì)它賦值,成員變量默認(rèn)的訪問權(quán)限為私有,即a為私有變量。所以本題答案為B。27、有如下程序:#includeusingnamespacestd;classtest{private:inta;public:test(){cout<<”constructor”<A、3B、constructorC、copyconstructorD、3destructordestructordestructor標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù)以及析構(gòu)函數(shù),本題中定義了一個(gè)對(duì)象A(3),對(duì)象帶著參數(shù),所以執(zhí)行帶參數(shù)的構(gòu)造函數(shù),輸出3,然后執(zhí)行析構(gòu)函數(shù),輸出destructor。所以本題答案為D。28、若有如下類聲明:classMyClass{public:MyClass(){tout<<1;}};執(zhí)行下列語句MyClassa,b[2],*p[2];程序的輸出結(jié)果是()。A、11B、111C、1111D、11111標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù),題目中定義一個(gè)對(duì)象a以及對(duì)象數(shù)組b[2],共執(zhí)行3次構(gòu)造函數(shù),對(duì)象指針不調(diào)用構(gòu)造函數(shù)。所以本題答案為B。29、有如下程序:#includeusingnamespacestd;classPoint{public:staticintnumber;public:Point();number++;}~Point(){number--;}};intPoint::number=0;intmain(){Point*ptr;PointA,B;;Point*ptr_point=newPoint[3];ptr=ptr_point;}PointC:cout<A、3B、4C、6D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù),題目中定義一個(gè)對(duì)象A、B以及對(duì)象數(shù)組Point[3],又定義了對(duì)象C,共執(zhí)行6次構(gòu)造函數(shù),number變?yōu)榱?,所以本題答案為C。30、有如下程序:#ineludeusingnamespacestd;classSample{friendlongfun(SampleS);public:Sample(longa){x=a;}private:longx;};longfun(Samples){if(s.x<2)return1;returns.x*fun(Sample(s.x-1));}intmain(){intsum=0;for(inti=0;i<6;i++){sum+=fun(Sample(i));}cout<A、120B、16C、154D、34標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù),當(dāng)i=0、1時(shí),fun(sample(i))為1;當(dāng)i=2時(shí),fun(sample(i))為2;當(dāng)i=3時(shí),fun(Sample(i))為6;當(dāng)i=4時(shí),fun(Sample(i))為24;當(dāng)i=5時(shí),fun(Sample(i))為120。所以總和為154。31、有如下程序:classBase{public:intdata;};classDerivedl:publicBase{};classDerived2:protectedBase{};intmain(){Derivedld1;Derived2d2;d1.data=0;//①d2.data=0;//②return0;}下列關(guān)于程序編譯結(jié)果的描述中,正確的是()。A、①②皆無編譯錯(cuò)誤B、①有編譯錯(cuò)誤,②無編譯錯(cuò)誤C、①無編譯錯(cuò)誤,②有編譯錯(cuò)誤D、①②皆有編譯錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查公用繼承和保護(hù)繼承對(duì)基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有。在受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有。本題中Derivedl公用繼承Base,所以①編譯正確,Derived2保護(hù)繼承Base,所以②編譯不正確。32、有如下程序:#includeusingnamespaeestd;classA{public:A(inti){x=i;}voiddispa(){cout<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。33、有如下程序:#includeusingnamespacestd;classMusic{public:voidsetTitle(char*str){strcpy(title,str);}protected:chartype[10];private:chartitle[20];};classJazz:publicMusic{public:voidset(char*str){strcpy(type,"Jazz");//①strcpy(title,str);//②}};下列敘述中正確的是()。A、程序編譯正確B、程序編譯時(shí)語句①出錯(cuò)C、程序編譯時(shí)語句②出錯(cuò)D、程序編譯時(shí)語句①和②都出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查公用繼承和保護(hù)繼承對(duì)基類成員的訪問屬性。公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有。保護(hù)成員不能被類外訪問,但是可以被派生類的成員函數(shù)訪問。Type成為派生類的保護(hù)成員,可以被派生類訪問,title仍為基類私有,派生類不能直接訪問。所以答案為C。34、有如下程序:#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();deletepb;return0;}若程序運(yùn)行時(shí)輸出結(jié)果是“文學(xué)”,則橫線處缺失的語句是()。A、char*Category();B、char*Category()const;C、virtualchar*Category()const;D、virtualchar*Category()const=0;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查純虛函數(shù)和抽象類,純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的函數(shù),包含純虛函數(shù)的類為抽象類,抽象類是不能被實(shí)例化的,但是可以定義指向抽象類數(shù)據(jù)的指針變量,當(dāng)派生類成為具體類后,就可以用這種指針指向派生類的對(duì)象,然后通過該指針調(diào)用虛函數(shù),實(shí)現(xiàn)多態(tài)性的操作。所以本題答案為D。35、如下函數(shù)模板:templateTsquare(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。36、下列函數(shù)模板的定義中,合法的是()。A、templateTabs(Tx){returnx<0?-x:x;}B、templateclassTabs(Tx){returnx<0.9-x:x;}C、templateTabs(Tx){returnx<0.9-x:x;}D、templateTabs(Tx){returnx<0.9-x:x;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查模板函數(shù)的基本概念,根據(jù)模板函數(shù)的定義,所以答案為A。37、在C++中,cin是一個(gè)()。A、類B、對(duì)象C、模板D、函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查流對(duì)象cin,屬于基礎(chǔ)知識(shí),cin是輸人流對(duì)象,負(fù)責(zé)從鍵盤獲取數(shù)據(jù),然后送到內(nèi)存。本題答案為B。38、下列控制格式輸入/輸出的操作符中,能夠設(shè)置浮點(diǎn)數(shù)精度的是()。A、setprecisiDnB、setwC、setfillD、showpoint標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:iomanip中定義的操縱符包括:setfill(ch)用ch填充空白、setprecision(n)將浮點(diǎn)精度置為n、setw(w)、讀寫w個(gè)字符的值showpoint設(shè)置小數(shù)點(diǎn)。國家二級(jí)(C++)機(jī)試模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流在程序流程圖中,用標(biāo)有名字的箭頭表示控制流。所以選擇C。2、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使川用goto語句,所以選擇A。3、軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件設(shè)計(jì)巾模塊劃分應(yīng)遵循的準(zhǔn)則是高內(nèi)聚低偶合、模塊大小規(guī)模適當(dāng)、模塊的依賴天系適當(dāng)?shù)?。模塊的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理,并進(jìn)一步保證以此為依據(jù)開發(fā)出的軟件系統(tǒng)可靠性強(qiáng),易于理解維護(hù),模塊之間的耦合應(yīng)盡可能的低,模塊的內(nèi)聚度應(yīng)盡可能的高。4、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、可行性分析報(bào)告B、軟件需求規(guī)格說明書C、概要設(shè)計(jì)說明書D、集成測試計(jì)劃標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C錯(cuò)誤,概要設(shè)汁說明書是總體設(shè)計(jì)階段產(chǎn)生的文檔,D錯(cuò)誤,集成測試計(jì)劃是在概要設(shè)計(jì)階段編寫的文檔。B正確,軟件需求規(guī)格說明書是后續(xù)工作作如沒汁、編碼等需要的重要參考文檔。5、算法的有窮性是指()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時(shí)間是有限的。6、對(duì)長度為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。7、下列關(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)行操作。8、在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:E-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把陶形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。9、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。A、并B、自然連接C、笛卡爾積D、交標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬埔性組,并且存結(jié)果中把重復(fù)的屬性列去掉,所以B錯(cuò)誤。笛卡爾積是用R集合中元素為第一元素,S集合中元素為第二元素構(gòu)成的有序?qū)?,所以C錯(cuò)誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R與關(guān)系S中取得相同的莢系組所以取得是交運(yùn)算,選擇D。10、設(shè)有表示學(xué)生選課的三張表,學(xué)生s(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號(hào),成績B、學(xué)號(hào),成績C、學(xué)號(hào),課號(hào)D、學(xué)號(hào),姓名,成績標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C。11、下列語句中,錯(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++語言的關(guān)鍵字,它限定一個(gè)變量不允許被改變。使川const在一定程度上可以提高程序的安全性和可靠性。限定符聲明變量只能被讀,必須初始化。B選項(xiàng)中沒有初始化,C選項(xiàng)為指向常鞋的指針,定義時(shí)初始化與否均可,如果是const*doublepoint形式,則為常指針,必須在定義時(shí)進(jìn)行初始化,A、C、D都正確12、有如下程序:intx=3:do{x-=2:cout<A、1B、30C、1-2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查do…while語句,執(zhí)行do…while語句時(shí),先執(zhí)行循環(huán)體內(nèi)的語句,然后判斷while中表達(dá)式的值,表達(dá)式為非零時(shí),返回最新執(zhí)行循環(huán)體語句。在本題中,先執(zhí)行循環(huán)體內(nèi)的語句,輸出,然后判斷表達(dá)式,為非零,且此時(shí)x為0;再次執(zhí)行循環(huán)體時(shí),輸出-2,然后判斷表達(dá)式為0,不執(zhí)行,退出,昕以答案為C。13、有如下程序:#includeusingnamespacestd;intmain(){int*p;*p=9;cout<<*Thevalueatp:"<<*p;return0;編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況是()。A、編譯時(shí)出現(xiàn)語法錯(cuò)誤,不能生成可執(zhí)行文件B、運(yùn)行時(shí)一定輸出:Thevalueatp:9C、運(yùn)行時(shí)一定輸出:Thevalueatp:*9D、運(yùn)行時(shí)有可能出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:先定義指針變量,然后給指針變量賦初值有三種情況:①用取地址運(yùn)算符“&”將變量地址賦給指針變量,如p=&a;②將.一個(gè)指針變量中的地址賦給另一個(gè)指針變量,如p=p1;③給指針變量賦空值0,如q=0,表示陔指針變量不指向任何變量。而不能用一個(gè)常量給指針變量賦初值,所以本題選D。14、if語句的語法格式可描述為:格式1:if(<條件>)<語句>或格式2:if(<條件>)<語句1>else<語句2>關(guān)于上面的語法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語句,例如ir(if(a==0)…)…B、<語句>部分可以是一個(gè)if語句,例如if(…)if(…)…C、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語句1>和<語句2>的位置,語句功能不變D、<語句>部分可以是一個(gè)循環(huán)語句,例如if(…)while(…)…標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if語句,if語句的條件部分不能嵌套if語句,所以A選項(xiàng)錯(cuò)誤;B選項(xiàng)就是if語句嵌套;C選項(xiàng)其實(shí)就是將判斷條件顛倒,然后執(zhí)行語句也顛倒,所以效果一樣;D選項(xiàng)也正確15、下列符號(hào)中,正確的C++標(biāo)識(shí)符是()。A、enumB、2bC、foo-9D、32標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查C++標(biāo)識(shí)符的命名規(guī)則,規(guī)定如下:①所有標(biāo)識(shí)符可以由字母、數(shù)字和下畫線組成,且必須以字母或下畫線開頭;②C++的關(guān)鍵字不能作為標(biāo)識(shí)符;③大、小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符,如mun和Mun。A選項(xiàng)是C++的關(guān)鍵字,B選項(xiàng)不能以數(shù)字開頭,C選項(xiàng)“-”不能用于組成標(biāo)識(shí)符。16、下列關(guān)于C++函數(shù)的說明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語句必須是relurn語句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)解析:一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后冉返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時(shí),是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換,而不是在定義在另一個(gè)函數(shù)體內(nèi),所以A選項(xiàng)錯(cuò)誤、函數(shù)可以沒有返回值,所以就不需要retum了,如果被調(diào)函數(shù)在調(diào)用函數(shù)之前已經(jīng)定義,那么就不需要聲明,所以C選項(xiàng)錯(cuò)誤,正確選項(xiàng)為D。17、運(yùn)算符重載是對(duì)已有的運(yùn)算符賦予多重含義,因此()。A、可以對(duì)基本類型(如int類型)的數(shù)據(jù),重新定義“+”運(yùn)算符的含義B、可以改變一個(gè)已有運(yùn)算符的優(yōu)先級(jí)和操作數(shù)個(gè)數(shù)C、只能重載C++中已經(jīng)有的運(yùn)算符,不能定義新運(yùn)算符D、C++中已經(jīng)有的所有運(yùn)算符都可以重載標(biāo)準(zhǔn)答案:C知識(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)類型。故本題答案為C。18、下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是()。A、內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移B、內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline來定義C、內(nèi)聯(lián)函數(shù)是通過編澤器來實(shí)現(xiàn)的D、內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是relurn語句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到凋用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)存調(diào)用時(shí),是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換,所以在調(diào)用時(shí)不發(fā)生控制轉(zhuǎn)移。存類內(nèi)部實(shí)現(xiàn)的函數(shù)都是內(nèi)聯(lián)函數(shù),可以不用inline定義;只有函數(shù)外部定義的內(nèi)聯(lián)函數(shù)才必須加關(guān)鍵字inline。編譯系統(tǒng)并非對(duì)內(nèi)聯(lián)函數(shù)必須使川內(nèi)聯(lián),而且根據(jù)具體情況決定。內(nèi)聯(lián)函數(shù)不是必須要有返回值的。19、有如下程序:#includeusingnamespacestd;intmajn(){voidfunction(doul)leva1);dotlbleval:fLtaction(val);COLlt<A、編澤出錯(cuò),無法運(yùn)行B、輸出:3C、輸出:3.0D、輸出一個(gè)不確定的數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用及傳值方式傳遞參數(shù),執(zhí)行函數(shù)function時(shí),并沒有將3的值傳回來,而val又沒有初始化,所以會(huì)輸出一個(gè)不確定的值,D選項(xiàng)jE確。20、下面是重載為非成員函數(shù)的運(yùn)算符的函數(shù)原型,其中錯(cuò)誤的是()。A、Fractionoperator+(Fraction,F(xiàn)raction);B、Fractionoperator-(Fraction);C、Fraction&operator=(Fraction&,F(xiàn)raction);D、Fraction&operator+=(Fraction&,F(xiàn)raction);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查四種運(yùn)算符作為非成員函數(shù)的重載的使用方法,根據(jù)重載規(guī)則,本題答案為c,c項(xiàng)正確原型為:Fractionoperator=(Fraction&)。21、有如下類定義:classMyClass{public:private:intdata;};若要為MyClass類重載流輸人運(yùn)算符“>>”,使得程序中可以“cin>>obj;”的形式改變MyClass類的對(duì)象obj中數(shù)據(jù)成員data的值,則橫線處的聲明語句應(yīng)為()。A、friendistream&operator>>(istream&is,MyClass&a);B、friendistream&operator>>(istream&is,MyClassa);C、istream&operator>>(istream&is,MyClass&a);D、istream&operator>>(istream&is,MyClassa);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查重載流運(yùn)算符“>>”,根據(jù)重載規(guī)則,本題答案為A。22、由于常對(duì)象不能被更新,因此()。A、通過常對(duì)象只能調(diào)用它的常成員函數(shù)B、通過常對(duì)象只能調(diào)用靜態(tài)成員函數(shù)C、常對(duì)象的成員都是常成員D、通過常對(duì)象可以調(diào)用任何不改變對(duì)象值的成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查常對(duì)象的基本知識(shí),常對(duì)象只能調(diào)用它的常成員函數(shù),而不能調(diào)用非const函數(shù),常對(duì)象的成員函數(shù)不一定都是常成員函數(shù),只需保證其數(shù)據(jù)成員是常數(shù)據(jù)成員即可。所以本題選A。23、有如下類定義:classAA{inta;public:intgetRef()const{return&a;}//①intgetValue()const{returna;}//②voidset(intn)const{a=n;}//③friendvoidshow(AAaa)const{cout<A、①B、②C、③D、④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查常成員函數(shù),常成員函數(shù)只能引用本類中的數(shù)據(jù)成員,而不能修改它。所以本題答案為B。24、下列關(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作用域是在類內(nèi)部,當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員時(shí),編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù)。另外,全局函數(shù)和靜態(tài)函數(shù)都不能使用this指針。所以答案為D。25、下列關(guān)于虛函數(shù)的說明中,正確的是()。A、從虛基類繼承的函數(shù)都是虛函數(shù)B、虛函數(shù)不得是靜態(tài)成員函數(shù)C、只能通過指針或引用調(diào)用虛函數(shù)D、抽象類中的成員函數(shù)都是虛函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù)。虛函數(shù)必須是基類的非靜態(tài)成員函數(shù),其訪問權(quán)限可以是protected或public。如果一個(gè)類包含了純虛函數(shù),稱此類為抽象類。所以本題答案為B。26、下列關(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)解析:本題考查派生類與基類的關(guān)系,派生類可以有多個(gè)直接基類,而派生類有三種繼承方式,在私有繼承中,派生類的成員并不能訪問基類的成員。如果基類中定義了缺省構(gòu)造函數(shù)或根本沒有定義任何一個(gè)構(gòu)造函數(shù)時(shí),在派生類構(gòu)造函數(shù)的定義中可以省略對(duì)基類構(gòu)造函數(shù)的調(diào)用。所以本題答案為D。27、有如下類定義:classB{public:voidfunl(){}private:voidfun2(){}protected:voidfun3(){}};classD:publicB{protected:voidfun4(){}};若obj是類D的對(duì)象,則下列語句中不違反訪問控制權(quán)限的是()。A、obj.funl();B、obj.fun2.();C、obj.fun3();D、obj.fun4();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。所以在本題中,在類外引用成員函數(shù)時(shí),派生對(duì)象只能引用基類的公用成員函數(shù)funl,故本題答案為A。28、有如下類定義:classFoo{public:Foo(intv):value(v){}//①-Foo(){}//②pnvate:Foo(){}//③intvalue=0;//④};其中存在語法錯(cuò)誤的行是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查對(duì)象的初始化,類的數(shù)據(jù)成員是不能在聲明類時(shí)初始化的,所以本題答案為D。29、有如下類定義:classPoint{intXX,YY;public:Point():xx(0),yy(0){}Point(intX,inty=0):xx(x),yy(y){}};若執(zhí)行語句Poin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論