2009年3月全國計算機二級考試C++真題

  一、選擇題(每小題2分,共70分)

(1)下列敘述中正確的是

A)棧是“先進先出”的線性表

B)隊列是“先進後出”的線性表

C)循環隊列是非線性結構

D)有序線性表既可以採用順序存儲結構,也可以採用鏈式存儲結構

(2)支持子程序調用的數據結構是

A)棧

B)樹

C)隊列

D)二叉樹

(3)某二叉樹有5個度爲z的結點,則該二叉樹中的葉子結點數是

A)10

B)8

C)6

D)4

(4)下列排序方法中,最壞情況下比較次數最少的是

A)冒泡排序

B)簡單選擇排序

C)直接插入排序

D)堆排序

(5)軟件按功能可以分爲: 應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬於應用軟件的是

A)編譯程序

B)操作系統

C)教務管理系統

D)彙編程序

(6)下面敘述中錯誤的是

A)軟件測試的目的是發現錯誤並改正錯誤

B)對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C)程序調試通常也稱爲Debug

D)軟件測試應嚴格執行測試計劃,排除測試的隨意性

(7)耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是

A)提高耦合性降低內聚性有利他哦高模塊的獨立性

B)降低耦合性提高內聚性有利於提高模塊的獨立性

C)耦合性是指一個模塊內部各個元索間彼此結合的緊密程度

D)內聚性是指模塊間互相連接的緊密程度

(8)數據庫應用系統中的核心問題是

A)數據庫設計

B)數據庫系統設計

C)數據庫維護

D)數據庫管理員培訓

(9)有兩個關係R, S如下:

2009年3月全國計算機二級考試C++真題

由關係R通過運算得到關係S,則所使用的運算爲

A)選擇

B)投影

C)插入

D)連接

(10)將E-R圖轉換爲關係模式時,實體和聯繫都可以表示爲

A)屬性

B)鍵

C)關係

D)域

(11)對C++編譯器區分重載函數無任何意義的信息是

A)參數類型

B)參數個數

C)返回值類型

D)常成員函數關鍵字coast

(12)有如下類定義和變量定義:

class A{

publie:

A(){data=0;}

~A(){}

int GetData ( ) coast { return data;}

void SetData(int n) {data=n;}

private:

int data;

};

ccnst A a;

A b;

下列函數調用中錯誤的是

A)a ata();

B)a ata(10);

C)b ata();

D)b ata(10);

(13)有如下類定義和變量定義:

class Parents{

public:

int publicuata;

private:

int privateData;

};

class ChildA:public Parents{/*類體略*/};

class ChildB:private Parents{/*類體略*/);

ChildA a;

ChildBb;

下列語句中正確的是

A)cout< B)cout< C)cout< D)cout<

(14)運算符重載時不需要保持的性質是

A)操作數個數

B)操作數類型

C)優先級

D)結合性

(15)下列關於函數模板的描述中,錯誤的是

A)從模板實參表和從模板函數實參表獲得信息矛盾時,以模板實參的信息爲準

B)對於常規參數所對應的模板實參,任何情況下都不能省略

C)虛擬類型參數沒有出現在模板函數的形參表中時,不能省略模板實參

D)模板參數表不能爲空

(16)要建立文件流並打開當前目錄下的文件用於輸入,下列語句中錯誤的`是

A)ifstream fin=(“”);

B)ifstream*fir.=new ifstream(“”);

C)ifstream fin; (“”);

D)ifstream *fin=new ifstream( );fin一>open(“”);

(17)下列描述中,不屬於面向對象思想主要特徵的是

A)封裝性

B)跨平臺性

C)繼承性

D)多態性

(18)有如下程序段:

Tnt i=4;int j=l;

int main(){

int i=8,j=i;

cout< }

運行時的輸出結果是

A)44

B)41

C)88

D)81

(19)有如下程序段:

int i=5;

while(int i=0){cout《'*';i--;}

運行時輸出“*”的個數是

A)0

B)1

C)5

D)無窮

(20)己知有數組定義

char a[3][4];

下列表達式中錯誤的是

A)a[2]=“WIN”

B)strcpy(a[2],“WIN”)

C)a [2][3]='W'

D)a[0][1]=a[0][1]

(21)已知函數fun的原型爲

int fun(int,int,int);

下列重載函數原型中錯誤的是

A)char fun(int,int);

B)double fun(int,int,double);

C)int fun(int,char*);

D)float fun (int, int, int);

(22)建立一個類對象時,系統自動調用

A)析構函數

B)構造函數

C)靜態函數

D)友元函數

(23)通過派生類的對象可直接訪問其

A)公有繼承基類的公有成員

B)公有繼承基類的私有成員

C)私有繼承基類的公有成員

D)私有繼承基類的私有成員

(24)己知表達式++a中的“++”是作爲成員函數重載的運算符,則與十+a等效的運算符函數調用形式爲

A)a ator++(1)

B)operator++(a)

C)operator++(a,l)

D)ator++( )

(25)在定義一個類模板時,模板形參表是用一對括號括起來的,所採用的括號是

A)( )

B)[ ]

C)< >

D){ }

(26)當使用ifstream流類定義一個流對象並打開一個磁盤文件時,文件的默認打開方式爲

A)ios_base::in

B)ios_base::in|ios_base::out

C)ios_base::out

D)ios_base::in&ios_base::out