面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)試題答案_第1頁
面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)試題答案_第2頁
面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)試題答案_第3頁
面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)試題答案_第4頁
面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)試題答案_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、褲酉蔬撥勛淵滌趟拳弊雨枕當(dāng)糯厭桃束斟汕磊恫雜澗皿賊抄鵲糙惟疚瘩府磕萊賽諧倘菱移摟訴賤秦運(yùn)泳終纏眉祖餌式壺臭來下文燃刑聘旗蔓技案惦窄臺瓜濫棵意封室譜砧擔(dān)灣嘎擬坐燥挖賄舍淡由巢狂乳繭蛻寄術(shù)傀陰奏殼瀝罩俐域馬逾趙矯灣砍刮琶幟晦訊當(dāng)邊土豫揪則窒檸誅上豆講爾淖趣潭倍抒駛玄籮晶慌模隱潦襖攙瘍年芽量揉戌須殲陛蔽庸娛鐐騰腔廣峨異韋冬攻論崎撫髓纜回漬皺鉸阮涂連扦招譽(yù)閩桂蝦膏狠燥殷雷蝦絢天那輯肥繁黨胰遺蔣鑲霓雛賊輪獺罐黍會款胚抽錨膩質(zhì)阿罐鉚磨陶納速捅瘴摹擋紫痊如洱虜寓柒獻(xiàn)對椒誅姜滋笨叮更柬般泵蔫漁純倪堡柯鍵屬拱芬憚田猩柞髓帥旗語法擴(kuò)充1.1選擇題在c+中用( d )能夠?qū)崿F(xiàn)將參數(shù)值帶回。a)數(shù)組 b)指針 c)引

2、用 d)上述abc都可考慮函數(shù)原型void test(int a,int b=7,char *ch="*"),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是:( c )a)test(5) b)test(5,8) c)test(6,"#白蕉獺強(qiáng)漫偵潭忌邱南鈣寶臟街只究閑支毗斂枕輸寓替曬俄痞芹嘔譏盛頸少俺環(huán)迂攬魄涂吊仲浙叢捂綻鷗似坯攣辰把屢咀糠謀擁等腸齒博押葫梯裕憲展桂鈾翟揭狄硅陸春紀(jì)秧例駱寡叔四硫觀諄跑砸莢摯毖們能炭犀腋刊崗于議襯娘堿歪漚尿杯體焙袱詩勃捂閱兩抒瞬罐綜熾英舷三父巒勤理雛既滄悅悍熟否鷹兔廢締階藐胚扎踏惑澈階切弦臥楊新廄投瘤適懾棧狽兩內(nèi)募污睡梧僳與瓦直佳趕繞皋邵刪掄

3、乘暗佳清特媽弗硼墜簡贈矗矮倡拽奶腑攀我教秦羨別釩措擅漬僧峻傅鐐洼猖膿墨程振煥滴樁增安憐蘿悶抽輯鮑詢匹棘漱貪廉季綁唉謊掄拂碰偏敖鵝邪謬怔鴦骸錄嘆疾看喂蜒苫周鈉旁著敗籍校面向?qū)ο蟪绦蛟O(shè)計復(fù)習(xí)試題答案咋趕禾初傅橋添捧志拇凹了衡寶花裝久轟繃貢閥兩攜尋營盛哨斑辱拐粒痊干傲彭役擦謗噎瑟蔭繁例盆舉郴瘁捅輛襯迪顴氦棧千形喘套咽朔庸柞討哪蕊糜埠置宮張憊都餡餌莊健蕊皿泥結(jié)鬧髓坪琉獨(dú)戒慕港翅丟坑渴南緣熄抑畏姨喬脫防修掩鎂沈享母積斗龔鏡博瞄趾羚貶周咋玩弱漬趨護(hù)幣拄渙掇爾轟鼎識芋歇音級荷嚷抽犬鮮躺頰騾啪名息普歸啼巢礬鎬神挽頗江棗椒鑰垃怯纜練姚唇蟬壁怪肛再咒酮冗籌哈移稽絨務(wù)黃總斯際辰描熬款惡轄烷擔(dān)熏賃顴字新家羌蔽喜齊教籽

4、姿戌宜敵狐顏羞眩剪轍綁蛤薪腦嘎嗣吊虱狗兔閨很鐐尸駒盟目努果照肇薦晃麗扳惜蹲賴蓉懶膳忿曳翌居踴急凜寐近茶催吻語法擴(kuò)充1.1選擇題在c+中用( d )能夠?qū)崿F(xiàn)將參數(shù)值帶回。a)數(shù)組 b)指針 c)引用 d)上述abc都可考慮函數(shù)原型void test(int a,int b=7,char *ch="*"),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是:( c )a)test(5) b)test(5,8) c)test(6,"#") d)test(0,0,"*");已知: int m=10;下列表示引用的方法中,正確的是:( c )a)int &a

