版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(jí)(C++)筆試模擬試卷9(共9套)(共442題)國家二級(jí)(C++)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、下列關(guān)于線性表、棧和隊(duì)列的敘述,錯(cuò)誤的是A、線性表是給定的n(n必須大于零)個(gè)元素組成的序列B、線性表允許在表的任何位置進(jìn)行插入和刪除操作C、棧只允許在一端進(jìn)行插入和刪除操作D、隊(duì)列允許在一端進(jìn)行插入在另一端進(jìn)行刪除標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表的插入和刪除允許在任何位置進(jìn)行,所以B選項(xiàng)的說法是正確的;棧的操作只允許在棧頂進(jìn)行,因此,棧稱為先進(jìn)后出表(FILO,FirstInLastOut),或“后進(jìn)先出”表(LIFO,LastInFirstOut),所以C選項(xiàng)說法也是正確的;隊(duì)列(queue)是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭(front),允許插入的一端叫做隊(duì)尾(rear),因此隊(duì)列亦稱作先進(jìn)先出(FIFO,FirstInFirstOut)的線性表,或后進(jìn)后出(LILO,LastInLastOut)的線性表。所以D選項(xiàng)說法也是正確的。2、串的長度是A、串中不同字符的個(gè)數(shù)B、串中不同字母的個(gè)數(shù)C、串中所含字符的個(gè)數(shù)且字符個(gè)數(shù)大于零D、串中所含字符的個(gè)數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:串的長度指的是串中的字符的個(gè)數(shù),且其字符個(gè)數(shù)可以為零。3、用數(shù)組表示線性表的優(yōu)點(diǎn)是A、便于插入和刪除操作B、便于隨機(jī)存取C、可以動(dòng)態(tài)地分配存儲(chǔ)空間D、不需要占用一片相鄰的存儲(chǔ)空間標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)順序存儲(chǔ)的線性表進(jìn)行插入和刪除操作時(shí),需要移動(dòng)大量的元素,因此不便于進(jìn)行插入刪除操作,A選項(xiàng)錯(cuò)誤;數(shù)組的存儲(chǔ)空間大小一開始就已經(jīng)分配好,不能動(dòng)態(tài)分配存儲(chǔ)空間,所以C選項(xiàng)錯(cuò)誤;數(shù)組正是占用一片相鄰的存儲(chǔ)空間,所以D選項(xiàng)也錯(cuò)誤。4、軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和A、消除軟件危機(jī)B、軟件工程管理C、程序設(shè)計(jì)自動(dòng)化D、實(shí)現(xiàn)軟件可重用標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件工程的目標(biāo)是,在給定的成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品?;谶@一目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。5、開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱作A、軟件投機(jī)B、軟件危機(jī)C、軟件工程D、軟件產(chǎn)生標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:將開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾稱作軟件危機(jī)。6、軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成A、定義、開發(fā)、運(yùn)行維護(hù)B、設(shè)計(jì)階段、編程階段、測試階段C、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試D、需求分析、功能定義、系統(tǒng)設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。7、數(shù)據(jù)處理的最小單位是A、數(shù)據(jù)B、數(shù)據(jù)元素C、數(shù)據(jù)項(xiàng)D、數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C。8、下列SQL語句中,用于修改表結(jié)構(gòu)的是A、ALTERB、CREATEC、UPDATED、INSERT標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:SQL,語句中凡創(chuàng)建都用CREATE,刪除都用DROP,改變用ALTER,再跟類型和名字,附加子句。9、面向?qū)ο蟮某绦蛟O(shè)計(jì)主要考慮的是提高軟件的A、可靠性B、可重用性C、可移植性D、可修改性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)于A項(xiàng),可靠性,沒有這種說法;對(duì)于C項(xiàng),可移植性,與設(shè)計(jì)的方法無關(guān),而是與軟硬件環(huán)境有關(guān);對(duì)于D選項(xiàng),可修改性,不是面向?qū)ο蟪绦蛟O(shè)計(jì)的主要目的。所以A選項(xiàng)、C選項(xiàng)和D選項(xiàng)都是錯(cuò)誤的。10、數(shù)據(jù)庫系統(tǒng)的核心是A、數(shù)據(jù)庫B、數(shù)據(jù)庫管理系統(tǒng)C、模擬模型D、軟件工程標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。二、選擇題(本題共25題,每題1.0分,共25分。)11、關(guān)于常成員函數(shù),下列說法中錯(cuò)誤的是A、常成員函數(shù)無法更新對(duì)象的數(shù)據(jù)成員,但可以訪問其他類的公用數(shù)據(jù)成員或全局變量B、常成員函數(shù)無法更新對(duì)象的數(shù)據(jù)成員,但是可以更新該對(duì)象的常數(shù)據(jù)成員C、常成員函數(shù)既可以被常對(duì)象調(diào)用,也可以被一般對(duì)象調(diào)用D、常成員函數(shù)不僅要在聲明中用到const修飾符,在定義時(shí)也必須使用const修飾符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考察const修飾符的使用規(guī)則,只要考生理解了const表示“?!钡囊馑季腿菀着e一反三。根據(jù)被修飾內(nèi)容的不同,const在修飾數(shù)據(jù)成員,成員函數(shù)和對(duì)象時(shí),具有特定的含義。很明顯,常數(shù)據(jù)成員是不能被修改的,這一點(diǎn)在選項(xiàng)B中被破壞,因此可以確定本題答案為B,如果考生對(duì)其他選項(xiàng)難于區(qū)分,同樣可以得到正確答案。12、解決類繼承中產(chǎn)生的二義性的方法不包括A、使用作用域運(yùn)算符限定訪問的成員函數(shù)B、在派生類中定義同名函數(shù),且參數(shù)表必須和基類的保持一致C、在派生類中定義同名函數(shù),且參數(shù)表可以和基類的不同D、采用虛基類解決多重繼承中的共同基類產(chǎn)生的二義性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:繼承中的二義性主要表現(xiàn)在多重繼承中具有多條繼承路徑時(shí),派生類中行為的不確定性。如果強(qiáng)制指定了按照某條路徑訪問,亦即采用域作用符限定訪問的成員函數(shù)的方法可以解決之,故選項(xiàng)A排除。在選項(xiàng)B和C中,唯一的區(qū)別在于參數(shù)表是否一致,我們知道:參數(shù)表不一致同名函數(shù)屬于重載,是不存在二義性問題的,故選項(xiàng)C是正確答案。關(guān)于選項(xiàng)D,虛基類是C++中解決二義性的一種有效手段。13、一個(gè)類的友元函數(shù)能夠訪問該類的A、私有成員B、保護(hù)成員C、公用成員D、所有成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在一個(gè)類的內(nèi)部聲明,并用friend修飾的函數(shù)稱為該類的友員函數(shù),友員函數(shù)可以像成員函數(shù)一樣,訪問類的所有級(jí)別的成員。友員機(jī)制主要用于提高訪問效率,但是破壞了類的封裝性原則。在程序中適當(dāng)使用友員函數(shù),并尋求封裝和效率之間的一個(gè)平衡點(diǎn),是使用友員技術(shù)的一個(gè)主要內(nèi)容。14、執(zhí)行下列語句后,輸出結(jié)果為steven的是char*str="steven";eout.write(str,);A、strlen(str)B、sizeof(str)C、strlen(str+1)D、sizeof(str-1)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考察在C++中,字符串的存放方式,以及不同的字符串函數(shù)的作用。其中,strlen是專門用于求字符串長度的,其自動(dòng)去掉字符數(shù)組后面的那個(gè)‘\0’,而sizeof后面求的則是str指針,指針在目前的32位機(jī)器中是固定大小的,其值與字符串的長度是沒有關(guān)系的。故可以排除B和D。而選項(xiàng)C則將‘\0’多考慮了一次。15、對(duì)于拷貝構(gòu)造函數(shù)和賦值操作的關(guān)系,正確的是A、拷貝構(gòu)造函數(shù)和賦值操作是完全一樣的操作B、進(jìn)行賦值操作時(shí),會(huì)調(diào)用類的構(gòu)造函數(shù)C、當(dāng)調(diào)用拷貝構(gòu)造函數(shù)時(shí),類的對(duì)象正在被建立并被初始化D、拷貝構(gòu)造函數(shù)和賦值操作不能在同一個(gè)類中被同時(shí)定義標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在賦值操作中,將發(fā)生對(duì)象的拷貝操作,但并不說明兩者是完全一樣的。一般情況下,如果給類定義了賦值操作符,則應(yīng)該同時(shí)定義合適的拷貝構(gòu)造函數(shù),除非系統(tǒng)默認(rèn)生成的拷貝構(gòu)造函數(shù)滿足賦值操作。實(shí)際上,系統(tǒng)默認(rèn)的拷貝構(gòu)造函數(shù)僅僅將數(shù)據(jù)成員進(jìn)行簡單的對(duì)應(yīng)賦值,而在多數(shù)特殊應(yīng)用中,這么簡單的對(duì)應(yīng)關(guān)系是不適用的,這就需要程序員重新定義拷貝構(gòu)造函數(shù)。16、下面描述中體現(xiàn)了抽象類特性的語句是A、可以說明虛函數(shù)B、可以進(jìn)行構(gòu)造函數(shù)重載C、可以定義友元函數(shù)D、不能定義對(duì)象標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:抽象類指的是類中至少有一個(gè)純虛函數(shù),純虛函數(shù)是虛函數(shù)后有“=0”修飾,表示該函數(shù)在本級(jí)類中沒有實(shí)現(xiàn),類僅用于派生。抽象類存在的唯一目的就是構(gòu)造類層次,派生出其他類。抽象類與其他類的最大區(qū)別就在于抽象類不能實(shí)例化。17、下面說法正確的是A、內(nèi)聯(lián)函數(shù)在運(yùn)行時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方B、內(nèi)聯(lián)函數(shù)在編譯時(shí)是將該函數(shù)的目標(biāo)代碼插入每個(gè)調(diào)用該函數(shù)的地方C、類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義D、類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)聯(lián)函數(shù)用inline修飾,用于取代C語言中的宏定義。Inline是個(gè)建議機(jī)制而不是強(qiáng)制機(jī)制,也就是說,程序員可以指定任意函數(shù)為inline函數(shù),但是編譯器會(huì)根據(jù)系統(tǒng)情況來決定是否將其inline處理。對(duì)于較大的函數(shù),編譯器往往會(huì)取消其inline特性。Inline函數(shù)的特點(diǎn)之一就是執(zhí)行速度快,他實(shí)質(zhì)是在編譯時(shí)將函數(shù)的目標(biāo)代碼插入到每個(gè)調(diào)用該函數(shù)的地方,從而沒有出棧入棧、保護(hù)現(xiàn)場等開銷,提高了效率。在類體內(nèi)定義的成員函數(shù),自動(dòng)被編譯器當(dāng)做內(nèi)聯(lián)函數(shù)處理,在類體外定義的成員函數(shù),如果用inline修飾,編譯器也認(rèn)為是一種內(nèi)聯(lián)建議。18、已知一個(gè)運(yùn)行正常的程序中有下面兩個(gè)語句:int*p1,p2&a;p1=b;由此可知,變量a和b的類型分別是A、int和intB、int*和intC、int和int*D、int*和int*標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題乍一看讓人迷惑,如果找到切入點(diǎn)就可以簡單快速的解答本題。觀察四個(gè)選項(xiàng)可知,變量a和b的四種組合分別是四個(gè)選項(xiàng)。很明顯指針在做值使用時(shí)需要加星號(hào)修飾,即如*p1=整數(shù)變量的形式。故b不可能是int型,故可排除A和B。另外需要注意的是變量的初始化和賦值是不同的。P2在聲明時(shí)就指向變量a,其值為a的地址。因此,變量a應(yīng)為:int型,故正確答案為C。19、以下說法中錯(cuò)誤的是A、strcpy(A,B)函數(shù)是將A字符串的內(nèi)容復(fù)制到B字符串中B、strlen(cha*s)返回字符串S的長度,未尾的字符不計(jì)算在內(nèi)C、chara[20]="string";中字符串長度為6D、strstr(S1,S2)函數(shù)在字符串S1中從左邊開始查找字符串S2,若查找成功則返回S2在S1中首次出現(xiàn)的位置,否則返回NULL,如果S2為"",則返回S1。標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:strcpy()函數(shù)的一般形式為:strcpy(to,from),該函數(shù)將from字符串中的內(nèi)容復(fù)制到to字符串中,故A項(xiàng)錯(cuò)誤。20、下列關(guān)于虛函數(shù)與函數(shù)重載區(qū)別的敘述中不正確的是A、函數(shù)說明形式上不同B、函數(shù)重載允許是非成員函數(shù),虛函數(shù)只能是成員函數(shù)C、函數(shù)重載的調(diào)用依據(jù)參數(shù)和類型的差別,虛函數(shù)則依據(jù)對(duì)象D、函數(shù)重載的本體可以在類外定義,虛函數(shù)不可以標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:A項(xiàng),B項(xiàng),C項(xiàng)均為虛函數(shù)與函數(shù)重載的不同之處。但有一點(diǎn)它們是相同的:在類內(nèi)外定義均可。故D項(xiàng)錯(cuò)誤。21、請(qǐng)閱讀以下程序main(){intx=1,y=0,a=0,b=0;switch(x)case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}cout<<"a="<<a<<"b="<<b<<endl;}上面程序的輸出結(jié)果是A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考察switch語句的嵌套,以及break語句的使用規(guī)則,不再執(zhí)行下面的case語句,如果沒有break語句,則會(huì)順序執(zhí)行隨后語句。據(jù)此,讀程序可知,內(nèi)層switch執(zhí)行case0分支,故a增1,跳出內(nèi)層switch后,由于沒有break語句;隨后執(zhí)行外層switch的case2分支,a又增1,b增1。故答案為A。22、以下程序的輸出結(jié)果是main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}cout<<a<<endl;}A、21B、32C、33D、11標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題是兩個(gè)循環(huán)語句和一個(gè)判斷語句的嵌套。For循環(huán)的作用是在i等于10的時(shí)候跳出循環(huán)。本題的答案為B。23、以下程序的功能是按順序讀入10名學(xué)生4門課程的成績,計(jì)算出每位學(xué)生的平均分并輸出:main(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){cin>>score;sum+=score;}ave=sum/4.0;cout<<"NO"<<n<<":"<<ave<<endl;}}上述程序運(yùn)行后結(jié)果不正確,調(diào)試中發(fā)現(xiàn)有一條語句出現(xiàn)在程序中的位置不正確。這條語句是A、sum=0.0B、sum+=scoreC、ave=sun/4.0D、cout<<"N0"<<n<<":"<<ave<<endl;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題編譯沒有錯(cuò)誤,但是執(zhí)行結(jié)果確實(shí)錯(cuò)誤的。錯(cuò)誤原因在于第一個(gè)考生的乘積輸入完之后,sun的值并沒有被清空,接著累加第二個(gè)考生的分?jǐn)?shù),隨后進(jìn)行四門平均是錯(cuò)誤的。所以需要內(nèi)層循環(huán)和平均值計(jì)算完畢后進(jìn)行sum的清空。24、執(zhí)行語句序列ofstreamoutfile(“DATE.DAT”);if(…)cout<<"OK";elsecout<<"FAIL"后,如果文件打開成功,顯示“OK”,否則顯示"FAIL"。由此可知,上面if語句…處的表達(dá)式是:A、outfile.fail()或outfileB、outfile.good()或outfileC、outfile.good()或!outfileD、outfile.fail()或!outfile標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查文件流狀態(tài)判斷函數(shù)。good()表示剛進(jìn)行的操作成功時(shí)返回true,否則返回false。fail()與good()相反,fail()表示剛進(jìn)行的操作失敗時(shí)返回true,否則返回false。本題中流對(duì)象為outfile,則if(!outfile)等同于if(outfile.fail()),if(outfile)等同于if(outfile.good)。由上述可知正確答案為B項(xiàng)。25、有如下程序main(){intn[5]={0,0,0},i,k=2;for(i=0;i<k;i++)n[i]=n[i]+1;cout<<n[k]<<endl;}該程序的輸出結(jié)果是A、不定值B、2C、1D、0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題中的for循環(huán)只是起到混淆視聽的效果,對(duì)結(jié)果并沒有任何影響。26、下列關(guān)于虛基類的描述中錯(cuò)誤的是A、虛基類子對(duì)象的初始化由最派生類完成B、虛基類子對(duì)象的初始化次數(shù)與虛基類下面的派生類個(gè)數(shù)有關(guān)C、設(shè)置虛基類的目的是消除二義性D、帶有虛基類的多層派生類構(gòu)造函數(shù)的成員初始化列表中都要列出對(duì)虛基類構(gòu)造函數(shù)調(diào)用標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:虛基類主要是為了消除在多重繼承中的二義性問題。虛基類對(duì)象的初始化次數(shù)只于對(duì)象的多少有關(guān),與類的層次結(jié)構(gòu)是沒有關(guān)系的。故本題正確答案為B。27、在某類的公共部分有聲明stringoperator++();和stringoperator++(int);則說明A、stringoperator++();是前置自增運(yùn)算符聲明B、string()perator++();是后置自增運(yùn)算符聲明C、stringoperator++(int);是前置自增運(yùn)算符聲明D、兩條語句無區(qū)別標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在重載單操作符的過程中,++既可以是前綴運(yùn)算符,又可以是后綴運(yùn)算符,C++規(guī)定重載后綴++時(shí)必須多一個(gè)虛擬參數(shù)int,則不帶虛擬參數(shù)int的為前綴運(yùn)算符。28、已知類X成功地重載了--、+、=、[]這幾個(gè)運(yùn)算符。則其中肯定屬于成員函數(shù)的運(yùn)算符是:A、前置--和[]B、=和[]C、[]和后置--D、+和=標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:賦值運(yùn)算符=和運(yùn)算符[]只能作為成員函數(shù)重載,而--,+則沒有限止。29、設(shè)有charstr[80];以下不能將輸入數(shù)據(jù)first\nsecond\n<CR>讀取到數(shù)組str中的語句是A、cin.get(str,strlen(str));B、cin.getline(str,strlen(str));C、cin>>str;D、cin.read(str,strlen(str));標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考察C++中輸入輸出流對(duì)象的一些常用成員函數(shù)的用法。其中g(shù)et和getline的區(qū)別在于getline讀取中以"\n"作為輸入結(jié)束符。故本題中g(shù)etline只能接收第一個(gè)換行符之前的字符,即first。后面的字符被丟棄。因此正確答案應(yīng)為B。30、下列能對(duì)對(duì)象進(jìn)行初始化的是A、構(gòu)造函數(shù)B、析構(gòu)函數(shù)C、友元函數(shù)D、靜態(tài)成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象的初始化工作由構(gòu)造函數(shù)來完成,析構(gòu)函數(shù)則完成對(duì)象銷毀前的資源回收等工作。靜態(tài)成員函數(shù)為同一類中所有對(duì)象所共享。31、控制格式輸入/輸出的操作子中,設(shè)置域?qū)挼暮瘮?shù)是A、wsB、octC、setfill(int)D、setw(int)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題需要考生記憶一些輸入輸出控制操作子,oct為八進(jìn)制,setfill為設(shè)置填充符,setw為設(shè)置域?qū)挕?2、下列不能作為類的成員的是A、自身類對(duì)象的指針B、自身類對(duì)象C、數(shù)組D、另一個(gè)類的對(duì)象標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類的數(shù)據(jù)成員可以是任意類型,包括整型,浮點(diǎn)型、字符型、數(shù)組、指針和引用,也可以是類自身的指針,另一個(gè)類的對(duì)象,但不能是類自身的對(duì)象,故B項(xiàng)是錯(cuò)誤的。33、設(shè)置虛基類的目的是A、簡化程序B、消除二義性C、提高程序運(yùn)行效率D、減少目標(biāo)代碼標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:虛基類的目標(biāo)就是要消除二義性。34、下列描述中正確的是A、類中可以定義與類名相同的數(shù)據(jù)成員B、直接子類中可以定義與父類名相同的數(shù)據(jù)成員C、孫子類中可以定義與爺爺類名相同的數(shù)據(jù)成員。D、類的所有子孫中都不可以定義與該類同名的數(shù)據(jù)成員。標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題所有選項(xiàng)中均提到了同名數(shù)據(jù)成員的現(xiàn)象。是否允許同名數(shù)據(jù)成員存在,關(guān)鍵要看這種同名現(xiàn)象編譯器是否能夠判斷出來,如果可以判斷,則是允許的,否則則是禁止的。35、要通過函數(shù)實(shí)現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,則應(yīng)該選用A、重載函數(shù)B、內(nèi)聯(lián)函數(shù)C、靜態(tài)函數(shù)D、虛函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)聯(lián)inline函數(shù)就是取代宏定義的,在編譯時(shí)展開,插入到相應(yīng)的位置,從而減少了系統(tǒng)開銷,加快了執(zhí)行速度。虛函數(shù)則是為了取消二義性現(xiàn)象,靜態(tài)函數(shù)則是一個(gè)類所有對(duì)象的共享函數(shù)。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、設(shè)一棵二叉樹的中序遍歷結(jié)果為ABCDEFG,前序遍歷結(jié)果為DBACFEG,則后序遍歷結(jié)果為______。標(biāo)準(zhǔn)答案:ACBEGFD知識(shí)點(diǎn)解析:由于在前序遍歷中首先訪問根結(jié)點(diǎn),因此,前序序列中的第一個(gè)結(jié)點(diǎn)為二叉樹的根結(jié)點(diǎn),即D為二叉樹的根結(jié)點(diǎn)。又由于在中序遍歷中訪問根結(jié)點(diǎn)的次序?yàn)榫又?,而訪問左子樹上的結(jié)點(diǎn)為居先,訪問右子樹上的結(jié)點(diǎn)為最后,因此,在中序序列中,以根結(jié)點(diǎn)(D)為分界線,前面的子序列(ABC)一定在左子樹中,后面的子序列(EFG)一定在右子樹中。同樣的道理,對(duì)于已經(jīng)劃分出的每一個(gè)子序列的所有結(jié)點(diǎn)中,位于前序序列最前面的一個(gè)結(jié)點(diǎn)為子樹的根結(jié)點(diǎn),而在中序序列中位于該根結(jié)點(diǎn)前面的結(jié)點(diǎn)構(gòu)成左子樹上的結(jié)點(diǎn)子序列,位于該根結(jié)點(diǎn)后面的結(jié)點(diǎn)構(gòu)成右子樹上的結(jié)點(diǎn)子序列。這個(gè)處理過程直到所有子序列為空為止。根據(jù)上述道理,該二叉樹恢復(fù)的過程如下圖所示:根據(jù)后序遍歷的方法,對(duì)該二叉樹后序遍歷的結(jié)果為ACBEGFD。37、在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對(duì)象稱為______。標(biāo)準(zhǔn)答案:類知識(shí)點(diǎn)解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對(duì)象。因此,屬性與操作相似的一組對(duì)象稱為類。38、在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工之間的關(guān)系,并且,每一個(gè)______實(shí)際上對(duì)應(yīng)一個(gè)處理模塊。標(biāo)準(zhǔn)答案:加工知識(shí)點(diǎn)解析:SD方法實(shí)際上是面向數(shù)據(jù)流圖的,即它的工作對(duì)象實(shí)際上是在SA方法中形成的數(shù)據(jù)流圖。因此,可以由數(shù)據(jù)流圖來導(dǎo)出結(jié)構(gòu)圖。另外,由數(shù)據(jù)流圖導(dǎo)出結(jié)構(gòu)圖的關(guān)鍵是找出中心加工,而每個(gè)加工則對(duì)應(yīng)一個(gè)處理模塊。39、軟件概要設(shè)計(jì)的成果是______。標(biāo)準(zhǔn)答案:軟件設(shè)計(jì)說明書知識(shí)點(diǎn)解析:軟件生命周期各個(gè)階段都有階段成果,軟件設(shè)計(jì)說明書是軟件概要設(shè)計(jì)階段的成果。40、在數(shù)據(jù)庫的外模式、模式和內(nèi)模式3級(jí)模式的體系結(jié)構(gòu)中,存在兩級(jí)映射:外模式到模式的映射定義了外模式與模式之間的對(duì)應(yīng)關(guān)系;模式到內(nèi)模式的映射定義了數(shù)據(jù)庫的邏輯結(jié)構(gòu)與______之間的對(duì)應(yīng)關(guān)系。標(biāo)準(zhǔn)答案:物理結(jié)構(gòu)知識(shí)點(diǎn)解析:模式也稱為邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述;內(nèi)模式也稱存儲(chǔ)模式或數(shù)據(jù)庫模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的描述。四、填空題(本題共10題,每題1.0分,共10分。)41、為了表明一個(gè)函數(shù)不帶返回值,應(yīng)在定義函數(shù)時(shí)指定該函數(shù)類型為______。標(biāo)準(zhǔn)答案:void知識(shí)點(diǎn)解析:void表明該函數(shù)不帶返回值,如果沒有void,則系統(tǒng)會(huì)返回一個(gè)默認(rèn)類型的隨機(jī)值,這對(duì)程序可能造成不必要的問題。42、下列程序如果去掉for循環(huán)外圍的大括號(hào)對(duì),則會(huì)出現(xiàn)編譯錯(cuò)誤。錯(cuò)誤原因是______。#include<iostream.h>inta=5;voidmain(){inta=10,b=20;cout<<a<<","<<b<<endl;{inta=0,b=0;for(inti=1;i<8;i++){a+=i;b+=a;}cout<<a<<","<<b<<","<<::a<<endl;}cout<<a<<","<<b<<endl;}標(biāo)準(zhǔn)答案:a,b重定義知識(shí)點(diǎn)解析:在本題中for循環(huán)外圍的大括號(hào)對(duì)沒有實(shí)質(zhì)含義,僅用于函數(shù)的作用域范圍。如果去掉該括號(hào),編譯錯(cuò)誤就會(huì)發(fā)生,因?yàn)樽兞縜,b出現(xiàn)了重定義錯(cuò)誤。43、有以下程序#include<iostream>usingnamespacestd;longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn2;}intmain(){cout<<fib(3)<<endl;return0;}則該程序的輸出結(jié)果應(yīng)該是______。標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題主要考查C++中遞歸函數(shù),主函數(shù)通過調(diào)用fib()函數(shù),fib()函數(shù)的內(nèi)部再通過一個(gè)分支結(jié)構(gòu)判斷是否進(jìn)行遞歸調(diào)用或退出遞歸調(diào)用,調(diào)用方式為直接遞歸調(diào)用。主函數(shù)通過實(shí)參將值3賦給fib()函數(shù)的形參n,由于n=3滿足if分支語句條件,因此函數(shù)進(jìn)行遞歸調(diào)用,即計(jì)算fib(2)和fib(1)的值;將2賦給fib()函數(shù)的形參后,由于n=2不滿足if語句條件,因此程序退出遞歸,返回2;將1賦給fib()函數(shù)的形參后,函數(shù)同樣返回2。因此函數(shù)遞歸調(diào)用的最終結(jié)果為返回2+2=4,即fib(3)=4,程序最后輸出值為4。44、下列程序不能通過編譯,應(yīng)該在劃線部分填寫的語句是______。#include<iostream.h>#include<stdlib.h>doubleFunc(inta,intb,charch){doublex;switch(ch){case’+’:x=double(a)+b;break;case’-’:x=double(a)-b;break;case’*’:x=double(a)*b;break;case’/’:if(B)x=double(a)/b;elseexit(1);break;default:exit(1);}______}voidmain(){cout<<Func(32,6,’-’)<<",";cout<<Func(32,6,’*’)<<",";cout<<Func(32,6,’/’)<<endl;}標(biāo)準(zhǔn)答案:returnx;知識(shí)點(diǎn)解析:本題函數(shù)聲明時(shí)指定了函數(shù)的返回值為double,因此在函數(shù)體中必須存在一個(gè)return語句。45、根據(jù)下面的主程序,完成類的一種構(gòu)造函數(shù)的最簡單形式。#include<iostream.h>classbase{private:intnum;public:______;};voidmain(){basetry(6);}標(biāo)準(zhǔn)答案:[10]base(intn){}知識(shí)點(diǎn)解析:注意,根據(jù)main函數(shù)中對(duì)類base的使用情況可知,base類必須提供整型單參構(gòu)造函數(shù),同時(shí)要求構(gòu)造其最簡單的形式,故函數(shù)體為空。46、下列程序的執(zhí)行結(jié)果為______。#include<iostream.h>intf(inti){return++i;}intg(int&i){return++i;}voidmain(){inta,b;a=b=0;a+=f(g(a));b+=f(f(b));cout<<"a="<<a<<",b="<<b<<endl;}標(biāo)準(zhǔn)答案:a=3,b=2知識(shí)點(diǎn)解析:本題考查函數(shù)間引用傳遞的知識(shí)點(diǎn)。g(a)執(zhí)行之后,返回值為1,a也變?yōu)?,這就是引用傳遞的特點(diǎn)。然后執(zhí)行f(1),返回值為2,此時(shí)a=2+1,故a此時(shí)為3。由于f(b)不具有引用傳遞的特征,因此,執(zhí)行后b=0+2,結(jié)果為2。47、下列程序的運(yùn)行結(jié)果是______。#include<iostream.h>classA{public:virtualvoiduse(){cout<<"inA\n";}};classB:publicA{public:virtualvoiduse(){cout<<"inB\n";}};classC:publicB{public:virtualvoiduse(){cout<<"inC\n";}};voidmain(){A*obj;obj=newC;obj->use();deleteobj;}標(biāo)準(zhǔn)答案:inC知識(shí)點(diǎn)解析:本題考查虛函數(shù)和多態(tài)性。原本obj指向祖先類,隨后被賦值,指向新的子孫類,則在使用use這個(gè)重載的虛函數(shù)時(shí),根據(jù)當(dāng)前指向可確定調(diào)用子孫的同名虛函數(shù)。48、完成下列類的構(gòu)造函數(shù),初始化語句為______。#include<iostream.h>classTest{private:intx,y;public:voidTest(intinitx,intinity){______}voidprintx(){cout<<x<<"-"<<y<<"="<<x-y;}};voidmain(){Testx(300,200);x.printx();}標(biāo)準(zhǔn)答案:x=initx;y=inity;知識(shí)點(diǎn)解析:本題考查的是類的私有數(shù)據(jù)如何從接口成員函數(shù)那里得到數(shù)據(jù)的。本題雖然簡單,卻體現(xiàn)了類的數(shù)據(jù)封裝思想,并指明了如何完成這種封裝。49、根據(jù)下列程序的執(zhí)行結(jié)果,可以斷定劃線部分的修飾符應(yīng)為______。執(zhí)行結(jié)果:i9afootballiscreated.afootballiscreated.i=10afootballisdestroyed.afootballiscreated.i=20afootballisdestroyed.afootballisdestroyed.源程序:#include<iostream.h>classFootball{public:Football(){cout<<"afootballiscreated."<<endl;}~Football(){tout<<"afootballisdestroyed."<<endl;}};voidfunc(inti){______Footballf1;Footballf2;cout<<"i="<<i<<endl;}voidmain(){func(10);func(20);}標(biāo)準(zhǔn)答案:static知識(shí)點(diǎn)解析:觀察一下輸出中對(duì)象的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行次數(shù)可以看出,再次進(jìn)入時(shí)某對(duì)象沒有被構(gòu)造,亦即該對(duì)象在func執(zhí)行后沒有被銷毀,再次進(jìn)入時(shí)則不需要重構(gòu),可以體現(xiàn)這種功能的標(biāo)識(shí)符只有static。50、下列程序的輸出結(jié)果為2,請(qǐng)將程序補(bǔ)充完整。#inelude<iostream.h>usingnamespacestd;classBase{public:______voidfun(){cout<<1;}};classDerived:publicBase{pbulic:voidfubn(){cout<<2;}};intmain(){Base*P=newDerived;P→fun();deleteP;return0;}標(biāo)準(zhǔn)答案:virtual知識(shí)點(diǎn)解析:本題考查虛函數(shù)的概念。在C++中,一個(gè)基類的指針可以用于指向它的派生類對(duì)象。而且通過這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針實(shí)際指向的對(duì)象類的那個(gè)重定義版本。在本題中,通過對(duì)象指針P調(diào)用的是派生類中重定的。fun函數(shù),那么基類中的fun只有是虛函數(shù)才能滿足要求。國家二級(jí)(C++)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、最簡單的交換排序方法是A、快速排序B、選擇排序C、堆排序D、冒泡排序標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:冒泡排序是一種最簡單的交換類排序方法,它是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。注意:交換排序方法有冒泡排序和快速排序,顯然選項(xiàng)B和選項(xiàng)C錯(cuò)誤,冒泡排序比較簡單,其算法也容易理解,但快速排序本身較為復(fù)雜,且采用了遞歸調(diào)用,其算法理解也稍難。注意:插入排序、選擇排序、歸并排序、基數(shù)排序等排序方法的特點(diǎn)。2、棧通常采用的兩種存儲(chǔ)結(jié)構(gòu)是A、線性存儲(chǔ)結(jié)構(gòu)和鏈表存儲(chǔ)結(jié)構(gòu)B、散列方式和索引方式C、鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D、線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存?chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對(duì)而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。注意:這3種運(yùn)算方法在各種存儲(chǔ)結(jié)構(gòu)中的應(yīng)用。3、線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是A、順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)B、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)C、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)D、任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:順序存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲(chǔ)單元中,每個(gè)數(shù)據(jù)元素地址可通過公式LOC(a(下標(biāo))i)=LOC(a(下標(biāo))1)+(i-1)L計(jì)算得到,從而實(shí)現(xiàn)了隨機(jī)存取。對(duì)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),要對(duì)某結(jié)點(diǎn)進(jìn)行存取,都得從鏈的頭指針指向的結(jié)點(diǎn)開始,這是一種順序存取的存儲(chǔ)結(jié)構(gòu)。注意:順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的定義和性質(zhì),兩種存儲(chǔ)結(jié)構(gòu)的操作方法。4、完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例的測試方法是A、黑箱測試法B、白箱測試法C、錯(cuò)誤推測法D、安裝測試法標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)功能導(dǎo)出測試用例。注意:白箱測試是根據(jù)對(duì)程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,白箱測試也稱為邏輯覆蓋測試,故選項(xiàng)B不正確;錯(cuò)誤推測法只是黑箱測試所使用的一種具體的方法,故選項(xiàng)C不正確;安裝測試是測試層次中的—種,它屬于高級(jí)測試,故選項(xiàng)D不正確。注意:常用的黑箱測試方法及其定義,白箱測試用例的準(zhǔn)則。5、在結(jié)構(gòu)化設(shè)計(jì)方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示A、模塊之間的調(diào)用關(guān)系B、程序的組成成分C、控制程序的執(zhí)行順序D、數(shù)據(jù)的流向標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC-StructureChart),也稱程序結(jié)構(gòu)圖。其中,矩形內(nèi)用于注明模塊的功能和名字;箭頭表示模塊間的調(diào)用關(guān)系,帶實(shí)心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。注意:根據(jù)結(jié)構(gòu)圖設(shè)計(jì)思想,了解結(jié)構(gòu)圖構(gòu)成的基本形式。6、下列選項(xiàng)中,不屬于模塊間耦合的是A、數(shù)據(jù)耦合B、同構(gòu)耦合C、異構(gòu)耦合D、公用耦合標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級(jí),分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C,沒有這種耦合方式。注意:評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn),以及對(duì)它們的定義和分類。7、一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為A、對(duì)應(yīng)關(guān)系B、單一關(guān)系C、一元關(guān)系D、二元關(guān)系標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點(diǎn)。8、為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是A、高級(jí)語言B、數(shù)據(jù)描述語言(DDL)C、數(shù)據(jù)操縱語言(DML)D、匯編語言標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:DBMS提供數(shù)據(jù)操縱語言(DML)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作,數(shù)據(jù)操縱語言(DML)是用戶(包括應(yīng)用程序)與數(shù)據(jù)庫系統(tǒng)的接口。數(shù)據(jù)操縱語言通常包括檢索和更新功能。注意:程序模塊中語言處理部分的分類,各子類的定義及其功能。9、相對(duì)于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和A、可重用性差B、安全性差C、非持久性D、冗余性標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對(duì)于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個(gè)缺點(diǎn),數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點(diǎn),人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點(diǎn)。10、需求分析階段的任務(wù)是確定A、軟件開發(fā)方法B、軟件開發(fā)工具C、軟件開發(fā)費(fèi)用D、軟件系統(tǒng)功能標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。注意:選項(xiàng)A軟件開發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B軟件開發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù);選項(xiàng)C軟件開發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。注意:需求分析的任務(wù)和它的6種方法。二、選擇題(本題共25題,每題1.0分,共25分。)11、面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括A、繼承性B、功能分解,逐步求精C、封裝性和信息隱藏D、多態(tài)性標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:面向?qū)ο蟪绦蛟O(shè)計(jì)的主要特征是繼承性,封裝性和信息隱藏,多態(tài)性。12、C++語言是以哪種語言為基礎(chǔ)逐漸發(fā)展演變而成的一種程序設(shè)計(jì)語言A、ASPB、CC、VBD、Java標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C++語言是對(duì)C語言進(jìn)行了擴(kuò)充,繼承了它的語法,并增加了面向?qū)ο蟮脑O(shè)計(jì)方法。13、設(shè)變量a是int型,f是double型,i是float型,則表達(dá)式10+’a’+i*f值的數(shù)據(jù)類型A、intB、floatC、doubleD、不確定標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。為保證精度的不丟失,表達(dá)式的數(shù)據(jù)類型是變量和常量中精確度最高的變量類型。14、能正確表示邏輯關(guān)系:“a≥10或a≤0”的C++語言表達(dá)式是A、a>=10ora<=0B、a>=0|a<=10C、a>=10&&a<=0D、a>=10||a<=0標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:邏輯運(yùn)算符“||”表示或的意思。15、以下程序的輸出結(jié)果是#include<iostream.h>voidmain(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}cout<<"x="<<x;}A、x=4B、x=8C、x=6D、x=12標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:該題是一個(gè)for循環(huán)嵌套語句。第一層for循環(huán)循環(huán)2次,第二層循環(huán)3次,但當(dāng)j等于0和1時(shí),將執(zhí)行continue語句,不執(zhí)行x++運(yùn)算,所以每次執(zhí)行完內(nèi)循環(huán)后,x的增量為1。最后一個(gè)x++運(yùn)算將每次累加起來就是x的值。16、若執(zhí)行下面的程序時(shí),從鍵盤上輸入5和2,則輸出結(jié)果是#include<iostream.h>voidmain(){inta,b,k;cin>>a>>b;k=a;if(a<b)k=a%b;elsek=b%a;cout<<k<<endl;}A、5B、3C、2D、0標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查簡單的if…else語句。先執(zhí)行條件if(a<B,顯然不成立,則執(zhí)行else語句。17、有以下程序#include<string.h>#include<iostream.h>voidmain(){char*p="abcde\0fghjik\0";cout<<strlen(p);}程序運(yùn)行后的輸出結(jié)果是A、12B、15C、6D、5標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C++語言規(guī)定了一個(gè)字符串結(jié)束標(biāo)志,以字符’\0’代表,在遇到’\0’時(shí),表示字符串結(jié)束,由它前面的字符組成字符串。18、若有說明語句chara[]="Itismine";char*p="Itismine";則以下不正確的敘述是A、a+1表示的是字符t的地址B、p指向另外的字符串時(shí),字符串的長度不受限制C、p變量中存放的地址值可以改變D、a中只能存放10個(gè)字符標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考查字符串?dāng)?shù)組和指針的引用方式。在C++語言中,系統(tǒng)在每個(gè)字符串或數(shù)組的最后自動(dòng)加入一個(gè)字符’\0’,作為字符的結(jié)束標(biāo)志,在本題中,chara[]=“Itismine";所表示的a字符串實(shí)際含有11個(gè)字符。19、以下程序的運(yùn)行結(jié)果是#include<iostream.h>voidsub(intx,inty,int*z){*z=y-x;}voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);cout<<a<<","<<b<<","<<c<<endl;}A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在C++語言中,調(diào)用函數(shù)不可能改變實(shí)參指針變量的值,但可以改變實(shí)參指針變量所指變量的值。了解了實(shí)參指針變量的改變情況,本題只剩下簡單的“加減法”了。20、下列程序是用來判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為#include<conio.h>#include<iostream.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;iA、7,431B、6C、980D、6,980標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題中直接使用指針變量k,但在使用時(shí)要注意對(duì)k的指針運(yùn)算,此外,一開始應(yīng)認(rèn)為*k的值為數(shù)組中的某一下標(biāo)值,即*k=0。21、執(zhí)行下列程序段,結(jié)果是#include<iostream.h>voidmain(){intx=40;chary=’C’;intn;n=(x&0xff)&&(y>’B’);cout<<n;}A、0B、1C、2D、3標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:按位與運(yùn)算符“&”是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對(duì)應(yīng)的二進(jìn)位相與。只有對(duì)應(yīng)的兩個(gè)二進(jìn)位均為1時(shí),結(jié)果位才為1,否則為0。參與運(yùn)算的數(shù)以補(bǔ)碼方式出現(xiàn)。邏輯與運(yùn)算符“&&”需要兩邊的結(jié)果都為1時(shí),其結(jié)果才為1。22、關(guān)于this指針的說明不正確的是A、不能在程序中修改this指針B、this指針可以給其他指針賦值,但不能修改this指針C、靜態(tài)成員函數(shù)中沒有this指針D、this指針可以被賦值標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C++的this指針是系統(tǒng)默認(rèn)產(chǎn)生的一個(gè)指針,它是const的,所以是不能夠被改變,不能夠被賦值的。23、下面程序的結(jié)果是#include<iostream.h>classA{public:A(){cout<<"construtA"<<endl;}virtual~A(){cout<<"destructA"<<endl;}};classB:publicA{};classC:publicA{};classD:publicB,publicC{};voidmain(){Dd;}A、constructAdestructAB、constructAconstructAdestructAdestructAC、constructAconstructAconstructAdestructAdestructAdestructAD、constructAonstructAconstructAconstructAdestructAdestructAdestructAdestructA標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:類D繼承了類C和類B,所以在構(gòu)造的時(shí)候分別構(gòu)造類B和類C。24、關(guān)于虛函數(shù)下面說的正確的是A、若在重定義虛函數(shù)時(shí)使用了virtual,則該重定義函數(shù)還是虛函數(shù)B、虛函數(shù)不能聲明為友元C、子類必須重定義父類的虛函數(shù)D、虛函數(shù)不能是static的標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:虛函數(shù)一定不能定義為靜態(tài)的。虛函數(shù)可以聲明為友元,子類也不是必須重定義父類的虛函數(shù),若在重定義虛函數(shù)時(shí)使用了virtual,則該重定義函數(shù)不一定還是虛函數(shù)。25、如果表達(dá)式++x/y中,++是作為友元函數(shù)重載的,/是作為成員函數(shù)重載的,則該表達(dá)式還可為A、(operator++(x)).operator/(y)B、(operator++(0)).operator/(y)C、operator/((operator++(x,0)),y)D、operator/((operator++(0)),y)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C++中用成員函數(shù)重載++x為:x.operator++(),用友元函數(shù)重載++x為:operator++(x),用成員函數(shù)重載x/y為:x.operator/(y),用友元函數(shù)重載x/y為:operator/(x,y)。26、要想使23.78965421的輸出為23.7887應(yīng)用的語句是A、cout<<23.78965421;B、cout<<fixed<<23.78965421;C、cout<<23.78965421-0.001;D、cout<<fixed<<23.78965421-0.001;標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:C++語言中默認(rèn)小數(shù)的輸出位一共是6位,fixed的意義是在小數(shù)點(diǎn)后保留6位。27、有以下語句,則對(duì)a數(shù)組元素的引用不正確的是(0≤i≤9)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:選項(xiàng)D第一層括號(hào)中為數(shù)組a中第i項(xiàng)元素的值,外面再加指針運(yùn)算符沒有意義。28、有以下程序#include<iostream.h>floatfun(intx,inty){return(x+y);}voidmain(){inta=2,b=5,c=8;cout<<fun((int)fun(a+c,b),a-c);}程序運(yùn)行后的輸出結(jié)果是A、編譯出錯(cuò)B、9C、21D、9標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題的運(yùn)算過程是fun((int)fun(a+c,B,a-C,fun((int)fun(10,5),2-8),fun((int)15.000000,-6),fun(15,-6)=9。29、下列程序的運(yùn)行結(jié)果是#include<iostream.h>classLocation{private:intX.Y;public:voidinit(int=0,int=0);voidvalueX(intval){X=val;}intvalueX(){returnX;}voidvalueY(intval){Y=val;}intvalueY(){returnY;}};voidLocation::init(intinitX,intinitY){X=initX;Y=initY;}voidmain(){LocationA,B;A.init();A.valueX(5);cout<<A.valueX()<<endl<<A.valueY()<<endl;B.init(6,2);B.valueY(4);cout<<B.valueX()<<endl<<B.valueY()<<endl;}A、5064B、0064C、5062D、0062標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題中有成員函數(shù)和它的重載函數(shù),要注意它們的不同,在本題中先調(diào)用了init函數(shù),初始化了X,Y,都為0,valueX(5);又將X變?yōu)?,所以輸出5和0,然后初始化init(6,2),接著又valueY(4);將X,Y設(shè)為6和4,所以輸出6和4。30、在C++語言中,封裝是借助于什么達(dá)到的?A、結(jié)構(gòu)B、類C、數(shù)組D、函數(shù)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C++基本的性質(zhì)就是它的封裝性,而封裝性主要是靠類來實(shí)現(xiàn)的。31、在位運(yùn)算中,操作數(shù)每左移一位,其結(jié)果相當(dāng)于A、操作數(shù)乘以2B、操作數(shù)除以2C、操作數(shù)除以4D、操作數(shù)乘以4標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:左移運(yùn)算符“<<”是雙目運(yùn)算符。其功能把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。左移1位,相當(dāng)于該數(shù)乘以2。32、有如下程序#include<iostream.h>#defineN2#defineMN+1#defineNUM2*M+1voidmain(){inti;for(i=1,i<=NUM;i++)cout<<i;}該程序中的for循環(huán)執(zhí)行的次數(shù)是A、5B、6C、7D、8標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:這是一種簡單的情況:不帶參數(shù)的宏。關(guān)鍵要注意在對(duì)2*M+1進(jìn)行宏替換時(shí),要將宏名M原樣替換,得到NUM的形式為2*N+1+1(千萬不要隨意把給N+1加上小括號(hào),使NUM變?yōu)?*(N+1)+1,這就是宏名和變量名之間的區(qū)別)。33、下列程序的輸出結(jié)果是#include<iostream.h>intb=2;intfunc(int*a){b+=*a;return(b);}voidmain(){inta=2,res=2;res+=func(&a);cout<<res;}A、4B、6C、8D、10標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在函數(shù)體語句中的b+=*a;的*是指針運(yùn)算符(也稱間接訪問運(yùn)算符),*a就是main函數(shù)中a的值。34、所有在函數(shù)中定義的變量,連同形式參數(shù),都屬于A、全局變量B、局部變量C、靜態(tài)變量D、寄存器變量標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C++語言函數(shù)中定義的變量都是屬于這個(gè)函數(shù)的局部變量。35、有如下程序:#include<iostream.h>longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}voidmain(){cout<<fib(3);}該程序的輸出結(jié)果是A、2B、4C、6D、8標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:fib(3)=fib(2)+fib(1),而fib(2)的返回值為2,fib(1)的返回值也為2,故輸出的fib(3)的值為4。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。標(biāo)準(zhǔn)答案:存儲(chǔ)結(jié)構(gòu)知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)元素的信息,還需要存放各數(shù)據(jù)元素之間的前后件關(guān)系的信息。37、在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為【】。標(biāo)準(zhǔn)答案:繼承知識(shí)點(diǎn)解析:類是面向?qū)ο笳Z言中必備的程序語言結(jié)構(gòu),用來實(shí)現(xiàn)抽象數(shù)據(jù)類型。類與類之間的繼承關(guān)系實(shí)現(xiàn)了類之間的共享屬性和操作,一個(gè)類可以在另一個(gè)已定義的類的基礎(chǔ)上定義,這樣使該類型繼承了其超類的屬性和方法,當(dāng)然,也可以定義自己的屬性和方法。38、耦合和內(nèi)聚是評(píng)價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中【】反映了模塊內(nèi)各成分之間的聯(lián)系。標(biāo)準(zhǔn)答案:內(nèi)聚知識(shí)點(diǎn)解析:內(nèi)聚性是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量,內(nèi)聚是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量。39、一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于【】的聯(lián)系。標(biāo)準(zhǔn)答案:一對(duì)多(或1:N)知識(shí)點(diǎn)解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即—對(duì)一(1:1)的聯(lián)系、—對(duì)多(1:N)或多對(duì)一(N:1)的聯(lián)系和多對(duì)多(M:N)的聯(lián)系。40、數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、【】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。標(biāo)準(zhǔn)答案:數(shù)據(jù)庫概念設(shè)計(jì)階段知識(shí)點(diǎn)解析:數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段及數(shù)據(jù)庫運(yùn)行和維護(hù)階段。四、填空題(本題共8題,每題1.0分,共8分。)41、假設(shè)inta=1,b=2;,則表達(dá)式(++a/B)*b--的值為【】。標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:運(yùn)算符++的優(yōu)先級(jí)高于雙目運(yùn)算符/,所以括號(hào)中的運(yùn)算為2/2,最后的結(jié)果為2/2*2。42、C++語言提供的基本控制結(jié)構(gòu)可以分為3種類型:順序結(jié)構(gòu)、【】和循環(huán)結(jié)構(gòu)。標(biāo)準(zhǔn)答案:選擇結(jié)構(gòu)知識(shí)點(diǎn)解析:順序結(jié)構(gòu)(也叫連續(xù)結(jié)構(gòu))和循環(huán)結(jié)構(gòu)是經(jīng)常被使用的,不過選擇結(jié)構(gòu)(if和switch)也是一種重要的流程控制結(jié)構(gòu)。43、C++語句constchar*constp="hello";,所定義的指針p和它所指的內(nèi)容都不能被【】。標(biāo)準(zhǔn)答案:改變知識(shí)點(diǎn)解析:本題考查的是定義常量的關(guān)鍵字const,由const定義的變量的值不可以再改變,所以定義時(shí)必須進(jìn)行初始化。44、C++語言的參數(shù)傳遞機(jī)制包括傳值和傳地址兩種,如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取【】方式。標(biāo)準(zhǔn)答案:傳地址知識(shí)點(diǎn)解析:本題考查的是傳值調(diào)用和傳址調(diào)用的區(qū)別一傳值調(diào)用只是進(jìn)行值的簡單復(fù)制,返回之后不會(huì)改變?cè)瓉淼闹?;而傳址調(diào)用是把參數(shù)的地址傳人,會(huì)改變?cè)瓉淼闹怠?5、對(duì)于下面定義的類MyClass,請(qǐng)?jiān)诤瘮?shù)f()中添加對(duì)象成員把n的值修改為50。classMyClass{public:MyClass(intx){n=x;}voidSetNum(intnl){n=nl;}private:intn;};intf(){MyClass*ptr=newMyClass(45);【】}標(biāo)準(zhǔn)答案:ptr->SetNum(50);知識(shí)點(diǎn)解析:本題考查的是考生使用對(duì)象指針調(diào)用成員函數(shù)的能力,指針調(diào)用成員函數(shù)應(yīng)該使用符號(hào)“->”。46、繼承的方式有公有繼承、私有繼承和【】3種。標(biāo)準(zhǔn)答案:保護(hù)繼承知識(shí)點(diǎn)解析:繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)中最重要的機(jī)制,用戶可以根據(jù)不同的需要選擇3種不同的繼承方式。47、表達(dá)式operator+(x,y)還可以表示為【】。標(biāo)準(zhǔn)答案:x+y知識(shí)點(diǎn)解析:本題考查的是運(yùn)算符函數(shù)的調(diào)用,可以像一般函數(shù)那樣用函數(shù)名進(jìn)行調(diào)用,也可通過運(yùn)算符構(gòu)成表達(dá)式的形式進(jìn)行調(diào)用。48、類模板的使用實(shí)際上是將類模板實(shí)例化成一個(gè)具體的【】。標(biāo)準(zhǔn)答案:類知識(shí)點(diǎn)解析:本題考查的是類模板的使用方式,就是把類模板的一般化定義實(shí)例化為一個(gè)真正的類。五、填空題(含2小題)(本題共2題,每題1.0分,共2分。)49、下列程序在構(gòu)造函數(shù)和析構(gòu)函數(shù)中申請(qǐng)和釋放類的數(shù)據(jù)成員int*a,申請(qǐng)時(shí)使用形參b初始化a,請(qǐng)?zhí)羁?。classA{public:A(intb);~A();private:int*a;};A::A(intb){【】;}A::~A(){【】;}標(biāo)準(zhǔn)答案:a=newint(B)deletea知識(shí)點(diǎn)解析:C++中new和delete的使用有如下幾種:①a=newint;deletea;②a=newint(10);deletea;③a=newint[10];delete[]a;。50、C++語言中的多態(tài)性是在編譯時(shí)通過【】和模板體現(xiàn)的,在運(yùn)行時(shí)是通過【】體現(xiàn)的。標(biāo)準(zhǔn)答案:函數(shù)重載虛函數(shù)知識(shí)點(diǎn)解析:C++中的多態(tài)性是在編譯時(shí)通過函數(shù)重載和模板體現(xiàn)的,在運(yùn)行時(shí)是通過虛函數(shù)體現(xiàn)的。國家二級(jí)(C++)筆試模擬試卷第3套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、在深度為5的滿二叉樹中,葉子節(jié)點(diǎn)的個(gè)數(shù)為A、32B、31C、16D、15標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有節(jié)點(diǎn)都有兩個(gè)葉子節(jié)點(diǎn)。這就是說,在滿二叉樹中,層上的節(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個(gè)節(jié)點(diǎn),且深度為m的滿二叉樹有2m-1個(gè)節(jié)點(diǎn)。2、若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的節(jié)點(diǎn)訪問順序是A、bdgcefhaB、gdbecfhaC、bdgaechfD、gdbehfca標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:前序遍歷的第一個(gè)節(jié)點(diǎn)a為樹的根節(jié)點(diǎn);中序遍歷中a的左邊的節(jié)點(diǎn)為a的左子樹,a右邊的節(jié)點(diǎn)為a的右子樹;再分別對(duì)a的左右子樹進(jìn)行上述兩步處理,直到每個(gè)節(jié)點(diǎn)都找到正確的位置。3、一些重要的程序語言(如C語言和Pascal語言)允許過程的遞歸調(diào)用。而實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配通常用A、棧B、堆C、數(shù)組D、鏈表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一些較流行的程序語言允許過程的遞歸調(diào)用。遞歸調(diào)用就是過程調(diào)用本身。遞歸實(shí)現(xiàn)的是:當(dāng)過程每一次執(zhí)行后,都能返回到最近一次調(diào)用它的過程中。這樣各調(diào)用點(diǎn)之間形成一種后進(jìn)先出的關(guān)系,而棧結(jié)構(gòu)正適合來存儲(chǔ)這些調(diào)用點(diǎn)。4、軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和A、消除軟件危機(jī)B、軟件工程管理C、程序設(shè)計(jì)自動(dòng)化D、實(shí)現(xiàn)軟件可重用標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件工程的目標(biāo)是,在給定的成本、進(jìn)度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品?;谶@一目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。5、開發(fā)軟件時(shí)對(duì)提高開發(fā)人員工作效率至關(guān)重要的是A、操作系統(tǒng)的資源管理功能B、先進(jìn)的軟件開發(fā)工具和環(huán)境C、程序人員的數(shù)量D、計(jì)算機(jī)的并行處理能力標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件工程鼓勵(lì)研制和采用各種先進(jìn)的軟件開發(fā)方法、工具和環(huán)境。工具和環(huán)境的使用又進(jìn)一步提高了軟件的開發(fā)效率、維護(hù)效率和軟件質(zhì)量。6、在軟件測試設(shè)計(jì)中,軟件測試的主要目的是A、實(shí)驗(yàn)性運(yùn)行軟件B、證明軟件正確C、找出軟件中的全部錯(cuò)誤D、發(fā)現(xiàn)軟件錯(cuò)誤而執(zhí)行程序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:使用人工或自動(dòng)手段來運(yùn)行或測定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。7、數(shù)據(jù)處理的最小單位是A、數(shù)據(jù)B、數(shù)據(jù)元素C、數(shù)據(jù)項(xiàng)D、數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C)。8、索引屬于A、模式B、內(nèi)模式C、外模式D、概念模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)模式(InternalSchema)又稱物理模式(PhysicalSchema),它給出了數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。9、下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是A、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余B、數(shù)據(jù)庫系統(tǒng)避免了一切冗余C、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致D、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。10、數(shù)據(jù)庫系統(tǒng)的核心是A、數(shù)據(jù)庫B、數(shù)據(jù)庫管理系統(tǒng)C、模擬模型D、軟件工程標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,簡稱DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。二、選擇題(本題共25題,每題1.0分,共25分。)11、下面關(guān)于C++語言的描述錯(cuò)誤的是A、C++語言支持?jǐn)?shù)據(jù)封裝B、C++語言中引入友元,沒有破壞封裝性C、C++語言允許函數(shù)名和運(yùn)算符重載D、C++語言支持動(dòng)態(tài)聯(lián)編標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)封裝就是數(shù)據(jù)抽象;友元可以訪問類中的所有成員,是面向?qū)ο蟮囊粋€(gè)重要特征,但是破壞了封裝性;重載和動(dòng)態(tài)聯(lián)編都是面向?qū)ο蟮牧硪粋€(gè)特點(diǎn)——多態(tài)性。12、設(shè)有定義inta=1;floatf=1.2;charc=’a’;,則下列表示錯(cuò)誤的是A、++a;B、f--;C、c++;D、8++;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:++、--運(yùn)算符不能用于常量表達(dá)式。13、下列程序的運(yùn)行結(jié)果為#include<iostream.h>voidmain(){inta=2;intb=a+1;cout<<a/b<<endl;}A、0.66667B、0C、0.7D、0.66666666…標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:表達(dá)式值的類型是由操作數(shù)的類型決定的,因?yàn)楸绢}的兩個(gè)數(shù)都是int型的,所以得出的結(jié)果也為int型,即去掉小數(shù)點(diǎn)后的部分,只取商的整數(shù)部分。14、設(shè)inta=1,b=2;,則(a++)+b和a+++b這兩個(gè)表達(dá)式的值分別為A、3,3B、3,4C、4,3D、4,4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:單目的什運(yùn)算優(yōu)先級(jí)高于雙目的+運(yùn)算,不過抖的結(jié)合性是自右向左的,而+是自左向右的,所以上面的兩個(gè)表達(dá)式都是先計(jì)算a+b的值之后,a再自加1。15、下面程序的運(yùn)行結(jié)果為#include<iostream.h>voidmain(){chara=’3’;switch(a){case’3’:cout<<"3";case’2’:cout<<"2";break;default:cout<<"1";}}A、3B、321C、31D、32標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查的是switch語句的使用,在第一個(gè)case處,因?yàn)闈M足條件所以輸出字符3,但這個(gè)分支沒有break語句終止,所以會(huì)繼續(xù)執(zhí)行下面的分支語句,即輸出字符2,這時(shí)出現(xiàn)break語句,結(jié)束整個(gè)語句,即輸出32。16、有如下數(shù)組聲明:intnum[10];,下標(biāo)值引用錯(cuò)誤的是A、num[10]B、num[5]C、num[3]D、num[0]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)組定義中的數(shù)字指的是數(shù)組的大小,而下標(biāo)是從0開始的,所以題中數(shù)組的最后一個(gè)元素是num[9]。17、存在定義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=*[1];標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是數(shù)組和指向數(shù)組的指針之間的關(guān)系,選項(xiàng)A)中x是被數(shù)組a的第一個(gè)元素賦值,其余的都是被數(shù)組a的第二個(gè)元素賦值。18、下面程序的運(yùn)行結(jié)果為#include<iostream.h>voidswap(int&a,intb){inttemp;temp=a++;a=b;b=temp;}voidmain()inta=2,b=3;swap(a,b);cout<<a<<","<<b<<endl;}A、2,3B、3,2C、2,2D、3,3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查的是引用調(diào)用,因?yàn)楹瘮?shù)swap引用調(diào)用參數(shù)a,所以在swap函數(shù)中a的變化會(huì)改變主函數(shù)中a的值,即a自加1,但b的值并未改變。19、一個(gè)函數(shù)功能不太復(fù)雜但要求被頻繁調(diào)用,應(yīng)選用A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、嵌套函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是內(nèi)聯(lián)函數(shù)的使用,它的引入是為了解決程序中函數(shù)調(diào)用的效率問題,在編譯時(shí),編譯器將程序中出現(xiàn)的內(nèi)聯(lián)函數(shù)的調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)的函數(shù)體來替換。20、下面關(guān)于C++語言變量的敘述錯(cuò)誤的是A、C++語言中變量分為auto、static、extern和register4種存儲(chǔ)類型B、自動(dòng)變量和外部變量的作用域?yàn)檎麄€(gè)程序C、內(nèi)部靜態(tài)變量的作用域是定義它的函數(shù)D、外部靜態(tài)變量的作用域是定義它的文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:自動(dòng)變量是函數(shù)體或分程序內(nèi)定義的變量,它的作用域在所定義的函數(shù)體內(nèi)或分程序體內(nèi)。21、為了使類中的某個(gè)成員不能被類的對(duì)象通過成員操作符訪問,則不能把該成員的訪問權(quán)限定義為A、publicB、protectedC、privateD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查點(diǎn)為類成員的訪問權(quán)限,public關(guān)鍵字修飾的類成員可以被類的對(duì)象通過成員操作符“.”直接訪問,protected和private則不能,而static不能單獨(dú)修飾類的成員。22、在C++語言程序中,對(duì)象之間的相互通信通過A、繼承實(shí)現(xiàn)B、調(diào)用成員函數(shù)實(shí)現(xiàn)C、封裝實(shí)現(xiàn)D、函數(shù)重載實(shí)現(xiàn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)象屬于某個(gè)已知的類,是類的實(shí)例,對(duì)象之間通信實(shí)際上就是通過函數(shù)傳遞信息,封裝是把數(shù)據(jù)和操作結(jié)合在一起,繼承是對(duì)于類的方法的改變和補(bǔ)充,重載是多態(tài)性之一。23、類的析構(gòu)函數(shù)是在什么時(shí)候調(diào)用的?A、類創(chuàng)建時(shí)B、創(chuàng)建對(duì)象時(shí)C、刪除對(duì)象時(shí)D、不自動(dòng)調(diào)用標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:析構(gòu)函數(shù)可以被函數(shù)調(diào)用,也可以系統(tǒng)調(diào)用:函數(shù)體內(nèi)的對(duì)象在函數(shù)結(jié)束時(shí)調(diào)用析構(gòu)函數(shù)和使用delete釋放對(duì)象所占有用的資源。24、通??截悩?gòu)造函數(shù)的參數(shù)是A、某個(gè)對(duì)象名B、某個(gè)對(duì)象的成員名C、某個(gè)對(duì)象的引用名D、某個(gè)對(duì)象的指針名標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:復(fù)制初始化構(gòu)造函數(shù)的作用是用一個(gè)已知的對(duì)象來初始化一個(gè)被創(chuàng)建的同類的對(duì)象,該函數(shù)只有一個(gè)參數(shù),并且是對(duì)同類的某個(gè)對(duì)象的引用。25、下面程序的運(yùn)行結(jié)果為#include<iostream.h>ClassAstaticintn;public:A(){n=1;}A(intnum){n=num;}voidprint(){cout<<n;}};intA::n=2;voidmain(){Aa,b(3);a.print();b.print();cout<<endl;}A、11B、13C、23D、33標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查的是靜態(tài)數(shù)據(jù)成員的使用,n為類A的靜態(tài)成員,即為類A的所有對(duì)象共有的成員,所以,當(dāng)對(duì)象b把n初始化為3時(shí),對(duì)象a的成員n的值也為3(這兩個(gè)n實(shí)際上是同一個(gè))。26、下列不是描述類的成員函數(shù)的是A、構(gòu)造函數(shù)B、析構(gòu)函數(shù)C、友元函數(shù)D、復(fù)制構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:友元函數(shù)是獨(dú)立于當(dāng)前類的外部函數(shù),但它可以訪問該類的所有對(duì)象的成員;拷貝構(gòu)造函數(shù)是使用已存在的對(duì)象初始化正在生成的對(duì)象時(shí)調(diào)用的成員函數(shù)。27、繼承機(jī)制的作用是A、信息隱藏B、數(shù)據(jù)封裝C、定義新類D、數(shù)據(jù)抽象標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)封裝就是數(shù)據(jù)抽象,即信息隱藏;而繼承是實(shí)現(xiàn)程序復(fù)用的基礎(chǔ)。28、C++語言類體系中,不能被
溫馨提示
- 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年浙教新版必修3生物下冊(cè)月考試卷含答案
- 2025年統(tǒng)編版八年級(jí)歷史下冊(cè)月考試卷
- 2025年度乳制品安全檢測與質(zhì)量控制服務(wù)合同3篇
- 二零二五年度安徽電信合同履行全程監(jiān)控合同
- 2025年度高科技產(chǎn)業(yè)園區(qū)土地租賃及配套設(shè)施建設(shè)合同3篇
- 2025年度留學(xué)獎(jiǎng)學(xué)金申請(qǐng)代理服務(wù)合同4篇
- 二零二五版分手后情侶分手后共同債務(wù)清償及財(cái)產(chǎn)分割合同4篇
- 二零二五版高端醫(yī)療器械采購訂單及合同執(zhí)行監(jiān)管服務(wù)合同
- 二零二五年度辦公樓樓梯口裝飾裝修工程合同樣本4篇
- 2025年度東北大豆出口貿(mào)易公司與國外采購商購銷合同4篇
- 收納盒注塑模具設(shè)計(jì)(論文-任務(wù)書-開題報(bào)告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號(hào)處理與特征提取
- 高中數(shù)學(xué)知識(shí)點(diǎn)全總結(jié)(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測定
- 2023新譯林版新教材高中英語必修一重點(diǎn)詞組歸納總結(jié)
- 蘇教版四年級(jí)數(shù)學(xué)下冊(cè)第3單元第2課時(shí)“常見的數(shù)量關(guān)系”教案
- 基于協(xié)同過濾算法的電影推薦系統(tǒng)設(shè)計(jì)
- 消防應(yīng)急預(yù)案流程圖
- 人教統(tǒng)編版高中語文必修下冊(cè)第六單元(單元總結(jié))
評(píng)論
0/150
提交評(píng)論