糯米文學吧

位置:首頁 > 計算機 > 計算機二級

2016年9月計算機二級《C語言》考前練習題

1.下列有關內聯函數的敍述中,正確的是( )。

2016年9月計算機二級《C語言》考前練習題

A.內聯函數在調用時發生控制轉移

B.內聯函數必須通過關鍵字inline來定義

C.內聯函數是通過編譯器來實現的

D.內聯函數函數體的最後一條語句必須是return語句

參考答案:C

參考解析:一般函數進行調用時,要將程序執行權轉到被調用函數中,然後再返回到調用它的函數中;而內聯函數在調用時,是將調用表達式用內聯函數體來替換,所以在調用時不發生控制轉移。在類內部實現的函數都是內聯函數,可以不用inline定義;只有函數外部定義的內聯函數才必須加關鍵字inline。編譯系統並非對內聯函數必須使用內聯,而且根據具體情況決定。內聯函數不是必須要有返回值的。

2.語句int*P=&k;定義了指針P,與這個語句等效的語句序列是( )。

* p;P=&k; * P;P=k; * p;* P=&k; * p;* P=k;

參考答案:A

參考解析:本題考查指針和地址,題目中定義了一個指向變量k的一個指針p,那麼與題目中等效的表達式A選項,即先定義一個指向整型的指針,然後指向k的地址。

3.有如下程序:

#include

using namespace std;

class A

{

public:

A(){cout<<”A”;}

-A(){cout<<”-A”;}

};

class B:public A

{

A*P;

public:

B(){cout<<”B”;P=new A();}

-B(){cout<<”~B”;delete p;}

};

int main()

{

B obj;

return 0;

}

執行這個程序的輸出結果是( )。

~A~B~~B~A~~B~A~~A~B~A

參考答案:B

參考解析:本題考查派生類的構造函數和析構函數,在定義一個派生類的對象時,先調用基類的構造函數,然後再執行派生類的構造函數。對象釋放時,先執行派生類的析構函數,再執行基類的析構函數。所以本題答案為B。

4.有如下類定義:

class AA

{

im a:

public:

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

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

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

friend void show(AA t{cout<

};

其中四個函數的定義中正確的是(  )。

A.①B.②C.③D.④

參考答案:B

參考解析:本題考查常成員函數,常成員函數只能引用本類中的數據成員,而不能修改它。所以本題答案為B。

5.若要對Data類中重載的加法運算符成員函數進行聲明,下列選項中正確的是( )。

+(DatA.; operator+(DatA.;+operator(DatA.;ator+(Data,DatA.;

參考答案:B

參考解析:根據重載加法運算符的格式,只有B選項正確。

6.有如下數組聲明:int num[10];,下標值引用錯誤的是( )。

[10][5][3][o]

參考答案:A

參考解析:數組定義中的數字指的是數組的大小,而下標是從0開始的,所以本題中數組的最後一個元素是num[9]。

7.將前綴運算符“--”重載為非成員函數,下列原型中能正確用於類中説明的是(  )。

&operator--(int); operator--(DeCr&,int);nd DeCr&operator--(DeCr&);nd DeCr operator--(DeCr&,int);

參考答案:C

參考解析:把“--”運算符重載為非成員(友元)函數格式:friend<返回類型>operator--()是前綴的格式;friend<返回類型>operator--(int)是後綴的格式。當然也可以有參數如題中C選項所示。

8.如果派生類以proteCted方式繼承基類,則原基類的proteCted成員和publiC成員在派生類中的訪問屬性分別是( )。

iC和iC和eCted和eCted和proteCted

參考答案:D

參考解析:本題考查保護繼承中派生類對基類的訪問屬性,在受保護繼承中,基類的公用成員和保護成員在派生類中成了保護成員,其私有成員仍為基類私有,所以本題答案為D。

9.在函數中,可以用aut0、extem、register和static這四個關鍵字中的一個來説明變量的存儲類型,如果不説明存儲類型,則默認的存儲類型是(  )。

ic

參考答案:A

參考解析:變量的存儲方法分為靜態存儲和動態存儲兩大類,包含4種:自動的`(auto)、靜態的(static)、寄存器的(register)、外部的(extem)。變量如果沒有説明存儲類型,那麼默認就是aut0。

10.下列程序的輸出結果是( )。

#include

int rain(iltl a,int B)

{

if(a

else retum b;

retum 0;

}

void main()

{

eout<

}

A.0B.1C.2D.3

參考答案:B

參考解析:本題考查的是函數的調用,第一次調用min(2,3),因為2<3,所以返回值為2,第二次調用min(1,2),因為l<2,所以返回1。