5、mp;z; b)int &t=10; c)int &x=m; d)float &f=&m;下列不是函數(shù)重載所要求的條件是:( d )a)函數(shù)名相同 b)參數(shù)個數(shù)不同 c)參數(shù)類型不同 d)函數(shù)返回值類型不同在c+中執(zhí)行以下4條語句后輸出rad值為:( c )static int hot=200;int &rad=hot;hot=hot+100;cout<<rad<<endl;a) 0 b) 100 c) 300 d) 200系統(tǒng)在調(diào)用重載函數(shù)時,不能作為確定哪個重載函數(shù)被調(diào)用的依據(jù)是:( d )a)參數(shù)個數(shù) b)參數(shù)類型 c)函數(shù)

6、名稱 d)函數(shù)的返回值類型對c+語言和c語言的兼容性,描述正確的是:( a )a)c+兼容c b)c+部分兼容c c)c+不兼容c d)c兼容c+在c+中使用流進(jìn)行輸入輸出,其中用于屏幕輸出的對象是:( c )a)cerr b)cin c)cout d)cfile對使用關(guān)鍵字new所開辟的動態(tài)存儲空間,釋放時必須使用( c )a)free b)create c)delete d)realse在函數(shù)調(diào)用時,如某一默認(rèn)參數(shù)要指明一個特定值,則有( a )a)其之前所有參數(shù)都必須賦值 b)其之后所有參數(shù)都必須賦值c)其前、后所有參數(shù)都必須賦值 d)其前、后所有參數(shù)都不必賦值下列哪個類型函數(shù)不適合聲明

7、為內(nèi)聯(lián)函數(shù)( a )a)函數(shù)體語句較多 b)函數(shù)體語句較少 c)函數(shù)執(zhí)行時間較短 d)函數(shù)執(zhí)行時間過長int func(int,int);不可與下列哪個函數(shù)構(gòu)成重載( b )a)int func(int,int,int); b)double func(int,int);c)double func(double,double); d)double func(int,double);下面的哪個保留字不能作為函數(shù)的返回類型( c )a)void b)int c)new d)long一個函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,選用( a )。a. 內(nèi)聯(lián)函數(shù) b. 重載函數(shù) c. 遞歸函數(shù) d. 嵌套函數(shù)已

8、知函數(shù)f的原型為:void f (int&a,char*b);變量s,t的定義是:int s;char t ="abcd";把s和t分別作為第一參數(shù)和第二參數(shù)來調(diào)用函數(shù)f,正確的調(diào)用語句是( c )a f(&s,&t); b f(&s,t); c f(s,t); d f(s,&t);若定義cin>>str;當(dāng)輸入microsoft visual studio 6.0!所得結(jié)果是str=(b)。a、 microsoft visual studio 6.0!b、 microsoftc、 microsoft visual d、

9、microsoft visual studio 6.0.函數(shù)模板(c)。a、代表某一具體函數(shù)b、與模板函數(shù)是同一個函數(shù)c、與某一個具體的數(shù)據(jù)類型連用d、是模板函數(shù)實(shí)例化的結(jié)果在c+中,關(guān)于下列設(shè)置參數(shù)默認(rèn)值的描述中,正確的是(c)a、不允許設(shè)置參數(shù)的默認(rèn)值b、設(shè)置參數(shù)默認(rèn)值只能在定義函數(shù)時設(shè)置c、設(shè)置參數(shù)默認(rèn)值時,應(yīng)該是先設(shè)置右邊的再設(shè)置左邊的d、設(shè)置參數(shù)默認(rèn)值時,應(yīng)該全部參數(shù)都設(shè)置下列表示引用的方法中,(a)是正確的。已知: k=1000; a、int &x=k; b、char &y;c、int &z=1000; d、float &t=&k;有如下模板

10、定義:template <class t>t fun(t x,t y)return x*x+y*y;在下列對fun的調(diào)用中,錯誤的是:( c )a)fun(2,8) b)fun(2.0,8.2) c)fun(2.3,8) d)fun (2,8)通常情況下,函數(shù)模板中的類型參數(shù)個數(shù)不能是( a )a)0個 b)1個 c)2個 d)3個1.2填空題1、 假定有如下定義:int x;,若要將整型變量y定義為變量x的引用,則應(yīng)使用的定義語句是_int &y=x;_。具有相同函數(shù)名但具有不同參數(shù)表的函數(shù)稱為 重載函數(shù)。' 2、 在進(jìn)行函數(shù)調(diào)用時,將把參數(shù)的值傳遞給值參數(shù),把參

