C++ 模擬測試



本節為您提供各種與C++框架相關的模擬測試。您可以將這些模擬測試樣本下載到本地機器上,並在方便時離線解答。每個模擬測試都附帶一份答案,以便您核對最終分數並進行自我評估。

問答

C++ 模擬測試一

題1 - 類成員的預設訪問說明符是

A - public

B - private

C - protected

D - 以上都不是。

答案:B

解釋

如果類中某個/些成員沒有訪問說明符,則預設為private。

題2 - 三元字元以什麼開頭

A - #

B - ##

C - ?

D - ??

答案:C

解釋

一些字元有替代表示,並以??開頭。例如,對於[,等價的是??(

答案:D

解釋

C++ 支援所有形式的繼承。

答案:A

解釋

由於行內函數像宏一樣在呼叫處展開,因此它的執行速度更快。

答案:D

解釋

純虛擬函式不能有定義。

題7 - 下列程式的輸出是什麼?

#include<iostream>

using namespace std;
class abc { 
   void f();
   void g();
   int x;
};

main() {
   cout<<sizeof(abc)<<endl;
}

A - 12

B - 4

C - 8

D - 編譯錯誤

答案:B

解釋

只有類成員變數才構成類的或其物件的大小。

#include<iostream>

using namespace std;
class abc { 
   void f();
   void g();
   int x;
};
main() {
   cout<<sizeof(abc)<<endl;
}

題8 - 下列程式的輸出是什麼?

#include<iostream>

using namespace std;
class abc { 
   public: 
      static int x; 
      int i; 

      abc() {
         i = ++x;
      }
   };
int abc::x;

main() { 
   abc m, n, p;
   
   cout<<m.x<<" "<<m.i<<endl;
}

A - 3 1

B - 3 3

C - 1 1

D - 1 3

答案:A

解釋

靜態成員變數“x”在為該類建立的所有物件之間共享公共記憶體。

#include<iostream>

using namespace std;
class abc { 
   public: 
      static int x; 
      int i; 

      abc() {
         i = ++x;
      }
   };
int abc::x;

main() { 
   abc m, n, p;
   
   cout<<m.x<<" "<<m.i<<endl;
}

題9 - 建構函式可以是虛擬函式。

A - 正確

B - 錯誤

答案:B

解釋

建構函式的目的不能在派生類中被重寫,因此建構函式不能是虛擬函式。

題10 - 選擇不能被過載的運算子。

A - /

B - ()

C - ::

D - %

答案:C

解釋

作用域解析運算子(::)不允許被過載。

題11 - 哪個運算子必須僅作為成員函式過載?

A - _

B - _ _

C - ++(後置版本)

D - =

答案:D

解釋

過載的賦值運算子的工作方式類似於複製建構函式,並且需要作為類的成員函式過載。

題12 - 以下哪個不是 C++ 的關鍵字?

A - volatile

B - friend

C - extends

D - this

答案:C

解釋

其餘都是 C++ 的有效關鍵字。

題13 - 下列程式的輸出是什麼?

#include<iostream>

using namespace std;
class abc { 

   public: 
      int i; 

      abc(int i) { 
         i = i;
      }
};

main() { 
   abc m(5); 
   
   cout<<m.i;
}

A - 5

B - 垃圾值

C - 語句 i=i; 處出錯

D - 編譯錯誤:‘i’ 重複宣告。

答案:B

解釋

i=i,是將成員變數賦值給自己。

#include<iostream>

using namespace std;
class abc { 

   public: 
      int i; 

      abc(int i) { 
         i = i;
      }
};

main() { 
   abc m(5); 
   
   cout<<m.i;
}

題14 - 預設情況下,結構體的成員是

A - private

B - protected

C - public

D - 訪問說明符不適用於結構體。

答案:C

解釋

如果未為結構體變數/函式指定訪問說明符,則預設為public。

答案:A

解釋

題16 - 為表示式“ptr=new int[100]”選擇相應的delete運算子用法。

A - delete ptr;

B - delete ptr[];

C - delete[] ptr;

D - []delete ptr;

答案:C

解釋

題17 - ‘cin’ 是一個__

A - 類

B - 物件

C - 包

D - 名稱空間

答案:B

解釋

它是 istream 類的物件。

題18 - 使用其物件訪問結構體成員函式的運算子。

A - .

B - ->

C - *

D - 以上都不是。

答案:A

解釋

就像我們使用點(.)運算子訪問類的成員一樣,它也用於訪問結構體的成員。

題19 - 通常情況下,使用以下語句包含使用者定義的標頭檔案。

A - #include “file.h”

B - #include <file.h>

C - #include <file>

D - #include file.h

答案:A

解釋

使用(a)中的語法,編譯器首先在當前工作目錄中查詢檔案,如果找不到,則在預設包含路徑中查詢。

題20 - 在 C++ 中,哪個資料型別可以用來儲存寬字元?

A - unsigned char;

B - int

C - wchar_t

D - 以上都不是。

答案:C

解釋

wchar_t 是我們可以用來儲存 Unicode 字元的資料型別。

題21 - 即使類物件是常量物件,哪個儲存說明符也可以用來修改成員變數?

A - auto

B - register

C - static

D - mutable

答案:D

解釋

mutable 是 C++ 中引入的儲存說明符,在 C 中不可用。用 mutable 宣告的類成員即使物件是常量也可以修改。

題22 - 下列哪個運算子可以用來計算一個數的另一個數次冪的值。

A - ^

B - **

C - ^^

D - 以上都不是

答案:D

解釋

C/C++ 中沒有這樣的運算子。

題23 - 選擇後置形式 ++ 的有效宣告,其中 T 是類名。

A - T operator++();

B - T operator++(int);

C - T& operator++();

D - T& operator++(int);

答案:B

解釋

引數 int 只是為了表示它是過載的後置形式。根據其原始行為,不應該返回引用。

題24 - 我們可以為過載的 () 運算子提供可變數量的引數。

A - 正確

B - 錯誤

答案:A

解釋

答案:B

解釋

這兩個運算子都不能過載。

答案表

題號 答案
1 B
2 C
3 D
4 A
5 D
6 B
7 B
8 A
9 B
10 C
11 D
12 C
13 B
14 C
15 A
16 C
17 B
18 A
19 A
20 C
21 D
22 D
23 B
24 A
25 B
cpp_questions_answers.htm
廣告