




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C++機試(選擇題)模擬試卷8(共9套)(共324題)國家二級C++機試(選擇題)模擬試卷第1套一、選擇題(本題共37題,每題1.0分,共37分。)1、下列敘述中正確的是()。A、循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)B、循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)C、循環(huán)隊列是非線性結(jié)構(gòu)D、循環(huán)隊列是一種邏輯結(jié)構(gòu)標準答案:B知識點解析:在實際應用中,隊列的順序存儲結(jié)構(gòu)一般采用循環(huán)隊列的形式。2、下列關(guān)于線性鏈表的敘述中,正確的是()。A、各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致B、各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)C、進行插入與刪除時,不需要移動表中的元素D、以上說法均不正確標準答案:C知識點解析:一般來說,在線性表的鏈式存儲結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點的存儲序號是不連續(xù)的,并且各結(jié)點在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致。線性鏈表中數(shù)據(jù)的插入和刪除都不需要移動表中的元素,只需改變結(jié)點的指針域即可。3、在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。A、外模式B、內(nèi)模式C、概念模式D、邏輯模式標準答案:B知識點解析:數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,所以選擇B。4、在滿足實體完整性約束的條件下()。A、一個關(guān)系中應該有一個或多個候選關(guān)鍵字B、一個關(guān)系中只能有一個候選關(guān)鍵字C、一個關(guān)系中必須有多關(guān)鍵字個候選D、一個關(guān)系中可以沒有候選關(guān)鍵字標準答案:A知識點解析:實體完整性約束要求關(guān)系的主鍵中屬性值不能為空值,所以選擇A。5、有三個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、除D、并標準答案:C知識點解析:如果S=T/R,則S稱為T除以R的商。在除運算中S的域由T中那些不出現(xiàn)在R中的域所組成,對于S中的任一有序組,由它與關(guān)系R中每個有序組所構(gòu)成的有序組均出現(xiàn)在關(guān)系T中。所以本題選擇C。6、下面描述中,不屬于軟件危機表現(xiàn)的是()。A、軟件過程不規(guī)范B、軟件開發(fā)生產(chǎn)率低C、軟件質(zhì)量難以控制D、軟件成本不斷提高標準答案:A知識點解析:軟件危機主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進度無法控制;軟件質(zhì)量難以保證;軟件不可維護或維護程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應用需求的增長。所以選擇A。7、下面不屬于需求分析階段任務的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說明書評審D、制定軟件集成測試計劃標準答案:D知識點解析:需求分析階段的工作有:需求獲??;需求分析;編寫需求規(guī)格說明書;需求評審,所以選擇D。8、在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是()。A、程序內(nèi)部邏輯B、程序外部功能C、程序數(shù)據(jù)結(jié)構(gòu)D、程序流程圖標準答案:B知識點解析:黑盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進行測試和驗證,黑盒測試完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只根據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明,所以本題選擇B。9、在軟件設(shè)計中不使用的工具是()。A、系統(tǒng)結(jié)構(gòu)圖B、PAD圖C、數(shù)據(jù)流圖(DFD圖)D、程序流程圖標準答案:C知識點解析:系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示。在需求分析階段,已經(jīng)從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),是在概要設(shè)計階段用到的。PAD圖是在詳細設(shè)計階段用到的。程序流程圖是對程序流程的圖形表示,在詳細設(shè)計過程中用到。數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的而非軟件設(shè)計時用到,所以選擇C。10、下列術(shù)語中,能表明面向?qū)ο笏枷胫饕卣鞯氖茿、封裝性B、靈活性C、安全性D、可靠性標準答案:A知識點解析:C++作為面向?qū)ο蟮恼Z言,具有三種特點封裝性、繼承性、多態(tài)性。所以答案為A。11、有如下程序段:inti=2;intj=3;intmain(){inti=9,j=i;cout<A、23B、93C、99D、39標準答案:C知識點解析:全局變量也稱為外部變量,它是在函數(shù)外部定義的變量。它不屬于哪一個函數(shù),它屬于一個源程序文件。其作用域是整個源程序。在函數(shù)中使用全局變量,一般應作全局變量說明,本題中定義了兩個全局變量i,j,所以主函數(shù)中對全局變量重新賦值輸出后為99,所以答案為C。12、有如下程序段:inti=9;while(inti=0){cout<<’*’;i--;}運行時輸出*的個數(shù)是A、0B、1C、9D、無窮標準答案:A知識點解析:本題考查賦值運算和while循環(huán),i被賦值為為0,所以while中的判斷條件為假,不執(zhí)行循環(huán)體,所以輸出為0個。13、已知有數(shù)組定義chara[3][4];下列表達式中錯誤的是A、a[0]="AAA"B、strcpy(a[1],"BBB")C、a[2][3]=’C’D、a[1][1]=a[2][2]標準答案:A知識點解析:本題考查二維字符數(shù)組,a[0]="AAA"中a[0]表示一個地址,不能將字符串直接賦值給指針,所以A選項錯誤。14、有如下程序段:inti=1;while(1){i++;if(i==100)break;if(i%2==0)cout<<’*’;}執(zhí)行這個程序段輸出字符*的個數(shù)是A、100B、48C、49D、50標準答案:C知識點解析:本題中while循環(huán)中當i為偶數(shù)時輸出*,而i為100時跳出循環(huán),所以輸出49個*,答案為C。15、下列關(guān)于return語句的敘述中,正確的是A、任何函數(shù)的函數(shù)體中至少有一個return語句B、任何函數(shù)的函數(shù)體中最后一條語句必須是return語句C、如果函數(shù)的返回類型為void,則其函數(shù)體中可以沒有return語句D、如果函數(shù)的返回類型為int,則其函數(shù)體中可以沒有return語句標準答案:C知識點解析:本題考查函數(shù)返回類型,函數(shù)如果返回為void,那么函數(shù)體內(nèi)可以沒有return語句,如果函數(shù)有返回值,那么在函數(shù)體中就必須有return語句。16、下列關(guān)于運算符重載的敘述中正確的是A、跟普通函數(shù)一樣,可以為重載的運算符函數(shù)的參數(shù)設(shè)置默認值B、通過重載,可以改變一個運算符原有的優(yōu)先級和操作數(shù)個數(shù)C、只能重載C++中已經(jīng)有的運算符,不能定義新運算符D、C++中已有的運算符都可以重載標準答案:C知識點解析:本題考查運算符重載,重載不能改變運算符運算對象的個數(shù);不能改變運算符的優(yōu)先級別;不能改變運算符的結(jié)合性;重載運算符的函數(shù)不能有默認值,否則就改變了運算符參數(shù)的個數(shù);不能定義新的運算符,某些運算符不能重載。所以答案為C。17、下列關(guān)于內(nèi)聯(lián)函數(shù)的敘述中,正確的是A、內(nèi)聯(lián)函數(shù)就是在一個函數(shù)體內(nèi)定義的函數(shù)B、內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline來定義C、在類體中定義的函數(shù),都是內(nèi)聯(lián)函數(shù)D、內(nèi)聯(lián)函數(shù)不需要return語句標準答案:C知識點解析:在類體中定義的成員函數(shù),C++系統(tǒng)會自動將它們作為內(nèi)聯(lián)函數(shù)處理,而在類外定義的成員函數(shù),系統(tǒng)并不把它們默認為內(nèi)聯(lián)函數(shù),內(nèi)聯(lián)函數(shù)可以用return,以可以不用,所以只有選項C正確。18、下列運算符只能重載為成員函數(shù)的一組是A、+-*/B、=()[]->C、><>=<=D、+=-=*=/=標準答案:B知識點解析:本題考查重載運算符,C++規(guī)定有的運算符(如賦值運算符、下標運算符、函數(shù)調(diào)用運算符)必須定義為類的成員函數(shù)。所以本題選B。19、已知函數(shù)func的原型為intfunc(int,int);下列重載函數(shù)原型中錯誤的是A、charfunc(int,int);B、boolfunc(int,int,bool);C、intfunc(int,char*);D、floatfunc(int,int,int);標準答案:A知識點解析:本題考查函數(shù)重載相關(guān)知識,重載函數(shù)是函數(shù)的一種特殊情況,為方便使用,C++允許在同一范圍中聲明幾個功能類似的同名函數(shù),但是這些同名函數(shù)的形式參數(shù)(指參數(shù)的個數(shù)、類型或者順序)必須不同,也就是說用同一個運算符完成不同的運算功能。A選項的形參都與原函數(shù)相同,所以不能作為重載函數(shù)。20、已知表達式--a中的"--"是作為成員函數(shù)重載的運算符,則與--a等效的運算符函數(shù)調(diào)用形式為A、a.operator--(1)B、operator--(a)C、operator--(a,1)D、a.operator--()標準答案:D知識點解析:本題考查重載自減運算符--,根據(jù)重載的規(guī)則,只有D選項能夠正確調(diào)用重載函數(shù)。21、計算數(shù)列第n項的函數(shù)定義如下:inta(intn){if(n==0)return0;elseif(n==1)return1;elseif(n==2)return2;elsereturna(n-1)+a(n-3);}若執(zhí)行函數(shù)調(diào)用表達式a(4),函數(shù)a被調(diào)用的次數(shù)是A、3B、4C、5D、6標準答案:C知識點解析:本題考查遞歸函數(shù)調(diào)用,執(zhí)行a(4)=a(3)+a(1),而a(3)=a(2)+a(0),總共執(zhí)行函數(shù)為a(4)、a(3)、a(2)、a(0)、a(1)五次,所以答案C正確。22、有如下類定義和變量定義:classA{public:A(){data=0;}~A(){}intGetData()const{returndata;}voidSetData(intn){data=n;}private:intdata;};constAa;Ab;下列函數(shù)調(diào)用中錯誤的是A、a.GetData();B、a.SetData(10);C、b.GetData();D、b.SetData(10);標準答案:B知識點解析:本題考查常對象,如果一個對象被定義為常對象,那么它不能調(diào)用該對象的非const型的成員函數(shù),所以B選項錯誤,a為常對象,調(diào)用了SetData這個非const型的成員函數(shù)。23、在C++中,編譯系統(tǒng)自動為一個類生成默認構(gòu)造函數(shù)的條件是A、該類沒有定義任何有參構(gòu)造函數(shù)B、該類沒有定義任何無參構(gòu)造函數(shù)C、該類沒有定義任何構(gòu)造函數(shù)D、該類沒有定義任何成員函數(shù)標準答案:C知識點解析:本題考查默認構(gòu)造函數(shù),如果用戶定義的類中沒有顯式的定義任何構(gòu)造函數(shù),編譯器就會自動為該類型生成默認構(gòu)造函數(shù),所以C選項正確。24、下列關(guān)于繼承和派生的敘述中,正確的是A、派生類中新定義的成員函數(shù)可以訪問基類的所有成員B、在私有繼承的情況下,派生類中新定義的成員函數(shù)不能訪問基類的保護成員C、基類對象可以賦值給派生類對象D、如果派生類沒有實現(xiàn)基類的一個純虛函數(shù),則該派生類是一個抽象類標準答案:D知識點解析:本題考查繼承與派生,派生類中的成員訪問基類中的成員由派生方式?jīng)Q定,如果派生類私有繼承基類,那么就不能新定義的成員函數(shù)就不能訪問基類的私有成員,所以A選項錯誤。在私有繼承的情況下,派生類中新定義的成員函數(shù)可以訪問基類的保護成員?;悓ο笤谀撤N情況下可以賦值給派生類對象。25、在公有繼承的情況下,允許派生類中新定義的成員函數(shù)直接訪問的基類成員只包括A、公有成員和保護成員B、公有成員C、公有成員、保護成員和私有成員D、保護成員標準答案:A知識點解析:本題考查繼承與派生,派生類中的成員訪問基類中的成員由派生方式?jīng)Q定,本題主要考查公用繼承方式對基類的訪問權(quán)限,根據(jù)公用繼承的特性,A選項正確。26、有如下程序:#includeusingnamespacestd;classBase{public:voidfun(){cout<<"Base::fun"<A、Base.fun();B、Base->fun();C、Base::fun();D、fun();標準答案:C知識點解析:本題考查派生類對基類成員的訪問屬性,派生類公用繼承基類,所以派生類可以直接使用基類的公用成員,題目中輸出了Base::fun,所以可以推斷派生類一定是調(diào)用了基類的fun函數(shù),只有C選項正確調(diào)用了基類的fun函數(shù),所以C選項正確。27、有如下類定義:classCup{public:voidSetPrice(doubleval);private:doubleprice;};若要在類體外給出對成員函數(shù)SetPrice的定義,下列選項中正確的是A、voidCup::SetPrice(doubleval){price=val;}B、voidCup.SetPrice(doubleval){price=val;}C、voidSetPrice(doubleval){Cup::price=val;}D、voidSetPrice(doubleval){Cup.price=val;}標準答案:A知識點解析:本題考查如何在類體外定義成員函數(shù),在類體外定義成員函數(shù)需要使用作用域運算符::,只有A選項符合定義格式,所以A選項正確。28、有如下類定義:classBox{public:Box(inth,intw,intl):width(w),length(l),height(h){}private:intlength,width,height;};Box類中3個數(shù)據(jù)成員的初始化順序為A、length,height,widthB、length,width,heightC、height,width,lenthD、width,length,height標準答案:B知識點解析:本題考查派生類的構(gòu)造函數(shù),C++初始化類成員時,是按照聲明的順序初始化的,而不是按照出現(xiàn)在初始化列表中的順序,所以B選項正確。29、有如下程序:#include#includeusingnamespacestd;classMyBag{public:MyBag(stringbr,stringcr):brand(br),color(cr){++count;}~MyBag(){--count;}staticintGetCount(){returncount;}private:stringbrand,color;staticintcount;};intMyBag::count=0;intmain(){MyBagone("CityLife","Gray"),two("Micky","Red");cout<A、111B、132C、232D、233標準答案:C知識點解析:本題考查構(gòu)造函數(shù)和析構(gòu)函數(shù),以及靜態(tài)數(shù)據(jù)成員,定義one,two時,構(gòu)造函數(shù)被執(zhí)行了兩次,所以count為2,后續(xù)又定義了一個指針對象,所以count加1變?yōu)榱?,當刪除那個指針對象時,執(zhí)行析構(gòu)函數(shù),count減1,所以是2,答案C正確。30、有如下程序:#include#includeusingnamespacestd;classTV{public:TV(ints=41):size(s){cout<<’N’;}TV(constTV&t):size(t.size){cout<<’C’;}~TV(){cout<<’D’;}voidPrint()const{cout<Print();deleteroom3;return0;}運行時的輸出結(jié)果是A、NC54B、NCN54DC、NNN54DDDD、NCN54DDD標準答案:D知識點解析:本題考查構(gòu)造函數(shù)相關(guān)知識,本題中定義一個對象room1,輸出N,定義room2時輸出C,定義room3時輸出N,然后執(zhí)行room3.Print時,輸出54,最后執(zhí)行三個析構(gòu)函數(shù)輸出DDD,所以答案為D。31、有如下類定義:classPoint{public:Point(intxx=0,intyy=0):x(xx),y(yy){}private:intx,y;};classCircle:publicPoint{public:Circle(intr):radius(r){}private:intradius;};派生類Circle中數(shù)據(jù)成員的個數(shù)為A、1B、2C、3D、5標準答案:C知識點解析:本題考查如何定義派生類以及派生類對基類成員的訪問,聲明派生類的一般形式為:class派生類名:[繼承方式]基類名題目中公用繼承,所以也繼承基類的數(shù)據(jù)成員,所以總共有3個數(shù)據(jù)成員,所以C選項正確。32、有如下程序:#includeusingnamespacestd;classPoint{public:Point(intxx=0,intyy=0):x(xx),y(yy){}voidSetX(intxx){x=xx;}voidSetY(intyy){y=yy;}private:intx,y;};classCircle:publicPoint{public:Circle(intr):radius(r){}intGetRadius(){returnradius;}private:voidSetRadius(intr){radius=r;}intradius;};intmain(){Circlec1(5);c1.SetX(1);//①c1.SetY(2);//②c1.SetRadius(10);//③cout<A、①B、②C、③D、④標準答案:C知識點解析:本題考查對象成員的引用,在類外引用對象的數(shù)據(jù)成員時,只能訪問public成員而不能訪問private成員所以C選項錯誤。33、有如下程序:#include#includeusingnamespacestd;classPerson{public:Person(stringn):name(n){}~Person(){cout<<’P’;}private:stringname;};classDate{public:Date(inty=2012,intm=12,intd=21):year(y),month(m),day(d){}~Date(){cout<<’D’;}private:intyear,month,day;};classStudent:publicPerson{public:Student(stringn,inty,intm,intd,charc):birthday(y,m,d),sex(c),Person(n){}~Student(){cout<<’S’;}private:Datebirthday;charsex;};intmain(){Studentstu1("Zhang",1990,10,1,’F’);return0;}運行時的輸出結(jié)果是A、SB、SPC、SPDD、SDP標準答案:D知識點解析:本題考查派生類的析構(gòu)函數(shù),派生類的析構(gòu)函數(shù)執(zhí)行順序為先構(gòu)造的后析構(gòu),后構(gòu)造的先析構(gòu),所以執(zhí)行Studentstu1("Zhang",1990,10,1,’F’);時,依次執(zhí)行person、Date、Student構(gòu)造函數(shù),然后依次執(zhí)行Student、Date、person的析構(gòu)函數(shù),所以輸出為SDP,D選項正確。34、有如下程序:#include#includeusingnamespacestd;classInstrument{public:Instrument(stringt="樂器",stringn="無名"):type(t),name(n){}stringGetType()const{return"樂器";}virtualstringGetName()const{return"無名";}protected:stringtype,name;};classPiano:publicInstrument{public:Piano(stringn,stringt="鋼琴"):Instrument(t,n){}stringGetType()const{return"鋼琴";}stringGetName()const{returnname;}};intmain(){Instrument*pi=newPiano("星空");cout<GetType()<<’-’<GetName();deletepi;return0;}運行時的輸出結(jié)果是A、樂器-星空B、樂器-無名C、鋼琴-星空D、鋼琴-無名標準答案:A知識點解析:本題考查虛函數(shù)的運用,本題中基類Instrument,派生類Piano,其中虛函數(shù)為GetName,當定義Instrument*pi=newPiano("星空")時,調(diào)用派生類的GetType函數(shù),得到type為樂器,name為星空,所以輸出樂器-星空。選項A正確。35、在定義一個類模板時,模板形參表是用一對括號括起來的,所采用的括號是A、()B、[]C、<>D、{}標準答案:C知識點解析:本題考查模板的定義,使用的括號為<>,所以答案為C選項。36、下列關(guān)于C++流的敘述中,正確的是A、與鍵盤、屏幕、打印機和通信端口的交互都可以通過流類來實現(xiàn)B、從流中獲取數(shù)據(jù)的操作稱為插入操作,向流中添加數(shù)據(jù)的操作稱為提取操作C、cin是一個預定義的輸入流類D、輸出流有一個名為open的成員函數(shù),其作用是生成一個新的流對象標準答案:A知識點解析:本題考查輸入輸出流,從流中獲取數(shù)據(jù)的操作稱為提取操作,向流中添加數(shù)據(jù)的操作稱為插入操作,cin是一個標準輸入流類,open并不是輸出流的一個成員函數(shù)。37、若磁盤上已存在某個文本文件,其全路徑文件名為d:\ncre\test.txt,下列語句中不能打開該文件的是A、ifstreamfile("d:\ncre\test.txt");B、ifstreamfile("d:\\ncre\\test.txt");C、ifstreamfile;file.open("d:\\ncre\\test.txt");D、ifstream*pFile=newifstream("d:\\ncre\\test.txt");標準答案:A知識點解析:本題考查文件流的一些操作,根據(jù)文件打開的相關(guān)知識,A選項中不能正確打開該文件。國家二級C++機試(選擇題)模擬試卷第2套一、選擇題(本題共38題,每題1.0分,共38分。)1、在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()。A、邏輯設(shè)計B、需求分析C、詳細設(shè)計D、物理設(shè)計標準答案:B知識點解析:軟件開發(fā)階段包括需求分析、總體設(shè)計、詳細設(shè)計、編碼和測試五個階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。2、對序線性表(23,29,34,55,60,70,78)用二分法查找值為60的元素時,需要比較次數(shù)為()。A、1B、2C、3D、4標準答案:C知識點解析:根據(jù)二分法查找法需要兩次:①首先將60與表中間的元素55進行比較,由于60大于55,所以在線性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,將60與表中間的元素70進行比較,由于60小于70,所以在線性表的前半部分查找。③第三次比較的元素是前半部分的中間元素,即60,這時兩者相等,即查找成功。3、下列描述中,正確的是()。A、線性鏈表是線性表的鏈式存儲結(jié)構(gòu)B、棧與隊列是非線性結(jié)構(gòu)C、雙向鏈表是非線性結(jié)構(gòu)D、只有根結(jié)點的二叉樹是線性結(jié)構(gòu)標準答案:A知識點解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后關(guān)系的復雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:①有且只有一個根結(jié)點;②每個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。4、開發(fā)大型軟件時,產(chǎn)生困難的根本原因是()。A、大型系統(tǒng)的復雜性B、人員知識不足C、客觀世界千變?nèi)f化D、時間緊、任務重標準答案:A知識點解析:隨著計算機軟件規(guī)模的擴大,軟件本身的復雜性不斷增加,研制周期顯著變長,正確性難以保證,軟件開發(fā)費用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了人們難以控制軟件發(fā)展的局面,即所謂的“軟件危機”。5、兩個或兩個以上的模塊之間關(guān)聯(lián)的緊密程度稱為()。A、耦合度B、內(nèi)聚度C、復雜度D、連接度標準答案:A知識點解析:耦合度是模塊間互相連接的緊密程度的度量;內(nèi)聚度是一個模塊內(nèi)部各個元素問彼此結(jié)合的緊密程度的度量。6、下列關(guān)于線性表的敘述中,不正確的是()。A、線性表可以是空表B、線性表是一種線性結(jié)構(gòu)C、線性表的所有結(jié)點有且僅有一個前件和后件D、線性表是由n個元素組成的一個有限序列標準答案:C知識點解析:線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C)是錯誤的。7、以下描述中,不是線性表順序存儲結(jié)構(gòu)特征的是()。A、可隨機訪問B、需要連續(xù)的存儲空間C、不便于插入和刪除D、邏輯相鄰的數(shù)據(jù)物理位置上不相鄰標準答案:D知識點解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動隱含在物理位置的相鄰元素之中,因此不需要另外開辟空間來保存元素之間的關(guān)系。8、在三級模式之間引入兩層映像,其主要功能之一是()。A、使數(shù)據(jù)與程序具有較高的獨立性B、使系統(tǒng)具有較高的通道能力C、保持數(shù)據(jù)與程序的一致性D、提高存儲空間的利用率標準答案:A知識點解析:數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨立性和物理獨立性。9、下列方法中,屬于白盒法設(shè)計測試用例的方法的是()。A、錯誤推測B、因果圖C、基本路徑測試D、邊界值分析標準答案:C知識點解析:白盒測試方法也稱為結(jié)構(gòu)測試或邏輯測試,主要方法有邏輯覆蓋測試、基本路徑測試等。10、關(guān)于虛函數(shù),以下說法正確的是()。A、若在重定義虛函數(shù)時使用了virtual,則該重定義函數(shù)還是虛函數(shù)B、虛函數(shù)不能聲明為友元C、子類必須重定義父類的虛函數(shù)D、虛函數(shù)不能是static的標準答案:D知識點解析:在C++中,虛函數(shù)可以是友元函數(shù),但不能是靜態(tài)成員。虛函數(shù)的重定義函數(shù),無論是否使用virtual關(guān)鍵字,仍然是虛函數(shù)。所以答案選擇D)。11、下列關(guān)于純虛函數(shù)與抽象類的描述中,錯誤的是()。A、純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實現(xiàn)B、抽象類是指具有純虛函數(shù)的類C、一個基類中說明具有純虛函數(shù),該基類的派生類一定不再是抽象類D、抽象類只能作為基類來使用,其純虛函數(shù)的實現(xiàn)由派生類給出標準答案:C知識點解析:純虛函數(shù)是在聲明虛函數(shù)時被“初始化”為0的虛函數(shù)。不定義對象而只作為一種基本類型用作繼承的類,稱為抽象類。凡是包含純虛函數(shù)的類都是抽象類。抽象類的作用是作為一個類族的共同基類。12、將x+y*z中的“+”用成員函數(shù)重載,“*”用友元函數(shù)重載應寫為()。A、operator+(operator*(y,z))B、x.operator+(operator*(y,z))C、x.operator+(x*(y,z))D、x+(operator*(y,z))標準答案:B知識點解析:在定義了重載運算符后的函數(shù)后,函數(shù)operator+重載了運算符“+”。如果在類以外的其他地方定義了一個函數(shù),在類體中用friend對該函數(shù)進行聲明,此函數(shù)就稱為本類的友員函數(shù)?!?”用友元函數(shù)重載就是運算符函數(shù)不作為成員函數(shù),而把它放在類外,“*”被改寫為“operator*”?!?”為成員函數(shù)重載,x.operator}。所以x+y*z被改寫為“x.operator+(operator*(y,z))”。13、以下程序的執(zhí)行結(jié)果是()。#include#includevoidfun(intn){if(n!=0){fun(n一1);for(inti=l;i<=n;i++)cout<A、012012B、112123C、122333D、123標準答案:B知識點解析:首先由程序中的主函數(shù)main入手,調(diào)用fun函數(shù),參數(shù)為3。fun(n)函數(shù)在其內(nèi)部,當n不等于0時,遞歸調(diào)用fun(n-1)。當參數(shù)為3時,fun(3)調(diào)用fun(2)…,然后利用for。循環(huán)輸出i值,當n=1時,只輸出1,輸出回車后,就跳入fun(2),輸出1,2,最后輸出是1,2,3。14、有以下程序,在橫線應添加()。#includeusingnamespacestd;classTestClass{public:TestClass(intn){number=n;)//拷貝構(gòu)造函數(shù)-TestClass(){}private:intnumber;};TestClassfun(TestClassp){TestClassA、TestClass(TestClass&other){number=other.number;}B、TestClass(TestClassother){number=other.number;}C、TestClass(TestClass&other){number;}D、TestClassr&other){number=other.number;}標準答案:A知識點解析:拷貝構(gòu)造函數(shù)也是構(gòu)造函數(shù),但它只有一個參數(shù),這個參數(shù)是本類的對象,即other,所以賦值操作將本類的參數(shù)other.number賦值給number;而且采用對象的引用的形式,也就是&other。15、執(zhí)行完下列代碼段之后:boolx=true,y=false,z=false;x=x&&yllz;y=x‖y&&z;z=!(x!=y)‖(y=z);則x=false,y=false,z=()。A、trueB、falseC、不確定D、異常標準答案:A知識點解析:其中“x:x&&yllz;”語句計算后x=false,“’y=xfIy&&z;”語句計算后y=false。那么“z=!(x!=y)‖(y=z);”語句計算后“z=!(ture)llli"ue”,所以答案為:true。16、將以下程序?qū)懗扇窟\算表達式是()。if(xA、min=(x>y)?x:yB、min=(x<y)?x:yC、min=(x<y)x:yD、min=(x<y)?x,y標準答案:B知識點解析:題目給出的程序是求x,y中的小值。即如果x小于y,那么min=x,否則min=y。條件運算符為“?:”,(x17、定義如下枚舉類型:enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2};,則下列語句正確的是()。A、表達式WednesdawFriday的值是trueB、Dayday;day=3C、Dayday;day=Monday+3D、Dayday;day=Tuesday+10標準答案:A知識點解析:enum<枚舉類型名>{<枚舉元素表>}:其中:關(guān)鍵詞enum表示定義的是枚舉類型,枚舉類型名由標識符組成,而枚舉元素表由枚舉元素或枚舉常量組成。其中enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2}的值由0開始,即0,1,2,3。D中的本題中的枚舉類型中的數(shù)據(jù)值Wednesday為2,而Fridav的值賦值為2,所以判斷Wednesday等于Friday的表達式值為真,即true。即選擇A)。18、函數(shù)swap(a,n)可完成對a數(shù)組從第1個元素到第n個元素兩兩交換。其中b[0]=1;b[1]=2;swap(b,2)。在運行調(diào)用函數(shù)中的語句后,b[0]和b[1]的值分別為()。A、1,1B、1,2C、2,2D、2,l標準答案:D知識點解析:如果函數(shù)實參是數(shù)組名,形參也應為數(shù)組名,函數(shù)swap中形參進行了交換,實際上也是實參進行了交換。而且數(shù)組名代表數(shù)組首元素的地址,并不代表數(shù)組的全部元素。所以,swap(b,2)是數(shù)組b第一個元素與第二個元素進行交換,即b[0]與b[1],根據(jù)題干,知道答案為2,1。19、下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為()。for(inti(0)j(10);i=j=4;i++j--)A、0B、1C、4D、無限標準答案:D知識點解析:循環(huán)條件i=i=4:是個賦值語句,使得i,i的值非0,所以是死循環(huán)。20、下述關(guān)于開關(guān)語句的描述中,正確的是()。A、開關(guān)語句中default子句可以沒有,也可以有一個B、開關(guān)語句中每個語句序列中必須有break語句C、開關(guān)語句中default子句只能放在最后D、開關(guān)語句中case子句后面的表達式可以是整型表達式標準答案:A知識點解析:在switch語句中default的位置不是固定在最后的位置,同時default也是可以省略。21、下列存儲類標識符中,可見性與存在性不一致的是()。A、外部類B、自動類C、內(nèi)部靜態(tài)類D、寄存器類標準答案:C知識點解析:可見性足函數(shù)內(nèi)部,存在整個程序中,第二次調(diào)用值不變。22、下述靜態(tài)數(shù)據(jù)成員的特征中,錯誤的是()。A、說明靜態(tài)數(shù)據(jù)成員時前面要加修飾符staticB、靜態(tài)數(shù)據(jù)成員要在類體外進行初始化C、引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運算符D、靜態(tài)數(shù)據(jù)成員不是所有對象所共用的標準答案:D知識點解析:靜態(tài)數(shù)據(jù)成員是在類裝載的時候就分配子內(nèi)存空間,而類的成員變量是作牛成對象時分配內(nèi)存空間。所以只要類裝載了,就可以用類名訪問靜態(tài)數(shù)據(jù)成員。事實上,該類的所有對象都只保存類靜態(tài)數(shù)據(jù)成員的引用,它們都指向同一塊內(nèi)存區(qū)域。23、)以下程序的執(zhí)行結(jié)果是()。#includeinta[8]={1,2,3,4,5,6,7);voidfun(int*pa,intn);voidmain(){intm=8;fun(a,m);cout<A、0B、1C、4D、28標準答案:D知識點解析:voidfun(int木pa,intn)函數(shù)定義的功能就是把數(shù)組的每個元素的值加到元素pa[7]中,也就是數(shù)組的元素之和放在a[7]中存儲,所以結(jié)果28。24、以下程序段是函數(shù)返回a所指數(shù)組中最大的值所在的下標值,橫線處的語句為()。fun(int*a,intn){intij=0,k;k=j;for(i=j;ia[k])——;retum(k);}A、k=iB、k=jC、i=jD、i=n標準答案:A知識點解析:函數(shù)fun中首先定義整型變量k用來存放返回最大值的下標,并將其首先指向第一個元素,即k=j。然后在for循環(huán)中依次將當前元素a[i]與標識為最大值的元素進行比較,如果當前元素大于這個標識元素,那么將最大值標識為當前元素,即k=i。25、在C++程序中,如果要求通過函數(shù)來實現(xiàn)一種簡單的功能,并且要求盡可能加快程序執(zhí)行速度,則應該選用()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸調(diào)用D、嵌套調(diào)用標準答案:A知識點解析:此題考查的是內(nèi)聯(lián)函數(shù)的相關(guān)知識點。C++引入內(nèi)聯(lián)函數(shù)是用它來代替C語言中的預處理宏函數(shù),內(nèi)聯(lián)函數(shù)在調(diào)用時,是將表達式用內(nèi)聯(lián)函數(shù)體來替換,這樣會加快程序的執(zhí)行速度。26、有如下類聲明:classMyBASE{intk:public:voidset(intn){k=n;}intgetoconst{returnk;}};classMyDERIVED:protectedMyBASE{protected:intj;public:voidset(intm,intn){MyBASE::set(m);j=n;}intgetoA、4B、3C、2D、1標準答案:B知識點解析:因為在保護繼承的情況下,基類中的公有成員voidset(intn)和intget()const在派生類中是保護成員,再加上派生類自身的保護成員j,一其是二三個保護成員。27、下列關(guān)于繼承的描述中,錯誤的是()。A、析構(gòu)函數(shù)不能被繼承B、派生類是基類的組合C、派生類的成員除了它自己的成員外,還包含了它的基類的成員D、派生類中繼承的基類成員的訪問權(quán)限到派生類保持不變標準答案:D知識點解析:派生類中繼承的基類成員的訪問權(quán)限到派生類會發(fā)生變化,例如:私有繼承時,派生類不能訪問基類的成員,所以選項D)錯誤,其他選項均正確。28、類的析構(gòu)函數(shù)的作用是()。A、一般成員函數(shù)B、類的初始化C、對象的初始化D、釋放由對象所占用的資源標準答案:D知識點解析:類的在撤銷塒象時,系統(tǒng)會自動調(diào)用類的析構(gòu)函數(shù),析構(gòu)函數(shù)用來釋放由對象所占用的資源。29、如果表達式y(tǒng)*cx++中,“+”是作為成員函數(shù)重載的運算符,“++”是作為友元函數(shù)重載的運算符,采用運算符函數(shù)調(diào)用格式,該表達式還可表示為()。A、x.operator++(0).operator*(y)B、operator*(x.operator++(0),y)C、y.operator*(operator++(x,0))D、operator*(operator++(x,0),y)標準答案:C知識點解析:運算符函數(shù)有兩種調(diào)用形式,第一種是像一般函數(shù)那樣用函數(shù)名調(diào)用,即y.operator*(z)或者operator*(y,z);另一種是通過運算符構(gòu)成表達式,即y*z。因為“++”運算符既可以作為前綴運算符,又可以作為后綴運算符,所以重載這個運算符時,重載后綴“++”時必須多一個虛擬參數(shù):int。30、有如下程序:#includeusingnamespacestd;classXX{protected:intk:public:XX(intn=5):k(n){};~XX(){cout<<“XX”:}virtualvoidfoconst=0;};inlinevoidXX::fOconst{cout<A、28XXB、28YYXXC、33XXD、.33XXYY標準答案:A知識點解析:類YY公有派生于類XX,派生類對象可以替代基類對象向基類對象的引用進行賦值初始化,XX&p=*newYY語句定義了XX對象p引用,并用YY對象初始化,p并不是YY對象的別名,是XX基類對象的別名,故先調(diào)用基類XX的構(gòu)造函數(shù)將k初始化為5,p.f()首先輸出k一3即2,然后調(diào)用XX::f()輸出k+3即8,delete&p刪除p,調(diào)用XX的析構(gòu)函數(shù)輸出“XX”。31、有如下函數(shù)模板:templateTcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast(i);D、cast(i);標準答案:D知識點解析:選項D)是將double類型的數(shù)據(jù)轉(zhuǎn)化成int類型的數(shù)據(jù),正確。32、閱讀下面的程序:#includevoidmain(){intx;cin>>x;if(x++>5)cout<A、4,6B、3,6C、4,7D、5,7標準答案:D知識點解析:此題首先讀入數(shù)值4賦給變量x,因為x++>5不成立,因為“++”后綴,之后x的值變?yōu)?,執(zhí)行語句cout<5成立,所以執(zhí)行語句cout<33、按照標識符的要求,下列選項中,()符號不能組成標識符。A、連接符B、下劃線C、大小寫字母D、數(shù)字字符標準答案:A知識點解析:此題考查的是標識符。標識符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個字符必須是字母或下劃線,中間不能有空格;標識符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個字符;標識符中的大小寫字母是不同的;定義標識符時不能采用系統(tǒng)的保留字。34、已知枚舉類型定義語句為:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};則下列敘述中錯誤的是()。A、枚舉常量NAME的值為1B、枚舉常量NUMBER的值為1C、枚舉常量MINUS的值為6D、枚舉常量PRINT的值為10標準答案:A知識點解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語法形式為:enum類型名{枚舉值表}。需注意的是:當n個枚舉值全部未賦常量值時,它們自左至右分別與整數(shù)0、1、2、3…n一1對應;若第i個枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對應,直到下一個賦了值的枚舉值或結(jié)束。枚舉常量NAME的值為0。35、類MyClass的定義如下:classMyClass{public:MyClass(){value=0;)SetVariable(inti){value=i;}private:intvalue;};則對下列語句序列正確的描述是()。MyClass*P,my;p=&my;A、語句p=&my;是把對象my賦值給指針變量PB、語句MyClass*p,my;會調(diào)用兩次類MyClass的構(gòu)造函數(shù)C、對語句*P.SetVariable(5)的調(diào)用是正確的D、語句p->SeWariable(5)與語句my.SetVariable(5)等價標準答案:D知識點解析:選項A),語句p=&my;是把對象my的地址值賦值給指針變量p;選項B),語句MyClass*p,my;,由于p只是一個指向?qū)ο蟮闹羔?,因此定義指針p不調(diào)用構(gòu)造函數(shù),所以此語句只調(diào)用一次構(gòu)造函數(shù);對成員函數(shù)的引用可以通過兩種形式:指針.>成員函數(shù)(形參表)或者對象名,成語函數(shù)名(形參表),故選項C)錯誤,選項D)正確。36、下列關(guān)于虛函數(shù)的描述中,正確的是()。A、虛函數(shù)是一個static類型的成員函數(shù)B、虛函數(shù)是一個非成員函數(shù)C、基類中采用virtual說明一個虛函數(shù)后,派生類中定義相同原型的函數(shù)時可不必加virtual說明D、派生類中的虛函數(shù)與基類中相同原型的虛函數(shù)具有不同的參數(shù)個數(shù)或類型標準答案:C知識點解析:此題考查虛函數(shù)的概念。在成員函數(shù)聲明的前面加上virtual修飾,即把該函數(shù)聲明為虛函數(shù)。虛函數(shù)只能是類中的一個成員函數(shù),但不能是靜態(tài)成員函數(shù),所以選項A)和B)錯誤;在派生類中重新定義虛函數(shù)時必須有相同的函數(shù)類型,包括函數(shù)的返回類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型的順序必須相同。故選項D)錯誤。37、有如下程序:#includevoidfun(int&x,int”{illtt=:x;x=y;y=t;)intmain(){inta[2]={23,42);fun(a[1],a[0]);std::cout<A、42,42B、23,23C、23,42D、42,23標準答案:B知識點解析:此題考查的是函數(shù)的調(diào)用以及參數(shù)值的傳遞。函數(shù)fun中的第一個參數(shù)是引用傳值方式,是雙向的;第二個參數(shù)是按值傳遞,是單向的。38、有如下程序:#includeusingnamespacestd;classA{public:staticinta:voidinit(){a=1;)A(inta=2){init();卅;)};iIltA::a=0:Aobj;intmain(){cout<A、0B、1C、2D、3標準答案:B知識點解析:此題實際考查的是變量作用域的屏蔽效應。在C++中,當標識符的作用域發(fā)生重疊時,在一個函數(shù)中聲明的標識符可以屏蔽函數(shù)外聲明的標識符或全局標識符。聲明類A的全局對象時,構(gòu)造函數(shù)首先調(diào)用int函數(shù),但由于靜態(tài)成員變量a被構(gòu)造函數(shù)內(nèi)部的形參a所屏蔽所以a++改變的是形參a的值,對靜態(tài)成員變量a沒有影響。國家二級C++機試(選擇題)模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA標準答案:B知識點解析:棧是先進后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧,所以選擇B。2、下列敘述中正確的是()。A、循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結(jié)構(gòu)B、在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況C、在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況D、循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定標準答案:D知識點解析:循環(huán)隊列有隊頭和隊尾兩個指針,但是循環(huán)隊列仍是線性結(jié)構(gòu)的,所以A)錯誤;在循環(huán)隊列中只需要隊頭指針與隊尾兩個指針來共同反映隊列中元素的動態(tài)變化情況,所以B)與C)錯誤。3、在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標準答案:C知識點解析:當有序線性表為順序存儲時才能用二分法查找??梢宰C明的是對于長度為n的有序線性表,在最壞情況下,二分法查找只需要比較log2n次,而順序查找需要比較n次。4、下列敘述中正確的是()。A、順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的B、順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu)C、順序存儲結(jié)構(gòu)能存儲有序表,鏈式存儲結(jié)構(gòu)不能存儲有序表D、鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間標準答案:A知識點解析:鏈式存儲結(jié)構(gòu)既可以針對線性結(jié)構(gòu)也可以針對非線性結(jié)構(gòu),所以B)與C)錯誤。鏈式存儲結(jié)構(gòu)中每個結(jié)點都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲空間,所以D)錯誤。5、數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。A、控制流B、事件驅(qū)動C、模塊調(diào)用D、數(shù)據(jù)流標準答案:D知識點解析:數(shù)據(jù)流圖中帶箭頭的線段表示的是數(shù)據(jù)流,即沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名。6、在軟件開發(fā)中,需求分析階段可以使用的工具是()。A、N-S圖B、DFD圖C、PAD圖D、程序流程圖標準答案:B知識點解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖DFD圖,數(shù)據(jù)字典DD,判定樹與判定表,所以選擇B。7、在面向?qū)ο蠓椒ㄖ?,不屬?對象"基本特點的是()。A、一致性B、分類性C、多態(tài)性D、標識唯一性標準答案:A知識點解析:對象有如下一些基本特點:標識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性好。所以選擇A。8、一間宿舍可住多個學生,則實體宿舍和學生之間的聯(lián)系是()。A、一對一B、一對多C、多對一D、多對多標準答案:B知識點解析:因為一間宿舍可以住多個學生即多個學生住在一個宿舍中,但一個學生只能住一間宿舍,所以實體宿舍和學生之間是一對多的關(guān)系。9、在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫系統(tǒng)階段D、三個階段相同標準答案:C知識點解析:數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中最后一個階段結(jié)構(gòu)簡單,使用方便邏輯性強物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫領(lǐng)域的主導地位,所以選擇C。10、有三個關(guān)系R、S和T如下:由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為()。A、笛卡爾積B、交C、并D、自然連接標準答案:D知識點解析:自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復的屬性列去掉,所以根據(jù)T關(guān)系中的有序組可知R與S進行的是自然連接操作。11、下列語句中,錯誤的是()。A、constintbuffer=256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;標準答案:D知識點解析:const是一個C++關(guān)鍵字,用于限定不允許改變的變量。選項B是指向常量的指針,定義時可以不初始化;選項D是指針常量,定義時必須初始化。故答案為D。12、if語句的語法格式可描述為:格式1:if(<條件>)<語句>或格式2:if(<條件>)<語句1>else<語句2>關(guān)于上面的語法格式,下列表述中錯誤的是()。A、<條件>部分可以是一個if語句,例如if(if(a==0)…)…B、<語句>部分可以是一個if語句,例如if(…)if(…)…C、如果在<條件>前加上邏輯非運算符!并交換<語句1>和<語句2>的位置,語句功能不變D、<語句>部分可以是一個循環(huán)語句,例如if(…)while(…)…標準答案:A知識點解析:本題考查if語句,if語句的條件部分不能嵌套if語句,所以A選項錯誤;B選項就是if語句嵌套;C選項其實就是將判斷條件顛倒,然后執(zhí)行語句也顛倒,所以效果一樣;D選項也正確。13、有如下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達式是()。A、*p+9B、*(p+8)C、*p+=9D、p+8標準答案:B知識點解析:本題考查指向數(shù)組的指針,本題中指針變量p指向數(shù)組a,那么*p的值就是1,即表示數(shù)組的第一個元素,那么數(shù)值為9的表達式就是將指針向后移動8個地址,即p+8指向的是數(shù)組元素值為9,所以數(shù)值為9的表達式是*(p+8)。14、有如下程序段:inti=0,j=1;int&r=i;//①r=j;//②int*p=&i;//③*p=&r;//④其中會產(chǎn)生編譯錯誤的語句是()。A、④B、③C、②D、①標準答案:A知識點解析:本題考查指針和引用。①為引用,使用正確;④中&r表示一個地址,而*p已經(jīng)是一個值了,不能將一個指針賦值給一個值,所以編譯錯誤。15、下列字符串中,不可以用做C++標識符的是()。A、y_2006B、_TEST_HC、ReturnD、switch標準答案:D知識點解析:本題考查C++標識符的命名規(guī)則,其規(guī)則有如下幾點:①所有標識符必須由字母、數(shù)字或下畫線組成,且必須由字母或下畫線開頭;②所有標識符不能使用C++已有的關(guān)鍵字;③大、小寫字母表示不同意義,即代表不同的標識符。選項C中雖然return是關(guān)鍵字,但因首字母大、小寫不同,也可用于標識符,但不建議使用。故答案為D。16、為了取代C中帶參數(shù)的宏,在C++中使用()。A、重載函數(shù)B、內(nèi)聯(lián)函數(shù)C、遞歸函數(shù)D、友元函數(shù)標準答案:B知識點解析:一般函數(shù)進行調(diào)用時,要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時,是將調(diào)用表達式用內(nèi)聯(lián)函數(shù)體來替換,即類似于宏。17、通過運算符重載,可以改變運算符原有的()。A、操作數(shù)類型B、操作數(shù)個數(shù)C、優(yōu)先級D、結(jié)合性標準答案:A知識點解析:重載運算符的規(guī)則如下:①C++不允許用戶自己定義新的運算符,只能對已有的C++運算符進行重載;②C++不能重載的運算符只有5個;③重載不能改變運算符運算對象的個數(shù);④重載不能改變運算符的優(yōu)先級和結(jié)合性;⑤重載運算符的函數(shù)不能有默認的參數(shù);⑥重載的運算符必須和用戶定義的自定義類型的對象一起使用,至少應有一個是類對象,即不允許參數(shù)全部是C++的標準類型。故本題答案為A。18、在函數(shù)中,可以用auto、extern、register和static這四個關(guān)鍵字中的一個來說明變量的存儲類型,如果不說明存儲類型,則默認的存儲類型是()。A、autoB、externC、registerD、static標準答案:A知識點解析:變量的存儲方法分為靜態(tài)存儲和動態(tài)存儲兩大類,包含4種:自動的(auto)、靜態(tài)的(static)、寄存器的(register)、外部的(extern)。變量如果沒有說明存儲類型,那么默認就是auto。19、下列運算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。A、intoperator-(FunNumber);B、FunNumberoperator-();C、FunNumberoperator-(int);D、intoperator-(FunNumber,FunNumber);標準答案:D知識點解析:本題考查運算符重載的一些規(guī)則:①一般情況下,單目運算符最好重載為類的成員函數(shù),雙目運算符則最好重載為類的友元函數(shù);②雙目運算符=、()、[]、->不能重載為類的友元函數(shù);③類型轉(zhuǎn)換函數(shù)只能定義為一個類的成員函數(shù),而不能定義為類的友元函數(shù);④若一個運算符的操作需要修改對象的狀態(tài),選擇重載為成員函數(shù)較好;⑤若運算符所需的操作數(shù)(尤其是第一個操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當運算符函數(shù)是一個成員函數(shù)時,最左邊的操作數(shù)(或者只有最左邊的操作數(shù))必須是運算符類的一個類對象(或者是對該類對象的引用);如果左邊的操作數(shù)必須是一個不同類的對象,或者是一個內(nèi)部類型的對象,該運算符函數(shù)必須作為一個友元函數(shù)來實現(xiàn)。所以答案為D。20、若有下面的函數(shù)調(diào)用:fun(a+b,3,max(n-1,b))則fun的實參個數(shù)是()。A、3B、4C、5D、6標準答案:A知識點解析:本題考查函數(shù)實參個數(shù)的基礎(chǔ)知識,根據(jù)實參的概念,(a+b)、3、max(n-1,b)分別為其中的3個實參。故答案為A。21、關(guān)于運算符重載,下列表述中正確的是()。A、C++已有的任何運算符都可以重載B、運算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型C、在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型D、可以通過運算符重載來創(chuàng)建C++中原來沒有的運算符標準答案:C知識點解析:重載運算符的規(guī)則如下:①C++不允許用戶自己定義新的運算符,只能對已有的C++運算符進行重載;②C++不能重載的運算符只有5個;③重載不能改變運算符運算對象的個數(shù);④重載不能改變運算符的優(yōu)先級和結(jié)合性;⑤重載運算符的函數(shù)不能有默認的參數(shù);⑥重載的運算符必須和用戶定義的自定義類型的對象一起使用,至少應有一個是類對象,即不允許參數(shù)全部是C++的標準類型。故本題答案為C。22、有如下程序:#includeusingnamespacestd;intmain(){voidfunction(doubleval);doubleval;function(val);cout<A、編譯出錯,無法運行B、輸出:3C、輸出:3.0D、輸出一個不確定的數(shù)標準答案:D知識點解析:本題考查函數(shù)調(diào)用及傳值方式傳遞參數(shù),執(zhí)行函數(shù)function時,并沒有將3的值傳回來,而val又沒有初始化,所以會輸出一個不確定的值,D選項正確。23、下列情況中,不會調(diào)用拷貝構(gòu)造函數(shù)的是()。A、用一個對象去初始化同一類的另一個新對象時B、將類的一個對象賦值給該類的另一個對象時C、函數(shù)的形參是類的對象,調(diào)用函數(shù)進行形參和實參結(jié)合時D、函數(shù)的返回值是類的對象,函數(shù)執(zhí)行返回調(diào)用時標準答案:B知識點解析:本題考查復制構(gòu)造函數(shù),在以下3種情況下使用:①程序中需要新建立一個對象,并用另一個對象對它初始化;②函數(shù)的參數(shù)為類的對象;③函數(shù)的返回值是類的對象。其中B選項是由賦值運算符重載實現(xiàn)的。24、以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是()。A、publicB、staticC、protectedD、private標準答案:B知識點解析:類的成員訪問權(quán)限有3種:public(公用)、protected(保護)、private(私有)。25、由于常對象不能被更新,因此()。A、通過常對象只能調(diào)用它的常成員函數(shù)B、通過常對象只能調(diào)用靜態(tài)成員函數(shù)C、常對象的成員都是常成員D、通過常對象可以調(diào)用任何不改變對象值標準答案:A知識點解析:本題考查常對象的基本知識,常對象只能調(diào)用它的常成員函數(shù),而不能調(diào)用非const函數(shù),常對象的成員函數(shù)不一定都是常成員函數(shù),只需保證其數(shù)據(jù)成員是常數(shù)據(jù)成員即可。所以本題選A。26、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個派生類公有繼承其基類,則該派生類對象可以訪問基類的保護成員B、派生類的成員函數(shù)可以訪問基類的所有成員C、基類對象可以賦值給派生類對象D、如果派生類沒有實現(xiàn)基類的一個純虛函數(shù),則該派生類是一個抽象類標準答案:D知識點解析:私有繼承方式為基類的公用成員和保護成員在派生類中成了私有成員,其私有成員仍為基類私有,但派生類對象可以訪問基類的保護成員,所以基類對象不能賦值給派生類對象。抽象類是指含有純虛擬函數(shù)的類,所以選項D正確。27、在公有繼承的情況下,允許派生類直接訪問的基類成員包括()。A、公有成員B、公有成員和保護成員C、公有成員、保護成員和私有成員D、保護成員標準答案:B知識點解析:本題考查公用繼承對基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。所以本題答案為B。28、有如下程序:#includeusingnamespacestd;classBase{public:voidfun(){cout<<"Base::fun"<A、Base.fun();B、Base::fun();C、Base->fun();D、fun();標準答案:B知識點解析:本題考查公用繼承對基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。本題中想要輸出Base::fun,則必須調(diào)用基類的公用成員函數(shù)fun,所以使用Base::fun();來調(diào)用基類的成員函數(shù)fun。29、有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(){cout<<′A′;}MyClass(charc){cout<A、ABXB、ABXBC、AXBD、AXBB標準答案:D知識點解析:構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序為先構(gòu)造的后析構(gòu),后構(gòu)造的先析構(gòu)。所以本題答案為D。30、有如下程序:#includeusingnamespacestd;inti=1;classFun{public:staticinti;intvalue(){returni-1;}intvalue()const{returni+1;}};intFun::i=2;intmain(){inti=3;Funfun1;constFunfun2;return0;}若程序的輸出結(jié)果是:123則程序中下畫線處遺漏的語句是()。A、cout<B、cout<C、cout<D、cout<標準答案:A知識點解析:本題考查構(gòu)造函數(shù)、常成員函數(shù)和靜態(tài)數(shù)據(jù)成員。外部同名的變量賦值,不能改變類的靜態(tài)變量值,所以Fun對象里的i值為2,所以本題答案為A。31、有如下程序:#includeusingnamespacestd;classObj{staticinti;public:Obj(){i++;}~Obj(){i--;}staticintgetVal(){returni;}};intObj::i=0;voidf(){Objob2;cout<getVal();deleteob3;cout<A、232B、231C、222D、221標準答案:D知識點解析:本題考查構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,調(diào)用順序為先構(gòu)造的后析構(gòu),后構(gòu)造的先析構(gòu)。本題中先定義了一個對象ob1,會執(zhí)行構(gòu)造函數(shù),那么i就變?yōu)榱?;再執(zhí)行函數(shù)f后,由于又定義了一個對象ob2,所以再次執(zhí)行構(gòu)造函數(shù),i就變?yōu)榱?,輸出了2。函數(shù)執(zhí)行完后執(zhí)行析構(gòu)函數(shù),i變?yōu)榱?,然后又定義了對象指針,i變?yōu)榱?。釋放ob3后,i變?yōu)榱?,所以答案為D。32、有如下程序:#includeusingnamespacestd;classPair{intm,n;public:Pair(intj,intk):m(j),n(k){}intget(){returnm;}intget()const{returnm+n;}};intmain(){Paira(3,5);constPairb(3,5);cout<A、33B、38C、83D、88標準答案:B知識點解析:本題考查常對象、常成員函數(shù)及構(gòu)造函數(shù)。常對象只能調(diào)用常成員函數(shù),所以本題中,對象a為普通對象,執(zhí)行a.get()后,會執(zhí)行默認構(gòu)造函數(shù),輸出3;對象b為常對象,執(zhí)行b.get()后,會執(zhí)行常構(gòu)造函數(shù),輸出8。33、有如下程序:#includeusingnamespacestd;classBase{protected:Base(){cout<<′A′;}Base(charc){cout<A、BB、BAC、ABD、BB標準答案:C知識點解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個派生類的對象時,先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù);對象釋放時,先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義了一個派生類對象d1,首先執(zhí)行基類的構(gòu)造函數(shù),輸出A;然后執(zhí)行派生類的構(gòu)造函數(shù),輸出B。所以答案為C。34、有如下類定義:classMyBase{intk;public:MyBase(intn=0):k(n){}intvalue()const{returnk;}};classMyDerived:MyBase{intj;public:MyDerived(inti):j(i){}intgetK()const{returnk;}intgetJ()const{returnj;}};編譯時發(fā)現(xiàn)有一處語法錯誤,對這個錯誤最準確的描述是()。A、函數(shù)getK試圖訪問基類的私有成員變量kB、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或privateC、類MyDerived缺少一個無參的構(gòu)造函數(shù)D、類MyDerived的構(gòu)造函數(shù)沒有對基類數(shù)據(jù)成員k進行初始化標準答案:A知識點解析:默認繼承方式為私有繼承,私有繼承將基類的公用成員和保護成員都變?yōu)榱怂接谐蓡T,基類的私有成員依然屬于基類私有,派生類不能訪問基類的私有成員。所以A選項正確。35、有如下程序:#includeusingnamespacestd;classInstrument{public:virtualvoidDisplay()=0;};classPiano:publicInstrument{public:voidDisplay(){/*函數(shù)體略*/}};intmain(){Instruments;Instrument*p=0;//…;return0;}下列敘述中正確的是()。A、語句"Insturment*p=0;"編譯時出錯B、語句"Instruments;"編譯時出錯C、類Piano中的Display函數(shù)不是虛函數(shù)D、類Instrument是一個虛基類標準答案:B知識點解析:本題考查純虛函數(shù)和抽象類,純虛函數(shù)是在聲明虛函數(shù)時被"初始化"為0的函數(shù),包含純虛函數(shù)的類為抽象類,抽象類不能被實例化,所以語句"Instruments;"在編譯時出錯。36、有如下程序:#includeusingnamespacestd;classA{public:virtualvoidfunc1(){cout<<"A1";}voidfunc2(){cout<<"A2";}};classB:publicA{public:voidfunc1(){cout<<"B1";}void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶市六校聯(lián)考2025屆高三二診模擬考試化學試卷含解析
- 供應商有效管理方案
- 上海市理工大學附屬中學2025屆高三第三次測評化學試卷含解析
- 2025屆遼寧省瓦房店市高三壓軸卷化學試卷含解析
- 2025屆廣東珠海二中高考化學倒計時模擬卷含解析
- 2025屆湖南省岳陽市岳陽一中高考臨考沖刺化學試卷含解析
- 2025年江西省中考化學模擬預測卷(3)(含答案)
- 2025屆北京市牛欄山一中高三下第一次測試化學試題含解析
- 資陽市重點中學2025屆高考化學一模試卷含解析
- 江西省贛州市石城中學2025年高考化學五模試卷含解析
- 二氧化碳滅火器課件
- 《中華人民共和國民法典》宣傳手冊課件
- XX化工有限責任公司維保方案
- 基礎(chǔ)會計課件(完整版)
- 品質(zhì)異常處罰細則及獎罰制度
- 二年級下冊心理健康教案-第二十四課 幫爸爸媽媽分擔 媽媽謝謝您|北師大版
- 診所備案申請表格(衛(wèi)健委備案)
- 人教PEP版五年級英語下冊-《課時學練測》全冊含答案
- 鍋爐水冷壁安裝作業(yè)指導書
- 《雷鋒叔叔_你在哪里》說課稿
- 贊美詩歌400首全集
評論
0/150
提交評論