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

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷33(共9套)(共255題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共24題,每題1.0分,共24分。)1、下列關(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)行插入和刪除的線性表,允許進(jìn)行插入和刪除元素的一端稱為棧頂,另一端稱為棧底。棧是按照“先進(jìn)后出”的原則組織數(shù)據(jù)的。2、下列敘述中正確的是A、在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化B、在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化C、在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化D、上述三種說法都不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧跟隊(duì)列不同,元素只能在棧項(xiàng)壓入或彈出,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化,遵循后進(jìn)先出的規(guī)則。3、下列與隊(duì)列結(jié)構(gòu)有關(guān)聯(lián)的是A、函數(shù)的遞歸調(diào)用B、數(shù)組元素的引用C、多重循環(huán)的執(zhí)行D、先到先服務(wù)的作業(yè)調(diào)度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:隊(duì)列中最先插入的元素將最先被刪除,最后插入的元素將最后被刪除。4、一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為A、16B、10C、6D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè),故此度為1的結(jié)點(diǎn)個(gè)數(shù)=總結(jié)點(diǎn)數(shù)-葉子節(jié)點(diǎn)數(shù)-度為2的節(jié)點(diǎn)數(shù)=25-5-4=16。5、設(shè)樹T的深度為4,其中度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)分別為4,2,1,1。則T中的葉子結(jié)點(diǎn)數(shù)為()。A、8B、7C、6D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:深度為m二叉樹其總結(jié)點(diǎn)數(shù)為2m一1=24—1=15??偨Y(jié)點(diǎn)數(shù)減去度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)就是葉子結(jié)點(diǎn)數(shù)。15一4一2一1一1=7。6、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。A、自頂向下B、逐步求精C、模塊化D、可復(fù)用標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化,限制使用goto語句。自頂向下是指程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。逐步求精是指對(duì)復(fù)雜問題應(yīng)設(shè)計(jì)一些子目標(biāo)過渡,逐步細(xì)化。模塊化是把程序要解決的總目標(biāo)先分解成分目標(biāo),再進(jìn)一步分解成具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊。可復(fù)用性是指軟件元素不加修改成稍加修改便可在不同的軟件開發(fā)過程中重復(fù)使用的性質(zhì)。軟件可復(fù)用性是軟件工程追求的目標(biāo)之一,是提高軟件生產(chǎn)效率的最主要方法,不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法。7、下列選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是()。A、繼承性B、多態(tài)性C、類比性D、封裝性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:面向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)主要特征是:封裝性、繼承性和多態(tài)性。封裝性即只需知道數(shù)據(jù)的取值范圍和可以對(duì)該數(shù)據(jù)施加的操作,而無需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。繼承性是指使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。對(duì)象根據(jù)所接受的消息而做出動(dòng)作,同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng),該現(xiàn)象稱為多態(tài)性。8、存在定義inta[10],x,*pa;,若pa=&a[0],下列的哪個(gè)選項(xiàng)和其他3個(gè)選項(xiàng)不是等價(jià)的()?A、x=*pa;B、x=*(a+1);C、x=*(pa+1);D、x=a[1];標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B、C、D都是獲取a(1)元素,而選項(xiàng)A是獲取a(0)的元素。9、在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為()。A、概念模式B、外模式C、內(nèi)模式D、物理模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:用戶所見到的數(shù)據(jù)模式是外模式也稱用戶模式。它是用戶的數(shù)據(jù)視圖,它由概念模式導(dǎo)出。一個(gè)概念模式可以有若干個(gè)外模式,每個(gè)用戶只關(guān)心與它有關(guān)的外模式,這樣不僅可以屏蔽大量無關(guān)信息,而且有利于數(shù)據(jù)維護(hù)。10、—個(gè)工作人員可使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)被多個(gè)人使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是()。A、一對(duì)一B、—對(duì)多C、多對(duì)多D、多對(duì)一標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果一個(gè)工作人員只能使用一臺(tái)計(jì)算機(jī)且一臺(tái)計(jì)算機(jī)只能被一個(gè)工作人員使用,則關(guān)系為一對(duì)一;如果一個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),但是一臺(tái)計(jì)算機(jī)只能被一個(gè)工作人員使用,則關(guān)系為一對(duì)多;如果一個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),一臺(tái)計(jì)算機(jī)也可以被多個(gè)工作人員使用,則關(guān)系為多對(duì)多。11、靜態(tài)數(shù)據(jù)成員是為()的數(shù)據(jù)。A、私有B、保護(hù)C、所有對(duì)象共享D、類成員標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員是一種特殊的數(shù)據(jù)成員。靜態(tài)數(shù)據(jù)成員不屬于某一個(gè)對(duì)象,在為對(duì)象所分配的空間中不包括靜態(tài)數(shù)據(jù)成員所占的空間。所有對(duì)象共享這些靜態(tài)數(shù)據(jù)成員,都可以引用它。12、有如下語句序列:intx=100,&r=x,count<<x<<’—’<<r<<end1:己知其中變量x的地址為0012FF7C,則執(zhí)行該語句序列的輸出結(jié)果為()。A、100—100B、100—0012FF7CC、0012FF7C—100D、0012FF7C—0012FF7C標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在語句inx=100,&R;中聲明r初始化對(duì)x的引用,所以x和&r的值都是100。13、下列關(guān)于類和對(duì)象的敘述中,錯(cuò)誤的是()。A、一個(gè)類只能有一個(gè)對(duì)象B、對(duì)象是類的具體實(shí)例C、類是對(duì)某一類對(duì)象的抽象D、類和對(duì)象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是類和對(duì)象的概念。類是用戶定義的…種數(shù)據(jù)類型,可以使用這個(gè)類型來說明一個(gè)或多個(gè)變量,即對(duì)象。14、有如下程序:#includeusingnamespacestd;classPart{public:Part(intx=0):val(x){cout<A、123321B、213312C、213D、123123標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類的構(gòu)造與析構(gòu)。建立類的對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被繼承時(shí)聲明的順序(自左向右)接著執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序,最后執(zhí)行自身的構(gòu)造函數(shù)。析構(gòu)順序與之相反。本題中,Whole類中有兩個(gè)Part類的成員p1和p2,根據(jù)它們定義的順序,先構(gòu)造p1再構(gòu)造p2。所以,首先被構(gòu)造的是p1(y),輸出2;第二個(gè)被構(gòu)造的是p2(x),輸出1;最后調(diào)用析構(gòu)函數(shù),輸出val的值3;析構(gòu)函數(shù)調(diào)用順序與構(gòu)造函數(shù)相反。故最后輸出213312。15、有如下4個(gè)語句:①cout<<’A’<A、①和③B、①和④C、②和③D、②和④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查C++流的使用。setfill()作用是設(shè)置填充字符;left是使輸出數(shù)據(jù)在指定寬度內(nèi)左對(duì)齊:right是使輸出數(shù)據(jù)在指定寬度內(nèi)右對(duì)齊。16、下列關(guān)于派生類和基類的描述中,正確的是()。A、派生類成員函數(shù)只能訪問基類的公有成員B、派生類成員函數(shù)只能訪問基類的公有和保護(hù)成員C、派生類成員函數(shù)可以訪問基類的所有成員D、派生類對(duì)基類的默認(rèn)繼承方式是公有繼承標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類不論是采用那種繼承方式繼承基類,它的成員函數(shù)只能訪問基類的公有成員和保護(hù)成員。17、已知表達(dá)式++a中的“++”是作為成員函數(shù)重載的運(yùn)算符,則與++a等效的運(yùn)算符函數(shù)調(diào)用形式為()。A、a.operator++(1)B、operator++(a)C、operator++(a,1)D、a.operator++()標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要是對(duì)運(yùn)算符霞載的考查?!?+”實(shí)現(xiàn)增加1,所以除了a之外的另一個(gè)參數(shù)默認(rèn)為1。18、將前綴運(yùn)算符“一一”重載為非成員函數(shù),下列原型中,能正確用于類中說明的是()。A、Decr&operator一一(int);B、Decroperator一一(Decr&,int);C、friendDecr&operator一一(Decr&);D、friendDecroperator一一(Decr&,int);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)橐鳛榉浅蓡T函數(shù)重載,所以加friend,作為前綴操作,其返回的操作結(jié)果是對(duì)該變量的引用,所以類型為Decr&,操作數(shù)出現(xiàn)在參數(shù)表中,應(yīng)聲明為引用,即Decr&。19、若要重載+、=、<<、==和[]運(yùn)算符,則必須作為類成員重載的運(yùn)算符是()。A、+和=B、=和<<C、==和<<D、=和[]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:=、[]、()、—>以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,而且不能是針對(duì)枚舉類型操作數(shù)的重載。20、有如下程序:#includeusingnamespacestd;classMedia{public:voidName();voidShow();protected:intpage;};classBook:privateMedia{public:voidPrint(){cout<A、語句①B、語句②C、語句③D、語句④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類Book私有繼承自類Media,所以類Media中的公有成員函數(shù)Name()在繼承類Book中變成了私有成員函數(shù),因而類Book的對(duì)象Bible不能訪問私有成員函數(shù)Name()。21、如需要向一個(gè)二進(jìn)制文件尾部添加數(shù)據(jù),則該文件的打開方式為()。A、ios_base::appB、ios_base::binary|los__base::outC、ios__base::outD、ios_base::binary|ios_base::app標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:ios_base::binary模式是作為二進(jìn)制文件打開,ios_base::app模式是作為添加數(shù)據(jù)而打開(總是在尾部寫)。22、有如下函數(shù)模板定義:templateTfunc(Tx,Ty){returnx*x+y*y;}在下列對(duì)func的調(diào)用中,錯(cuò)誤的是()。A、func(3,5);B、func(3.0,5.5);C、func(3,5.5);D、func(3,5.5);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板的使用。引用模板函數(shù)和引用一般函數(shù)在語法形式上基本相同。需要注意的是說明一個(gè)函數(shù)模板后,當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個(gè)對(duì)應(yīng)的函數(shù)調(diào)用時(shí),將根據(jù)實(shí)參中的類型來確認(rèn)是否匹配函數(shù)模板中的對(duì)應(yīng)形參。本題C選項(xiàng)中,編譯系統(tǒng)從第一個(gè)參數(shù)“3”獲得信息“int”和從第二個(gè)參數(shù)獲得信息“double”兩者矛盾,錯(cuò)誤:A、B選項(xiàng)正確;D選項(xiàng)中,函數(shù)名后的是模板實(shí)參表,編譯系統(tǒng)會(huì)將double型的形參“5.5”自動(dòng)轉(zhuǎn)化成int類型。23、在定義一個(gè)類模板時(shí),模板形參表是用一對(duì)括號(hào)括起來的,所采用的括號(hào)是()。A、()B、[]C、<>D、{)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:聲明一個(gè)類模板的格式是:template<<模板形參聲明>><類聲明>。24、下列關(guān)于C++流的說明中,正確的是()。A、與鍵盤、屏幕、打印機(jī)和通信端口的交互都可以通過流類來實(shí)現(xiàn)B、從流中獲取數(shù)據(jù)的操作稱為插入操作,向流中添加數(shù)據(jù)的操作稱為提取操作C、cin是一個(gè)預(yù)定義的輸入流類D、輸出流有一個(gè)名為open的成員函數(shù),其作用是生成一個(gè)新的流對(duì)象標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++流的概念。從輸入流中提取數(shù)據(jù)稱為提取操作,把表達(dá)式插入到輸出流中的操作稱為插入操作,故選項(xiàng)B錯(cuò)誤;cin是一個(gè)預(yù)定義的輸入流對(duì)象而不是流類,故選項(xiàng)c錯(cuò)誤;輸入輸出流中沒有open成員函數(shù),故選項(xiàng)D錯(cuò)誤。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共33題,每題1.0分,共33分。)1、在開發(fā)一個(gè)C++程序的整個(gè)過程中,第3個(gè)步驟為()。A、鏈接B、運(yùn)行C、編輯D、編譯標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++程序的開發(fā)過程是編輯、編譯、鏈接、運(yùn)行和調(diào)試。2、下列關(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)解析:mis作用域是在類內(nèi)部,當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員時(shí),編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù)。另外,全局函數(shù)和靜態(tài)函數(shù)都不能使用this指針。所以答案為D。3、下列敘述中正確的是()。A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹這類的的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。4、某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。A、3B、4C、6D、7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。題目中的二叉樹的葉子結(jié)點(diǎn)為1,因此度為2的結(jié)點(diǎn)的數(shù)目為0,故該二叉樹為7層,每層只有一個(gè)結(jié)點(diǎn)。5、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是()。A、編輯軟件B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、瀏覽器標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件根據(jù)應(yīng)用目標(biāo)的不同,是多種多樣的。軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開發(fā)的軟件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的軟件。支撐軟件是介于系統(tǒng)軟件和應(yīng)用軟件之間,協(xié)助用戶開發(fā)軟件的工具性軟件,包括輔助和支持開發(fā)和維護(hù)應(yīng)用軟件的工具軟件,還包括輔助管理人員控制開發(fā)進(jìn)程和項(xiàng)目管理的工具軟件。6、為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡(jiǎn)單的函數(shù)定義為()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、函數(shù)模板標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C中的預(yù)處理宏函數(shù)。兩者的區(qū)別在于,宏函數(shù)是由預(yù)處理器對(duì)宏進(jìn)行替換,而內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的。內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)像宏函數(shù)一樣展開,所以它沒有一般函數(shù)的參數(shù)壓棧和退棧操作,減少了調(diào)用開銷,因此,內(nèi)聯(lián)函數(shù)比普通函數(shù)有更高的執(zhí)行效率。7、下面不屬于軟件需求分析階段主要工作的是()。A、需求變更申請(qǐng)B、需求分析C、需求評(píng)審D、需求獲取標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在軟件開發(fā)的過程中,應(yīng)該盡早的制定測(cè)試計(jì)劃,其中在需求分析階段制定系統(tǒng)測(cè)試計(jì)劃,在概要設(shè)計(jì)階段制定集成測(cè)試計(jì)劃,在詳細(xì)設(shè)計(jì)階段制定單元測(cè)試計(jì)劃。8、數(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ù)流從輸入到輸出的移動(dòng)變換過程。其中帶箭頭的線段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。9、軟件測(cè)試的目的是()。A、評(píng)估軟件可靠性B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、改正程序中的錯(cuò)誤D、發(fā)現(xiàn)程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件測(cè)試的目的是為了發(fā)現(xiàn)程序中的錯(cuò)誤,而軟件調(diào)試是為了更正程序中的錯(cuò)誤。10、數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決()。A、數(shù)據(jù)共享問題B、數(shù)據(jù)安全問題C、大量數(shù)據(jù)存儲(chǔ)問題D、簡(jiǎn)化數(shù)據(jù)維護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫應(yīng)用系統(tǒng)中的一個(gè)核心問題就是設(shè)計(jì)一個(gè)能滿足用戶要求、性能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)是在一定平臺(tái)制約下,根據(jù)信息需求與處理需求設(shè)計(jì)出性能良好的數(shù)據(jù)模式。數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題。11、有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(){++count;}~MyClass(){一一count;}staticintgetCount(){returncount;}private:staticintcount;};intMyClass::count=0;immain(){MyClassobj;cout<A、121B、232C、221D、122標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查靜態(tài)數(shù)據(jù)成員。靜態(tài)數(shù)據(jù)成員在內(nèi)存中只占一份空間,靜態(tài)數(shù)據(jù)成員屬于類,即使不定義對(duì)象,也會(huì)給靜態(tài)數(shù)據(jù)成員分配空間,可以被引用。本題中先是定義了一個(gè)對(duì)象obj,執(zhí)行構(gòu)造函數(shù)使得靜態(tài)數(shù)據(jù)成員count變?yōu)榱?,然后又定義了指針對(duì)象,執(zhí)行構(gòu)造函數(shù)后,count變?yōu)榱?,釋放指針后,執(zhí)行析構(gòu)函數(shù),使得count變?yōu)榱?。所以本題答案為A。12、用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是()。A、關(guān)系模型B、網(wǎng)狀模型C、層次模型D、以上三個(gè)都是標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,它們自頂向下、層次分明。13、定義如下枚舉類型:enum{Monday,Tuesday,Wednesday,Thrusday,F(xiàn)riday=2};,則下列語句正確的是()。A、表達(dá)式Wednesday==Friday的值是trueB、Dayday;day=3C、Dayday;day=Monday+3D、Dayday;day=Tuesday+10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:enum<枚舉類型名>{<枚舉元素表>};其中:關(guān)鍵詞enum表示定義的是枚舉類型,枚舉類型名由標(biāo)識(shí)符組成,而枚舉元素表由枚舉元素或枚舉常量組成。其中enum{Monday,Tuesday,Wednesday,Thrusday,F(xiàn)riday=2}的值由0開始,即0,1,2,3。D中的本題中的枚舉類型中的數(shù)據(jù)值Wednesday為2,而Friday的值賦值為2,所以判斷Wednesday等于:Friday的表達(dá)式值為真,即true。即選擇A)。14、類MyClass的定義如下:classMyClass{public:MyClass(){value=0;}SetVariable(inti){value=i;}private;intvalue;);則對(duì)下列語句序列正確的描述是()。MyClass*P,my;p=&my;A、語句p=&my;是把對(duì)象my賦值給指針變量PB、語句Myaass*p,my;會(huì)調(diào)用兩次類MyClass的構(gòu)造函數(shù)C、對(duì)語句*p.SetVariable(5)的調(diào)用是正確的D、語句p->SetVariable(5)與語句my.SetVariable(5)等價(jià)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)A),語句p=&my;是把對(duì)象my的地址值賦值給指針變量p;選項(xiàng)B),語句MyClass*p,my;,由于p只是一個(gè)指向?qū)ο蟮闹羔槪虼硕x指針p不調(diào)用構(gòu)造函數(shù),所以此語句只調(diào)用一次構(gòu)造函數(shù);對(duì)成員函數(shù)的引用可以通過兩種形式:指針->成員函數(shù)(形參表)或者對(duì)象名.成語函數(shù)名(形參表),故選項(xiàng)C)錯(cuò)誤,選項(xiàng)D)正確。15、Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是()。A、cppB、exeC、objD、lik標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在VC6.0集成開發(fā)環(huán)境下,用戶可以使用編譯(compile)命令將一個(gè).cpp為擴(kuò)展名的C++源程序文件轉(zhuǎn)換成一個(gè)以obj為擴(kuò)展名的目標(biāo)文件。16、在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是A、橢圓形B、矩形C、菱形D、三角形標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:實(shí)體型(Entity)一用矩形表示;屬性(Attrjbute)一用橢圓形表示,聯(lián)系(Relationship)一用菱形表示,菱形框內(nèi)寫明聯(lián)系名。17、有如下程序:#include#includeusingnsmespacestd;classPerson{public:Person(stringn):name(n){cout<<’P’;}private:stringname;};classDate{public:Date(inty=2012,intnl=12,intd=21):year(Y),month(ITI),day(d){cout<<’D’;}private:intyear,month,day;};classStudent:publicPersonipublic:Student(stringn,inty,intm,intd,charc):birthday(y,m,d),sex?,Person(n){cout<<’S’;}private:Datebirthday;charsex;};intrain(){Studentstul(“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)。18、下列定義語句中,錯(cuò)誤的是()。A、intpx*;B、char*acp[10];C、char(*pac)[10];D、int(*p)();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針變量聲明的一般形式為:<數(shù)據(jù)類型>*<變量名>,在選項(xiàng)A中,*放在變量名的后面,所以是錯(cuò)誤的。19、下列關(guān)于函數(shù)模板的描述中,正確的是()。A、函數(shù)模板是一個(gè)實(shí)例函數(shù)B、使用函數(shù)模板定義的函數(shù)沒有返回類型C、函數(shù)模板的類型參數(shù)與函數(shù)的參數(shù)相同D、通過使用不同的類型參數(shù),可以從函數(shù)模板得到不同的實(shí)例函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼相同,只是所針對(duì)的數(shù)據(jù)類型不同。數(shù)據(jù)類型成了函數(shù)模板的參數(shù),所以函數(shù)模板是一種參數(shù)化類型的函數(shù)。20、有如下程序:#include#includeusingnamespacestd;classMyString{public:charstr[80];MyString(constchar*s){strcpy(str,s);}MyString&operator+=(MyStringa){strcat(str,a.str);return*this;}};ostream&operator<<(ostream&s,constMyString&z){returns<A、abcB、cdeC、abcdeD、abccde標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在類MyString中,定義了帶參數(shù)的構(gòu)造函數(shù)MyString(constchar*s),其作用是把s指向的字符串拷貝到字符組str中。在類中還對(duì)運(yùn)算+=進(jìn)行重載定義,其作用是把字符串str和a相連接并賦給str,所以在主函數(shù)中執(zhí)行x+=y時(shí),結(jié)果為abccde。21、下列程序段中包含4個(gè)函數(shù)。其中具有隱含this指針的是()。intfunl();classTest{public:intfun2();friendintfun3();staticintfun4();}A、funlB、fun2C、fun3D、fun4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:this指針是成員函數(shù)所屬對(duì)象的指針,它指向類對(duì)象的地址。成員函數(shù)通過這個(gè)指針知道自己屬于哪一個(gè)對(duì)象。this指針是一個(gè)隱含的指針,它隱含于每個(gè)類的非靜態(tài)成員函數(shù)中,它明確的地表示出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象。22、有如下類和對(duì)象的定義:c1assConstants{public;staticdoublegetPIO{retum3.1416;)};Constantsconstants,下列各組語句中,能輸出3.1416的是()。A、cout<<constants—>getPI();和cout<<Constants::gerPI();B、cout<<constants.getPI();和cout<<Constants.getPI();C、cout<<constants—>getPI();和cout<<Constants—>getPI();D、cout<<constants.getPI();和cout<<Constants::getPI();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是靜態(tài)成員函數(shù)的引用。getPI()是類Constants的靜態(tài)成員函數(shù)。引用靜態(tài)成員函數(shù)可以有兩種形式:一是通過類名直接進(jìn)行調(diào)用,例如類名::靜態(tài)成員函數(shù)名:另一種是用類的任何對(duì)象名進(jìn)行調(diào)用其作用僅是通過對(duì)象名間接的指出類名,例如constants.getPI()選項(xiàng)D即是這種調(diào)用方式。23、有如下程序:classBase{public:intdata;};classDerivedl:publicBase{};classDerived2:protectedBase{};intmain(){Derivedldl;Derived2d2;dl.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ù)繼承的類Dervied2不能訪問基類Base中的公共數(shù)據(jù)成員data。24、有如下程序:#inc1ude<iostream>usingnamespacestd;classA{public:A(inti){x=i;)voiddispa(){cout<<x<<’,’;}private:intx;};classB:publicA{public:B(inti):A(i+10){x=i;}.voiddispb(){dispa();cout<<x<<end1;}privateintx:};intmain(){Bb(2);b.dispb();return0:}運(yùn)行時(shí)輸出的結(jié)果是()。A、10,2B、12,10C、12,2D、2,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類的構(gòu)造。主函數(shù)中,首先聲明B類的對(duì)象b,執(zhí)行進(jìn)入B的構(gòu)造函數(shù)B(inti)再接著執(zhí)行A的構(gòu)造函數(shù)A(inti),形參i為12,x被賦值12;通過對(duì)象b調(diào)用其成員函數(shù)dispb(),輸出結(jié)果12;接著執(zhí)行函數(shù)dispb()的第2條語句輸出2,然后主函數(shù)結(jié)束。25、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assGA{public;virtualintf(){retuml;}};c1assGB:publicGA{public;virtualintf(){return2;}};voidshow(GAg){cout<<g.f();}voiddisp1ay(GA&g){cout<<g.f();}intmain(){GAa:show(a);disp1ay(a);GBb:show(b);disp1ay(b);retum0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、1111B、1211C、1112D、1212標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查派生類與虛函數(shù)的考查。由主函數(shù)main入手,其中分別定義了類GA和GB的對(duì)象a和b。首先,執(zhí)行參數(shù)a的show函數(shù)調(diào)用,其中的輸出語句為調(diào)用GA類中的f()虛函數(shù),返回1。同理disp1ay(a)函數(shù)輸出1。show(b)函數(shù)中調(diào)用的為GA中的f()函數(shù),disp1ay(b)調(diào)用GA中f()函數(shù),返回1,disp1ay(b)調(diào)用GB中的f()函數(shù)返回2。所以最后輸出為1112。26、有如下程序:#includeusingnamespacestd;classB{public:virtualvoidf(){cout<<"B";}voidg(){cout<<"B";}};classD:publicB{public:voidf(){cout<<"D";}voidg(){cout<f();P->g();}intmain(){Dobj;h(&obj);return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、DDB、BBC、BDD、DB標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在基類B中定義虛函數(shù)f()和成員函數(shù)g(),而在派生類D中定義了函數(shù)f()和同名函數(shù)g()。而函數(shù)h中的形參為指向基類的指針變量p,所以在主函數(shù)中執(zhí)行h(&obj)時(shí),會(huì)調(diào)用派生類的函數(shù)f(),輸出D,再調(diào)用基類的函數(shù)g(),輸出B。27、在定義函數(shù)模板或類模板時(shí),開頭的保留字是()。A、typenameB、templateC、classD、typedef標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:定義函數(shù)模板或類模板時(shí),開頭的保留字是template。28、下列關(guān)于模板的描述中,錯(cuò)誤的是()。A、類模板的成員函數(shù)都是模板函數(shù)B、函數(shù)模板是一種參數(shù)化類型的函數(shù)C、滿足一定條件時(shí)可以省略模板實(shí)參D、模板形參只能由關(guān)鍵字t)rpename聲明標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:同一模板的聲明和定義中,模板形參的名字不必相同。每個(gè)模板類型形參前面必須帶上關(guān)鍵字typename/class,每個(gè)非類型形參前面必須帶上類型名字。29、已知主函數(shù)中通過如下語句序列實(shí)現(xiàn)對(duì)函數(shù)模板swap的調(diào)用:inta[10],b[10];swap(a,b,10);下列對(duì)函數(shù)模板swap的聲明中,會(huì)導(dǎo)致上述語句序列發(fā)生編譯錯(cuò)誤的是()。A、temp1ate<typenameT>voidswap(Ta[],Tb[],intsize);B、temp1ate<typenameT>voidswap(intsize,Ta[],Tb[]);C、temp1ate<typenameT1,typenameT2>voidswap(T1a[],T2b[],intsize};D、temp1ate<c1assT1,c1assT2>voidswap(T1a[],T2b[],intsize);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題目中函數(shù)swap(a,b,10)調(diào)用語句可知,在對(duì)函數(shù)模板swap的聲明語句中,應(yīng)將第一、二個(gè)參數(shù)設(shè)為數(shù)組變量,第三個(gè)參數(shù)為整型變量。30、在語句“cout<<’A’:”中,cout是()。A、類名B、對(duì)象名C、函數(shù)名D、C++的關(guān)鍵字標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++有四個(gè)預(yù)定義的流對(duì)象:cin標(biāo)準(zhǔn)輸,cout標(biāo)準(zhǔn)輸出,cerr標(biāo)準(zhǔn)出錯(cuò)信息輸出,clog帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出。31、在C++中既可以用于文件輸入又可以用于文件輸出的流類是()。A、fstrearnB、ifstreamC、ofstreamD、iostream標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:文件流以磁盤文件以及其他可按文件方式進(jìn)行管理的外部設(shè)備為輸入輸出對(duì)象。ifstream是文件輸入流類,ofstream是文件輸出流類,fstream是文件輸入輸出流類,當(dāng)使用cin、cout的預(yù)定義流對(duì)象進(jìn)行針對(duì)標(biāo)準(zhǔn)設(shè)備的I/O操作,則需.要使用iostream文件。32、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為準(zhǔn)B、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略C、虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參D、模板參數(shù)表不能為空標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在調(diào)用一個(gè)模板函數(shù)時(shí),如果編譯系統(tǒng)能夠從模板實(shí)參表判斷其中或全部虛擬類型參數(shù)對(duì)應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若干參數(shù),則模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。33、下列模板聲明中,有語法錯(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)解析:第四個(gè)選項(xiàng)是定義類模板的,但是class前面的T是多余的。對(duì)于第二個(gè)選項(xiàng),同一個(gè)類的對(duì)象相乘還是同一個(gè)類的對(duì)象,但是可能要考慮溢出的問題。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共37題,每題1.0分,共37分。)1、結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。A、順序結(jié)構(gòu),分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu)B、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)C、分支結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)D、分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu),循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序設(shè)計(jì)語言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。遵循程序結(jié)構(gòu)化的設(shè)計(jì)原則,按結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序易于理解、使用和維護(hù);可以提高編程工作的效率,降低軟件的開發(fā)成本。2、下列描述中正確的是()。A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B、數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)C、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系;數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示,一種邏輯結(jié)構(gòu)可以表示成多種存儲(chǔ)結(jié)構(gòu);而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。3、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù);隊(duì)列是“先進(jìn)先出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。4、一棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為A、219B、229C、230D、231標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè),故總結(jié)點(diǎn)數(shù)=葉子節(jié)點(diǎn)數(shù)+度為2的節(jié)點(diǎn)數(shù)+度為1的節(jié)點(diǎn)數(shù)=80+79+70=229。5、有如下程序:#include<iostream>usingnamespacestd;classTest{public:Test(){n+=2;}-TestO{n-=3;}staticintgetNum(){returnn;}private:staticintn:};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<’’n=’’<<Test::getNum()<<end1;return0;}執(zhí)行后的輸出結(jié)果是()。A、n=0B、n=1C、n=2D、n=3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語句Test*p=newTest;會(huì)調(diào)用類的構(gòu)造函數(shù)Test(){n+=2;},使n的值由原來的1變?yōu)?,然后deletep調(diào)用類的析構(gòu)函數(shù)~Test(){n-=3;},因?yàn)閚是static型變量,所以會(huì)在3的基礎(chǔ)上減3使得輸出結(jié)果為0。6、關(guān)于靜態(tài)成員的描述中,錯(cuò)誤的是()。A、靜態(tài)成員可分為靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)B、靜態(tài)數(shù)據(jù)成員定義后必須在類體內(nèi)進(jìn)行初始化C、靜態(tài)數(shù)據(jù)成員初始化不使用其構(gòu)造函數(shù)D、靜態(tài)數(shù)據(jù)成員函數(shù)中不能直接引用非靜態(tài)成員標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:可以在類的構(gòu)造函數(shù)中對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化。7、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:50),初始狀態(tài)為front=rear=50。經(jīng)過一系列正常的操作后,front=rear一1。為了在該隊(duì)列中尋找值最大的元素,在最壞情況下需要的比較次數(shù)為A、0B、1C、49D、50標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:front指定隊(duì)頭位置,刪除一個(gè)元素就將front順時(shí)針移動(dòng)一位;rear指尾指針,指向元素要插入的位置,插入一個(gè)元素就將rear順時(shí)針移動(dòng)一位;操作后,循環(huán)隊(duì)列的隊(duì)頭指針等于尾指針-1,說明此時(shí)隊(duì)列已經(jīng)是空隊(duì)列,那么就不用比較了。8、下面不屬于軟件設(shè)計(jì)原則的是()。A、抽象B、模塊化C、自底向上D、信息隱藏標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件設(shè)計(jì)的基本原則包括抽象、信息隱藏、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。9、耦合性和內(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)解析:耦合性是反映模塊間互相連接的緊密程度,內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此接合的緊密程序。提高模塊的內(nèi)聚性,降低模塊的耦合性是有利于模塊的獨(dú)立性。10、下列關(guān)于函數(shù)的描述中,錯(cuò)誤的是()。A、函數(shù)可以沒有返回值B、函數(shù)可以沒有參數(shù)C、函數(shù)可以是一個(gè)類的成員D、函數(shù)不能被定義為模板標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)的基礎(chǔ)知識(shí),函數(shù)可以沒有返回值,沒有參數(shù),也可以是一個(gè)類的成員,函數(shù)可以定義為模板,即模板函數(shù)。11、有如下程序:#includeusingnamespacestd;classtest{private:inta;public:test0{cout+"constructor"+end1;}test(inta){cout+a+end1;}test(consttest&test){a=test.a(chǎn);cout+,,copyconstructor"+end1;{test(){Cout+"destructor"+end1;){;intmain(){testA(3);return0;{運(yùn)行時(shí)輸出的結(jié)果是()。A、3B、constructordestructorC、copyconstructordestructorD、3destructor標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。一個(gè)類可以有多個(gè)構(gòu)造函數(shù),但只能有一個(gè)析構(gòu)函數(shù)。每一個(gè)對(duì)象在被創(chuàng)建時(shí),都會(huì)隱含調(diào)用眾多構(gòu)造函數(shù)中的一個(gè),而在銷毀時(shí)又會(huì)隱含調(diào)用唯一的析構(gòu)函數(shù)。此題中,主函數(shù)創(chuàng)建對(duì)象A是會(huì)隱含調(diào)用test(inta)這個(gè)構(gòu)造函數(shù),輸出3:接著主函數(shù)結(jié)束,對(duì)象A銷毀又隱含調(diào)用~test()析構(gòu)函數(shù)輸出destructor。12、有如下程序:#inchdeusingnamespacestd;classB{public:virtualvoidshow(){cout<<“B”;}};classD:publicB{public:voidshow(){tout<<“D”;}};voidfunl(B*ptr){ptr一>show();}voidfun2(B&ref){ref..show();}voidfun3(Bb){b.show();}intmain(){Bb,*p=newD;Dd;funl(p);fun2(b);fun3(d);deletep;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BBBB、BBDC、DBBD、DBD標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù),本題中定義類B的對(duì)象b、對(duì)象指針木p=newD以及類D的對(duì)象d;執(zhí)行funl會(huì)調(diào)用派生類的show函數(shù),因?yàn)閟how函數(shù)為虛函數(shù),而調(diào)用fun2、fun3仍然為基類的show函數(shù),所以本題答案為C。13、一間宿舍可住多個(gè)學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:兩個(gè)實(shí)體集間的聯(lián)系可以有下面幾種:一對(duì)一的聯(lián)系、一對(duì)多或多對(duì)一的聯(lián)系和多對(duì)多的聯(lián)系。由于一個(gè)宿舍可以住多個(gè)學(xué)生,所以它們的聯(lián)系是一對(duì)多聯(lián)系。14、己知枚舉類型定義語句為: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。15、下列字符串中不能作為C++標(biāo)識(shí)符使用的是()。A、WHILEB、userC、_lvarD、9stars標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中變量名的命名必須遵循一定的原則,其中之一即是第一個(gè)字符必須是字母或者下劃線。16、有如下程序:#includeusingnamespacestd;classBase{public:voidfun0{cout<<’n’B;}};classDerived:publicBase{public:voidfun(){_______tout<<’D’;}};intmain(){Derivedd;d.fun();return0;}若程序的輸出結(jié)果是BD,則劃線處缺失的部分是()。A、fun();B、Base.fun();C、Base∷fun();D、Base->fun();標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:派生類Derived的對(duì)象d調(diào)用其成員函數(shù)fun(),要輸出結(jié)果為BD,所以在其成員函數(shù)fun()中要調(diào)用基類Base的成員函數(shù)fun()。17、若有定義語句“inti=2,j=3;”,則表達(dá)式i/j的結(jié)果是()。A、0B、0.7C、0.66667D、0.66666667標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由于變量i、j都是整型變量,所以兩者相除所得的商也是整型數(shù)據(jù)。18、下列有關(guān)繼承和派生的敘述中,正確的是()。A、派生類不能訪問基類的保護(hù)成員B、作為虛基類的類不能被實(shí)例化C、派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)D、虛函數(shù)必須在派生類中重新實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無論使用哪種繼承方式,派生類中的成員都不能訪問基類中的私有成員,而可以訪問基類中的公有成員和保護(hù)成員,所以選項(xiàng)A錯(cuò)誤;C++中只有抽象類不能被實(shí)例化,而虛基類不一定非得是抽象類,所以選項(xiàng)B錯(cuò)誤;在派生類中可以重新定義從基類繼承下來的虛函數(shù),也可以不重新定義,故選項(xiàng)D錯(cuò)誤。19、若已經(jīng)聲明了函數(shù)原型“voidfun(inta,doubleb=0.0);”,則下列重載函數(shù)聲明中正確的是()。A、voidfun(inta=90,doubleb=0.0);B、intfun(inta,doubleb);C、voidfun(doublea,intb);D、boolfun(inta,doubleb=0.0);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)重載的原則就是至少要在參數(shù)個(gè)數(shù)或參數(shù)類型上有所不同。且如果函數(shù)只是函數(shù)類型不同的,而其他完全相同,也不能作為重載函數(shù)來使用。20、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為準(zhǔn)B、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略C、虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參D、模板參數(shù)表不能為空標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在調(diào)用一個(gè)模板函數(shù)時(shí),如果編譯系統(tǒng)能夠從模板實(shí)參表判斷其中或全部虛擬類型參數(shù)對(duì)應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若干參數(shù),則模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。21、為了取代C中帶參數(shù)的宏,在C++中使用()。A、重載函數(shù)B、內(nèi)聯(lián)函數(shù)C、遞歸函數(shù)D、友元函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)。C++語言引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C語言的預(yù)處理宏函數(shù)。故選項(xiàng)B正確。22、為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡(jiǎn)單的函數(shù)定義為()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、函數(shù)模板標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C中的預(yù)處理宏函數(shù)。兩者的區(qū)別在于,宏函數(shù)是由預(yù)處理器對(duì)宏進(jìn)行替換,而內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的。內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)像宏函數(shù)一樣展開,所以它沒有一般函數(shù)的參數(shù)壓棧和退棧操作,減少了調(diào)用開銷,因此,內(nèi)聯(lián)函數(shù)比普通函數(shù)有更高的執(zhí)行效率。23、若MyClass是一個(gè)類名,且有如下語句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的語句序列所定義的類對(duì)象的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C1、*C2、C3是3個(gè)MyClass對(duì)象,C4是Mvclass對(duì)象的引用,它是對(duì)象C1的別名。24、在函數(shù)中,可以用auto、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、extemC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。C++語言變量的存儲(chǔ)類型分為如下幾種類型:auto函數(shù)內(nèi)部的局部變量;static…靜態(tài)存儲(chǔ)分配;extern全局變量;register變量存儲(chǔ)在硬件寄存器中。25、在語句“cout<<’A’;”中,cout是()。A、類名B、對(duì)象名C、函數(shù)名D、C++的關(guān)鍵字標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++有四個(gè)預(yù)定義的流對(duì)象:cin標(biāo)準(zhǔn)輸,cout標(biāo)準(zhǔn)輸出,cerr標(biāo)準(zhǔn)出錯(cuò)信息輸出,clog帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出。26、有如下程序:#include<iostream>usingnarnespacestd;classtest{private:inta;public:test0{cout+’’constructor’’+endl;}test(inta){cout+a+endl;}test(consttest&test){a=test.a(chǎn);cout+’’copyconstructor’’+en.d1;}test(){cout+’’destructor"+endl;}};intmain(){testA(3);return0;}運(yùn)行時(shí)輸出的結(jié)果是()。A、3B、constructordestructorC、copyconstructordestructorD、3destructor標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。一個(gè)類可以有多個(gè)構(gòu)造函數(shù),但只能有一個(gè)析構(gòu)函數(shù)。每一個(gè)對(duì)象在被創(chuàng)建時(shí),都會(huì)隱含調(diào)用眾多構(gòu)造函數(shù)中的一個(gè),而在銷毀時(shí)又會(huì)隱含調(diào)用唯一的析構(gòu)函數(shù)。此題中,主函數(shù)創(chuàng)建對(duì)象A是會(huì)隱含調(diào)用。test(inta)這個(gè)構(gòu)造函數(shù),輸出3;接著主函數(shù)結(jié)束,對(duì)象A銷毀又隱含調(diào)用~test()析構(gòu)函數(shù)輸出destructor。27、如下函數(shù)的作用是以雙倍行距輸出文件:voiddouble_space(ifstream&f,ofstream&t){charc;while(_________){;___________if(c==’\n’)t.put(c);}}畫線處缺失的部分是()。A、f.get(e)與t.put(c)B、f.put(c)與t.get(c)C、t.get(c)與f.put(c)D、t.put(c)與f.get(c)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是文件流。get()函數(shù)作用是讀入一個(gè)字符,所以調(diào)用它的應(yīng)該是輸入文件流ifstreae鋤對(duì)象f.put()函數(shù)作用是輸出一個(gè)字符,所以調(diào)用它的應(yīng)該是輸入文件流ofstream對(duì)象t,故選項(xiàng)B、C排除。讀入和輸出應(yīng)該是有順序的,應(yīng)該先讀入后輸出,所以前一空填fget(c),后一空填t.put(c)。28、有如下程序:#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ù)參數(shù)的傳遞。C++語言中,函數(shù)在傳遞參數(shù)時(shí),總是將實(shí)參的值傳遞給被調(diào)用函數(shù)的形參,即傳值調(diào)用。因此,在函數(shù)中對(duì)形參所作的任何操作都不會(huì)改變實(shí)參的值。29、下列運(yùn)算符不能重載為友元函數(shù)的是()。A、=()[]->B、+-++--C、><>=<=D、+=-=*=/=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。C抖語言規(guī)定,=、[]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重載為非成員函數(shù)。30、有如下類聲明:classXA{intx;public:XA(intn){x=n;)};classXB:publicXA{inty;public:XB(inta,intb);};在構(gòu)造函數(shù)XB的下列定義中,正確的是()。A、XB::XB(inta,intb):x(a),y(b){}B、XB::XB(inta,intb):XA(a),y(b){}C、XB::XB(inta,intb):x(a),XB(b){}D、XB::XB(inta,intb):XA(a),XB(b){}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類中構(gòu)造函數(shù)的定義。派生類的構(gòu)造首先要調(diào)用基類的構(gòu)造函數(shù),對(duì)基類成員初始化;然后對(duì)派生類中的新增成員初始化。格式為:派生類名(構(gòu)造函數(shù)形參表)基類構(gòu)造函數(shù)(形參表)。31、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout<<’’A’’;}~A(){cout<<’’~A’’;}};classB:publicA{A*p;public:B(){cout<<’’B’’;p=newA();}~B(){cout<<’’~Bt’’;deletep;}};intmain(){Bobj;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BAA~A~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(gòu)造與析構(gòu)。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被定義時(shí)聲明的順序(自左向右)->執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序->執(zhí)行派生類的構(gòu)造函數(shù)。所以本題在建立派生類B的對(duì)象obj是會(huì)先調(diào)用基類A的構(gòu)造函數(shù),然后調(diào)用自身的構(gòu)造函數(shù)。注意:B類中定義的成員p是A類的指針而不是一個(gè)對(duì)象,故在調(diào)用自身構(gòu)造函數(shù)前不需要構(gòu)造。而在B類構(gòu)造函數(shù)中使用new操作符動(dòng)態(tài)地構(gòu)造了一個(gè)A類的對(duì)象,所以整個(gè)構(gòu)造結(jié)果是輸出:ABA。派生類對(duì)象的析構(gòu)與構(gòu)造嚴(yán)格相反,即先析構(gòu)自身,然后析構(gòu)自身所包含的成員對(duì)象,最后調(diào)用基類的析構(gòu)函數(shù)。故本題中當(dāng)main()函數(shù)返回時(shí),析構(gòu)B類的對(duì)象obj:首先調(diào)用~B(),接著再調(diào)用~A()因?yàn)樵凇獴()函數(shù)中釋放了動(dòng)態(tài)創(chuàng)建的A類對(duì)象,故整個(gè)析構(gòu)所輸出的結(jié)果是~B~A~A。所以這個(gè)程序輸出結(jié)果為ABA~B~A。32、有如下程序:##inc1ude<iostream>usingnamespacestd;classc1{public:~C1(){cout<<1;}};classC2:publicC1{public:~C2(){cout<<2;}};intmain(){C2cb2;C1*cbl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、121B、21C、211D、12標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義C2類的對(duì)象,當(dāng)程序結(jié)束時(shí),首先調(diào)用C2類的析構(gòu)函數(shù)~C2,輸出2,再調(diào)用Cl類的析構(gòu)函數(shù)~Cl,輸出l。所以程序運(yùn)行的結(jié)果就是21。33、下列運(yùn)算符中,不能被重載的是()。A、&&B、!=C、.D、++標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。在C++中,只有.、.*、—>*、∷、?:這五個(gè)運(yùn)算符不能重載。34、下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。A、intoperator—(FunNumber);B、FunNumberoperator—0;C、FunNumberoperator—(int),D、intoperator—(FunNumber;FunNumber);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符“—”的重載?!啊边\(yùn)算符有一元和二元兩種,且均可以重載為成員函數(shù)和非成員函數(shù)。運(yùn)算符重載為成員函數(shù)時(shí),形參個(gè)數(shù)一般為運(yùn)算符元數(shù)減1:重載為非成員函數(shù)時(shí),形參個(gè)數(shù)一般和運(yùn)算符元數(shù)相等。所以,“.”運(yùn)算符重載為成員函數(shù)時(shí),參數(shù)可以是0個(gè)或1個(gè):而重載為非成員函數(shù)時(shí),參數(shù)個(gè)數(shù)可以是1個(gè)或2個(gè)。所以D選項(xiàng),肯定是重載為非成員函數(shù)。35、下列函數(shù)模版中的定義中,合法的是()。A、temp1ate<typenameT>Tabs(Tx){returnx<0?—x:x;)B、temp1atec1ass<T>Tabs(Tx){returnx<0?—x:x;}C、temp1ateT<c1assT>abs(Tx){returnx<0?—x:x;}D、temp1ateTabs(Tx){retumx<0?—x:x;)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個(gè)函數(shù)模板的格式是:temp1ate<模板形參表聲明>函數(shù)聲明,其中的<模板形參表聲明>是由一個(gè)或多個(gè)“模板形參”組成的,每個(gè)“模板形參”可具有以下幾種形式:t)rpename參數(shù)名;class參數(shù)名;類型修飾參數(shù)名。36、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為準(zhǔn)B、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略C、虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參D、模板參數(shù)表不能為空標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在調(diào)用一個(gè)模板函數(shù)時(shí),如果編譯系統(tǒng)能夠從模板實(shí)參表判斷其中或全部虛擬類型參數(shù)對(duì)應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若十參數(shù),則模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。37、有如下程序:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){cout.fill(’*’);cout<<left<<setw(4)<<123<<<’’OK’’<<endl;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、123*OKB、123*OK**C、*123OKD、*123**OK標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查了輸出流的格式控制。cout的fill()是設(shè)置填充字符:left和endl分別是使輸出數(shù)據(jù)左對(duì)齊和換行;setw()函數(shù)的作用是設(shè)置輸入輸出的寬度,此設(shè)置效果只對(duì)以此輸入或輸出有效。此題中,輸出整數(shù)123時(shí)寬度為4且左對(duì)齊,得到“123*”;輸出字符串“OK”時(shí)寬度沒有定義實(shí)際大小輸出,結(jié)果得到OK:故最后得到的輸出結(jié)果是123*K。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共23題,每題1.0分,共23分。)1、有如下程序:#includeusingnamespacestd;intmain(){inta[6]={23,15,64,33,40,58);ints1,s2;s1=s2=a[0];for(int*p)=a+1;p<a+6;p++){if(s1>*p)s1=*p;if(s2<*p)s2=*p;}cout<A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的值等于15,它小于23,所以把15賦給變量s1;執(zhí)行第二次for循環(huán)時(shí),*p的值等于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于15,小于64.因而變量s1,s2的值不會(huì)再發(fā)生變化,最終值為15+64=79。2、對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為()。A、9B、10C、45D、90標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的長(zhǎng)度為n,最壞情況下冒泡排序需要比較的次數(shù)為n(n-1)/2。3、有如下程序:#includeusingnamespacestd;classPoint{public:staticintnumber;public:Pointo{number++;}-Point(){number-一;));intPoint::number~0;voidmain0{Point*ptr;PointA,B;{Point*ptr_point=newPoint[3];ptx=ptr_point;)PointC:Gout+Point::number+endl;delete[]ptr;)運(yùn)行時(shí)輸出的結(jié)果是()。A、3B、4C、6D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題是靜態(tài)成員、對(duì)象的構(gòu)造和對(duì)象的生存期等知識(shí)點(diǎn)的綜合考查。此題定義了一個(gè)靜態(tài)成員變量number,初始值為0。土函數(shù)中第2行定義了2個(gè)Point對(duì)象,此時(shí)number變?yōu)?;隨后new運(yùn)算符又定義了一個(gè)包含3個(gè)Point對(duì)象元素的數(shù)組,其通過delete結(jié)束后number的值變?yōu)?;然后又定義了一個(gè)Point對(duì)象C,number變?yōu)?;最后輸出number的內(nèi)容。4、下面描述中不屬于數(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)有數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。5、有如下程序:#includeusingnamespacestd;intmain(){.inta[6]={23,15,64,33,40,58);ints1,s2;s1=s2=a[0];for(int*p=a+1;p<a+6;p++){if(s1>*p)s1=*p;if(s2<*p)s2=*p;}cout<<s1+s2<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的值等于15,它小于23,所以把15賦給變量s1;執(zhí)行第二次for循環(huán)時(shí),*p的值等于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于15,小于64,因而變量s1,s2的值不會(huì)再發(fā)生變化,最終值為15+64=79。6、下列語句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是常指針和指針常量的概念。常指針是指向一個(gè)常量的指針變量,指針自身的內(nèi)容可以改變但指針指向的內(nèi)容不可以改變;指針常量是一個(gè)常量,即不能修改指針自身的內(nèi)容,但可以通過指針修改其所指向的內(nèi)容。D選項(xiàng)中指針常量point沒有初始化,編譯無法通過。7、在數(shù)據(jù)庫中,產(chǎn)生數(shù)據(jù)不一致的根本原因是A、數(shù)據(jù)冗余B、沒有嚴(yán)格保護(hù)數(shù)據(jù)C、未對(duì)數(shù)據(jù)進(jìn)行完整性控制D、數(shù)據(jù)存儲(chǔ)量太大標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在一個(gè)數(shù)據(jù)集合中重復(fù)的數(shù)據(jù)稱為數(shù)據(jù)冗余。數(shù)據(jù)冗余是指數(shù)據(jù)之間的重復(fù),也可以說是同一數(shù)據(jù)存儲(chǔ)在不同數(shù)據(jù)文件中的現(xiàn)象。8、有如下程序:#inc1ude<iostream>usingnamespacestd;classONE{intC:public:ONE():c(0){cout<<1;)ONE(intn):c(n){cout<<2;)};classTWO{ONEone1;ONEone2;public:TWO(intm):one2(m){cout<<3;}};intmain(){TWOt(4);return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、3B、23C、123D、213標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由類TWO的定義可知,其成員為類ONE的兩個(gè)對(duì)象onel和one2。所以在主函數(shù)中構(gòu)建類TWO的對(duì)象t(4)時(shí),先后調(diào)用類ONE的構(gòu)造函數(shù)ONE():c(0){cout<<1;}和ONE(intn):c(n){cout<<2;}輸出12,然后再調(diào)用類TWO的構(gòu)造函數(shù)TWO(intm):one2(m){cout<<3;},輸出3。9、下列運(yùn)算符函數(shù)中,肯定不屬于類Value的成員函數(shù)的是()。A、Valueoperator+(Value);B、Valueoperator-(Value,Value);C、Valueoperator*(int);D、Valueoperator/(Value);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符作為非成員函數(shù)時(shí),由于沒有隱含this指針,因此所有的操作數(shù)必須出現(xiàn)在參數(shù)表中。對(duì)于第二個(gè)選項(xiàng),出現(xiàn)了兩個(gè)操作數(shù),必然是非成員函數(shù),但是對(duì)于其他三個(gè)選項(xiàng),有可能都是要求兩個(gè)操作數(shù)的成員函數(shù)。10、若AA為一個(gè)類,a為該類的私有整型數(shù)據(jù)成員,getA()為該類的一個(gè)非靜態(tài)公有成員函數(shù),功能是返回a的值。如果x為該類的一個(gè)對(duì)象,要在類外訪問x對(duì)象中a的值,正確的訪問格式為()。A、AA.getA()B、x.getA()C、x.AD、AA::a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:要在類外訪問x對(duì)象中a的值,必須調(diào)用類的非靜態(tài)公有成員函數(shù)getA()。11、在C++中,編譯系統(tǒng)自動(dòng)為一個(gè)類生成缺省構(gòu)造函數(shù)的條件是()。A、該類沒有定義任何有參構(gòu)造函數(shù)B、該類沒有定義任何無參構(gòu)造函數(shù)C、該類沒有定義任何構(gòu)造函數(shù)D、該類沒有定義任何成員函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果一個(gè)類中定義了一個(gè)缺省的構(gòu)造函數(shù),則使用該函數(shù)。如果一個(gè)類中沒有定義任何構(gòu)造函數(shù),編譯器將生成一個(gè)不帶參數(shù)的共有缺省構(gòu)造函數(shù)。12、有如下程序:#includeusingnamespacestd;classBase{intx;public;Base{intn=0);x(n){cout<A、375B、357C、0375D、0357標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類的構(gòu)造與析構(gòu)。建立派生類的對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被繼承時(shí)聲明的順序(自左向右)->執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序->執(zhí)行自身的構(gòu)造函數(shù)。此題中,執(zhí)行語句Derivedd1(3)首先調(diào)用基類的構(gòu)造函數(shù),輸出0;接著調(diào)用自身的構(gòu)造函數(shù)輸出3。執(zhí)行語句Derivedd2(5,7)時(shí),會(huì)調(diào)用基類的Base(n)函數(shù)輸出7;然后執(zhí)行繼承類中的Derived(intm,intn)的y(m)輸出5。13、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assBasel{public:Basel(intd){cout<<d;)~Base1(){}};c1assBase2{public:Base2(intd){cout<<d;}~Base2(){}};c1assDerived:publicBasel,Base2{public:Derived(inta,intb,intc,intd);Basel(b),Base2(a),bl(d),b2(c){}Private:intb1;intb2;};intmain(){Derivedd(1,2,3,4);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、1234B、2134C、12D、21標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序在創(chuàng)建派生類對(duì)象d時(shí),分別調(diào)用基類Basel和Basel的構(gòu)造函數(shù)。14、有如下程序:#include<iostream>using

溫馨提示

  • 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)論