C 期末考試複習資料三

2021-10-19 10:17:07 字數 3953 閱讀 8509

習題一

一、填空題

1、物件導向的程式設計有四大特點,它們是抽象、封裝、( )、( )。

2、類中的成員使用特定的關鍵字指定不同的訪問特性,其中( )成員是提供給外部的介面,在類中和類外可見。

3、protected成員的訪問許可權:派生類( )訪問protected成員,派生類物件( )訪問protected成員,本類的物件( )訪問protected成員(填:能與不能)。

4、c++語言中類成員的訪問許可權包括private、( )和( )。

5、對乙個類中的資料成員的初始化可以通過建構函式中的( )實現,也可以通過建構函式中的( )實現。

6、假定ab為乙個類,則執行「ab a[10];」語句時,系統自動呼叫該類的建構函式的次數為( )。

7、假定使用者沒有給乙個名為ab的類定義建構函式,則系統為其隱含定義的建構函式為( )。

8、若類x中沒有定義拷貝建構函式,則系統為類x定義的預設拷貝建構函式的原型為( )。

9、類中的成員只能為該類的成員函式及該類的派生類中的成員函式訪問,則應加上訪問屬性( )。

10、假設乙個類物件陣列為a[m],其中m為常變數,當離開它的作用域時,系統自動呼叫該類析構函式的次數為( )。

11、設p為指向乙個動態物件的指標變數,則執行delete p語句時,將自動呼叫該類的( )。

12、在乙個類中定義了全部是預設引數的建構函式後,不能再定義( )建構函式。

13、假設有乙個test類,則執行「test a(5),b[2],*p;」語句時,自動呼叫該類建構函式的次數為( )。

14、若將類a的成員函式「void fun();」定義為乙個類b的友元函式,則應在類b的定義中加一條語句:( )。

15、當乙個物件作用域結束時,系統自動呼叫( )函式來釋放儲存空間。

16、對於類中定義的成員,其預設訪問許可權為( )。

17、每個物件都有乙個指向自身的指標,稱為( )指標,通過使用它來確定其自身的位址。

18、乙個類有( )個析構函式。

19、在類內定義的( )資料不能被不屬於該類的成員函式訪問。

20、this指標是乙個隱含的指標,它隱含於每個類的( )中。

二、選擇題

1、以下關於類和物件的敘述錯誤的是( )。

a. 物件是類的乙個例項

b. 任何乙個物件都歸屬於乙個具體的類

c. 乙個類只能有乙個物件

d. 類與物件的關係和資料型別與變數的關係相似

2、以下關於建構函式的敘述錯誤的是( )。

a. 建構函式名必須與類名相同

b. 建構函式在定義物件時自動執行

c. 建構函式無任何函式型別

d. 在乙個類中建構函式又且僅有乙個

3、以下關於析構函式的敘述錯誤的是( )。

a. 乙個類中只能定義乙個析構函式

b. 析構函式和建構函式一樣可以有形參

c. 析構函式不允許有返回值

d. 析構函式名前必須冠有符號「~」

4、以下敘述正確的是( )。

a. 在類中不作特別說明的資料成員均為私有型別

b. 在類中不作特別說明的成員函式均為公有型別

c. 類成員的定義必須放在類體內

d. 類成員的定義必須是成員變數在前,成員函式在後

5、以下敘述不正確的是( )。

a. 乙個類的所有物件都有各自的資料成員,它們共享成員函式

b. 乙個類中可以有多個同名的成員函式

c. 乙個類中可以有多個建構函式、多個析構函式

d. 類成員的定義必須是成員變數在前,成員函式在後

6、以下不屬於建構函式特徵的是( )。

a. 建構函式名與類名相同

b. 建構函式可以過載

c. 建構函式可以設定預設引數

d. 建構函式必須指定函式型別

7、下列函式中,是類myclass的析構函式的是( )。

a. ~myclass(); b. myclass(); c. ~myclass(); d. ~myclass(int n);

8、關於類和物件不正確的說法是( )。

