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