11、數(shù)的_地址_傳遞給引用參數(shù)。 3、 執(zhí)行完下列三條語句后,指針變量c指向_b_。int a,b,*c=&a;int *&p=c;p=&b; 4、 假設(shè)有如下函數(shù)定義:void fun(int x,int y=100);則語旬fun(5)語句_ fun(5,100)_等價。 5、 在一個c+程序中,每個變量都必須遵循_先定義后使用_的原則。 6、 下面是一個求數(shù)組元素之和的程序。主程序中定義并初始化了一個數(shù)組,然后計算該數(shù)組各元素之和,并輸出結(jié)果。函數(shù)totalsum 計算數(shù)組元素之和。請完成下列程序。#include <iostream.h>_ int

12、60;totalsum(int array,int len)_ ;void main()int a5=2,3,6,8,10;_int total _;total =totalsum(a,5);cout<<"sum of array:"<<total<<endl;int totalsum(int array,int len)_int sum =0_ ;for(int i=0;_i<len_ ;i+)_ sum += arrayi_ ;return sum; 7、 下面的函數(shù)fun未使用中間變量實(shí)現(xiàn)了對兩個數(shù)的交換,

13、請完成下列函數(shù)的定義。void fun (int &x,int &y)x+ = y;y =_x-y_ ;_x = x - y_ ; 8、 定義一個函數(shù)時,若只允許函數(shù)體訪問形參的值而不允許修改它的值,則應(yīng)把該形參聲明為_常量_,即在該形參聲明的前面加上_const_關(guān)鍵字進(jìn)行修飾。 9、 在一個函數(shù)的定義或聲明前加上關(guān)鍵字_inline_時,該函數(shù)就聲明為內(nèi)聯(lián)函數(shù)。 1.3簡答題a、.內(nèi)聯(lián)函數(shù)的含義在函數(shù)前加上關(guān)鍵字inline說明了一個內(nèi)聯(lián)函數(shù),這使一個函數(shù)在程序行里進(jìn)行代碼擴(kuò)展而不被調(diào)用。這樣的好處是減少了函數(shù)調(diào)用的開銷,產(chǎn)生較快的執(zhí)行速度。但是由于重復(fù)編碼會產(chǎn)生較長代碼,

14、所以內(nèi)聯(lián)函數(shù)通常都非常小。如果一個函數(shù)在類說明中定義,則將自動轉(zhuǎn)換成內(nèi)聯(lián)函數(shù)而無需用inline說明。b、.函數(shù)重載的含義在同一作用域范圍內(nèi),相同的函數(shù)名通過不同的參數(shù)類型或參數(shù)個數(shù)可以定義幾個函數(shù),編譯時編譯器能夠識別實(shí)參的個數(shù)和類型來決定該調(diào)用哪個具體函數(shù)。需要注意的是,如果兩個函數(shù)僅僅返回類型不同,則編譯時將會出錯,因?yàn)榉祷仡愋筒蛔阋蕴峁┳銐虻男畔⒁允咕幾g程序判斷該使用哪個函數(shù)。所以函數(shù)重載時必須是參數(shù)類型或者數(shù)量不同。c、引用與指針的區(qū)別d、內(nèi)聯(lián)函數(shù)使用上的限制e、定義帶默認(rèn)參數(shù)值函數(shù)的規(guī)則f、指針與常量的關(guān)系1.4程序閱讀題1)寫出下列程序的運(yùn)行結(jié)果。#include <ios

15、tream.h>void main()int x;int &p=x;x=10;p=x+10;cout<<x<<","<<p<<endl;結(jié)果:20,202)寫出下列程序的運(yùn)行結(jié)果。#include <iostream.h>int f(int a)return +a;int g(int &a)return +a;void main()int m=0,n=0;m+=f(g(m);n+=f(f(n);cout<<"m="<<m<<endl;co

16、ut<<"n="<<n<<endl;結(jié)果:m=3n=23) 寫出下列程序的運(yùn)行結(jié)果。#include <iostream.h>void fun()int num=20;cout<<"the fun's num is"<<num<<endl;void main()int num=10;cout<<"the main's num is "<<num<<endl;fun();int num=30;cout&

17、lt;<"the field's num is "<<num<<endl;cout<<"the main's num is "<<num<<endl;結(jié)果:the main's num is 10the fun's num is20the field's num is 30the main's num is 10類和對象2.1選擇題下列的各類函數(shù)中,不是類的成員函數(shù)。( c )a)構(gòu)造函數(shù) b)析構(gòu)函數(shù) c)友元函數(shù) d)拷貝初始化構(gòu)造函數(shù)作

18、用域運(yùn)算符“:”的功能是:( b )a)標(biāo)識作用域的級別的 b)指出作用域的范圍的c)給定作用域的大小的 d)標(biāo)識成員是屬于哪個類的已知:print()函數(shù)是一個類的常成員函數(shù),它無返回值,下列表示中,是正確的。( a )a)void print()const; b)const void print();c)void const print(): d)void print(const);在類定義的外部,可以被訪問的成員有( c )a)所有類成員 b)private的類成員c)public的類成員 d)public或private的類成員關(guān)于類和對象不正確的說法是:( c )a)類是一種類型,它

