計算機二級

當前位置 /首頁/計算機/計算機二級/列表

2006上半年全國計算機二級C++筆試真題

  一、選擇題((1)~(35)每小題2分,共70分) 下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分

2006上半年全國計算機二級C++筆試真題

(1)下列選項不屬於結構化程式設計方法的是

A.自頂向下

B.逐步求精

C.模組化

D.可複用

(2)兩個或兩個以上模組之間關聯的緊密程度稱為

A.耦合度

B.內聚度

C.複雜度

D.資料傳輸特性

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

A.軟體測試應該由程式開發者來完成

B.程式經除錯後一般不需要再測試

C.軟體維護只包括對程式程式碼的維護

D.以上三種說法都不對

(4)按照“後進先出”原則組織資料的資料結構是

A.佇列

B.棧

C.雙向連結串列

D.二元樹

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

A.線性連結串列是線性表的鏈式儲存結構

B.棧與佇列是非線性結構

C.雙向連結串列是非線性結構

D.只有根結點的二元樹是線性結構

(6)對如下二元樹,進行後序遍歷的結果為

EF

FC

CF

CA

(7)在深度為7的滿二元樹中,葉子結點的個數為

A.32

B.31

C.64

D.63

(8)“商品”與“顧客”兩個實體集之間的聯絡一般是

A.一對一

B.一對多

C.多對一

D.多對多

(9)在E-R圖中,用來表示實體的圖形是

A.矩形

B.橢圓形

C.菱形

D.三角形

(10)資料庫DB、資料庫系統DBS、資料庫管理系統DBMS之間的關係是

包含DBS和DBMS

包含DB和DBS

包含DB和DBMS

D.沒有任何關係

(11)下列關於C++函式的說明中,正確的是

A.行內函數就是定義在另一個函式體內部的函式

B.函式體的最後一條語句必須是return語句

C.標準C++要求在呼叫一個函式之前,必須先宣告其原型

D.編譯器會根據函式的返回值型別和引數表來區分函式的不同過載形式

(12)由於常物件不能被更新,因此

A.通過常物件只能呼叫它的常成員函式

B.通過常物件只能呼叫靜態成員函式

C.常物件的成員都是常成員

D.通過常物件可以呼叫任何不改變物件值的成員函式

(13)下列關於虛擬函式的說明中,正確的是

A.從虛基類繼承的'函式都是虛擬函式

B.虛擬函式不得是靜態成員函式

C.只能通過指標或引用呼叫虛擬函式

D.抽象類中的成員函式都是虛擬函式

(14)運算子過載是對已有的運算子賦予多重含義,因此

A.可以對基本型別(如int型別)的資料,重新定義“+”運算子的含義

B.可以改變一個已有運算子的優先順序和運算元個數

C.只能過載C++中已經有的運算子,不能定義新運算子

D.C++中已經有的所有運算子都可以過載

(15)模板對型別的引數化提供了很好的支援,因此

A.類模板的主要作用是生成抽象類

B.類模板例項化時,編譯器將根據給出的模板實參生成一個類

C.在類模板中的資料成員都具有同樣型別

D.類模板中的成員函式都沒有返回值

(16)下列關於C++流的說明中,正確的是

A.與鍵盤、螢幕、印表機和通訊埠的互動都可以通過流類來實現

B.從流中獲取資料的操作稱為插入操作,向流中新增資料的操作稱為提取操作

是一個預定義的輸入流類

D.輸出流有一個名為open的成員函式,其作用是生成一個新的流物件

(17)下列符號中可以用作C++識別符號的是

A._radius

~bar

D.3room

(18)下列語句中,錯誤的是

t int buffer=256;

t int temp;

t double *point;

t double *rt =new double(5.5);

(19)有如下程式:

int x=3;

do{

x -= 2;

cout<

}while(!(--x));

執行這個程式的輸出結果是

A. 1

B.3 0

C. l-2

D.無窮迴圈

(20)有如下程式:

#include

using namespace std;

int main()

{

int *p;

*p = 9;

cout<<"The value at p:"<<*p;

return 0;

}

編譯執行程式將出現的情況是

A.夠編譯時出現語法錯誤,不能生成可執行檔案

B.執行時一定輸出:The value at p: 9

C.執行時一定輸出:The value at p: *9

D.執行時有可能出錯

(21)有如下程式:

#include

using namespace std;

int main()

{

void function(double val);

double val;

function(val);

cout<

return 0;

}

void function(double val)

{

val = 3;

}

編譯執行這個程式將出現的情況是

A.編譯出錯,無法執行

B.輸出:3

C.輸出:3.0

D.輸出一個不確定的數

(22)有如下類定義:

class AA

{

int a;

public:

int getRef() const{return &a;} //①

int getvalue() const{return a;} //②

void set(int n) const{a=n;} //③

friend void show(AA aa) const {cout< //④

};

其中的四個函式定義中正確的是

A.①

B.②

C.③

D.④

(23)有如下程式:

#include +

using namespace std;

#include

using namespace std;

class Base

{

public:

void fun(){cout<<"Base::fun"<

};

class Derived:public Base

{

public:

void fun()

{

cout<<"Derived::fun"<

}

};

int main()

{

Derived d;

();

return 0;

}

已知其執行後的輸出結果為:

Base::fun

Derived::fun

則程式中下劃線處應填入的語句是

();

::fun()

->fun()

();

(24)下面是過載為非成員函式的運算子函式原型,其中錯誤的是

tion operator + (Fraction, Fraction);

tion operator - (Fraction);

tion& operator = (Fraction&, Fraction);

tion& operator += (Fraction&, Fraction);

(25)有如下函式模板:

template

T cast(U u){return u;}

其功能是將U型別資料轉換為T型別資料。已知i為int型變數,下列對模板函式cast的呼叫中正確的是

(i);

<>(i);

(i);

(i);