c++筆試題

weixin_49249294發表於2020-10-02

標籤:C++面試題
一、選擇題
1.下面各項不屬於派生新類範疇的是(C )
A.吸收基類的成員
B.改造基類的成員
C.刪除基類的成員
D.新增新成員
2.在派生新類的過程中,( D )
A.基類的所有成員都被繼承
B.只有基類的建構函式不被繼承
C.只有基類的解構函式不被繼承
D.基類的建構函式和解構函式都不被繼承
3.下面不屬於類的繼承方式的是( C )
A.public
B.private
C.operator
D.protected
4.作用域分辨符是指( B )
A.?:
B. ::
C.->
D.&&
5.專用多型是指( A )
A.過載多型和強制多型
B.強制多型和包含多型
C.包含多型和引數多型
D.引數多型和過載多型
6.通用多型是指( C )
A.過載多型和強制多型
B.強制多型和包含多型
C.包含多型和引數多型
D.引數多型和過載多型
7.下面各項中屬於不可過載的一組運算子是( C )
A.+、—、、/
B.[ ]、()
C. ::、.、?:、sizeof、.

D.++、——
8.關於類的建構函式,下面說法不正確的是( C )
A.建構函式的作用是在物件被建立時將物件初始化為一個特定的狀態
B.建構函式的函式名與類名相同
C.建構函式可以宣告為虛擬函式
D.建構函式在物件被建立時被系統自動呼叫
9.在C++中,陣列型別屬於( B )
A.基本資料型別
B.自定義資料型別
C.類型別
D.結構體型別
10.若有語句:float array[3][5][7];則陣列array的元素個數為( D )
A.3
B.5
C.7
D.105
11.關於虛基類,下面說法正確的是( D )
A.帶有虛擬函式的類稱為虛基類
B.帶有純虛擬函式的類稱為虛基類
C.虛基類不能例項化
D.虛基類可以用來解決二義性問題
12.關於解構函式,下面說法不正確的是( B )
A.解構函式用來完成物件被刪除前的一些清理工作
B.解構函式可以宣告為過載函式
C.解構函式可以宣告為虛擬函式
D.解構函式在物件的生存期即將結束時被系統自動呼叫
13.關於虛擬函式,下列說法不正確的是( C )
A.虛擬函式是動態聯編的基礎
B.虛擬函式的定義只能出現在類定義中的函式原形宣告中
C.類的成員函式均可宣告為虛擬函式
D.虛擬函式是用virtual關鍵字宣告的非靜態成員函式
14.關於抽象類,下列說法不正確的是( B )
A.抽象類不能例項化
B.帶有虛擬函式的類稱為抽象類
C.帶有純虛擬函式的類稱為抽象類
D.抽象類的作用是為一個類族建立一個公共介面
15.下列對一維陣列a的正確定義是( C )
A.int n=5,a[n];
B.int a(5);
C.const int n=5;int a[n];
D.int n;cin>>n;int a[n];
16.下列陣列定義語句中,不合法的是( A )
A.int a[3]={0,1,2,3};
B.int a[]={0,1,2};
C.int a[3]={0,1,2};
D.int a[3]={0};
17.已知int a[10]={0,1,2,3,4,5,6,7,8,9}和*p=a,則不能表示陣列a中元素的式子是( C )。
A.*a
B.*p
C.a
D.a[p-a]
18.以下不能對二維陣列a進行正確初始化的語句是( C )。
A.int a[2][3]={0};
B.int a[][3]={{0,1},{0}};
C.int a{2}[3]={{0,1},{2,3},{4,5}};
D.int a[][3]={0,1,2,3,4,5,};
19.已知int a[][3]={{0,1},{2,3,4},{5,6};{7}};則a[2][1]的值是( C )。
A.0
B.2
C.6
D.7
20.已知char *a[]={“fortran”,”basic”,”pascal”,”java”,”C++”};則cout<<a[3]的顯示結果是(C)。
A.basic
B.pascal
C.java
D.javac++
21.若用陣列名作為呼叫函式的實參,則傳遞給形參的是( A )。
A.陣列儲存首地址
B.陣列第一個元素的值
C.陣列元素的個數
D.陣列中全部元素的值
22.判斷字串s1和s2是否相等的正確表示式是( C )
A.s1=s2;
B.s1==s2;
C.strcmp(s1,s2)==0;
D.strcpy(s1,s2);
23.下面選項中,不是類的成員函式的為( C )
A.建構函式
B.解構函式
C.友元函式
D.拷貝建構函式
24.下列關於類的繼承描述中,錯誤的是( A )。
A.派生類可以訪問基類的所有資料成員,呼叫基類的所有成員函式。
B.派生類繼承了基類的全部屬性。
C.繼承描述類的層次關係,派生類可以具有與基類相同的屬性和方法。
D.一個基類可以有多個派生類,一個派生類可以有多個基類。
25.當一個派生類公有繼承一個基類時,基類中所有公有成員成為派生類的( A )
A.public成員
B.private成員
C.protected成員
D.友元
26.不論派生類以何種方式繼承基類,都不能使用基類的( B )
A.public成員
B.private成員
C.protected成員
D.public和protected成員
27.在一個派生類中重新定義基類的虛擬函式時,應使( D )
A.函式名相同,但引數不同;
B.函式名相同,但函式返回值型別不同;
C.函式名、函式返回值型別、引數個數、引數型別和順序各不相同。
D.函式名、函式返回值型別、引數個數、引數型別和順序完全相同。
28.如果把基類的解構函式宣告為虛擬函式,則( A )
A.各派生類的解構函式均自動為虛擬函式;
B.派生類的解構函式與基類解構函式不同名,故不是虛擬函式;
C.每個派生類的解構函式都必須宣告為虛擬函式;
D.只有基類的解構函式是虛擬函式。
29.當一個派生類私有繼承一個基類時,基類中所有公有成員和保護成員成為派生類的(B)
A.public成員
B.private成員
C.protected成員
D.友元
30.當一個派生類保護繼承一個基類時,基類中所有公有成員和保護成員成為派生類的(C)
A.public成員
B.private成員
C.protected成員
D.友元
31.派生類的物件可以訪問( A )。
A.公有繼承的基類的公有成員
B.公有繼承的基類的保護成員
C.公有繼承的基類的私有成員
D.保護繼承的基類的公有成員
32.在建立派生類物件時,建構函式的執行順序是( D )
A.物件成員建構函式、基類建構函式、派生類本身的建構函式
B.派生類本身的建構函式、基類建構函式、物件成員建構函式
C.基類建構函式、派生類本身的建構函式、物件成員建構函式
D.基類建構函式、物件成員建構函式、派生類本身的建構函式
33.在C++中,要實現動態聯編,必須使用( C )呼叫虛擬函式。
A.類名
B.物件名
C.基類指標
D.派生類指標
34.下列函式中,可以作為虛擬函式的是( D )。
A.普通函式
B.建構函式
C.成員函式
D.解構函式
35.下面函式原型宣告中,宣告fun為純虛擬函式的是( B )。
A.void fun()=0;
B.virtual void fun()=0;
C.virtual void fun();
D.virtual void fun(){ };
36.下列描述中,不正確的是( A )。
A.虛擬函式是沒有實現的函式
B.純虛擬函式的實現在派生類中定義
C.抽象類是具有純虛擬函式的類
D.抽象類指標可以指向不同的派生類物件
37.一個類可以有多個建構函式,這些建構函式之間的關係是( A )
A.過載
B.重複
C.拷貝
D.覆蓋
38.下列關於建構函式的說法不正確的是( A )
A.一個類中有且僅有一個建構函式。
B.建構函式在建立類的物件時被自動執行。
C.建構函式沒有函式型別。
D.類的建構函式的函式名必須與該類的類名相同。
39.下列關於解構函式的說法不正確的是( B )
A.一個類有且僅有一個解構函式。
B.解構函式可以有形參。
C.解構函式沒有函式型別。
D.解構函式在類的物件消失時被自動執行。
40.下列各項不屬於型別相容規則的是( A )
A.基類的物件可以賦值給派生類物件
B.派生類的物件可以賦值給基類的物件
C.派生類的物件可以初始化基類的引用
D.派生類物件的地址可以賦值給指向基類的指標
41.下列對於int *pa[5]的描述,正確的是( D )。
A.pa是一個指向陣列的指標,所指向的陣列是5個int型元素
B.pa是一個指向某陣列中的第5個元素的指標,該元素是int型變數
C.pa[5]表示某個陣列的第5個元素的值
D.pa是一個具有5個元素的指標陣列,每個元素是一個int型指標
42.執行下列語句後的輸出結果是( C )。
int hot=100;
int &rad=hot;
hot+=100;
cout<<rad<<endl;
A.0
B.100
C.200
D.300
43.下列對結構及其變數定義錯誤的是:( D )
A.struct MyStruct{
int num;
char ch;
};
MyStruct my;
B.struct MyStruct{
int num;
char ch;
}my;
C. struct{
int num;
char ch;
}
my;
D.struct{
int num;
char ch;
};
struct my;
44.下列關於指標運算的描述錯誤的是:( A )
A.在一定條件下,兩個指標可以相加
B.在一定條件下,兩個指標可以進行關係運算
C.在一定條件下,指標可以為空
D.在一定條件下,兩個指標可以相互賦值
45.下面關於類的物件的描述中,不正確的是( C )
A.一個物件只能屬於一個類
B.物件是類的例項
C.一個類只能有一物件
D.類和物件的關係與資料型別和變數的關係類似
47.若有如下宣告:
class A{ int a;};
則a是類A的( C )
A.公有資料成員
B.公有成員函式
C.私有資料成員
D.私有成員函式
48.在類外定義成員函式時,需要在函式名前加上( D )
A.物件名
B.類名
C.作用域運算子
D.類名和作用域運算子
49.一個類的友元函式可以訪問該類的( D )
A.私有成員
B.公有成員
C.保護成員
D.私有成員、公有成員和保護成員
50.下列關於派生類的描述中,不正確的是( B )
A.派生類除了包含它自己的成員外,還包含基類的成員
B.派生類中繼承的基類的成員的訪問許可權在派生類中保持不變
C.派生類只少有一個基類
D.一個派生類可以作為另一個派生類的基類。

相關文章