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

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷3(共9套)(共332題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共37題,每題1.0分,共37分。)1、數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的運(yùn)算和()。A、數(shù)據(jù)的方法B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C、數(shù)據(jù)的對(duì)象D、數(shù)據(jù)的邏輯存儲(chǔ)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素及其之間的相互關(guān)系和數(shù)據(jù)運(yùn)算的一門學(xué)科,它包含3個(gè)方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算。2、一棵二叉樹(shù)的前序遍歷結(jié)果是ABCEDF,中序遍歷結(jié)果是CBAEDF,則其后序遍歷的結(jié)果是()。A、DBACEFB、CBEFDAC、FDAEBCD、DFABEC標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于該二叉樹(shù)的前序遍歷結(jié)果是ABCEDF,顯然A結(jié)點(diǎn)為根結(jié)點(diǎn),所以后序遍歷時(shí)A結(jié)點(diǎn)是最后遍歷的,其后序遍歷的結(jié)果為CBEFDA。3、在數(shù)據(jù)處理中,其處理的最小單位是()。A、數(shù)據(jù)B、數(shù)據(jù)項(xiàng)C、數(shù)據(jù)結(jié)構(gòu)D、數(shù)據(jù)元素標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)元素是由多個(gè)數(shù)據(jù)項(xiàng)組成,數(shù)據(jù)是能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體,數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng)。4、在數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部結(jié)構(gòu)體系中,索引屬于()。A、模式B、內(nèi)模式C、外模式D、概念模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入到設(shè)備級(jí)上(如磁盤及磁盤操作)。5、以下()不屬于對(duì)象的基本特征。A、繼承性B、封裝性C、分類性D、多態(tài)性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象具有如下特征:.標(biāo)識(shí)惟一性。指對(duì)象是可區(qū)分的。.分類性。指可以將具有相同屬性和操作的對(duì)象抽象成類。.多態(tài)性。指同一個(gè)操作可以是不同對(duì)象的行為。.封裝性。從外面看只能看到對(duì)象的外部特征,而不知道也無(wú)需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。.模塊獨(dú)立性好。對(duì)象是面向?qū)ο蟮能浖幕灸K,對(duì)象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。6、數(shù)據(jù)庫(kù)系統(tǒng)的核心是()。A、數(shù)據(jù)模型B、軟件開(kāi)發(fā)C、數(shù)據(jù)庫(kù)設(shè)計(jì)D、數(shù)據(jù)庫(kù)管理系統(tǒng)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫(kù)的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實(shí)施對(duì)數(shù)據(jù)庫(kù)的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫(kù)命令以及應(yīng)用程序的執(zhí)行,最終都必須通過(guò)DBMS。另外,DBMS還承擔(dān)著數(shù)據(jù)庫(kù)的安全保護(hù)工作,按照。DBA所規(guī)定的要求,保證數(shù)據(jù)庫(kù)的完整性和安全性。7、關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A、實(shí)體完整性約束B(niǎo)、參照完整性約束C、屬性完整性約束D、用戶自定義的完整性約束標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)系模型允許3類數(shù)據(jù)約束,它們是:.實(shí)體完整性約束該約束要求關(guān)系的主鍵中屬性值不能為空值,這是數(shù)據(jù)庫(kù)完整性的最基本要求。.參照完整性約束該約束是關(guān)系之間相關(guān)聯(lián)的基本約束,它不允許關(guān)系引用不存在的元組:即在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中實(shí)際存在的元組,要么就為空值。.用戶定義的完整性約束用戶定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。8、關(guān)系表中的每一行記錄稱為一個(gè)()。A、字段B、元組C、屬性D、關(guān)鍵碼標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在關(guān)系表中,每一列稱為一個(gè)屬性,對(duì)應(yīng)表中的一個(gè)字段:每一行稱為一個(gè)元組,對(duì)應(yīng)表中的一條記錄。9、在數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展中,數(shù)據(jù)獨(dú)立性最高的是()。A、人工管理B、文件系統(tǒng)C、數(shù)據(jù)庫(kù)系統(tǒng)D、數(shù)據(jù)模型標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在人工管理階段,數(shù)據(jù)無(wú)法共享,冗余度大,不獨(dú)立,完全依賴程序;在文件系統(tǒng)階段,數(shù)據(jù)共享性差;在數(shù)據(jù)庫(kù)系統(tǒng)階段,共享性好,獨(dú)立性高。10、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=-256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:符號(hào)常量聲明語(yǔ)句的語(yǔ)法格式是:const類型名符號(hào)常量:初值表達(dá)式,選項(xiàng)B)中未給常變量賦初值,故錯(cuò)誤;而選項(xiàng)C)中定義的是一個(gè)指向浮點(diǎn)型常量的指針,而不是定義一個(gè)浮點(diǎn)型常量,所以可以不賦初值。11、下列變量名中,合法的()。A、CHINAB、byte-sizeC、doubleD、A+a標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:變量的定義要符合標(biāo)識(shí)符的定義規(guī)則。選項(xiàng)B)byte-size中含有不合法的字符“-”;選項(xiàng)C)中的變量名是C++中的保留字;選項(xiàng)D)變量名中同樣含有非法的字符“+”;只有選項(xiàng)A)符合要求。12、在進(jìn)行任何C++流的操作后,都可以用C++流的有關(guān)成員函數(shù)檢測(cè)流的狀態(tài);其中只能用于檢測(cè)輸入流狀態(tài)的操作函數(shù)名稱是()。A、failB、eofC、badD、good標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:可以用文件流對(duì)象的成員函數(shù)來(lái)判別文件流當(dāng)前的狀態(tài):fail,剛進(jìn)行的操作失敗時(shí)返回true,否則返回false;eof,進(jìn)行輸入操作時(shí),若文件到達(dá)文件尾返回true,否則返回false;bad,如果進(jìn)行了非法操作返回true,否則返回false;good,剛進(jìn)行的操作成功時(shí)返回true,否則返回false。13、對(duì)于語(yǔ)句cout<<endl<<x;中的各個(gè)組成部分,下列敘述中錯(cuò)誤的是()。A、“cout”是一個(gè)輸出流對(duì)象B、“endl”的作用是輸出回車換行C、“x”是一個(gè)變量D、“<<”稱作提取運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:語(yǔ)句cout<<endl<<x:作用是輸出回車和變量x的值。所以題目中選項(xiàng)A)、B)、C)的敘述均正確,只有選項(xiàng)D)敘述錯(cuò)誤,“<<”是插入運(yùn)算符。14、以下程序的輸出結(jié)果是()。#include<iostream.h>main(){intm=5:if(m++>5)cout<<m;elsecout<<m--;}A、7B、6C、5D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題中,因?yàn)閙++>5成立(此時(shí)m的值變?yōu)?),所以執(zhí)行語(yǔ)句cout<<m;輸出結(jié)果為6。15、閱讀下面的程序:#include<iostream.h>voidmain(){intx;cin>>x;if(x++>5)cout<<x<<endl;elsecout<<x--<<endl;}如果兩次執(zhí)行上述程序,且鍵盤輸入分別為4和6,則輸出結(jié)果分別是()。A、4,6B、3,6C、4,7D、5,7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題首先讀入數(shù)值4賦給變量x,因?yàn)閤++>5不成立,因?yàn)椤?+”后綴,之后x的值變?yōu)?,執(zhí)行語(yǔ)句cout<<x--<<endl;輸出:5,之后x的值變?yōu)?。當(dāng)讀入的數(shù)值是6時(shí),因?yàn)閤++>5成立,所以執(zhí)行語(yǔ)句cout<<x<<endl;輸出7。16、關(guān)于this指針的說(shuō)法不正確的是()。A、不能在程序中修改this指針B、this指針可以給其他指針賦值,但不能修改this指針C、靜態(tài)成員函數(shù)中沒(méi)有this指針D、this指針可以被賦值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:this指針不能在程序中修改,不能被幅值;靜態(tài)成員沒(méi)有this指針,因?yàn)轭愔兄挥幸粋€(gè)靜態(tài)成員函數(shù)實(shí)例,使用this指針無(wú)意義。17、()使一個(gè)函數(shù)可以定義成對(duì)許多不同數(shù)據(jù)類型完成同一個(gè)任務(wù)。A、函數(shù)模板B、重載函數(shù)C、遞歸函數(shù)D、模板函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼形式相同,只是所針對(duì)的數(shù)據(jù)類型不同。因此,函數(shù)模板使一個(gè)函數(shù)可以定義成對(duì)許多不同數(shù)據(jù)類型完成同一個(gè)任務(wù)。18、有如下程序:#include<iostream>usingnamespacestd;inti=1;classFun{public:staticinti;intvalue(){returni-1;}intvalue()const{returni+1;}};intFun::i=2;intmain(){inti=3;Funfun1;constFunfun2;______________return0;}若程序的輸出結(jié)果是:123則程序中橫線處的語(yǔ)句是()。A、cout<<fun1.value()<<Fun::i<<fun2.value();B、cout<<Fun::i<<fun1.value()<<fun2.value();C、cout<<fun1.value0<<fun2.value()<<Fun::i;D、cout<<fun2.Value()<<Fun::i<<fun1.value();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題因?yàn)槎x的變量i是static類型的(main()函數(shù)內(nèi)部的i只是一個(gè)局部變量),所以,選項(xiàng)A)中fun1.value()的返回值是1,.Fun::i引用的是外部變量會(huì)輸出2;fun2.value();會(huì)調(diào)用常成員函數(shù)intvalue()const{retuni+1;}使得外部靜態(tài)變量i的值增加為3,故輸出3。19、下列對(duì)重載函數(shù)的描述中,()是錯(cuò)誤的。A、重載函數(shù)中不允許使用默認(rèn)參數(shù)B、重載函數(shù)中編譯是根據(jù)參數(shù)表進(jìn)行選擇C、不要使用重載函數(shù)來(lái)描述毫不相干的函數(shù)D、構(gòu)造函數(shù)重載將會(huì)給初始化帶來(lái)多種方式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A)中,重載函數(shù)中是允許使用默認(rèn)參數(shù)的;為了使重載函數(shù)有意義,不要使用重載函數(shù)來(lái)描述毫無(wú)相干的函數(shù);重載函數(shù)巾編譯是根據(jù)參數(shù)表進(jìn)行選擇,包括參數(shù)的個(gè)數(shù)和類型。20、下列關(guān)于對(duì)象概念的描述中,正確的是()。A、對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)變量B、對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體C、對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體D、對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的。對(duì)象=方法(函數(shù))+屬性(數(shù)據(jù)),而C語(yǔ)言的結(jié)構(gòu)體其實(shí)就是不同類型數(shù)據(jù)的組合。并沒(méi)有處理數(shù)據(jù)的方法。21、在下列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ù)。22、下列給字符數(shù)組進(jìn)行初始化中,正確的是()。A、chars1[]="12345abcd";B、chars2131="xyz";C、chars3[][3]={’a’,’x’,’y’};D、chars412131={"xyz","mnp"};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中定義二維數(shù)組時(shí)并賦值,則數(shù)組的行數(shù)可以省略不寫。選項(xiàng)A)、B)、D)均是字符字符串初始化。。23、對(duì)于int*pa[5];的描述,正確的是()。A、pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素B、pa是一個(gè)指向某個(gè)數(shù)組中第5個(gè)元素的指針,該元素是int型變量C、pa[5]表示某個(gè)數(shù)組的第5個(gè)元素的值D、pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語(yǔ)句“int*p[5]”表示一個(gè)數(shù)組p,它的大小是5,里面存放的數(shù)據(jù)類型是int*,也就是整型指針。稱之為指針數(shù)組(從右向左解析這個(gè)表示)。24、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}};classB{public:B(){cout<<"B";}};classC:publicA{Bb:public:C(){cout<<"C";}};intmain(){Cobj;return0:}執(zhí)行后的輸出結(jié)果是()。A、CBAB、BACC、ACBD、ABC標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題中,語(yǔ)句Cobj對(duì)象初始化首先調(diào)用基類的構(gòu)造函數(shù)A(),輸出“A”,其次是C類中對(duì)象的構(gòu)造函數(shù)的調(diào)用,即調(diào)用B(),輸出“B”;最后是調(diào)用自身的構(gòu)造函數(shù)C(),輸出“C”。25、下面程序的輸出結(jié)果是()。#include<iostream.h>#include"string.h"voidmain(){chara[]="HelloTest",b[]="Test";strcpy(a,b);cout<<a<<endl;}A、HelloB、TestC、HelloTestD、HelloTestHelloTest標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中首先定義字符數(shù)組a和b,其值分別為“HelloTest”和“Test”。然后利用strcpy復(fù)制函數(shù),將b的值復(fù)制給a,所以輸出a的結(jié)果為Test。26、有如下程序:#include<iostream.h>voidmain(){charstr[2][5]={"1234","5678"),*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=str[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’\0’,j+=2)s=10*s+p[i][j]-’0’;cout<<s;}該程序的輸出結(jié)果是()。A、1357B、2468C、3556D、23678標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中的“for(i=0;i<2;i++)p[i]=str[i];”語(yǔ)句將str中的值賦值給指針數(shù)組p。在接下來(lái)的二重for循環(huán)中,跳取“i+=2”,p指針指向的值即“1”,“3”,“5”,“7”。在分別對(duì)字符到整型的轉(zhuǎn)換,即減去字符’0’,然后依次轉(zhuǎn)換為千位,百位,.十位,個(gè)位“10*s”操作輸出整型s,即“1357”。27、以下程序的輸出結(jié)果是()。#include<iostream>usingnamespacestd;voidfun(char**q){++q;cout<<*q<<endl;)main(){stoicchar*s[]={"HI","HELLO","TEST"};char**p;p=s;fun(p);system("PAUSE");return0:}A、為空B、HIC、HELLOD、TEST標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由程序main主函數(shù)入手,調(diào)用fun函數(shù),在fun函數(shù)中執(zhí)行“cout<<*q<<endl;”語(yǔ)句實(shí)現(xiàn)程序輸出。主函數(shù)中變量char*s[]為指針數(shù)組,char**p表示p指向的字符指針數(shù)據(jù)。*p就代表p指向的字符指針。語(yǔ)句“p=s;”表明p指向字符指針s,而**p則是s[]中的第一個(gè)字符串“HI”。主函數(shù)將變量p傳值給函數(shù)fun(char**q)中的q,在函數(shù)體內(nèi)部首先執(zhí)行“++q”語(yǔ)句,就是將q的指針指向s中的下一個(gè)字符串,即“HELLO”,所以輸出語(yǔ)句“cout<<*q<<endl:”輸出該字符串值。28、下列程序用來(lái)判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為()。#include<conio.h>#include<iostream.h>intfun(int*p,intn,int*j){inti;*j=0;for(i=0;i<n;i++)if(p[*]<p[i])*j=i;returnp[*j];}voidmain(){inta[10]={1,3,9,0,8,7,6,5,4,2};intj;fun(a,10,&j);cout<<j<<’,’<<a[j];}A、2,9B、3C、9D、3,9標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由程序中的主函數(shù)main入手,調(diào)用fun函數(shù)。其中第一個(gè)實(shí)參為數(shù)組a的名字,數(shù)組名作為實(shí)參,傳遞的是數(shù)組的起始地址。所以在fun函數(shù)中指針p指向了數(shù)組的第一個(gè)元素a[0]。另外實(shí)參整型i傳遞的是引用,也就是i的地址。在fun函數(shù)中在for循環(huán)中,依次將當(dāng)前元素p[i]與j指針值為標(biāo)識(shí)的p[*j]進(jìn)行比較,取較大的。最后循環(huán)后的結(jié)果就是p[*j]存放數(shù)組中的最大值,并且指針i為該值的標(biāo)識(shí)位。可以看出數(shù)組的最大值是9標(biāo)識(shí)位為2。29、以下程序的正確運(yùn)行結(jié)果是()。#include<iostream.h>intfun(int);voidmain(){inta=2,i;for(i=0;i<3;i++)cout<<fun(a)<<endl;cout<<endl;}intfun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}A、4,5,6B、6,7,9C、7,8,9D、7,7,7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)中在for循環(huán)中依次調(diào)用fun函數(shù)。其中c為靜態(tài)變量,到程序結(jié)束有效。第一次循環(huán)中2+1+4=7,第二次循環(huán)20+1+5=8,第三次循環(huán)2+1+6=9。即答案為789。30、有以下程序:#include<iostream>usingnamespacesta;inta;intfun();intmain(){externinta;intb;a=10;b=fun();cout<<b<<endl;return0;}intfun(){externinta;return(10*a);}其程序運(yùn)行后的輸出結(jié)果是()。A、10B、1C、100D、1000標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,首先定義外部變量a,它的作用域?yàn)閺淖兞康亩x處開(kāi)始,到本程序文件的末尾,賦值為10。然后調(diào)用fun函數(shù),在fun函數(shù)中計(jì)算10*a,其中a的作用域?yàn)榈轿募Y(jié)尾,所以這里的a為10,即10*10。31、靜態(tài)數(shù)據(jù)成員在()進(jìn)行初始化。A、成員函數(shù)列表B、類體外C、構(gòu)造函數(shù)D、成員函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員不能在參數(shù)初始化表對(duì)靜態(tài)數(shù)據(jù)成員初始化,只能在類體外進(jìn)行初始化。32、有如下程序:#include<iostream>usingnamespacestd;classTestClass1{public:TestClass1{cout<<"TestClass1";}~TestClass1(){cout<<"~TestClass1";}};classTestClass2:publicTestClass1{TestClass1*p;public;TestClass2(){cout<<"TestClass2";p=newTestClass1();}~TestClass2(){cout<<"~TestClass2";deletep;}};intmain(){TestClass2obj;return0:}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、TestClass2TestClass1TestClass1~TestClass1~TestClass2~TestClass1B、TestClass1TestClass2TestClass1~TestClass2~TestClass1~TestClass1C、TestClass2TestClass1TestClass1~TestClass2TestClass1~TestClass1D、TestClass1TestClass2TestClas1~TestClass1~TestClass2~TestClass1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類中構(gòu)造函數(shù)的執(zhí)行順序是:先調(diào)用基類構(gòu)造函數(shù),對(duì)基類數(shù)據(jù)成員初始化,然后調(diào)用子對(duì)象構(gòu)造函數(shù),對(duì)子對(duì)象數(shù)據(jù)成員初始化;最后執(zhí)行派生類構(gòu)造函數(shù)本身,對(duì)派生類數(shù)據(jù)成員初始化。由主函數(shù)main入手,首先定義了一個(gè)TestClass2對(duì)象obj。其中TestClass2公共繼承TestClass1,對(duì)象obj可以訪問(wèn)TestClass1中的公有成員函數(shù)。TestClass2中定義了一個(gè)TestClass1的指針p,給p分配新空間,即指向類TestClass1,輸出“TestClass1”。在TestClass2的構(gòu)造函數(shù)中首先輸出“TestClass2”,并在TestClass1構(gòu)造函數(shù)中輸出“TestClass1”。TestClass2析構(gòu)函數(shù)中輸出“~TestClass2”,刪除指針p,輸出“~TestClass1”。析構(gòu)TestClass1輸出“~TestClass1”。33、有如下類說(shuō)明:classTestClass{intx:public:TestClass(intn){x=n;}};classTestClass1:publicTestClass{inty;public:TestClass1(inta,intb);};在構(gòu)造函數(shù)TestClass1的下列定義中,正確的是()。A、TestClass1::TestClass1(inta,intb):x(a),y(b){}B、TestClass1::TestClass1(inta,intb):TestClass(a),y(b){}C、TestClass1::TestClass1(inta,intb):x(a),TestClass1(b){}D、TestClass1::TestClass1(inta,intb1:TestClass(a),TestClass1(b){}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目中程序TestClass為基類,TestClass1為派生類,派生類構(gòu)造函數(shù)的一般形式為:派生類構(gòu)造函數(shù)名(總參數(shù)類表):基類構(gòu)造函數(shù)名(參數(shù)列表){派生類中新增數(shù)據(jù)成員初始化語(yǔ)句}。派生類TestClass1的基類函數(shù)名為TestClass,總參數(shù)為inta,intb,所以選擇B)。34、下面敘述錯(cuò)誤的是()。A、對(duì)基類成員的訪問(wèn)能力在private派生類中和public派生類中是相同的B、基類的private成員在public派生類中不可訪問(wèn)C、基類中的public成員在protected派生類中是protected的D、基類中的public成員在protected派生類中仍然是public的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:基類的公有成員和保護(hù)成員在保護(hù)派生類中都成了保護(hù)成員,其私有成員仍為基類私有。35、在C++中,實(shí)現(xiàn)封裝性需借助于()。A、枚舉B、類C、數(shù)組D、函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言中對(duì)象概念的理解。所謂封裝性是指將數(shù)據(jù)和算法捆綁成一個(gè)整體,這個(gè)整體就是對(duì)象。C++語(yǔ)言通過(guò)建立用戶定義類型“類”來(lái)支持封裝性和信息隱藏。36、下列關(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è)類型來(lái)說(shuō)明一個(gè)或多個(gè)變量,即對(duì)象。37、下列關(guān)于C++函數(shù)的說(shuō)明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語(yǔ)句必須是return語(yǔ)句C、標(biāo)準(zhǔn)C++要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型D、編譯器會(huì)根據(jù)函數(shù)的返回值類型和參數(shù)表來(lái)區(qū)分函數(shù)的不同重載形式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是有關(guān)函數(shù)的概念。內(nèi)聯(lián)函數(shù)是在函數(shù)定義之前加關(guān)鍵字inline來(lái)聲明的函數(shù),而不是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù),故選項(xiàng)A)錯(cuò)誤;無(wú)返回值的函數(shù)在執(zhí)行完最后一條語(yǔ)句后,會(huì)自動(dòng)返回而不必加入return語(yǔ)句,故選項(xiàng)B)錯(cuò)誤;如果函數(shù)只是返回值類型不同,而其他完全相同,則不能作為函數(shù)重載來(lái)使用。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共29題,每題1.0分,共29分。)1、下列描述中,不屬于面向?qū)ο笏枷胫饕卣鞯氖?)。A、封裝性B、跨平臺(tái)性C、繼承性D、多態(tài)性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:封裝性、繼承性和多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)基本特征??缙脚_(tái)性不是面向?qū)ο蟪绦蛟O(shè)計(jì)的特征。2、下列字符串中,正確的C++標(biāo)識(shí)符是()。A、foo-1B、2bC、newD、_256標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言中標(biāo)識(shí)符的定義。標(biāo)識(shí)符由字母、數(shù)字或下劃線構(gòu)成,但第一個(gè)字符必須是字母或下劃線;標(biāo)識(shí)符中大小寫字母是不同的;用戶定義標(biāo)識(shí)符時(shí),不允許采用系統(tǒng)的關(guān)鍵字。3、下列符號(hào)中可以用作C++標(biāo)識(shí)符的是()。A、_radiusB、foo~barC、elseD、3room標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言中標(biāo)識(shí)符的定義。標(biāo)識(shí)符有字母、數(shù)字和下劃線構(gòu)成,其第一個(gè)字母必須是字母或下劃線;定義標(biāo)識(shí)符時(shí),不要采用系統(tǒng)的保留字。4、下列符號(hào)中,正確的C++標(biāo)識(shí)符是()。A、enumB、100bitC、s-1D、_int標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言中標(biāo)識(shí)符的概念。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格;標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于編譯系統(tǒng)的限制一般不超過(guò)31個(gè)字符:標(biāo)識(shí)符中的大小寫字母是不同的:定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。5、下列字符串中,不可以用作C++標(biāo)識(shí)符的是()。A、y_2006B、____TEST__HC、ReturnD、switch標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格;標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于編譯系統(tǒng)的限制一般不超過(guò)31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。6、下列符號(hào)中能夠作為C++標(biāo)識(shí)符的是()。A、constB、2aC、_shapeD、-count標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是C++標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于編譯系統(tǒng)的限制一般不超過(guò)31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。7、下列字符串中不能作為C++標(biāo)識(shí)符使用的是()。A、WHILEB、userC、_lvarD、9stars標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中變量名的命名必須遵循一定的原則,其中之一即是第一個(gè)字符必須是字母或者下劃線。8、下列字符串中可以用作C++標(biāo)識(shí)符的是()。A、2009varB、gotoC、test-2009D、_123標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:標(biāo)識(shí)符是用戶為程序中各種需要命名的“元素”所起的名字。標(biāo)識(shí)符的組成要符合一定的規(guī)則:①標(biāo)識(shí)符是一個(gè)以字母或下劃線開(kāi)頭的,由字母、數(shù)字、下劃線組成的字符串。②標(biāo)識(shí)符不能與任意一個(gè)關(guān)鍵字同名。③標(biāo)識(shí)符中的字母區(qū)分大小寫。④標(biāo)識(shí)符不宜過(guò)長(zhǎng)。C++語(yǔ)言一般設(shè)定一個(gè)標(biāo)識(shí)符的有效長(zhǎng)度為32個(gè)字符。由這四條規(guī)則可知,選項(xiàng)D為正確答案。9、在下列字符中,不允許作為C++標(biāo)識(shí)符的是()。A、bB、BC、_D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符是一個(gè)以字母或下劃線開(kāi)頭的,由字母、數(shù)字、下劃線組成的字符串。10、下列選項(xiàng)中,正確的C++標(biāo)識(shí)符是()。A、6__groupB、group~6C、age+3D、__group__6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++中標(biāo)識(shí)符的命名遵循如下規(guī)則:不能是C++關(guān)鍵字,第一個(gè)字母必須是字母或下劃線,中間不能有空格,變量名中不能包括“.”、“;”、“,”、“‘”、“"”+-之類的特殊符號(hào)??傊畼?biāo)識(shí)符中除了能使用26個(gè)英文大小寫字母和數(shù)字外,只能使用下劃線“-”。11、下列選項(xiàng)可以做C++標(biāo)識(shí)符的是()。A、_256B、fxt/pigC、deleteD、5char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:標(biāo)識(shí)符的命名規(guī)則:①所有標(biāo)識(shí)符必須由一個(gè)字母(a~z或A~Z)或下劃線()開(kāi)頭;②標(biāo)識(shí)符的其他部分可以用字母、下劃線或數(shù)字(0~9)組成;③大小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符,如gout和Cout。12、下列符號(hào)中不屬于C++關(guān)鍵字的是()。A、friendB、namespaceC、continueD、byte標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言的關(guān)鍵字。Friend是聲明友元函數(shù)或友元類時(shí)用到的關(guān)鍵字:namespace是定義或使用名字空間時(shí)用到的關(guān)鍵字;continue是終止本次循環(huán)直接開(kāi)始下一次循環(huán)所用到的關(guān)鍵字;byte是字節(jié)的意思,它不是C++語(yǔ)言中的關(guān)鍵字。13、下列選項(xiàng)中,不是C++關(guān)鍵字的是()。A、classB、functionC、friendD、virtual標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:class、friend、virtual都是C++的關(guān)鍵字,而。funtion是VB的關(guān)鍵字。14、下列關(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)用無(wú)參函數(shù)時(shí)主函數(shù)并不將數(shù)據(jù)傳送給被調(diào)函數(shù),且可以帶回或不帶回函數(shù)值。函數(shù)的遞歸調(diào)用就是直接或間接的調(diào)用自己。15、必須用一對(duì)大括號(hào)括起來(lái)的程序段是()。A、switch語(yǔ)句中的case標(biāo)號(hào)語(yǔ)句B、if語(yǔ)句的分支C、循環(huán)語(yǔ)句的循環(huán)體D、函數(shù)的函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是語(yǔ)句塊和函數(shù)。if語(yǔ)句的分支和循環(huán)語(yǔ)句的循環(huán)體可以是一條語(yǔ)句也可以使一個(gè)語(yǔ)句塊,所以不是必須用一個(gè)大括號(hào)括起來(lái):switch語(yǔ)句中的case標(biāo)號(hào)語(yǔ)句可以是一系列語(yǔ)句,也可以包含語(yǔ)句塊,也不是必須用一對(duì)大括號(hào)括起來(lái):函數(shù)的函數(shù)體必須用一對(duì)大括號(hào)括起來(lái)。16、Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是()。A、cppB、exeC、objD、lik標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在VC6.0集成開(kāi)發(fā)環(huán)境下,用戶可以使用編譯(compile)命令將一個(gè).cpp為擴(kuò)展名的C++源程序文件轉(zhuǎn)換成一個(gè)以.obj為擴(kuò)展名的目標(biāo)文件。17、在開(kāi)發(fā)一個(gè)C++程序的整個(gè)過(guò)程中,第3個(gè)步驟為()。A、鏈接B、運(yùn)行C、編輯D、編譯標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++程序的開(kāi)發(fā)過(guò)程是編輯、編譯、鏈接、運(yùn)行和調(diào)試。18、下列各組類型聲明符中,含義相同的一組是()。A、unsignedlongint和longB、signedshortint和shortC、unsignedshort和shortD、shortint和int標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是基本類型和派生型。C++語(yǔ)言中,基本類型的字長(zhǎng)及其取值范圍可以放大和縮小,改變后的類型就叫做基本類型和派生類型。本題A選項(xiàng)中,unsignedlongint的省略形式為unsignedlong:選項(xiàng)B中,signedshortint的省略形式是short;選項(xiàng)C中,unsignedshort的省略形式是unsignedshort;選項(xiàng)D中,shortint的省略形式是short。19、關(guān)鍵字unsigned不能修飾的類型是()。A、charB、intC、floatD、longint標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:實(shí)型常量指的是float和double兩種數(shù)據(jù)類型,而signed和unsigned只對(duì)整型數(shù)起作用,用于確定它們的數(shù)據(jù)范圍(例如16位系統(tǒng)中,一個(gè)signedint是-32768~32767,而unsignedint是0~65535)。unsigned對(duì)浮點(diǎn)數(shù)是無(wú)意義的。20、已知枚舉類型定義語(yǔ)句為: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)解析:此題考查的是C++語(yǔ)言的數(shù)據(jù)類型。第一個(gè)枚舉常量的值為0:允許程序顯示的定義中指定部分或全部枚舉常量的值,枚舉常量默認(rèn)時(shí),在前一枚舉常量值的基礎(chǔ)上以此增1。21、已知枚舉類型聲明語(yǔ)句為:enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10);則下列說(shuō)法中錯(cuò)誤的是()。A、枚舉常量YELLOW的值為1B、枚舉常量RED的值為6C、枚舉常量BLACK的值為10D、枚舉常量WHITE的值為1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語(yǔ)法形式為: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é)束。22、下列枚舉類型的定義中,包含枚舉值3的是()。A、enumtest{RED,YELLOW,BLUE,BLACK);B、enumtest{RED,YELLOW=4,BLUE,BLACK};C、enumtest{RED=-1,YELLOW,BLUE,BLACK);D、enumtest{RED,YELLOW=6,BLUE,BLACK};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:聲明枚舉類型的語(yǔ)法格式為:enum<類型名>{<枚舉值表>};<枚舉值表>包含多個(gè)枚舉值,它們用逗號(hào)隔開(kāi),每個(gè)枚舉值就是一個(gè)枚舉常量。枚舉值有兩種定義形式:一是<值名>;二是<值名>=<整型常量>。關(guān)于枚舉類型有以下4點(diǎn)說(shuō)明:①一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚舉值代表一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0,1,…n-1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚舉值賦的整型常量值應(yīng)從左到右遞增。④枚舉類型的聲明也可作為組聲明若干整型符號(hào)常量的方法。也就是說(shuō),把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)枚舉值合在一起定義成一個(gè)枚舉類型。對(duì)于本題來(lái)說(shuō),在選項(xiàng)A中,對(duì)4個(gè)枚舉值沒(méi)有賦常量值,所以它們從左到右與整數(shù)0,1,2,3相對(duì)應(yīng)。因而選項(xiàng)A為正確選項(xiàng)。23、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是符號(hào)常量的概念。符號(hào)常量必須在聲明的同時(shí)賦初值,故選項(xiàng)B錯(cuò)誤;選項(xiàng)C定義的是一個(gè)指向常量的指針變量,即通過(guò)指針不能改變它所指向的內(nèi)容,而它自己的內(nèi)容是可以改變的,C選項(xiàng)正確。24、在函數(shù)中,可以用auto、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來(lái)說(shuō)明變量的存儲(chǔ)類型,如果不說(shuō)明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、extemC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。C++語(yǔ)言變量的存儲(chǔ)類型分為如下幾種類型:auto---函數(shù)內(nèi)部的局部變量;static---靜態(tài)存儲(chǔ)分配;extern---全局變量:register---變量存儲(chǔ)在硬件寄存器中。25、下列語(yǔ)句中錯(cuò)誤的是()。A、constinta;B、constinta=10;C、constint*point=0;D、constint*point=newint(10);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)鍵字const聲明符號(hào)常量的同時(shí)必須為其賦初值。26、有如下程序段:運(yùn)行時(shí)的輸出結(jié)果是()。A、44B、41C、88D、81標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這個(gè)程序定義了全局整型對(duì)象i和j,其值分別等于4和1。而在主函數(shù)中定義了局部整型對(duì)象i和j,i值賦予8,再把i值賦給j,接著輸出i和j的值,所以其結(jié)果為88。這個(gè)題目要注意的一點(diǎn)是,全局整型對(duì)象i和j和主函數(shù)中定義了局部整型對(duì)象i和j,在計(jì)算機(jī)內(nèi)存中表示的是不同的存儲(chǔ)單元。它們的值是獨(dú)自存放的,互相不同。27、下列選項(xiàng)中,正確的C++表達(dá)式是()。A、counter++3B、element3+C、a+=bD、’a’=b標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中由一個(gè)或多個(gè)操作數(shù)與操作符連接而成的有效運(yùn)算式稱為表達(dá)式。選項(xiàng)C是C++的合法表達(dá)式。28、若有定義語(yǔ)句“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ù)。29、若有定義“hatx=4,y=5;”,則表達(dá)式“y>x++?x--:y++”的值為()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在表達(dá)式“y>x++?x--:y++”中,由于自加(++)運(yùn)行符的優(yōu)前級(jí)高于比較運(yùn)算符(>),所以首先進(jìn)行自加運(yùn)算,即變量x的值前自加1,等于5,此時(shí)表達(dá)式y(tǒng)>x不成立,所以整個(gè)表達(dá)式的值等于y++的值,由于y++是后自加運(yùn)算,所以其值等于5。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共38題,每題1.0分,共38分。)1、下列關(guān)于算法復(fù)雜度敘述正確的是A、最壞情況下的時(shí)間復(fù)雜度一定高于平均情況的時(shí)間復(fù)雜度B、時(shí)間復(fù)雜度與所用的計(jì)算工具無(wú)關(guān)C、對(duì)同一個(gè)問(wèn)題,采用不同的算法,則它們的時(shí)間復(fù)雜度是相同的D、時(shí)間復(fù)雜度與采用的算法描述語(yǔ)言有關(guān)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,它與使用的計(jì)算機(jī)、程序設(shè)計(jì)語(yǔ)言以及算法實(shí)現(xiàn)過(guò)程中的許多細(xì)節(jié)無(wú)關(guān),B選項(xiàng)正確,D選項(xiàng)錯(cuò)誤。最壞情況下的時(shí)間復(fù)雜度可以與平均情況的時(shí)間復(fù)雜度相同,A選項(xiàng)錯(cuò)誤。不同的算法時(shí)間復(fù)雜度一般不相同,C選項(xiàng)錯(cuò)誤。2、某二叉樹(shù)共有845個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)有45個(gè),則度為1的結(jié)點(diǎn)數(shù)為A、400B、754C、756D、不確定標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹(shù)的度。對(duì)任何一棵二叉樹(shù),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。二叉樹(shù)共有845個(gè)結(jié)點(diǎn),度為0的結(jié)點(diǎn)有45個(gè),度為1的結(jié)點(diǎn)數(shù)為n1,度為2的結(jié)點(diǎn)數(shù)為n2,則845=45+n1+n2,且45=n2+1,則n1=756,C選項(xiàng)正確。3、軟件需求分析階段的主要任務(wù)是A、確定軟件開(kāi)發(fā)方法B、確定軟件開(kāi)發(fā)工具C、確定軟件開(kāi)發(fā)計(jì)劃D、確定軟件系統(tǒng)的功能標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說(shuō)明書(shū)和需求評(píng)審,包括確定軟件系統(tǒng)的功能,D選項(xiàng)正確。A、B、C選項(xiàng)均為開(kāi)發(fā)階段工作。4、下面對(duì)軟件測(cè)試描述錯(cuò)誤的是A、嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性B、隨機(jī)地選取測(cè)試數(shù)據(jù)C、隨機(jī)地選取測(cè)試數(shù)據(jù)D、軟件測(cè)試是保證軟件質(zhì)量的重要手段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在測(cè)試之前制定測(cè)試計(jì)劃,并嚴(yán)格執(zhí)行,測(cè)試用例的選擇不可隨意,應(yīng)選擇有代表性的,盡可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤,A選項(xiàng)敘述正確,B選項(xiàng)敘述錯(cuò)誤。測(cè)試根本目的是盡可能多地發(fā)現(xiàn)并排除軟件中隱藏的錯(cuò)誤,C選項(xiàng)敘述正確。軟件測(cè)試是保證軟件質(zhì)量、可靠性的關(guān)鍵步驟,D選項(xiàng)敘述正確。故正確答案為B選項(xiàng)。5、結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu)是A、順序、選擇和重復(fù)(循環(huán))B、過(guò)程、子程序和分程序C、順序、選擇和調(diào)用D、調(diào)用、返回和轉(zhuǎn)移標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu):順序、選擇和重復(fù),故A選項(xiàng)正確。6、數(shù)據(jù)庫(kù)中對(duì)概念模式內(nèi)容進(jìn)行說(shuō)明的語(yǔ)言是A、數(shù)據(jù)定義語(yǔ)言B、數(shù)據(jù)操縱語(yǔ)言C、數(shù)據(jù)控制語(yǔ)言D、數(shù)據(jù)宿主型語(yǔ)言標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)為完成主要功能提供了相應(yīng)的數(shù)據(jù)語(yǔ)言,它們是:數(shù)據(jù)定義語(yǔ)言,該語(yǔ)言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語(yǔ)言,該語(yǔ)言負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢與增、刪、改等操作;數(shù)據(jù)控制語(yǔ)言,該語(yǔ)言負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。故A選項(xiàng)正確。7、某個(gè)工廠有若干個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)存放有不同的零件,相同零件可能放在不同的倉(cāng)庫(kù)中。則實(shí)體倉(cāng)庫(kù)和零件間的聯(lián)系是A、多對(duì)多B、一對(duì)多C、多對(duì)一D、一對(duì)一標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般來(lái)說(shuō),實(shí)體集之間必須通過(guò)聯(lián)系來(lái)建立聯(lián)接關(guān)系,分為三類:一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:m)、多對(duì)多聯(lián)系(m:n)。每個(gè)倉(cāng)庫(kù)存放有不同的零件,相同零件可能放在不同的倉(cāng)庫(kù)中,故實(shí)體倉(cāng)庫(kù)和零件間的聯(lián)系是多對(duì)多,A選項(xiàng)正確。8、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、交B、差C、并D、選擇標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:用于查詢的3個(gè)操作無(wú)法用傳統(tǒng)的集合運(yùn)算表示,引入的運(yùn)算為投影運(yùn)算、選擇運(yùn)算、笛卡爾積。常用的擴(kuò)充運(yùn)算有交、除、連接及自然連接等。選擇,從關(guān)系中找出滿足給定條件的元組的操作稱為選擇,題目中無(wú)給定條件,故D選項(xiàng)錯(cuò)誤。差:R-S結(jié)果是屬于R但不屬于S的記錄組成的集合,T中元組"c32"同時(shí)屬于R和S,B選項(xiàng)錯(cuò)誤。并:R∪S是將S中的記錄追加到R后面,T中元組少于R,故C選項(xiàng)錯(cuò)誤。交:R∩S結(jié)果是既屬于R又屬于S的記錄組成的集合,與題目中結(jié)果相符,故A選項(xiàng)正確。9、下列選項(xiàng)中,正確的C++標(biāo)識(shí)符是A、a^3B、a-3C、a’3D、a_3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,其中必須以字母或下劃線開(kāi)頭。A、B、C錯(cuò)誤,答案為D。10、下列選項(xiàng)中,正確的C++表達(dá)式是A、a1+B、b++2C、3=cD、-d4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)A中,"+"運(yùn)算符作為一元運(yùn)算符,應(yīng)該放在操作數(shù)之前,返回操作數(shù)本身;作為二元運(yùn)算符,必須作用于兩個(gè)操作數(shù);選項(xiàng)B中,"++"運(yùn)算符是一元運(yùn)算符,只能作用于一個(gè)操作數(shù);選項(xiàng)C中,3是常量,不能用作賦值操作符的左值;選項(xiàng)D正確,"-"操作符作為一元運(yùn)算符,放在操作數(shù)之前,對(duì)其操作數(shù)取負(fù);答案為D。11、要定義整型數(shù)組x,使之包括初值為1的三個(gè)元素,下列語(yǔ)句正確的是A、staticintx[3]={1};B、intx[3];x[1]=x[2]=x[3]=1;C、intx[3]={1,1,1};D、intx={1,1,1};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:選項(xiàng)A中,數(shù)組x的后兩個(gè)元素初值默認(rèn)為0;選項(xiàng)B中,數(shù)組下標(biāo)從0開(kāi)始,x[0]未賦初值,x[3]訪問(wèn)越界;選項(xiàng)D中,x是整型變量,不是整型數(shù)組,賦值語(yǔ)法錯(cuò)誤;只有C正確,定義整型數(shù)組x,并對(duì)三個(gè)元素賦初值為1;答案為C。12、常量4.2,4.2f,4L的數(shù)據(jù)類型分別是A、float、float、doubleB、double、float、longC、double、double、floatD、float、float、long標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:常量4.2是浮點(diǎn)型常量,一般按雙精度處理,是double型;4.2f按單精度處理,是float型;4L是long型。答案為B。13、設(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。14、下列關(guān)于函數(shù)參數(shù)的敘述中,錯(cuò)誤的是A、函數(shù)的實(shí)參與形參應(yīng)該一一匹配B、定義函數(shù)時(shí)必須給出函數(shù)的實(shí)參C、函數(shù)形參可以看做函數(shù)的局部變量D、C++中可以為形參指定默認(rèn)值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)定義時(shí),形參列表若不為空,需要給出函數(shù)的形參;調(diào)用函數(shù)時(shí),參數(shù)列表若不為空,必須給出函數(shù)的實(shí)參;選項(xiàng)A、C、D正確,選項(xiàng)B錯(cuò)誤;答案為B。15、下列選項(xiàng)中,不是重載函數(shù)調(diào)用時(shí)選擇依據(jù)的是A、參數(shù)個(gè)數(shù)B、參數(shù)類型C、參數(shù)名稱D、函數(shù)名稱標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:重載函數(shù)調(diào)用時(shí)首先要從函數(shù)名稱相同的候選函數(shù)中選擇可行函數(shù),可行函數(shù)必須滿足兩個(gè)條件:1、函數(shù)的形參個(gè)數(shù)與該調(diào)用的實(shí)參個(gè)數(shù)相同;2、每個(gè)實(shí)參的類型必須與對(duì)應(yīng)形參的類型匹配,或者可被隱式轉(zhuǎn)換為對(duì)應(yīng)的形參類型。參數(shù)名稱可以不相同,答案選C。16、若為類MyClass重載運(yùn)算符"+",下列聲明中,錯(cuò)誤的是A、friendMyClassoperator+(double,double);B、friendMyClassoperator+(double,MyClass);C、friendMyClassoperator+(MyClass,double);D、friendMyClassoperator+(MyClass,MyClass);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:重載運(yùn)算符必須具有一個(gè)類類型的操作數(shù),這條規(guī)則強(qiáng)制重載運(yùn)算符不能重新定義用于內(nèi)置類型對(duì)象的運(yùn)算符。選項(xiàng)B、C、D正確,A錯(cuò)誤,答案為A。17、有如下程序:#includeusingnamespacestd;voidfun(int&x,inty){y=y+x;x=y/4;x++;}intmain(){intx=4,y=5;fun(x,y);cout<A、4,5B、3,5C、3,9D、2,5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun的形參x為引用類型,函數(shù)功能是將形參x與y之和除以4的結(jié)果賦給x,再對(duì)x自增1,通過(guò)引用類型修改實(shí)參;main函數(shù)中定義x=4,y=5,所以通過(guò)函數(shù)fun的調(diào)用,x的值被修改為:(4+5)/4+1=3,而y的值不變,所以程序輸出3,5;答案為B。18、有如下程序:#includeusingnamespacestd;voidfun(int&x,int&y){y=y+x;x=y/4;x++;}intmain(){intx=4,y=5;fun(x,y);cout<A、4,5B、3,5C、3,9D、2,5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun兩個(gè)形參x,y都是引用類型,函數(shù)功能是通過(guò)形參的引用類型修改實(shí)參值,首先修改y值為x、y之和;然后將修改后的y值除以4,結(jié)果賦給x,再將x自增1;main函數(shù)中定義x=4,y=5,通過(guò)fun函數(shù)的調(diào)用,修改y的值為4+5=9,x的值為9/4+1=3,最終輸出結(jié)果為3,9,答案為C。19、有如下類定義:classMyClass{public:MyClass(doubled=0.0):val(d){}______________//運(yùn)算符函數(shù)-的聲明private:doubleval;};若要使語(yǔ)句序列MyClassy(4.6),z;z=6.7-y;能夠正常運(yùn)行,橫線處的聲明語(yǔ)句應(yīng)為A、friendMyClassoperator-(MyClass&,MyClass&);B、friendMyClassoperator-(double,MyClass);C、friendMyClassoperator-(MyClass&,double);D、friendMyClassoperator-(double&,MyClass&);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由調(diào)用函數(shù)6.7-y可知,double類型在運(yùn)算符"-"的左邊,應(yīng)該作為運(yùn)算符函數(shù)"-"的第一形參,選項(xiàng)A、C錯(cuò)誤;由于運(yùn)算符"-"函數(shù)并不改變操作數(shù)的狀態(tài),所以形參應(yīng)該聲明為const對(duì)象的引用,或者按值傳遞,參數(shù)按引用類型傳遞可能會(huì)改變操作數(shù)的狀態(tài),選項(xiàng)D錯(cuò)誤;答案為B。20、有如下兩個(gè)類定義:classAA{};classBB{AAv1,*v2;BBv3,*v4;};其中定義錯(cuò)誤的成員變量是A、v1B、v2,v4C、v3D、v3,v4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:只有類定義或者聲明在當(dāng)前定義類前面出現(xiàn)過(guò),數(shù)據(jù)成員才能被指定為該類類型,類AA已經(jīng)完成定義,v1,v2正確;類不能具有自身類型的數(shù)據(jù)成員,只要類名出現(xiàn)就可以認(rèn)為該類已經(jīng)聲明,類的數(shù)據(jù)成員就可以是指向自身類型的指針或引用,類BB在聲明之后,定義之前是一個(gè)不完全類型,其數(shù)據(jù)成員只能是指向BB類型的指針或引用,v4正確,v3錯(cuò)誤;答案為C。21、有如下類定義:classBase{public:voidfun(){cout<<"Base::fun"<A、Base.fun();B、Base->fun();C、Base::fun();D、fun();標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:基類Base和派生類Derived中使用同一名字的成員函數(shù)fun,所以在派生類Derived的作用域中,派生類Derived中的fun函數(shù)會(huì)屏蔽基類Base中的fun函數(shù),即Base的fun函數(shù)對(duì)Derived不可見(jiàn),這是因?yàn)榫幾g器在查找名字fun時(shí),首先在Derived中找到,這樣編譯器就不再繼續(xù)查找,所以若想在Derived中調(diào)用Base的fun函數(shù),必須顯式的說(shuō)明fun函數(shù)屬于Base,這里使用作用域運(yùn)算符訪問(wèn)被屏蔽的fun,調(diào)用語(yǔ)句為:Base::fun();答案為C。22、如果派生類以protected方式繼承基類,則基類中的保護(hù)成員在派生類中的訪問(wèn)屬性是A、publicB、protectedC、privateD、protected或public標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:protected方式繼承中,基類的public和protected成員在派生類中為protected成員,答案為B。23、有如下兩個(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)解析:類YY以protected方式繼承類XX,所以類XX中的public成員和protected成員在YY中為protected成員,所以YY中的protected成員有:x2,x3,y2,答案為C。24、有如下類聲明:classWhat{intn;public:doubled;private:charc;};類What的公有數(shù)據(jù)成員和私有數(shù)據(jù)成員的數(shù)量分別是A、1和1B、1和2C、2和1D、2和2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:class關(guān)鍵字定義的類,成員默認(rèn)的訪問(wèn)級(jí)別是私有的,所以類What中公有成員有d,私有成員有n,c;答案為B。25、除了顯式定義的構(gòu)造函數(shù)外,類中還有可能包含編譯器自動(dòng)生成的構(gòu)造函數(shù),因此一個(gè)類所擁有的構(gòu)造函數(shù)的至少有A、1個(gè)B、2個(gè)C、3個(gè)D、4個(gè)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一個(gè)類,如果沒(méi)有顯示定義的構(gòu)造函數(shù),那么編譯器自動(dòng)生成一個(gè)構(gòu)造函數(shù);一個(gè)類,如果顯示定義了構(gòu)造函數(shù),無(wú)論個(gè)數(shù)多少,編譯器也不會(huì)再生成任何構(gòu)造函數(shù),所以一個(gè)類所擁有的構(gòu)造函數(shù)至少有1個(gè),答案為A。26、有如下類聲明:classHow{intk;public:How():k(99){}};則類How所擁有的構(gòu)造函數(shù)的數(shù)量是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:首先類How定義了一個(gè)默認(rèn)構(gòu)造函數(shù)How(),因而編譯器不會(huì)自動(dòng)生成默認(rèn)構(gòu)造函數(shù);其次How中需要一個(gè)復(fù)制構(gòu)造函數(shù),這由編譯器自動(dòng)生成,所以How有兩個(gè)構(gòu)造函數(shù),答案為B。27、在下面的類聲明中,錯(cuò)誤的是A、classAA{BBb;};classBB{AAa;};B、classAA{AA*a;};classBB{BB&b;};C、classBB;classAA{BB*b;};classBB{AAa;};D、classAA;classBB{AA&a;};classAA{BBb;};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在創(chuàng)建類的對(duì)象之前,必須完整的定義該類,在一個(gè)類的聲明之后,定義之前,這個(gè)類是一個(gè)不完全類型,對(duì)于不完全類型,只能用于定義指向該類型的指針及引用,或者用于聲明(不是定義)使用該類型作為形參類型或返回類型的函數(shù);選項(xiàng)A中,類A中的BB還未定義(也未聲明),無(wú)法創(chuàng)建BB類對(duì)象,錯(cuò)誤;選項(xiàng)B中,聲明之后定義的是指針或引用,正確;選項(xiàng)C中,聲明BB之后定義BB類的指針,定義AA之后創(chuàng)建AA類的對(duì)象,正確;選項(xiàng)D中,聲明AA之后定義AA類的引用,定義BB之后創(chuàng)建BB類的對(duì)象,正確;答案為A。28、有如下類聲明和函數(shù)聲明:classBase{intm;public:intn;protected:intp;};classDerived:publicBase{intk;};voidf(Derivedd);則允許函數(shù)f訪問(wèn)的參數(shù)d的數(shù)據(jù)成員的個(gè)數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:?jiǎn)柤?jí)別(private成員除外),即基類的public成員為派生類的public成員,基類的protected成員為派生類的protected成員;本題中,Derived類以public方式繼承Base,所以Derived中public成員有:n,protected成員有:p,private成員有:k,不可見(jiàn)的成員有:m;這些成員中,對(duì)Derived類對(duì)象可見(jiàn)的只有public成員n,答案為A。29、有如下類聲明: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定義中沒(méi)有定義任何構(gòu)造函數(shù),所以編譯器會(huì)自動(dòng)生成一個(gè)默認(rèn)構(gòu)造函數(shù),同時(shí)還生成復(fù)制構(gòu)造函數(shù),所以類How擁有兩個(gè)構(gòu)造函數(shù),答案為B。30、有如下程序:#includeusingnamespacestd;classBase1{public:Base1(){}~Base1(){cout<<"b1";}};classBase2{public:Base2(){}~Base2(){cout<<"b2";}};classDerived:publicBase2,publicBase1{public:Derived(){}~Derived(){cout<<’d’;}};intmain(){Derivedobj;return0;}運(yùn)行這個(gè)程序的輸出是A、b1b2dB、b2b1dC、db1b2D、db2b1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:派生類構(gòu)造函數(shù)都是先調(diào)用基類構(gòu)造函數(shù),再根據(jù)聲明次序定義數(shù)據(jù)成員,另外對(duì)于多繼承,派生類的構(gòu)造函數(shù)初始化列表中,基類構(gòu)造函數(shù)是按照基類在派生類的派生列表中出現(xiàn)的次序調(diào)用的;由于Derived類的派生列表中,Base2在前,所以應(yīng)該先調(diào)用Base2的構(gòu)造函數(shù),再調(diào)用Base1的構(gòu)造函數(shù);銷毀派生類對(duì)象時(shí),總是按照構(gòu)造函數(shù)運(yùn)行次序的相反順序調(diào)用析構(gòu)函數(shù),首先運(yùn)行派生類析構(gòu)函數(shù),然后按繼承層次依次向上調(diào)用各基類函數(shù);所以Derived對(duì)象銷毀時(shí),首先調(diào)用Derived的析構(gòu)函數(shù),接著調(diào)用Base1的析構(gòu)函數(shù),最后調(diào)用Base2的析構(gòu)函數(shù);輸出結(jié)果為:"db1b2",答案為C。31、若Pay是一個(gè)類名,則執(zhí)行語(yǔ)句Payp1,p2[2],*p3;時(shí)Pay的構(gòu)造函數(shù)被調(diào)用的次數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序定義了Pay對(duì)象p1,Pay對(duì)象數(shù)組p2和Pay對(duì)象指針p3,編譯器自動(dòng)生成默認(rèn)構(gòu)造函數(shù)初始化p1對(duì)象和p2的兩個(gè)對(duì)象元素;p3沒(méi)有初始化,沒(méi)有調(diào)用構(gòu)造函數(shù),答案為C。32、有如下類聲明和函數(shù)聲明classBase{intm;public:intn;protected:intp;};classDerived:protectedBase{public:intk;};voidf(Derivedd);則在函數(shù)f中通過(guò)d可訪問(wèn)的數(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,沒(méi)有private成員,m對(duì)Derived不可見(jiàn);Derived對(duì)象d可訪問(wèn)的只有public成員,即k;答案為A。33、有如下類定義:classPet{charname[30];public:Pet(char*n){strcpy(name,n);}voidbark(){cout<<"Woof!";}};且有如下變量定義:Petmy_dog("Weiwei"),&p=my_dog;則下列訪問(wèn)成員函數(shù)bark的表達(dá)式中,錯(cuò)誤的是A、p.bark()B、my_dog.bark()C、p->bark()D、(&p)->bark()標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:p為Pet類的引用類型,引用的對(duì)象是my_dog,p->bark()用法是錯(cuò)誤的,至于選項(xiàng)D,&p是p的地址,通過(guò)地址使用箭頭訪問(wèn)運(yùn)算符訪問(wèn)bark(),正確;答案為C。34、有如下程序#includeusingnamespacestd;classAA{charc;public:AA():c(’X’){}AA(charch):c(ch){}AA(AA&aa):c(aa.c){}~AA(){cout<<3;}charvalue()const{returnc;}};voidf1(AAa){cout<A、X3Y3B、XY33C、Y3X3D、YX33標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:main函數(shù)中,調(diào)用f1函數(shù),創(chuàng)建局部對(duì)象AA(’Y’),此時(shí)形參a就是AA(’Y’)對(duì)象,輸出a.value(),即"Y",f1函數(shù)執(zhí)行完之后,需要銷毀AA(’Y’)對(duì)象,調(diào)用AA類的析構(gòu)函數(shù)~AA(),輸出"3";接著程序調(diào)用f2函數(shù),f2函數(shù)創(chuàng)建局部對(duì)象的引用a并初始化指向AA(),此時(shí)引用a所指對(duì)象的成員c值為"X",輸出為"X",f2函數(shù)執(zhí)行完之后,需要銷毀a所指對(duì)象AA(),調(diào)用AA類的析構(gòu)函數(shù)~AA(),輸出"3",程序結(jié)束;運(yùn)行結(jié)果為:"Y3X3",答案為C。35、在下列枚舉符號(hào)中,用來(lái)定位文件開(kāi)始位置的方式是A、ios_base::curB、ios_base::begC、ios_base::outD、ios_base::end標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:ios_base::cur是指文件的當(dāng)前位置;ios_base::end指向文件尾部;ios_base::beg指向文件開(kāi)始;ios_base::out文件操作的文件模式;答案為B。36、若MyTemp是一個(gè)只有一個(gè)虛擬類型參數(shù)的類模板,且有如下語(yǔ)句序列MyTempp1;MyTempp2;MyTempp3[4];編譯系統(tǒng)在處理上面的語(yǔ)句序列時(shí),所生成的模板MyTemp的實(shí)例的個(gè)數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目中使用MyTemp類模板定義了三種類型的類對(duì)象,所以生成的模板MyTemp實(shí)例有3個(gè),答案為C。37、下列關(guān)于模板的表述中,正確的是A、如果一個(gè)類中存在純虛函數(shù),這個(gè)類就是類模板B、函數(shù)模板不能帶有形式參數(shù)表C、類模板帶有模板形參表D、類模板中不能包含構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:存在純虛函數(shù)的類是抽象基類,選項(xiàng)A錯(cuò)誤;函數(shù)模板的形參表不能為空,不然定義函數(shù)模板也沒(méi)有意義,選項(xiàng)B錯(cuò)誤;類模板中是可以包含構(gòu)造函數(shù)的,選項(xiàng)D錯(cuò)誤。答案為C。38、下列關(guān)于基類和派生類關(guān)系的敘述中,正確的是A、派生類中的成員可以訪問(wèn)基類中的任何成員B、每個(gè)類最多只能有一個(gè)直接基類C、對(duì)基類構(gòu)造函數(shù)的調(diào)用不能出現(xiàn)在派生類構(gòu)造函數(shù)的初始化列表中D、派生類除了繼承基類的成員,還可以定義新的成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對(duì)基類成員的訪問(wèn)權(quán)限由基類成員的訪問(wèn)標(biāo)識(shí)和類派生列表中的訪問(wèn)標(biāo)識(shí)共同決定的,選項(xiàng)A錯(cuò)誤;多重繼承的派生類可以有多個(gè)直接基類,選項(xiàng)B錯(cuò)誤;派生類構(gòu)造函數(shù)可以隱式調(diào)用基類的默認(rèn)構(gòu)造函數(shù)初始化對(duì)象的基類部分,也可以在派生類構(gòu)造函數(shù)初始化列表中顯示調(diào)用基類構(gòu)造函數(shù),選項(xiàng)C錯(cuò)誤;答案為D。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共38題,每題1.0分,共38分。)1、下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在定義的鏈表中,若只含有一個(gè)指針域來(lái)存放下一個(gè)元素地址,稱這樣的鏈表為單鏈表或線性鏈表。帶鏈的??梢杂脕?lái)收集計(jì)算機(jī)存儲(chǔ)空間中所有空閑的存儲(chǔ)結(jié)點(diǎn),是線性表。在單鏈表中的結(jié)點(diǎn)中增加一個(gè)指針域指向它的直接前件,這樣的鏈表,就稱為雙向鏈表(一個(gè)結(jié)點(diǎn)中含有兩個(gè)指針),也是線性鏈表。循環(huán)鏈表具有單鏈表的特征,但又不需要增加額外的存貯空間,僅對(duì)表的鏈接方式稍做改變,使得對(duì)表的處理更加方便靈活,屬于線性鏈表。二叉鏈表是二叉樹(shù)的物理實(shí)現(xiàn),是一種存儲(chǔ)結(jié)構(gòu),不屬于線性結(jié)構(gòu)。答案為A選項(xiàng)。2、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。在循環(huán)隊(duì)列中進(jìn)行出隊(duì)、入隊(duì)操作時(shí),頭尾指針仍要加1,朝前移動(dòng)。只不過(guò)當(dāng)頭尾指針指向向量上界時(shí),其加1操作的結(jié)果是指向向量的下界0。由于入隊(duì)時(shí)尾指針向前追趕頭指針,出隊(duì)時(shí)頭指針向前追趕尾指針,故隊(duì)空和隊(duì)滿時(shí),頭尾指針均相等。答案為D選項(xiàng)。3、下列關(guān)于棧的敘述中,正確的是A、棧底元素一定是最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循先進(jìn)后出的原則D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。棧的修改是按后進(jìn)先出的原則進(jìn)行的。因此,棧稱為先進(jìn)后出表,或"后進(jìn)先出"表,所以選擇C。4、在關(guān)系數(shù)據(jù)庫(kù)中,用來(lái)表示實(shí)體間聯(lián)系的是A、屬性B、二維表C、網(wǎng)狀結(jié)構(gòu)D、樹(shù)狀結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系模型實(shí)體間的聯(lián)系采用二維表來(lái)表示,簡(jiǎn)稱表。選項(xiàng)C為網(wǎng)狀模型實(shí)體間的聯(lián)系,選項(xiàng)D為層次模型實(shí)體間的聯(lián)系,選項(xiàng)A屬性刻畫(huà)了實(shí)體5、公司中有多個(gè)部門和多名職員,每個(gè)職員只能屬于一個(gè)部門,一個(gè)部門可以有多名職員。則實(shí)體部門和職員間的聯(lián)系是A、1:1聯(lián)系B、m:1聯(lián)系C、1:m聯(lián)系D、m:n聯(lián)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,主要有一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:m)、多對(duì)一聯(lián)系(m:1)、多對(duì)多聯(lián)系(m:n)。對(duì)于每一個(gè)實(shí)體部門,都有多名職員,則其對(duì)應(yīng)的聯(lián)系為一對(duì)多聯(lián)系(1:m),答案選C。6、有兩個(gè)關(guān)系R,S如下:由關(guān)系R通過(guò)運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為()。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的一部分,是通過(guò)選擇之后的結(jié)果,因此選A。7、數(shù)據(jù)字典(DD)所定義的對(duì)象都包含于A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,對(duì)所有元素都進(jìn)行了命名,所有名字的定義集中起來(lái)就構(gòu)成了數(shù)據(jù)字典。因此選A,而B(niǎo),C,D都不符合。8、軟件需求規(guī)格說(shuō)明書(shū)的作用不包括A、軟件驗(yàn)收的依據(jù)B、用戶與開(kāi)發(fā)人員對(duì)軟件要做什么的共同理解C、軟件設(shè)計(jì)的依據(jù)D、軟件可行性研究的依據(jù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求規(guī)格說(shuō)明書(shū)是需求分析階段的最后成果,是軟件開(kāi)發(fā)的重要文檔之一。軟件需求規(guī)格說(shuō)明書(shū)有以下幾個(gè)方面的作用。①便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流,B正確;②反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù),C正確;③作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù),A正確。9、下面屬于黑盒測(cè)試方法的是A、語(yǔ)句覆蓋B、邏輯覆蓋C、邊界值分析D、路徑覆蓋標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:黑盒測(cè)試不關(guān)心程序內(nèi)部的邏輯,只是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例。在使用黑盒測(cè)試法時(shí),手頭只需要有程序功能說(shuō)明就可以了。黑盒測(cè)試法分等價(jià)類劃分法、邊界值分析法和錯(cuò)誤推測(cè)法,答案為C。而A、B、D均為白盒測(cè)試方法。10、下面不屬于軟件設(shè)計(jì)階段任務(wù)的是A、軟件總體設(shè)計(jì)B、算法設(shè)計(jì)C、制定軟件確認(rèn)測(cè)試計(jì)劃D、數(shù)據(jù)庫(kù)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:從技術(shù)觀點(diǎn)上看,軟件設(shè)計(jì)包括軟

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論