版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)(C++)筆試模擬試卷25(共9套)(共444題)國(guó)家二級(jí)(C++)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、算法的時(shí)間復(fù)雜度是指A、算法程序運(yùn)行的具體時(shí)間B、算法程序的長(zhǎng)度C、算法程序執(zhí)行過程中基本運(yùn)算的次數(shù)D、運(yùn)行時(shí)算法程序所占的內(nèi)存容量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度是用算法程序執(zhí)行過程中所需要的基本運(yùn)算次數(shù)來衡量的。2、下列數(shù)據(jù)結(jié)構(gòu)中能使用對(duì)分查找的是A、二叉鏈表B、帶鏈的棧C、有序線性鏈表D、有序順序表標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)分查找只能適用于順序存儲(chǔ)的有序線性表。3、按“先進(jìn)先出”原則組織數(shù)據(jù)的結(jié)構(gòu)是A、有序表B、棧C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是按“先進(jìn)后出”原則組織數(shù)據(jù)的結(jié)構(gòu);隊(duì)列是按“先進(jìn)先出”原則組織數(shù)據(jù)的結(jié)構(gòu);而有序表與二叉樹均不是。因此,本題的正確答案為C。4、對(duì)下列二叉樹進(jìn)行前序遍歷的結(jié)果是A、ZBTYCPXAB、ATBZXCYPC、ZBTACYXPD、ATBZXCPY標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:按照二叉樹前序遍歷的方法:在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右于樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右于樹;并且.在遍歷左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。對(duì)本題中的二叉樹進(jìn)行前序遍歷的結(jié)果應(yīng)是ATBZXCYP。5、下列敘述中正確的是A、軟件就是程序清單B、軟件就是存放在計(jì)算機(jī)中的文件C、軟件應(yīng)包括程序清單以及運(yùn)行結(jié)果D、軟件包括程序和文檔標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件應(yīng)包括程序和文檔。6、在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過發(fā)送A、調(diào)用語句B、命令C、口令D、消息標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在面向?qū)ο蠓椒ㄖ校粋€(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)是通過發(fā)送消息來實(shí)現(xiàn)的。7、在模塊化程序設(shè)計(jì)中,按功能劃分模塊的原則是A、各模塊的功能盡量單一,且各模塊之間的聯(lián)系盡量的少B、各模塊的功能盡量單一,且各模塊之間的聯(lián)系盡量緊密C、各模塊應(yīng)包括盡量多的功能D、各模塊應(yīng)包括盡量多的輸入輸出操作標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在模塊化程序設(shè)計(jì)中,按功能劃分模塊的原則是:要求各模塊的功能盡量單一,且各模塊之間的聯(lián)系盡量的少。8、下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是A、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余B、數(shù)據(jù)庫系統(tǒng)避免了一切冗余C、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致D、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)只是減少了數(shù)據(jù)冗余,但避免一切冗余;數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性并不是指數(shù)據(jù)類型一致,而是指采用了統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)方式,數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)比較,數(shù)據(jù)庫系統(tǒng)解決了數(shù)據(jù)共享問題。9、在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是A、樹結(jié)構(gòu)B、網(wǎng)結(jié)構(gòu)C、線性表D、二維表標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是二維表。10、下列敘述中正確的是A、數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題C、數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理最本質(zhì)的特點(diǎn)是實(shí)現(xiàn)數(shù)據(jù)的共享。為了實(shí)現(xiàn)數(shù)據(jù)的共享,保證數(shù)據(jù)的獨(dú)立性、完整性和安全性,需要有一組軟件來管理數(shù)據(jù)庫中的數(shù)據(jù),處理用戶對(duì)數(shù)據(jù)庫的訪問,這組軟件就是數(shù)據(jù)庫管理系統(tǒng)(DBMS)。數(shù)據(jù)庫管理系統(tǒng)與計(jì)算機(jī)系統(tǒng)內(nèi)的其他軟件一樣,也在操作系統(tǒng)(OS)的支持下工作,它與操作系統(tǒng)的關(guān)系極為密切。操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)與應(yīng)用程序在一定的硬件支持下就構(gòu)成了數(shù)據(jù)庫系統(tǒng)。二、選擇題(本題共25題,每題1.0分,共25分。)11、以下敘述中不正確的是A、在C中,調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參B、在C的函數(shù)中,最好使用全局變量C、在C中,形式參數(shù)只是局限于所在函數(shù)D、在C中,函數(shù)名的存儲(chǔ)類別為外部標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題也是考查C語言中函數(shù)的概念及其使用。函數(shù)調(diào)用時(shí),值可以雙向傳遞,并沒有限制使用全局變量還是局部變量,需要根據(jù)程序的邏輯需要進(jìn)行選擇。12、C++語言中函數(shù)返回值的類型決定于A、return語句中的表達(dá)式類型B、調(diào)用函數(shù)的主調(diào)函數(shù)類型C、調(diào)用函數(shù)時(shí)臨時(shí)類型D、定義函數(shù)時(shí)所指定的函數(shù)類型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)在定義時(shí)已經(jīng)可以指定其函數(shù)類型,則函數(shù)返回值類剎就是該類型。13、若要說明一個(gè)類型名STP,使得STPs;等價(jià)于char*s,以下選項(xiàng)中正確的是A、typedefSTPchar*s;B、typedef*charSTP;C、typedefSTP*char;D、typedefchar*TP;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查類型定義typedef的使用方式,考生常犯的問題是把兩者的位置顛倒。14、以下非法的賦值語句是A、n=(i=2,++i);B、j++;C、++(i+1),D、x=i>0;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題其實(shí)是考查各級(jí)運(yùn)算符的優(yōu)先級(jí)的。選項(xiàng)A賦值符號(hào)右側(cè)為逗號(hào)表達(dá)式,其取值為最后一項(xiàng)表達(dá)式的值;選項(xiàng)B隱含表示為j=J+1,這是很常用的一種賦值表達(dá)式。選項(xiàng)D賦值符號(hào)右側(cè)為邏輯表達(dá)式,其值為1或0,可以賦值給變量x。將選項(xiàng)C展開為i+1=i+1+1,這是錯(cuò)誤的。15、C++語言中在C語言的基礎(chǔ)上增加的特性不包括A、G構(gòu)B、引用C、類和對(duì)象D、靜態(tài)成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題很簡(jiǎn)單,不過考生要注意引用是C++的新特性。只有結(jié)構(gòu)是C語言就出現(xiàn)的特性。16、對(duì)于下列語句,正確的判斷是for(x=0,y=O;(y!=123)&&(x<4);x++);A、是無限循環(huán)B、循環(huán)次數(shù)不定C、最多執(zhí)行4次D、最多執(zhí)行3次標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查for循環(huán)條件中三個(gè)表達(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];則對(duì)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知識(shí)點(diǎn)解析:在數(shù)組這部分的知識(shí)里面,數(shù)組下標(biāo)越界是一個(gè)比較容易忽略的問題,其下標(biāo)是從。開始,至n-1為止,因此選項(xiàng)D是正確答案。18、設(shè)a和b均為double型變量,且a=5.5、b=2.5,則表達(dá)式(int)a+b/b的值是A、6.5B、6C、5.5D、6標(biāo)準(zhǔn)答案:D知識(shí)點(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知識(shí)點(diǎn)解析:賦值語句合法的重要標(biāo)志之一就是賦值符號(hào)的左側(cè)應(yīng)該表示為一個(gè)變量,即可以在內(nèi)存中存在一塊空間用于存放賦值符號(hào)右側(cè)的值。據(jù)此,可以斷定選項(xiàng)A和B可以排除。注意;選項(xiàng)C中不是逗號(hào)表達(dá)式,要考慮優(yōu)先級(jí)的問題。本題答案為D。20、語句cout<<(a=2)&&(b=-2);的輸出結(jié)果是A、無輸出B、編譯錯(cuò)誤C、-1D、1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:很明顯.本題考查的是表達(dá)式的值作為結(jié)果輔出??梢钥闯觯颈磉_(dá)式是一個(gè)邏輯表達(dá)式,其結(jié)果為真或假,那么輸出則對(duì)應(yīng)1和0,故排除選項(xiàng)C。本題答案為D。21、在下面的函數(shù)聲明中,存在著語法錯(cuò)誤的是A、voidBC(inta,int)B、voidBD(int,int)C、voidBE(int,int=5)D、intBF(intx;intv)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)聲明時(shí),可以指定其形參的默認(rèn)值,不過要從右向左指定;可以省略形參名,僅以形參類型表示;形參表之間用逗號(hào)分割。因此,本題答案為D。22、下列關(guān)于指針的操作中,錯(cuò)誤的是A、兩個(gè)同類型的指針可以進(jìn)行比較運(yùn)算B、可以用一個(gè)空指針賦給某個(gè)指針C、一個(gè)指針可以加上兩個(gè)整數(shù)之差D、兩個(gè)同類型的指針可以相加標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查指針能夠進(jìn)行的運(yùn)算方式。指針可以加減一個(gè)整數(shù),兩個(gè)指針可以相減,表示指針之間的元素個(gè)數(shù)。指針相加則沒有意義,因此本題答案為D。23、靜態(tài)成員函數(shù)不能說明為A、整型函數(shù)B、常函數(shù)C、虛函數(shù)D、內(nèi)聯(lián)函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)函數(shù)不能說明為虛函數(shù)。24、靜態(tài)成員函數(shù)沒有A、返回值B、this指針C、指針參數(shù)D、返回類型標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:this指針是系統(tǒng)隱含的用于指向當(dāng)前對(duì)象的指針。由于靜態(tài)函數(shù)是同類中所以對(duì)象都共享的函數(shù),在內(nèi)存當(dāng)中只存在一份,不屬于某個(gè)對(duì)象所有,所以靜態(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<<end1;}A、27B、27.5C、28D、28.5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查表達(dá)式值的類型由參與運(yùn)算的所有變量的類型中優(yōu)先級(jí)最高的變量類型所決定。不過要注意的是整型向float型轉(zhuǎn)換時(shí).將丟失小數(shù)部分,即向下馭值。26、執(zhí)行下列語句后,輸出結(jié)果為cout.put(’s’);cout<<,’c’<<’a’;A、caB、scaC、sD、a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題很簡(jiǎn)單,考查cout對(duì)象的成員函數(shù)put方法和<<操作符的使用方法。27、下列運(yùn)算符中,不能重載的是A、?:B、+C、-D、<=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析::?是C++中惟一一個(gè)三目運(yùn)算符,不能被重載。28、所有在函數(shù)中定義的變量及函數(shù)的形式參數(shù),都屬于A、全局變量B、局部變量C、靜態(tài)變量D、常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查幾種變量的作用域范圍及其分類。29、為引入對(duì)象的同義詞,對(duì)象的別名稱為A、指針B、引C、枚舉D、結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:引用是C++引入的一個(gè)新概念,表示變量或?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知識(shí)點(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知識(shí)點(diǎn)解析:虛函數(shù)的引入是為了解決動(dòng)態(tài)綁定問題,使類的實(shí)例表現(xiàn)出多態(tài)性,虛函數(shù)在繼承后依然保持虛函數(shù)特性,此時(shí)不需要用virtual關(guān)鍵詞修飾。32、類的構(gòu)造函數(shù)的作用是A、一般成員函數(shù)B、類的初始化C、對(duì)象的初始化D、刪除對(duì)象創(chuàng)建的所有對(duì)象標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查類的構(gòu)造函數(shù)的作用,構(gòu)造函數(shù)一般負(fù)責(zé)完成對(duì)象建立時(shí)的初始化工作,如資源的分配。33、繼承機(jī)制的作用是A、信息隱藏B、數(shù)據(jù)封裝C、定義新類D、數(shù)據(jù)抽象標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:繼承是類的一個(gè)重要特性,沒有繼承,面向?qū)ο蠓椒ㄒ簿筒淮嬖?。正是有了繼承,才呈現(xiàn)出豐富多彩的類和對(duì)象。34、關(guān)于虛函數(shù)的描述中正確的是A、虛函數(shù)是一個(gè)靜態(tài)成員函數(shù)B、虛函數(shù)是一個(gè)非成員函數(shù)C、虛函數(shù)既可以在函數(shù)說明時(shí)定義,也可以在函數(shù)實(shí)現(xiàn)時(shí)定又D、派生類的虛函數(shù)與基類中對(duì)應(yīng)的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)和類型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:虛函數(shù)不能定義為靜態(tài)函數(shù);虛函數(shù)的作用在于繼承,表現(xiàn)出動(dòng)態(tài)性。所以,在派生類中定義的虛函數(shù)必須和基類中對(duì)應(yīng)的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)和類型。35、下列表示純虛函數(shù)的成員函數(shù)是A、virtualintfunc(int);B、voidfunc(int)=0;C、virtualvoidfunc=0;D、virtualvoidfunc(int){}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于在前序遍歷中首先訪問根結(jié)點(diǎn),因此,前序序列中的第一個(gè)結(jié)點(diǎn)為二叉樹的根結(jié)點(diǎn),即D為二叉樹的根結(jié)點(diǎn)。又由于在中序遍歷中訪問根結(jié)點(diǎn)的次序?yàn)榫又?,而訪問左于樹上的結(jié)點(diǎn)為居先,訪問右子樹上的結(jié)點(diǎn)為最后,因此,在中序序列中,以根結(jié)點(diǎn)(D)為分界線,前面的子序列(ABC)一定在左子樹中,后面的子序列(EFG)一定在右于樹中。同樣的道理,對(duì)于已經(jīng)劃分出的每一個(gè)子序列的所有結(jié)點(diǎn)中,位于前序序列最前面的一個(gè)結(jié)點(diǎn)為子樹的根結(jié)點(diǎn),而在中序序列中位于該根結(jié)點(diǎn)前面的結(jié)點(diǎn)構(gòu)成左子樹上的結(jié)點(diǎn)子序列,位于該根結(jié)點(diǎn)后面的結(jié)點(diǎn)構(gòu)成右子樹上的結(jié)點(diǎn)子序列。這個(gè)處理過程直到所有子序列為空為止。根據(jù)上述道理,該二叉樹恢復(fù)的過程如下圖所示;[*]根據(jù)后序遍歷的方法,對(duì)該二叉樹后序遍歷的結(jié)果為ACBEGFD。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、假設(shè)為循環(huán)隊(duì)列分配的向量空間為Q[20],若隊(duì)列的長(zhǎng)度和隊(duì)頭指針值分別為13和17,則當(dāng)前尾指針的值為【】。標(biāo)準(zhǔn)答案:10知識(shí)點(diǎn)解析:假設(shè)為循環(huán)隊(duì)列分配的向量空間為Q[20],若隊(duì)列的長(zhǎng)度和隊(duì)頭指針值分別為13和17,則當(dāng)前尾指針的值為10。37、廣義表的深度是指【】。標(biāo)準(zhǔn)答案:表展開后括號(hào)的層數(shù)知識(shí)點(diǎn)解析:在廣義表的深度是指表展開后括號(hào)的層數(shù)。38、棧頂?shù)奈恢檬请S著【】操作而變化的。標(biāo)準(zhǔn)答案:進(jìn)棧和退棧知識(shí)點(diǎn)解析:棧頂?shù)奈恢檬请S著進(jìn)棧和退棧操作而變化的。39、在單鏈表上難以實(shí)現(xiàn)的排序方法有希爾排序、【】和堆排序。標(biāo)準(zhǔn)答案:快速排序知識(shí)點(diǎn)解析:在單鏈表上難以實(shí)現(xiàn)的排序方法有希爾排序、快速排序和堆排序。因?yàn)檫@三種排序方法均適合完成順序結(jié)構(gòu)的排序,可隨機(jī)訪問其中的元素。而單鏈表屬于動(dòng)態(tài)的數(shù)據(jù)結(jié)構(gòu),訪問元素要通過指針來實(shí)現(xiàn)。40、在有序表(12,24,36,48,60,72,84)中二分查找關(guān)鍵字72時(shí)所需進(jìn)行的關(guān)鍵字比較次數(shù)為【】。標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在有序表(12,24,36,48,60,72,84)中二分查找關(guān)鍵字72時(shí)所需進(jìn)行的關(guān)鍵字比較次數(shù)為2,僅需要拆分2次即可找到72。四、填空題(本題共10題,每題1.0分,共10分。)41、C++中類作用域符是【】。標(biāo)準(zhǔn)答案:::知識(shí)點(diǎn)解析:類作用域符::。42、在函數(shù)原型聲明中,可以省略參數(shù)名,但必須聲明函數(shù)參數(shù)的【】。標(biāo)準(zhǔn)答案:類型知識(shí)點(diǎn)解析:不能省略參數(shù)的類型。43、在類中聲明的靜態(tài)浮點(diǎn)數(shù)的默認(rèn)初始化值是【】。標(biāo)準(zhǔn)答案:O知識(shí)點(diǎn)解析:靜態(tài)變量由系統(tǒng)自動(dòng)初始化為0。44、定義一個(gè)函數(shù)時(shí),若只允許函數(shù)體訪問形參的值而不允許修改它的值,則應(yīng)把該形參聲明為【】類型。標(biāo)準(zhǔn)答案:const知識(shí)點(diǎn)解析:用const修飾的參數(shù)為常類型參數(shù)。45、在C++中,給一變量取別名,可以通過【】方式。標(biāo)準(zhǔn)答案:引用知識(shí)點(diǎn)解析:引用是給對(duì)對(duì)象的別名,對(duì)引用的操作就是對(duì)被引用對(duì)象的操作。46、面向?qū)ο蟮幕咎攸c(diǎn)包括繼承性、封裝性和【】。標(biāo)準(zhǔn)答案:多態(tài)性知識(shí)點(diǎn)解析:繼承性、封裝性及多態(tài)性是面向?qū)ο蟮幕咎攸c(diǎn)。47、C++源程序中,只有【】個(gè)主函數(shù)。標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C++源程序中,只有1個(gè)主函數(shù)。48、虛基類是含有【】函數(shù)的類。標(biāo)準(zhǔn)答案:虛知識(shí)點(diǎn)解析:虛基類是含有虛函數(shù)的類。49、下面程序執(zhí)行的結(jié)果是【】#include<iostream>usingnamespacestd;classA{public:staticintx;A(inty){cout<<x+y;}};intA::x=2;voidmain(){Aa(5);}標(biāo)準(zhǔn)答案:7知識(shí)點(diǎn)解析:程序的靜態(tài)變量初始化為2,而構(gòu)造函數(shù)招待過程中y變量為初始化為5,故程序執(zhí)行的結(jié)果為7。50、下面程序執(zhí)行的結(jié)果是【】。#include<iostream>usingnamespacestd;voidmain(){intsum=0;intarray[6]={1,2,3,4,5,6};int*p;p=&array[0];for(inti=0;i<6;i++){sum=sum+*p;p++;}cout<<sum;}標(biāo)準(zhǔn)答案:21知識(shí)點(diǎn)解析:本題用數(shù)組地址來訪問數(shù)組內(nèi)容,通過數(shù)組指針來操作數(shù)組內(nèi)容,依次取出數(shù)組內(nèi)容進(jìn)行加和,然后進(jìn)行輸出。五、填空題(含2小題)(本題共1題,每題1.0分,共1分。)51、C++編譯時(shí)的多態(tài)性體現(xiàn)在【】,運(yùn)行時(shí)的多態(tài)性體現(xiàn)在【】。標(biāo)準(zhǔn)答案:重載虛函數(shù)知識(shí)點(diǎn)解析:C++編譯時(shí)的多態(tài)性體現(xiàn)在重載,運(yùn)行時(shí)的多態(tài)性體現(xiàn)在虛函數(shù)。國(guó)家二級(jí)(C++)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、算法分析的目的是()。A、找出數(shù)據(jù)結(jié)構(gòu)的合理性B、找出算法中輸入和輸出之間的關(guān)系C、分析算法的易懂性和可靠性D、分析算法的效率以求改進(jìn)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法是指對(duì)解題方案準(zhǔn)確而完整的描述,而對(duì)算法進(jìn)行分析的目的,是為了在原有的基礎(chǔ)上,對(duì)算法進(jìn)行改進(jìn),從而提高對(duì)數(shù)據(jù)的處理效率。2、下列敘述中正確的是()。A、線性鏈表的各元素在存儲(chǔ)空間中的位置必須是連續(xù)的B、線性鏈表的頭元素一定存儲(chǔ)在其他元素的前面C、線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,但表頭元素一定存儲(chǔ)在其他元素的前面D、線性鏈表中的各元素在存儲(chǔ)空間中的位置不一定是連續(xù)的,且各元素的存儲(chǔ)順序也是任意的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在線性鏈表中,各元素在存儲(chǔ)空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實(shí)現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。3、線性表常采用的兩種存儲(chǔ)結(jié)構(gòu)是()。A、順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、散列方法和索引方式C、鏈表存儲(chǔ)結(jié)構(gòu)和數(shù)組D、線性存儲(chǔ)結(jié)構(gòu)和非線性存儲(chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表的存儲(chǔ)通常要用兩種存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。4、設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素a、b、c、d、e和f依次通過棧s,一個(gè)元素出棧后即進(jìn)入隊(duì)列Q,若6個(gè)元素出隊(duì)的順序是b、d、c、f、e、a,則棧s的容量至少應(yīng)該是()。A、6B、4C、3D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧的操作規(guī)則是后進(jìn)先出,隊(duì)列的運(yùn)算規(guī)則是先進(jìn)先出。對(duì)于本題,出隊(duì)順序也就是入隊(duì)順序,同樣也是出棧順序,為了得到b、d、c、f、e、a出棧順序,則入棧順序應(yīng)該是a進(jìn)、b進(jìn)、b出、c進(jìn)、d進(jìn)、d出、c出、e進(jìn)、f進(jìn)、f出、e出、a出。可以看作最多只有3個(gè)元素在棧內(nèi),所以棧的容量最少應(yīng)為3。5、數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng):DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。A、DB包括DBS和DBMSB、DBMS包括。DB和DBSC、DBS包括DB和DBMSD、沒有任何關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DB)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺(tái)和軟件平臺(tái)5個(gè)部分組成,可見DB和DBMS都是DBS的組成部分。6、在包含1000個(gè)元素的線性表中實(shí)現(xiàn)如下各運(yùn)算,所需的執(zhí)行時(shí)間最長(zhǎng)的是()。A、線性表按順序方式存儲(chǔ),在線性表的第100個(gè)結(jié)點(diǎn)后面插入一個(gè)新結(jié)點(diǎn)B、線性表按鏈接方式存儲(chǔ),在線性表的第100個(gè)結(jié)點(diǎn)后面插入一個(gè)新結(jié)點(diǎn)C、線性表按順序方式存儲(chǔ),刪除線性表的第900個(gè)結(jié)點(diǎn)D、線性表按鏈接方式存儲(chǔ),刪除指針P所指向的結(jié)點(diǎn)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由于線性表采用的是順序存儲(chǔ)方式,用存儲(chǔ)單元的鄰接性體現(xiàn)線性表元素間的一維順序關(guān)系,因此對(duì)線性表進(jìn)行插入和刪除運(yùn)算時(shí),可能需要移動(dòng)大量的結(jié)點(diǎn),以保持這種物理和邏輯的一致性。對(duì)于選項(xiàng)A),后面的900個(gè)結(jié)點(diǎn)都要住后移動(dòng),對(duì)于選項(xiàng)C),后面的100個(gè)結(jié)點(diǎn)都要往前移動(dòng)。而對(duì)于線性表按鏈接方式存儲(chǔ),當(dāng)進(jìn)行插入與刪除操作時(shí),只改變相應(yīng)的指針即可,所以比較4個(gè)選項(xiàng)的操作可得知選項(xiàng)A)所需要的執(zhí)行時(shí)間最長(zhǎng)。7、一間教室可坐多名學(xué)生,則實(shí)體教室和學(xué)生之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:兩個(gè)實(shí)體集間的聯(lián)系可以有下面幾種:一對(duì)一的聯(lián)系、一對(duì)多或多對(duì)一的聯(lián)系和多對(duì)多的聯(lián)系。由于一間教室可以坐多個(gè)學(xué)生,所以它們的聯(lián)系是一對(duì)多聯(lián)系。8、對(duì)于長(zhǎng)度為n的線性表,在最壞情況下,下列各種排序法所對(duì)應(yīng)的比較次數(shù)中正確的是()。A、冒泡排序?yàn)閚/2B、冒泡排序?yàn)閚C、快速排序?yàn)閚D、快速排序?yàn)閚(n-1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在最壞情況下,冒泡排序和快速排序的比較次數(shù)都是n(n-1),2。9、對(duì)關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含s中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()。A、并運(yùn)算B、交運(yùn)算C、差運(yùn)算D、積運(yùn)算標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系的并運(yùn)算是指,由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,其中包含兩個(gè)關(guān)系中的所有元組。10、建立E-R模型的工作,屬于軟件生命周期中的()。A、需求分析階段B、設(shè)計(jì)階段C、編碼階段D、測(cè)試階段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:建立E-R模型是數(shù)據(jù)庫概念設(shè)計(jì)的重要內(nèi)容,而概念設(shè)計(jì)是設(shè)計(jì)階段的組成部分。二、選擇題(本題共25題,每題1.0分,共25分。)11、有如下程序:#includeusingnamespacestd;classA{public:A(){cout<<“A”;}~A(){tout<<“~A”;}};classB:publicA{A*ppublic:B(){cout<<“B”;p=newA;}~B(){cout<<“~B”;deletep;}};intmain(){Bobj;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BAA~A~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類的構(gòu)造函數(shù)和析構(gòu)函數(shù)。派生類構(gòu)造函數(shù)的執(zhí)行順序?yàn)椋菏紫日{(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按它們被繼承時(shí)說明的順序;然后調(diào)用子對(duì)象的構(gòu)造函數(shù),調(diào)用順序按它們?cè)陬愔姓f明的順序;最后是派生類構(gòu)造函數(shù)中的內(nèi)容。因此本題中,首先調(diào)用基類構(gòu)造函數(shù)輸出A,然后調(diào)用子對(duì)象的構(gòu)造函數(shù)輸出B,p=newA再調(diào)用類A的構(gòu)造函數(shù)輸出A;析構(gòu)函數(shù)的調(diào)用順序和構(gòu)造函數(shù)的調(diào)用順序相反。12、若有以下程序:#includeusingnamespacestd;classA{public:A(inti,intj){a=i:b=j;}voidmove(intx,inty){a+=x;b+=y;}voidshow(){cout(A、3,4B、6,8C、6,9D、4,3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題的執(zhí)行過程如下:首先Bd(3,4);語句調(diào)用B類的構(gòu)造函數(shù):B(inti,intj),B的構(gòu)造函數(shù)中調(diào)用基類A的構(gòu)造函數(shù),使得a=3,b=4;d.fun()會(huì)調(diào)用函數(shù)move(3,5),使得(3,4)和(3,51的對(duì)應(yīng)部分分別相加,最后輸出6,9。13、有如下程序:#includeusingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n-=3;)staticimgetNum(){returnn;}private:staticintn;};intTest:n=1;intmain(){Test*p=newTest;deletep;cout<<“n;”<A、n=0B、n=1C、n=2D、n=3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語句Test*p=newTest;會(huì)調(diào)用類的構(gòu)造函數(shù)’rest(){n+=2;},使n的值由原來的1變?yōu)?,然后deletep調(diào)用類的析構(gòu)函數(shù)~Test(){n-=3.},因?yàn)閚是static型變量,所以會(huì)在3的基礎(chǔ)上減3使得輸出結(jié)果為0。14、假定MyClass為一個(gè)類,那么下列的函數(shù)說明中,()為該類的析構(gòu)函數(shù)。A、void~MyClass();B、~MyClass(intn);C、MyClass();D、~MyClass();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++語言中析構(gòu)函數(shù)為符號(hào)“~”加類名,且析構(gòu)函數(shù)沒有返回值和參數(shù),故前不加void關(guān)鍵字。所以正確的形式應(yīng)該是~MyClass()。15、下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是()。A、用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)B、將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)已知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它的一般格式是:類名::類名(Const類名&引用對(duì)象名)。當(dāng)一個(gè)類的對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí),是賦值而不是創(chuàng)建對(duì)象,所以不會(huì)調(diào)用拷貝構(gòu)造函數(shù)。16、下列有關(guān)拷貝構(gòu)造函數(shù)的描述中錯(cuò)誤的是()。A、拷貝構(gòu)造函數(shù)是一種構(gòu)造函數(shù)B、拷貝構(gòu)造函數(shù)與一般的構(gòu)造函數(shù)一樣,可以設(shè)置多個(gè)形參C、每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù)D、拷貝構(gòu)造函數(shù)的功能是用一個(gè)已知對(duì)象去初始化一個(gè)正在創(chuàng)建的對(duì)象標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)已知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它不能指定函數(shù)返回類型;只有一個(gè)參數(shù),是同類的某個(gè)對(duì)象名的引用。每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù),如果類中未聲明,編譯器會(huì)自動(dòng)生成一個(gè)公有的拷貝構(gòu)造函數(shù)。17、類MyClass的定義如下,若要對(duì)value賦值,則下面語句正確的是()。classMyClass{public:MyClass(){)MyClass(inti){value=newint(i);}int*value;};A、MyClassmy;my.value=10;B、MyClassmy;*my.value=10;C、MyClassmy;my.*value=10;D、MyClassmy(10);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因題目中定義的指針value是指向變量i的,所以直接利用語句MyClass(inti){value=newint(i);}對(duì)value進(jìn)行賦值即可。18、若有如下程序:#includeusingnamespacestd;ints=0:classsample{staticintn:public:sample(inti){n=i:}staticvoidadd(){S+=n:}};intsample::n=0;intmain(){samplea(2),b(5);sample::add();cout<A、2B、5C、7D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:執(zhí)行語句“samplea(2),b(5)”;的結(jié)果是使n的值最終變?yōu)?,sample::add()語句調(diào)用函數(shù)staticvoidadd(),使得s=s+n=5。19、下列運(yùn)算符中不能在C++中重載的是()。A、?:B、+C、-D、<=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的有關(guān)概念。運(yùn)算符重載是針對(duì)C++原有運(yùn)算符進(jìn)行的,不能通過重載創(chuàng)造新的運(yùn)算符;除了.、.*、->、::、?:這五個(gè)運(yùn)算符之外,其他運(yùn)算符都可以重載。20、下列重載函數(shù)中,正確的是()。A、voidfun(inta,floatb);voidfun(intC,floatd)B、voidfun(inta,floatb);voidfun(floata,intb)C、floatfun(inta,floatb);intfun(intb,floata)D、intfun(inta,intb);floatfun(inta,intb)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型上不同。21、有如下程序:#includeusingnamespacestd;classsample{private:intx,y;public:sample(inti,intj){x=i:y=j;}voiddisp(){cout<<“disp1”<A、disp1B、disp2C、disp1disp2D、程序編譯時(shí)出錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)閷?duì)象a被定義為常對(duì)象,所以a.disp()語句調(diào)用的是類的常成員函數(shù)voiddisp()const,輸出的結(jié)果是disp2。22、有如下類的定義,橫線處的語句是()。classTestClass{_______intx,y;public:TestClass(inta=0,intb=0){x=a:y=b;}staticvoidchange(){y=10:y-=10;}};A、publicB、privateC、staticD、protected標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閟taticvoidchange()為靜態(tài)函數(shù),靜態(tài)函數(shù)主要訪問靜態(tài)數(shù)據(jù),不訪問非靜態(tài)數(shù)據(jù)。所以函數(shù)中訪問了數(shù)據(jù)y,所以下劃線的數(shù)據(jù)類型應(yīng)對(duì)應(yīng)為static。23、有如下程序:#includeusingnamespacestd;classTestClass{protected:TestClass(){cout<<‘X’;)TestClass(charc){cout<A、yB、yxC、xyD、yy標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序中的類TestClass為基類,TestClass1為TestClass的派生類。由main主函數(shù)入手,定義TestClass1類型的對(duì)象d1,參數(shù)值為‘y’。TestClass1類繼承TestClass,所以主函數(shù)中“TestClassld1(‘y’);”語句首先調(diào)用調(diào)用基類中的“TestClass(){cout<<‘x’;}”輸出x,然后調(diào)用“TestClassl(charc){cout<24、下面是關(guān)于派生類聲明的開始部分,其中正確的是()。A、classvirtualB:publicAB、virtualclassB:publicAC、classB:publicAvirtualD、classB:virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:聲明派生類的一般形式為:class派生類名:【繼承方式】基類名。其中繼承方式包括:public,private,protected,而virtual為C++中的關(guān)鍵字。虛函數(shù)的使用方法是在基類用virtual聲明成員函數(shù)為虛函數(shù)。25、在函數(shù)中,可以用auto、extern、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、externC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。C++語言變量的存儲(chǔ)類型分為如下幾種類型:auto——函數(shù)內(nèi)部的局部變量;static——靜態(tài)存儲(chǔ)分配;extrn---全局變量;register——變量存儲(chǔ)在硬件寄存器中。26、若有以下程序:#includeusingnamespacestd;classTestClass{public:voidwho(){cout<<“TestClass”<who();return0:}則該程序運(yùn)行后的輸出結(jié)果是()。A、TestClasslB、TestClassC、0D、無輸出標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中的TestClas1為TestClass的派生類,主函數(shù)main中定義TstClass對(duì)象*p,TestClass1對(duì)象obj1,然后p引用obj1,執(zhí)行p->who()則是調(diào)用基類中的who函數(shù),輸出TestClass。27、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問基類的保護(hù)成員B、派生類的成員函數(shù)可以訪問基類的所有成員C、基類對(duì)象可以賦值給派生類對(duì)象D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:如果派生類私有繼承基類,不能訪問基類中的私有成員,所以A、B是錯(cuò)誤的。派生類是對(duì)基類的具體化,所以C錯(cuò)誤的。如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類,即選擇D。28、下面敘述錯(cuò)誤的是()。A、派生類可以使用private派生B、對(duì)基類成員的訪問必須是無二義性的C、基類成員的訪問能力在派生類中維持不變D、賦值兼容規(guī)則也適用于多繼承的組合標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在建立派生類的時(shí)候,并不是簡(jiǎn)單地把基類的私有成員直接作為派生類的私有成員,把基類的公用成員直接作為派生類的公用成員。涉及如何確定基類的成員在派生類中的訪問屬性問題,不僅要考慮對(duì)基類成員所聲明的訪問屬性,還要考慮派生類所聲明的對(duì)基類的繼承方式,根據(jù)這兩個(gè)因素共同決定基類成員在派生類中的訪問屬性。所以本題選擇C。29、下列程序的輸出結(jié)果為2,橫線處應(yīng)添加語句()。#includeusingnamespacestd;classTestClass1{public:____________voidfun(){cout<<1;}};classTestClass2:publicTestClass1{public:voidfun(){cout<<2;}};intmain(){TestClass1*p=newTestClass2;P->fun();deletep;return0;}A、publicB、privateC、virtualD、protected標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義TestClass1類的指針對(duì)象p指向派生類TestClass2。因?yàn)榛惡团缮愔卸加衒un函數(shù),題目要求輸出為2,就是基類對(duì)象訪問派生類中fun函數(shù)。通過虛函數(shù)與指向基類對(duì)象的指針變量的配合使用,就能方便調(diào)用同名函數(shù)。所以這里將基類中的fun函數(shù)聲明為virtual。并且當(dāng)一個(gè)成員函數(shù)被聲明為虛函數(shù)后,其派生類中的同名函數(shù)自動(dòng)成為虛函數(shù)。30、要使程序執(zhí)行后的輸出結(jié)果為ABCD,應(yīng)在橫線處添加語句()。#includeusingnamespacestd;classA{public:A(){cout<<‘A’;}};classB:___________{public:B0{cout<<‘B’;}};classC:virtualpublicA{public:C0{cout<<‘C’;});classD:publicB,publicC{public:D0{cout<<‘D’;}};voidmain0{Dobj;)A、publicAB、privateAC、protectedAD、virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義了類D對(duì)象obj。其中D為類B和C的公有繼承,A是C的虛基類。題目中要求的輸出結(jié)果為“ABCD”,依次為類A,類B,類C,類D中構(gòu)造函數(shù)的輸出語句。為了保證基類通過多條路徑被派生類繼承時(shí),即保證A只被繼承一次,輸出一個(gè)A,所以不但需要聲明A為C的虛基類,同樣也要聲明A為B的虛基類。31、下面的描述中,正確的是()。A、virtual可以用來聲明虛函數(shù)B、含有純虛函數(shù)的類是不可以用來創(chuàng)建對(duì)象的,因?yàn)樗翘摶怌、即使基類的構(gòu)造函數(shù)沒有參數(shù),派生類也必須建立構(gòu)造函數(shù)D、靜態(tài)數(shù)據(jù)成員可以通過成員初始化列表來初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在基類中用virtual聲明成員函數(shù)為虛函數(shù),所以A是正確的。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的虛函數(shù)。純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實(shí)現(xiàn)。靜態(tài)數(shù)據(jù)成員函數(shù)只能在類外進(jìn)行初始化。32、若要把函數(shù)voidfun()定義為TestClass的友元函數(shù),則應(yīng)該在類TestClass的定義中加入的語句是()。A、voidfriendfun()B、friendfun()C、friendvoidfun()D、TestClassvoidfun()標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果在類以外的其他地方定義了一個(gè)函數(shù),在類體中用friend對(duì)該函數(shù)進(jìn)行聲明,此函數(shù)就稱為本類的友元函數(shù)。因?yàn)楹瘮?shù)為voidfun(),根據(jù)友元定義補(bǔ)全語句為“friendvoidfun();”。33、若要把函數(shù)voidfun()定義為TestClass的友元函數(shù),則應(yīng)該在類TestClass的定義中加入的語句是()。A)voidfriendfun()B)friendfun()C)friendvoidfun()D)TestClassvoidfun()(33)已知遞歸函數(shù)fun的定義如下:intfun(intn){if(n<=1)return1;//遞歸結(jié)束情況elsereturnn*fun(n-2);//遞歸}則函數(shù)調(diào)用語句fun(5)的返回值是()。A、5B、12C、15D、30標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:遞歸函數(shù)fun被定義為含有參數(shù)intn,返回整型。其中fun函數(shù)遞歸調(diào)用本身,當(dāng)n=1時(shí),fun返回1,如果大于1那么執(zhí)行n*fun(n-2)。所以,當(dāng)n等于5時(shí),執(zhí)行5*fun(3);當(dāng)3時(shí)繼續(xù)調(diào)用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案為15。34、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。A、long;double,intB、long,float,intC、int,double,longD、int,float,long標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的知識(shí)點(diǎn)是字面常量。對(duì)于整型字面常量,只要沒有超過C++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來存儲(chǔ)此數(shù),也可以通過在整型字面常量后添加u或1來指定無符號(hào)整數(shù)或長(zhǎng)整數(shù)來存儲(chǔ);對(duì)于實(shí)型字面常量,C++將自動(dòng)按照雙精度數(shù)來存儲(chǔ),也可以通過在實(shí)型字面常量后添加f來指定按單精度數(shù)存儲(chǔ)。35、下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是()。A、內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移B、內(nèi)聯(lián)函數(shù)必須通過關(guān)鍵字inline來定義C、內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的D、內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是return語句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)的概念。在調(diào)用時(shí),內(nèi)聯(lián)函數(shù)會(huì)像宏函數(shù)一樣的展開,將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換,所以它沒有一般函數(shù)的參數(shù)壓棧和退棧操作,所以選項(xiàng)A錯(cuò)誤;即使沒有使用inline說明,編譯器也會(huì)將在類的說明部分定義的函數(shù)認(rèn)定為內(nèi)聯(lián)函數(shù),所以選項(xiàng)B錯(cuò)誤;內(nèi)聯(lián)函數(shù)只是比普通函數(shù)有更高的執(zhí)行效率。三、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)36、關(guān)系代數(shù)是關(guān)系操作語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ),它的運(yùn)算對(duì)象和運(yùn)算結(jié)果均為______________。標(biāo)準(zhǔn)答案:關(guān)系知識(shí)點(diǎn)解析:關(guān)系代數(shù)是關(guān)系操縱語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ)發(fā)展起來的,但它的運(yùn)算對(duì)象和運(yùn)算結(jié)果均是關(guān)系,這些新關(guān)系仍可以使用同樣的代數(shù)運(yùn)算進(jìn)一步操作。關(guān)系代數(shù)也是一種抽象的查詢語言,它通過對(duì)關(guān)系的運(yùn)算來表達(dá)查詢和修改處理的需求。37、在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅需要存儲(chǔ)各數(shù)據(jù)元素的信息,還要存放各元素之間______________的信息。標(biāo)準(zhǔn)答案:前后件關(guān)系知識(shí)點(diǎn)解析:在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,除了要存儲(chǔ)數(shù)據(jù),還要存儲(chǔ)數(shù)據(jù)的前后件關(guān)系,對(duì)于順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系是通過存儲(chǔ)空間的位置來實(shí)現(xiàn)的,而對(duì)于鏈?zhǔn)酱鎯?chǔ)來說,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實(shí)現(xiàn)的。38、軟件是程序、數(shù)據(jù)和______________的集合。標(biāo)準(zhǔn)答案:相關(guān)文檔知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。39、對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分法查找只需比較______________次。標(biāo)準(zhǔn)答案:log2n知識(shí)點(diǎn)解析:二分法查找,也稱拆半查找,是一種高效的查找方法。能使用二分法查找的線性表必須滿足兩個(gè)條件:用順序存儲(chǔ)結(jié)構(gòu);線性表是有序表。對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分法查找只需比較log2n次40、測(cè)試分為白箱法和黑箱法,______________又稱為邏輯覆蓋測(cè)試。標(biāo)準(zhǔn)答案:白箱法知識(shí)點(diǎn)解析:白箱測(cè)試是根據(jù)程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測(cè)試用例。由于測(cè)試用例對(duì)程序的邏輯覆蓋程序決定了測(cè)試的完全性的程度,因此白箱測(cè)試也稱為邏輯覆蓋測(cè)試。四、填空題(本題共10題,每題1.0分,共10分。)41、若有以下程序:#includeusingnamespacestd;classTestClass1{public:TestClass1(){x=0:}intx;};classTestClass2:virtualpublicTestClass1{public:TestClass2(){x=10;}};classTestClass3:virtualpublicTestClass1{public:TestClass3(){x=20;}};classTestClass4:publicTestClass2,protectedTestClass3{};intmain(){TestClass4obj;cout<標(biāo)準(zhǔn)答案:20知識(shí)點(diǎn)解析:主函數(shù)中定義TestClass4的對(duì)象obj。TestClass4雖然公有繼承于TestClass2,但是x在其中為私有,所以無法訪問。TestClass4保護(hù)繼承于TestClass3,TestClass3中的x=20為公有成員數(shù)據(jù),對(duì)象obj可以訪問這個(gè)數(shù)據(jù),即輸出為20。42、指針變量所保存的不是一般的數(shù)據(jù)值,而是程序中另一個(gè)對(duì)象的__________。標(biāo)準(zhǔn)答案:內(nèi)存地址知識(shí)點(diǎn)解析:指針變量指向的不是變量保存的數(shù)據(jù)值,而是變量的地址,所以指針變量保存的是對(duì)象的內(nèi)存地址。43、以下程序的輸出結(jié)果是__________。#includeintadd(intx,inty){returnx+y;}doubleadd(doublex,doubley){returnx+y;}voidmain(){inta=3,b=3;doublec=6.5,d=1.5;cout<標(biāo)準(zhǔn)答案:6,8知識(shí)點(diǎn)解析:C++中允許用同一函數(shù)名定義多個(gè)函數(shù),這些函數(shù)的參數(shù)個(gè)數(shù)和參數(shù)類型不同,這就是函數(shù)的重載,調(diào)用函數(shù)時(shí),系統(tǒng)會(huì)根據(jù)調(diào)用函數(shù)時(shí)給出的信息,即參數(shù)的個(gè)數(shù)、類型查找與之匹配的函數(shù),然后調(diào)用該函數(shù)。主函數(shù)中的輸出語句第一個(gè)add根據(jù)a,b參數(shù)類型為整型,調(diào)用第一個(gè)參數(shù)為int類型的add。即輸出6。同理第二個(gè)add(c,d)調(diào)用參數(shù)為double型的add函數(shù),輸出為8。44、下面程序運(yùn)行時(shí)輸出結(jié)果為__________。#include#includeclassRect{public:Rect(int1,intw){length=l;width=w;)voidPrint(){cout<<“Area:”<Print();deletep;}標(biāo)準(zhǔn)答案:Area:20知識(shí)點(diǎn)解析:此題考查的是內(nèi)存空間的分配和釋放,即free和delcte函數(shù)的應(yīng)用。使用new對(duì)某種類型的變量進(jìn)行動(dòng)態(tài)分配的語法格式為:指針=new類型;使用delete對(duì)動(dòng)態(tài)分配的變量進(jìn)行釋放是:delete指針。此題中,首先為變量分配內(nèi)存單元,然后執(zhí)行語句p->Print();輸出Arca:20,然后利用delete釋放內(nèi)存單元。45、類中數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問級(jí)別為__________。標(biāo)準(zhǔn)答案:私有或privale知識(shí)點(diǎn)解析:此題考查的是類的成員的默認(rèn)訪問權(quán)限。在未聲明,即默認(rèn)情況下,類中數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問級(jí)別為私有。46、有如下程序:#includeusingnamespacestd;classPARENT{public:PARENT(){cout<<“PARENT”;}};classSON:publicPARENT{public:SON(){cout<<“SON”;}};intmain(){SONson;PARENT*p;p=&son;return0:}執(zhí)行上面程序的輸出是__________。標(biāo)準(zhǔn)答案:PARENTSON知識(shí)點(diǎn)解析:此題考查的是派生類和基類的構(gòu)造函數(shù)。派生類構(gòu)造函數(shù)的執(zhí)行順序?yàn)椋菏紫日{(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按它們被繼承時(shí)說明的順序;然后調(diào)用子對(duì)象的構(gòu)造函數(shù),調(diào)用順序按它們?cè)陬愔姓f明的順序;最后是派生類構(gòu)造函數(shù)中的內(nèi)容。SONson;執(zhí)行時(shí)首先調(diào)用基類的構(gòu)造函數(shù),輸出“RARENT”,然后調(diào)用派生類的構(gòu)造函數(shù)輸出“SON”。需要注意的是,語句PARENT*p;只是定義一個(gè)PARENT類的指針,并不調(diào)用構(gòu)造函數(shù)。47、以下程序的執(zhí)行結(jié)果是__________。#include#includeclassSample{public:intx,y;Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}voiddisp(){cout<<“x=”<標(biāo)準(zhǔn)答案:x=2,y=3知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)重載。語句Samples1(2,3)調(diào)用的類的構(gòu)造爵數(shù)應(yīng)該是含有兩個(gè)參數(shù)的sample(inta,intb){x=a;y=b;}函數(shù),所以輸出的結(jié)果是x=2,y=3。48、下列函數(shù)的功能是判斷字符串str是否對(duì)稱,對(duì)稱則返回true,否則返回false。請(qǐng)?jiān)跈M線處填內(nèi)容,實(shí)現(xiàn)該函數(shù)。boolfun(char*str){inti=0,j=0;while(str[j])j++;for(j--;i標(biāo)準(zhǔn)答案:>=知識(shí)點(diǎn)解析:此題考查的是while循環(huán)語句和for循環(huán)語句。題中函數(shù)的功能是判斷字符串是否對(duì)稱。從字符串兩端依次比較各個(gè)字符是否相同,for循環(huán)結(jié)束后,當(dāng)i>=j表明字符串對(duì)稱,否則說明不對(duì)稱。49、若下面程序運(yùn)行時(shí)輸出結(jié)果為:1,A,10.12,B,3.5請(qǐng)將程序補(bǔ)充完整。#includeusingnamespacestd;intmain(){voidtest(int,char,double__________);test(1,‘A’,10.1);test(2,‘B’);return0:}voidtest(inta,charb,doublec){cout<標(biāo)準(zhǔn)答案:=3.5知識(shí)點(diǎn)解析:本題考查了函數(shù)默認(rèn)參數(shù)的應(yīng)用。本題中第一次調(diào)用test()函數(shù)數(shù)值1,A,10.1;第二次調(diào)用少了一個(gè)實(shí)參,卻要求輸出2,B,3.5,由此分析,應(yīng)將test()函數(shù)的第三個(gè)參數(shù)聲明為默認(rèn)參數(shù)。且默認(rèn)為3.5,才能達(dá)到要求的輸出結(jié)果。故應(yīng)填入=3.5或者c=3.5。50、有如下類聲明:classMyClass{inti;private:intj;protected:intk;public:intm,n;};其中,私有成員的數(shù)量為__________。標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:此題考查的是類的成員的默認(rèn)訪問權(quán)限。在默認(rèn)情況下,類中數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問級(jí)別為私有,所以類中的私有成員有2個(gè),i和j。國(guó)家二級(jí)(C++)筆試模擬試卷第3套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、棧和隊(duì)列的共同特點(diǎn)是A、都是先進(jìn)先出B、都是先進(jìn)后出C、只允許在端點(diǎn)處插入和刪除元素D、沒有共同點(diǎn)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表。2、已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是A、acbedB、decabC、deabcD、cedba標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:依據(jù)后序遍歷序列可確定根結(jié)點(diǎn)為c;再依據(jù)中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為空;又由左子樹的后序遍歷序列可知其根結(jié)點(diǎn)為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成,如下圖所示。求得該二叉樹的前序遍歷序列為選項(xiàng)D)。3、鏈表不具有的特點(diǎn)是A、不必事先估計(jì)存儲(chǔ)空間B、可隨機(jī)訪問任一元素C、插入刪除不需要移動(dòng)元素D、所需空間與線性表長(zhǎng)度成正比標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:鏈表采用的是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),它克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動(dòng)數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)也有不足之處:①每個(gè)結(jié)點(diǎn)中的指針域需額外占用存儲(chǔ)空間;②鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種非隨機(jī)存儲(chǔ)結(jié)構(gòu)。4、結(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à)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)C、多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)D、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)(或重復(fù)結(jié)構(gòu))是結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)。5、為了提高測(cè)試的效率,應(yīng)該A、隨機(jī)選取測(cè)試數(shù)據(jù)B、取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)C、在完成編碼以后制定軟件的測(cè)試計(jì)劃D、集中對(duì)付那些錯(cuò)誤群集的程序標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:測(cè)試的目的是發(fā)現(xiàn)軟件中的錯(cuò)誤。經(jīng)驗(yàn)表明,程序中存在錯(cuò)誤的概率與該程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)成正比。這一現(xiàn)象說明,為了提高測(cè)試效率,測(cè)試人員應(yīng)該集中對(duì)付那些錯(cuò)誤群集的程序。6、算法的時(shí)間復(fù)雜度是指A、執(zhí)行算法程序所需要的時(shí)間B、算法程序的長(zhǎng)度C、算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)D、算法程序中的指令條數(shù)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。7、軟件生命周期中所花費(fèi)用最多的階段是A、詳細(xì)設(shè)計(jì)B、軟件編碼C、軟件測(cè)試D、軟件維護(hù)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。本題中,詳細(xì)設(shè)計(jì)、軟件編碼和軟件測(cè)試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng),花費(fèi)代價(jià)最大的一個(gè)階段,軟件工程學(xué)的一個(gè)目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價(jià)。8、數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為A、CB、BasicC、DDLD、DML標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:選項(xiàng)A)、選項(xiàng)B)顯然不合題意。數(shù)據(jù)定義語言(DataDefinitionLanguage,簡(jiǎn)稱DDL)負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言(DataManipulationLanguage,簡(jiǎn)稱DML)負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。9、下列有關(guān)數(shù)據(jù)庫的描述,正確的是A、數(shù)據(jù)庫是一個(gè)DBF文件B、數(shù)據(jù)庫是一個(gè)關(guān)系C、數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D、數(shù)據(jù)庫是一組文件標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:數(shù)據(jù)庫(Database,簡(jiǎn)稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共享”之特點(diǎn)。10、下列有關(guān)數(shù)據(jù)庫的描述,正確的是A、數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程B、數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變C、關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段D、如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項(xiàng)A)敘述錯(cuò)誤;數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),故選項(xiàng)B)敘述錯(cuò)誤;關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故選項(xiàng)C)敘述錯(cuò)誤。二、選擇題(本題共20題,每題1.0分,共20分。)11、面向?qū)ο蟪绦蛟O(shè)計(jì)將數(shù)據(jù)和()放在一起,作為一個(gè)相互依存、不可分割的整體來處理。A、對(duì)數(shù)據(jù)的操作B、信息C、數(shù)據(jù)隱藏D、數(shù)據(jù)抽象標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:面向?qū)ο笳Z言包含3個(gè)要素,即對(duì)象、類和繼承。這3個(gè)要素反映了面向?qū)ο蟮膫鹘y(tǒng)觀念。面向?qū)ο蟪绦蛟O(shè)計(jì)的本質(zhì)是把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作當(dāng)成一個(gè)整體即對(duì)象。12、以下選項(xiàng)中,()是合法的字符常量。A、NB、’\010’C、68D、D標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核字符型常量的表示。選項(xiàng)A中是字符串的表示方法。選項(xiàng)B所表示的是一個(gè)轉(zhuǎn)義字符,是特殊的字符常量。選項(xiàng)C中所表示的是整型常量。選項(xiàng)D中不是常量的表示。13、為了避免在嵌套的條件語句if-else中產(chǎn)生二義性,C++語言中規(guī)定的if-else匹配原則是()。A、else字句與所排位置相同的if配對(duì)B、else子句與其之前最近的if配對(duì)C、else子句與其之后最近的if配對(duì)D、else子句與同一行上的if配對(duì)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核if-else語句中if與91se的匹配原則。當(dāng)多個(gè)if…else語句嵌套時(shí),else與哪個(gè)if匹配呢?為解決語義上的這種歧義性,C++語言規(guī)定,else連接到在同一層中最接近它而又沒有其他else語句與之相匹配的if語句。14、有如下數(shù)組聲明:intvalue[30];下標(biāo)值引用錯(cuò)誤的是()。A、value[30]B、value[0]C、value[10]D、value[20]標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考核對(duì)數(shù)組的引用。在C++語言中,數(shù)組的下標(biāo)是從0開始的,最大的下標(biāo)值比所定義的數(shù)組長(zhǎng)度的值小1。同時(shí)需要注意的是,C++語言中,編譯和執(zhí)行時(shí)并不檢查數(shù)組下標(biāo)是否越界。因此value[30]在編譯階段是正確的,但是在運(yùn)行時(shí)會(huì)出現(xiàn)錯(cuò)誤。15、下列敘述中,錯(cuò)誤的是()。A、一個(gè)函數(shù)中可以有多條return語句B、調(diào)用函數(shù)必須在一條獨(dú)立的語句中完成C、函數(shù)可通過return語句返回其函數(shù)值D、主函數(shù)名main()也可以帶形參標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考核函數(shù)的基本知識(shí)點(diǎn)。當(dāng)函數(shù)有返回值時(shí),調(diào)用函數(shù)可以作為一個(gè)表達(dá)式的子表達(dá)式,而不是作為一條獨(dú)立的語句存在。故選項(xiàng)B的說法是錯(cuò)誤的。16、下列關(guān)于成員訪問權(quán)限的描述中,不正確的是()。A、公有數(shù)據(jù)成員和公有成員函數(shù)都可以被類對(duì)象直接處理B、類的私有數(shù)據(jù)成員只能被公有成員函數(shù)以及該類的任何友元類或友元函數(shù)訪問C、只有類或派生類的成員函數(shù)和友元函數(shù)可以訪問保護(hù)成員D、保護(hù)成員在派生類中可以被訪問,而私有成員不可以標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:類的私有數(shù)據(jù)成員也可以被類成員函數(shù)訪問,不管是公有、私有或是保護(hù)成員,所以選項(xiàng)B是錯(cuò)誤的,其他選項(xiàng)是正確的。17、下列有關(guān)類的說法中,不正確的是()。A、類是一種用戶自定義的數(shù)據(jù)類型B、只有類中的成員函數(shù)才能存取類中的私有數(shù)據(jù)C、在類中,如果不作特別聲明,所有數(shù)據(jù)成員均為私有類型D、在類中,如果不作特別聲明,所有成員函數(shù)均為私有類型標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:對(duì)于類中的私有成員,除了類的成員函數(shù)外,類的友元函數(shù)和友元類的成員函數(shù)也可以訪問。18、繼承具有(),即當(dāng)基類本身也是某一個(gè)類的派生類時(shí),底層的派生類也會(huì)自動(dòng)繼承間接基類的成員。A、規(guī)律性B、傳遞性C、重復(fù)性D、多樣性標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在一個(gè)派生類中,其成員由兩部分構(gòu)成:一部分是從基類繼承得到的,另一部分是自己定義的新成員。當(dāng)基類本身也是一個(gè)派生類時(shí),它必然包含了它的直接基類成員,這些成員相應(yīng)地也存在于該基類的派生類中。因此,繼承是具有傳遞性的。19、下面關(guān)于虛函數(shù)的描述中,正確的是()。A、虛函數(shù)是一個(gè)靜態(tài)成員函數(shù)B、虛函數(shù)是一個(gè)非成員函數(shù)C、虛函數(shù)既可以在函數(shù)說明時(shí)定義,也可以在函數(shù)實(shí)現(xiàn)時(shí)定義D、派生類的虛函數(shù)與基類中對(duì)應(yīng)的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)和類型標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核虛函數(shù)的定義。虛函數(shù)是非靜態(tài)的成員函數(shù)。它不能是友元函數(shù),但可以在另一個(gè)類中被聲明為友元函數(shù)。虛函數(shù)聲明只能出現(xiàn)在類定義的函數(shù)原型聲明中,而不能在成員函數(shù)的函數(shù)體實(shí)現(xiàn)的地方。派生類的虛函數(shù)與基類中對(duì)應(yīng)的虛函數(shù)必須滿足下列條件,否則派生類中的虛函數(shù)將丟失其虛函數(shù)特性,在調(diào)用時(shí)進(jìn)行靜態(tài)聯(lián)編:①派生類中的虛函數(shù)與基類中的虛函數(shù)具有相同的名稱。②派生類中的虛函數(shù)與基類中的虛函數(shù)具有相同的參數(shù)個(gè)數(shù)和相同的對(duì)應(yīng)參數(shù)類型。③派生類中的虛函數(shù)與基類中的虛函數(shù)的返回值,或者相同,或者都返回指針或引用。并且派生類中虛函數(shù)所返回的指針或引用的基類型,是基類型中的虛函數(shù)所返回的指針或引用的基類型的子類型。20、關(guān)于在調(diào)用模板函數(shù)時(shí)實(shí)參的使用,下列表述中正確的是()。A、對(duì)于虛擬類型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果能從模板函數(shù)的實(shí)參中獲得相同的信息,則都可以省略B、對(duì)于虛擬類型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果它們是參數(shù)表中的最后的若干個(gè)參數(shù),則都可以省略C、對(duì)于虛擬類型參數(shù)所對(duì)應(yīng)的模板實(shí)參,若能夠省略則必須省略D、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:模板函數(shù)的實(shí)參可以省略,但模板實(shí)參的省略并不是必然的,而是有條件的。在調(diào)用一個(gè)模板函數(shù)時(shí),編譯系統(tǒng)需要足夠的信息來判別每個(gè)虛擬類型參數(shù)所對(duì)應(yīng)的實(shí)際類型,可以從兩個(gè)不同的渠道獲得這樣的信息:從模板實(shí)參表(用<和>括起來的參數(shù)表)或從模板函數(shù)實(shí)參表(用()括起來的參數(shù)表),模板實(shí)參的信息優(yōu)先于函數(shù)實(shí)參的信息。如果從后者獲得的信息已經(jīng)能夠判定其中部分或全部虛擬類型參數(shù)所對(duì)應(yīng)的實(shí)際參數(shù),而且它們又正好是參數(shù)表中最后的若干個(gè)參數(shù),則模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。如果模板實(shí)參表中的實(shí)參都被省略了,則連空表<>也可以不要。反之,對(duì)于某個(gè)模板實(shí)參,如果從模板函數(shù)的實(shí)參表中無法獲得同樣的信息,就不能省略;或者雖然能夠獲得同樣的信息,但在它后面還有其他不能省略的實(shí)參,則其自身還是不能省略。由此可知,只有選項(xiàng)D的說法是正確的。21、有以下程序段,其輸出的結(jié)果是()。intx,y,z;x=y=z=O;++x||++y&&++z;cout<<x<<","<<y<<","<<z<<end1;A、1,1,1B、1,1,0C、1,0,0D、0,0,0標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查自增運(yùn)算符和邏輯運(yùn)算符兩個(gè)知識(shí)點(diǎn)。錯(cuò)誤解答:x,y,z都參與邏輯運(yùn)算++x||++y&&++z;,最后得到x=y=z=1。在正確解答此題前,我們先來看看以下兩個(gè)表達(dá)式:①a++&&b++;②a++||b++;其中:①式中,若a的值為0,表達(dá)式先去求a++的值,系統(tǒng)完全可以確定邏輯表達(dá)式的運(yùn)算結(jié)果為0,因此跳過b++不再對(duì)它進(jìn)行求值,所以a的值將自增1,由0變成1,而b值將不變。②式中若a值為1,表達(dá)式先去求a++的值,由于表達(dá)式a++的值為1,無論表達(dá)式b++為何值,系統(tǒng)完全可以確定邏輯表達(dá)式的運(yùn)算結(jié)果為1,因此也將跳過b++不再對(duì)它進(jìn)行求值,所以b將保持不變?,F(xiàn)在我們來看題目,首先我們對(duì)++x進(jìn)行計(jì)算,由于開始x值為0,所以++x的值為1,由上述第②點(diǎn)可知“||”后面已不再進(jìn)行運(yùn)算了,也就是y,z保持原值不變。所以輸出結(jié)果應(yīng)為1,0,0。22、有下列程序段:#include<iostream>usingnamespacestd;intmain(){charb[]="Hello,you";b[5]=0;cout<<b<<end1;return0;}執(zhí)行此程序后,得到的輸出結(jié)果是()。A、Hello,youB、Hello0youC、HelloD、0標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核字符數(shù)組的特性。本題表面上看起來很簡(jiǎn)單,其實(shí)不然,出題者在題中隱藏了一個(gè)陷阱。常見的錯(cuò)誤答案是:字符數(shù)組b初始化后,得b[5]=’’,執(zhí)行“b[5]=0;”后,把0代替b[5]中的’,’即可。最后輸出整個(gè)字符串“Hello0you”。下面是正確解答:在C++語言中規(guī)定:以字符’0’作為字符串結(jié)束標(biāo)志。語句“b[5]=0;”就相當(dāng)于語句b[5]=’\0’,即在數(shù)組b的b[5]加上了字符串結(jié)束標(biāo)志,故執(zhí)行該語句后,數(shù)組中存放的內(nèi)容變?yōu)镠ello。23、若有以下程序:#include<iostream>usingnamespacestd;intf(){staticinti=0;ints=1;s+=i;i++;returns;}intmain(){inti,a=0;for(i=0;i<5;i++)a+=f();coutA、20B、24C、25D、15標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核靜態(tài)局部變量在函數(shù)中的使用。靜態(tài)局部變量就是將局部變量說明為靜態(tài)的。靜態(tài)局部變量既有在局部域作用的特性(即變量只能在變量的作用范圍內(nèi)被訪問),又可以永久存在(變量的值得以保留,并可繼續(xù)使用)。靜態(tài)局部變量只在第1次執(zhí)行時(shí)初始化一次。在函數(shù)f()中定義了一個(gè)靜態(tài)局部變量i,它的初始值為0,還定義了一個(gè)局部變量s(它的初始值為1),用來返回計(jì)算所得值。函數(shù)f()中所進(jìn)行的數(shù)據(jù)加工是s+=i和i++。即每調(diào)用一次函數(shù)f(),返回(i+1)的值后,i的值增1。再看主函數(shù),在主函數(shù)中,通過一個(gè)for語句連續(xù)調(diào)用f函數(shù)5次,并把每次調(diào)用f函數(shù)的返回值相加并存入a,最后輸出a的值。在了解各函數(shù)功能以及調(diào)用關(guān)系后就可計(jì)算出a的值為15。24、有如下類的定義。應(yīng)在空格處填入的語句是()。classMyClass{______________intx,y;public:MyClass(inta=0,intb=0){x=a;y=b;}staticvoidchange{){x-=10;y-=10;};A、staticB、constC、mutableD、不需要填入內(nèi)容標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考核靜態(tài)成員函數(shù)的使用。由題可知,函數(shù)change()為類MyClass的靜態(tài)成員函數(shù)。先來了解靜態(tài)成員函數(shù):靜態(tài)成員函數(shù)與靜態(tài)數(shù)據(jù)成員相似,也從屬于類,只要類存在,靜態(tài)成員函數(shù)就可以使用,靜態(tài)成員函數(shù)的定義是在一般函數(shù)的定義前加上關(guān)鍵詞static。調(diào)用靜態(tài)成員函數(shù)的格式如下:類名::靜態(tài)成員函數(shù)名(參數(shù)表);靜態(tài)成員函數(shù)只能訪問靜態(tài)數(shù)據(jù)成員、靜態(tài)成員函數(shù)和類以外的函數(shù)和數(shù)據(jù),不能訪問類中的非靜態(tài)數(shù)據(jù)成員(因?yàn)榉庆o態(tài)數(shù)據(jù)成員只有對(duì)象存在時(shí)才有意義)。但靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)可由任意訪問權(quán)限許可的函數(shù)訪問。和一般成員函數(shù)類似,靜態(tài)成員函數(shù)也有訪問限制,私有靜態(tài)成員函數(shù)不能由外界訪問。由靜態(tài)成員函數(shù)只能訪問靜態(tài)數(shù)據(jù)成員、靜態(tài)成員函數(shù)和類以外的函數(shù)和數(shù)據(jù),不能訪問類中的非靜態(tài)數(shù)據(jù)成員可知,變量x和y只能是類MyClass的靜態(tài)數(shù)據(jù)成員,所以x和y的定義為“staticintx,y;”。25、若有以下程序:#include<iostream>usingnamespacestd;classpoint{private:intx,y;public:point(){x=0;y=0;}voidsetpoint(intx1,inty1){x=x1;y=y1;A、12,12B、5,5C、12,5D、5,12標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考核對(duì)象指針的定義與使用。分析程序:程序首先定義一個(gè)類point。類point中有兩個(gè)私有成員,整型變量x和y,還有兩個(gè)公有成員函數(shù)setpoint(intx1,inty1)和dispoint()。函數(shù)setpoint()用來設(shè)置私有成員x和y的值,而函數(shù)dispoint()用來顯示私有成員x和y的值。主函數(shù)中,首先定義了類point的指針對(duì)象p,并申請(qǐng)了內(nèi)存空間,然后調(diào)用對(duì)象p中公有成員setpoint給對(duì)象p中的私有成員x和y賦值,然后調(diào)用成員函數(shù)dispoint顯示x和y的值。由此可知,最后輸出的值應(yīng)該是5,12。26、以下程序的執(zhí)行結(jié)果是()。#include<iostream>usingnamespacestd;classsample{private:intx;public:sample(intA){x=a;}frienddoublesquare(samples);};doublesquare(samples){A、20B、30C、900D、400標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考核友元函數(shù)的應(yīng)用。程序中函數(shù)square()是類sample的一個(gè)友元函數(shù),它可以直接訪問類sample的所有成員。它的功能是返回類sa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省眉山車城中學(xué)2024-2025學(xué)年高二上學(xué)期期末考試歷史試題(含答案)
- 湖南省衡陽市衡山縣2024-2025學(xué)年七年級(jí)上學(xué)期1月期末地理試卷(含答案)
- 物流專業(yè)理論知識(shí)競(jìng)賽理論試題題庫及答案
- 2025年度別墅智能家居安防系統(tǒng)升級(jí)合同263篇
- 2024鮮花婚禮布置與婚宴策劃配套服務(wù)合同3篇
- 2024版掛靠聘任協(xié)議書范本
- 2023年教科版三年級(jí)科學(xué)全冊(cè)教案
- 2024年一級(jí)建造師之一建工程法規(guī)題庫附完整答案【奪冠系列】
- 福建省南平市九三英華高級(jí)中學(xué)高三語文月考試卷含解析
- 中國(guó)古代建筑屋頂做法
- 學(xué)生(幼兒)上學(xué)放學(xué)交通方式情況登記表
- 提高感染性休克集束化治療達(dá)標(biāo)率
- 2023年湖北省武漢市高考數(shù)學(xué)一模試卷及答案解析
- 電動(dòng)自行車換電柜規(guī)劃方案
- 工程變更、工程量簽證、結(jié)算以及零星項(xiàng)目預(yù)算程序?qū)嵤┘?xì)則(試行)
- 中央廣播電視大學(xué)畢業(yè)生登記表-8
- 2023年人民日?qǐng)?bào)社校園招聘72人筆試參考題庫(共500題)答案詳解版
- 《焊接常用工具》課件
- 山東師范大學(xué)《古代文學(xué)專題(一)》期末復(fù)習(xí)題
- 員工內(nèi)部崗位調(diào)換申請(qǐng)表
- 選礦廠建設(shè)工程施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論