




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國家二級(jí)(C++)機(jī)試模擬試卷23(共9套)(共371題)國家二級(jí)(C++)機(jī)試模擬試卷第1套一、選擇題(本題共38題,每題1.0分,共38分。)1、結(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。2、下列關(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)行操作。3、有如下類定義:classB{public:voidfun1(){}private:voidfun2(){}protected:voidfun3(){}};classD:publicB{protected:voidfun4(){}};若obj是類D的對(duì)象,則下列語句中不違反訪問控制權(quán)限的是()。A、obj.fun1();B、obj.fun2();C、obj.fun3();D、obj.fun4();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。所以在本題中,在類外引用成員函數(shù)時(shí),派生對(duì)象只能引用基類的公用成員函數(shù)fun1,故本題答案為A。4、內(nèi)部格式控制操作函數(shù)是在頭文件()中定義的。A、iostream.hB、iomanip.hC、istream.hD、ostream.h標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++語言中,除了ios類成員函數(shù)之外,還提供了另一種YO格式化方法,即操作符。所有不帶形參的操作符都定義在iostreamh中,而帶形參的操作符則定義在頭文件iomanip.h中。5、下列不能作為類的成員的是()。A、自身類對(duì)象的指針B、自身類對(duì)象C、自身類對(duì)象的引用D、另一個(gè)類的對(duì)象標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類的定義,如果有自身類對(duì)象,會(huì)使其循環(huán)定義,選項(xiàng)B錯(cuò)誤。在類中具有自身類的指針,可以實(shí)現(xiàn)鏈表的操作,當(dāng)然也可以使用對(duì)象的引用,類中可以有另一個(gè)類的對(duì)象,即成員對(duì)象。6、下列有關(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正確。7、下列程序執(zhí)行后,屏幕的輸出是()。#includeusingnamespacestd;voidswap(intx,intY){Inttemp=x;x=y(tǒng);y=temp;cout<<"x="<A、x=3,y=2x=3,y=2B、x=2,y=3x=3,y=2C、x=2,y=3x=2,y=3D、x=3,y=2x=2,y=3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中默認(rèn)的參數(shù)傳遞是值傳遞,也就是將實(shí)參的副本傳遞給被調(diào)用函數(shù)的形參,被調(diào)用的函數(shù)中對(duì)形參的任何改動(dòng)都不會(huì)影響實(shí)參。8、對(duì)數(shù)組名作函數(shù)的參數(shù),下面描述正確的是()。A、數(shù)組名作函數(shù)的參數(shù),調(diào)用時(shí)將實(shí)參數(shù)組復(fù)制給形參數(shù)組B、數(shù)組名作函數(shù)的參數(shù),主調(diào)函數(shù)和被調(diào)函數(shù)共用一段存儲(chǔ)單元C、數(shù)組名作參數(shù)時(shí),形參定義的數(shù)組長(zhǎng)度不能省略D、數(shù)組名作參數(shù),不能改變主調(diào)函數(shù)中的數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)組作為參數(shù)實(shí)參傳遞的赴數(shù)組的首地址。所以主調(diào)函數(shù)和被調(diào)函數(shù)共用一段存儲(chǔ)單元。9、有如下程序:#include<iostream>usingnamespacestd;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<<sum:return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。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。10、有如下類的定義。橫線處的語句是()。classMyClass{public:MyClass(inta=0,intb=0){X=a;Y=b:}voidChangeoconst{X-=10;Y+=10;}private:intX,Y;};A、staticB、constC、mutableD、不需要填入內(nèi)容標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++中const關(guān)鍵字用來表示一個(gè)常量,同時(shí)const也用來修飾函數(shù)。這兩個(gè)概念需要明確:const所修飾的函數(shù)只能是類的成員函數(shù),因?yàn)閏onst所修飾的函數(shù)中,要由編譯器負(fù)責(zé)保護(hù)類的成員變量不被修改。而相對(duì)的,mutable則是用來修飾類的成員變量,讓該變量在const所修飾的成員函數(shù)中可以被修改。而且const修飾的函數(shù)只能是類的成員函數(shù),mutable修飾的變量只能是類的成員變量。11、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、除D、并標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果S=T/R,則S稱為T除以R的商。在除運(yùn)算中S的域由T中那些不出現(xiàn)在R中的域所組成,對(duì)于S中的任一有序組,由它與關(guān)系R中每個(gè)有序組所構(gòu)成的有序組均出現(xiàn)在關(guān)系T中。所以本題選擇C)。12、下列關(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í)行。13、下列關(guān)于C++函數(shù)的說明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語句必須是return語句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)解析:此題考查的是有關(guān)函數(shù)的概念。內(nèi)聯(lián)函數(shù)是在函數(shù)定義之前加關(guān)鍵字inline來聲明的函數(shù),而不是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù),故選項(xiàng)A)錯(cuò)誤;無返回值的函數(shù)在執(zhí)行完最后一條語句后,會(huì)自動(dòng)返回而不必加入return語句,故選項(xiàng)B)錯(cuò)誤;如果函數(shù)只是返回值類型不同,而其他完全相同,則不能作為函數(shù)重載來使用。14、某系統(tǒng)結(jié)構(gòu)圖如下圖所示(n≥5)該系統(tǒng)結(jié)構(gòu)圖的最大扇出數(shù)是()。A、nB、3C、2D、n+1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:模塊的扇出是指本模塊的直屬下層模塊的個(gè)數(shù),或者說是由一個(gè)模塊直接調(diào)用的其他模塊數(shù)。題干中某系統(tǒng)為一個(gè)模塊,其扇出數(shù)目為n(n≥5),功能2模塊扇出數(shù)為3,功能n模塊扇出數(shù)為2,則該系統(tǒng)結(jié)構(gòu)圖的最大扇出數(shù)是n。故本題答案為A選項(xiàng)。15、下列關(guān)于類模板的敘述中,正確的是()。A、類模板實(shí)例化時(shí),編譯器會(huì)根據(jù)給出的模板實(shí)參生成一個(gè)類B、類模板中的成員函數(shù)沒有返回值C、類模板的主要作用是生成抽象類D、類模板中的數(shù)據(jù)成員具有同樣類型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類模板在引用實(shí)際模板類類型時(shí)實(shí)例化,編譯器會(huì)根據(jù)給出的模板實(shí)參生成一個(gè)類的定義,選項(xiàng)A正確;類模板中的成員函數(shù)同普通類的成員函數(shù)一樣,也可以有返回值,返回值類型可以是模板形參類型,也可以是具體類型,選項(xiàng)B錯(cuò)誤;類模板的主要作用是生成類,而不是生成抽象類,選項(xiàng)C錯(cuò)誤;類模板中的成員類型可以是模板形參類型,也可以是具體類型,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。16、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是()。A、iomanipB、fstreamC、strstreamD、cstdlib標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:iomanip是I/O流控制頭文件;strstream是輸入輸出字符串流頭文件;cstdlib是常用函數(shù)庫,提供一些函數(shù)和符號(hào)常量;選項(xiàng)A、C、D錯(cuò)誤;fstream是輸入輸出文件流頭文件,答案為B。17、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是A、通過運(yùn)算符重載不可能在C++中創(chuàng)建新的運(yùn)算符B、賦值運(yùn)算符可以重載為友元函數(shù)C、運(yùn)算符函數(shù)重載為類的成員函數(shù)時(shí),第一操作數(shù)不出現(xiàn)在參數(shù)表中D、重載類型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回類型標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查運(yùn)算符重載,重載運(yùn)算符不能定義新的運(yùn)算符,C++規(guī)定=,[],(),->這四個(gè)運(yùn)算符只能被重載為類的非靜態(tài)成員函數(shù),其他的可以被友元重載,主要是因?yàn)槠渌倪\(yùn)算符重載函數(shù)都會(huì)根據(jù)參數(shù)類型或數(shù)目進(jìn)行精確匹配,這四個(gè)不具有這種檢查的功能,用友元定義就會(huì)出錯(cuò),所以本題選擇B。18、每個(gè)C++程序中都必須有且僅有一個(gè)()。A、類B、預(yù)處理命令C、主函數(shù)D、語句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:每個(gè)C++程序中都要有且僅有一個(gè)主函數(shù),該函數(shù)是程序的入口,而語句、預(yù)處理命令和函數(shù)及類在程序中都可以有多個(gè)。19、下列關(guān)于模板的表述中,錯(cuò)誤的是A、模板形參表的兩邊使用尖括號(hào)括起來B、模板以關(guān)鍵字template開始C、模板聲明中的關(guān)鍵字class都可以用關(guān)鍵字typename替代D、模板的形參表中可以有多個(gè)參數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:模板定義以關(guān)鍵字template開始,后接模板形參表,模板形參表是用尖括號(hào)括住的一個(gè)或多個(gè)模板形參的列表,形參之間用逗號(hào)分隔,選項(xiàng)A、B、D正確;至于選項(xiàng)C,一般關(guān)鍵字class和typename在模板形參表中,是沒有區(qū)別的,但是關(guān)于類模板,類定義的關(guān)鍵字也是class,這里class是不可用typename替代的,答案為C。20、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、無序線性表B、線性鏈表C、二叉鏈表D、順序存儲(chǔ)的有序表標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二分法查找只適用于順序存儲(chǔ)的有序表,表中的元素按值從小到大排列。21、為類MyClass重載賦值運(yùn)算符時(shí),應(yīng)將其重載為類的A、靜態(tài)函數(shù)B、成員函數(shù)C、友元函數(shù)D、虛函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:重載賦值運(yùn)算符是為了操作類的對(duì)象,靜態(tài)函數(shù)不滿足,選項(xiàng)A錯(cuò)誤;如果類中沒有重載賦值運(yùn)算符,編譯器將根據(jù)需求合成一個(gè)賦值運(yùn)算符,所以重載賦值運(yùn)算符必須是類的成員函數(shù),以便編譯器可以知道是否需要合成,選項(xiàng)C錯(cuò)誤;賦值運(yùn)算符不是虛函數(shù),因?yàn)樘摵瘮?shù)必須在基類和派生類中具有同樣的形參,基類的賦值運(yùn)算符有一個(gè)形參是自身類類型的引用,如果該運(yùn)算符是虛函數(shù),則每個(gè)派生類都將有一個(gè)虛函數(shù)成員函數(shù),該成員函數(shù)定義了其中一個(gè)參數(shù)為基類對(duì)象的operator=,可能會(huì)令人混淆,選項(xiàng)D錯(cuò)誤;答案為B。22、有如下程序: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)的語句,輸出1,然后判斷表達(dá)式,為非零,且此時(shí)x為0;再次執(zhí)行循環(huán)體時(shí),輸出-2,然后判斷表達(dá)式為0,不執(zhí)行,退出,所以答案為C。23、有如下類定義:classPoint{intxx,yy;public:Point():xx(0),yy(0){}Point(intx,inty=0):xx(x),yy(y){}};若執(zhí)行語句Pointa(2),b[3],*c[4];則Point類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。A、2次B、3次C、4次D、5次標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù),題目中定義一個(gè)對(duì)象a(2)以及對(duì)象數(shù)組b[3],共執(zhí)行4次構(gòu)造函數(shù),對(duì)象指針不調(diào)用構(gòu)造函數(shù)。所以本題答案為C。24、有如下兩個(gè)類定義:classXX{private:doublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubley1;protected:doubley2;public:doubley3;};在類YY中保護(hù)成員變量的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問屬性,在受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,所以基類的成員x2、x3變成了保護(hù)成員,派生類中的y2也是保護(hù)成員,所以共有3個(gè)保護(hù)成員。本題答案為C。25、下列關(guān)于算法復(fù)雜度敘述正確的是A、最壞情況下的時(shí)間復(fù)雜度一定高于平均情況的時(shí)間復(fù)雜度B、時(shí)間復(fù)雜度與所用的計(jì)算工具無關(guān)C、對(duì)同一個(gè)問題,采用不同的算法,則它們的時(shí)間復(fù)雜度是相同的D、時(shí)間復(fù)雜度與采用的算法描述語言有關(guān)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,它與使用的計(jì)算機(jī)、程序設(shè)計(jì)語言以及算法實(shí)現(xiàn)過程中的許多細(xì)節(jié)無關(guān),B選項(xiàng)正確,D選項(xiàng)錯(cuò)誤。最壞情況下的時(shí)間復(fù)雜度可以與平均情況的時(shí)間復(fù)雜度相同,A選項(xiàng)錯(cuò)誤。不同的算法時(shí)間復(fù)雜度一般不相同,C選項(xiàng)錯(cuò)誤。26、對(duì)于一個(gè)類定義,編譯器可能會(huì)自動(dòng)生成的函數(shù)不包括A、復(fù)制構(gòu)造函數(shù)B、缺省的構(gòu)造函數(shù)C、析構(gòu)函數(shù)D、友元函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++中,對(duì)于一個(gè)類定義,編譯器可能會(huì)自動(dòng)生成的函數(shù)有:默認(rèn)(缺?。?gòu)造函數(shù),復(fù)制構(gòu)造函數(shù),復(fù)制運(yùn)算符,析構(gòu)函數(shù),答案為D。27、有如下程序:#include#includeusingnamespacestd;classMyBag{public:friendintNancyShow(MyBag&bag);MyBag(stringbr="ABC"):brand(br){}private:stringbrand;};intNancyShow(MyBag&bag){if(bag.brand!="Coach")return1;elsereturn0;}intmain(){intcount=0;MyBagarrays[3]={MyBag("CityLife"),MyBag("Coach")};for(inti=0;i<3;i++)count+=NancyShow(arrays[i]);cout<A、0B、1C、2D、3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù),可以看出本題中是要統(tǒng)計(jì)對(duì)象數(shù)組arrays中有多少個(gè)brand不為的Coach元素,定義的對(duì)象數(shù)組中有兩個(gè)不是Coach元素,所以答案為2,C選項(xiàng)正確。28、有如下程序:#includeusingnamespacestd;classA{public:A(){cout<<"A";}~A(){cout<<"~A";}};classB:publicA{A*p;public:B(){cout<<"B";p=newA();}~B(){cout<<"~B";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)解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類的對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù)。對(duì)象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。所以本題答案為B。29、設(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。30、有如下類定義:classBase{intl;public:intm;private:intn;};classDerived:publicBase{};則類Derived所擁有的數(shù)據(jù)成員的個(gè)數(shù)是A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++中派生類擁有基類的所有成員,所以Derived類中數(shù)據(jù)成員分別是:l、m、n,答案為D。31、有如下程序:#include#includeusingnamespacestd;classMyBag{public:friendintNancyShow(MyBag&bag);MyBag(stringbr="ABC"):brand(br){}private:stringbrand;};intNancyShow(MyBag&bag){if(bag.brand!="Coach")return1;elsereturn0;}intmain(){intcount=0;MyBagarrays[3]={MyBag("CityLife"),MyBag("Coach")};for(inti=0;i<3;i++)count+=NancyShow(arrays[i]);cout<A、0B、1C、2D、3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù),可以看出本題中是要統(tǒng)計(jì)對(duì)象數(shù)組arrays中有多少個(gè)brand不為的Coach元素,定義的對(duì)象數(shù)組中有兩個(gè)不是Coach元素,所以答案為2,C選項(xiàng)正確。32、有如下程序:#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。33、軟件設(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)、模塊的依賴關(guān)系適當(dāng)?shù)?。模塊的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理,并進(jìn)一步保證以此為依據(jù)開發(fā)出的軟件系統(tǒng)可靠性強(qiáng),易于理解和維護(hù)。模塊之間的耦合應(yīng)盡可能的低,模塊的內(nèi)聚度應(yīng)盡可能的高。34、有如下類聲明和函數(shù)聲明classBase{intm;public:intn;protected:intp;};classDerived:protectedBase{public:intk;};voidf(Derivedd);則在函數(shù)f中通過d可訪問的數(shù)據(jù)成員的個(gè)數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:保護(hù)繼承中,基類的public和protected成員在派生類中都是protected成員,所以類Derived中,public成員為:k,protected成員為:n、p,沒有private成員,m對(duì)Derived不可見;Derived對(duì)象d可訪問的只有public成員,即k;答案為A。35、在下列模式中,能夠給出數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是()。A、外模式B、內(nèi)模式C、概念模式D、邏輯模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的三級(jí)模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個(gè)用戶的局部數(shù)據(jù)描述。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,所以選擇B。36、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。A、順序結(jié)構(gòu)B、GOTO跳轉(zhuǎn)C、選擇(分支)結(jié)構(gòu)D、重復(fù)(循環(huán))結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:1966年Boehm和Jacopini證明了程序設(shè)計(jì)語言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。37、結(jié)構(gòu)化程序設(shè)計(jì)中,下面對(duì)goto語句使用描述正確的是A、禁止使用goto語句B、使用goto語句程序效率高C、應(yīng)避免濫用goto語句D、以上說法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)中,要注意盡量避免goto語句的使用,故選C。38、有如下類聲明:classHow{intk;public:~How(){cout<<"Bye";}};則類How所擁有的構(gòu)造函數(shù)的數(shù)量是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在類How定義中沒有定義任何構(gòu)造函數(shù),所以編譯器會(huì)自動(dòng)生成一個(gè)默認(rèn)構(gòu)造函數(shù),同時(shí)還生成復(fù)制構(gòu)造函數(shù),所以類How擁有兩個(gè)構(gòu)造函數(shù),答案為B。二、基本操作題(本題共1題,每題1.0分,共1分。)39、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,此工程中含有一個(gè)源程序文件proj1.cpp。其中位于每個(gè)注釋“//ERROR**********found**********”之后的一行語句存在錯(cuò)誤。請(qǐng)改正這些錯(cuò)誤,使程序的輸出結(jié)果為:NUM=0Value=1注意:只修改注釋“//ERROR****found****”的下一行語句,不要改動(dòng)程序中的其他內(nèi)容。//proj1.cpp#inccludeusingnamespacestd;classMyClass{inti;friendVOidIncrement(MyClass&f);public:constintNUN;//ERROR********found********MyClass(inti=0){NUN=0;i=i;}intGetValue()const{returni;}};//ERROR********found********voidIncrement(){f.i++;}intmain(){NyClassobj;//ERROR****found****NyClass::Increment(obj);cout<<"NUN="<標(biāo)準(zhǔn)答案:(1)MyClass(inti=0):NUM(0){(2)voidIncrement(MyClass&f){f._i++;}(3)Increment(obj);知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)常量數(shù)據(jù)成員初始化方法的掌握,常量數(shù)據(jù)成員的初始化只能通過構(gòu)造函數(shù)的成員初始化列表進(jìn)行,并且要使用關(guān)鍵字const修飾。該題的前一條語句constintNUM;,說明NUM是常量數(shù)據(jù)成員。(2)主要考查考生對(duì)友元函數(shù)的掌握,友元函數(shù)的定義與聲明要一致,先看該友元函數(shù)的聲明部分:friendvoidIncrement(MyClass&f);,返回類型為void,函數(shù)參數(shù)為MyClass&f;再比較出錯(cuò)的語句:voidIncrement(){f._i++;},錯(cuò)誤在于該函數(shù)沒有參數(shù),應(yīng)把MyClass&f填在括號(hào)內(nèi)。(3)主要考查友元函數(shù)的調(diào)用,友元函數(shù)并不屬于類,因此調(diào)用友元函數(shù)時(shí)不需要添加類名及作用域,只需要像調(diào)用普通函數(shù)一樣即可。三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)40、使用VC++6.0打開考生文件夾下的源程序文件2.cpp。閱讀下列函數(shù)說明和代碼,補(bǔ)充空出的代碼。使sum(intn)能計(jì)算所有n的因子之和(不包括1和自身)。注意:不能修改程序的其他部分,只能補(bǔ)充sum函數(shù)。試題程序:#ineludeintsum(intn){}voidmain(){cout<標(biāo)準(zhǔn)答案:intall=0;for(inti=2;i知識(shí)點(diǎn)解析:為了實(shí)現(xiàn)計(jì)算所有n的因子之和且不包含1和自身,在函數(shù)中定義一個(gè)變量all來保存求和結(jié)果,并為最終結(jié)果在函數(shù)結(jié)束時(shí)返回。在循環(huán)中逐個(gè)尋找n的因子,為了在計(jì)算中排除掉1和n本身,因此循環(huán)變量i的變化范圍為2~n-1。如果n%i==0,說明i是n的因子,因此將i加到all上。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)41、使用VC++6.0打開考生文件夾下的源程序文件3.cpp。其中定義的類不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)定義類的公有數(shù)據(jù)成員函數(shù)No、Name[32],其中No是int型的數(shù)據(jù),Name[32]為字符型。請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。(2)完成函數(shù)Set的定義,分別設(shè)置No和Name的值,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。(3)完成函數(shù)print,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句,輸出結(jié)果如下:No=12345Name=HelloWorld!(4)添加默認(rèn)構(gòu)造函數(shù),設(shè)置No為0,Name為空,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。注意:增加或者修改代碼的位置已經(jīng)用符號(hào)表示出來,請(qǐng)不要修改其他的程序代碼。試題程序:#includeclassTC{public://******1******//******2******{No=no;for(inti=0;strNameEi]!=0;i++){Name[i]=strName[i];Name[i+1]=0;}}voidprint(){//********3********}TC(){//********3********}};intmain(){TCstu;stu.Set(12345,"HelloWorld!");stu.print();return0;}標(biāo)準(zhǔn)答案:(1)應(yīng)添加“intNo;charName[32];”。(2)應(yīng)添加“voidSet(intno,char*strName)”。(3)應(yīng)添加“eout<<"No="((No<知識(shí)點(diǎn)解析:第1處要求“定義類的公有數(shù)據(jù)成員函數(shù)No、Name[32],其中No為int型,Name[32]為字符型”。在已有程序中類定義的public區(qū)域,定義變量No,Name[32],即在第1處添加語句“intNo;charName[32];”0第2處要求“完成函數(shù)Set的定義,分別設(shè)置No和Name的值”。在第2處說明函數(shù)Set的語句中,應(yīng)該包括變量no,strName的定義,然后在函數(shù)中將其值賦值給NoName,即添加定義語句“voidSet(intno,char*StrName)”。第3處要求“完成函數(shù)print”,根據(jù)輸出結(jié)果,知道輸出的是No和Name的值,所以這里補(bǔ)全“cout<<"No="((No<國家二級(jí)(C++)機(jī)試模擬試卷第2套一、選擇題(本題共37題,每題1.0分,共37分。)1、若變量都已正確說明,則以下程序段的輸出結(jié)果是()a=2=b=3;printf(a>b?“***a=**%”;###b=%d”,a,b);A、沒有正確的輸出格式控制B、輸出為:***a=2C、輸}}{為:###b=2D、輸出為:***a=2###b=2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題實(shí)際上是考查C語言中的格式化輸入輸出知識(shí),同時(shí)本題也考查了三目表達(dá)式的知識(shí)。如果邏輯表達(dá)式為真,則執(zhí)行冒號(hào)之前的,否則執(zhí)行冒號(hào)之后的表達(dá)式。2、以下程序的執(zhí)行結(jié)果是()。#inclu,declassTestClass2{public:TestClass2(){);TestClass2(inti,intj);voidprintb0;private:inta,b;};classTestClass1{public:TestClass1(){}TestClass1(inti;intj);voidprima();private:TestClass2c;};TestClass1::TestClass1(inti,intj):c(i,j){}voidTestClass1::printa0{c.,printb0;}TestClass2::TestClass2(inti,intj){a=i;b=j;}voidTestClass2::printb0{cout<<“a=”<A、a=7,b=8B、a=8,b=7C、a=7,b=9D、a=8,b=9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義了TestClassl的對(duì)象m,其中參數(shù)為7和9?!癿.printa();”中TestClassl中printa為“c.printb();”,其中c為TestClass2的對(duì)象,所以printb為TestClass2中的“voidTestClass2::printb()”,即輸出為“a=7,b=9”。3、執(zhí)行語句:{cout<A、123******OKB、123######OKC、123********OK********D、123######OK######標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:cout.fill()用于設(shè)置或返回輸出的填充字符,默認(rèn)是空格,fill()函數(shù)的設(shè)置一直有效,直到下一個(gè)fill()函數(shù)改變?cè)撝禐橹埂etw(intn)作用是設(shè)置輸入輸出的寬度,此設(shè)置只對(duì)一次輸入或輸出有效,在完成一次數(shù)據(jù)的輸入或輸出后,寬度設(shè)置自動(dòng)恢復(fù)為0。注意:默認(rèn)為輸出數(shù)據(jù)在指定寬度內(nèi)右對(duì)齊。4、若有下面的函數(shù)調(diào)用:fun(a+b,3,max(n-1,b))則fun的實(shí)參個(gè)數(shù)是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查函數(shù)實(shí)參個(gè)數(shù)的基礎(chǔ)知識(shí),根據(jù)實(shí)參的概念,(a+b)、3、max(n—1,b)分別為其中的3個(gè)實(shí)參。故答案為A。5、在公有繼承的情況下,允許派生類直接訪問的基類成員包括()。A、公有成員B、公有成員和保護(hù)成員C、公有成員、保護(hù)成員和私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。所以本題答案為B。6、下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是()。A、用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)B、將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查復(fù)制構(gòu)造函數(shù),在以下3種情況下使用:①程序中需要新建立一個(gè)對(duì)象,并用另一個(gè)對(duì)象對(duì)它初始化;②函數(shù)的參數(shù)為類的對(duì)象;③函數(shù)的返回值是類的對(duì)象。其中B選項(xiàng)是由賦值運(yùn)算符重載實(shí)現(xiàn)的。7、有如下程序:#include<iostream>usingnamespacestd;classObj{staticinti;public:obj(){i++;}~obj(){i--;}staticintgetVal(){returni;}};intobj::i=0;voidf(){objob2;cout<<o(jì)b2.getVal();}intmain(){objob1;f();obj*ob3=newobj;cout<<o(jì)b3->getVal();deleteoh3;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。8、設(shè):二叉樹如圖所示,對(duì)該二叉樹進(jìn)行后序遍歷的結(jié)果為()。A、EDBGHFCAB、ABDECFGHC、ACFGHBDED、GHFCAEDB標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:先遍歷左子樹,然后遍歷右子樹,最后遍歷訪問根結(jié)點(diǎn),各子樹都是同樣的遞歸遍歷。9、下列有關(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ù)成員,而不能訪問基類的私有成員。作為虛基類的類可以被實(shí)例化。虛函數(shù)如果沒有派生類中重新實(shí)現(xiàn),那么仍然使用基類的成員函數(shù)。10、對(duì)于一個(gè)類定義,下列敘述中錯(cuò)誤的是()。A、如果沒有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)B、如果沒有定義缺省的構(gòu)造函數(shù),編譯器一定將生成一個(gè)缺省的構(gòu)造函數(shù)C、如果沒有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù)D、如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù),如果沒有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù),如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)。如果沒有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)。11、下列敘述中正確的是()。A、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為nB、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)C、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(log2n)D、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(nlog2n)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二分法查找只適用于順序存儲(chǔ)的有序表,對(duì)于長(zhǎng)度為n的有序線性表,最壞情況只需比較log2n次。12、有如下語句序列:charstr[10];cin>>str;當(dāng)從鍵盤輸入"Ilovethisgame"時(shí),str中的字符串是()。A、”Ilovethisgame”B、”Ilovethi”C、”Ilove”D、”I”標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,cin用來接收字符串時(shí),遇“空格”、“TAB”、“回車”時(shí)都會(huì)結(jié)束。所以本題答案為D。13、數(shù)據(jù)庫設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和()。A、編碼設(shè)計(jì)B、測(cè)試階段C、運(yùn)行階段D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫設(shè)計(jì)目前一段采用生命周期法,即將整個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。14、下列程序的輸出結(jié)果是()。#includeusingnamespacestd;templateTfun(Ta,Tb){retur(a>=b)?a:b;}voidmain(){cout<A、6,3.14B、3,6.28C、3,3.14D、6,6.28標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“?:”為條件運(yùn)算符,(a>=b)?a:b是當(dāng)a大于b時(shí)取a,否則取b。所以第一個(gè)fun(3,6)調(diào)用中,6大于3,所以輸出6,同理第二個(gè)fun(3.14E6.28F)調(diào)用中輸出6.28。15、有如下程序:#includeusingnamespacestd;elassShape{//圖形類public://圖形繪制函數(shù)(用顯示字母模擬)virtualvoiddraw()eonst{eout<<’S’;}};classCircle:publicShape{//圓形類public:voiddraw()eonst{eout<<’C’;}};voidplot(Shape&s){s.draw();}intmain(){Shape木ps=newCircle;Circlet;ps->draw();t.draw();plot(t);deleteps;retum0;}運(yùn)行這個(gè)程序的輸出是()。A、SCCB、SCSC、CSSD、CCC標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++中,多態(tài)性調(diào)用需要滿足兩個(gè)條件,1、被調(diào)用成員函數(shù)必須是虛函數(shù);2、必須通過基類類型的引用或指針進(jìn)行函數(shù)調(diào)用。多態(tài)性使程序在運(yùn)行時(shí)期根據(jù)指針或引用所指對(duì)象的類型來決定調(diào)用哪個(gè)函數(shù)。程序中,類shape定義了虛函數(shù)draw(),在派生類circle中重寫了函數(shù)draw();main函數(shù)中,分別使用指針、對(duì)象、引用三種方式調(diào)用函數(shù)draw(),指針ps是基類指針,指向的是派生類的對(duì)象,所以這里根據(jù)多態(tài)性,將調(diào)用Circle中的draw函數(shù),輸出“C”;對(duì)象t是Circle對(duì)象,也調(diào)用Circle中的dmw函數(shù),輸出“C”;函數(shù)p10t()執(zhí)行時(shí)引用s引用的是實(shí)參t,引用對(duì)象是派生類Circle對(duì)象,根據(jù)多態(tài)性,同樣調(diào)用Circle中的draw函數(shù),輸出“C”;結(jié)果輸出為“CCC”;答案為D。16、下列語句中,能夠進(jìn)行正確初始化的是()。A、charstr="abcde";B、char*str="abcde";C、charstr[4]="abcde";D、charstr[5]="abcde";標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)A中,str是一個(gè)字符變量,不能用一個(gè)字符串初始化,錯(cuò)誤;選項(xiàng)B中str是一個(gè)字符指針,使用字符串的首地址初始化,正確;選項(xiàng)C中str是一個(gè)字符數(shù)組,數(shù)組長(zhǎng)度為4個(gè)字節(jié),初始化的字符串有6個(gè)字符(包括結(jié)尾的空字符),長(zhǎng)度不夠,錯(cuò)誤;選項(xiàng)D中str是一個(gè)字符數(shù)組,數(shù)組長(zhǎng)度為5個(gè)字節(jié),初始化的字符串有6個(gè)字符(包括結(jié)尾的空字符),長(zhǎng)度不夠,錯(cuò)誤;本題答案為B。17、有兩個(gè)關(guān)系R和S如下:則有關(guān)系R得到關(guān)系S的操作是A、選擇B、投影C、自然連接D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)系R到關(guān)系S為一元運(yùn)算,排除C和D。關(guān)系S是關(guān)系R的一部分,是通過選擇之后的結(jié)果,因此選A。18、若MyClass是一個(gè)類名,且若MyClass是一個(gè)類名,且有如下語句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的語句序列所定義的類對(duì)象的個(gè)數(shù)是語句序列A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查對(duì)象的定義,定義一個(gè)類對(duì)象就需要占用空間,其中c1、c3都占用了空間,c2、c4為指針只占一個(gè)指針空間,所以B選項(xiàng)正確。19、下列關(guān)于信息系統(tǒng)的敘述中,錯(cuò)誤的是()。A、廣播/電視是一種雙向的、點(diǎn)對(duì)多點(diǎn)的信息交互系統(tǒng)B、網(wǎng)絡(luò)聊天是一種雙向的,以信息交互為主要目的的系統(tǒng)C、電話是一種雙向的、點(diǎn)對(duì)點(diǎn)的、以信息交互為主要目的的系統(tǒng)D、雷達(dá)是一種以感測(cè)和識(shí)別為主要目的的系統(tǒng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:廣播/電視是一種單向的、點(diǎn)對(duì)多點(diǎn)(面)的,以信息傳遞為主要目的的系統(tǒng)。20、下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是()。A、用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)B、將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是復(fù)制構(gòu)造函數(shù)的概念。用一個(gè)已知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象時(shí),就會(huì)發(fā)生復(fù)制構(gòu)造函數(shù)。因此,選項(xiàng)A)、C)、D)均會(huì)調(diào)用復(fù)制構(gòu)造函數(shù),而只有選項(xiàng)B)沒有創(chuàng)建的動(dòng)作,不調(diào)用復(fù)制構(gòu)造函數(shù)。二、基本操作題21、以下程序的輸出結(jié)果是()。main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;cout<<d<<endl;}A、lB、0C、非0的數(shù)D、-1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查邏輯運(yùn)算,只要考生掌握了邏輯運(yùn)算的優(yōu)先級(jí)就可以正確得到答案為選項(xiàng)A)?;蜻\(yùn)算的優(yōu)先級(jí)最高,&&和!!的優(yōu)先級(jí)相同,按照從左到右的順序計(jì)算。22、要利用C++流實(shí)現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是A、fstreamB、istreamC、ostreamD、iomanip標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查格式控制相關(guān)知識(shí),屬于基礎(chǔ)知識(shí),需要包含iomanip,所以D選項(xiàng)正確。23、在數(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ì)階段。24、下列字符串中可以用作C++標(biāo)識(shí)符的是A、1481varB、test-1481C、trueD、_123標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:用來表示變量、符號(hào)常量、函數(shù)、數(shù)組類型等實(shí)體名字的有效字符序列稱為標(biāo)識(shí)符,標(biāo)識(shí)符由字母、數(shù)字、和下劃線3種字符組成,且第一個(gè)字符必須為字母或者下劃線。C選項(xiàng)為C++的特定標(biāo)識(shí)符,只有D選項(xiàng)正確。25、下列敘述中正確的是A、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針與隊(duì)尾指針的變化而動(dòng)態(tài)變化B、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針的變化而動(dòng)態(tài)變化C、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)尾指針的變化而動(dòng)態(tài)變化D、以上說法都不對(duì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。因此,從排頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素。所以循環(huán)隊(duì)列中的元素個(gè)數(shù)與隊(duì)頭指針和隊(duì)尾指針的變化而變化,A正確。26、在數(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ì)階段。27、下列敘述中,錯(cuò)誤的是A、true是一個(gè)邏輯型常量B、x是一個(gè)字符型常量C、100是一個(gè)int常量D、2.71828是一個(gè)double常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:考查常量定義,B選項(xiàng)中"x"為一個(gè)字符串,’x’才是字符常量,所以B選項(xiàng)錯(cuò)誤。28、軟件設(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)、模塊的依賴關(guān)系適當(dāng)?shù)?。模塊的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理,并進(jìn)一步保證以此為依據(jù)開發(fā)出的軟件系統(tǒng)可靠性強(qiáng),易于理解和維護(hù)。模塊之間的耦合應(yīng)盡可能的低,模塊的內(nèi)聚度應(yīng)盡可能的高。29、當(dāng)一個(gè)派生類對(duì)象結(jié)束其生命周期時(shí),自動(dòng)做的事情是A、先調(diào)用派生類的析構(gòu)函數(shù)后調(diào)用基類的析構(gòu)函數(shù)B、先調(diào)用基類的析構(gòu)函數(shù)后調(diào)用派生類的析構(gòu)函數(shù)C、如果派生類沒有定義析構(gòu)函數(shù),則只調(diào)用基類的析構(gòu)函數(shù)D、如果基類沒有定義析構(gòu)函數(shù),則只調(diào)用派生類的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:執(zhí)行派生類析構(gòu)函數(shù)的順序是:先執(zhí)行派生類析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù),所以A選項(xiàng)正確。30、已知一程序運(yùn)行后執(zhí)行的第一個(gè)輸出操作是cout<A、1234B、******1234C、**********1234D、1234******標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查輸入輸出格式的控制,先是定義寬度為10個(gè)字符,然后填充字符,1234只有四個(gè)字符,所以要在左側(cè)填充6個(gè)*,即輸出******1234,B選項(xiàng)正確。31、當(dāng)一個(gè)派生類對(duì)象結(jié)束其生命周期時(shí),系統(tǒng)自動(dòng)做的事情是A、先調(diào)用派生類的析構(gòu)函數(shù)后調(diào)用基類的析構(gòu)函數(shù)B、先調(diào)用基類的析構(gòu)函數(shù)后調(diào)用派生類的析構(gòu)函數(shù)C、如果派生類沒有定義析構(gòu)函數(shù),則只調(diào)用基類的析構(gòu)函數(shù)D、如果基類沒有定義析構(gòu)函數(shù),則只調(diào)用派生類的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:派生類的對(duì)象結(jié)束生命周期時(shí),系統(tǒng)先調(diào)用派生類的析構(gòu)函數(shù),然后按繼承層次依次向上調(diào)用各個(gè)基類的析構(gòu)函數(shù),這是為了每次調(diào)用析構(gòu)函數(shù),都有完整的類對(duì)象與析構(gòu)函數(shù)對(duì)應(yīng),當(dāng)然如果某個(gè)類沒有定義析構(gòu)函數(shù),編譯器會(huì)自動(dòng)合成對(duì)應(yīng)的析構(gòu)函數(shù)并調(diào)用之,答案為A。32、有如下程序:#includeusingnamespacestd;classObj{staticinti;public:Obj(){i++;}~Obj(){i--;}staticintgetVal(){returni;}};intObj::i=0;voidf(){Objob2;cout<getVal();deleteob3;cout<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。33、有如下程序:#include#includeusingnamespacestd;classMyBag{public:MyBag(stringbr="ABC"):brand(br){cout<A、MyBagarrays[2];B、MyBag*arrays=newMyBag[2];C、MyBagarrays[2]={MyBag("ABC")};D、MyBagarrays[2]={MyBag("CityLife"),MyBag("Micky")};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)的應(yīng)用,題目中A、B、C、D,都定義了包含兩個(gè)元素的一維數(shù)組,A、B、C都執(zhí)行題目中的構(gòu)造函數(shù),并且輸出"ABCABC",而D選項(xiàng)中由于構(gòu)造函數(shù)參數(shù)不為ABC,所以輸出為"CityLifeMicky"34、有如下程序段:inti=0,j=1;int&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ò)誤。35、在為一個(gè)類重載下列運(yùn)算符時(shí),只能作為該類成員函數(shù)重載的運(yùn)算符是A、+B、()C、<<D、++標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查重載運(yùn)算符,C++規(guī)定有的運(yùn)算符(如賦值運(yùn)算符、下標(biāo)運(yùn)算符、函數(shù)調(diào)用運(yùn)算符)必須定義為類的成員函數(shù)。所以本題選B。36、if語句的語法格式可描述為:格式1:if(<條件>)<語句>或格式2:if(<條件>)<語句1>else<語句2>關(guān)于上面的語法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語句,例如if(if(1a==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)也正確。37、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、軟件集成測(cè)試計(jì)劃B、軟件詳細(xì)設(shè)計(jì)說明書C、用戶手冊(cè)D、軟件需求規(guī)格說明書標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評(píng)審四個(gè)方面。所以選擇D。二、基本操作題(本題共1題,每題1.0分,共1分。)38、使用VC6打開考生文件夾下的源程序文件modil.cpp,但該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使該程序的輸出結(jié)果為:100注意:錯(cuò)誤的語句在//********error********的下面,修改該語句即可。1#include2statiCintx=50;3intt=0;4int*func(intx,inty,intz)s{6t=t+x+y+Z;7//********error********8returnt;9};10voidmain()11{12inty=30;13intx=10:。14intz=20;15//********error********16X=X;17//********error********18cout<標(biāo)準(zhǔn)答案:(1)return&t;(2)x=::x;(3)Cout<<*fune(x,y,z)<知識(shí)點(diǎn)解析:程序當(dāng)中定義了全局靜態(tài)變量x,主函數(shù)內(nèi)又定義了一個(gè)和靜態(tài)變量x重名的變量x,在使用時(shí)需要注意區(qū)分這兩個(gè)變量。函數(shù)func(intx,inty,intz)返回一個(gè)整型數(shù)據(jù)指針,功能是將參數(shù)x,y,z三者求和,通過指針返回運(yùn)算結(jié)果。[解題思路](1)由審題分析可知,函數(shù)func(intx,inty,intz)返回的是整型數(shù)據(jù)指針,而第1個(gè)標(biāo)識(shí)下的retumt表示返回一個(gè)整型數(shù)據(jù),和要求的返回?cái)?shù)據(jù)類型不匹配,應(yīng)改為“return&t:”。(2)第2個(gè)標(biāo)識(shí)下x=x表示局部變量x自己給自己賦值,調(diào)用func(x,y,z)函數(shù)后,返回的運(yùn)算結(jié)果是30+10+20=60,與輸出100不同,而全局靜態(tài)變量x值為50,30+50+20=100,剛好滿足條件,因此第2個(gè)標(biāo)識(shí)下是將全局靜態(tài)變量x的值賦給局部變量x,即第2個(gè)標(biāo)識(shí)下應(yīng)該為“x=::x:”,“::”表示的是引用全局變量。(3)func(x,y,z)返回一個(gè)整型數(shù)據(jù)指針,通過該指針可以得到運(yùn)算結(jié)果,而cout<三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)39、下列給定程序中,函數(shù)fun的功能是:先將s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序連接到t所指串之后。例如,當(dāng)s所指的字符串為“ABCDE”時(shí),t所指的字符串應(yīng)為“EDCBAABCDE”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#include#includevoidfun(char*s,char*t){/*********found*********/inti;sl=strlen(s);for(i=0;i標(biāo)準(zhǔn)答案:(1)inti,s1;(2)t[i]=s[s1—i—1];知識(shí)點(diǎn)解析:(1)變量s1沒有定義。(2)該循環(huán)實(shí)現(xiàn)將s串中的字符逆序存入t串中,t[j]對(duì)應(yīng)s串中的s[s1—i—1]。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)40、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)類CBase有一個(gè)常數(shù)變量Number1,在構(gòu)造函數(shù)時(shí)對(duì)其初始化,請(qǐng)?jiān)谧⑨尅?*******1********后添加適當(dāng)?shù)恼Z句。(2)類CPri是CBaSe的公共繼承類,請(qǐng)?jiān)谧⑨尅?*******2********后添加適當(dāng)?shù)恼Z句。(3)類CPri構(gòu)造函數(shù)有兩個(gè)形式參數(shù),第一個(gè)是對(duì)CBase的初始化,第二個(gè)缺省為0,用來對(duì)變量Number2進(jìn)行初始化。請(qǐng)?jiān)谧⑨尅?*******3********后添加適當(dāng)?shù)恼Z句。(4)類CPri的函數(shù)display()重載于CBase的打印函數(shù)。完成對(duì)變量Number2的輸出,然后調(diào)用基類的打印函數(shù),請(qǐng)?jiān)谧⑨尅?*******4********后添加適當(dāng)?shù)恼Z句。輸出的內(nèi)容如下:Number2=12Number=8注意:除在指定位置添加語句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#includeClassCBase{private:intNumber;public:∥********1********CBaSe(intx){}voiddisplay(){cout<<“Number=”<標(biāo)準(zhǔn)答案:(1)將“CBase(intx)”補(bǔ)充完整為:CBase(intx):Number(x)(2)將“classCPri”補(bǔ)充完整為:classCPri:publicCBase(3)將“CPri(intx,inty=0)”補(bǔ)充完整為:Cpri(intx,inty=0):CBase(x)(4)添加語句:cout<<“Number2=”<知識(shí)點(diǎn)解析:程序中定義了類CBase和類CPri,類CPri公有派生于類CBase,CBase中有成員變量Number,CPri有成員變量Number2,兩個(gè)類均有display()函數(shù)來打印成員變量的值。國家二級(jí)(C++)機(jī)試模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、運(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。2、下列關(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。3、下列關(guān)于C++函數(shù)的敘述中,正確的是()。A、每個(gè)函數(shù)至少要具有一個(gè)參數(shù)B、每個(gè)函數(shù)都必須返回一個(gè)值C、函數(shù)在被調(diào)用之前必須先聲明D、函數(shù)不能自己調(diào)用自己標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)的性質(zhì)。當(dāng)調(diào)用無參函數(shù)時(shí)主函數(shù)并不將數(shù)據(jù)傳送給被調(diào)函數(shù),且可以帶回或不帶回函數(shù)值。函數(shù)的遞歸調(diào)用就是直接或間接的調(diào)用自己。4、下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。A、軟件測(cè)試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)和測(cè)試。5、有如下說明:inta,[10]1={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()。A、*p+9B、*(p+8)C、*p+=9D、p+8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查指向數(shù)組的指針,本題中指針變量p指向數(shù)組a,那么水p的值就是1,即表示數(shù)組的第一個(gè)元素,那么數(shù)值為9的表達(dá)式就是將指針向后移動(dòng)8個(gè)地址,即p+8指向的是數(shù)組元素值為9,所以數(shù)值為9的表達(dá)式是水(p+8)。6、以下不正確的是()。A、語句for(i=0;;i++)表示無限循環(huán)B、for(;;)表示無限循環(huán)C、for()表示無限循環(huán)D、while(1)表示無限循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:選項(xiàng)C)是一個(gè)錯(cuò)誤的for語句格式,for()語句中三個(gè)表達(dá)式可以省略。但是兩個(gè)分號(hào)(;)不能省略。7、由于常對(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。8、設(shè)變量a和b已正確定義并賦初值,則a-=a+b等價(jià)的賦值表達(dá)式為()。A、a=a+(b-a)B、a=b-(a+b)C、-a=bD、a=-b標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查運(yùn)算符與賦值表達(dá)式。a-=a+b可表示為a=a-(a+b),也可化簡(jiǎn)成a=-b。9、關(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。10、下列關(guān)于運(yùn)算符重載的敘述中,錯(cuò)誤的是()。A、有的運(yùn)算符可以作為非成員函數(shù)重載B、所有的運(yùn)算符都可以通過重載而被賦予新的含義C、不得為重載的運(yùn)算符函數(shù)的參數(shù)設(shè)置默認(rèn)值D、有的運(yùn)算符只能作為成員函數(shù)重載標(biāo)準(zhǔn)答案:B知識(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)類型。所以答案為B。11、在下列double型常量表示中,錯(cuò)誤的是()。A、E15B、35C、3E5D、3E一5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,科學(xué)計(jì)數(shù)法表示小數(shù)的方法:E(e)左右必須有數(shù),且E(e)的右側(cè)只能為整數(shù)。12、下述關(guān)于開關(guān)語句的描述中,正確的是()。A、開關(guān)語句中default子句可以沒有,也可以有一個(gè)B、開關(guān)語句中每個(gè)語句序列中必須有break語句C、開關(guān)語句中default子句只能放在最后D、開關(guān)語句中ease子句后面的表達(dá)式可以是整型表達(dá)式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在switch語句中default的位置不是固定在最后的位置,同時(shí)default也是可以省略。13、若要對(duì)Data類中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項(xiàng)中正確的是()。A、Data+(Data);B、Dataoperator+(Data);C、Data+operator(Data);D、operator+(Data,Data);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)重載加法運(yùn)算符的格式,只有B選項(xiàng)正確。14、負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)定義語言:負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言:負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作;數(shù)據(jù)控制語言:負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。15、下列說法中錯(cuò)誤的是()。A、公有繼承時(shí)基類中的public成員在派生類中仍是public的B、公有繼承時(shí)基類中的private成員在派生類中是public的C、私有繼承時(shí)基類中的public成員在派生類中是private的D、保護(hù)繼承時(shí)基類中的public成員在派生類中是protected的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:公有繼承中,基類的公有成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有。所以B是錯(cuò)誤的,即選擇B)。16、下列選項(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。17、派生類的對(duì)象對(duì)它的基類成員中()是可以訪問的。A、公有繼承的公有成員B、公有繼承的私有成員C、公有繼承的保護(hù)成員D、私有繼承的公有成員標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:只要是派生類,都可以叢基類中繼承,除非把基類的構(gòu)造函數(shù)定義為私有的,這樣派生類無法構(gòu)造。18、同一概念在一處為實(shí)體而在另一處為屬性或聯(lián)系的沖突在視圖集成中稱為()。A、命名沖突B、概念沖突C、域沖突D、約束沖突標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:同一概念在一處為實(shí)體,而在另一處為屬性或聯(lián)系的沖突稱為概念沖突。19、軟件設(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)、模塊的依賴關(guān)系適當(dāng)?shù)?。模塊的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理,并進(jìn)一步保證以此為依據(jù)開發(fā)出的軟件系統(tǒng)可靠性強(qiáng),易于理解和維護(hù)。模塊之間的耦合應(yīng)盡可能的低,模塊的內(nèi)聚度應(yīng)盡可能的高。20、下面的符號(hào)中可以用作C++標(biāo)識(shí)符的是()。A、3testB、fcc~otherC、elseD、radius標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++標(biāo)識(shí)符是以字母、下劃線開頭的,由字母、數(shù)字及下劃線組成的,不與關(guān)鍵字相同的字符串。選項(xiàng)C)中else為關(guān)鍵字。21、運(yùn)算符函數(shù)調(diào)用格式的表達(dá)式“y/x++”與表達(dá)式“y.operator/(operator++(x,0))”的含義相同,由此可看出()。A、“/”和“++”都是作為成員函數(shù)重載的B、“/”和“++”都是作為非成員函數(shù)重載的C、“/”是作為成員函數(shù)重載的,“++”是作為非成員函數(shù)重載的D、“/”是作為非成員函數(shù)重載的,“++”都是作為成員函數(shù)重載的標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:運(yùn)算符函數(shù)有兩種調(diào)用形式,第一種是像一般函數(shù)那樣用函數(shù)名調(diào)用,即y.operator*(z)或者operator*(y,z);另一種是通過運(yùn)算符構(gòu)成表達(dá)式,即y*z。因?yàn)椤?+”運(yùn)算符既可以作為前綴運(yùn)算符,又可以作為后綴運(yùn)算符,所以重載這個(gè)運(yùn)算符時(shí),重載后綴“++”時(shí)必須多一個(gè)虛擬參數(shù):mt。22、有如下程序:#include#includeusingnamespacestd;classInstrument{public:Instrument(stringt="樂器",stringn="無名"):type(t),name(n){}stri
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025遼寧建筑安全員B證考試題庫及答案
- 學(xué)前教育自我介紹
- 建筑消防知識(shí)培訓(xùn)
- 術(shù)中生命體征監(jiān)測(cè)與護(hù)理
- 幼兒園教師策劃工作培訓(xùn)
- 咖啡拉花甜品培訓(xùn)課程
- 護(hù)理個(gè)案病例匯報(bào)
- 醫(yī)療信息化建設(shè)的進(jìn)度保障措施
- 服務(wù)業(yè)工會(huì)主席的職責(zé)與挑戰(zhàn)
- 蛋雞155標(biāo)準(zhǔn)化立體養(yǎng)殖模式
- 小兒常見皮疹識(shí)別與護(hù)理
- 2025年山西經(jīng)貿(mào)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫新版
- 某連鎖藥店公司發(fā)展戰(zhàn)略
- 浙江省湖州市德清縣2025年中考語文模擬考試試卷(附答案)
- 2025年無錫南洋職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫帶答案
- 2025年河南工業(yè)和信息化職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫及答案1套
- 校長(zhǎng)在2025春季開學(xué)思政第一課講話:用《哪吒2》如何講好思政課
- T-SSFSIDC 021-2024 認(rèn)股權(quán)綜合服務(wù)工作準(zhǔn)則
- 《迪拜帆船酒店》課件
- 2025年晉城職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
評(píng)論
0/150
提交評(píng)論