計算機二級考試C++試題

學識都 人氣:4.52K

C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。以下是小編整理的關於計算機二級考試C++試題,希望大家認真閱讀!

計算機二級考試C++試題

1[單選題] 已知函數FA調用函數FB,若要把這兩個函數定義在同一個文件中,則( )。

必須定義在FB之前

必須定義在FA之前

C.若FA定義在FB之後,則FA的原型必須出現在FB的定義之前

D.若FB定義在FA之後,則FB的原型必須出現在FA的定義之前

參考答案:D

參考解析:如果使用用戶自己定義的函數,而該函數與調用它的函數(即主調用函數)在同一程序單元中,且位置在主調用函數之後,則必須在調用此函數之前對被凋用的函數作聲明。

2[單選題]單個用戶使用的數據視圖的描述稱爲

A.外模式 B.概念模式 C.內模式 D.存儲模式

參考答案:A

3[單選題] 生成派生類對象時,派生類構造函數調用基類構造函數的條件是(  )。

A.無需任何條件

B.基類中顯式定義了構造函數

C.派生類中顯式定義了構造函數

D.派生類構造函數明確調用了基類構造函數

參考答案:D

參考解析:派生類的構造函數必須通過調用基類的構造函數來初始化基類子對象。所以,在定義派生類的構造函數時除了對自己的數據成員進行初始化外,還必須負責調用基類構造函數使基類的數據成員得以初始化。

4[單選題] 下列敘述中正確的是(  )。

A.在面向對象的.程序設計中,各個對象之間具有密切的關係

B.在面向對象的程序設計中,各個對象都是公用的

C.在面向對象的程序設計中,各個對象之間相對獨立,相互依賴性小

D.上述三種說法都不對

參考答案:C

參考解析:面向對象的程序設計是用對象模擬問題領域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現對象之間的相互聯繫。

5[簡答題] 有以下兩個程序,分析它們的執行結果有什麼不同。

程序1:

#include

class Point

{

int x,y;

public:

Point(){x=y=0;}

Point(int i,int j){x=i;y=j;}

Point operator+(Point);

void disp() ( cout<<”(”<

}

Point Point::operator+(Point P)

{

this->x+=P.x; this->y+=p.y;

return *this;

}

void main()

{

Point pl(2,3),p2(3,4),p3;

cout<<”p1:”;();

cout<<”p2:”;();

p3=pl+p2;

cout<<”執行p3=p1+p2後”<

cout<<”p1:”,();

cout<<”p2:”;();

cout<<”p3:”;();

}

程序2:

#include

class Point{

int x,Y;

public:

Point(){x=y=O;}

Point(int i,int j){x=i,y=j;}

Point operator+(Point);

void disp f){cout<< ”(”<

}

Point Point::operator+(Point P)

{

Point s;

s.x=x+p.x; s.y=y+p.y;

return s;

}

void main()

{

Point pl(2,3),p2(3,4),p3;

cout<<”p1:”;();

cout<<”p2:”;();

p3=pl+p2;

cout<<”執行p3=p1+p2後”<

cout<<”p1:”;();

cout<<”p2:”;();

cout<<”p3:”;();

}

參考解析:這兩個程序中的main函數完全相同,類Point中的運算符重載均採用成員函數方式實現,只是程序1的運算符重載函數使用this指針,而程序2的運算符重載函數使用局部對象。

p3=p1+p2 等價於p3=ator+(p2)。對於程序1,this指針指向p1對象,執行this->x+=p.x;this->y十一 p.y;語句,修改p l對象的x和y成員值,執行return*this;語句,將pl對象賦給p3。所以p1和p3兩個對象的x、Y值相同,即p3=pl+p2等價於 p1=p1+p2,p3:p1,其運行結果如下:

p1:(2,3)

p2:(3,4)

執行p3=pl+p2後

P1:(5,7)

p2:(3,4)

P3:(5,7)

對於程序2,執行運算符重載函數,Point s;語句定義一個對象,s.x=x+p.x;s.y=y+p.y;語句用於修改s對象的x、Y值,ret%il~l s;語句返回該對象,賦給p3,而p1和p2對象不改變。其運行結果如下:

p1:(2,3)

p2:(3,4)

執行p3=pl+p2後

p1:(2,3)

p2:(3,4)

p3:(5,7)第