選擇題:
1.說明函數int method a (floct)是友元函數應為(A):
A)friend int method a a (floctz) B): friend int method a (floctz)
C): int friend a (floctz) friend D): int method a friend (floctz)
2.對於下面的幾個函數:
Void f(int x) (…) 1/1 int f(int y) (…)1/2
Int f(int i,int j(…))1/3 floct k(int x) (…)(C)是重載函數。
A):4個全部 B):1和4 C):2和3 D):3和4
3.C++語言是從早期的C語言逐漸發展演變來的,與C語言相比,它在求解問題方法上進行最大改進的是(B):
A):面向過程 B):物件導向 C):安全性 D):複用性
4.下列有關重載函數的說法中正確的是(C):
A):重載函數必須具有不同的傳回值類型。 B):重載函數參考個數必須相同
C):重載函數必須有不同的行參列表 D):重載函數名可以不同
5.下列關於建構函式的描述中,錯誤的是(D):
A):建構函式可以設定預設的參數 B):建構函式在定義類對象的自動執行
C):建構函式可以是內嵌函式 D):建構函式不可以重載
6.下列描述中,表達錯誤的是(B):
A):公有繼承的基類中的Public成員在衍生類別中仍是Public的
B):私人繼承的基類中Private成員在衍生類別中仍是Private的
C): 公有繼承的基類中的Protected成員在衍生類別中仍是Protected的
D): 私人繼承的基類中Public成員在衍生類別中是Private的
7.應在下列程式畫線處填入的正確語句是(C)
#include<iostream>
Class Base
{ Public:
Void fun(){cout<<”Base.fun”<<endl;}
}:
Class perived: Public Base
{void fun ()
{ //顯示調用基類的函數fun()
Cout<<”Perived::fun”<<endl;
}
};
A)fun(); B):Bas fun(); C):Base::fun(); D):Base→fun();
8.下面有關new和delete操作符的說法。哪個是正確的(D)
A):使用new操作符,可以動態分配全域堆中的記憶體資源
B):若P的類型已由A強制轉換為void*,那麼執行語句delete P*時,類A的解構函式不會被調用。
C):實現全域函數時,new和delete通常成對地出現在由一對匹配的花括弧限定的語句塊中。
D):執行語句A*P=new A[100]時,類A的建構函式只會被調用一次。
9.下列哪種用法不能體現類A和類B之間的組合關係(D):
A):類A中聲明資料成員Bb. B): 類A中聲明資料成員B*b;
C):沒答案 D):類A中聲明資料成員B fun(B&.obj);
10.類C是以多重繼承的方式從類A和類B繼承而來的,類A和類B無公用的基類,那麼(B);
A):類C的繼承方式只能採用Public繼承。 B):可改用單繼承的方式實作類別C的功能。
C):類A和類B至少有一個是抽象類別。 D):類A類B只少有一個是虛基數。
12.類A有一個執行個體化的常量對象a,那麼下面說法中不正確的是(A):
A):類A中的非待用資料成員一定都是常量成員。
B):通過a可以直接調用類A的常量成員函數。
C):a不能直接作為存值使用。 D):a可以是靜態常量對象。
13.下列哪種函數可以是虛的(D)
A):自訂的建構函式。B):拷貝建構函式。 C):靜態成員函數。 D):解構函式。
14.類B是通過Public繼承的方式從類A派生而來的。且類A和類B都有完整的實現代碼,那麼下列說法正確的是(A):
A):類B中具有Public可訪問性的成員函數個數。一定不少於類A中的Public成員函數的個數。
B):一個類B的執行個體對象佔有的記憶體空間一定不少於類A中的執行個體對象佔有的空間。
C):只要類B中的建構函式都是Public的,在main函數中。
D):類A和類B中是同名函數。
15.關於異常和C++提供的異常處理機制。不正確的說法是(A)。
A):若程式員預見到程式的異常,則一定可以通過修改程式碼來避免異常出現。
B):使用dyname cast操作符可能會發生異常。
C):異常可以用catch捕獲處理
D):異常可以是對象,也課題是普通函數。