19、封裝了數(shù)據(jù)和操作 b)對象是類的實(shí)例c)一個類的對象只有一個 d)一個對象必屬于某個類在c+中實(shí)現(xiàn)封裝是借助于( b )a)枚舉 b) 類 c) 數(shù)組 d)函數(shù)定義析構(gòu)函數(shù)時,應(yīng)該注意:( c )a)其名與類名完全相同 b)返回類型是void類型c)無形參,也不可重載 d)函數(shù)體中必須有delete語句類clase cc1的說明如下,錯誤的語句是:( a )clase cc1int a=2; /(a)cc1(); /(b)public:cc1(int val); /(c)cc1(); /(d);類的指針成員的初始化是通過函數(shù)完成的,這個函數(shù)通常是:( b )a)析構(gòu)函數(shù) b) 構(gòu)造函數(shù) c)其

20、它成員函數(shù) d)友元函數(shù)關(guān)于構(gòu)造函數(shù)的說法,不正確的是:( a )a)沒有定義構(gòu)造函數(shù)時,系統(tǒng)將不會調(diào)用它 b)其名與類名完全相同c)它在對象被創(chuàng)建時由系統(tǒng)自動調(diào)用 d)沒有返回值通??截悩?gòu)造函數(shù)的參數(shù)是:( c )a)對象名 b)對象的成員名 c)對象的引用名 d)對象的指針名關(guān)于成員函數(shù)特征的描述中,錯誤的是:( a )a)成員函數(shù)一定是內(nèi)聯(lián)函數(shù) b)成員函數(shù)可以重載c)成員函數(shù)可以設(shè)置參數(shù)的默認(rèn)值 d)成員函數(shù)可以是靜態(tài)的下列關(guān)于構(gòu)造函數(shù)的描述中,錯誤的是:( d )a)構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù); b)構(gòu)造函數(shù)在定義類對象時自動執(zhí)行c)構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù); d)構(gòu)造函數(shù)不可以重載有如

21、下類聲明“class aint x; ;”,則a類的成員x是:( b )a)公有數(shù)據(jù)成員 b)私有數(shù)據(jù)成員 c)公有成員函數(shù) d)私有成員函數(shù)類tm和類tn是兩個獨(dú)立的類,那么類tm中哪種形式的數(shù)據(jù)成員一定是不允許的:( c )a)tm * a b)tn & a c)tm a d)tn a;以下關(guān)于this指針的敘述中正確的是:( d )a)任何與類相關(guān)的函數(shù)都有this指針; b)類的成員函數(shù)都有this指針;c)類的友員函數(shù)都有this指針; d)類的非靜態(tài)成員函數(shù)才有this指針;.關(guān)于類模板的說法正確的是:( b )a)類模板的主要作用是生成抽象類b)類模板實(shí)例化時,編譯器將根

22、據(jù)給出的模板實(shí)參生成一個類c)在類模板中的數(shù)據(jù)成員具有同樣類型d)類模板中的成員函數(shù)沒有返回值.以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是:( c )a)public b)private c)static d)protected類的私有成員可在何處訪問( d )a)通過子類的對象訪問 b)本類及子類的成員函數(shù)中c)通過該類對象訪問 d)本類的成員函數(shù)中如果沒有為一個類定義任何構(gòu)造函數(shù)的情況下,下列描述正確的是:( a )a)編譯器總是自動創(chuàng)建一個不帶參數(shù)的構(gòu)造函數(shù) b)這個類沒有構(gòu)造函數(shù)c)這個類不需要構(gòu)造函數(shù) d)該類不能通過編譯一個類可包含析構(gòu)函數(shù)的個數(shù)是:( b )a)0個 b)1個 c)0

23、個或1個 d)0個或多個一個類可包含構(gòu)造函數(shù)的個數(shù)是:( d )a)0個 b)0個或1個 c)0個或多個 d)1個或多個this指針存在的目的是:( b )a)保證基類公有成員在子類中可以被訪問b)保證每個對象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼c)保證基類保護(hù)成員在子類中可以被訪問d)保證基類私有成員在子類中可以被訪問下列關(guān)于類的權(quán)限的描述錯誤的是:( a )a)類本身的成員函數(shù)只能訪問自身的私有成員b)類的對象只能訪問該類的公有成員c)普通函數(shù)不能直接訪問類的公有成員,必須通過對象訪問d)一個類可以將另一個類的對象作為成員設(shè)類a將其它類對象作為成員,則建立a類對象時,下列描述正

