班級姓名: 學號分數:
試卷說明:本套試題共四個大題,全部題目都答在答題紙上,寫在其他地方均無效。
(答題紙在本套試卷的第8頁上)
一、單項選擇題(每小題2分,共40分)
1、關於c++與c語言關係的描述中,( d )是錯誤的。
a.c語言是c++語言的乙個子集 b.c語言與c++語言是相容的
c.c++語言對c語言進行了一些改進 d.c++語言和c語言都是物件導向的
2、已知:int m=10; 下列表示引用的方法中,( a )是正確的。
a.int &x=m; b.int &y=10; c.int &z; d.float &t=&m;
3、考慮下面的函式原型宣告:void testdefaulparam(int a,int b=7,char z='*');
下面函式呼叫中,不合法的是( c )。
a.testdefaulparam(5b.testdefaulparam(5,8);
c.testdefaulparam(5d.testdefaulparam(0,0,'*');
4、系統在呼叫過載函式時往往根據一些條件確定哪個過載函式被呼叫,在下列選項中,不能作為依據的是(a )。
a.函式的返回值型別 b.引數的型別 c.函式名稱 d.引數個數
5、下列有關c++類的說法中,不正確的是( d )。
a.類是一種使用者自定義的資料型別
b.只有類中的成員函式或類的友元函式才能訪問類中的私有成員
c.在類中,如果不做特別說明,所有成員的訪問許可權均為私有的
d.在類中,如果不做特別說明,所有成員的訪問許可權均為公用的
6、已知x類,則當程式執行到語句x array[3];時,呼叫了( d )次建構函式。
a.0b.1c.2d.3
7、有關析構函式的說法,不正確的是( b )。
a.析構函式有且僅有乙個
b.析構函式和建構函式一樣可以有形參
c.析構函式的功能是在系統釋放物件之前作一些記憶體清理工作
d.析構函式無任何函式型別
8、類定義的內容允許被其物件無限制地訪問的是( c )。
a.private 部分 b. protected 部分 c.public 部分 d.以上都不對
9、關於常資料成員的說法,不正確的是( d )。
a.常資料成員的定義形式與一般常變數的定義形式相同,只不過常資料成員的定義必須出現在類體中
b.常資料成員必須進行初始化,並且不能被更新
c.常資料成員通過建構函式的成員初始化列表進行初始化
d.常資料成員可以在定義時直接初始化
10、運用運算子delete刪除乙個動態物件時( c )。
a.系統首先為該動態物件呼叫建構函式,再釋放其占用的記憶體
b.系統首先釋放該動態物件占用的記憶體,再為其呼叫建構函式
c.系統首先為該動態物件呼叫析構函式,再釋放其占用的記憶體
d.系統首先釋放動態物件占用的記憶體,再為其呼叫析構函式
11、可以在類外用p.a的形式訪問派生類物件p的基類成員a,其中a是( d )。
a.私有繼承的公用成員 b.公用繼承的私有成員
c.公用繼承的保護成員 d.公用繼承的公用成員
12、在公用繼承方式下,有關派生類物件和基類物件的關係,不正確的敘述是( c )。
a.派生類的物件可以賦給基類的物件
b.派生類的物件可以初始化基類的引用
c.派生類的物件可以直接訪問基類中的成員
d.派生類的物件的位址可以賦給指向基類的指標
13、設定虛基類的目的是( b )。
a.簡化程式 b.消除二義性 c.提高執行效率 d.減少目標**
14、在c++中,用於實現動態多型性的是( d )。
a.內聯函式 b.過載函式 c.模板函式 d.虛函式
15、不能說明為虛函式的是( b )。
a.析構函式 b.建構函式 c.類的成員函式 d.以上都不對
16、如果乙個類至少有乙個純虛函式,那麼就稱該類為( a )。
a.抽象類 b.派生類 c.純基類 d.以上都不對
17、下面關於友元的描述中,錯誤的是( d )。
a.友元函式可以訪問該類的私有資料成員
b.乙個類的友元類中的成員函式都是這個類的友元函式
c.友元可以提高程式的執行效率
d.類與類之間的友元關係可以繼承
18、下列運算子中,( c )運算子在c++中不能被過載。
abcd.new
19、模板的使用實際上是將類模板例項化成乙個( c )。
a.函式b.物件c.類 d.抽象類
20、假定myclass為乙個類,則該類的拷貝建構函式的宣告語句為( c )。
a.myclass(myclass xb.myclass&(myclass x)
c.myclass(myclass &xd.myclass(myclass *x)
二、填空題(前16個空,每空1分,後2個空,每空2分,共20分)
1、類和物件的關係可表述為:類是物件的抽象 ,而物件則是類的例項 。
2、在c++中,三種繼承方式的說明符號為 publicprivate 和 protected ,如果不加說明,則預設的繼承方式為 private 。
3、如果只想保留公共基類的乙個複製,就必須使用關鍵字 virtual 把這個公共基類宣告為虛基類。
4、若要把void fun()定義為類a的友元函式,則應在類a的定義中加入語句 friend void fun(a &a) 。
5、類的靜態成員分為靜態資料成員和靜態成員函式
6、運算子過載要求保持其原來的運算元個數、 結合性 、優先順序和語法結構。
7、通過關鍵字 template 可以宣告模板,通過關鍵字 class 指定函式模板的型別引數,有幾個型別引數就有幾個型別關鍵字。
8、列出c++中兩種使用者自定義的資料型別: 類結構體 。
9、建構函式的作用是在建立物件時初始化物件的資料成員
10、後置自增運算子「++」過載為類的成員函式(設類名為a)的形式為 a operator++(int) 。
三、閱讀下面3個程式,寫出程式執行時輸出的結果:(共13分)
1、#include
using namespace std;
void fun(int &a,int &b)
void exchange(int &a,int &b,int &c)
int main()
2、#include
using namespace std;
class date
;date::date(int m,int d,int y):month(m),day(d),year(y)
date::date(int m,int d):month(m),day(d)
date::date(int m):month(m)
date::date()
void date::display()
3、#include
using namespace std;
class a};
C物件導向程式設計期末考試試題
杭州電子科技大學學生考試卷 a 卷 一 判斷題 15分 對的打 錯的打 1.友元函式用於允許乙個函式訪問不相關類的私有部分。2.建構函式可以被繼承。3.動態繫結的多型性是通過虛函式實現的。4.在c 中,傳引用呼叫等同於傳位址呼叫。5.過載函式必須有不同的引數列表。6.可以用delete釋放不是用ne...
山東大學年物件導向程式設計期末考試試卷 回憶版
一 1.比較重定義和改寫的相同點和不同點,在方法繫結時候的區別。2.用 舉例說明this的多型性。3.用物件導向的語言說明替換。4.為什麼用組合服復用而不是繼承復用。animal plant。給出不同簽名問執行哪乙個方法並給出理由,參考課本91頁dessert甜點的例子。二 1.零件總 totalp...
期末試卷評分標準 09 10 1《高階語言程式設計》B
山東財政學院2009 2010學年第一學期 高階語言程式設計 試卷b參 及評分標準 考試方式 閉卷 開卷 閉卷 其他 開課學院計算機資訊工程學院使用年級2009電本出題教師周立力 注 標準答案 參 要點及評分標準須寫清題號 每小題得分 共得分等。此格式為題頭,如本頁不夠,後面請附相同規格 a4 的紙...