2015年計(jì)算機(jī)二級《C++》考前沖刺模擬試卷
參考解析:
對二叉樹的前序遍歷是指:先訪問根結(jié)點(diǎn),然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時(shí),先訪問根結(jié)點(diǎn),再依次訪問其左、右子樹。
【知識拓展】什么是“遍歷”?遍歷就是不重復(fù)地訪問二叉樹的所有結(jié)點(diǎn)。二叉樹遍歷的方法有三種:前序遍歷、中序遍歷和后序遍歷。記住三種遍歷的順序:
①前序,訪問根一按前序遍歷左子樹一按前序遍歷右子樹。
②中序,按中序遍歷左子樹一訪問根一按中序遍歷右子樹。
③后序,按后序遍歷左子樹一按后序遍歷右子樹一訪問根。
2下列選項(xiàng)中,作為是數(shù)據(jù)庫系統(tǒng)的核心的是( )。
A.數(shù)據(jù)庫B.數(shù)據(jù)模型C.軟件工具D.數(shù)據(jù)庫管理系統(tǒng)
參考答案:D
參考解析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實(shí)施對數(shù)據(jù)庫的統(tǒng)一管理和控制。
3
A.12,l0,14B.12,18,30C.12,6,18D.12,14,30
參考解析:
4下面表示引用的方法中正確的是( )。已知:int n=10;
A.int &x=nB.int &zC.int &y=10D.float &t=&n
參考答案:A
參考解析:C++中的引用作是給變量起個(gè)別名,引用定義形式為:類型 &引用名 = 變量名。
5( )使一個(gè)函數(shù)可以定義成對許多不同數(shù)據(jù)類型完成同一個(gè)任務(wù)。
A.函數(shù)模板B.重載函數(shù)C.遞歸函數(shù)D.模板函數(shù)
參考答案:A
參考解析:函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼形式相同,只是所針對的數(shù)據(jù)類型不同。因此,函數(shù)模板使一個(gè)函數(shù)可以定義成對許多不同數(shù)據(jù)類型完成同一個(gè)任務(wù)。
6建立E-R模型的工作,屬于軟件生命周期中的( )。
A.需求分析階段B.設(shè)計(jì)階段C.編碼階段D.測試階段
參考解析:建立E-R模型是數(shù)據(jù)庫概念設(shè)計(jì)的重要內(nèi)容,而概念設(shè)計(jì)是設(shè)計(jì)階段的組成部分。
7設(shè)棧S和隊(duì)列O的初始狀態(tài)為空,元素a、b、c、d、e和f依次通過棧S,一個(gè)元素出棧后即進(jìn)入隊(duì)列O,若6個(gè)元素出隊(duì)的順序是b、d、c、f、e、a,則棧S的容量至少應(yīng)該是( )。
A.6B.4C.3D.2
參考答案:C
參考解析:棧的操作規(guī)則是后進(jìn)先出,隊(duì)列的運(yùn)算規(guī)則是先進(jìn)先出。對于本題,出隊(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。
8內(nèi)部格式控制操作函數(shù)是在頭文件( )中定義的。
A.
B.
C.
D.
參考解析:
9下面的符號中可以用作C++標(biāo)識符的是( )。
A.3testB.fcc~otherC.elseD.radius
參考答案:D
參考解析:C++標(biāo)識符是以字母、下劃線開頭的,由字母、數(shù)字及下劃線組成的,不與關(guān)鍵字相同的字符串。選項(xiàng)C)中else為關(guān)鍵字。
10下面關(guān)于派生類的描述中錯(cuò)誤的是( )。
A.派生類中至少有一個(gè)基類
B.一個(gè)派生類可以作為另一個(gè)派生類的基類
C.派生類只繼承了基類中的公有成員和保護(hù)成員
D.派生類的缺省繼承方式是私有
參考答案:C
參考解析:
11數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,( )沒有專門的軟件對數(shù)據(jù)進(jìn)行管理。
Ⅰ.人工管理階段 Ⅱ.文件系統(tǒng)階段 Ⅲ.數(shù)據(jù)庫階段
A.僅ⅠB.僅ⅢC.Ⅰ和ⅡD.Ⅱ和Ⅲ
參考答案:A
參考解析:數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。
12在進(jìn)行任何C++流的操作后,都可以用C++流的有關(guān)成員函數(shù)檢測流的狀態(tài);其中只能用于檢測輸入流狀態(tài)的操作函數(shù)名稱是( )。
A.failB.eofC.badD.good
參考解析:可以用文件流對象的成員函數(shù)來判別文件流當(dāng)前的狀態(tài):fail,剛進(jìn)行的操作失敗時(shí)返回true,否則返回false; eof,進(jìn)行輸入操作時(shí),若文件到達(dá)文件尾返回true,否則返回false; bad,如果進(jìn)行了非法操作返回true,否則返回false good,剛進(jìn)行的操作成功時(shí)返回true,否則返回false。
13有如下類的定義。橫線處的語句是( )。
class MyClass
{
public:
MyClass(int a = 0,int b = 0)
{
X=a;
Y=b;
}
void Change() const
{
X-=10;
Y+=10;
}
private:
int X,Y;
};
A.staticB.constC.mutableD.不需要填內(nèi)容
參考答案:C
參考解析:C++中const關(guān)鍵字用來表示一個(gè)常量,同時(shí)const也用來修飾函數(shù)。這兩個(gè)概念需要明確:const所修飾的函數(shù)只能是類的成員函數(shù),因?yàn)閏onst所修飾的函數(shù)中,要由編譯器負(fù)責(zé)保護(hù)類的成員變量不被修改。而相對的,mutable則是用來修飾類的成員變量,讓該變量在const所修飾的成員函數(shù)中可以被修改。而且const修飾的函數(shù)只能是類的成員函數(shù),mutable修飾的變量只能是類的成員變量。
14下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是( )。
A.軟件測試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)
參考答案:C
參考解析:軟件的生命周期可分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。其中軟件定義階段的主要工作有可行性研究與計(jì)劃制訂和需求分析等;軟件開發(fā)階段的主要工作有概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和測試等:軟件運(yùn)行維護(hù)階段的主要工作是軟件的運(yùn)行及后期的維護(hù)等。
15關(guān)于模板,下列說法不正確的是( )。
A.用類模板定義一個(gè)對象時(shí),不能省略實(shí)參
B.類模板只能有虛擬類型參數(shù)C.類模板本身在編譯中不會生成任何代碼
D.類模板的成員函數(shù)都是模板函數(shù)
參考解析: 類模板不是一個(gè)實(shí)實(shí)在在的類,本身在編譯中不會生成任何代碼;用類模板定義一個(gè)對象時(shí),不能省實(shí)參;類模板的成員函數(shù)都是模板函數(shù)。C++中可以為類模板的參數(shù)設(shè)置默認(rèn)值,所以選項(xiàng)B)錯(cuò)誤。
16下列哪一條不屬于數(shù)據(jù)庫設(shè)計(jì)的任務(wù)?( )
A.設(shè)計(jì)數(shù)據(jù)庫應(yīng)用結(jié)構(gòu)
B.設(shè)計(jì)數(shù)據(jù)庫概念結(jié)構(gòu)
C.設(shè)計(jì)數(shù)據(jù)庫邏輯結(jié)構(gòu)
D.設(shè)計(jì)數(shù)據(jù)庫物理結(jié)構(gòu)
參考答案:A
參考解析:數(shù)據(jù)庫設(shè)計(jì)工作量大而且過程復(fù)雜,既是一項(xiàng)數(shù)據(jù)庫工程也是一項(xiàng)龐大的軟件工程。考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫實(shí)施和數(shù)據(jù)庫的運(yùn)行和維護(hù)。
17
A.m=3B.m=4C.m=5D.m=6
參考答案:C
參考解析:
18在函數(shù)中,可以用auto、extern、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲類型,如果不說明存儲類型,則默認(rèn)的存儲類型是( )。
A.autoB.extrnC.registerD.static
參考答案:A
參考解析:
19下面關(guān)于友元的說法中錯(cuò)誤的是( )。
A.友元函數(shù)可以訪問類中的所有數(shù)據(jù)成員
B.友元函數(shù)不可以在類內(nèi)部定義
C.友元類的所有成員函數(shù)都是另一個(gè)類友元函數(shù)
D.友元函數(shù)必須聲明在public區(qū)
參考答案:D
參考解析:友元提供了不同類或?qū)ο蟮某蓡T函數(shù)之間、類的成員函數(shù)與一般函數(shù)之間進(jìn)行數(shù)據(jù)共享的機(jī)制。類可以利用friend將一般函數(shù)、其他類成員函數(shù)或者其他類聲明為友元。友元的聲明可以放在類的任何一個(gè)區(qū)域。但是友元的實(shí)現(xiàn)不可以在類內(nèi)部。
20
A.55B.57C.75D.77
參考解析:
21設(shè)有以下定義程序:
#include
class A1
{
public:
void show1()
{
cout << "class A1" << endl;
}
};
class A2:public A1
{
public:
void show2()
{
cout<<"class A2"<
}
};
class A3:protected A2
{
public:
void show3()
{
cout<<"class A1"<
}
};
void main()
{
A1 obj1;
A2 obj2;
A3 obj3;
}
則以下不合法的調(diào)用語句是( )。
A.obj1.show1();B.obj2.show1();C.obj3.show1();D.obj2.show2();
參考答案:C
參考解析:由于 class A3:protected A2,所以類 A3 的對象 obj3 不能直接訪問基類 A1 的成員函數(shù) show1(),所以選項(xiàng) C 是錯(cuò)誤的;其他選項(xiàng)均有訪問的權(quán)限,正確。
22有如下程序:
#include
using namespace std;
class A
{
public:
A(){cout<<"A";}
};
class B{public:B(){cout<<"B";}
};
class C:public A
{
B b;
public:C(){cout<<"C";}
};
int main()
{
C obj;
return 0;
}
執(zhí)行后的輸出結(jié)果是( )。
A.CBAB.BACC.ACBD.ABC
參考答案:D
參考解析:語句C obj 對象初始化首先調(diào)用基類的構(gòu)造函數(shù) A(),輸出“A”,其次是C類中對象的構(gòu)造函數(shù)的調(diào)用,即調(diào)用B(),輸出“B”;最后是調(diào)用自身的構(gòu)造函數(shù) C(),輸出“C”。
23下面的描述中,不屬于面向?qū)ο蠓椒ǖ氖? )。
A.多態(tài)B.繼承C.類D.過程調(diào)用
參考答案:D
參考解析:面向?qū)ο蠓椒ㄊ沁\(yùn)用對象、類和實(shí)例、消息、繼承、多態(tài)等概念來構(gòu)造。