a. 類是一種型別,它封裝了資料和操作

b. 物件是類的例項

c. 乙個類的物件只有乙個

d. 乙個物件必屬於某個類

9、在類定義的外部,可以被訪問的成員有( )。

a. 所有類成員

b. private或protected的類成員

c. public的類成員

d. public或private的類成員

10、關於this指標的說法錯誤的是( )。

a. this指標不能被顯示說明

b. 當建立乙個物件後,this指標就指向該物件

c. 成員函式擁有this指標

d. 靜態成員函式擁有this指標

11、下面有關new運算子的描述,錯誤的是( )。

a. 使用new運算子建立物件時,會呼叫類的建構函式

b. 使用new運算子建立陣列時,必須定義初始值

c. 使用new運算子建立的物件可以使用delete運算子刪除

d. new運算子可以用來動態建立物件和物件陣列

12、下面關於成員函式的特徵中,說法錯誤的是( )。

a. 成員函式可以過載

b. 成員函式可以是靜態的

c. 成員函式一定是內聯函式

d. 成員函式可以設定引數的預設值

13、在通常情況下,複製建構函式的引數是( )。

a. 某個物件的引用名

b. 某個物件名

c. 某個物件的成員名

d. 某個物件指標名

14、在類體外定義成員函式時,需要在函式名前加上( )。

a. 類物件

b. 類標記

c. 類名和作用域運算子

d. 域運算子

15、下面關於時間類time定義的說法中,正確的是( )。

time time1,time[30];

time *ptime;

time &time2=time1;

a. time[30]是乙個陣列,它具有30個元素

b. ptime就是指向time類物件的指標

c. time2是乙個類物件引用,定義時必須對其進行初始化,使之成為物件time1的別名

d. 以上答案都正確

三、判斷題

1、任何乙個物件只能屬於乙個具體的類。

2、建構函式可以有引數,但不可以有返回值。

3、乙個類可以有多個建構函式,也可以有多個析構函式。

4、對乙個類中資料成員的初始化可以通過建構函式中的引數初始化表實現。

5、使用new運算子動態建立物件陣列時必須指定初始值。

6、乙個類的所有物件都有各自的資料成員,它們共享成員函式。

7、乙個類中可以有多個同名的成員函式。

8、類成員的定義可以是資料成員在前,成員函式在後。

9、類的靜態成員函式的初始化工作要放在類外進行。

10、類與物件的關係和資料型別與變數的關係相似。

四、分析題

1、#include

class date

;void date::set(int y, int m, int d)

void date::print()

;date:: date ():year(2005),month(3),day(15)

date:: date (int y, int m, int d):year(y),month(m),day(d)

void date::print()

void show(char *pt)

6、#include

class k

void fun1(int j)

~book()

;void point::set()

void point::getline(point p2)

;void student::getscore()

void student::display()

for(j=0;jdisplay();

}

C 期末考試複習資料四

一 填空題 1 如果類a繼承了類b,則類a稱為 類,類b稱為 類。2 在繼承機制下,當物件消亡時,編譯系統先執行 的析構函式,然後才執行 的析構函式。3 繼承發生在利用現有類派生新類時,其中 稱為基類,或 類 稱為派生類,或 類。4 在c 語言中,派生類繼承了基類的全部資料成員和除 之外的全部函式成...

北航c 期末考試複習

筆者總結了北航計算機系c 考試的一些重點,希望對以後複習的同學能有所幫助 迭代器,工程模式,觀察者模式必考 變數基本資料型別 void bool char intfloat double wchar t short int typedef newtype oritype sizeof 三種用法 si...

C 期末考試複習筆記

c 語言是物件導向的程式語言,字尾名是.cs c 語言沒有指標c 語言完全擁有.net的自動 機制 c 語言不能用於硬體驅動程式的開發 net是乙個用於建立應用程式的平台 源 是乙個用於應用程式的核心,沒有源 則無法編譯乙個應用程式 工具欄是一些工具按鈕的組合 console.readline 的作...