版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(C++)筆試模擬試卷23(共9套)(共442題)國家二級(C++)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是A、線性鏈表B、棧C、循環(huán)鏈表D、順序表標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照"先進(jìn)后出"或"后進(jìn)先出"的原則組織數(shù)據(jù)的。2、若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是A、bdgcefhaB、gdbecfhaC、bdgaechfD、gdbehfca標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:前序遍歷的第一個結(jié)點(diǎn)a為樹的根結(jié)點(diǎn);中序遍歷中a的左邊的結(jié)點(diǎn)為a的左子樹,a右邊的結(jié)點(diǎn)為a的右子樹;再分別對a的左右子樹進(jìn)行上述兩步處理,直到每個結(jié)點(diǎn)都找到正確的位置。3、線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是A、每個元素都有一個直接前件和直接后件B、線性表中至少要有一個元素C、表中諸元素的排列順序必須是由小到大或由大到小D、除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:線性表可以為空表;第一個元素沒有直接前件,最后一個元素沒有直接后件;線性表的定義中,元素的排列并沒有規(guī)定大小順序。4、在設(shè)計(jì)程序時,應(yīng)采納的原則之一是A、不限制goto語句的使用B、減少或取消注解行C、程序越短越好D、程序結(jié)構(gòu)應(yīng)有助于讀者理解標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此A不選;注解行有利于對程序的理解,不應(yīng)減少或取消,B也不選;程序的長短要依照實(shí)際情況而論,而不是越短越好,C也不選。5、模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)則是模塊的A、抽象和信息隱蔽B、局部化和封裝化C、內(nèi)聚性和耦合性D、激活機(jī)制和控制方法標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:模塊的獨(dú)立程序是評價設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性這兩個定性的度量標(biāo)準(zhǔn)。6、下列敘述中,不屬于測試的特征的是A、測試的挑剔性B、完全測試的不可能性C、測試的可靠性D、測試的經(jīng)濟(jì)性標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:軟件測試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。它有3個方面的重要特征,即測試的挑剔性、完全測試的不可能性及測試的經(jīng)濟(jì)性。其中沒有測試的可靠性這一說法。7、數(shù)據(jù)處理的最小單位是A、數(shù)據(jù)B、數(shù)據(jù)元素C、數(shù)據(jù)項(xiàng)D、數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計(jì)算機(jī)識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C。8、分布式數(shù)據(jù)庫系統(tǒng)不具有的特點(diǎn)是A、數(shù)據(jù)分布性和邏輯整體性B、位置透明性和復(fù)制透明性C、分布性D、數(shù)據(jù)冗余標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:分布式數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)分布性、邏輯整體性、位置透明性和復(fù)制透明性的特點(diǎn),其數(shù)據(jù)也是分布的;但分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)經(jīng)常重復(fù)存儲。數(shù)據(jù)也并非必須重復(fù)存儲,主要視數(shù)據(jù)的分配模式而定。若分配模式是一對多,即一個片段分配到多個場地存放,則是冗余的數(shù)據(jù)庫,否則是非冗余的數(shù)據(jù)庫。9、將E-R圖轉(zhuǎn)換到關(guān)系模式時,實(shí)體與聯(lián)系都可以表示成A、屬性B、關(guān)系C、鍵D、域標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。實(shí)體集也可以轉(zhuǎn)換成關(guān)系。10、實(shí)體是信息世界中廣泛使用的一個術(shù)語,它用于表示A、有生命的事物B、無生命的事物C、實(shí)際存在的事物D、一切事物標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:實(shí)體是客觀存在且可以相互區(qū)別的事物。實(shí)體可以是具體的對象,如一個學(xué)生,也可以是一個抽象的事件,如一次出門旅游等。因此,實(shí)體既可以是有生命的事物,也可以是無生命的事物,但它必須是客觀存在的,而且可以相互區(qū)別。二、選擇題(本題共25題,每題1.0分,共25分。)11、下面關(guān)于虛函數(shù)的描述中正確的是A、虛函數(shù)是一個靜態(tài)成員函數(shù)B、虛函數(shù)是一個非成員函數(shù)C、虛函數(shù)可以在函數(shù)說明時定義,也可以在函數(shù)實(shí)現(xiàn)時定義D、派生類的虛函數(shù)與基類中對應(yīng)的虛函數(shù)具有相同的參數(shù)個數(shù)和類型標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考核虛函數(shù)的概念。虛函數(shù)是非靜態(tài)的成員函數(shù),它不能是友元函數(shù),但可以在另一個類中被聲明為友元函數(shù)。所以A選項(xiàng)不正確;虛函數(shù)必須是類的成員函數(shù),所以B選項(xiàng)是錯誤的;虛函數(shù)聲明只能出現(xiàn)在類定義的函數(shù)原型聲明中,而不能在成員函數(shù)的函數(shù)體實(shí)現(xiàn)的地方,所以C選項(xiàng)是不正確的;一般要求基類中說明了虛函數(shù)后,派生類說明的虛函數(shù)應(yīng)該與基類中虛函數(shù)的參數(shù)個數(shù)相等,對應(yīng)參數(shù)的類型相同。如果不相同,則將派生類虛函數(shù)的參數(shù)類型強(qiáng)制轉(zhuǎn)換為基類中虛函數(shù)的參數(shù)類型。故D選項(xiàng)的說法是正確的。12、C++語言中函數(shù)返回值的類型決定于A、return語句中的表達(dá)式類型B、調(diào)用函數(shù)的主調(diào)函數(shù)類型C、調(diào)用、函數(shù)時臨時類型D、定義函數(shù)時所指定的函數(shù)類型標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:函數(shù)在定義時已經(jīng)可以指定其函數(shù)類型,則函數(shù)返回值類型就是該類型。13、判斷字符型變量ch是否為大寫英文字母,應(yīng)使用表達(dá)式A、ch>=’A’&ch<=’Z’B、ch<=’A’||ch>=’Z’C、’A’<=ch<=’Z’D、ch>=’A’&&ch<=’Z’標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考核C++表達(dá)式類型及求值規(guī)則。ch為大寫字母的條件是大于等于’A’且小于等于’Z’。14、以下非法的賦值語句是A、n=(i=2,++i);B、j++;C、++(i+1);D、x=j>0;標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題其實(shí)是考查各級運(yùn)算符的優(yōu)先級的。選項(xiàng)A賦值符號右側(cè)為逗號表達(dá)式,其取值為最后一項(xiàng)表達(dá)式的值;選項(xiàng)B隱含表示為j=j+1,這是很常用的一種賦值表達(dá)式。選項(xiàng)D賦值符號右側(cè)為邏輯表達(dá)式,其值為1或0,可以賦值給變量x。將選項(xiàng)C展開為i+1=i+1+1,這是錯誤的。15、C++語言中在C語言的基礎(chǔ)上增加的特性不包括A、結(jié)構(gòu)B、引用C、類和對象D、靜態(tài)成員函數(shù)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題很簡單,不過考生要注意引用是C++的新特性。只有結(jié)構(gòu)是C語言也有的特性。16、對于下列語句,正確的判斷是for=(x=0;y=0;(y!=123)&&(x<4);x++);A、是無限循環(huán)B、循環(huán)次數(shù)不定C、最多執(zhí)行4次D、最多執(zhí)行3次標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查for循環(huán)條件中三個表達(dá)式的執(zhí)行順序。首先執(zhí)行表達(dá)式一,然后執(zhí)行表達(dá)式二,如果表達(dá)式二為真,則循環(huán)體執(zhí)行,然后執(zhí)行表達(dá)式三,接著繼續(xù)執(zhí)行表達(dá)式二,如此循環(huán)??忌⒁獾氖?,本題中表達(dá)式三中包含了變量x的增量操作,因此可以由表達(dá)式二和三一起控制循環(huán)體的執(zhí)行次數(shù)。本題正確答案為C。17、若有說明:inta[3][4];則對a數(shù)組元素的非法引用是A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在數(shù)組這部分的知識里面,數(shù)組下標(biāo)越界是一個比較容易忽略的問題,其下標(biāo)是從0開始,至n-1為止,因此選項(xiàng)D是正確答案。18、設(shè)a和b均為double型變量,且a=5.5、b=2.5,則表達(dá)式(int)a+b/b的值是A、6.500000B、6C、5.500000D、6.000000標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:混合表達(dá)式的值的類型是由表達(dá)式中具有最高精度的類型確定,因此可知選項(xiàng)B可排除。注意b/b的結(jié)果應(yīng)是1.00000,而(int)a則為5,相加的結(jié)果還是double型,故正確答案應(yīng)為D。19、下面賦值語句中正確的是A、a=7+b+c=a+7;B、a=7+b++=a+7;C、a=7+b,b++,a+7;D、a=7+b,C=a+7;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:賦值語句合法的重要標(biāo)志之一就是賦值符號的左側(cè)應(yīng)該表示為一個變量,即可以在內(nèi)存中存在一塊空間用于存放賦值符號右側(cè)的值。據(jù)此,可以斷定選項(xiàng)A和B可以排除。注意:選項(xiàng)C中不是逗號表達(dá)式,要考慮優(yōu)先級的問題。本題答案為D。20、語句cout<<(a=2)&&(b=-2);的輸出結(jié)果是A、無輸出B、編譯錯誤C、-1D、1標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:很明顯,本題考查的是表達(dá)式的值作為結(jié)果輸出??梢钥闯?,本表達(dá)式是一個邏輯表達(dá)式,其結(jié)果為真或假,那么輸出則對應(yīng)1和0,故排除選項(xiàng)C。本題答案為D。21、在下面的函數(shù)聲明中,存在著語法錯誤的是A、voidBC(inta,int)B、voidBD(int,int)C、voidBE(int,intt=5)D、intBF(intx;inty)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:函數(shù)聲明時,可以指定其形參的默認(rèn)值,不過要從右向左指定;可以省略形參名,僅以形參類型表示;形參表之間用逗號分割。因此,本題答案為D。22、下列關(guān)于指針的操作中,錯誤的是A、兩個同類型的指針可以進(jìn)行比較運(yùn)算B、可以用一個空指針賦給某個指針C、一個指針可以加上兩個整數(shù)之差D、兩個同類型的指針可以相加標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查指針能夠進(jìn)行的運(yùn)算方式。指針可以加減一個整數(shù),兩個指針可以相減,表示指針之間的元素個數(shù)。指針相加則沒有意義,因此本題答案為D。23、若有以下定義:inta[]={1,2,3,4,5,6,7);charc1=’b’,c2=’2’;則數(shù)值不為2的表達(dá)式是A、a[1]B、’d’-c1C、a[’3’-c2]D、c2-0.標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查數(shù)組的定義、初始化及其引用,以及對字符ASCII碼值的熟悉程度。解本題的關(guān)鍵在于熟悉字符的ASCIII碼值。字符在進(jìn)行數(shù)學(xué)運(yùn)算時取其.ASCII碼值,其中’b’的ASCII碼值為98,’d’的ASCII碼值為100,字符’2’的ASCII:碼值為50。根據(jù)以上知識,可知D選項(xiàng)中表達(dá)式c2-0的值為50。24、靜態(tài)成員函數(shù)沒有A、返回值B、this指針C、指針參數(shù)D、返回類型標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:this指針是系統(tǒng)隱含的用于指向當(dāng)前對象的指針。由于靜態(tài)函數(shù)是同類中所以對象都共享的函數(shù),在內(nèi)存當(dāng)中只存在一份,不屬于某個對象所有,所以靜態(tài)函數(shù)沒有this指針。25、以下程序的輸出結(jié)果為main(){intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;cout<<x<<endl;}A、27.000000B、27.500000C、28.000000D、28.500000標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查表達(dá)式值的類型由參與運(yùn)算的所有變量的類型中優(yōu)先級最高的變量類型所決定。不過要注意的是整型向float型轉(zhuǎn)換時,將丟失小數(shù)部分,即向下取值。26、執(zhí)行下列語句后,輸出結(jié)果為cout.put(’s’);cout<<’c’<<’a’;A、caB、seaC、sD、a標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題很簡單,考查cout對象的成員函數(shù)put方法和<<操作符的使用方法。27、下列運(yùn)算符中,不能重載的是A、?:B、+C、-D、<=標(biāo)準(zhǔn)答案:A知識點(diǎn)解析::?是C++中唯一一個三目運(yùn)算符,不能被重載。28、所有在函數(shù)中定義的變量及函數(shù)的形式參數(shù),都屬于A、全局變量B、局部變量C、靜態(tài)變量D、常量標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:全局變量是在所有函數(shù)定義、類定義和程序塊之外聲明的變量,局部變量是在某個函數(shù)定義、類定義或程序塊之內(nèi)聲明的變量。用關(guān)鍵字Static聲明的局部變量稱為靜態(tài)變量,故正確答案為B項(xiàng)。29、為引入對象的同義詞,對象的別名稱為A、指針B、引用C、枚舉D、結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:引用是C++引入的一個新概念,表示變量或?qū)ο蟮膭e名。30、以下不屬于構(gòu)造函數(shù)特征的是A、構(gòu)造函數(shù)名與類名相同B、構(gòu)造函數(shù)可以重載C、構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)D、構(gòu)造函數(shù)必須指定函數(shù)類型標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:類的構(gòu)造函數(shù)不能指定函數(shù)類型,由系統(tǒng)采取默認(rèn)的處理方式,不需要用戶參與。31、以下關(guān)于虛函數(shù)的敘述中不正確的是A、虛函數(shù)屬于成員函數(shù)B、虛函數(shù)不允許說明成靜態(tài)的C、凡是虛函數(shù)必須用virtual說明D、虛函數(shù)可以被繼承標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:虛函數(shù)的引入是為了解決動態(tài)綁定問題,使類的實(shí)例表現(xiàn)出多態(tài)性,虛函數(shù)在繼承后依然保持虛函數(shù)特性,此時不需要用virtual關(guān)鍵詞修飾。32、類的構(gòu)造函數(shù)的作用是A、一般成員函數(shù)B、類的初始化C、對象的初始化D、刪除對象創(chuàng)建的所有對象標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查類的構(gòu)造函數(shù)的作用,構(gòu)造函數(shù)一般負(fù)責(zé)完成對象建立時的初始化工作,如資源的分配。33、繼承機(jī)制的作用是A、信息隱藏B、數(shù)據(jù)封裝C、定義新類D、數(shù)據(jù)抽象標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:繼承是類的一個重要特性,沒有繼承,面向?qū)ο蠓椒ㄒ簿筒淮嬖凇U怯辛死^承,才呈現(xiàn)出豐富多彩的類和對象。34、關(guān)于虛函數(shù)的描述中正確的是A、虛函數(shù)是一個靜態(tài)成員函數(shù)B、虛函數(shù)是一個非成員函數(shù)C、虛函數(shù)既可以在函數(shù)說明時定義,也可以在函數(shù)實(shí)現(xiàn)時定義D、派生類的虛函數(shù)與基類中對應(yīng)的虛函數(shù)具有相同的參數(shù)個數(shù)和類型標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:虛函數(shù)不能定義為靜態(tài)函數(shù);虛函數(shù)的作用在于繼承,表現(xiàn)出動態(tài)性。所以,在派生類中定義的虛函數(shù)必須和基類中對應(yīng)的虛函數(shù)具有相同的參數(shù)個數(shù)和類型。35、下列表示純虛函數(shù)的成員函數(shù)是A、virtualintfunc(int);B、voidfunc(int)=0;C、virtualvoidfunc=0;D、virtualvoidflmc(int){}標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查純虛函數(shù)的定義形式。由于純虛函數(shù)在最后要有“=0”,故據(jù)此排除A和D。而B中沒有出現(xiàn)virtual關(guān)鍵詞,故正確答案為C。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、在算法正確的前提下,評價一個算法的兩個標(biāo)準(zhǔn)是______。標(biāo)準(zhǔn)答案:時間復(fù)雜度和空間復(fù)雜度知識點(diǎn)解析:暫無解析37、將代數(shù)式轉(zhuǎn)換成程序設(shè)計(jì)中的表達(dá)式為______。標(biāo)準(zhǔn)答案:SQRT(x^2+y^2)/(a+b)知識點(diǎn)解析:暫無解析38、軟件危機(jī)出現(xiàn)于20世紀(jì)60年代末,為了解決軟件危機(jī),人們提出了______的原理來設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。標(biāo)準(zhǔn)答案:軟件工程學(xué)知識點(diǎn)解析:暫無解析39、______是數(shù)據(jù)庫設(shè)計(jì)的核心。標(biāo)準(zhǔn)答案:數(shù)據(jù)模型知識點(diǎn)解析:數(shù)據(jù)模型是對客觀事物及聯(lián)系的數(shù)據(jù)描述,它反映了實(shí)體內(nèi)部及實(shí)體與實(shí)體之間的聯(lián)系。因此,數(shù)據(jù)模型是數(shù)據(jù)庫設(shè)計(jì)的核心。40、在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。標(biāo)準(zhǔn)答案:關(guān)系知識點(diǎn)解析:在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關(guān)系。表中的每一列稱為一個屬性,相當(dāng)于記錄中的一個數(shù)據(jù)項(xiàng),對屬性的命名稱為屬性名;表中的一行稱為一個元組,相當(dāng)于汜錄值。四、填空題(本題共8題,每題1.0分,共8分。)41、在C++語言的面向?qū)ο蟪绦蛟O(shè)計(jì)框架中,______是程序的基本組成單元。標(biāo)準(zhǔn)答案:類知識點(diǎn)解析:C++語言面向?qū)ο蟪绦蛟O(shè)計(jì)的基本組成單元是class,面向過程的程序設(shè)計(jì)的基本組成單元是函數(shù)。42、C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋以______作為開始和結(jié)束的標(biāo)記。標(biāo)準(zhǔn)答案:/**/知識點(diǎn)解析:C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋以“/*”開始,以“*/”結(jié)束。43、以下程序的輸出結(jié)果是_____。#include<iostream.h>voidfun(){staticinta=0;a+=2;cout<<a<<"";}voidmain(){intcc;for(cc=1;cc<4;cc++)fun();cout<<endl;}標(biāo)準(zhǔn)答案:246知識點(diǎn)解析:本題考查靜態(tài)局部變量的使用。用關(guān)鍵字static聲明的局部變量為“靜態(tài)局部變量”,其值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,即其占用的存儲單元不釋放,在下一次調(diào)用該函數(shù)時,該變量已有值,就是上一次函數(shù)調(diào)用結(jié)束時的值。44、用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)_____;標(biāo)準(zhǔn)答案:malloc(11)或malloc(sizeof(char)*11)知識點(diǎn)解析:malloc函數(shù)的參數(shù)可以是一個具體的常數(shù),也可以是一個表達(dá)式。在本題中,可以是malloc(11),也可以借助于sizeof運(yùn)算符來表示。45、以下程序的輸出結(jié)果是_____。#include<iostream.h>unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);returnk;}voidmain(){unsignedn=26;cout<<fun(n)<<endl;}標(biāo)準(zhǔn)答案:12知識點(diǎn)解析:函數(shù)有一個形參num,循環(huán)前變量k置1,循環(huán)中,表達(dá)式num%10是取num的個位,將Hum的個位值累乘于k中,然后num除以10。循環(huán)直至num為0結(jié)束,這是逐一求出num十進(jìn)制表示的各位數(shù)字,并累乘于變量k的循環(huán)。函數(shù)最后返回k。函數(shù)fun的功能是求整數(shù)的各位十進(jìn)制數(shù)的積。46、將x+y*z中的“+”用成員函數(shù)重載,"*"用友元函數(shù)重載應(yīng)寫為_____。標(biāo)準(zhǔn)答案:x..operator+(operator*(y,z))知識點(diǎn)解析:C++中用成員函數(shù)重載x*y為:x.operator*(y);用友元函數(shù)重載x*y為:operator*(x,y);用成員函數(shù)重載x+y為:x.operator+(y);用友元函數(shù)重載x+y為:operator+(x,y)。47、下面程序的功能是將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變,請?zhí)羁铡?include<iostream.h>#include<string.h>voidmain(){chara[]="clanguage",t;intI,j,k;k=strlen(a);for(i=0;i<=k-2;i+=2)for(j=i+2;j<=k;_____)if(_____){t=a[i];a[i]=a[j];a[j]=t;}cout<<a;cout<<endl;}標(biāo)準(zhǔn)答案:j+=2a[i]>=a[j]或a[i]>a[j]知識點(diǎn)解析:strlen函數(shù)是測試字符串長度的函數(shù),函數(shù)的值為字符串中的實(shí)際長度,不包括’\0’在內(nèi)。48、靜態(tài)成員函數(shù)可以直接訪問類的______成員,不能直接訪問類的______成員。標(biāo)準(zhǔn)答案:靜態(tài);非靜態(tài)知識點(diǎn)解析:靜態(tài)成員函數(shù)可以直接訪問該類中的靜態(tài)數(shù)據(jù)成員,而不能訪問該類中的非靜態(tài)數(shù)據(jù)成員。國家二級(C++)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、下列關(guān)于棧的描述中錯誤的是()。A、棧是先進(jìn)先出的線性表B、棧只能順序存儲C、棧具有記憶作用D、對棧的插入與刪除操作中,不需要改變棧底指針標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點(diǎn)是先進(jìn)后出,因此具有記憶作用。棧可以采用順序存儲,也可以采用鏈?zhǔn)酱鎯Α?、最簡單的交換排序方法是A、快速排序B、選擇排序C、堆排序D、冒泡排序標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:暫無解析3、將運(yùn)算符重載為類成員函數(shù)時,其參數(shù)表中沒有參數(shù),說明該運(yùn)算符是A、不合法的運(yùn)算符B、一元運(yùn)算符C、無操作數(shù)的運(yùn)算符D、二元運(yùn)算符標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:當(dāng)運(yùn)算符重載為成員函數(shù)時,如果函數(shù)參數(shù)表中沒有參數(shù),則表明該重載為單目運(yùn)算符,操作數(shù)就為該對象本身;如果函數(shù)參數(shù)表中有一個參數(shù),則表示該重載為雙目運(yùn)算符,另外一個操作數(shù)為該對象本身。4、開發(fā)大型軟件時,產(chǎn)生困難的根本原因是A、大系統(tǒng)的復(fù)雜性B、人員知識不足C、客觀世界千變?nèi)f化D、時間緊、任務(wù)重標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:軟件的顯著特點(diǎn)是規(guī)模龐大,復(fù)雜度超線性增長,在開發(fā)大型軟件時,要保證高質(zhì)量,極端復(fù)雜困難,不僅涉及技術(shù)問題,更重要的是必須要有嚴(yán)格而科學(xué)的管理。5、兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。A、耦合性B、內(nèi)聚性C、復(fù)雜性D、數(shù)據(jù)傳輸特性標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。6、A、
B、
C、
D、
標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:暫無解析7、關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。A、排序、索引、統(tǒng)計(jì)B、選擇、投影、連接C、關(guān)聯(lián)、更新、排序D、顯示、打印、制表標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:關(guān)系數(shù)據(jù)庫管理系統(tǒng)的專門關(guān)系運(yùn)算包括選擇運(yùn)算、投影運(yùn)算和連接運(yùn)算。8、下面不屬于軟件工程的3個要素的是()。A、工具B、過程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段:工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。9、在長度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:對于長度為n的有序線性表,在最壞情況下,二分法查找只需比較log2n次,而順序查找需要比較n次。10、有如下兩個類定義:classXX{private:doubleX1;protected:doublex2;public:doublex3;);claseYY:protectedXX{private:doubley1;protected:doubley2;public:doubley3;};在類YY中保護(hù)成員變量的個數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:派生類從基類保護(hù)繼承(classYY:protectedXX)時,基類的公有成員在派生類中變?yōu)楸Wo(hù)成員,基類的保護(hù)成員在派生類中仍然是保護(hù)成員;本題中YY本身有一個保護(hù)成員y2,再加上基類XX的x2和x3,故選C。二、選擇題(本題共25題,每題1.0分,共25分。)11、下列符號中可以用作C++標(biāo)識符的是()。A、_radiusB、foo~barC、elseD、3room標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是C++語言中標(biāo)識符的定義。標(biāo)識符有字母、數(shù)字和下劃線構(gòu)成,其中第一個字母必須是字母或下劃線;定義標(biāo)識符時,不要采用系統(tǒng)的保留字.12、下列字符串中可以用作C++語言標(biāo)識符的是()。A、_1234B、foo~~barC、virtualD、34var標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C++語言標(biāo)識符只能由數(shù)字,字母和下劃線組成,并且只能以字母和下劃線為開頭。13、重載函數(shù)在調(diào)用時選擇的依據(jù)中,錯誤的是A、函數(shù)的參數(shù)名稱B、參數(shù)的類型C、函數(shù)的名字D、函數(shù)的類型標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:是否是重載函數(shù),需要給編譯器提供足夠的信息判斷。其主要的依據(jù)是函數(shù)的名字,參數(shù)的類型,函數(shù)的返回值類型。14、已知charaihtb;floatc;doubled;則表達(dá)式a*b+c-d結(jié)果為()。A、doubleB、intC、floatD、char標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查混合運(yùn)算表達(dá)式類型,由表達(dá)式中具有最高優(yōu)先級的類型所確定,所以答案為A。15、有以下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intn){number=n;}//拷貝構(gòu)造函數(shù)MyClass(MyClass&other){number=other.number;}~MyClass(){}private:intnumber;};MyClassfun(MyClassp)A、5B、4C、3D、2標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:調(diào)用拷貝構(gòu)造函數(shù)的情況為:一個新對象被另一個已存在的同類型對象初始化,當(dāng)一個對象作為實(shí)參傳遵給函數(shù)時為初始化形參,要調(diào)用拷貝構(gòu)造函數(shù)。在函數(shù)值返回時形參的生命期結(jié)束時它的析構(gòu)函數(shù)被調(diào)用,在函數(shù)返回一個對象時調(diào)用拷貝構(gòu)造函數(shù)。符合以上條件的有:用對象obj1來初始化obj3;obj3作為實(shí)參被傳入,函數(shù)fun返回一個對象時,系統(tǒng)用返回值初始化一個匿名對象時調(diào)用了拷貝構(gòu)造函數(shù)??偣舱{(diào)用4次。16、有如下數(shù)組聲明:intnum[10];,下標(biāo)值引用錯誤的是A、num[10]B、num[5]C、num[3]D、num[0]標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)組定義中的數(shù)字指的是數(shù)組的大小,而下標(biāo)是從0開始的,所以題中數(shù)組的最后一個元素是num[9]。17、下列敘述中錯誤的是()。A、派生類可以使用private派生B、對基類成員的訪問必須是無二義性的C、基類成員的訪問能力在派生類中維持不變D、賦值兼容規(guī)則也適用于多繼承的組合標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在建立派生類時,并不是簡單地把基類的私有成員直接作為派生類的私有成員,把基類的公用成員直接作為派生類的公用成員。涉及如何確定基類的成員在派生類中的訪問屬性問題,不僅要考慮對類成員所聲明的訪問屬性,還要考慮派生類所聲明的對基類的繼承方式,根據(jù)這兩個因素共同決定基類成員在派生類的訪問屬性。所以本題選擇選項(xiàng)C)。18、以下定義:int(*p)[4]中,標(biāo)識符p是()。A、一個指向整型變量的指針B、一個指針數(shù)組名C、一個指針,它指向一個含有4個整型元素的一維數(shù)組D、說明不合法標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:本題中相當(dāng)于定義了一個二維數(shù)組intp[][4],標(biāo)識符p是一個指針,指向一個含有4個元素的一維數(shù)組。19、unsignedcharc="\41’;printf("%d",c);輸出結(jié)果為()。A、AB、41C、語法錯D、65標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:c是char類型,而賦值給它的是字符串"\41"。20、()使一個函數(shù)可以定義成對許多不同數(shù)據(jù)類型完成同一個任務(wù)。A、函數(shù)模板B、重載函數(shù)C、遞歸函數(shù)D、模板函數(shù)標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:暫無解析21、下列對字符數(shù)組進(jìn)行初始化的語句,正確的是()。A、chara[]="Hello";B、chara[][]={’H’,’e’,’1’,’1’,’o’};C、chara[5]="Hello";D、chara[2][5]={"Hello","World");標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:暫無解析22、從鍵盤的輸入中,讀入一個值并賦值給x的語句是______。A、cin>>xB、cin<<xC、cout>>xD、cout<<x標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:暫無解析23、在重載一個運(yùn)算符為成員函數(shù)時,其參數(shù)表中沒有任何參數(shù),這說明該運(yùn)算符是______。A、后綴一元運(yùn)算符B、前綴一元運(yùn)算符C、元操作數(shù)的運(yùn)算符D、二元運(yùn)算符標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:運(yùn)算符重載的相關(guān)內(nèi)容。24、在C++語言中,打開一個文件就是將這個文件與一個什么建立關(guān)聯(lián)?A、流B、類C、結(jié)構(gòu)D、對象標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:C++的I/O系統(tǒng)是通過一種稱為流的機(jī)制來實(shí)現(xiàn)文件和控制臺的I/O操作。簡單地說,在C++中,輸入輸出操作是通過流來完成的。而文件流以磁盤文件以及其他可按文件方式進(jìn)行管理的外部設(shè)備為輸入輸出對象。每個文件流都應(yīng)當(dāng)與一個打開的文件相聯(lián)系;關(guān)閉一個文件就是取消這種聯(lián)系。25、若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是A、a[p-a]B、*(&a[i])C、p[i]D、a[10]標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:通常,引用一個數(shù)組元素可以用下標(biāo)法,如a[p—a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。26、以下程序的正確運(yùn)行結(jié)果是()。#include<iostream.h>intf(int);voidmain(){inta=2,i;for(i=0;i<3;i++)cout<<f(a)<<"";cout<<endl;}intf(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}A、777B、71013C、7911D、789標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:暫無解析27、已知各變量的定義如下inti=8,k,a,b;unsignedlongw=5;doublex=1.42,y=5.2;則以下符合C++語言語法的表達(dá)式是()。A、a+=a-=(b=4)*(a=3)B、a=a*3+2C、x%(-3)D、y=floati標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:暫無解析28、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是()。A、函數(shù)調(diào)用可以作為獨(dú)立的語句存在B、函數(shù)調(diào)用可以無返回值C、函數(shù)調(diào)用町以出現(xiàn)在表達(dá)式中D、函數(shù)調(diào)用可以作為一個函數(shù)的形參標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:暫無解析29、以下函數(shù)調(diào)用語句中含有參數(shù)的個數(shù)是excc((v1,v2),(v2,v3,v4),v6);A、3B、4C、5D、6標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:函數(shù)的參數(shù)個數(shù)是以第一層的逗號為區(qū)分的,本題中調(diào)用語句中有3個參數(shù)。30、C++中的類有兩種用法:一種是類的實(shí)例比,即生成類的對象,并參與系統(tǒng)的運(yùn)行;另一種是通過()派生出新的類。A、復(fù)用B、繼承C、封裝D、引用標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:暫無解析31、使用如setw()的操縱符對數(shù)據(jù)進(jìn)行格式輸出時,應(yīng)包含()文件。A、iostream.hB、fstream.hC、iomanip.hD、stdliB.h標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:暫無解析32、設(shè)有以下類和對象的定義:classA{public:intm;…};Ak1,k2,*p1,*p2;則下面針對成員變量m的引用,錯誤的是A、k1.m=1B、k2->m=2C、p1->m=3D、(*p2).m=4標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題也是考察有名對象和無名對象的使用規(guī)則。對有名對象,要使用點(diǎn)操作符,無名對象要使用箭頭運(yùn)算符。據(jù)此可以判斷正確答案為B。33、下列不是構(gòu)造函數(shù)的特征的是()。A、函數(shù)名與類名相同B、構(gòu)造函數(shù)可以重載C、構(gòu)造函數(shù)可以設(shè)置默認(rèn)值D、構(gòu)造函數(shù)可以有返回值標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:構(gòu)造函數(shù)不能有返回值。34、下列字符串中,正確的C++標(biāo)識符是A、foo-1B、2bC、newD、-256標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:標(biāo)識符只能由大小寫字母,下劃線和數(shù)字組成,只允許字母或下劃線開頭,不允許使用系統(tǒng)的關(guān)鍵字作為標(biāo)識符。35、有如下程序:#include<iostream>usingnamespacestd;intmain(){voidfunction(doubleval);doubleval;function(val);cout<<val;return0;}voidfunction(doubleval){val=3;}編譯運(yùn)行這個程序?qū)⒊霈F(xiàn)的情況是A、編譯出錯,無法運(yùn)行B、輸出:3C、輸出:3.0D、輸出一個不確定的數(shù)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查的是函數(shù)參數(shù)的傳遞。在C++中,函數(shù)在傳遞參數(shù)時,總是將實(shí)參值的副本傳遞(拷貝)給被調(diào)用函數(shù)的形參,即傳值調(diào)用。因此,在函數(shù)中對形參所作的任何操作都不會改變函數(shù)外的實(shí)參。故本題function()函數(shù)不會對主函數(shù)中的val變量造成任何改變,val也沒有被初始化,所以輸出的是一個不確定的值:故應(yīng)該選擇D。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖中,使用用______解釋其中的圖形元素。標(biāo)準(zhǔn)答案:數(shù)據(jù)字典知識點(diǎn)解析:暫無解析37、標(biāo)準(zhǔn)答案:BaseDerived知識點(diǎn)解析:創(chuàng)建Derived類型的對象將導(dǎo)致Derived的構(gòu)造函數(shù)被執(zhí)行,而執(zhí)行Derived構(gòu)造函數(shù)時,首先要執(zhí)行其父類的構(gòu)造函數(shù),所以先輸出”Base”,然后輸出”Derived”;p是一個指向.Base類型的指針,對其賦值不會引起構(gòu)造函數(shù)的執(zhí)行,所以本題輸出為”BaseDerived”。38、在關(guān)系運(yùn)算中,【】運(yùn)算是對兩個具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。標(biāo)準(zhǔn)答案:自然連接知識點(diǎn)解析:暫無解析39、實(shí)體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學(xué)校有許多學(xué)生,而一個學(xué)生只歸屬于一個學(xué)校,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于【】的聯(lián)系。標(biāo)準(zhǔn)答案:一對多知識點(diǎn)解析:實(shí)體之間的聯(lián)系可以歸結(jié)為一對一、一對多與多對多。如果一個學(xué)校有許多學(xué)生,而一個教師只歸屬于一個學(xué)生,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于一對多的聯(lián)系。40、在面向?qū)ο蠓椒ㄖ?,允許作用于某個對象上的操作稱為【】。標(biāo)準(zhǔn)答案:方法知識點(diǎn)解析:在面向?qū)ο蠓椒ㄖ?,所謂方法是指允許作用于某個對象上的各種操作。因此,允許作用于某個對象上的操作稱為方法。四、填空題(本題共10題,每題1.0分,共10分。)41、設(shè)有定義語句:inta=12;,則表達(dá)式a*=2+3的運(yùn)算結(jié)果是______。標(biāo)準(zhǔn)答案:60知識點(diǎn)解析:本題考核C++運(yùn)算符運(yùn)算優(yōu)先級和結(jié)合性。表達(dá)式"a*=2+3,"先計(jì)算“2+3”得到5,然后計(jì)算a*=5,得到a的值為60。42、下列程序的執(zhí)行結(jié)果為_____。#include<iostream.h>voidmain(){cout.fill(’*’);cout.width(10);cout<<"hello"<<endl;}標(biāo)準(zhǔn)答案:*****hello知識點(diǎn)解析:本題考查的是C++語言的流輸出操作,cout中包括的函數(shù)fill()和width()分別實(shí)現(xiàn)填充和設(shè)定顯示長度的功能。43、虛函數(shù)必須是類的______。標(biāo)準(zhǔn)答案:成員函數(shù)知識點(diǎn)解析:虛函數(shù)是允許在派生類中重新定義與基類同名的函數(shù),并且通過基類指針或引用來訪問基類和派生類中的同名函數(shù)。在基類中用virtual聲明成員函數(shù)為虛函數(shù),所以虛函數(shù)是類的成員函數(shù)。44、______是實(shí)現(xiàn)C++語言編譯時多態(tài)性的機(jī)制,______是實(shí)現(xiàn)C++語言運(yùn)行時多態(tài)性的機(jī)制。標(biāo)準(zhǔn)答案:靜態(tài)聯(lián)編或靜態(tài)綁定;動態(tài)聯(lián)編或動態(tài)綁定知識點(diǎn)解析:C++語言編譯時多態(tài)性的機(jī)制是靜態(tài)綁定,實(shí)現(xiàn)C++語言運(yùn)行時多態(tài)性的機(jī)制是動態(tài)綁定。45、下列程序段的輸出結(jié)果是【】。#include<iostream.h>voidmain(){inti=10,sum=0;do{sum=+sum+i;i=i-2;}while(i>=2);cout<<sum<<end1;}標(biāo)準(zhǔn)答案:30知識點(diǎn)解析:暫無解析46、程序段的輸出結(jié)果是【】。intx=3,y=2,z=1;count<<(x/y&~z);標(biāo)準(zhǔn)答案:0知識點(diǎn)解析:暫無解析47、表達(dá)式x.operator+(y.operator++(0))還可以寫成【】。標(biāo)準(zhǔn)答案:x+y++或x+(y++)知識點(diǎn)解析:因?yàn)閥.operator++(0)是對成員y重載運(yùn)算符,所以是成員重載,在參數(shù)表中又有一個參數(shù),是重載后綴++,即是x+(y++)。48、帶有虛基類的多層次派生類構(gòu)造函數(shù)的成員初始化列表中都要列出虛基類的構(gòu)造函數(shù),這樣對虛基類的子對象初始化【】次。標(biāo)準(zhǔn)答案:一次知識點(diǎn)解析:當(dāng)一個派生從多個基類派生,而這些基類又有一個共同的基類,當(dāng)對該基類中說明的成員進(jìn)行訪問時,可能出現(xiàn)二義性。虛基類就是為了解決這種二義性問題提出來的。使用虛基類解決二義性問題的關(guān)鍵是在派生類中只產(chǎn)生一個虛基類子對象,因此,帶有虛基類的多層次派生類構(gòu)造函數(shù)的成員初始化列表中對虛基類的子對象只初始化一次。49、有以下程序:#include<iostream>usingnamespacestd;classsample{intx;public:voidsetx(inti){x=i;}intputx(){returnx;}};intmain(){sample*p;sampleA[3];A[0].set>:(5);A[1].setx(6);A[2].setx(7);for(intj=0;j<3;j++){p=&A[j];cout<<p->putx()<<",";}cout<<end1;return0;}執(zhí)行后的輸出結(jié)果是【】。標(biāo)準(zhǔn)答案:5,6,7知識點(diǎn)解析:本題考核對象指針與對象數(shù)組的應(yīng)用。主函數(shù)中定義對象數(shù)組A,然后調(diào)用各自的setx()函數(shù)賦值,最后通過for循環(huán)輸出各自內(nèi)部變量,所以程序最后輸出5,6,7。50、語句序列l(wèi)ongx;x=0L;可用一個語句表示為【】。標(biāo)準(zhǔn)答案:longx=0L;知識點(diǎn)解析:變量的聲明和賦值可以分別進(jìn)行也可以同時進(jìn)行。分別進(jìn)行時稱為賦值,同時進(jìn)行是稱為初始化。國家二級(C++)筆試模擬試卷第3套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為A、GEDHFBCAB、DGEBHFCAC、ABCDEFGHD、ACBFEDHG標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:利用前序和中序遍歷的方法可以確定二叉樹的結(jié)構(gòu),具體步驟如下:①前序遍歷的第一個結(jié)點(diǎn)A為樹的根結(jié)點(diǎn);②中序遍歷中A的左邊的結(jié)點(diǎn)為A的左子樹,A右邊的結(jié)點(diǎn)為A的右子樹;③再分別對A的左右子樹進(jìn)行上述兩步處理,直到每個結(jié)點(diǎn)都找到正確的位置。2、樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是A、有且只有1B、1或多于1C、0或1D、至少2標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:樹是一個或多個結(jié)點(diǎn)組成的有限集合,其中一個特定的結(jié)點(diǎn)稱為根,其余結(jié)點(diǎn)分為若干個不相交的集合。每個集合同時又是一棵樹。樹有且只有1個根結(jié)點(diǎn)。3、如果進(jìn)棧序列為e1,e2,e3,e4,則可能的出棧序列是A、e3,e1,e4,e2B、e2,e4,e3,e1C、e3,e4,e1,e2D、任意順序標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:由?!昂筮M(jìn)先出”的特點(diǎn)可知:選項(xiàng)A)中e1不可能比e2先出,選項(xiàng)C)中e3不可能比e4先出,且e1不可能比e2先出,選項(xiàng)D)中棧是先進(jìn)后出的,所以不可能是任意順序。選項(xiàng)B)中出棧過程如圖所示:4、在設(shè)計(jì)程序時,應(yīng)采納的原則之一是A、不限制goto語句的使用B、減少或取消注解行C、程序越短越好D、程序結(jié)構(gòu)應(yīng)有助于讀者理解標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項(xiàng)A)不選;注解行有利于對程序的理解,不應(yīng)減少或取消,選項(xiàng)B)也不選;程序的長短要依照實(shí)際情況而論,而不是越短越好,選項(xiàng)C)也不選。5、程序設(shè)計(jì)語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和A、對象成分B、變量成分C、語句成分D、傳輸成分標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:程序設(shè)計(jì)語言是用于書寫計(jì)算機(jī)程序的語言,其基本成分有以下4種,數(shù)據(jù)成分:用來描述程序中的數(shù)據(jù)。運(yùn)算成分:描述程序中所需的運(yùn)算??刂瞥煞郑河脕順?gòu)造程序的邏輯控制結(jié)構(gòu)。傳輸成分:定義數(shù)據(jù)傳輸成分,如輸入輸出語言。6、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是A、便于用戶、開發(fā)入員進(jìn)行理解和交流B、反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認(rèn)測試和驗(yàn)收的依據(jù)D、便于開發(fā)入員進(jìn)行需求分析標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:軟件需求規(guī)格說明書(SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用:①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶伺題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗(yàn)收的依據(jù)。7、下列不屬于軟件工程的3個要素的是1A、工具B、過程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。8、單個用戶使用的數(shù)據(jù)視圖的描述稱為A、外模式B、概念模式C、內(nèi)模式D、存儲模式標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:選項(xiàng)A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;選項(xiàng)B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;選項(xiàng)C)不正確,物理存儲數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲方面的描述;選項(xiàng)D)不正確,存儲模式即為內(nèi)模式。9、將E-R圖轉(zhuǎn)換到關(guān)系模式時,實(shí)體與聯(lián)系都可以表示成A、屬性B、關(guān)系C、鍵D、域標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。實(shí)體集也可以轉(zhuǎn)換成關(guān)系。10、SQL語言又稱為A、結(jié)構(gòu)化定義語言B、結(jié)構(gòu)化控制語言C、結(jié)構(gòu)化查詢語言D、結(jié)構(gòu)化操縱語言標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,簡稱SQL)是集數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制功能于一體的數(shù)據(jù)庫語言。二、選擇題(本題共25題,每題1.0分,共25分。)11、C++語言對C語言做了很多改進(jìn),C++語言相對于C語言的最根本的變化是A、增加了一些新的運(yùn)算符B、允許函數(shù)重載,并允許設(shè)置缺省參數(shù)C、規(guī)定函數(shù)說明符必須用原型D、引進(jìn)了類和對象的概念標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:C++語言最重要的特點(diǎn)是其為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,但是C++語言也包含了全部的C語言的特征。12、下列哪個是C++語言的有效標(biāo)識符?A、No1B、No.1C、12345D、int標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:標(biāo)識符是一個以字母或下劃線開始的,由字母、下劃線和數(shù)字組成的字符串,標(biāo)識符不能與任意關(guān)鍵字同名。13、設(shè)有定義intx;floaty;,則10+x+y值的數(shù)據(jù)類型是A、intB、doubleC、floatD、不確定標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:由算術(shù)運(yùn)算符組成的表達(dá)式中,若含有不同類型的操作數(shù),則系統(tǒng)隱含地將低類型轉(zhuǎn)化為高類型,由低至高的順序?yàn)閕nt->float->double。14、下列程序的執(zhí)行結(jié)果為#include<iostream.h>voidmain(){inta=3,b=0;int*p=&a;b=+a++;cout<<*p<<’,’<<b<<end1;}A、3,4B、4,3C、3,4D、4,4標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:*p為所指對象a的值,語句“b=+a++;”等價于“b=b+a;a=a+1;”。15、下面程序的運(yùn)行結(jié)果為#include<iostream.h>voidmain(){for(inta=0,x=0;!x&&a<=10;a++){a++;}cout<<a<<end1;}A、10B、11C、12D、0標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:在進(jìn)入最后一次循環(huán)時a=10,在循環(huán)體內(nèi)執(zhí)行“a++;”后a=11,執(zhí)行完該次循環(huán)體計(jì)算for循環(huán)的增量部分后a=12小于10,循環(huán)結(jié)束。16、下列選項(xiàng),不正確的是A、for(inta=1;a<=10;a++);B、inta=1;do{a++;}while(a<=10)C、inta=1;while(a<=10){a++;}D、for(inta=1;a<=10;a++)a++;標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:本題考查的是基本循環(huán)語句的使用,選項(xiàng)A),選項(xiàng)C)和選項(xiàng)D)都為正確的形式,在選項(xiàng)B)中的while(a<=10)后缺少結(jié)束符分號“;”。17、下面關(guān)于數(shù)組的初始化正確的是A、charstr[]={’a’,’b’,’c’}B、charstr[2]={’a’,’b’,’c’}C、charstr[2][3]={{.’a’,’b’},{’c’,’d’},{’e’,’f’}}D、charstr()={’a’,’b’,’c’}標(biāo)準(zhǔn)答案:1知識點(diǎn)解析:本題考查的是字符數(shù)組的初始化。選項(xiàng)B)中用3個元素初始化大小為2的數(shù)組,越界了;選項(xiàng)C)中應(yīng)該是2行3列的數(shù)組,題中使用3行2列初始化;選項(xiàng)D)中數(shù)組合后應(yīng)用方括號。18、下列程序的輸出結(jié)果為#include<iostream.h>voidmain(){char*a[]={"hello","the","world"};char**pa=a;pa++;cout<<*pa<<end1;}A、helloB、theC、worldD、hellotheworld標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:本題主要考查的是指針數(shù)組和指向指針的指針之間的關(guān)系,其中a是指針數(shù)組,pa是指向指針數(shù)組行的指針,所以pa自加1相當(dāng)于指向下一行。19、決定C++語言中函數(shù)的返回值類型的是A、return語句中的表達(dá)式類型B、調(diào)用該函數(shù)時系統(tǒng)隨機(jī)產(chǎn)生的類型C、調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型D、在定義該函數(shù)時所指定的數(shù)據(jù)類型標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:C++語言中,在定義該函數(shù)時所指定的數(shù)據(jù)類型決定函數(shù)的返回值類型。20、下列程序的輸出結(jié)果是#include<iostream.h>intmin(inta,intb){if(a<b)returna;elsereturnb;return0;}voidmain(){cout<<min(1,min(2,3))<<end1;}A、0B、1C、2D、3標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:本題考查的是函數(shù)的調(diào)用,第一次調(diào)用min(2,3),因?yàn)?<3,所以返回值為2,第二次調(diào)用min(1,2),因?yàn)?<2,所以返回1。21、下列程序的運(yùn)行結(jié)果為#include<iostream.h>voidprint(doublea){cout<<++a;}voidprint(inta,intb){cout<<b<<a;}voidmain(){print(1.2);tout<<"";print(3,4);}A、1.234B、2.234C、1.243D、2.243標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:本題考查的是對重載函數(shù)的掌握,因?yàn)?+a是右結(jié)合的,所以a先自加1再輸出,即為2.2,之后調(diào)用函數(shù)print(inta,intb)輸出b和a,即43。22、對類成員訪問權(quán)限的控制,是通過設(shè)置成員的訪問控制屬性實(shí)現(xiàn)的,下列不是訪問控制屬性的是A、公有類型B、私有類型C、保護(hù)類型D、友元類型標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:所謂的訪問控制只包含公有類型、私有類型和保護(hù)類型3種,友元可以是一個函數(shù),也可以是一個類。23、在類的定義中,用于為對象分配內(nèi)存空間,對類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是A、友元函數(shù)B、虛函數(shù)C、構(gòu)造函數(shù)D、析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:構(gòu)造函數(shù)在創(chuàng)建對象時系統(tǒng)自動調(diào)用,其功能是使用給定的值將對象初始化。24、類的析構(gòu)函數(shù)的作用是A、一般成員函數(shù)的初始化B、類的初始化C、對象的初始化D、刪除類創(chuàng)建的對象標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:析構(gòu)函數(shù)就是用來釋放對象的,它的調(diào)用完成之后,對象也就消失了,相應(yīng)的內(nèi)存空間也被釋放了。25、下列說法正確的是A、內(nèi)聯(lián)函數(shù)在運(yùn)行時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方B、內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方C、類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義D、類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inline定義標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:本題考查的是內(nèi)聯(lián)函數(shù)的定義,引入內(nèi)聯(lián)函數(shù)是為了解決程序中函數(shù)調(diào)用的效率問題,是以目標(biāo)代碼的增加為代價換取時間的節(jié)?。灰话愫瘮?shù)在運(yùn)行時被調(diào)用,而調(diào)用的內(nèi)聯(lián)函數(shù)在編譯時就被替代了,如果不加inline關(guān)鍵字,則編譯器會將在類說明部分定義的任何函數(shù)都被認(rèn)定為內(nèi)聯(lián)函數(shù)。26、下面對靜態(tài)數(shù)據(jù)成員的描述中,正確的是A、靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化B、靜態(tài)數(shù)據(jù)成員不可以被類的對象調(diào)用C、靜態(tài)數(shù)據(jù)成員不能受private控制符的作用D、靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用.標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:靜態(tài)數(shù)據(jù)成員必須在類體外初始化,它是類的所有對象的共有成員,需要使用類名調(diào)用,靜態(tài)數(shù)據(jù)成員的初始化與權(quán)限控制無關(guān)。27、下面對于友元函數(shù)描述正確的是A、友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義B、友元函數(shù)是類的成員函數(shù)C、友元函數(shù)破壞了類的封裝性和隱藏性D、友元函數(shù)不能訪問類的私有成員標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:友元函數(shù)的定義既可以在類內(nèi)部進(jìn)行,也可以在類外部進(jìn)行。它提高了程序的運(yùn)行效率,但破壞了類的封裝性和隱藏性,使得類的非成員函數(shù)可以訪問類的私有成員。28、在公有派生情況下,有關(guān)派生類對象和基類對象的關(guān)系,下列敘述不正確的是A、派生類的對象可以賦給基類的對象B、派生類的對象可以初始化基類的引用C、派生類的對象可以直接訪問基類中的成員D、派生類的對象的地址可以賦給指向基類的指針標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:公有繼承的派生類和基類是子類型的關(guān)系,所謂子類型是類型間一般和特殊的關(guān)系,即派生類是基類的子類型或者說基類的操作可以被用于操作派生類的對象。29、下面程序的運(yùn)行結(jié)果為#include<iostream.h>classA{public:A(){cout<<"1";}~A(){cout<<"2";}};classB:publicA{public:B(){cout<"3";}~B(){cout<<"4";}};voidmain(){BA、1234B、1324C、1342D、3142標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:本題考查的是在繼承中構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,應(yīng)該是先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù),調(diào)用析構(gòu)函數(shù)時的順序是先調(diào)用派生類的析構(gòu)函數(shù),后調(diào)用基類的析構(gòu)函數(shù)。30、下列關(guān)于虛基類的描述,錯誤的是A、設(shè)置虛基類的目的是為了消除二義性B、虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用C、若同一層中包含多個虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用D、若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:虛基類的引入就是為了消除二義性,其構(gòu)造函數(shù)的調(diào)用仍然是按照繼承的順序進(jìn)行的,對于多個虛基類則按它們說明的次序調(diào)用,虛基類的構(gòu)造函數(shù)選于非虛基類的構(gòu)造函數(shù)執(zhí)行。31、下列關(guān)于多態(tài)性的描述,錯誤的是A、C++語言中的多態(tài)性分為編譯時的多態(tài)性和運(yùn)行時的多態(tài)性B、編譯時的多態(tài)性可通過函數(shù)重載實(shí)現(xiàn)C、運(yùn)行時的多態(tài)性可通過模板和虛函數(shù)實(shí)現(xiàn)D、實(shí)現(xiàn)運(yùn)行時多態(tài)性的機(jī)制稱為動態(tài)綁定標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:編譯時的多態(tài)性是通過函數(shù)重載和模板體現(xiàn)的,運(yùn)行時的多態(tài)性是通過虛函數(shù)體現(xiàn)的。32、下列運(yùn)算符中,在C++語言中不能重載的是A、*B、>=C、::D、/標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:不能被重載的運(yùn)算符還包括:“.”,“.*”,“->*”和“?:”。33、當(dāng)使用fstream流類定義一個流對象并打開一個磁盤文件時,文件的隱含打開方式為A、ios::inB、ios::outC、ios::in|ios::outD、以上都不對標(biāo)準(zhǔn)答案:8知識點(diǎn)解析:使用fstream類建立文件流必須定義打開方式,否則編譯器無法判斷該文件流是讀還是寫。34、下列程序的運(yùn)行結(jié)果是#include<iostream.h>classA{inta;public:A(){a=0;}A(intaa){a=aa;cout<<a++;}};voidmain(){Ax,y(2),z(3);cout<<end1;}A、0B、23C、34D、25標(biāo)準(zhǔn)答案:2知識點(diǎn)解析:本題考查的是對構(gòu)造函數(shù)的掌握,另外“++”運(yùn)算符是右結(jié)合的,所以在進(jìn)行輸出的時候都是先把原來的輸出后再自加1。35、下面程序的輸出結(jié)果是#include<iostream,h>classexample{inta;public:example(intb){a=b++;}voidprint(){a=a+1;cout<<a<<"";}voidprint()const{cout<<a<<"";}};voidmain(){exampleX(3);A、22B、43C、42D、32標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:“++”是右結(jié)合的,所以先賦值為3,最后輸出3+1;常成員函數(shù)只有常對象才能調(diào)用,所以輸出2。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、在長度為n的有序線性表中進(jìn)行二分查找,需要的比較次數(shù)為【】。標(biāo)準(zhǔn)答案:log2n知識點(diǎn)解析:二分法查找只適用于順序存儲的有序表。對于長度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次。37、需求分析階段的工作,可以分成以下4個方面:【】、分析與綜合、編寫需求規(guī)格說明書和評審。標(biāo)準(zhǔn)答案:需求獲取知識點(diǎn)解析:需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求的過程,由需求分析的定義可知,需求分析的內(nèi)容包括:提煉、分析和仔細(xì)審查已收集到的需求。因此需求分析階段的工作,可以分成以下四個方面:需求獲取、分析與綜合、編寫需求規(guī)格說明書和評審。38、聯(lián)接運(yùn)算是將兩個或兩個以上的關(guān)系根據(jù)聯(lián)接條件生成一個【】。標(biāo)準(zhǔn)答案:新關(guān)系知識點(diǎn)解析:關(guān)系的聯(lián)接運(yùn)算是指將兩個或兩個以上的關(guān)系根據(jù)聯(lián)接條件生成一個新關(guān)系。常見的聯(lián)接有等值聯(lián)接和自然聯(lián)接。39、若a是float型變量,且a=6,則表達(dá)式“a/2+(int)(a+1)%2”的值為【】。標(biāo)準(zhǔn)答案:4知識點(diǎn)解析:a/2的值為3,表達(dá)式(int)(a+1)%2的值為1,所以最后結(jié)果為4。40、選擇運(yùn)算的結(jié)果關(guān)系同原關(guān)系具有【】的結(jié)構(gòu)框架,投影運(yùn)算的結(jié)果關(guān)系同原關(guān)系通常具有【】的結(jié)構(gòu)框架。標(biāo)準(zhǔn)答案:相同不同知識點(diǎn)解析:結(jié)構(gòu)框架是由n個命名的屬性組成,如果將一個關(guān)系看作一張表,那么選擇操作就是從這張表中選出一些行而丟棄另一些行。而投影操作則是從這張表中選出某些列而丟棄另一些列。如果只對一個關(guān)系中的某些屬性感興趣,那么就需要使用投影操作在這些屬性上投影該關(guān)系。因此,選擇運(yùn)算的結(jié)果關(guān)系同原關(guān)系具有相同的結(jié)構(gòu)框架,投影運(yùn)算的結(jié)果關(guān)系同原關(guān)系通常具有不同的結(jié)構(gòu)框架。四、填空題(本題共8題,每題1.0分,共8分。)41、下面語句段的輸出結(jié)果是【】。intx=0,y=2,z=3;switch(x){case0:switch(y){case1:cout<<’*’;break;case2:cout<<’%’;break;}case1:switch(z){case1:cout<<’$’;bre標(biāo)準(zhǔn)答案:%#知識點(diǎn)解析:本題考核選擇語句的嵌套使用。由于第1個case后面沒有跳轉(zhuǎn)語句“break;”,所以程序還要進(jìn)入第2個分支執(zhí)行。因此程序最后輸出“%#”。42、若要把類FriendClass定義為類MyClass的友元類,則應(yīng)在類MyClass的定義中加入語句【】。標(biāo)準(zhǔn)答案:friendFriendClass;知識點(diǎn)解析:本題考核友元類的聲明。友元類可以在另一個類的公有部分或私有部分進(jìn)行說明,說明的方法為:friend<類名>;43、有如下的類的模板定義:template<classT>classMyClass{private:Tnumber;public:MyClass(Tk);…};其中構(gòu)造函數(shù)MyClass()用k的值初始化數(shù)據(jù)成員n。因此在模板類體外,構(gòu)造函數(shù)MyClass應(yīng)定義為【】。標(biāo)準(zhǔn)答案:template<classT>/MyClass<T>::MyClass(Tk):number(k){}知識點(diǎn)解析:類模板的成員函數(shù)的類體外的定義以“template<classT>”開頭。44、有以下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass();~MyClass();staticints;voidSetValue(intval);};intMyClass::s=0;MyClass::MyClass(){s++;}voidMy標(biāo)準(zhǔn)答案:3知識點(diǎn)解析:本題程序中把變量s定義為靜態(tài)數(shù)據(jù)成員,它被MyClass類的所有對象所共享,但它不屬于類的任何一個對象,它的作用域是類范圍。在類MyClass的構(gòu)造函數(shù)中,每創(chuàng)建一個對象,s就增1。由此可知,s用來記錄建立對象的個數(shù)。由于創(chuàng)建對象指針p時并不會調(diào)用構(gòu)造函數(shù),所以s最后的值是3。45、有以下程序:#include<iostream>usingnamespacestd;classBase{private:inta,b;public:Base(intx,inty){a=x;b=y;}voidShow(){cout<<a<<’,’<<b<<end1;}}標(biāo)準(zhǔn)答案:10,20知識點(diǎn)解析:本題考核基類指針的使用。本題首先定義了一個基類Base和一個由Base派生出來的派生類Derive。在主函數(shù)中,定義了一個基類Base指針pb和基類對象b,還定義了派生類Derive的對象d。然后將派生類對象d的地址賦值給指向基類Base的指針pb。由于Derive是Base的子類型,因此允許上述賦值。但這時指針pb只能使用從基類Base繼承的成員,即當(dāng)pb指向d對象時,pb->show還是調(diào)用基類Base的成員函數(shù)show()。所以程序最后輸出的對象d中對基類成員的初始化值,即10,20。46、設(shè)文件temp.txt已存在,則以下的打印結(jié)果是【】#include<iostream>#include<fstream>usingnamespacestd;intmain(){ofstreamoutf("temp.txt",iosbase::trunC);outf<<"Howyoudoing";outf.close();ifstreaminf("temp.txt");標(biāo)準(zhǔn)答案:How知識點(diǎn)解析:本題考核文件的I/O操作。程序中定義了ofstream類的對象outf和ifstream類的對象inf。然后利用對象outf在文件test.txt中寫入“Howyoudoing”。最后利用對象inf打開文件,將其中的數(shù)據(jù)輸入到變量str中,由于讀時遇到空格時就終止,所以str中存放的字符串為“How”。47、寫出執(zhí)行完下列代碼段之后指定變量的值:boolx=true,y=false,z=false;x=x&&y||z;y=x||y&&z;z=!(x!=y)||(y==z);則x=false,y=【】,z=【】。標(biāo)準(zhǔn)答案:falsetrue知識點(diǎn)解析:執(zhí)行語句“x&&y||z;”后,x的值變?yōu)閒alse。執(zhí)行“x||y&&z”后,y的值變?yōu)閒alse,執(zhí)行“!(x!=y)||y==z);”后,z的值變?yōu)閠rue。48、將下面的語句段(A)補(bǔ)充完整,使其和語句段(B)在功能上完全等價。(a)doubles=0.0;【】;intk=0;do{s+=d;k++;d=1.0/(k*k+1);}while(【】);(b)doubles=1.0;for(intk=1;k<=10;k++)s+=1.0/(k*(k+1));標(biāo)準(zhǔn)答案:d=1.0k<=10知識點(diǎn)解析:本題考核while循環(huán)與for循環(huán)之間的轉(zhuǎn)換。只要把握住循環(huán)的起始條件、結(jié)束條件和變量控制,就易解這種類型的題目。國家二級(C++)筆試模擬試卷第4套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、設(shè)有一個10階的對稱矩陣A[10][10],采用壓縮存儲方式按行將矩陣中下三角部分的元素存入一維數(shù)組B[]中,A[0][0]存入B[0]中,則A[8][5]在B[]中()位置。A、32B、33C、41D、65標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:設(shè)有一個10階的對稱矩陣A[10][10],采用壓縮存儲方式按行將矩陣中下三角部分的元素存入一維數(shù)組B[]中,A[0][0]存入B[0]中,則A[8][5]在B[]中41=1+2+3+4+5+6+7+8+5位置。2、設(shè)F是一個森林,B是由F轉(zhuǎn)換得到的二叉樹,F(xiàn)中有幾個非葉結(jié)點(diǎn),則B中右指針域?yàn)榭盏慕Y(jié)點(diǎn)有()個。A、n-1B、nC、n+1D、n+2標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:具體方法是:①將森林中的每棵樹變?yōu)槎鏄?。②因?yàn)檗D(zhuǎn)換所得的二叉樹的根結(jié)點(diǎn)的右子樹均為空,故可將各二叉樹的根結(jié)點(diǎn)視為兄弟從左至右連在一起,就形成了一棵二叉樹。3、在一個無向圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的()倍。A、3B、2C、1D、1/2標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在一個無向圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的2倍。4、由兩個棧共享一個向量空間的好處是()。A、減少存取時間,降低下溢發(fā)生的幾率B、節(jié)省存儲空間,降低上溢發(fā)生的幾率C、減少存取時間,降低上溢發(fā)生的幾率D、節(jié)省存儲空間,降低下溢發(fā)生的幾率標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:由兩個棧共享一個向量空間的好處是節(jié)省存儲空間,降低上溢發(fā)生的幾率。5、設(shè)數(shù)組data[m]作為循環(huán)隊(duì)列SQ的存儲空間,front為隊(duì)頭指針,rear為隊(duì)尾指針,則執(zhí)行出隊(duì)操作后其頭指針front值為()。A、front=front+1B、front=(front+1)%(m-1)C、front=(front-1)%mD、front=(front+1)%m標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:設(shè)數(shù)組data[m]作為循環(huán)隊(duì)列SQ的存儲空間,front為隊(duì)頭指針,rear為隊(duì)尾指針,則執(zhí)行出隊(duì)操作后其頭指針front值為front=(front+1)%m。6、一個非空廣義表的表頭()。A、不可能是子表B、只能是子表C、只能是原子D、可以是子表或原子標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:一個非空廣義表的表頭可以是子表或原子。7、用某種排序方法對關(guān)鍵字序列(25,84,21,47,15,27,68,35,20)進(jìn)行排序時,序列的變化情況如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,2重,25,27,35,47,68,84則所采用的排序方法是()。A、選擇排序B、希爾排序C、歸并排序D、快速排序標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:快速排序的基本思想是基于分治策略的。對于輸入的子序列L[p..r],如果規(guī)模足夠小則直接進(jìn)行排序,否則分三步處理:①分解(Divide):將輸入的序列L[p..r]劃分成兩個非空子序列L[p..q]和L[q+1..r],使L[p..q]中任一元素的值不大于L[q+1..r]中任一元素的值。②遞歸求解(Conquer):通過遞歸調(diào)用快速排序算法分別對L[p..q]和L[q+1..r]進(jìn)行排序。③合并(Merge):由于對分解出的兩個子序列的排序是就地進(jìn)行的,所以在L[p..q]和L[q+1..r]都排好序后不需要執(zhí)行任何計(jì)算L[p..r)就已排好序。8、適于對動態(tài)查找表進(jìn)行高效率查找的組織結(jié)構(gòu)是()。A、有序表B、分塊有序表C、三叉排序樹D、線性鏈表標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:適于對動態(tài)查找表進(jìn)行高效率查找的組織結(jié)構(gòu)是三叉排序樹。9、不定長文件是指()。A、文件的長度不固定B、記錄的長度不固定C、字段的長度不固定D、關(guān)鍵字項(xiàng)的長度不固定標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:不定長文件是指記錄的長度不固定。10、n個頂點(diǎn).的連通圖至少有()條邊。A、n-1B、nC、n+1D、0標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:n個頂點(diǎn)的連通圖至少有n-1條邊。二、選擇題(本題共25題,每題1.0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44971-2024土壤硒含量等級
- 工作總結(jié)之大學(xué)生銷售實(shí)習(xí)總結(jié)
- 銀行業(yè)務(wù)流程管理制度
- 銀行合規(guī)監(jiān)督制度
- 科技有限公司轉(zhuǎn)讓合同(32篇)
- 《連鎖企業(yè)員工培訓(xùn)》課件
- 武漢凱德1818廣場購物中心案例研究分析報(bào)告(上)
- 新產(chǎn)品開發(fā)(toshiba案例分析組)
- 【培訓(xùn)課件】青浦區(qū)科技管理相關(guān)政策
- 2025屆廣東省佛山市第四中學(xué)高考考前提分?jǐn)?shù)學(xué)仿真卷含解析
- FOCUS-PDCA改善案例-提高術(shù)前手術(shù)部位皮膚準(zhǔn)備合格率醫(yī)院品質(zhì)管理成果匯報(bào)
- 期末(試題)-2024-2025學(xué)年人教PEP版英語六年級上冊
- 專題07:回憶性散文閱讀(考點(diǎn)串講)
- 2024年云南省昆明滇中新區(qū)公開招聘20人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 創(chuàng)新創(chuàng)業(yè)創(chuàng)造:職場競爭力密鑰智慧樹知到期末考試答案章節(jié)答案2024年上海對外經(jīng)貿(mào)大學(xué)
- 醫(yī)院檢驗(yàn)科實(shí)驗(yàn)室生物安全程序文件SOP
- 學(xué)問海鮮智慧樹知到期末考試答案2024年
- 教你成為歌唱達(dá)人智慧樹知到期末考試答案2024年
- 供應(yīng)商調(diào)查評價表(簡易版)
- 寫字樓保潔服務(wù)投標(biāo)方案
- MRPERP基本原理
評論
0/150
提交評論