版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(jí)(C++)機(jī)試模擬試卷35(共9套)(共364題)國家二級(jí)(C++)機(jī)試模擬試卷第1套一、選擇題(本題共37題,每題1.0分,共37分。)1、if語句的語法格式可描述為:格式1:if(<條件>)<語句>或格式2:if(<條件>)<語句1>else<語句2>關(guān)于上面的語法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語句,例如if(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)也正確。2、假定MyClass為一個(gè)類,那么下列的函數(shù)說明中,()為該類的析構(gòu)函數(shù)。A、void~MyClass();B、~MyClass(intn);C、MyClass();D、~MyClass();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++語言中析構(gòu)函數(shù)為符號(hào)“~”加類名,且析構(gòu)函數(shù)沒有返回值和參數(shù),故前不加void關(guān)鍵字。所以正確的形式應(yīng)該是~MyClass(1。3、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。A、long,double,intB、long,float,intC、int,double,longD、int,float,long標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的知識(shí)點(diǎn)是字面常量。對(duì)于整型字面常量,只要沒有超過C++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來存儲(chǔ)此數(shù),也可以通過在整型字面常量后添加u或1來指定無符號(hào)整數(shù)或長整數(shù)來存儲(chǔ);對(duì)于實(shí)型字面常量,C++將自動(dòng)按照雙精度數(shù)來存儲(chǔ),也可以通過在實(shí)型字面常量后添加f來指定按單精度數(shù)存儲(chǔ)。4、下列符號(hào)中不屬于C++關(guān)鍵字的是()。A、friendB、namespaceC、continueD、byte標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查C++關(guān)鍵字,屬于基本常識(shí),顯然D選項(xiàng)不正確。5、關(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。6、若整型變量a、b、C、d中的值依次為:1、4、3、2。則條件表達(dá)式aA、1B、2C、3D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:首先把c7、軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:該圖是()。A、N-S圖B、PAD圖C、程序流程圖D、E-R圖標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:N—S圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對(duì)。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形表示工具,所以B不對(duì)。E—R圖是數(shù)據(jù)庫中的用于表示E—R模型的圖示工具,所以D不對(duì)。根據(jù)圖中所示表示方法是進(jìn)行軟件詳細(xì)設(shè)計(jì)時(shí)使用的程序流程圖。8、已知枚舉類型定義語句為:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};則下列敘述中錯(cuò)誤的是()。A、枚舉常量NAME的值為1B、枚舉常量NUMBER的值為1C、枚舉常量MINUS的值為6D、枚舉常量PRINT的值為10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語法形式為:enum類型名{枚舉值表}。需注意的是:當(dāng)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0、1、2、3…n一1對(duì)應(yīng);若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。枚舉常量NAME的值為0。9、下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是()。A、靜態(tài)數(shù)據(jù)成員是類的所有對(duì)象共享的數(shù)據(jù)B、類的每個(gè)對(duì)象都有自己的靜態(tài)數(shù)據(jù)成員C、類的不同對(duì)象有不同的靜態(tài)數(shù)據(jù)成員值D、靜態(tài)數(shù)據(jù)成員不能通過類的對(duì)象調(diào)用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:靜態(tài)成員表示整個(gè)類范圍共享的信息;必須對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化;靜態(tài)數(shù)據(jù)成員是屬于類的,不能通過類的對(duì)象調(diào)用。10、下列關(guān)于虛基類的描述,錯(cuò)誤的是()。A、設(shè)置虛基類的目的是為了消除二義性B、虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用C、若同一層中包含多個(gè)虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用D、若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:虛基類的引入就是為了消除二義性,其構(gòu)造函數(shù)的調(diào)用仍然是按照繼承的順序進(jìn)行的,對(duì)于多個(gè)虛基類則按它們說明的次序調(diào)用,虛基類的構(gòu)造函數(shù)先于非虛基類的構(gòu)造函數(shù)執(zhí)行。11、在數(shù)據(jù)庫中,數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和()。A、數(shù)據(jù)約束B、數(shù)據(jù)類型C、關(guān)系運(yùn)算D、查詢標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束3部分組成。故A選項(xiàng)正確。12、下列敘述中,正確的是()。A、軟件交付使用后還需要進(jìn)行維護(hù)B、軟件一旦交付使用就不需要再進(jìn)行維護(hù)C、軟件交付使用后其生命周期就結(jié)束D、軟件維護(hù)是指修復(fù)程序中被破壞的指令標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件的運(yùn)行和維護(hù)足指將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。而軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程。13、在數(shù)據(jù)庫管理技術(shù)發(fā)展的三個(gè)階段中,沒有專門的軟件對(duì)數(shù)據(jù)進(jìn)行管理的是()。A、人工管理階段B、文件系統(tǒng)階段C、文件系統(tǒng)階段和數(shù)據(jù)庫階段D、人工管理階段和文件系統(tǒng)階段標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理技術(shù)的三個(gè)階段是人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。人工管理階段沒有專門的軟件對(duì)數(shù)據(jù)進(jìn)行管理。故本題答案為A選項(xiàng)。14、已知在一程序中已定義函數(shù)doubleMak(intm,doublen);則下列函數(shù)中不可在同一程序中重載的是A、intMak(intm,doublen);B、doubleMak(intm,intn);C、doubleMak(doublem,intn);D、doubleMak(intn);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查函數(shù)重載相關(guān)知識(shí),C++允許在同一范圍中聲明幾個(gè)功能類似的同名函數(shù),但是這些同名函數(shù)的形式參數(shù)(指參數(shù)的個(gè)數(shù)、類型或者順序)必須不同,也就是說用同一個(gè)運(yùn)算符完成不同的運(yùn)算功能。返回值類型對(duì)區(qū)別重載函數(shù)沒有意義。所以答案為A選項(xiàng)。15、用于定義類的必不可少的C++關(guān)鍵字是A、autoB、returnC、classD、public標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題定義類的基礎(chǔ)知識(shí),定義類時(shí)使用的關(guān)鍵字為class,所以C選項(xiàng)正確。16、在下列表述中,用來正確表示"相對(duì)于當(dāng)前位置"文件定位方式的是A、ios_base::curB、ios_base::begC、ios_base::outD、ios_base::end標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查文件流的定位操作,屬于基礎(chǔ)知識(shí),A選項(xiàng)正確。17、下面描述不屬于軟件特點(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正確。18、有類定義如下:classType(public:Type(inti=0);Typeoperator-(int);friendTypeoperator+(Type,Type);private;intval;);若有對(duì)象定義Typec1;則下列語句序列中,錯(cuò)誤的是()。A、Type(3)+c1;B、cl+Type(3);C、3-c1;D、c1-3;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了operator運(yùn)算符重載的知識(shí),D不符合重載的參數(shù)順序。19、在學(xué)校中,“班級(jí)”與“學(xué)生”兩個(gè)實(shí)體集之間的聯(lián)系屬于()關(guān)系。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)班可以有多名學(xué)生,而一名學(xué)生只能屬于一個(gè)班級(jí),所以“班級(jí)”與“學(xué)生”兩個(gè)實(shí)體集之間的聯(lián)系屬于一對(duì)多關(guān)系。20、對(duì)于長度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是()。A、冒泡排序?yàn)閚(n—1)/2B、簡單插入排序?yàn)閚C、希爾排序?yàn)閚D、快速排序?yàn)閚/2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n—1)/2:簡單插入排序所需要的比較次數(shù)為n(n—1)/2;希爾排序所需要的比較次數(shù)為O(n1.5):堆排序所需要的比較次數(shù)為O(nlog2n)。21、下面關(guān)于常成員函數(shù)的說法中正確的是()。A、常成員函數(shù)不能修改任何的數(shù)據(jù)成員B、常成員函數(shù)只能修改一般的數(shù)據(jù)成員C、常成員函數(shù)只能修改常數(shù)據(jù)成員D、常成員函數(shù)只能通過常對(duì)象來調(diào)用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中使用const關(guān)鍵字來說明函數(shù)稱為常成員函數(shù),常成員函數(shù)不能更新對(duì)象中的數(shù)據(jù)成員。22、由于常對(duì)象不能被更新,因此()。A、通過常對(duì)象只能調(diào)用它的常成員函數(shù)B、通過常對(duì)象只能調(diào)用靜態(tài)成員函數(shù)C、常對(duì)象的成員都是常成員D、通過常對(duì)象可以調(diào)用任何不改變對(duì)象值標(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、有如下程序:#includeusingnamespacestd;classBase{public:voidfun(){cout<<"Base::fun"<A、Base.fun();B、Base::fun();C、Base->fun();D、fun();標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。本題中想要輸出Base::fun,則必須調(diào)用基類的公用成員函數(shù)fun,所以使用Base::fun();來調(diào)用基類的成員函數(shù)fun。24、p是指向ClassA類型對(duì)象的指針。執(zhí)行deletep;時(shí),系統(tǒng)自動(dòng)調(diào)用A、析構(gòu)函數(shù)B、構(gòu)造函數(shù)C、靜態(tài)函數(shù)D、友元函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指向?qū)ο蟮闹羔樖褂胐elete刪除時(shí),該指針指向的對(duì)象會(huì)被撤銷,編譯器會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)來釋放該對(duì)象占有的資源,答案為A。25、下列敘述中,正確的是A、false是一個(gè)字符型常量B、false是一個(gè)字符型常量C、11是一個(gè)邏輯型常量D、1.1是一個(gè)double常量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:false是邏輯常量,A選項(xiàng)錯(cuò)誤;’0’是字符常量,字符串常量是用雙引號(hào)括起來的若干字符序列,B選項(xiàng)錯(cuò)誤;11是一個(gè)整型常量,C選項(xiàng)錯(cuò)誤;1.1是浮點(diǎn)型常量,一般按雙精度處理,是double型常量,答案為D。26、下列符號(hào)中能夠作為C++標(biāo)識(shí)符的是()。A、constB、2aC、_shapeD、count標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查C++標(biāo)識(shí)符的命名規(guī)則,其規(guī)則有如下幾點(diǎn):①所有標(biāo)識(shí)符必須由字母、數(shù)字或下畫線組成,且必須由字母或下畫線開頭;②所有標(biāo)識(shí)符不能使用C++已有的關(guān)鍵字;③大、小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符。選項(xiàng)A是關(guān)鍵字,選項(xiàng)B不能以數(shù)字開頭,選項(xiàng)D包含了字符"-",且不能以此字符開頭。故答案為C。27、下列有關(guān)繼承和派生的表述中,正確的是A、作為虛基類的類不能被實(shí)例化B、派生類不能訪問基類的保護(hù)成員C、派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)D、虛函數(shù)必須在派生類中重新實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:作為虛基類的類可以被實(shí)例化,派生類公用繼承和保護(hù)繼承基類,都可以訪問基類的保護(hù)成員。如果派生類沒有對(duì)虛函數(shù)重新定義,那么就調(diào)用基類的虛函數(shù)。所以C選項(xiàng)正確。28、面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)對(duì)象的數(shù)據(jù)和操作結(jié)合于統(tǒng)一體中的是A、結(jié)合B、封裝C、隱藏D、抽象標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)象的基本特點(diǎn)是:標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性好。封裝是指隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),將數(shù)據(jù)和操作結(jié)合于統(tǒng)一體,僅對(duì)外提供訪問方式,B選項(xiàng)正確。29、下列函數(shù)模板聲明中,合法的是A、templateTabs(Tx);B、templateclassTabs(Tx);C、templateTabs(Tx);D、template<>Tabs(Tx);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B中類型形參T前需要有關(guān)鍵字class或typename修飾;選項(xiàng)C中函數(shù)ads需要返回值;選項(xiàng)D中形參表不能為空;答案為A。30、下列敘述中正確的是()。A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)在存儲(chǔ)空間的需求上沒有可比性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間,所以一般要多于順序存儲(chǔ)結(jié)構(gòu)。31、ClassA是一個(gè)類,現(xiàn)在執(zhí)行下面語句:ClassAa[2],*b[2],*c=newClassA;調(diào)用ClassA類的構(gòu)造函數(shù)的次數(shù)是A、1B、2C、3D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:創(chuàng)建對(duì)象數(shù)組時(shí),需要用默認(rèn)構(gòu)造函數(shù)初始化每個(gè)元素,所以ClassAa[2]需要調(diào)用2次構(gòu)造函數(shù);創(chuàng)建對(duì)象指針數(shù)組b,數(shù)組b的元素是對(duì)象指針,沒有生成新的對(duì)象,不需要調(diào)用構(gòu)造函數(shù);創(chuàng)建對(duì)象指針c,并使用動(dòng)態(tài)分配方式創(chuàng)建新的對(duì)象,將新對(duì)象的指針賦給c,需要調(diào)用構(gòu)造函數(shù);綜上所述,答案為C。32、在名為BigNumber的類的類體中對(duì)運(yùn)算符函數(shù)double進(jìn)行了如下聲明:operatordouble(BigNumber);函數(shù)聲明中有一個(gè)明顯的錯(cuò)誤,這個(gè)錯(cuò)誤就是A、參數(shù)表中不應(yīng)該有任何參數(shù)B、缺少對(duì)函數(shù)返回類型的說明C、參數(shù)聲明中缺少參數(shù)變量D、函數(shù)聲明中缺少函數(shù)體標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查類型轉(zhuǎn)換函數(shù),其一般形式如下:operator類型名(){實(shí)現(xiàn)轉(zhuǎn)換的語句}在函數(shù)名前面不能指定函數(shù)類型,函數(shù)沒有參數(shù),所以A選項(xiàng)錯(cuò)誤。33、下列字符串中不能作為C++標(biāo)識(shí)符使用的是A、DOUBLEB、ab~cC、_5_D、xyz標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,其中必須以字母或下劃線開頭。選項(xiàng)B錯(cuò)誤,答案選B。34、有如下類定義:classNumber{private:staticintnum;};要初始化Number類的靜態(tài)成員num,應(yīng)當(dāng)在后面加上語句:A、intnum=0;B、staticintnum=0;C、intNumber::num=0;D、staticintNumber::num=0;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員必須在類定義體的外部定義,和任意的類成員一樣,在類定義體外部引用類的靜態(tài)數(shù)據(jù)成員時(shí),需要指定成員的所屬類,并且static關(guān)鍵字只能用于類定義體內(nèi)部的聲明中,在外部定義時(shí)不能標(biāo)示static。因此,答案為C。35、有如下程序段: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ò)誤。36、有如下函數(shù)模板:templateTcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast(i);D、cast(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)模板的基本運(yùn)用,屬于基礎(chǔ)知識(shí)。函數(shù)模板實(shí)際上是建立一個(gè)通用函數(shù),其函數(shù)類型和形參類型不具體指定,用一個(gè)虛擬的類型代表,這個(gè)通用函數(shù)就是函數(shù)模板。函數(shù)模板可以設(shè)定默認(rèn)參數(shù),這樣在調(diào)用模板函數(shù)時(shí)就可以省略實(shí)參,函數(shù)模板的實(shí)例就是一個(gè)函數(shù)的定義。所以本題答案為D。37、下列排序方法中,最壞情況下比較次數(shù)最少的是()。A、冒泡排序B、簡單選擇排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:冒泡排序、直接插入排序與簡單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。二、基本操作題(本題共1題,每題1.0分,共1分。)38、使用VC6打開考生文件夾下的源程序文件modi1.cpp,但該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為:151注意:錯(cuò)誤的語句在//********error********的下面,修改該語句即可。#include//********error********enum{Sun,Mon,Tue,Wed,Thu,F(xiàn)ri,Sat,//********error********}MyEnum;structstruct{**********error********intFri,intSun;};Voidmain(){inti=Mon;MyEnumt=Fri;structstr1;str1.Fri=Mon;cout<標(biāo)準(zhǔn)答案:(1)enumMyEnum(2)};(3)intFri;知識(shí)點(diǎn)解析:(1)第一標(biāo)識(shí)下聲明枚舉類型,聲明枚舉類型的一般形式為:“enum<枚舉類型名>{<枚舉常量列表>};”,程序當(dāng)中把枚舉類型名MyEnum放到枚舉聲明后面,顯然不符合枚舉類型聲明格式,因此第1個(gè)標(biāo)識(shí)下應(yīng)改成“enumMyEnum”。(2)由(1)的分析可知,第2個(gè)標(biāo)識(shí)下也不符合枚舉類型聲明格式,應(yīng)以“:”結(jié)束,即第2個(gè)標(biāo)識(shí)下應(yīng)改為“};”。(3)第3標(biāo)識(shí)處聲明結(jié)構(gòu)體,結(jié)構(gòu)體定義的一般形式為:struct<結(jié)構(gòu)體名>{<成員列表>}<變量名列表>;結(jié)構(gòu)體中成員列表中各個(gè)元素是不同的變量,變量之間應(yīng)以分號(hào)隔開,而不是以逗號(hào)隔開,因此第3個(gè)標(biāo)識(shí)下應(yīng)改為為“intFri;”。三、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)39、使用VC++6.0打開考生文件夾下的源程序文件2.cpp,請(qǐng)實(shí)現(xiàn)函數(shù)fun(doublea[],intlen)的如下功能:(1)a[]是一個(gè)數(shù)組,長度為len。(2)a[0]=0,a[1]=1。(3)a[i+2]=a[i]+a[i+1]。注意:不能修改函數(shù)的其他部分。試題程序:#includevoidfun(doublea[],intlen){}voidmain(){doubleaE20];fun(a,20);for(inti=0;i<20;i++){std::cout<標(biāo)準(zhǔn)答案:voidfun(doublea[],intlen){if(len)0)a[0]=0;if(len)1)a[1]=1;for(inti=2;i(len;i++)a[i]=a[i-1]+a[i-2];}知識(shí)點(diǎn)解析:本題考查的是計(jì)算數(shù)列值。首先給a[0]和a[1]賦初值,注意判斷數(shù)組是否越界,然后循環(huán)遍歷a[2]~a[len1],根據(jù)題目給出關(guān)系計(jì)算每一個(gè)元素的值。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)40、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)定義類的私有變量a、b,請(qǐng)?jiān)谧⑨專?*******1********后添加適當(dāng)?shù)恼Z句。(2)完成類的構(gòu)造函數(shù),對(duì)變量a、b賦值,缺省兩個(gè)變量值為1,在注釋//********2********之后添加語句。(3)完成打印函數(shù)display(),打印出“a*b=c”格式的一個(gè)乘法算式,在注釋//********3********之后添加語句。(4)補(bǔ)充主函數(shù),使得打印9×9的乘法口訣。在注釋//********4********后添加語句。注意:除在指定位置添加語句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#includeclassCMyFormula{private://********1********public://********2********{this一>a=a;this->b=b;}voidset(intx,inty){a=x;b=y;}voiddisplay(){//********3********}};intmain(){CMyFormulaformular(1,1);for(inti=1;i<=9;i++){//********4********for(intj=1;j++){formular.set(j,i);formular.display();cout<<"";}cout<標(biāo)準(zhǔn)答案:(1)添加語句:inta,b;(2)添加語句:CMyFormula(inta=1,intb=1)(3)添加語句:cout<知識(shí)點(diǎn)解析:(1)第1個(gè)標(biāo)識(shí)下完成CMyFormula類的私有變量a、b的定義,從函數(shù)set(intx,inty)的參數(shù)類型可以看出a和b均為int型變量,故第1個(gè)標(biāo)識(shí)下應(yīng)添加“hata,b;”。(2)第2個(gè)標(biāo)識(shí)下添加構(gòu)造函數(shù)聲明,完成對(duì)變量a、b賦值,該構(gòu)造有兩個(gè)參數(shù)a和b,且a和b缺省值為1,因此第2個(gè)標(biāo)識(shí)下應(yīng)添加“CMyFormula(inta=1,intb=1)”。(3)打印函數(shù)display()在屏幕上打印出“a*b=c”格式的一個(gè)乘法算式,因此第3個(gè)標(biāo)識(shí)下應(yīng)添加“cout<國家二級(jí)(C++)機(jī)試模擬試卷第2套一、選擇題(本題共39題,每題1.0分,共39分。)1、下面程序的運(yùn)行結(jié)果是()。#includeintx=5;intfun(imta){inte;c=x*a;returnc;}voidmain(){intx=3,a=4;X=X+fun(a);cout<<"x="<A、x=15B、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作用域是由它定義開始到cout輸出,在tan函數(shù)中無效。而在fun函數(shù)定義前的變量x作用域是整個(gè)程序,所以fun函數(shù)中的x值為5,這樣c的值就為20。在主函數(shù)中的x+fun(a)中的x為靠近這條語句的x定義,即3,所以最后x的值為20+3=23。2、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中最后一個(gè)階段結(jié)構(gòu)簡單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫領(lǐng)域的主導(dǎo)地位,所以選擇C。3、下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。A、軟件測試B、概要設(shè)計(jì)C、軟件維護(hù)D、詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段,其中開發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測試。4、有如下程序:intx=3;do{x-=2:cout<A、1B、30C、1-2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:第一次循環(huán)輸出1,第二次循環(huán)輸出是一2。在輸出二次循環(huán)后!(-x)為0條件不滿足。停止循環(huán)。5、有如下程序:#includeusingnamespacestd;intmain(){voidfunction(doubleval);doubleval;function(val);cout<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)正確。6、有如下程序:#include<iostream>usingnamespaeestd;classObj{staticinti;public:obj(){i++;}-obj(){i--;}staticintgetVal(){returni;}};intobj∷i=0:voidf(){objoh2;cout<<o(jì)b2.getVal();}intmain(){objob1;f();Obj*ob3=newobj;cout<<o(jì)h3->getVal();deleteob3;cout<<o(jì)bj∷getVal();return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、232B、231C、222D、221標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,調(diào)用順序?yàn)橄葮?gòu)造的后析構(gòu),后構(gòu)造的先析構(gòu)。本題中先定義了一個(gè)對(duì)象ob1,會(huì)執(zhí)行構(gòu)造函數(shù),那么i就變?yōu)榱?;再執(zhí)行函數(shù)f后,由于又定義了一個(gè)對(duì)象ob2,所以再次執(zhí)行構(gòu)造函數(shù),i就變?yōu)榱?,輸出了2。函數(shù)執(zhí)行完后執(zhí)行析構(gòu)函數(shù),i變?yōu)榱?,然后又定義了對(duì)象指針,i變?yōu)榱?。釋放ob3后,i變?yōu)榱?,所以答案為D。7、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類公有繼承其基類,則該派生類對(duì)象可以訪問基類的保護(hù)成員B、派生類的成員函數(shù)可以訪問基類的所有成員C、基類對(duì)象可以賦值給派生類對(duì)象D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:私有繼承方式為基類的公用成員和保護(hù)成員在派生類中成了私有成員,其私有成員仍為基類私有,但派生類對(duì)象可以訪問基類的保護(hù)成員,所以基類對(duì)象不能賦值給派生類對(duì)象。抽象類是指含有純虛擬函數(shù)的類,所以選項(xiàng)D正確。8、有以下程序:#includeusingnamespacestd;classR{public:R(intr1,intr2){R1=r1;R2=r2;}voidprint();voidprint()const;private:intR1,R2;};voidR::print0{cOut<A、5,4B、4,5C、20,52D、52,20標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題中,語句Ra(5,4)調(diào)用構(gòu)造函數(shù)R(intr1,intr2)但未有輸出結(jié)果;b.print();調(diào)用常成員函數(shù)(因?yàn)閎是常對(duì)象)voidprint()const,輸出結(jié)果是20,52。9、數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的運(yùn)算和()。A、數(shù)據(jù)的方法B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C、數(shù)據(jù)的對(duì)象D、數(shù)據(jù)的邏輯存儲(chǔ)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素及其之間的相互關(guān)系和數(shù)據(jù)運(yùn)算的一門學(xué)科,它包含3個(gè)方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算。10、軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性.有利于提高模塊的獨(dú)立性。11、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。A、運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無參數(shù),重載的是一元運(yùn)算符B、一元運(yùn)算符只能作為成員函數(shù)重載C、二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)D、C++中可以重載所有的運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:運(yùn)算符重載為成員函數(shù)時(shí),會(huì)省略一個(gè)參數(shù),如果無參數(shù),表明是一元運(yùn)算符。一元運(yùn)算符既可以作為成員函數(shù)重載,也可以作為非成員函數(shù)重載。二元運(yùn)算符如果作為非成員函數(shù),則參數(shù)表中必須有兩個(gè)參數(shù)。c++有5個(gè)運(yùn)算符不能重載,它們是:.(成員訪問運(yùn)算符)、.*(成員指針訪問運(yùn)算符)、::(域運(yùn)算符)、sizeof(長度運(yùn)算符)和?:(條件運(yùn)算符)。故本題答案為A。12、C++中的模板包括()。A、對(duì)象模板和函數(shù)模板B、對(duì)象模板和類模板C、函數(shù)模板和類模板D、變量模板和對(duì)象模板標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)模板和類模板,所以答案為c。13、有如下程序段:inti=1;intj=4;intmain(){inti=8,j=i;cout<A、14B、81C、88D、18標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。它不屬于哪一個(gè)函數(shù),它屬于一個(gè)源程序文件。其作用域是整個(gè)源程序。在函數(shù)中使用全局變量,一般應(yīng)作全局變量說明,本題中定義了兩個(gè)全局變量i,j,所以主函數(shù)中對(duì)全局變量重新賦值輸出后為88,所以答案為C。14、下列語句中,錯(cuò)誤的是()。A、constintbuffer=-256;B、constinttemp;C、constdouble*ooint;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:符號(hào)常量聲明語句的語法格式足:const類型名符號(hào)常量=初值表達(dá)式,選項(xiàng)B)中未給常變量賦初值,故錯(cuò)誤:而選項(xiàng)C)中定義的是一個(gè)指向浮點(diǎn)型常量的指針,而不是定義一個(gè)浮點(diǎn)型常量,所以可以不賦初值。15、執(zhí)行完下列代碼段之后:bootx=true,V=false,Z=false;x=x&&yttz;y=xIIy&&z;z=!(x!=y)II(y=z);則x=false,y=false,z=()。A、真B、假C、不確定D、異常標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:其中“x=x&&yfIz;”語句計(jì)算后x=false,“y=xlIy&&z;”語句計(jì)算后y=false。那么“z=!(x!=y)ll(y==z);”語句計(jì)算后“z=!(。ture)lItrue”,所以答案為:true.16、有如下函數(shù)模板:templateTcast(Uu){returnu;}功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast(i);D、cast(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)D)是將double類型的數(shù)據(jù)轉(zhuǎn)化成int類型的數(shù)據(jù),正確。17、下列關(guān)于運(yùn)算符重載的敘述中,錯(cuò)誤的是()。A、重載運(yùn)算符時(shí)能夠改變運(yùn)算符原有的優(yōu)先級(jí)B、有些運(yùn)算符不能作為普通函數(shù)重載C、重載運(yùn)算符時(shí)不能改變運(yùn)算符原有的操作數(shù)個(gè)數(shù)D、加法運(yùn)算符重載為成員函數(shù)時(shí)形參表只有一個(gè)參數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中,運(yùn)算符重載的規(guī)則有:重載不能改變運(yùn)算符的優(yōu)先級(jí),選項(xiàng)A錯(cuò)誤;賦值運(yùn)算符=、下標(biāo)運(yùn)算符[]、調(diào)用運(yùn)算符()、成員訪問箭頭運(yùn)算符一>等必須重載為成員函數(shù),不能作為普通函數(shù)重載,選項(xiàng)B正確;重載不能改變運(yùn)算符運(yùn)算對(duì)象(操作數(shù))的個(gè)數(shù),選項(xiàng)C正確;加法運(yùn)算符有兩個(gè)操作數(shù),作為成員函數(shù)重載時(shí),第一操作數(shù)是調(diào)用對(duì)象本身,所以形參表只有一個(gè)操作數(shù),選項(xiàng)D正確;本題答案為A。18、下列選項(xiàng)中不能用于區(qū)分重載函數(shù)的是()。A、形參的個(gè)數(shù)B、形參的類型C、函數(shù)的返回值類型D、常函數(shù)關(guān)鍵字const標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:出現(xiàn)在相同作用域中的兩個(gè)函數(shù),如果具有相同的名字而形參表不同,則稱這兩個(gè)函數(shù)為重載函數(shù),形參表的不同包括形參個(gè)數(shù)不同和形參類型不同;另外const定義的常函數(shù)與相同名字且相同形參表的普通函數(shù)可以重載;但函數(shù)不能僅僅基于不同的返回類型而實(shí)現(xiàn)重載,選項(xiàng)C錯(cuò)誤。本題答案為C選項(xiàng)。19、下列關(guān)于構(gòu)造函數(shù)的敘述中,錯(cuò)誤的是()。A、構(gòu)造函數(shù)名與類名相同B、構(gòu)造函數(shù)可以有返回值C、構(gòu)造函數(shù)可以重載D、每個(gè)類都有構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:構(gòu)造函數(shù)的名字和類的名字相同,選項(xiàng)A正確;構(gòu)造函數(shù)沒有返回值,小能指定返回類型,選項(xiàng)B錯(cuò)誤;構(gòu)造函數(shù)可以被重載,選項(xiàng)C正確;每個(gè)類都有構(gòu)造函數(shù),如果類定義中不提供任何構(gòu)造函數(shù),那么編譯器會(huì)在需要時(shí),自動(dòng)生成一個(gè)構(gòu)造函數(shù),選項(xiàng)D正確。本題答案為B選項(xiàng)。20、對(duì)下列二樹進(jìn)行前序遍歷的結(jié)果為()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:遍歷就是不重復(fù)地訪問二叉樹的所有結(jié)點(diǎn)。二叉樹遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:①前序,訪問根→按前序遍歷左子樹→按前序遍歷右子樹。②中序,按中序遍歷左子樹→訪問根→按中序遍歷右子樹。③后序,按后序遍歷左子樹→按后序遍歷右子樹→訪問根。所以對(duì)該二叉樹的中序遍歷結(jié)果為ABDGEHCF。21、下列關(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。22、有如下程序:#includeusingnamespacestd;classAA{public:AA(intn){cout<A、321B、231C、213D、123標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:構(gòu)造函數(shù)初始化列表僅指定用于初始化成員的值,并不指定這些初始化執(zhí)行的次序;初始化執(zhí)行的次序是根據(jù)類定義中成員的聲明順序完成的,初始化列表結(jié)束后,再執(zhí)行函數(shù)體;程序創(chuàng)建CC對(duì)象c,調(diào)用CC的構(gòu)造函數(shù),由于在類CC中,AA類對(duì)象a首先聲明,所以先調(diào)用AA類的構(gòu)造函數(shù),完成成員a的初始化,輸出"1",再調(diào)用BB類的構(gòu)造函數(shù),完成成員b的初始化,輸出"2",最后執(zhí)行CC構(gòu)造函數(shù)的函數(shù)體,輸出"3";答案為D。23、有如下類定義:classBase{public:inta;protected:intb;private:intc;};classDerived:publicBase{protected:intd;};若obj是類Derived的對(duì)象,以下語句編譯正確的是A、obj.a;B、obj.b;C、obj.c;D、obj.d;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類Derived以public方式繼承Base,所以a在Derived中是public成員,b在Derived中是protected成員,c對(duì)Derived不可見;所以對(duì)類Derived對(duì)象obj可見的成員為a,答案為A。24、對(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。25、數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。A、控制流B、事件驅(qū)動(dòng)C、模塊調(diào)用D、數(shù)據(jù)流標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)流圖中帶箭頭的線段表示的是數(shù)據(jù)流,即沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。26、下列關(guān)于C++預(yù)定義流對(duì)象的敘述中,正確的是()。A、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象B、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類C、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象D、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,cout是C++預(yù)定義的標(biāo)準(zhǔn)輸出流對(duì)象。27、下列關(guān)于C++流的敘述中,正確的是A、與鍵盤、屏幕、打印機(jī)和通信端口的交互都可以通過流類來實(shí)現(xiàn)B、從流中獲取數(shù)據(jù)的操作稱為插入操作,向流中添加數(shù)據(jù)的操作稱為提取操作C、cin是一個(gè)預(yù)定義的輸入流類D、輸出流有一個(gè)名為open的成員函數(shù),其作用是生成一個(gè)新的流對(duì)象標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查輸入輸出流,從流中獲取數(shù)據(jù)的操作稱為提取操作,向流中添加數(shù)據(jù)的操作稱為插入操作,cin是一個(gè)標(biāo)準(zhǔn)輸入流類,open并不是輸出流的一個(gè)成員函數(shù)。28、軟件生命周期是指()。A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程C、軟件的開發(fā)過程D、軟件的運(yùn)行維護(hù)過程標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。29、有如下程序#includeusingnamespacestd;classAA{charc;public:AA(charch):c(ch){cout<A、MCBB、BMCC、CMBD、BCM標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:派生類構(gòu)造函數(shù)的工作過程:1、派生類的構(gòu)造函數(shù)在執(zhí)行函數(shù)體之前,首先調(diào)用基類的構(gòu)造函數(shù)初始化基類;2、基類構(gòu)造完成之后,在執(zhí)行函數(shù)體之前根據(jù)聲明次序初始化自己的成員;3、執(zhí)行自身函數(shù)體。由上可知,構(gòu)造函數(shù)初始化列表并不指定初始化的執(zhí)行次序。所以程序中在創(chuàng)建BB對(duì)象時(shí),首先調(diào)用AA的構(gòu)造函數(shù),輸出"C",然后初始化類BB中的成員對(duì)象m,m是AA類對(duì)象,調(diào)用AA的構(gòu)造函數(shù),輸出"M",最后執(zhí)行函數(shù)體,輸出"B";輸出順序?yàn)椋?CMB",答案為C。30、有如下類定義:classMyBase{intk;public:MyBase(intn=0):k(n){}intvalue()const{returnk;}};classMyDerived:MyBase{intj;public:MyDerived(inti):j(i){}intgetK()const{returnk;}intgetJ()const{returnj;}};編譯時(shí)發(fā)現(xiàn)有一處語法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、函數(shù)getK試圖訪問基類的私有成員變量kB、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或privateC、類MyDerived缺少一個(gè)無參的構(gòu)造函數(shù)D、類MyDerived的構(gòu)造函數(shù)沒有對(duì)基類數(shù)據(jù)成員k進(jìn)行初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:默認(rèn)繼承方式為私有繼承,私有繼承將基類的公用成員和保護(hù)成員都變?yōu)榱怂接谐蓡T,基類的私有成員依然屬于基類私有,派生類不能訪問基類的私有成員。所以A選項(xiàng)正確。31、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語句中輸出結(jié)果不是5的是A、cout<<*arr+4<B、cout<<*arr+4<C、cout<D、cout<<*(arr+1)+5<標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序定義含有五個(gè)整型元素的數(shù)組arr,并初始化為:1,2,3,4,5,數(shù)組名arr為數(shù)組首地址。選項(xiàng)A中輸出第一個(gè)元素與4之和,即1+4,結(jié)果為5;選項(xiàng)B、C都是輸出第五個(gè)元素5;選項(xiàng)D中輸出第二個(gè)元素與5之和,即2+5,結(jié)果為7,D錯(cuò)誤;答案為D。32、下列關(guān)于對(duì)象初始化的敘述中,正確的是A、定義對(duì)象的時(shí)候不能對(duì)對(duì)象進(jìn)行初始化B、定義對(duì)象之后可以顯式地調(diào)用構(gòu)造函數(shù)進(jìn)行初始化C、定義對(duì)象時(shí)將自動(dòng)調(diào)用構(gòu)造函數(shù)進(jìn)行初始化D、在一個(gè)類中必須顯式地定義構(gòu)造函數(shù)實(shí)現(xiàn)初始化標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查對(duì)象的定義和對(duì)象的初始化,定義對(duì)象時(shí),自動(dòng)調(diào)用構(gòu)造函數(shù),不需要顯示調(diào)用,所以C選項(xiàng)正確。33、設(shè)c1和c2是類MyClass的對(duì)象,若將前綴運(yùn)算符"--"和運(yùn)算符"/"作為類MyClass的友元函數(shù)重載,則表達(dá)式--c1/c2等價(jià)于A、operator/(c1.operator--(),c2)B、operator/(operator--(c1),c2)C、c1.operator--().operator/(c2)D、c2.operator/(operator--(c1))標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:友元函數(shù)不是類的成員函數(shù),所以友元函數(shù)的調(diào)用不需要使用類對(duì)象;另外運(yùn)算符重載不改變運(yùn)算符的優(yōu)先級(jí),所以先執(zhí)行"--"運(yùn)算符重載函數(shù),之后執(zhí)行"/"運(yùn)算符重載函數(shù),選項(xiàng)A、C、D錯(cuò)誤,B正確,答案為B。34、有三個(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中取得相同的關(guān)系組所以取得是交運(yùn)算,選擇D)。35、有如下函數(shù)模板:templateTsquare(Tx){returnx*x;}其中的參數(shù)T是A、函數(shù)形參B、函數(shù)實(shí)參C、模板實(shí)參D、模板形參標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:參數(shù)T是模板形參,答案為D。36、若Pay是一個(gè)類名,則執(zhí)行語句Payp1,p2[2],*p3;時(shí)Pay的構(gòu)造函數(shù)被調(diào)用的次數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序定義了Pay對(duì)象p1,Pay對(duì)象數(shù)組p2和Pay對(duì)象指針p3,編譯器自動(dòng)生成默認(rèn)構(gòu)造函數(shù)初始化p1對(duì)象和p2的兩個(gè)對(duì)象元素;p3沒有初始化,沒有調(diào)用構(gòu)造函數(shù),答案為C。37、在公有繼承的情況下,在派生類中能夠訪問的基類成員包括A、公有成員B、保護(hù)成員C、公有成員、保護(hù)成員和私有成員D、公有成員和保護(hù)成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在公有繼承的情況下,基類中的私有成員對(duì)派生類不可見,公有成員和保護(hù)成員都保持自己的訪問級(jí)別,派生類都可以訪問,答案為D。38、有如下類聲明:classMau{intk;public:Mau(intn):k(n){}intcalc()const;};則成員函數(shù)calc的下列定義中有編譯錯(cuò)誤的是A、intMau::calc()const{returnk-1;}B、intMau::calc()const{returnk*k;}C、intMau::calc()const{returnk+1;}D、intMau::calc()const{return++k;}標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)calc()聲明的形參表后面有關(guān)鍵字const,說明該函數(shù)是常成員函數(shù),常成員函數(shù)改變了隱含的this形參的類型,使得this是指向const對(duì)象的指針,因而該函數(shù)只能讀取數(shù)據(jù)成員的值,不能修改數(shù)據(jù)成員,所以D選項(xiàng)錯(cuò)誤,答案為D。39、設(shè)數(shù)據(jù)結(jié)構(gòu)B=(D,R),其中D={a,b,c,d,e,f}R={(f,A),(d,B),(e,D),(c,e),(a,c)}該數(shù)據(jù)結(jié)構(gòu)為()。A、線性結(jié)構(gòu)B、循環(huán)隊(duì)列C、循環(huán)鏈表D、非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)有兩個(gè)要素:一是數(shù)據(jù)元素的集合,通常記為D;二是D上的關(guān)系,它反映了D中各數(shù)據(jù)元素之間的前后件關(guān)系,通常記為R。即一個(gè)數(shù)據(jù)結(jié)構(gòu)可以表示成B=(D,R)。其中B表示數(shù)據(jù)結(jié)構(gòu)。為了反映D中各數(shù)據(jù)元素之間的前后件關(guān)系,一般用二元組來表示。例如,假設(shè)a與b是D中的兩個(gè)數(shù)據(jù),則二元組(a,b)表示a是b的前件,b是a的后件。如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:①有且只有一個(gè)根結(jié)點(diǎn);②每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個(gè)數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu)。根據(jù)上述理論,本題中f為根結(jié)點(diǎn),每個(gè)結(jié)點(diǎn)有一個(gè)前件和一個(gè)后件,符合線性結(jié)構(gòu)的定義。故本題答案為A選項(xiàng)。二、基本操作題(本題共1題,每題1.0分,共1分。)40、使用VC6打開考生文件夾下的源程序文件modi.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正其中的錯(cuò)誤,使得程序正確運(yùn)行。程序輸出:s1:n=20s2:n=10執(zhí)行s3.a(chǎn)dd(s1,s2)s3:n=30s4:n=30注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在//********error********的下面。1#include2classTestClass3{4intn;5public:6TestClass(){)7TestCla8s(intm)8{9n=m;10}11//********error********12TestClassadd(TestClasss1,s2)13{14this->n=s1.n+s2.n;15//********error********16return(this);17}18voiddisp()19{20cout<<"n="<標(biāo)準(zhǔn)答案:(1)Testel.a(chǎn)ssadd(TestClasss1,TestClasss2)(2)return(*this);(3)};知識(shí)點(diǎn)解析:本題中的功能是設(shè)置類中的成員數(shù)值,然后利用成員函數(shù)add求和。從已定源程序的:main主函數(shù)開始入手,可以看出程序首先通過類TestClass中的成員函數(shù)實(shí)現(xiàn)題目中的輸出要求。[解題思路](1)打開modil.cpp,調(diào)試程序,根據(jù)顯示的錯(cuò)誤提示,知道語句“TestClassadd(TestClasss1,s2)”中的變量“s2”沒有聲明類型,所以補(bǔ)充“s2”的類型,即“TestClassadd(1’estClasss1,TestClasss2)”。(2)“this.>n=s1.n+s2.n:”語句中的this變量為指針變量,所以第2個(gè)標(biāo)識(shí)下的“return(this);”返回語句中的this變量,應(yīng)該返回指針型,所以修改為“retum(*this);”。(3)C++中類的定義格式應(yīng)為“class類名{};”,以分號(hào)為結(jié)尾,所以第3個(gè)標(biāo)識(shí)下,類結(jié)尾處補(bǔ)充分號(hào)“;”,即修改為“};”。三、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)41、使用VC++6.0打開考生文件夾下的源程序文件2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部分程序。函數(shù)sum(intA[NUM][NUM],intn)的功能是計(jì)算矩陣中所有非質(zhì)數(shù)數(shù)字的和。提示:函數(shù)isPrime(intn)的功能是判定當(dāng)前數(shù)字是否為質(zhì)數(shù),如果是則返回true。注意:不能修改程序的其他部分,只能修改sum函數(shù)。試額程序:#include#include(cmath>#defineNUM50intA[NUM][NUM]={{1,3,5,7,9),{11,13,15,17,19),{21,23,25,27,29),{31,33,35,37,39),{41,43,45,47,49)};boolisPrime(intn){if(n==1)returnfalse;if(n==2)retUrntrue;for(inti=2;i(n/2;i++){if(n%i==0)returnfalse;}returntrue;}intsum(intA[NUM][NUM],intn){}intmain(){cout<標(biāo)準(zhǔn)答案:intre=0;for(inti=0;i(n;i++){for(intj=0;j(n;j++){if(!isPrime(A[i][j]))//判斷是否是素?cái)?shù),不是素?cái)?shù)則累加{re=re+A[i][j];}}}returnre:知識(shí)點(diǎn)解析:矩陣A[NUM][NUM]是二維矩陣,sum函數(shù)的參數(shù)n給出了矩陣A的具體維數(shù),因此矩陣A中共含有n×n個(gè)有效數(shù)。A[NUM][NUM]中的元素可表示為A[i][j],其中i表示元素所在行數(shù),j表示元素所在的列數(shù),i、j分別從0到n-1范圍內(nèi)變化,因此設(shè)置內(nèi)外兩層循環(huán)可逐個(gè)遍歷整個(gè)矩陣尋找非質(zhì)數(shù)。函數(shù)isPrime提供了判斷質(zhì)數(shù)的方法,對(duì)每個(gè)元素A[i][j],調(diào)用函數(shù)isPrime(A[i][j]),判斷函數(shù)的返回值是否為假,如果為假,說明不是質(zhì)數(shù),應(yīng)該累加起來。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)42、請(qǐng)使用VC6或使用【答題】菜單打開考生目錄proj3下的工程文件proj3,此工程中包含一個(gè)源程序文件proj3.cpp,補(bǔ)充編制C++程序proj3.cpp,其功能是讀取文本文件in.dat中的全部內(nèi)容,將文本存放到doe類的對(duì)象myDoc中。然后將myDoc中的字符序列反轉(zhuǎn),并輸出到文件out.dat中。文件in.dat的長度不大于1000字節(jié)。要求:補(bǔ)充編制的內(nèi)容寫在“//**********333**********”與“//**********66666**********”兩行之間。實(shí)現(xiàn)將myDoc中的字符序列反轉(zhuǎn),并將反轉(zhuǎn)后的序列在屏幕上輸出。不得修改程序的其他部分。注意:程序最后已將結(jié)果輸出到文件out.dat中,輸出函數(shù)writeToFile已經(jīng)給出并且調(diào)用。//proj3.epp#include#include#includeusingnamespacestd;classdoe{private:char*str;//文本字符串首地址intlength;//文本字符個(gè)數(shù)public://構(gòu)造函數(shù),讀取文件內(nèi)容,用于初始化新對(duì)象,filename是文件名字符串首地址doe(char*filename);voidreverse();//將字符序列反轉(zhuǎn)~doe();voidwriteToFile(char*filename);};doe::doe(char*filename){ifstreammyFile(filename);intlen=1001,tmp;str=newchar[len];length=0;while((tmp=myFile.get())!=EOF){str[length++]=tmp;}str[length]=’\0’;myFile.close();}voiddoe::reverse(){//將數(shù)組str中的length個(gè)字符中的第一個(gè)字符與最后一個(gè)字符交換,第二個(gè)字符與倒數(shù)第二個(gè)//字符交換……//*************333***********//*************666***********}doe::~doe(){delete[]str;}voiddoe::writeToFile(char*filename){ofstreamoutFile(filename);outFile<標(biāo)準(zhǔn)答案:inti,j;//定義兩個(gè)整數(shù)臨時(shí)變量i.j.for(i=0,j=length-1;i知識(shí)點(diǎn)解析:題目要求將myDoc中的字符序列反轉(zhuǎn),在main函數(shù)中我們看到myDoc是doc類,根據(jù)doc類的定義可以知道它是把讀取文件的字符串存到str動(dòng)態(tài)數(shù)組中。reverse函數(shù)實(shí)現(xiàn)將數(shù)組str中的length個(gè)字符中的第一個(gè)字符與最后一個(gè)字符交換,第二個(gè)字符與倒數(shù)第二個(gè)字符交換,依次類推。使用變量i和j,分別表示第一個(gè)字符和最后一個(gè)字符的下標(biāo),定義temp作為中間變量進(jìn)行交換。國家二級(jí)(C++)機(jī)試模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列語句中,錯(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都正確。2、在C++語言中函數(shù)返回值的類型是由()決定的。A、調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)B、return語句中的表達(dá)式類型C、定義該函數(shù)時(shí)所指定的函數(shù)類型D、調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:c++中函數(shù)return語句中返回的類型應(yīng)與函數(shù)定義指定的類型一致,即函數(shù)定義的類型即為函數(shù)應(yīng)返同的類型。3、關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是()。A、重載函數(shù)的函數(shù)名必須相同B、重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同C、重載函數(shù)的返回值類型必須相同D、重載函數(shù)的函數(shù)體可以有所不同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型上不同。但函數(shù)的返回類型不能作為判斷重載的依據(jù)。4、假定MyClass為一個(gè)類,那么下列的函數(shù)說明中,()為該類的析構(gòu)函數(shù)。A、void~MyClass():B、~MyClass(intn);C、MyClass();D、~MyClass();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++語言中析構(gòu)函數(shù)為符號(hào)“~”加類名,且析構(gòu)函數(shù)沒有返回值和參數(shù),故前不加void關(guān)鍵字。所以正確的形式應(yīng)該是~MyClass()。5、程序執(zhí)行后的輸出結(jié)果是()。#includevoidmain(){charflag=‘c’;switch(flag){case‘a(chǎn)’:cout<<“1”<A、12B、23C、34D、45標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閒lag=’c’,所以執(zhí)行cout<<"3"<6、要使程序執(zhí)行后的輸出結(jié)果為ABCD,應(yīng)在橫線處添加語句()。#includeusingnamespacestd;classA{public:A(){cout<<~A;}};classB:________{public:B0{cout<<’B’;}};classC:virtualpublicA{public:C(){cout<<’C’;)};classD:publicB,publicC{public:DO{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ù)的輸出語句。為了保證基類通過多條路徑被派生類繼承時(shí),即保證A只被繼承一次,輸出一個(gè)A,所以不但需要聲明A為C的虛基類,同樣也要聲明A為B的虛基類。7、有如下程序:#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。8、在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。9、如果一個(gè)模板聲明列出了多個(gè)參數(shù),則每個(gè)參數(shù)之間必須使用逗號(hào)隔開,每個(gè)參數(shù)都必須使用()關(guān)鍵字來修飾。A、constB、staticC、voidD、class標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:如果一個(gè)模板聲明列出了多個(gè)參數(shù),則每個(gè)參數(shù)之間必須使用逗號(hào)隔開,每個(gè)參數(shù)都必須使用class關(guān)鍵字來修飾。10、若有以下程序:#includeusingnamespacestd;classA{public:A(inti,intj){a=i:b=j;}voidmove(intx,inty){a+=X:b+=y;}voidshow(){cout<A、3,4B、6,8C、6,9D、4,3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題的執(zhí)行過程如下:首先Bd(3,4);語句調(diào)用B類的構(gòu)造函數(shù):B(inti,intj),B的構(gòu)造函數(shù)中調(diào)用基類A的構(gòu)造函數(shù),使得a=3,b=4;d.fun()會(huì)調(diào)用函數(shù)move(3,5),使得(3,4)和(3,5)的對(duì)應(yīng)部分分別相加,最后輸出6,9。11、兩個(gè)或兩個(gè)以上的模塊之間關(guān)聯(lián)的緊密程度稱為()。A、耦合度B、內(nèi)聚度C、復(fù)雜度D、連接度標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:耦合度是模塊間互相連接的緊密程度的度量:內(nèi)聚度是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。12、有如下程序:#includeusingnamespacestd;classAA{intk;protected:intn;voidsetK(intk){this->k=k;}public:voidsetN(intn){this->n=n;}};classBB:publicAA{/*類體略*/};intmain(){BBx;x.n=1;//1x.setN(2);//2x.k=3;//3x.setK(4);//4return0;}在標(biāo)注號(hào)碼的四條語句中正確的是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有。所以本題中n、k和setK變?yōu)榱伺缮惖谋Wo(hù)成員,不能直接使用,即1、3、4錯(cuò)誤,所以B選項(xiàng)正確。13、有如下類聲明:classBase{protected:intamount;public:Base(intn=0):mount(n){}intgetAmount()const{returnmount;}};classDerived:publicBase{protected:intvalue;public:Derived(intm,intn):value(m),Base(n){}intgetData()const{returnvalue+amount;}};已知x是一個(gè)Derived對(duì)象,則下列表達(dá)式中正確的是()。A、x.value+x.getAmount()B、x.getData()-x.getAmount()C、x.getData()-x.a(chǎn)mountD、x.value+x.a(chǎn)mount標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公有繼承中派生類對(duì)象對(duì)基類的訪問屬性。在公有繼承中,派生類對(duì)象只能訪問基類的公有成員,而不能訪問基類的保護(hù)成員和私有成員。題中x是派生類的對(duì)象,只能訪問基類中公有的Base()和getAmount()成員,而不能訪問保護(hù)類型的amount成員,故選項(xiàng)C、D錯(cuò)誤。而類對(duì)象對(duì)類成員的訪問也存在類似的情況,即類對(duì)象只能訪問類的公有成員,而value是Derived的保護(hù)成員,所以A選項(xiàng)也錯(cuò)誤。故答案為B。14、下列選項(xiàng)中,不屬于數(shù)據(jù)庫管理的是()。A、數(shù)據(jù)庫的建立B、數(shù)據(jù)庫的調(diào)整C、數(shù)據(jù)庫的監(jiān)控D、數(shù)據(jù)庫的校對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理一般包括:數(shù)據(jù)庫的建立、數(shù)據(jù)庫的調(diào)整、數(shù)據(jù)庫的重組、數(shù)據(jù)庫的安全性控制與完整性控制、數(shù)據(jù)庫的故障恢復(fù)和數(shù)據(jù)庫的監(jiān)控。15、下列程序的執(zhí)行結(jié)果為()。#includevoidmain(){inta=3.b=0;int*p=&a;b=+a++;cout<<*p<<","<A、3,4B、4,3C、3,4D、4,4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:*p為所指對(duì)象a的值,語句“b=+a++;”等價(jià)于“b=b+a;a=a+1;”。16、下列模板聲明中,有語法錯(cuò)誤的是A、templateTfun(Tx){returnx;}B、templateTfun(Tx,intn){returnx*n;}C、templateTfun(T*p){return*p;}D、templateTclassA{Tn;};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查模板的定義,B選項(xiàng)中x為T類型的,n為int型的,但是x*n就不一定是T類型的,所以錯(cuò)誤。17、下面程序的輸出結(jié)果是()。#include#include“string.h”voidmain(){chara[]=“HelloTest”,b[]=“Test”;strcpy(a,b):cout<A、HelloB、TestC、HelloTestD、HelloTestHelloTest標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中首先定義字符數(shù)組a和b,其值分別為“HelloTest”和“Test”。然后利用strcpy復(fù)制函數(shù),將b的值復(fù)制給a,所以輸出a的結(jié)果為Test。18、下列運(yùn)算符中,在C++語言中不能重載的是()。A、*B、>=C、::D、/標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:不能被重載的運(yùn)算符還包括:“.”、“.*”、“->*”和“?:”。19、下列語句中能正確定義變量的是()。A、constint*pNULL;B、constinty==99;C、constintx=0;D、constintz:100;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:const關(guān)鍵字用來定義常量,定義的同時(shí)必須完成初始化,而初始化需要使用賦值運(yùn)算符指定初值,選項(xiàng)A沒有初始化,錯(cuò)誤;選項(xiàng)B使用關(guān)系運(yùn)算符進(jìn)行賦值運(yùn)算,錯(cuò)誤;選項(xiàng)D不是初始化語句,錯(cuò)誤;選項(xiàng)C定義整型變量x為常量,值為0,正確,本題答案為C。20、已知表達(dá)式++x中的“++”是作為成員函數(shù)重載的運(yùn)算符,則與++x等效的運(yùn)算符函數(shù)調(diào)用形式為()。A、x.operator++(1)B、operator++(x)C、X.operator++()D、x.operator++(x)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查的是前綴自增運(yùn)算符的重載。由于題意中“++”是作為成員函數(shù)重載的運(yùn)算符,所以若要顯式的調(diào)用該運(yùn)算符,需要使用該類的對(duì)象加上“.”運(yùn)算符,即x.operator++();又因?yàn)闉榱藚^(qū)分前綴運(yùn)算符和后綴運(yùn)算符,在調(diào)用后綴運(yùn)算符時(shí),需要給出一個(gè)整型實(shí)參值,而前綴運(yùn)算符則不需要,所以++x等效的運(yùn)算符函數(shù)調(diào)用形式為:x.operator++(),答案為C選項(xiàng)。21、一個(gè)運(yùn)動(dòng)隊(duì)有多個(gè)隊(duì)員,一個(gè)隊(duì)員僅屬于一個(gè)運(yùn)動(dòng)隊(duì),一個(gè)隊(duì)一般都有一個(gè)教練,則實(shí)體運(yùn)動(dòng)隊(duì)和隊(duì)員的聯(lián)系是A、一對(duì)多B、一對(duì)一C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般來說,實(shí)體集之間必須通過聯(lián)系來建立聯(lián)接關(guān)系,分為三類:一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:m)、多對(duì)多聯(lián)系(m:n)。實(shí)體運(yùn)動(dòng)隊(duì)和隊(duì)員的關(guān)系為1:m聯(lián)系,故A選項(xiàng)正確。22、下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。A、軟件測試B、概要設(shè)計(jì)C、軟件維護(hù)D、詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段,其中開發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測試。23、堆排序最壞情況下的時(shí)間
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度瓦工裝修綠色施工認(rèn)證合同3篇
- 二零二五版?;饭愤\(yùn)輸安全監(jiān)管服務(wù)合同2篇
- 二零二五版攪拌站輪胎專用備品備件供應(yīng)合同3篇
- 二零二五版智能辦公樓深度清潔及保養(yǎng)服務(wù)合同2篇
- 二零二五版辦公室文員工作環(huán)境優(yōu)化合同3篇
- 二零二五年度高端房地產(chǎn)項(xiàng)目個(gè)人連帶責(zé)任保證擔(dān)保合同2篇
- 二零二五年度互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)設(shè)施租賃合同3篇
- 2025年度中式烹飪技藝傳承與創(chuàng)新合同協(xié)議3篇
- 屋頂防水施工合同(2篇)
- 二零二五年救生員水上安全培訓(xùn)與勞動(dòng)合同3篇
- 廣東省惠州市2024-2025學(xué)年高一上學(xué)期期末考試英語試題(含答案)
- 醫(yī)院骨科2025年帶教計(jì)劃(2篇)
- 環(huán)境保護(hù)應(yīng)急管理制度執(zhí)行細(xì)則
- 2024-2030年中國通航飛行服務(wù)站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 機(jī)械制造企業(yè)風(fēng)險(xiǎn)分級(jí)管控手冊(cè)
- 地系梁工程施工方案
- 藏文基礎(chǔ)-教你輕輕松松學(xué)藏語(西藏大學(xué))知到智慧樹章節(jié)答案
- 2024電子商務(wù)平臺(tái)用戶隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語 含答案
- 醫(yī)學(xué)教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
評(píng)論
0/150
提交評(píng)論