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

下載本文檔

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

文檔簡介

國家二級(jí)C++機(jī)試(選擇題)模擬試卷32(共9套)(共253題)國家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共23題,每題1.0分,共23分。)1、下面敘述中正確的是()。A、線性表是線性結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、線性鏈表是非線性結(jié)構(gòu)D、二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表是最簡單的、最常用的一種線性結(jié)構(gòu)。所謂線性鏈表指的是采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的線性表。棧和隊(duì)列其實(shí)是一種特殊的線性表。樹是—種簡單的非線性結(jié)構(gòu),二叉樹是樹的一種。2、下列關(guān)于線性鏈表的敘述中,正確的是A、各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致B、各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)C、進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素D、以上都不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。3、有如下程序:#includeusingnamespacestd;intmain(){intef1=0,f2=1;for(inti=3;i<=6;i++){f=f1+f2;f1=f2;t2=f}cout<A、2B、3C、5D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中for循環(huán)語句執(zhí)行4次,第一次循環(huán)結(jié)束時(shí),變量f的值等于1,f1的值等于1,f2的值等于1;第二次循環(huán)結(jié)束時(shí),變量f的值等于2,n的值等于1,f2的值等于2;第三次循環(huán)結(jié)束時(shí),變量f的值等于3,f1的值等于2,f2的值等于3;第四次循環(huán)結(jié)束時(shí),變量f的值等于5,f1的值等于3,f2的值等于5;結(jié)束循環(huán)。4、在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。A、32B、31C、64D、63標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)。也就是在滿二叉樹中,每一層上的結(jié)點(diǎn)數(shù)都是最大結(jié)點(diǎn)數(shù),即在滿二叉樹的第k層上有2k一1個(gè)結(jié)點(diǎn),且深度為m的滿二叉樹有2m一1個(gè)結(jié)點(diǎn)。對于深度為7的滿二叉樹,葉子結(jié)點(diǎn)所在的是第7層,一共有27一1=64個(gè)葉子結(jié)點(diǎn)。全部結(jié)點(diǎn)共27一1=127個(gè)。5、有如下程序:#includeusingnamespacestd;inti=1;classFun{public:staticinti;intvalue(){retumi一1;}intvalue()const{retumi+1;}};intFun::i=2;intmain(){inti=3;Funfunl;constFunfun2;retum0;}若程序的輸出結(jié)果是:123則程序中下畫線處遺漏的語句是()。A、cout<B、cout<C、cout<D、cout<標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)、常成員函數(shù)和靜態(tài)數(shù)據(jù)成員。外部同名的變量賦值,不能改變類的靜態(tài)變量值,所以Fun對象里的i值為2,所以本題答案為A。6、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括A、多元性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態(tài)性。7、對于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)解析:語句“int*p[5]”表示一個(gè)數(shù)組p,它的大小是5,里面存放的數(shù)據(jù)類型是int*,也就是整型指針。稱之為指針數(shù)組(從右向左解析這個(gè)表示)。8、下列描述中,不屬于面向?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ì)的特征。9、有如下程序:classBase{public:intdata;);classDerivedl:publicBase{};classDerived2:protectedBase{};intmain(){Derivedldl;Derived2d2;d1.data=0:∥①d2.data=0:∥②return0:)下列關(guān)于程序編譯結(jié)果的描述中,正確的是()。A、①②皆無編譯錯(cuò)誤B、①有編澤錯(cuò)誤,②無編譯錯(cuò)誤C、①無編譯錯(cuò)誤,②有編譯錯(cuò)誤D、①②皆有編譯錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:保護(hù)繼承的類DerlVied2不能訪問基類Base中的公共數(shù)據(jù)成員data。10、有如下程序:#includeusingnarnespacestd;classSample{public:Sample(){}~Sample(){cout<<‘*’;}};intmain(){Sampletemp[2],*pTemp[2];return0;}運(yùn)行這個(gè)程序輸出星號(hào)*的個(gè)數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和析構(gòu)函數(shù),題中定義了對象數(shù)組,那么析構(gòu)時(shí)就析構(gòu)兩次,輸出兩個(gè)*。答案為B。11、要利用C++流實(shí)現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是()。A、fstreamB、istreamC、ostreamD、iomanip標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查格式控制相關(guān)知識(shí),屬于基礎(chǔ)知識(shí),需要包含iomanip,所以D選項(xiàng)正確。12、有如下程序:#includeusingnamespacestd;classA{public:staticinta;voidinit(){a=1;}A(inta=2){int();a++;}};intA::a=0:Aobj;intmain(){cout<A、0B、1C、2D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題實(shí)際考查的是變量作用域的屏蔽效應(yīng)。在C++中,當(dāng)標(biāo)識(shí)符的作用域發(fā)生重疊時(shí),在一個(gè)函數(shù)中聲明的標(biāo)識(shí)符可以屏蔽函數(shù)外聲明的標(biāo)識(shí)符或全局標(biāo)識(shí)符。聲明類A的全局對象時(shí),構(gòu)造函數(shù)首先調(diào)用int函數(shù),但由于靜態(tài)成員變量a被構(gòu)造函數(shù)內(nèi)部的形參a所屏蔽所以a++改變的是形參a的值,對靜態(tài)成員變量a沒有影響。13、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是()。A、Fractionoperator+(Fraction,F(xiàn)raction);B、Fractionoperator-(Fraction);C、Fraction&operator=(Fraction&,F(xiàn)raction);D、Fraction&operator+=(Fraction&,F(xiàn)raction);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。C++語言規(guī)定,“=”運(yùn)算符只能作為成員函數(shù)重載。14、下列關(guān)于函數(shù)參數(shù)的敘述中,正確的是()。A、在函數(shù)原型中不必聲明形參類型B、函數(shù)的實(shí)參和形參共享內(nèi)存空間C、函數(shù)形參的生存期與整個(gè)程序的運(yùn)行期相同D、函數(shù)的形參在函數(shù)被調(diào)用時(shí)獲得初始值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)的實(shí)參與形參是兩個(gè)不同的變量,有各自的存儲(chǔ)空間。函數(shù)形參是函數(shù)的局部變量,在函數(shù)調(diào)川時(shí)獲得初始值。15、若已經(jīng)聲明了函數(shù)原型“voidfun(inta,doubleb=0.0);”,則下列重載函數(shù)聲明中正確的是()。A、voidfun(inta=90,doubleb=0.0);B、intfun(inta,doubleB);C、voidfun(doublea,intB);D、boolfun(inta,doubleb=0.0);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)重載的原則就是至少要在參數(shù)個(gè)數(shù)或參數(shù)類型上有所不同,且如果函數(shù)只是函數(shù)類型不同的,而其他完全相同,也不能作為重載函數(shù)來使用。16、下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。A、intoperator-(FunNumber);B、FunNumberoperator-();C、FunNumberoperator-(int);D、intoperator一(FunNumber,F(xiàn)unNumber);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符“一”的重載?!埃边\(yùn)算符有一元和二元兩種,且均可以重載為成員函數(shù)和非成員函數(shù)。運(yùn)算符重載為成員函數(shù)時(shí),形參個(gè)數(shù)一般為運(yùn)算符元數(shù)減1;重載為非成員函數(shù)時(shí),形參個(gè)數(shù)一般和運(yùn)算符元數(shù)相等。所以,“-”運(yùn)算符重載為成員函數(shù)時(shí),參數(shù)可以是0個(gè)或1個(gè);而重載為非成員函數(shù)時(shí),參數(shù)個(gè)數(shù)可以是1個(gè)或2個(gè)。所以D選項(xiàng),肯定是重載為非成員函數(shù)。17、有如下程序:#include<ioStream>usingnamespacestd;classSample{public:Sample(){}~Sample(){cout<<’*’;}};intmain(){Sampletemp[2],*pTemp[2];return0;}執(zhí)行這個(gè)程序輸出星號(hào)(*)的個(gè)數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在main函數(shù)中,定義了Sampletemp[2]的一個(gè)包含兩個(gè)對象的數(shù)組,還定義了一個(gè)*pTemp[2],是包含兩個(gè)指向類對象的指針的數(shù)組,故定義的指針當(dāng)main函數(shù)結(jié)束后是不會(huì)調(diào)用析構(gòu)函數(shù)的,只有包含兩個(gè)對象的數(shù)組temp[2]會(huì)調(diào)用析構(gòu)函數(shù),因此只輸出兩個(gè)*。18、下列類模板的定義中語法格式錯(cuò)誤的是()。A、templateclassBuffer{/*…*/};B、templateclassBuffer{/*…*/};C、templateclassBuffer{/*…*/};D、templateclassBuffer{/*…*}標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:定義類模板的一般形式是:template<類型名參數(shù)名1,類型名參數(shù)名2,…>class類名(類聲明體};模板的類型參數(shù)由關(guān)鍵字class或關(guān)鍵字typename及其后的標(biāo)識(shí)符構(gòu)成。在模板參數(shù)表中關(guān)鍵字class和typename的意義相同。19、有如下頭文件:intf1();staticintf2();classMA{public:intf3();staticintf4();};在所描述的函數(shù)中,具有隱含的this指針的是()。A、flB、f2C、f3D、f4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是。this指針。this指針是一個(gè)隱含的指針,它隱含于每個(gè)類的非靜態(tài)成員函數(shù)中,它明確地表示出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對象。題目中,只有f3()滿足“類的非靜態(tài)成員函數(shù)”的要求,故應(yīng)選C選項(xiàng)。20、在下列原型所示的C++函數(shù)中,按“傳值”方式傳遞參數(shù)的是()。A、voidf1(intx);B、voidf2(int-x);C、voidf3(constint木x);D、voidf4(int&x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:傳值方式是將實(shí)參復(fù)制到形參中,因此實(shí)參和形參是兩個(gè)不同的變量,有各自的存儲(chǔ)空間,可以把函數(shù)的形參看做是函數(shù)的局部變量。其中BC選項(xiàng)為按低值傳遞D選賢為按引用傳遞。21、已知類IMS中兩個(gè)成員函數(shù)的聲明為“voidlisten()const;”與“voidspeak();”,另有兩個(gè)對象的定義為“IMSobj1;”與“constIMSobj2;”,則下列語句中,產(chǎn)生編譯錯(cuò)誤的是()。A、obj1.listen();B、obj1.speak();C、obj2.listen();D、obj2.speak();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)listen()作為類IMS的常成員函數(shù),一般對象obj1和常對象obj2都可以調(diào)用它,而函數(shù)speak()作為IMS的一般成員函數(shù),則只有一般對象obj1可以調(diào)用,而常對象obj2調(diào)用會(huì)產(chǎn)生編譯錯(cuò)誤。22、有如下程序:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){cout.fill(’*’);cout<<left<<setw(4)<<123<<<’’OK’’<<endl;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、123*OKB、123*OK**C、*123OKD、*123**OK標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查了輸出流的格式控制。cout的fill()是設(shè)置填充字符:left和endl分別是使輸出數(shù)據(jù)左對齊和換行;setw()函數(shù)的作用是設(shè)置輸入輸出的寬度,此設(shè)置效果只對以此輸入或輸出有效。此題中,輸出整數(shù)123時(shí)寬度為4且左對齊,得到“123*”;輸出字符串“OK”時(shí)寬度沒有定義實(shí)際大小輸出,結(jié)果得到OK:故最后得到的輸出結(jié)果是123*K。23、有如下程序:#includeusingnamespacestd;classPair{intm;intn;public:Pair(inti,intj):m(i),n(j){}booloperator>(PairP)const;//須在類體外給出定義};intmain(){Pairp1(3,4),p2(4,3),p3(4,5);cout<<(pl>p2)<<(p2>p1)<<(p2>p3)<<(p3>p2);return0:}運(yùn)算符函數(shù)。perator>的功能是比較兩個(gè)Pair對象的大小,當(dāng)左邊對象大時(shí),返回true,否則返回false。比較規(guī)則是首先比較兩對象的m成員,m大者為大:當(dāng)m相等時(shí)比較n,n大者為大。程序輸出0101,下列對運(yùn)算符重載函數(shù)的正確定義是()。A、boolPair::operator>(Pairp)const{if(m!=p.m)returnm>p.m;returnn>p.n;}B、boolPair::operator>(Pairp){if(m!=p.m)returnm>p.m;returnn>p.n;}C、boolPair::operator>(Pairp)const{if(m>p.m)returntrue;returnn>p.n;}D、boolPair::operator>(Pairp){if(m>p.m)returntrue;returnn>p-n;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:按照比較規(guī)則:首先比較兩對象的m成員,m大者為大:當(dāng)m相等時(shí)比較n,n大者為大。這條規(guī)則的用C++寫出來就是選項(xiàng)A。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共34題,每題1.0分,共34分。)1、下列對隊(duì)列的描述中正確的是()。A、隊(duì)列屬于非線性表B、隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)C、隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D、隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:隊(duì)列(queue)是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表。允許插入的一端稱為隊(duì)尾;允許刪除的一端稱為隊(duì)頭。在隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除;反之,最后插入的元素將最后才能被刪除。因此。隊(duì)列又稱“先進(jìn)先出”或“后進(jìn)后出”的線性表。2、在容量為15的循環(huán)隊(duì)列中,若頭指針front=6,尾指針rear=9,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:循環(huán)隊(duì)列中,rear表示尾指針,front表示頭指針,當(dāng)有元素入隊(duì)時(shí),rear=rea+1,而元素出隊(duì)的時(shí)候,front=front+1,當(dāng)rear值大于front值時(shí),隊(duì)列中的元素個(gè)數(shù)為rear-front,當(dāng)rear的值小于丘front時(shí),列隊(duì)中的元素個(gè)數(shù)為rear-front+m(m表示隊(duì)列的容量)。3、設(shè)樹T的深度為4,其中度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)分別為4,2,1,1。則T中的葉子結(jié)點(diǎn)數(shù)為()。A、8B、7C、6D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:深度為m二叉樹其總結(jié)點(diǎn)數(shù)為2m-1=24-1=15??偨Y(jié)點(diǎn)數(shù)減去度為1,2,3,4的結(jié)點(diǎn)個(gè)數(shù)就是葉子結(jié)點(diǎn)數(shù)。15-4-2-1-1=7。4、若有以下定義,說法錯(cuò)誤的是()。inta=100,*p=&a;A、聲明變量p,其中*表示p是一個(gè)指針變量B、變量P經(jīng)初始化,獲得變量a的地址C、變量p只可以指向一個(gè)整型變量D、變量o的值為100標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:p是一個(gè)指針,用來存儲(chǔ)a變量的地址,而100是存儲(chǔ)在該地址的一個(gè)值用p表示的為*p。5、若有下面的函數(shù)調(diào)用:fun(a+b,3,max(n-1,b))則fun的實(shí)參個(gè)數(shù)是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用。C++中函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)參表),其中實(shí)參表是用逗號(hào)分隔的一系列表達(dá)式。因此,本題中fun()函數(shù)的實(shí)參表由a+b、3和max(n-1,b)組成。6、在面向?qū)ο蠓椒ㄖ校粚儆凇皩ο蟆被咎攸c(diǎn)的是()。A、一致性B、分類性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對象具有如下特征:標(biāo)識(shí)惟一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性。7、下面不屬于軟件工程的3個(gè)要素是()。A、工具B、過程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程的3個(gè)要素是工具、過程和方法。8、下面不屬于需求分析階段任務(wù)的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說明書評審D、制定軟件集成測試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作可分為4個(gè)階段:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審。9、負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是數(shù)據(jù)操縱語言。10、下列選項(xiàng)中,正確的C++標(biāo)識(shí)符是()。A、6groupB、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、結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。A、順序結(jié)構(gòu),分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu)B、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)C、分支結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)D、分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu),循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序設(shè)計(jì)語言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。遵循程序結(jié)構(gòu)化的設(shè)計(jì)原則,按結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序易于理解、使用和維護(hù);可以提高編程工作的效率,降低軟件的開發(fā)成本。12、下列有關(guān)數(shù)據(jù)庫的描述,正確的是()。A、數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫管理系統(tǒng)B、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題C、數(shù)據(jù)庫:是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持D、數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫設(shè)計(jì)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型。數(shù)據(jù)庫技術(shù)的主要目的是有效地管理和存取大量的數(shù)據(jù)資源,包括:提高數(shù)據(jù)的共享性,使多個(gè)用戶能夠同時(shí)訪問數(shù)據(jù)庫中的數(shù)據(jù);減小數(shù)據(jù)的冗余,以提高數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開發(fā)和維護(hù)代價(jià)。13、有如下程序:#includeusingnamespacestd;intmain(){charstr[100],*p;cout<<"Pleaseinputastring:";cin;str;p=str;for(inti=0;*p!=ˊ\0ˊ;p++,i++);cout<<"i"<A、7B、12C、13D、100標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類型為char,因此輸入的數(shù)據(jù)是“從第一個(gè)非空白字符開始到下一個(gè)空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefgabcd,其中abcdefg后有空格。所以輸入后str中的字符串為“abcdefg”:主函數(shù)中接下來for語句的作用是計(jì)算字符串p的長度,故最終輸出字符串“abcdefg”的長度7。14、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯(cuò)誤的是()。A、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)B、如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)C、在建立派生類對象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)D、在銷毀派生類對象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是派生類的構(gòu)造函數(shù)和析構(gòu)蛹數(shù)。在撤銷派生類對象時(shí),析構(gòu)函數(shù)的執(zhí)行過程和構(gòu)造函數(shù)嚴(yán)格相反,即:對派生類新增普通成員進(jìn)行清理:調(diào)用成員對象析構(gòu)函數(shù),調(diào)用基類析構(gòu)函數(shù)對基類進(jìn)行清理。15、有如下語句序列:intx=100,&r=x,count<<x<<’—’<<r<<end1:己知其中變量x的地址為0012FF7C,則執(zhí)行該語句序列的輸出結(jié)果為()。A、100—100B、100—0012FF7CC、0012FF7C—100D、0012FF7C—0012FF7C標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在語句inx=100,&R;中聲明r初始化對x的引用,所以x和&r的值都是100。16、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是()。A、運(yùn)算符函數(shù)的名稱總是以operator為前綴B、運(yùn)算符函數(shù)的參數(shù)可以是對象C、運(yùn)算符函數(shù)只能定義為類的成員函數(shù)D、在表達(dá)式中使用重載的運(yùn)算符相當(dāng)于調(diào)用運(yùn)算符重載函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱為運(yùn)算符函數(shù)。編譯系統(tǒng)能夠依據(jù)使用運(yùn)算符的不同環(huán)境,即參數(shù)(操作數(shù))的數(shù)量或類型的差異,區(qū)分同一運(yùn)算符的不同含義。運(yùn)算符函數(shù)作為非成員函數(shù)時(shí),所有的操作數(shù)必須出現(xiàn)在參數(shù)表中。17、若一個(gè)函數(shù)的原型為“int*Xfun1(intx,int&y,charz);”,則該函數(shù)的返回值類型為()。A、int*B、intC、int&D、char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由“int*Xfun1(intx,int&y,charz);”的定義可知,其返回值為指向int指針的函數(shù)。18、下列關(guān)于C++函數(shù)的敘述中,正確的是()。A、每個(gè)函數(shù)至少要具有一個(gè)參數(shù)B、每個(gè)函數(shù)都必須返回一個(gè)值C、函數(shù)在被調(diào)用之前必須先聲明D、函數(shù)不能自己調(diào)用自己標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)的性質(zhì)。當(dāng)調(diào)用無參函數(shù)時(shí)主函數(shù)并不將數(shù)據(jù)傳送給被調(diào)函數(shù),且可以帶回或不帶回函數(shù)值。函數(shù)的遞歸調(diào)用就是直接或間接的調(diào)用自己。19、下列關(guān)于C++預(yù)定義流對象的敘述中,正確的是()。A、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象B、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類C、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對象D、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cin為istrearn流類的標(biāo)準(zhǔn)輸入對象,標(biāo)準(zhǔn)輸入設(shè)備就是指鍵盤。20、在C++中既可以用于文件輸入又可以用于文件輸出的流類是()。A、fstreamB、ifstreamC、ofstreamD、iostream標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:文件流以磁盤文件以及其他可按文件方式進(jìn)行管理的外部設(shè)備為輸入輸出對象。ifstream是文件輸入流類,ofstream是文件輸出流類,fstream是文件輸入輸出流類,當(dāng)使用cin、cout的預(yù)定義流對象進(jìn)行針對標(biāo)準(zhǔn)設(shè)備的I/O操作,則需要使用iostream文件。21、下列關(guān)于C++函數(shù)的說明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語句必須是return語句C、標(biāo)準(zhǔn)C*要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型D、編譯器會(huì)根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是有關(guān)函數(shù)的概念。內(nèi)聯(lián)函數(shù)是在函數(shù)定義之前加關(guān)鍵字inline來聲明的函數(shù),而不是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù),故選項(xiàng)A錯(cuò)誤;無返回值的函數(shù)在執(zhí)行完最后一條語句后,會(huì)自動(dòng)返回而不必加入return語句,故選項(xiàng)B錯(cuò)誤;如果函數(shù)只是返回值類型不同,而其它完全相同,則不能作為函數(shù)重載來使用,故選項(xiàng)D錯(cuò)誤。22、已知函數(shù)f的原型是voidf(int*a,long&b);,變量v1、v2的定義是:intv1;loongv2;下列調(diào)用語句中正確的是()。A、f(vl,&v2);B、f(v1,v2);C、f(&v1,&v2);D、f(&v1,v2);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用。因?yàn)樽兞康亩x是intv1;longv2,而函數(shù)f()的第一個(gè)參數(shù)是指針,第二個(gè)參數(shù)是引用,所以選項(xiàng)D為正確引用。23、有如下程序:#include<iostream>usingnamespacestd;voidf1(intax,int&y){intz=x;x=y;y=z;}voidf2(intx,inty){intz=x;x=y;y=z;}intmain(){intx=10,y=26;f1(x,y);f2(x,y);cout<<y<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、10B、16C、26D、36標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:子函數(shù)f1中的形參是引用變量,所以執(zhí)行子函數(shù)實(shí)現(xiàn)了變量x,y值的交換,變量x的值等于26,而變量y的值等于10。而子函數(shù)f2中的形參是普通變量,因?yàn)镃++的函數(shù)之間的參數(shù)傳遞是傳值,所以執(zhí)行函數(shù)f2不能實(shí)現(xiàn)變量x,y值的交換。24、下列有關(guān)類繼承的敘述中,錯(cuò)誤的是()。A、繼承可以實(shí)現(xiàn)軟件復(fù)用B、虛基類可以解決由多繼承產(chǎn)生的二義性問題C、派生類構(gòu)造函數(shù)要負(fù)責(zé)調(diào)用基類的構(gòu)造函數(shù)D、派生類沒有繼承基類的私有成員.標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類繼承。派生類繼承了基類的(全部數(shù)據(jù)成員,私有成員),只是基類的私有成員在派生類中是隱藏的,只能在基類內(nèi)部訪問,故選項(xiàng)D錯(cuò)誤。25、有如下類定義:classSample{public;Sample(intx):ref(x){}//①private:Sample():ref(0){}//②staticintval=5;//③constintref;//④};上述程序段中,錯(cuò)誤的語句是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類的數(shù)據(jù)成員。26、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assBase{public:virtualvoidfunctionl(){cout<<’0’;}voidfunction2(){cout<<’1’;}};c1assDerived:publicBase{public:voidfunctionl(){cout<<’2’;}voidfunction2(){cout<<’3’;}};intmain(){Base*p=newDerived();p—>functionl();p—>function2();return();};運(yùn)行時(shí)的輸出結(jié)果是()。A、01B、21C、03D、23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)functionl()在基類Base中定義為虛成員函數(shù),而在派生類Dervied中重新進(jìn)行了定義,輸出字符2,函數(shù)function2()在基類Base中定義虛成員函數(shù),在主函數(shù)中使用指向基類的指針變量p訪問function20時(shí),輸出1。27、有如下程序:#include#includeusingstd::cout;classPoint{public:frienddoubledistance(constPoint&p);//p距原點(diǎn)的距離Point(intxx=0,intyy=0):x(xx),y(yy){}//①private:intx,y;};doubledistance(constPoint&p){//②returnsqrt(p.x*p.x+p.y*p.y);}intmain(){Pointp1(3,4);cout<A、程序編譯正確B、程序編譯時(shí)語句①出錯(cuò)C、程序編譯時(shí)語句②出錯(cuò)D、程序編譯時(shí)語句③出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這段程序是正確的,計(jì)算p距離原點(diǎn)的距離。語句①是類Point的構(gòu)造函數(shù),在構(gòu)造函數(shù)中給變量xx和yy賦初值0。語句②是計(jì)算點(diǎn)p距原點(diǎn)的距離的函數(shù)distance。語句③是計(jì)算點(diǎn)pl距離原點(diǎn)的距離并輸出。28、有如下的運(yùn)算符重載函數(shù)定義:doubleoperator+(inti,intk){returndouble(i+k);}但定義有錯(cuò)誤,對這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的B、兩個(gè)int型參數(shù)的和也應(yīng)該是int型,而這里將+的返回類型聲明為doubleC、沒有將運(yùn)算符重載函數(shù)聲明為某個(gè)類的友元D、C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,不能再定義同樣的運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。C++語言規(guī)定,不能作為非成員函數(shù)重載的運(yùn)算符有=、[]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符,故選項(xiàng)A錯(cuò)誤:運(yùn)算符重載對返回值類型沒有限制,故選項(xiàng)B錯(cuò)誤;C++并不強(qiáng)制要求非成員重載的運(yùn)算符一定是某個(gè)類的友元,所以C選項(xiàng)錯(cuò)誤:題目中重載的’’+’’運(yùn)算符的兩個(gè)參數(shù)都是int類型,而C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,編譯器無法區(qū)分應(yīng)該調(diào)用哪一個(gè),所以應(yīng)該選擇D選項(xiàng)。29、有如下程序:#inc1ude<iostream>Usingnamespacestd;classAmcunt{intamount,public;Amount(intn=0):amount(n){}IntgetAmount()const{returnamount,}Amount&operator+=(Amourita){amount+=a.a(chǎn)mount,retum;}};intmain(){Amountx(3),y(7);X+=y;cout<<x.getAmount()<<endl;return0:}己知程序的運(yùn)行結(jié)果是10,則下劃線處缺失的表達(dá)式是()。A、*thisB、thisC、&amountD、amount標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是“+”運(yùn)算符重載和this指針。語句amount+=a.a(chǎn)mount,實(shí)現(xiàn)3和7的求和得到amount=10,要使程序的輸出結(jié)果為10,又因?yàn)楹瘮?shù)的返回值類型為Amount&,所以橫線處填入*this。30、若在表達(dá)式y(tǒng)/x中,’’/’’是作為成員函數(shù)重載的運(yùn)算符,則該表達(dá)式還可以表示為()。A、x.operator/(y)B、operator/(x,y)C、y.operator/(x)D、operator/(y,x)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:運(yùn)算符函數(shù)的函數(shù)名是由運(yùn)算符前加關(guān)鍵字operator構(gòu)成的。所以當(dāng)“/”作為運(yùn)算符重載后,其格式為operator/。所以其作為成員函數(shù)調(diào)用時(shí)的格式為y.operator/(x)。31、若要重載+、=、<<、==和[]運(yùn)算符,則必須作為類成員重載的運(yùn)算符是()。A、+和=B、=和<<C、==和<<D、=和[]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:=、[]、()、—>以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,而且不能是針對枚舉類型操作數(shù)的重載。32、對于語句cout<<end<<x;中的各個(gè)組成部分,下列敘述中錯(cuò)誤的是()。A、cout是一個(gè)輸出流對象B、end1的作用是輸出回車換行C、x是一個(gè)變量D、<<稱作提取運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語言的輸出流。符號(hào)“<<”是預(yù)定義插入符,提取運(yùn)算符是“>>”。33、下列語句分別是不同程序中的第一個(gè)輸入輸出語句,若去掉其中的“<<left”,輸出效果將發(fā)生變化的是()。A、cout<<left<<setfill(’*’)<<357;B、cout<<left<<setw(5)<<357;C、cout<<left<<setw(5)<<"ABCDE";D、cout<<left<<"ABCDE";標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是C++流。ssetfill()作用是設(shè)置填充字符;left是使輸出數(shù)據(jù)在指定寬度內(nèi)左對齊:setw()的作用是設(shè)置輸入輸出寬度,且只對當(dāng)前一次有效。34、有如下函數(shù)模板:template<typenamet,typenameU>Tcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast<char*,int>(i);D、cast<double,int>(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是模板函數(shù)的調(diào)用。本題中cast()函數(shù)的實(shí)參i只能確定模板參數(shù)U的類型為int,而不能確定另外一個(gè)模板參數(shù)T,故選項(xiàng)A、B錯(cuò)誤;C++語言不允許隱式地將int轉(zhuǎn)化為char*,故選項(xiàng)C錯(cuò)誤。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共37題,每題1.0分,共37分。)1、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交C、投影D、除標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R∩S,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。2、下列敘述中正確的是()。A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹這類的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。3、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù);隊(duì)列是“先進(jìn)先出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。4、一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。所以出棧順序是EDCBA54321。5、在長度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為()。A、63B、64C、6D、7標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:順序查找又稱順序搜索。順序查找一般是指在線性表中查找指定的元素,其基本方法是:從線性表的第一元素開始,依次將線性表中的元素與被查找的元素進(jìn)行比較,若相等則表示找到(即查找成功),若線性表中所有元素都與被查元素進(jìn)行了比較但都不相等,則表示線性表中沒有要找的元素(即查找失敗)。如果線性表中的第一個(gè)元素就是要查找的元素,則只需要做一次比較就查找成功;但如果要查找的元素是線性表中的最后一個(gè)元素,或者要查找元素不在線性表中,則需要與線性表中所有元素進(jìn)行比較,這是順序查找的最壞情況,比較次數(shù)為線性表的長度。6、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、順序存儲(chǔ)的有序線性表B、線性鏈表C、二叉鏈表D、有序線性鏈表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二分法查找只適應(yīng)于順序存儲(chǔ)的有序表。有序表是指線性表中的元素按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。7、對長度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為A、nB、n-1C、n(n一1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。快速排序法也是一種互換類的排序方法,但由于它比冒泡排序法的速度快,因此,稱為快速排序法。8、對數(shù)組名作函數(shù)的參數(shù),下面描述正確的是()。A、數(shù)組名作函數(shù)的參數(shù),調(diào)用時(shí)將實(shí)參數(shù)組復(fù)制給形參數(shù)組B、數(shù)組名作函數(shù)的參數(shù),主調(diào)函數(shù)和被調(diào)函數(shù)共用一段存儲(chǔ)單元C、數(shù)組名作參數(shù)時(shí),形參定義的數(shù)組長度不能省略D、數(shù)組名作參數(shù),不能改變主調(diào)函數(shù)中的數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)組作為參數(shù)實(shí)參傳遞的是數(shù)組的首地址。所以主調(diào)函數(shù)和被調(diào)函數(shù)共用一段存儲(chǔ)單元。9、下面不屬于需求分析階段任務(wù)的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說明書評審D、制定軟件集成測試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作可分為4個(gè)階段:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審。10、關(guān)于模板,下列說法不正確的是()。A、用類模板定義一個(gè)對象時(shí),不能省略實(shí)參B、類模板只能有虛擬類型參數(shù)C、類模板本身在編譯中不會(huì)生成任何代碼D、類模板的成員函數(shù)都是模板函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類模板不是一個(gè)實(shí)實(shí)在在的類,本身在編譯中不會(huì)生成任何代碼;用類模板定義一個(gè)對象時(shí),不能省略實(shí)參:類模板的成員函數(shù)都是模板函數(shù)。C++中可以為類模板的參數(shù)設(shè)置默認(rèn)值,所以選項(xiàng)B錯(cuò)誤。11、有如下類定義:classPoint{intx_,y_;public:Point():x_(0),y_(0){}Point(intX,intY=0):x_(x),y_(y){}};若執(zhí)行語句Pointa(2),b[3],*c[4];則Point類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。A、2次B、3次C、4次D、5次標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是類的構(gòu)造函數(shù)。構(gòu)造函數(shù)在對象創(chuàng)建的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。在Pointa(2),b[3],*c[4]語句中:a(2)是定義一個(gè)對象并傳入構(gòu)造函數(shù)2,所以此時(shí)會(huì)調(diào)用以此構(gòu)造函數(shù);b[3]是定義一個(gè)包含3個(gè)對象的數(shù)組,所以構(gòu)造函數(shù)會(huì)被調(diào)用3次;*c[4]定義的是4個(gè)Point類對象指針的數(shù)組,它并沒有創(chuàng)建任何Point對象,所以不調(diào)用構(gòu)造函數(shù)。12、軟件(程序)調(diào)試的任務(wù)是()。A、診斷和改正程序中的錯(cuò)誤B、盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤C、發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D、確定程序中錯(cuò)誤的性質(zhì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在對程序進(jìn)行了成功的測試之后將進(jìn)入程序調(diào)試(通常稱Debug,即排錯(cuò))。程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的調(diào)試工具去執(zhí)行并找出錯(cuò)誤的具體位置。軟件測試貫穿整個(gè)軟件生命期,調(diào)試主要在開發(fā)階段。13、有三個(gè)關(guān)系R、S和T如下:其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A、選擇B、投影C、交D、并標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由關(guān)系T中的數(shù)據(jù)可以看出,其數(shù)據(jù)由關(guān)系R和S的數(shù)據(jù)組成。所以關(guān)系T是由關(guān)系R和T通過并運(yùn)算得到的。14、有三個(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)解析:在實(shí)際應(yīng)用中,最常用的連接是一個(gè)叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過公共域的相等值進(jìn)行連接。通過觀察三個(gè)關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。15、某系統(tǒng)總體結(jié)構(gòu)如下圖所示該系統(tǒng)結(jié)構(gòu)圖是A、層次結(jié)構(gòu)B、網(wǎng)狀結(jié)構(gòu)C、分支結(jié)構(gòu)D、循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:層次結(jié)構(gòu)(hicrarchy)是一種操作系統(tǒng)的組織結(jié)構(gòu),其提供了一種隔離操作系統(tǒng)各層功能的模型。其包括歸屬層次結(jié)構(gòu)dissonance-attributionhierarchy維度層次結(jié)構(gòu)dimensionhiemrchv層次結(jié)構(gòu)數(shù)據(jù)庫hierarchicaldatabase等。網(wǎng)狀結(jié)構(gòu)這一名詞來自早期解剖學(xué)家用光學(xué)顯微鏡對腦干中央?yún)^(qū)網(wǎng)絡(luò)狀外觀的描述,在光鏡下這部分組織學(xué)的特點(diǎn)是神經(jīng)細(xì)胞分散,形態(tài)各異,大小不等,神經(jīng)纖維交錯(cuò)穿行其間,形成一種灰白質(zhì)交織的結(jié)構(gòu),稱之為網(wǎng)狀結(jié)構(gòu)。分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語句出現(xiàn)的物理順序。分支結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)姆种дZ句。循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書寫的工作量,用來描述重復(fù)執(zhí)行某段算法的問題,這是程序設(shè)計(jì)中最能發(fā)揮計(jì)算機(jī)特長的程序結(jié)構(gòu)。16、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。A、笛卡爾積B、交C、并D、自然連接標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,最常用的連接是一個(gè)叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過公共域的相等值進(jìn)行連接。通過觀察三個(gè)關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。17、有如下程序:#include<iostream>voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={23,42};fun(a[1],a[0]);std::cout<<a[0]<<","<<a[1]<<std::endl;return0;}執(zhí)行后的輸出結(jié)果是()。A、42,42B、23,23C、23,42D、42,23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用以及參數(shù)值的傳遞。函數(shù)fun中的第一個(gè)參數(shù)是引用傳值方式,是雙向的;第二個(gè)參數(shù)是按值傳遞,是單向的。18、下列關(guān)于派生類的敘述中,錯(cuò)誤的是()。A、派生類至少要有一個(gè)基類B、派生類中包括了從基類繼承的成員C、一個(gè)派生類可以作為另一個(gè)派生類的基類D、基類成員被派生類繼承以后訪問權(quán)限保持不變標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對象對基類成員的訪問權(quán)限:①對于公有繼承,只有基類的公有成員可以被派生類對象訪問,其他(保護(hù)和私有)成員不能被訪問。②對于私有繼承和保護(hù)繼承,基類中所有成員都不能被派生類對象訪問。派生類對基類成員的訪問權(quán)限:①對于公有繼承,基類中公有成員和保護(hù)成員可以訪問,而基類中私有成員不能被訪問。②對于私有繼承和保護(hù)繼承,也是基類中的公有成員和保護(hù)成員可以被派生類訪問,而基類中的私有成員不能被訪問。19、已知二叉樹后序遍歷序列是CDABE,中序遍歷序列是CADEB,它的前序遍歷序列是()。A、ABCDEB、ECABDC、EACDBD、CDEAB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于后序遍歷的最后一個(gè)元素為E,所以E為根結(jié)點(diǎn),所以它的前序遍歷的首個(gè)元素為E,故排除A和D選項(xiàng)。由于中序遍歷中,元素B在元素根結(jié)點(diǎn)E的后面,所以B為二叉樹的右子樹,并且該二叉樹右子樹只有一個(gè)元素,所以前序遍歷的最后一個(gè)元素應(yīng)為B,故選項(xiàng)C為正確選項(xiàng),即該二叉樹的前序遍歷序列是EACDB。20、關(guān)鍵字unsigned不能修飾的類型是()。A、charB、intC、floatD、longint標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:實(shí)型常量指的是float和double兩種數(shù)據(jù)類型,而signed和unsigned只對整型數(shù)起作用,用于確定它們的數(shù)據(jù)范圍(例如16位系統(tǒng)中,一個(gè)signedint是-32768~32767,而unsignedint是0~65535)。unsigned對浮點(diǎn)數(shù)是無意義的。21、已知枚舉類型定義語句為: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+十語言的數(shù)據(jù)類型。第一個(gè)枚舉常量的值為0:允許程序顯示的定義中指定部分或全部枚舉常量的值,枚舉常量默認(rèn)時(shí),在前一枚舉常量值的基礎(chǔ)上以此增1。22、針對數(shù)組定義intdata[10];,下列表述中錯(cuò)誤的是()。A、用*data可訪問到數(shù)組的首元素B、用data[9]可訪問到數(shù)組的末元素C、用data[10]訪問數(shù)組元素會(huì)超出數(shù)組邊界D、data共有10個(gè)元素,其首元素是data[1]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考奄的是數(shù)組和指針的概念。題目中data[10]共有10個(gè)元素,分別是data[0]、data[1]、data[2]、data[3]…data[9],首元素足data[0],所以選項(xiàng)D)錯(cuò)誤:其他選項(xiàng)均正確。23、下列語句中,正確的是()。A、char*myString="Hello-World!";B、charmyString="Hello-World!";C、charmyString[11]:="Hello-World!";D、charmyString[12]="Hello-World!";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對于B來說,會(huì)造成溢出,對于C和D來說同樣如此,因?yàn)椤癏ello-world!”一個(gè)是12個(gè)字符組成,加上空字符一共13個(gè),所以都會(huì)造成溢出,只有A是將字符串的地址賦給字符型指針。24、有如下函數(shù)模板定義:Template<classT>Tfunc(Tx,Ty){returnx*x+y*y;}在下列對fuac的調(diào)用中,錯(cuò)誤的是()。A、func(3,5);B、func(3.0,5.5);C、func(3,5.5);D、func<int>(3,5.5);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板的使用。引用模板函數(shù)和引用一般函數(shù)在語法形式上基本相同。需要注意的是說明一個(gè)函數(shù)模板后,當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個(gè)對應(yīng)的函數(shù)調(diào)用時(shí),將根據(jù)實(shí)參中的類型來確認(rèn)是否匹配函數(shù)模板中的對應(yīng)形參。本題C選項(xiàng)中,編譯系統(tǒng)從第一個(gè)參數(shù)“3”獲得信息“int”和從第二個(gè)參數(shù)獲得信息“double”兩者矛盾,錯(cuò)誤;A、B選項(xiàng)正確;D選項(xiàng)中,函數(shù)名后的是模板實(shí)參表,編譯系統(tǒng)會(huì)將double型的形參“5.5”自動(dòng)轉(zhuǎn)化成int類型。25、在定義一個(gè)類模板時(shí),模板形參表是用一對括號(hào)括起來的,所采用的括號(hào)是()。A、()B、[]C、<>D、{}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:聲明一個(gè)類模板的格式是:template<<模板形參聲明>><類聲明>。26、下列函數(shù)模版中的定義中,合法的是()。A、templateTabs(Tx){returnx<07一x:x;)B、templateclassTabs(Tx){retumxC、templateTabs(Tx){retumx<07一x:x;)D、templateTabs(Tx){returnx標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個(gè)函數(shù)模板的格式是:template<模板形參表聲明>函數(shù)聲明,其中的<模板形參表聲明>是由一個(gè)或多個(gè)“模板形參”組成的,每個(gè)“模板形參”可具有以下幾種形式:typename參數(shù)名:class參數(shù)名;類型修飾參數(shù)名。27、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類私有繼承其基類,則該派生類對象不能訪問基類的保護(hù)成員B、派生類的成員函數(shù)可以訪問基類的所有成員C、基類對象可以賦值給派生類對象D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無論是哪種繼承方式,派生類都能夠訪問基類的公有和保護(hù)成員,而不能訪問基類的私有成員,故選項(xiàng)A和B錯(cuò)誤:公有繼承時(shí),基類的對象不可作為派生類的對象處理,即基類對象不可賦值給派生類對象,所以選項(xiàng)C錯(cuò)誤。28、下列關(guān)于派生類的敘述中,錯(cuò)誤的是()。A、派生類至少要有一個(gè)基類B、派生類中包括了從基類繼承的成員C、一個(gè)派生類可以作為另一個(gè)派生類的基類D、基類成員被派生類繼承以后訪問權(quán)限保持不變標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對象對基類成員的訪問權(quán)限:①對于公有繼承,只有基類的公有成員可以被派生類對象訪問,其他(保護(hù)和私有)成員不能被訪問。②對于私有繼承和保護(hù)繼承,基類中所有成員都不能被派生類對象訪問。派生類對基類成員的訪問權(quán)限:①對于公有繼承,基類中公有成員和保護(hù)成員可以訪問,而基類中私有成員不能被訪問。②對于私有繼承和保護(hù)繼承,也是基類中的公有成員和保護(hù)成員可以被派生類訪問,而基類中的私有成員不能被訪問。29、下列關(guān)于虛函數(shù)的說明中,正確的是()。A、從虛基類繼承的函數(shù)都是虛函數(shù)B、虛函數(shù)不得是靜態(tài)成員函數(shù)C、只能通過指針或引用調(diào)用虛函數(shù)D、抽象類中的成員函數(shù)都是虛函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的概念。在成員函數(shù)的聲明前面加上virual關(guān)鍵字,即可把函數(shù)聲明為虛函數(shù)。虛函數(shù)可以是另一個(gè)函數(shù)的友元函數(shù)而不能是靜態(tài)成員函數(shù)。30、有如下程序:#inc1ude<iostream>usingnamespacestd;classB{public:virtualvoidf(){cout<<"B";}voidg(){cout<"B";}};classD:publicB{public:voidf(){cout<<"D";}voidg(){cout<<"D";}};voidh(B*p){p一>f();p一>g();}intmain(){Dobj;h(&obj);return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、DDB、BBC、BDD、DB標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在基類B中定義虛函數(shù)f()和成員函數(shù)g(),而在派生類D中定義了函數(shù)f()和同名函數(shù)g()。而函數(shù)h中的形參為指向基類的指針變量p,所以在主函數(shù)中執(zhí)行h(&obj)時(shí),會(huì)調(diào)用派生類的函數(shù)f(),輸出D,再調(diào)用基類的函數(shù)g(),輸出B。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);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是模板函數(shù)的調(diào)用。本題中cast()函數(shù)的實(shí)參i只能確定模板參數(shù)U的類型為int,而不能確定另外一個(gè)模板參數(shù)T,故選項(xiàng)A、B錯(cuò)誤;C++語言不允許隱式地將int轉(zhuǎn)化為char*,故選項(xiàng)C錯(cuò)誤。32、下列模板聲明中,有語法錯(cuò)誤的是()。A、template<typenameT>Tfun(Tx){returnx;}B、template<typenameT>Tfun(Tx,intn){returnx*n;}C、template<classT>Tfun(T*p){return*p;}D、template<classT>TclassA{Tn;};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:第四個(gè)選項(xiàng)是定義類模板的,但是class前面的T是多余的。對于第二個(gè)選項(xiàng),同一個(gè)類的對象相乘還是同一個(gè)類的對象,但是可能要考慮溢出的問題。33、在C++中,cin是一個(gè)()。A、類B、對象C、模板D、函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:Cin為istream流類的對象。34、下列控制格式輸入輸出的操作符中,能夠設(shè)置浮點(diǎn)數(shù)精度的是()。A、setprecisionB、setwC、setfillD、showpoint標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:setprecision(intn):設(shè)置浮點(diǎn)數(shù)的精度(有效位數(shù)或小數(shù)位數(shù)),等價(jià)函數(shù)調(diào)用:io.precision(n)。35、下列控制對齊方式的操作符中,錯(cuò)誤的是()。A、internalB、centerC、leftD、fight標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對齊方式的控制操作符left的含義是在設(shè)定的寬度內(nèi)左對齊輸出,右端填已設(shè)定的填充字符:right(此為默認(rèn)設(shè)置)在設(shè)定的寬度內(nèi)右對齊輸出;intemal在設(shè)定的寬度內(nèi)右對齊輸出,但若有符號(hào)(-或+),符號(hào)置于最左端。36、下列有關(guān)C++流的敘述中,錯(cuò)誤的是()。A、C++操作符setw設(shè)置的輸出寬度永久有效B、C++操作符endl可以實(shí)現(xiàn)輸出的回車換行C、處理文件I/O時(shí),要包含頭文件fstreamD、進(jìn)行輸入操作時(shí),eof0函數(shù)用于檢測是否到達(dá)文件尾標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++流。C++操作符setw()的作用是設(shè)置輸入輸出寬度,且只對當(dāng)前一次有效,并非永久有效,故選項(xiàng)A敘述錯(cuò)誤。37、當(dāng)使用ifstream流類定義一個(gè)流對象并打開一個(gè)磁盤文件時(shí),文件的默認(rèn)打開方式為()。A、iosbase::inB、iosbase::inIiosbase::outC、iosbase::outD、iosbase::in&iosbase::out標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對于ifstream,默認(rèn)打開模代是iosbase::in。ifstream只能用于輸入,它沒有提供任何用于輸出的操作。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共22題,每題1.0分,共22分。)1、下列描述中正確的是A、線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、雙向鏈表是非線性結(jié)構(gòu)D、只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本單位稱為存儲(chǔ)結(jié)點(diǎn),每個(gè)存儲(chǔ)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域兩個(gè)組成部分。各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的,指向線性表中第一結(jié)點(diǎn)的指針HEAD稱為頭指針,當(dāng)HEAD=NULL時(shí)稱為空表。棧、隊(duì)列和雙向鏈表是線性結(jié)構(gòu),樹是一種簡單的非線性結(jié)構(gòu)。在樹這種數(shù)據(jù)結(jié)構(gòu)中,所有數(shù)據(jù)元素的關(guān)系具有明顯的層次特征。二叉樹是非線性結(jié)構(gòu)。線性結(jié)構(gòu)和非線性結(jié)構(gòu)是從數(shù)據(jù)的邏輯結(jié)構(gòu)角度來講的,與該數(shù)據(jù)結(jié)構(gòu)中有多少個(gè)元素沒有關(guān)系,即使是空的二叉樹也是非線性結(jié)構(gòu)。2、設(shè)一棵完全二叉樹共有700個(gè)結(jié)點(diǎn),則此二叉樹中的葉子結(jié)點(diǎn)數(shù)為()。A、85B、120C、250D、350標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:①具有n個(gè)結(jié)點(diǎn)的完全二叉樹的深度為[long2n]+1,計(jì)算出該完全二叉樹的深度為10。②設(shè)度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))為n0,度為1的結(jié)點(diǎn)為n1,度為2的結(jié)點(diǎn)為n2,總結(jié)點(diǎn)數(shù)為n,深度為k。n=n1+n2+n0,出于n0=n2+1則n2=n0一1,故n=n1+n0一1+n0=n1+2n0一1。由于完全二叉樹中度為1的結(jié)點(diǎn)數(shù)只有兩種可能:0或1。③假設(shè)度為1的結(jié)點(diǎn)數(shù)為0即滿二叉樹,根據(jù)滿二叉樹的定義,其2m一1個(gè)結(jié)點(diǎn),根據(jù)以上計(jì)算所得的深度10來計(jì)算,應(yīng)有210一1=1024一1=1023個(gè)結(jié)點(diǎn),顯然與題目中700個(gè)結(jié)點(diǎn)不符。因此,度為1的結(jié)點(diǎn)數(shù)必然為1。故n=n1+2n0一1=1+2n0一1=2n0,則n0=n/2=700/2=350.3、在面向?qū)ο蠓椒ㄖ校粚儆凇皩ο蟆被咎攸c(diǎn)的是()。A、一致性B、分類性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對象具有如下特征;標(biāo)識(shí)惟一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性。4、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。A、cout>>‘A’表達(dá)式可輸出字符AB、eof()函數(shù)可以檢測是否到達(dá)文件尾C、對磁盤文件進(jìn)行流操作時(shí),必須包含頭文件fstreamD、以ios―base::out模式打開的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查c++流,想要輸出字符“A,則應(yīng)該是cout<<“A”,所以本題答案為A。5、從工程管理角度看,軟件設(shè)計(jì)一般分為兩步完成,它們是()。A、概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)B、數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)C、軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)D、過程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)是開發(fā)階段最重要的步驟。從工程管理的角度來看可分為兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)是將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式;詳細(xì)設(shè)計(jì)是指確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適應(yīng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。從技術(shù)觀點(diǎn)來看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)(定義軟件系統(tǒng)各主要部件之間的關(guān)系)、數(shù)據(jù)設(shè)計(jì)(將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu))、接口設(shè)計(jì)(描述軟件內(nèi)部、軟件與協(xié)作系統(tǒng)之間以及軟件與人之間如何通信)、過程設(shè)計(jì)(把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程)四個(gè)步驟。6、有如下程序:#includeusingnamespacestd;classToy{public:Toy(char*一n){strcpy(name,一n);count++;)~Toy0{count一;)char*GetName0{returnname;}staticintgetCount0{returncount;)private:charname[10];staticintcount;);intToy::count=0;intmain(){Toytl(”Snoopy”),t2(”Mickey”),t3(”Barbie”);cout<<t1.getCount()<<endl;returnO:)運(yùn)行時(shí)的輸出結(jié)果是()。A、1B、2C、3D、運(yùn)行時(shí)出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:類Toy中包含一個(gè)字符數(shù)組name和一個(gè)靜態(tài)整型變量count。在程序中首先給類Toy的成員count的賦初始值0,然后在主函數(shù)中,定義了三個(gè)Toy對象t1、t2、t3,并分別對它們的name字段賦值,在賦值的同時(shí)變量count的值加l,所以最后變量count的值等于3。7、軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn)。一般一個(gè)較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。8、有如下程序:撕ncludeusingnamespacestd;classAA{intk;protected:intn;voidsetK(intk){this一>k=k;}public:voidsetN(intn){this一>n=n;}};classBB:publicAA{/*類體略*/};intmain(){BBx;x.n=1;//1x.setN(2);//2x.k=3://3x.setK(4);//4return0;}在標(biāo)注號(hào)碼的四條語句中正確的是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有。所以本題中n、k和setK變?yōu)榱伺缮惖谋Wo(hù)成員,不能直接使用,即1、3、4錯(cuò)誤,所以B選項(xiàng)正確。9、下列關(guān)于派生類的敘述中,錯(cuò)誤的是()。A、派生類至少要有一個(gè)基類B、派生類中包括了從基類繼承的成員C、一個(gè)派生類可以作為另一個(gè)派生類的基類D、基類成員被派生類繼承以后訪問權(quán)限保持不變標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對象對基類成員的訪問權(quán)限:①對于公有繼承,只有基類的公有成員可以被派生類對象訪問,其他(保護(hù)和私有)成員不能被訪問。②對于私有繼承和保護(hù)繼承,基類中所有成員都不能被派生類對象訪問。派生類對基類成員的訪問權(quán)限:①對于公有繼承,基類中公有成員和保護(hù)成員可以訪問,而基類中私有成員不能被訪問。②對于私有繼承和保護(hù)繼承,也是基類中的公有成員和保護(hù)成員可以被派生類訪問,而基類中的私有成員不能被訪問。10、在下列字符中,不允許作為C++標(biāo)識(shí)符的是()。A、bB、BC、_D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符是一個(gè)以字母或下劃線開頭的,由字母、數(shù)字、下劃線組成的字符串。11、Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是()。A、cppB、exeC、objD、lik標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在VC6.0集成開發(fā)環(huán)境下,用戶可以使用編譯(compile)命令將一個(gè).cpp為擴(kuò)展名的C++源程序文件轉(zhuǎn)換成一個(gè)以.obj為擴(kuò)展名的目標(biāo)文件。12、有如下程序:#includeusingnamespacestd;classMusic{public:voidsetTitle(char*str){strcpy(title,str);)protected:chartype[10];private:chartitle[20];);classJazz:publicMusic{public:voidset(char*str){strcpy(type,"Jazz");∥①strcpy(title,str);∥②));下列敘述中正確的是()。A、程序編譯正確B、程序編譯時(shí)語句①出錯(cuò)C、程序編譯時(shí)語句②出錯(cuò)D、程序編譯時(shí)語句①和②都出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:派生類Jazz不能訪問基類Music中的私有成員title。13、當(dāng)派生類從一個(gè)基類保護(hù)繼承時(shí),基類中的一些成員在派生類中成為保護(hù)成員,這些成員在基類中原有的訪問屬性是()。A、任何B、公有或保護(hù)C、保護(hù)或私有D、私有標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:基類的公有成員和保護(hù)成員只有在以保護(hù)繼承方式繼承時(shí),其在繼承類中是保護(hù)成員。14、生成派生類對象時(shí),派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)的條件是()。A、無需任何條件B、基類中顯示定義了構(gòu)造函數(shù)C、派生類中顯式定義了構(gòu)造函數(shù)D、派生類構(gòu)造函數(shù)明確調(diào)用了基類構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)榕缮悘幕愔欣^承,它含有基類中的數(shù)據(jù)成員和函數(shù)成員,所以當(dāng)生成派生類對象時(shí),能無條件的調(diào)用基類的構(gòu)造函數(shù)。15、若已經(jīng)聲明了函數(shù)原型“voidfun(inta,doubleb=0.0);”,則下列重載函數(shù)聲明中正確的是()。A、voidfun(inta=90,doubleb=0.0);B、intfun(inta,doubleB);C、voidfun(doublea,intB);D、boolfun(inta,doubleb=0.0);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)重載的原則就是至少要在參數(shù)個(gè)數(shù)或參數(shù)類型上有所不同,且如果函數(shù)只是函數(shù)類型不同的,而其他完全相同,也不能作為重載函數(shù)來使用。16、有如下兩個(gè)類定義:classAA{};classBB{AAvl,*v2;BBv3;int*v4;};其中有一個(gè)成員變量的定義是錯(cuò)誤的,這個(gè)變量是()。A、v1B、v2C、v3D、v4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在定義類的數(shù)據(jù)成員時(shí),類中的數(shù)據(jù)成員可以是任意類型,包括整型、浮點(diǎn)型、字符符型、數(shù)組、指針和引用等,也可以是對象。但是要注意,只有另外一個(gè)類的對象,才可以作為該類的成員,即作為類的成員對象存在。自身類的對象是不可以作為自身類的成員存在,但自身類的指針可以。對于本題,在定義類BB時(shí),不能包括其對象v3。17、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。A、Fraction&operator++();B、Fraction&operator++(int);C、MendFraction&operator++();D、friendFraction&operator++(int);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在類Fraction中重載前增1運(yùn)算符++時(shí),其聲明形式為Fraction&operator++();在類Fraction中重載后增1運(yùn)算符++時(shí),其聲明形式為Fraction&operatorH(int);。18、在一個(gè)抽象類中,一定包含有()。A、虛函數(shù)B、純虛函數(shù)C、模板函數(shù)D、重載函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:擁有純虛函數(shù)的類叫做抽象類,所以抽象類中必然包含有虛函數(shù)。19、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。A、Fraction&operator++();B、Fraction&operator++(int),C、friendFraction&operator++();D、friendFraction&operator++(int);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在類Fraction中重載前增1運(yùn)算符++時(shí),其聲明形式為Fraction&operator++();在類Fraction中重載后增1運(yùn)算符++時(shí),其

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論