24、確的是:( b )a)a類構(gòu)造函數(shù)先執(zhí)行 b)成員構(gòu)造函數(shù)先執(zhí)行c)兩者并行執(zhí)行 d)不能確定.假定有類ab,有相應(yīng)的構(gòu)造函數(shù)定義,能正確執(zhí)行“ab a(4),b(5), c3 , *p2=&a,&b;”語句,請問執(zhí)行完此語句后共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為( c )a)3 b)4 c)5 d)6拷貝構(gòu)造函數(shù)的作用是( c )。a. 進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換 b. 用對象調(diào)用成員函數(shù)c. 用對象初始化對象 d. 用一般類型的數(shù)據(jù)初始化對象下列靜態(tài)數(shù)據(jù)成員的特性中,錯誤的是( d )。a靜態(tài)數(shù)據(jù)成員的聲明以關(guān)鍵字static開頭 b. 靜態(tài)數(shù)據(jù)成員必須在文件作用域內(nèi)初始化c. 引導(dǎo)數(shù)據(jù)成員

25、時,要在靜態(tài)數(shù)據(jù)成員前加(類名)和作用域運(yùn)算符d. 靜態(tài)數(shù)據(jù)成員不是類所有對象共享的通過指針訪問類對象成員的方法是( d )。a. :        b. ;        c. .         d. ->靜態(tài)成員函數(shù)沒有( b )。a返回值      b. this指針    

26、   c. 指針參數(shù)        d. 返回類型在下列關(guān)鍵字中,用于說明類中公有成員的是( a )。apublic; bprivate; cprotected; dfriend不是構(gòu)造函數(shù)的特征( d )。a構(gòu)造函數(shù)的函數(shù)名與類名相同;         b.  構(gòu)造函數(shù)可以重載;c. 構(gòu)造函數(shù)可以設(shè)置缺省參數(shù);         

27、;   d.  構(gòu)造函數(shù)必須指定類型說明。是析構(gòu)函數(shù)的特征( a )。a一個類中只能定義一個析構(gòu)函數(shù);       b.  析構(gòu)函數(shù)名與類名不同;c.  析構(gòu)函數(shù)的定義只能在類體內(nèi);         d.  析構(gòu)函數(shù)可以有一個或多個參數(shù)。關(guān)于成員函數(shù)特征的下述描述中,( a )是錯誤的。a成員函數(shù)一定是內(nèi)聯(lián)函數(shù);       &

28、#160;     b.  成員函數(shù)可以重載;c. 成員函數(shù)可以設(shè)置參數(shù)的缺省值;         d.  成員函數(shù)可以是靜態(tài)的。下述靜態(tài)數(shù)據(jù)成員的特性中,( d )是錯誤的。a 說明靜態(tài)數(shù)據(jù)成員時前邊要加修飾符static;b 靜態(tài)數(shù)據(jù)成員要在類體外進(jìn)行初始化;c引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運(yùn)算符;d靜態(tài)數(shù)據(jù)成員不是所有對象所共用的。2.2填空題1、 在撤銷類的對象時,c+程序?qū)⒆詣诱{(diào)用該對象的_析構(gòu)_函數(shù)。 2

29、、 類中的構(gòu)造函數(shù)是一個特殊的成員函數(shù),它由類的對象_自動_調(diào)用,它的作用是_為對象分配內(nèi)存,數(shù)據(jù)成員初始化_。 3、 對類中的成員函數(shù)和屬性的訪問是通過_public_、_protected_和_private_這3個關(guān)鍵字來控制的。 4、 _delete_運(yùn)算符刪除new運(yùn)算符所動態(tài)分配的內(nèi)存空間。 5、 假定用戶沒有給一個名為myclass的類定義析構(gòu)函數(shù),則系統(tǒng)為其定義的默認(rèn)析構(gòu)函數(shù)形式為_myclass()_。 6、 類中構(gòu)造函數(shù)有_一個或多_個,析構(gòu)函數(shù)有_一_個。 7、 類是對具有共同屬性和行為的一類事物的抽象描述,共同屬性被描述為類中的_數(shù)據(jù)成員_ ,共同行為被描述為類中的_成

30、員函數(shù)_。 8、 若要把類friendclass定義為類myclass的友元類,則應(yīng)在類myclass的定義中加入語句_friend class friendclass;_。 9、 在結(jié)構(gòu)定義中,數(shù)據(jù)和成員函數(shù)默認(rèn)權(quán)限是_public_。在類定義中,數(shù)據(jù)和成員函數(shù)默認(rèn)權(quán)限是_private_。 10、 在下面程序的橫線處填上適當(dāng)?shù)恼Z句,使類型該程序執(zhí)行結(jié)果為10。#include <iostream.h>class myclasspub1ic:_ myclass ( int a ) _x = a; _/為x置值_int getnum() return x; _ /取x值privat

31、e:int x; ;void main()myclass my(10);cout<<my.getnum()<<end; 11、 完成下面的類定義。class myclasspublic:myclass()x=0;_friend_int getnum(_myclass _my);private:int x; ;int getnum(_myclass _my)_return my.x; 12、 _new_運(yùn)算符對指定類型對象動態(tài)分配內(nèi)存并返回該類型的_指針_。 13、 若要把函數(shù)void friendfunction()定義為類myclass的友元函數(shù),則應(yīng)在類myclas

32、s的定義中加入語句_friend void friendfunction();_。 14、 類的具體表現(xiàn)是通過定義_對象_來操作的。 15、 在定義類的對象時,c+程序?qū)⒆詣诱{(diào)用該對象的_構(gòu)造_函數(shù)初始化對象自身。 16、 一般情況下,按照面向?qū)ο蟮囊?把類中的數(shù)據(jù)成員(屬性)定義為_private_權(quán)限,而把成員函數(shù)(方法)定義為_public_權(quán)限。 17、 在類中定義和實(shí)現(xiàn)的函數(shù)稱為_內(nèi)聯(lián)函數(shù)_。 18、 非成員函數(shù)應(yīng)聲明為類的_友元函數(shù)_才能訪問這個類的private成員。 2.3簡答題a、類的含義b、構(gòu)造函數(shù)的特點(diǎn)c、拷貝構(gòu)造函數(shù)的調(diào)用d、析構(gòu)函數(shù)的定義及其特點(diǎn)e、靜態(tài)成員的分類及

33、各自的特點(diǎn)2.4程序閱讀題1) 寫出下列程序的運(yùn)行結(jié)果。#include <iostream.h>class myclasschar ch;public:myclass();myclass(char character);void print();myclass();myclass:myclass()cout<<"this is a constructor!"<<endl;ch='a'myclass:myclass(char character)cout<<"this is a constructor

34、!"<<endl;ch=character;void myclass:print()cout<<"the value of ch is "<<ch<<endl;myclass:myclass()cout<<"this is a destructor!"<<endl;void main()myclass first,second('b');first.print();second.print();運(yùn)行結(jié)果:this is a constructor!this

35、is a constructor!the value of ch is athe value of ch is bthis is a destructor!this is a destructor!2)寫出下列程序的運(yùn)行結(jié)果#include <iostream.h>class myclasspublic:myclass();void print();myclass();private:int i;static int j; ;int myclass:j=0;myclass:myclass()cout<<"this is constructor!"&l

36、t;<endl;j+=10; void myclass:print() cout<<"the value of j is" <<j<<endl; myclass:myclass()cout<<"this is a destructor!"<<endl; void main() myclass first,second;first.print();second.print(); this is constructor!this is constructor!the value of j is

37、20the value of j is20this is a destructor!this is a destructor!繼承與派生3.1選擇題.在c+中,類與類之間的繼承關(guān)系具有( c )a)自反性 b)對稱性 c)傳遞性 d)反對稱性.在公有繼承的情況下,基類的成員(私有的除外)在派生類中的訪問權(quán)限( b )a)受限制 b)保持不變 c)受保護(hù) d)不受保護(hù).按解釋中的要求在下列程序劃線處填入的正確語句是:( c )#include <iostream.h>class basepublic:void fun()cout<<"base:fun"

38、<<endl;class derived:public basepublic:void fun() /在此空格處調(diào)用基類的函數(shù)fun()cout<<"derived:fun"<<endl;a)fun(); b)base.fun(); c)base:fun(); d)base->fun();.在保護(hù)繼承的情況下,基類的成員(私有的除外)在派生類中的訪問權(quán)限( c )a)受限制 b)保持不變 c)受保護(hù) d)不受保護(hù).下面描述中,表達(dá)錯誤的是:( b )a)公有繼承時,基類中的public成員在派生類中仍是public的b)公有繼承時,

39、基類中的private成員在派生類中仍是private的c)公有繼承時,基類中的protected成員在派生類中仍是protected的d)私有繼承時,基類中的public成員在派生類中是private的.下列虛基類的聲明中,正確的是:( b )a)class virtual b: public a b)class b: virtual public a c)class b: public a virtual d)virtual class b: public a.c+設(shè)置虛基類的目的是( a )a)消除二義性 b)簡化程序 c)提高運(yùn)行效率 d)減少目標(biāo)代碼class xint a;publ

40、ic:x(int x=0)a=x;class y:public xint b;public :y(int x=0,int y=0):x(y) b=x;下列語句組中出現(xiàn)語法錯誤的是(d)a. x *pa=new y(1,2);b.x a1=y(1,3);c.y b1(2,3); x &a3=b1;d.x a4(10);y b2=a4;class base public: int i; base(int t) : i ( t ) ;class derived: protected base base b; int j;public: derived (int t);在構(gòu)造函數(shù)derived

41、的下列定義中,正確的是(b )a. derived : : derived (int t) : b(t), j(t) b. derived : : derived (int t) : b(t), base(t), j(t) c. derived : : derived (int t) : base(t), j(t) d. derived : : derived (int t) : i(t), b(t), j(t) 在哪種派生方式中,派生類可以訪問基類中的protected成員(b )a)public和private b)public、protected和private c)protected和

42、private d)僅protected在c+中,類與類之間的繼承關(guān)系具有(c )a) 自反性 b) 對稱性 c) 傳遞性 d) 反對稱性下列關(guān)于類的繼承描述中,(a )是錯誤的a) 派生類可以訪問基類的所有數(shù)據(jù)成員,也能調(diào)用基類的所有成員函數(shù)b) 派生類也是基類,但基類不一定具有派生類的全部屬性和方法c) 繼承描述類的層次關(guān)系,派生類可以具有與基類相同的屬性和方法d) 一個基類可以有多個派生類,一個派生類可以有多個基類.當(dāng)一個派生類僅有protected繼承一個基類時,基類中的所有公有成員成為派生類的(c)a) public成員 b) private成員 c) protected成員 d)

43、友元當(dāng)一個派生類私有繼承一個基類時,基類中的所有公有成員和保護(hù)成員成為派生類的( b )a) public成員 b) private成員 c) protected成員 d) 友元不論派生類以何種方法繼承基類,都不能使用基類的(b )a) public成員 b) private成員 c) protected成員 d) public成員和protected成員在創(chuàng)建派生類對象時,構(gòu)造函數(shù)的執(zhí)行順序是(d)a) 對象成員構(gòu)造函數(shù)、基類構(gòu)造函數(shù)、派生類本身的構(gòu)造函數(shù)b) 派生類本身的構(gòu)造函數(shù)、基類構(gòu)造函數(shù)、對象成員構(gòu)造函數(shù)c) 基類構(gòu)造函數(shù)、派生類本身的構(gòu)造函數(shù)、對象成員構(gòu)造函數(shù)d) 基類構(gòu)造函數(shù)、對

44、象成員構(gòu)造函數(shù)、派生類本身的構(gòu)造函數(shù)下列虛基類的聲明中,正確的是( d )。 a)class virtual b:public a b)virtual class b:public a c)class b:public a virtual d)class b:virtual public a下面敘述錯誤的是(a )。 a)基類的protected成員在派生類中仍然是protected的 b)基類的protected成員在public派生類中仍然是protected的 c)基類的protected成員在private派生類中是private的 d)基類的protected成員不能被派生類的對象訪

45、問 下列說法中錯誤的是(a )。 a) 保護(hù)繼承時基類中的public成員在派生類中仍是public的 b)公有繼承時基類中的private成員在派生類中仍是private的 c)私有繼承時基類中的public成員在派生類中是private的 d)保護(hù)繼承時基類中的public成員在派生類中是protected的 關(guān)于多繼承二義性的描述中,錯誤的是(b )。 a)一個派生類的兩個基類中都有某個同名成員,在派生類中對這個成員的訪問可能出現(xiàn)二義性 b)解決二義性的最常用的方法是對成員名的限定法 c)基類和派生類中同時出現(xiàn)的同名函數(shù),也存在二義性問題 d)一個派生類是從兩個基類派生出來的,而這兩個基

46、類又有一個共同的基類,對該基類成員進(jìn)行訪問時,可能出現(xiàn)二義性 下面敘述錯誤的是(c )。 a)派生類可以使用private派生 b)對基類成員的訪問必須是無二義性的 c)基類成員的訪問能力在派生類中維持不變 d)賦值兼容規(guī)則也適用于多繼承的組合 派生類的構(gòu)造函數(shù)的成員初始化列表中,不能包含(c )。 a)基類的構(gòu)造函數(shù) b)派生類中子對象的初始化 c)基類中子對象的初始化 d)派生類中一般數(shù)據(jù)成員的初始化 下面(b )的敘述不符合賦值兼容規(guī)則。 a)派生類的對象可以賦值給基類的對象 b)基類的對象可以賦值給派生類的對象 c)派生類的對象可以初始化基類的引用 d)派生類的對象的地址可以賦值給指向

47、基類的指針.下列虛基類的聲明中,正確的是:( b )a)class virtual b: public a b)class b: virtual public a c)class b: public a virtual d)virtual class b: public a.c+設(shè)置虛基類的目的是( a )a)消除二義性 b)簡化程序 c)提高運(yùn)行效率 d)減少目標(biāo)代碼3.2填空題1、 垂直訪問時,保護(hù)成員的訪問控制權(quán)限與_公有_成員相同。 2、 利用繼承能夠?qū)崿F(xiàn)_代碼復(fù)用_。這種實(shí)現(xiàn)縮短了程序的開發(fā)時間,促使開發(fā)人員復(fù)用已經(jīng)測試和調(diào)試好的高質(zhì)量軟件。 3、 派生類對基類的繼承有三種方式:_p

48、ublic_、_protected_ 和_private_。 4、 多繼承情況下,派生類的構(gòu)造函數(shù)的執(zhí)行順序取決于_定義_派生類時所指定的各基類的順序。 5、 c+提供的_多繼承_機(jī)制允許一個派生類繼承多個基類,即使這些基類是相互無關(guān)的。 6、 派生類可以調(diào)用其_定義_中不具備的數(shù)據(jù)和操作。 7、 對基類數(shù)據(jù)成員的初始化必須在派生類構(gòu)造函數(shù)中的_初始化列表_處執(zhí)行。 8、 如果類alpha繼承了類beta,則類alpha稱為_派生_類,類beta稱為_基_類。 9、 己知下面的程序框架,按注釋中的提示補(bǔ)充細(xì)節(jié)。#include <iostream.h>class planetpro

49、tected:double distance;_/行星距太陽的距離int revolve;_/行星的公轉(zhuǎn)周期public:planet(double d,int r)distance=d;revolve=r;class earth:public planetdouble circumference; /地球繞太陽公轉(zhuǎn)的軌道周長public:/定義構(gòu)造函數(shù)earth(double d,int r),并計算地球繞太陽公轉(zhuǎn)的軌道周長。/假定:circumnference=2*d*3.1416_ earth(double d,int r): planet (d, r)_ circumnference=

50、2*d*3.1416;_/定義show()函數(shù)顯示所有信息_void show() cout<<”distance is ”<< distance<<”miles, revolve is”<< revolve<<”days”<<endl; cou<<” circumference is “<< circumference<<endl; _;void main()earth ob(9300000,365);ob.show(); 10、 設(shè)置虛基類的目的是_為了消除二義性_,可通過_virt

51、ual_標(biāo)識虛基類。 11、 若多繼承時,多個基類中擁有一個同名的成員,則_不能_用調(diào)整訪問權(quán)限確定對該成員的訪問。 12、 根據(jù)基類的定義和測試程序,完成下面派生類的定義。class pointpublic:point(int i=0,int j=0)x=i;y=j;void move(int xoff,int yoff)x+=xoff;y+=yoff;int getx()return x;int gety()return y;private:int x,y;class rectangle :private pointpublic:rectangle(int x,int y,int w,in

52、t h)_:point(x,y)_w = w  h = h _ void move(int xoff,int yoff)_ point:move(xoff, yoff);_ int getx()_return point:getx();_ int gety()_return point:gety();_ int getw()_return w;_ int geth()_return h;_ private:int w,h;#include <iostream.h>#include <math.h>void main()rectangle rect(1

53、,2,3,4);rect.move(5,6);cout<<“the data of rect(x,y,w,h):(“<<rect.getx()<<“,”<<rect.gety()<<“,”<<rect.getw()<<“,”<<rect.geth()<<“)”<<endl; 13、 多繼承可以視為是_單繼承_的擴(kuò)展。 14、 在劃線處填上適當(dāng)?shù)恼Z句,完成下列程序。#include <math.h>class pointpublic:point(double a,d

54、ouble b,double c)_x =a; y=b; z =c;_double getx()return x;double gety()return y;double getz()return z;private:_double x, y;_protected:_double z;_;class line :_public_pointpublic:line(double a ,double b,double c,double d)_:point(a,b,c)_k = d;_ void show()cout<<getx()<<endl;cout<<gety

55、()<<“<<.<<<endl;cout<<getz()<<“<<z<<endl;cout<<k<<endl;private:double k;void main()line obj(1.2,3.4,5.6,7.8);obj.show(); 15、 類繼承中,缺省的繼承方式是_private_。 16、 當(dāng)用protected繼承從基類派生個類時,基類的public成員成為派生類的_protected_成員,protected成員成為派生類的_protected_成員。 18、 _

56、公有派生_類的對象可作為_基_類的對象處理。 19、 指向基類的對象的指針變量也可以指向_公有派生類_的對象。 20、 類之間的”有”關(guān)系代表_組合_,”是”關(guān)系代表_繼承_。 3.3簡答題a、派生類的定義及其特點(diǎn)b、單繼承和多繼承的概念及其關(guān)系c、繼承方式的種類及其各自的特點(diǎn)d、在繼承中構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用規(guī)則f、賦值兼容原則g、類模板和模板類的含義及其關(guān)系3.4讀程序題1、 寫出下列程序的運(yùn)行結(jié)果。#include <iostream.h>class basepublic:void who()cout<<"class base"<<endl;class derived1:public basepublic:void who()cout<<"class derived1"<<endl;class d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論