點擊查看:2018年9月計算機二級C++考前基礎練習題及答案匯總
1.生成派生類對象時,派生類構造函數調用基類構造函數的條件是( )。
A.無需任何條件
B.基類中顯式定義了構造函數
C.派生類中顯式定義了構造函數
D.派生類構造函數明確調用了基類構造函數
2.下列關于派生類和基類的描述中,正確的是( )。
A.派生類成員函數只能訪問基類的公有成員
B.派生類成員函數只能訪問基類的公有和保護成員
C.派生類成員函數可以訪問基類的所有成員
D.派生類對基類的默認繼承方式是公有繼承
3.有如下類模板定義:
template
classBigNumber{
longn;
public;
BigNumber(Ti):n(i){}
BigNumberoperator+(BigNumberb){
returnBigNumber(n+b.n):
}
};
已知b1、b2是BigNumber的兩個對象,則下列表達式中錯誤的是( )。
A.b1+b2
B.b1+3
C.3+b1
D.3+3
4.下列關于文件流的描述中,正確的是( )。
A.文件流只能完成針對磁盤文件的輸入、輸出
B.建立一個文件流對象時,必須同時打開一個文件
C.若輸入流要打開的文件不存在。將建立一個新文件
D.若輸出流要打開的文件不存在,將建立一個新文件
5.有如下程序:
#include
usingnamespacestd;
classPair{
intm,n;
public;
Pair(intj,intk):m(j),n(k){}
intget( ){returnIn;}
intget( )const{returnm+n;}
};
intmain( ){
Paira(3,5);
constPairb(3,5);
cout
}
運行時的輸出結果是( )。
A.33
B.38
C.83
D.88
6.下列敘述中正確的是( )。
A.全局變量的作用域一定比局部變量的作用域范圍大
B.靜態類別變量的生存期貫穿于整個程序的運行期間
C.函數的形參都屬于全局變量
D.未在定義語句中賦初值的aut0變量和static變量的初值都是隨機值
7.假定MyClass為一個類,則執行MyClassa,b(2),*p;語句時,自動調用該類構造函數( )次。
A.2
B.3
C.4
D.5
8.能正確表示邏輯關系”a≥10或a≤0”的C++語言表達式是( )。
A.a>=10ora<=0
B.a)一01a(一10
C.a>=10&&a<=0
D.a>=10||a(=0
9.若執行下面的程序時,從鍵盤上輸入5和2,則輸出結果是( )。
#include(iostream.h)
voidmain( )
(inta,b,k;
cin>>a>>b;
k=a:
if(ak=a%b;
else
k=b%a:
cout((k
B.3
C.2
D.0
10.假定MyClass為一個類,那么下列的函數說明中,( )為該類的析構函數。
A.void~MyClass( );
B.~MyC|ass(intn);
C.MyClass( );
D.~MyClass( );
參考答案:
1.D。【解析】派生類的構造函數必須通過調用基類的構造函數來初始化基類子對象。所以在定義派生類的構造函數時,除了對自己的類據成員進行初始化外,還必須負責調用基類構造函數,使基類的數據成員得以初始化。
2.B。【解析】派生類成員函數不能訪問基類的private成員,只能由基類的對象來訪問。這才體現了C++的數據封裝特性。
3.C。【解析】該題考查了C++模板類和+運算符重載的知識,3+b1時,程序不能將b1轉化為整型,所以編譯會出錯。
4.C。【解析】輸入流要打開的文件不存在,則會自動建立該文件,而輸出流要打開的文件不存在,則會報錯,而不會新建一個文件。
5.B。【解析】const函數只能被const對象調用,a.get()函數調用返回值是3,而b.get()調用的返回值是8。
6.B。【解析】本題考查的是變量的作用域及其生存周期。一個全局變量的生存周期從它被聲明開始,直到程序結束;一個局部變量的生存周期從它被聲明開始,直到包含它的最近的一個程序塊結束。靜態變量的生存周期將延續到整個程序的終止。
7.A。【解析】C++在創建一個對象時,會調用類的構造函數。執行MyClassab,(2),*P;創建了兩個對象a、b和指針P,在創建對象a和b會調用構造函數,而創建指針P時,由于P本身不是對象,所以不調用類的構造函數。
8.D。【解析】邏輯運算符“‖”表示或的意思。
9.C。【解析】本題考查簡單的if…else語句。先執行條件if(a
10.D。【解析】C++語言中析構函數為符號“~”加類名,且析構函數沒有返回值和參數,故前不加void關鍵字。所以正確的形式應該是~MyClass()。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: