[渝粤教育] 中国地质大学 面向对象程序设计 复习题
《面向?qū)ο蟪绦蛟O(shè)計(jì)》模擬題
一.單選題
1.如果一個(gè)類(lèi)中包含純虛函數(shù)則該類(lèi)稱(chēng)為().
A.抽象類(lèi)
B.虛基類(lèi)
C.派生類(lèi)
D.子類(lèi)
2.在類(lèi)中將show聲明為不帶返回值的純虛函數(shù)則正確的寫(xiě)法是().
A.virtual void show()=0;
B.virtual show()=0;
C.virtual void show();
D.void show()=0 virtual;
3.虛函數(shù)必須是類(lèi)的().
A.構(gòu)造函數(shù)
B.友元函數(shù)
C.成員函數(shù)
D.私有成員函數(shù)
4.下列關(guān)于虛函數(shù)的描述中()是正確的.
A.虛函數(shù)一定不能有函數(shù)體
B.含有虛函數(shù)的類(lèi)不能定義該類(lèi)對(duì)象
C.虛函數(shù)只能被重載不能被繼承
D.基類(lèi)中聲明虛函數(shù)后派生類(lèi)中可以不重載該虛函數(shù)
5.在C++中要實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編可以使用()調(diào)用虛函數(shù).
A.類(lèi)名
B.派生類(lèi)指針
C.對(duì)象名
D.基類(lèi)指針
6.下列函數(shù)中不能說(shuō)明為虛函數(shù)的是().
A.私有成員函數(shù)
B.公有成員函數(shù)
C.構(gòu)造函數(shù)
D.析構(gòu)函數(shù)
7.一個(gè)類(lèi)中的某個(gè)函數(shù)被聲明為virtual則該函數(shù)在該類(lèi)的所有派生類(lèi)中().
A.都是虛函數(shù)
B.重載后才是虛函數(shù)
C.被重新說(shuō)明為virtual時(shí)才是虛函數(shù)
D.不是虛函數(shù)
8.類(lèi)B是類(lèi)A的公有派生類(lèi)類(lèi)A和類(lèi)B中都定義了虛函數(shù)func()p是一個(gè)指向類(lèi)A的指針則p->func()將().
A.調(diào)用類(lèi)A中的函數(shù)func()
B.調(diào)用類(lèi)B中的函數(shù)func()
C.根據(jù)p實(shí)際所指對(duì)象類(lèi)型確定調(diào)用A或B類(lèi)中的函數(shù)func()
D.同時(shí)調(diào)用A類(lèi)和B類(lèi)中的函數(shù)func()
9.下列關(guān)于虛函數(shù)的說(shuō)明中正確的是().
A.從虛基類(lèi)繼承的函數(shù)都是虛函數(shù)
B.虛函數(shù)不能是靜態(tài)成員函數(shù)
C.通過(guò)對(duì)象不能調(diào)用虛函數(shù)
D.抽象類(lèi)中的函數(shù)都是虛函數(shù)
10.有一個(gè)重載運(yùn)算符的函數(shù)參數(shù)表中沒(méi)有任何參數(shù)則可以斷定被重載的運(yùn)算符函數(shù)是().
A.單目友元函數(shù)
B.單目成員函數(shù)
C.雙目友元函數(shù)
D.雙目成員函數(shù)
11.下列關(guān)于運(yùn)算符函數(shù)返回值類(lèi)型的描述中錯(cuò)誤的是().
A.可以是類(lèi)類(lèi)型
B.可以是int類(lèi)型
C.可以是void類(lèi)型
D.可以是float類(lèi)型
12.友元運(yùn)算符obj1>obj2被C++編譯器解釋為().
A.operator>(obj1obj2)
B.>(obj1obj2)
C.obj1.operator>(obj2)
D.obj2.operator>(obj1)
13.在表達(dá)式x+yz中+作為成員函數(shù)重載的運(yùn)算符作為友元函數(shù)重載的運(yùn)算符以下敘述中正確的是().
A.operator+有2個(gè)參數(shù)operator有2個(gè)參數(shù)
B.operator+有2個(gè)參數(shù)operator有1個(gè)參數(shù)
C.operator+有1個(gè)參數(shù)operator有2個(gè)參數(shù)
D.operator+有1個(gè)參數(shù)operator有1個(gè)參數(shù)
14.重載賦值運(yùn)算符時(shí)應(yīng)聲明為()函數(shù).
A.友元
B.虛
C.成員
D.多態(tài)
15.在成員函數(shù)中進(jìn)行雙目運(yùn)算符重載時(shí)參數(shù)表中應(yīng)有()個(gè)參數(shù).
A.0
B.1
C.2
D.3
16.雙目運(yùn)算符重載為友元函數(shù)時(shí)參數(shù)表中應(yīng)有()個(gè)參數(shù).
A.0
B.1
C.2
D.抽象類(lèi)中的函數(shù)都是虛函數(shù)
17.若表達(dá)式a+b中的”+”是作為成員函數(shù)重載的運(yùn)算符若采用運(yùn)算符函數(shù)調(diào)用格式則可表示為().
A.a.operator+(b)
B.b.operator+(a)
C.operator+(ab)
D.雙目成員函數(shù)
18.假定M是一個(gè)類(lèi)名且M中重載了操作符=可以實(shí)現(xiàn)M對(duì)象間的連續(xù)賦值如”m1=m2=m3;”.重載操作符=的函數(shù)原型最好是().
A.int operaotor=(constM);
B.int operator=(constM&);
C.Moperator=(constM&);
D.可以是float類(lèi)型
19.下面是重載雙目運(yùn)算符+的普通函數(shù)原形其中最符合+原來(lái)含義的是().
A.Value operator+(ValueValue);
B.Value operator+(Valueint);
C.Value &operator+(ValueValue);
D.obj2.operator>(obj1)
20.類(lèi)模板允許我們創(chuàng)建一系列相關(guān)的().
A.類(lèi)
B.變量
C.數(shù)組
D.operator+有1個(gè)參數(shù)operator*有1個(gè)參數(shù)
21.關(guān)于異常以下敘述中正確的是().
A.友元
B.當(dāng)異常被一個(gè)catch塊處理后執(zhí)行流程進(jìn)入下一個(gè)catch塊
C.當(dāng)一個(gè)異常被拋出后其后的第一個(gè)catch塊執(zhí)行
D.多態(tài)
22.以下關(guān)于函數(shù)模板敘述正確的是().
A.函數(shù)模板也是一個(gè)具體類(lèi)型的函數(shù)
B.函數(shù)模板的類(lèi)型參數(shù)與函數(shù)的參數(shù)是同一個(gè)概念
C.通過(guò)使用不同的類(lèi)型參數(shù)函數(shù)模板可以生成不同類(lèi)型的函數(shù)
D.用函數(shù)模板定義的函數(shù)沒(méi)有類(lèi)型
23.有如下函數(shù)模板定義則下列函數(shù)調(diào)用中錯(cuò)誤的是().templateTfunc(T xT y){returnxx+yy;}
A.func(35);
B.func(33.5)
C.func(35.5);
D.func(33.5);
24.下列關(guān)于函數(shù)模板的描述中錯(cuò)誤的是().
A.函數(shù)模板必須由程序員實(shí)例化為可執(zhí)行的模板函數(shù)
B.函數(shù)模板的實(shí)例化由編譯器完成
C.一個(gè)類(lèi)定義中只要有一個(gè)函數(shù)模板則這個(gè)類(lèi)是類(lèi)模板
D.類(lèi)模板的成員函數(shù)都是函數(shù)模板
25.下列模板聲明中正確的是().
A.template
B.template
C.template
D.template
26.類(lèi)模板的使用實(shí)際上是將類(lèi)模板實(shí)例化為一個(gè)().
A.函數(shù)
B.對(duì)象
C.類(lèi)
D.抽象類(lèi)
27.下列關(guān)于異常的敘述中錯(cuò)誤的是().
A.編譯錯(cuò)屬于異常可以?huà)伋?br /> B.運(yùn)行錯(cuò)屬于異常
C.拋出異常后將跳過(guò)函數(shù)中的其它代碼
D.拋出的異常可以不被捕獲
28.在C++程序中使用的cin標(biāo)識(shí)符是系統(tǒng)類(lèi)庫(kù)中定義的()類(lèi)中的一個(gè)對(duì)象.
A.istream
B.ostream
C.iostream
D.fstream
29.要進(jìn)行文件的輸入輸出除了包含頭文件iostream外還需要包含頭文件().
A.ifstream
B.fstream
C.ostream
D.cstdio
30.定義charp=“abcd”能輸出p的值(字符串地址)的語(yǔ)句為().
A.cout<<&p;
B.cout<<p;
C.cout<<(char)p;
D.cout<<const_cast<void*>§;
31.用于打開(kāi)二進(jìn)制文件的標(biāo)志是().
A.ios::binary
B.ios::in
C.ios::out
D.ios::trunc
32.下列輸出字符’B’的方法中錯(cuò)誤的是().
A.cout.put(‘B’);
B.chara=’B’;cout<<a;
C.cout<<put(‘B’);
D.cout<<’B’;
33.使用setw()等操作函數(shù)設(shè)置數(shù)據(jù)輸出格式時(shí)應(yīng)包含頭文件().
A.
B.
C.
D.
34.可設(shè)置輸出寬度的方法是().
A.setfill()
B.setw()
C.setprecision()
D.oct
35.面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征不包括().
A.繼承性
B.功能分解逐步求精
C.封裝性和信息隱藏
D.多態(tài)性
36.下列能用作C++標(biāo)識(shí)符的是().
A._123
B.for
C.case
D.virtual
37.以下工具中()將C++源代碼轉(zhuǎn)換為目標(biāo)文件.
A.編譯器
B.鏈接器
C.編輯器
D.集成開(kāi)發(fā)環(huán)境
38.C++程序主函數(shù)名稱(chēng)是().
A.Main
B.main
C.MAIN
D.用戶(hù)自定義函數(shù)
39.main函數(shù)的返回值類(lèi)型是().
A.char
B.double
C.int
D.無(wú)返回類(lèi)型
40.下列關(guān)于相同類(lèi)型指針的運(yùn)算中()是非法的.
A.兩個(gè)指針進(jìn)行相等或不等的運(yùn)算
B.將NULL賦值給某個(gè)指針變量
C.一個(gè)指針加上一個(gè)整數(shù)
D.兩個(gè)指針相加
41.下列關(guān)于動(dòng)態(tài)聯(lián)編的敘述中()是錯(cuò)誤的.
A.動(dòng)態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ)的
B.動(dòng)態(tài)聯(lián)編在程序運(yùn)行時(shí)確定所調(diào)用的函數(shù)代碼塊
C.動(dòng)態(tài)聯(lián)編調(diào)用多態(tài)函數(shù)時(shí)傳遞的是基類(lèi)對(duì)象的指針或基類(lèi)對(duì)象引用
D.動(dòng)態(tài)聯(lián)編是在編譯時(shí)確定調(diào)用某個(gè)函數(shù)的
42.下列描述中()是抽象類(lèi)的特征.
A.可以聲明虛函數(shù)
B.不能說(shuō)明其對(duì)象
C.可以定義友元函數(shù)
D.可以進(jìn)行構(gòu)造函數(shù)重載
43.在派生類(lèi)中重載一個(gè)虛函數(shù)時(shí)要求函數(shù)名.參數(shù)個(gè)數(shù).參數(shù)類(lèi)型和函數(shù)返回值().
A.相同
B.不同
C.相容
D.部分相同
44.下列關(guān)于抽象類(lèi)的說(shuō)明中不正確的是().
A.含有純虛函數(shù)的類(lèi)稱(chēng)為抽象類(lèi)
B.抽象類(lèi)不能被實(shí)例化
C.抽象類(lèi)的派生類(lèi)一定可以實(shí)例化
D.可以聲明抽象類(lèi)的指針
45.下列運(yùn)算符中不能使用友元函數(shù)實(shí)現(xiàn)的是().
A.+
B.=
C.*
D.<<
46.若表達(dá)式ab中的””是作為普通函數(shù)重載的運(yùn)算符若采用運(yùn)算符函數(shù)調(diào)用格式則可表示為().
A.a.operator==(b)
B.b.operator==(a)
C.operator==(ab)
D.operator==(ba)
47.對(duì)于int *p[5]以下敘述正確的是().
A.p是一個(gè)指向數(shù)組的指針?biāo)赶虻臄?shù)組是5個(gè)int型元素
B.p是一個(gè)指向某數(shù)組中下標(biāo)為5的元素的指針該元素為int型
C.p[5]表示某個(gè)數(shù)組的第5個(gè)元素的值
D.p是一個(gè)具有5個(gè)元素的指針數(shù)組每個(gè)元素是一個(gè)int型指針
48.若一個(gè)函數(shù)無(wú)返回值則定義它時(shí)函數(shù)的類(lèi)型應(yīng)該為().
A.void
B.任意
C.int
D.無(wú)
49.在VC環(huán)境下int型占用的字節(jié)數(shù)為().
A.1
B.2
C.4
D.8
50.類(lèi)型修飾符unsigned修飾()類(lèi)型是錯(cuò)誤的.
A.char
B.int
C.longint
D.float
51.已有int m=10;則屬于合法引用定義的是().
A.int &rm=m;
B.int &rm=10;
C.int &rm;rm=m;
D.int &rm=&m;
52.在C++中下列關(guān)于設(shè)置參數(shù)默認(rèn)值的敘述中正確的是().
A.不允許設(shè)置參數(shù)的默認(rèn)值
B.設(shè)置參數(shù)默認(rèn)值時(shí)應(yīng)先設(shè)置右邊的再設(shè)置左邊的
C.設(shè)置參數(shù)默認(rèn)值時(shí)要么全部設(shè)置要么一個(gè)也不設(shè)置
D.設(shè)置參數(shù)默認(rèn)值時(shí)應(yīng)先設(shè)置左邊的再設(shè)置右邊的
53.下列對(duì)重載函數(shù)的描述中()是錯(cuò)誤的.
A.重載函數(shù)中不允許使用缺省參數(shù)
B.重載函數(shù)不能通過(guò)返回值類(lèi)型區(qū)分不同的版本
C.編譯系統(tǒng)根據(jù)參數(shù)表確定函數(shù)版本
D.類(lèi)的析構(gòu)函數(shù)不能重載
54.下面動(dòng)態(tài)分配內(nèi)存的代碼執(zhí)行后正確的描述是().Int *p;p=new int[5];
A.動(dòng)態(tài)開(kāi)辟5個(gè)int元素初值不確定
B.動(dòng)態(tài)開(kāi)辟初值為5的一個(gè)int元素
C.動(dòng)態(tài)開(kāi)辟5個(gè)int元素初值為0
D.釋放p所指向內(nèi)存的代碼為:delete p;
55.重載函數(shù)在調(diào)用時(shí)選擇的依據(jù)中()是錯(cuò)誤的.
A.參數(shù)個(gè)數(shù)
B.參數(shù)類(lèi)型
C.函數(shù)名字
D.函數(shù)的類(lèi)型
56.已知數(shù)組定義int array[10];則最小數(shù)組下標(biāo)為().
A.0
B.1
C.9
D.10
57.字符串”ab”在內(nèi)存中占用的字節(jié)數(shù)為().
A.1
B.2
C.3
D.4
58.1條return語(yǔ)句可以返回()值.
A.1個(gè)
B.多個(gè)
C.1個(gè)或多個(gè)
D.任意
59.以下表達(dá)式中結(jié)果為false的是().
A.3.15
B.-0.5
C.0
D.‘0’
60.已知數(shù)組定義int array[10]😭)是非法的數(shù)組元素訪(fǎng)問(wèn).
A.array[10]
B.array[1]
C.array[0]
D.array[9]
61.下列的符號(hào)常量定義中錯(cuò)誤的定義是().
A.int constM=10;
B.const intM=20;
C.const char ch;
D.const bool mark=true;
62.設(shè)array為一個(gè)數(shù)組則表達(dá)式sizeof(array)/sizeof(array[0])的結(jié)果為().
A.array數(shù)組首地址
B.array數(shù)組中元素個(gè)數(shù)
C.array數(shù)組中每個(gè)元素所占的字節(jié)數(shù)
D.array數(shù)組占的總字節(jié)數(shù)
63.用new運(yùn)算符創(chuàng)建一個(gè)含10個(gè)元素的一維整型數(shù)組的正確語(yǔ)句是().
A.int *p=new a[10];
B.int *p=new float[10];
C.int *p=new int[10];
D.int *p=new int[10]={12345}
64.假定指針變量p定義為”int *p=new int[30];”要釋放p所指向的動(dòng)態(tài)內(nèi)存應(yīng)使用語(yǔ)句().
A.delete p;
B.delete *p;
C.delete &p;
D.delete[]p;
65.采用重載函數(shù)的目的是().
A.實(shí)現(xiàn)共享
B.減少空間
C.提高速度
D.使用方便提高可讀性
66.關(guān)于封裝下列說(shuō)法中不正確的是().
A.通過(guò)封裝對(duì)象的全部屬性和操作結(jié)合在一起形成一個(gè)整體
B.通過(guò)封裝一個(gè)對(duì)象的實(shí)現(xiàn)細(xì)節(jié)被盡可能地隱藏起來(lái)(不可見(jiàn))
C.通過(guò)封裝每個(gè)對(duì)象都成為相對(duì)獨(dú)立的實(shí)體
D.通過(guò)封裝對(duì)象的屬性都是不可見(jiàn)的
67.面向?qū)ο蠓椒ǖ亩鄳B(tài)性是指().
A.一個(gè)類(lèi)可以派生出多個(gè)特殊類(lèi)
B.一個(gè)對(duì)象在不同的運(yùn)行環(huán)境中可以有不同的變體
C.針對(duì)一消息不同的對(duì)象可以以適合自身的方式加以響應(yīng)
D.一個(gè)對(duì)象可以是由多個(gè)其他對(duì)象組合而成的
68.在類(lèi)作用域中能夠通過(guò)直接使用該類(lèi)的()成員名進(jìn)行訪(fǎng)問(wèn).
A.私有
B.公有
C.保護(hù)
D.任何
69.假定AA為一個(gè)類(lèi)a為該類(lèi)公有的數(shù)據(jù)成員px為指向該類(lèi)對(duì)象的一個(gè)指針則訪(fǎng)問(wèn)px所指對(duì)象中數(shù)據(jù)成員a的格式為().
A.px(a)
B.px[a]
C.px->a
D.px.a
70.類(lèi)的析構(gòu)函數(shù)是一個(gè)對(duì)象被()時(shí)自動(dòng)調(diào)用的.
A.建立
B.銷(xiāo)毀
C.賦值
D.引用
71.設(shè)px是指向一個(gè)類(lèi)對(duì)象的指針變量則執(zhí)行”delete px;”語(yǔ)句時(shí)將自動(dòng)調(diào)用該類(lèi)的().
A.無(wú)參構(gòu)造函數(shù)
B.帶參構(gòu)造函數(shù)
C.析構(gòu)函數(shù)
D.拷貝構(gòu)造函數(shù)
72.類(lèi)的析構(gòu)函數(shù)可以帶有()個(gè)參數(shù).
A.0
B.1
C.2
D.任意
73.靜態(tài)成員函數(shù)對(duì)類(lèi)的數(shù)據(jù)成員訪(fǎng)問(wèn)().
A.是不允許的
B.只允許是靜態(tài)數(shù)據(jù)成員
C.只允許是非靜態(tài)數(shù)據(jù)成員
D.可允許是靜態(tài)數(shù)據(jù)成員或非靜態(tài)數(shù)據(jù)成員
74.假定AB為一個(gè)類(lèi)則執(zhí)行”AB a(2)b[3]*p[4];”語(yǔ)句時(shí)共調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)為().
A.3
B.4
C.5
D.9
75.假定AA為一個(gè)類(lèi)int a()為該類(lèi)的一個(gè)成員函數(shù)若該成員函數(shù)在類(lèi)定義體外定義則函數(shù)頭為().
A.int AA::a()
B.int AA:a()
C.AA::a()
D.AA::inta()
76.類(lèi)中具有數(shù)據(jù)操作功能的是().
A.常數(shù)據(jù)成員
B.函數(shù)成員
C.數(shù)據(jù)成員
D.靜態(tài)成員
77.關(guān)鍵字()定義允許在類(lèi)外部使用的成員數(shù)據(jù)和成員函數(shù).
A.virtual
B.class
C.public
D.private
78.下列對(duì)構(gòu)造函數(shù)的描述中()是錯(cuò)誤的.
A.函數(shù)名與類(lèi)名完全相同
B.構(gòu)造函數(shù)允許重載
C.返回類(lèi)型應(yīng)該為void
D.構(gòu)造函數(shù)允許使用缺省參數(shù)
79.已知print是某個(gè)類(lèi)的常成員函數(shù)返回值類(lèi)型為void正確的定義形式是().
A.void const print();
B.const void print();
C.void print() const;
D.void print(const);
80.假定MyClass為一個(gè)類(lèi)執(zhí)行”MyClassa[3]*p;”語(yǔ)句時(shí)會(huì)自動(dòng)調(diào)用該類(lèi)型構(gòu)造函數(shù)()次.
A.2
B.3
C.4
D.5
81.下列運(yùn)算符中必須使用友元函數(shù)實(shí)現(xiàn)的是().
A.+
B.++
C.*
D.<<
82.如果表達(dá)式a++中的”++”是作為普通函數(shù)重載的運(yùn)算符若采用運(yùn)算符函數(shù)調(diào)用格式則可表示為().
A.a.operator++()
B.operator++(a)
C.operator++(a1)
D.operator++(1a)
83.在C++程序中使用的cout標(biāo)識(shí)符是系統(tǒng)類(lèi)庫(kù)中定義的()類(lèi)中的一個(gè)對(duì)象.
A.istream
B.ostream
C.iostream
D.fstream
84.假定AB為一個(gè)類(lèi)則執(zhí)行”AB x;”語(yǔ)句時(shí)將自動(dòng)調(diào)用該類(lèi)的().
A.帶參構(gòu)造函數(shù)
B.無(wú)參構(gòu)造函數(shù)
C.拷貝構(gòu)造函數(shù)
D.賦值重載運(yùn)算符
85.類(lèi)的構(gòu)造函數(shù)可以帶有()個(gè)參數(shù).
A.0
B.1
C.2
D.任意
86.對(duì)類(lèi)對(duì)象成員的初始化是通過(guò)構(gòu)造函數(shù)中給出的()實(shí)現(xiàn)的.
A.函數(shù)體
B.初始化列表
C.參數(shù)表
D.初始化列表或函數(shù)體
87.假定一個(gè)類(lèi)AB只含有一個(gè)整型數(shù)據(jù)成員a當(dāng)用戶(hù)不定義任何構(gòu)造函數(shù)時(shí)系統(tǒng)為該類(lèi)定義的無(wú)參構(gòu)造函數(shù)為().
A.AB(){a=0;}
B.AB(int aa=0):a(aa){}
C.AB(int aa):a(aa){}
D.AB(){}
88.假定AA是一個(gè)類(lèi)abc是該類(lèi)的一個(gè)成員函數(shù)則參數(shù)表中隱含的第一個(gè)參數(shù)為().
A.abc
B.*this
C.this
D.this&
89.下列關(guān)于析構(gòu)函數(shù)的描述中()是正確的.
A.一個(gè)類(lèi)中可以重載多個(gè)版本析構(gòu)函數(shù)
B.析構(gòu)函數(shù)名與類(lèi)名完全相同
C.析構(gòu)函數(shù)可以有1個(gè)或多個(gè)參數(shù)
D.析構(gòu)函數(shù)不能指定返回值類(lèi)型
90.假定AB為一個(gè)類(lèi)x是AB類(lèi)的一個(gè)對(duì)象則執(zhí)行”AB y=x;”語(yǔ)句時(shí)將自動(dòng)調(diào)用該類(lèi)的().
A.復(fù)制構(gòu)造函數(shù)
B.析構(gòu)函數(shù)
C.缺省構(gòu)造函數(shù)
D.賦值運(yùn)算符函數(shù)
91.若有類(lèi)Test該類(lèi)的復(fù)制構(gòu)造函數(shù)聲明為().
A.Test();
B.Test (constCTest&);
C.void Test(constCTest&t);
D.Test(constCTest*t);
92.以下選項(xiàng)中()不是類(lèi)的成員函數(shù).
A.構(gòu)造函數(shù)
B.析構(gòu)函數(shù)
C.友元函數(shù)
D.復(fù)制構(gòu)造函數(shù)
93.構(gòu)造函數(shù)在()時(shí)被調(diào)用.
A.程序編譯
B.程序裝入內(nèi)存
C.創(chuàng)建類(lèi)
D.創(chuàng)建對(duì)象
94.用戶(hù)能夠?yàn)轭?lèi)定義()個(gè)析構(gòu)函數(shù).
A.1
B.0
C.2
D.多個(gè)
95.下列函數(shù)原型中可以作為類(lèi)AA構(gòu)造函數(shù)的是().
A.void AA(int);
B.int AA();
C.AA(int)const;
D.AA(int);
96.友元的作用是().
A.提高程序的運(yùn)行效率
B.加強(qiáng)類(lèi)的封裝性
C.實(shí)現(xiàn)數(shù)據(jù)的隱藏
D.增加成員函數(shù)的種類(lèi)
97.被非靜態(tài)成員函數(shù)訪(fǎng)問(wèn)的類(lèi)的數(shù)據(jù)成員().
A.可以是非靜態(tài)數(shù)據(jù)成員或靜態(tài)數(shù)據(jù)成員
B.不可能是類(lèi)的靜態(tài)數(shù)據(jù)成員
C.只能是類(lèi)的非靜態(tài)數(shù)據(jù)成員
D.只能是類(lèi)的靜態(tài)數(shù)據(jù)成員
98.使用關(guān)鍵字()修飾的數(shù)據(jù)成員允許當(dāng)前類(lèi)及其派生類(lèi)訪(fǎng)問(wèn)而不允許在類(lèi)的外部訪(fǎng)問(wèn).
A.public
B.protected
C.private
D.不指定
99.派生類(lèi)的成員函數(shù)可以直接訪(fǎng)問(wèn)基類(lèi)的()成員.
A.公有
B.保護(hù)
C.公有和保護(hù)
D.私有
100.下列敘述中()不符合賦值兼容性規(guī)則.
A.基類(lèi)的對(duì)象可以賦值給派生類(lèi)對(duì)象
B.派生類(lèi)對(duì)象可以賦值給基類(lèi)的對(duì)象
C.派生類(lèi)對(duì)象可以初始化基類(lèi)對(duì)象的引用
D.派生類(lèi)對(duì)象的地址可以賦值給基類(lèi)的對(duì)象指針
101.如果采用公有繼承通過(guò)派生類(lèi)對(duì)象可以訪(fǎng)問(wèn)基類(lèi)的().
A.私有成員
B.所有成員
C.保護(hù)成員
D.公有成員
102.派生類(lèi)構(gòu)造函數(shù)的成員初始化列表中不能包含().
A.基類(lèi)的構(gòu)造函數(shù)
B.派生類(lèi)中成員對(duì)象的初始化
C.基類(lèi)成員對(duì)象的初始化
D.派生類(lèi)中一般數(shù)據(jù)成員的初始化
103.當(dāng)保護(hù)繼承時(shí)基類(lèi)的()在派生類(lèi)中成為保護(hù)成員不能通過(guò)派生類(lèi)對(duì)象來(lái)直接訪(fǎng)問(wèn).
A.任何成員
B.公有成員和保護(hù)成員
C.公有成員和私有成員
D.私有成員
104.設(shè)置虛基類(lèi)的目的是().
A.簡(jiǎn)化程序
B.消除二義性
C.提高運(yùn)行效率
D.減少目標(biāo)代碼
105.下列虛基類(lèi)的聲明中()是正確的.
A.class virtualB:publicA
B.classB:virtual publicA
C.virtual classB:publicA
D.classB:publicA virtual
106.類(lèi)O定義了私有函數(shù)F1.P和Q為O類(lèi)的派生類(lèi)定義為classP:public){…};classQ:protectedO{…}.則()可以訪(fǎng)問(wèn)F1.
A.O的對(duì)象
B.P類(lèi)內(nèi)
C.O類(lèi)內(nèi)
D.Q類(lèi)內(nèi)
107.派生類(lèi)采用()繼承方式可以使基類(lèi)保護(hù)成員成為自己的私有成員.
A.私有繼承
B.保護(hù)繼承
C.公有繼承
D.私有.保護(hù).公有均可
108.從一個(gè)基類(lèi)派生出的各個(gè)類(lèi)的對(duì)象之間().
A.共享所有數(shù)據(jù)成員每個(gè)對(duì)象還包含基類(lèi)的所有屬性
B.共享部分?jǐn)?shù)據(jù)成員每個(gè)對(duì)象還包含基類(lèi)的所有屬性
C.不共享任何數(shù)據(jù)成員但每個(gè)對(duì)象還包含基類(lèi)的所有屬性
D.共享部分?jǐn)?shù)據(jù)成員和函數(shù)成員
109.建立包含有類(lèi)對(duì)象成員的派生類(lèi)對(duì)象時(shí)自動(dòng)調(diào)用構(gòu)造函數(shù)的執(zhí)行順序依次為()的構(gòu)造函數(shù).
A.自己所屬類(lèi).對(duì)象成員所屬類(lèi).基類(lèi)
B.對(duì)象成員所屬類(lèi).基類(lèi).自己所屬類(lèi)
C.基類(lèi).對(duì)象成員所屬類(lèi).自己所屬類(lèi)
D.基類(lèi).自己所屬類(lèi).對(duì)象成員所屬類(lèi)
110.當(dāng)派生類(lèi)中有和基類(lèi)一樣名字的成員時(shí)一般來(lái)說(shuō)().
A.將產(chǎn)生二義性
B.派生類(lèi)的同名成員將覆蓋基類(lèi)的成員
C.是不能允許的
D.基類(lèi)的同名成員將覆蓋派生類(lèi)的成員
111.下列關(guān)于運(yùn)算符重載的描述中正確的是().
A.運(yùn)算符重載可以改變操作數(shù)的個(gè)數(shù)
B.運(yùn)算符重載可以改變優(yōu)先級(jí)
C.運(yùn)算符重載可以改變結(jié)合性
D.運(yùn)算符重載不可以改變語(yǔ)法結(jié)構(gòu)
112.下列關(guān)于模板的描述錯(cuò)誤的是().
A.模板把數(shù)據(jù)類(lèi)型作為一個(gè)設(shè)計(jì)參數(shù)
B.模板定義中支持多個(gè)參數(shù)類(lèi)型
C.模板定義中只能支持一個(gè)參數(shù)
D.模板參數(shù)列表中可以有類(lèi)型參數(shù)和非類(lèi)型參數(shù)
113.read函數(shù)的功能是從輸入流中讀入().
A.一個(gè)字符
B.當(dāng)前字符
C.一行字符
D.指定若干字符
114.要求打開(kāi)文件”D:\file.dat”并能寫(xiě)入數(shù)據(jù)的正確語(yǔ)句是().
A.if streamin file(“D:\file.data”ios::in);
B.if streamin file(“D:\file.data”ios::out);
C.of streamin file(“D:\file.data”ios::out);
D.if streamin file(“D:\file.data”ios::in|ios::out);
115.編譯器將C++源代碼翻譯為().
A.目標(biāo)文件
B.可執(zhí)行文件
C.頭文件
D.資源文件
116.C++源程序文件的缺省擴(kuò)展名為().
A…lib
B…obj
C…exe
D…cpp
117.假定一個(gè)二維數(shù)組的定義語(yǔ)句為”int a[3][4]={{34}{286}};”則元素a[1][2]的值為().
A.2
B.4
C.6
D.8
118.函數(shù)重載是指().
A.兩個(gè)或兩個(gè)以上的函數(shù)取相同的函數(shù)名但形參的個(gè)數(shù)或類(lèi)型不同
B.兩個(gè)以上的函數(shù)取相同的名字和具有相同的參數(shù)個(gè)數(shù)但形參的類(lèi)型可以不同
C.兩個(gè)以上的函數(shù)名字不同但形參的個(gè)數(shù)或類(lèi)型相同
D.兩個(gè)以上的函數(shù)取相同的函數(shù)名并且函數(shù)的返回類(lèi)型相同
119.假定AA為一個(gè)類(lèi)a為該類(lèi)公有的數(shù)據(jù)成員x為該類(lèi)的一個(gè)對(duì)象則訪(fǎng)問(wèn)x對(duì)象中數(shù)據(jù)成員a的格式為().
A.x(a)
B.x[a]
C.x->a
D.x.a
120.類(lèi)的實(shí)例化是指().
A.定義類(lèi)
B.創(chuàng)建類(lèi)的對(duì)象
C.調(diào)用類(lèi)的成員
D.指明具體類(lèi)
二.問(wèn)答題
1.寫(xiě)出下面程序的執(zhí)行結(jié)果.#include using namespace std;int f(int n){if(n<=0) throw n;int s=1;for(int i=1;i<=n;i++) s*=i;return s;}int main(){try{ cout<<“4!=“<<f(4)<<endl; cout<<“-2!=“<<f(-2)<<endl;}catch(int n){ cout<<“n=“<<n<<“不能計(jì)算n!”<<endl; cout<<“程序執(zhí)行結(jié)束”<<endl;}return 0;}
4!=24
n=-2不能計(jì)算n!
程序執(zhí)行結(jié)束
2.下面程序執(zhí)行后假定用戶(hù)輸入”Every student love C++”寫(xiě)出程序執(zhí)行后文件”D:\1.txt”中存儲(chǔ)的內(nèi)容.#include #include using namespace std;int main(){char buf[100];cin>>buf;ofstream of;of.open(“D:\1.txt”);of<<buf;of.close();return 0;}
very
3.寫(xiě)出下面程序的執(zhí)行結(jié)果.#include int main(){int number = 267;int digit tens hundreds;digit = number %10;tens = (number/10)%10;hundreds = (number/100)%10;cout<<"Result: “<<hundreds<<” “<<tens<<” "<<digit<<endl;return 0;}
Result: 2 6 7
4.寫(xiě)出下面程序的執(zhí)行結(jié)果.#include using namespace std;double func( double pData[ ] int size);int main(){ double array[]={2.2 3.8 6 5.4}; cout<<"Result: "<<func(array 4)<<endl; cout<<"Result: "<<func(array 3)<<endl; return 0;}double func( double pData[ ] int size){ double result=0; int i; for(i=0; i<size; ++i) {result+=pData[i]; } result /= size; return result;}
Result: 4.35 Result: 4
5.寫(xiě)出下面程序的輸出結(jié)果.#include using namespace std;class Base {public:void display() {cout<<“Base display”<<endl; } }; class Derived : public Base { public:void display() { cout<<“Derived display”<<endl; }};void display(Base & rr){rr.display();}intmain(){Base b;Derived d;display(b);display(d);return 0;}
ase display Base display
6.寫(xiě)出程序輸出結(jié)果.#include using namespace std;class Base{private:int base;public:Base(int b) {base=b;cout<<“base=“<<b<<endl;}~Base() { }};class Derived : public Base{private:Base bb;int derived;public:Derived(int dintbint c) : bb? Base(b) {derived=d;cout<<“derived=“<<derived<<endl;}~Derived(){}};int main(){Derived d(345);return 0;}
base=4 base=5 derived=3
總結(jié)
以上是生活随笔為你收集整理的[渝粤教育] 中国地质大学 面向对象程序设计 复习题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 低位高换手意味着什么?
- 下一篇: [渝粤教育] 西南科技大学 货币银行学