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

來源:文萃谷 8.26K

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

2007年3月全國計算機等級考試二級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)對下列二叉樹

進行前序遍歷的結果為

A)DYBEAFCZX

B)YDEBFZXCA

C)ABDYECFXZ

D)ABCDEFXYZ

(7)某二叉樹中有n個度為2的結點則該二叉樹中的葉子結點數為

A)n+1

B)n-1

C)2n

D)n/2

(8)在下列關係運算中,不改變關係表中的屬性個數但能減少元組個數的是 。

A)井

B)交

C)投影

D)笛卡兒乘積

(9)在E-R圖中,用來表示實體之間是聯繫的圖形是 。

A) 矩形

B)橢圓形

C)菱形

D)平行四邊形

(10)下列敍述中錯誤的是 。

A) 在數據庫系統中,數據的物理結構必須與邏輯結構一致.

B)數據庫技術的根本目標是要解決數據的共享問題

C)數據庫設計是指在已有數據庫管理系統的基礎上建立數據庫

D)數據庫系統需要操作系統的支持

(11)為了取代C中帶參數的宏,在C++中使用

A)重載函數

B)內聯函數

C)遞歸函數

D)友元函數

(12)下列關於類定義的説法中,正確的是

A)類定義中包括數據成員和函數成員的聲明

B)類成員的缺省訪問權限是保護的

C) 數據成員必須被聲明為私有的

D)成員函數只能在類體外進行定義

(13)下列關於派生類構造函數和析構函數的説法中,錯誤的是

A)派生類的構造函數會隱含調用基類的構造函數

B)如果基類中沒有缺省構造函數,那麼派生類必須定義構造函數

C)在建立派生類對象時,先調用基類的構造函數,再調用派生類的構造函數

D)在銷燬派生類對象時,先調用基類的析構函數,再調用派生類的析構函數

(14)通過運算符重載,可以改變運算符原有的

A)操作數類型

B)操作數個數

C)優先級

D)結合性

(15)有如下函數模板:

template T souare(T x) (retumx * x ;)

基中T是

A)函數形參

B)函數實參

C)模板形參

D)模板實參

(16)使用輸入輸出操作符setw,可以控制

A)輸出精度

B)輸出寬度

C)對齊方式

D)填充字符

(17)下列字符串中,不可以用作C++標識符的是

A)y_2006

B)____TEST__H

C)Retum

D)switch

(18)字面常量42、4.2、42L的數據類型分別是

A)long、double int

B)long、float、int

C)int、double、long

D)int、float、long

(19)執行下列語句段後,輸出字符“*”的個數是

for(int i =50;I>1;— i )cout<<”*”

A)48

B)49

C)50

D)51

(20)有如下程序段

int i =0, j=1;

int &r=i ; // ①

r =j; //②

int*p=&i ; //③

*p=&r ; //④

基中會產生編譯錯誤的語句是

A)④

B)③

C)②

D)①

(21)有如下函數定義:

void func (int a,int&b) {a++; b++;}

若執行代碼段:

int x=0 ,y=1

func(x,y);

則變量x和y值分別是

A)0和1

B)1和1

C)0和2

D)1和2

(22)有如下程序:

#include

using namespace std;

class A{

public

static int a;

void init(){a=1;}

A(int a=2) {init();a++;}

};

int A:;a=0

A obj;

Int main()

{

cout<  retum0;

}

運行時輸出的結果是

A)0

B)1

C)2

D)3

(23)下列有關繼承和派生的敍述中,正確的是

A) 派生類不能訪問基類的保護成員

B)作為虛基類的類不能被實例化

C)派生類應當向基類的構造函數傳遞參數

D)虛函數必須在派生類中重新實現

(24)下列運算符中,不能被重載的是

A)&&

B)!=

C).

D)++

(25)下列函數模板的定義中,合法的是

A) template Tabs(T x) {return x <0 – x: x;}

B)template class Tabs(Tx){retumx<0 -x;x;}

C)template Tabs(T x){retum x<0 -x;x;}

D)template T abs(T x){returm x<0 -x;x;}

(26)在語句cin>>data;中,cin是

A)C++的關鍵字

B)類名

C)對象名

D)函數名

(27)有如下程序:

#include

using namespace std;

class test {

private:

int a;

public:

test(){cout<<”constructor”<  test(int a){cout<  test(const test&_test)

{

a=_testa;

cout<<”copy constructor”<  }

test(){cout<<”destructor”<  };

int main()

}

test A(3)

return0;

運行時輸出的結果是

A)3

B)constructor

destruclor

C)copy constructor

D)3

dstructor destruclor

(28)若有如下類聲明

class My Class {

public:

MyClass() {cout<<1;}

};

執行下列語句

MyClass a,b[2],*P[2];

以後,程序的輸出結果是

A)11

B)111

C)1111

D11111

(29)有如下程序:

#include

using namespace std;

class point {

public:

static int number;

public:

point(){number++;

~point(){number-;}

};

imt point::number=0;

void main(){

point*ptr;

printA,B;

{

point*ptr_point=new point{3};

ptr=ptr_point;

}

pointC;

cout<  delete[]ptr;

}

運行時輸出的結果是

A)3

B)4

C)6

D)7

熱門標籤