【面向?qū)ο蟪绦蛟O(shè)計(jì)】形成性考核冊(cè)作業(yè)4答案_第1頁(yè)
【面向?qū)ο蟪绦蛟O(shè)計(jì)】形成性考核冊(cè)作業(yè)4答案_第2頁(yè)
【面向?qū)ο蟪绦蛟O(shè)計(jì)】形成性考核冊(cè)作業(yè)4答案_第3頁(yè)
【面向?qū)ο蟪绦蛟O(shè)計(jì)】形成性考核冊(cè)作業(yè)4答案_第4頁(yè)
【面向?qū)ο蟪绦蛟O(shè)計(jì)】形成性考核冊(cè)作業(yè)4答案_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、更多電大形考作業(yè)答案、電大考試小抄、電大試題庫(kù)、統(tǒng)考資料、請(qǐng)百度一下“電大天堂” 面向?qū)ο蟪绦蛟O(shè)計(jì)形成性考核冊(cè)作業(yè)四一、填空題:1. 設(shè)px是指向一個(gè)類對(duì)象的指針變量,則執(zhí)行 “delete px;”語(yǔ)句時(shí),將自動(dòng)調(diào)用該類的( c )。 a. 無(wú)參構(gòu)造函數(shù) b. 帶參構(gòu)造函數(shù) c. 析構(gòu)函數(shù) d. 拷貝構(gòu)造函數(shù) 2. 假定ab為一個(gè)類,則執(zhí)行 “ab a10;”語(yǔ)句時(shí)調(diào)用該類無(wú)參構(gòu)造函數(shù)的次數(shù)為( d )。 a. 0 b. 1 c. 9 d. 10 3. 假定ab為一個(gè)類,則執(zhí)行 “ab a(2), b3, *p4;”語(yǔ)句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為( b )。 a. 3 b. 4 c. 5

2、d. 9 4. 假定ab為一個(gè)類,px為指向該類的一個(gè)含有n個(gè)對(duì)象的動(dòng)態(tài)數(shù)組的指針,則執(zhí)行“delete px;”語(yǔ)句時(shí)共調(diào)用該類析構(gòu)函數(shù)的次數(shù)為( c )。 a. 0 b. 1 c. n d. n+1 5. 對(duì)類中引用成員的初始化是通過(guò)構(gòu)造函數(shù)中給出的( c )實(shí)現(xiàn)的。 a. 函數(shù)體 b. 參數(shù)表 c. 初始化表 d. 初始化表或函數(shù)體 6. 一個(gè)類的靜態(tài)數(shù)據(jù)成員所表示屬性 ( c )。 a. 是類的或?qū)ο蟮膶傩?b. 只是對(duì)象的屬性 c. 只是類的屬性 d. 類和友元的屬性 7. 被非靜態(tài)成員函數(shù)訪問(wèn)的類的數(shù)據(jù)成員(a )。 a. 可以是非靜態(tài)數(shù)據(jù)成員或靜態(tài)數(shù)據(jù)成員 b. 不可能是類的靜態(tài)

3、數(shù)據(jù)成員 c. 只能是類的非靜態(tài)數(shù)據(jù)成員 d. 只能是類的靜態(tài)數(shù)據(jù)成員 8. 引入友元的主要目的是為了( c )。 a. 增強(qiáng)數(shù)據(jù)安全性 b. 提高程序的可靠性 c. 提高程序的效率和靈活性 d. 保證類的封裝性 9. 在重載一個(gè)運(yùn)算符時(shí),其參數(shù)表中沒(méi)有任何參數(shù),這表明該運(yùn)算符是( b )。 a. 作為友元函數(shù)重載的1元運(yùn)算符 b. 作為成員函數(shù)重載的1元運(yùn)算符 c. 作為友元函數(shù)重載的2元運(yùn)算符 d. 作為成員函數(shù)重載的2元運(yùn)算符 10. 如果表達(dá)式a+b中的“+”是作為成員函數(shù)重載的運(yùn)算符,若采用運(yùn)算符函數(shù)調(diào)用格式,則可表示為( a )。 a. a.operator+(b) b. b.op

4、erator+(a) c. operator+(a,b) d. operator(a+b) 11. 如果表達(dá)式+a中的“+”是作為成員函數(shù)重載的運(yùn)算符,若采用運(yùn)算符函數(shù)調(diào)用格式,則可表示為( d )。 a. a.operator+(1) b. operator+(a) c. operator+(a,1) d. a.operator+() 12. 一個(gè)程序中數(shù)組a和變量k定義為“int a510,k;”,且程序中包含有語(yǔ)句“a(2,5)=+k*3;”,則此語(yǔ)句中肯定屬于重載操作符的是( a )。 a. ( ) b. = c. + d. * 13. 下面是重載雙目運(yùn)算符+的普通函數(shù)原形,其中最符合

5、+原來(lái)含義的是( a )。 a. value operator+(value, value); b. value operator+(value,int); c. value &operator+(value, value); d. value &operator+(value&, value&); 14. 關(guān)于插入運(yùn)算符next _指向隊(duì)首結(jié)點(diǎn)的后繼(即下一個(gè))結(jié)點(diǎn)。 3. 在一個(gè)用鏈表實(shí)現(xiàn)的隊(duì)列類中,若鏈隊(duì)為空或只含有一個(gè)結(jié)點(diǎn),則隊(duì)首指針的值與隊(duì)尾指針的值_相同_。 4一個(gè)類的_析構(gòu)_函數(shù)通常用于實(shí)現(xiàn)釋放該類對(duì)象中指針成員所指向的動(dòng)態(tài)存儲(chǔ)空間的任務(wù)。 5定義類動(dòng)態(tài)對(duì)象數(shù)組時(shí),其元素只能靠自

6、動(dòng)調(diào)用該類的_無(wú)參構(gòu)造函數(shù)_來(lái)進(jìn)行初始化。 6. 假定 ab為一個(gè)類,則執(zhí)行“ab a10;”語(yǔ)句時(shí),系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為_10_。 7對(duì)類中引用成員的初始化只能通過(guò)在構(gòu)造函數(shù)中給出的_初始化表_來(lái)實(shí)現(xiàn)。 8. 假定要把a(bǔ)a定義為ab類中的一個(gè)引用整數(shù)型數(shù)據(jù)成員,則定義語(yǔ)句為_ int& aa;_。 9假定用戶為類ab定義了一個(gè)構(gòu)造函數(shù)“ab(int aa) a=aa;”,則系統(tǒng)_不會(huì)_為該類自動(dòng)定義一個(gè)無(wú)參構(gòu)造函數(shù)ab() 。 10假定用戶為類ab定義了一個(gè)構(gòu)造函數(shù)“ab(int aa=0):a(aa)”,則定義該類的對(duì)象時(shí),可以有_2_種不同的定義格式。 11假定用戶為類ab定

7、義了一個(gè)構(gòu)造函數(shù)“ab(int aa=0, int bb=0) a=aa; b=bb;”,則定義該類的對(duì)象時(shí),可以有_3_種不同的定義格式。 12假定用戶只為類ab定義了一個(gè)構(gòu)造函數(shù)“ab():a(0),b(0)”,則定義該類對(duì)象x的定義語(yǔ)句“ab x(5);”是_錯(cuò)誤_(正確/錯(cuò)誤)的。 13. 靜態(tài)成員函數(shù) 只能_訪問(wèn)類的靜態(tài)數(shù)據(jù)成員, _不能_ 訪問(wèn)類的非靜態(tài)數(shù)據(jù)成員。 14. 重載運(yùn)算符時(shí),該運(yùn)算符的_優(yōu)先級(jí)_、結(jié)合性以及操作符的個(gè)數(shù)不允許改變。 15. 作為類的成員函數(shù)重載一個(gè)運(yùn)算符時(shí),參數(shù)表中只有一個(gè)參數(shù),說(shuō)明該運(yùn)算符有_2_個(gè)操作數(shù)。 16. 重載抽取運(yùn)算符時(shí),其運(yùn)算符函數(shù)的返回

8、值類型應(yīng)當(dāng)是_ istream &_。 17. 類型轉(zhuǎn)換函數(shù)沒(méi)有_返回值_類型,而且參數(shù)表為_空_。 18. 當(dāng)保護(hù)繼承時(shí),基類的_公有和保護(hù)_成員在派生類中成為保護(hù)成員,派生類對(duì)象不能直接訪問(wèn)基類的 任何 _成員。19. 引進(jìn)虛基類的根本目的是為了消除_二義性_。三、程序填空: 1. 已知一個(gè)利用數(shù)組實(shí)現(xiàn)棧的類定義如下:const int array_size=10;class stack public:void init() top=-1; /初始化棧為空 void push(int newelem); /向棧中壓入一個(gè)元素int pop(); /從棧頂彈出一個(gè)元素bool empty()

9、 /判???if(top=-1) return true;else return false;int depth() return top+1; /返回棧的深度void print(); /按照后進(jìn)先出原則依次輸出棧中每個(gè)元素,直到棧空為止private:int elemarray_size; /用于保存堆棧元素的數(shù)組int top; /指明棧頂元素位置的指針; 該類的pop和print函數(shù)的實(shí)現(xiàn)分別如下:_(1)_ if(top=-1) cout???endl;exit(1); /中止運(yùn)行return _(2)_;void stack:print() while(!empty() cout_

10、(3)_ ;(1) int stack:pop() (2) elemtop- (3) pop()2. #include #include class a int *a; int n; int maxlen; public: a(): a(0), n(0), maxlen(0) a(int *aa, int nn, int mm) n=nn; maxlen=mm; if(nmaxlen) exit(1); _(1)_; /由a指向長(zhǎng)度為maxlen的動(dòng)態(tài)數(shù)組 for(int i=0; in; i+) ai=aai; a() delete a; int getvalue(int i) _(2)_

11、/函數(shù)體返回ai的值 ; void main() int b10=1,2,3,4,5,6,7,8,9,10; a r(b,10,10); int i,s=0; for(i=0; i10; i+) _(3)_ ; /把r對(duì)象的a數(shù)據(jù)成員中的每個(gè) /元素值依次累加到s中 couts=sendl; (1) a=new intmaxlen (2) return ai; (3) s+=r.getvalue(i) 3. 在下面一段類定義中, derived類公有繼承了基類base。需要填充的函數(shù)由注釋內(nèi)容給出了功能。class base private: int mem1,mem2; /基類的數(shù)據(jù)成員 p

12、ublic: base(int m1,int m2) mem1=m1; mem2=m2; void output()coutmem1 mem2 ; /.;class derived: public base private: int mem3; /派生類本身的數(shù)據(jù)成員 public: /構(gòu)造函數(shù),由m1和m2分別初始化mem1和mem2,由m3初始化mem3 derived(int m1,int m2, int m3); /輸出mem1,mem2和mem3數(shù)據(jù)成員的值 void output() _(1)_; coutmem3endl;/.;derived:derived(int m1,int

13、 m2, int m3): _(2)_ _(3)_;(1) base:output() (2) base(m1,m2) (3) mem3=m3四、寫出程序運(yùn)行結(jié)果: 1. #include class franction /定義分?jǐn)?shù)類 int nume; /定義分子 int deno; /定義分母 public: /把*this化簡(jiǎn)為最簡(jiǎn)分?jǐn)?shù),具體定義在另外文件中實(shí)現(xiàn)void fransimp(); /返回兩個(gè)分?jǐn)?shù)*this和x之和,具體定義在另外文件中實(shí)現(xiàn)franction franadd(const franction& x); /置分?jǐn)?shù)的分子和分母分別0和1 void initfranc

14、tion() nume=0; deno=1; /置分?jǐn)?shù)的分子和分母分別n和d void initfranction(int n, int d) nume=n; deno=d; /輸出一個(gè)分?jǐn)?shù)void franoutput() coutnume/denoendl; ;void main() franction a,b,c,d; a.initfranction(6,15); b.initfranction(3,10); c.initfranction(); c=a.franadd(b); d=c.franadd(a);couta: ; a.franoutput(); coutb: ; b.fran

15、output(); coutc: ; c.franoutput(); coutd: ; d.franoutput(); 程序運(yùn)行結(jié)果為:a: 6/15 b: 3/10 c: 7/10 d: 11/102. #includeclass a int a,b;public: a() a=b=0; a(int aa, int bb) a=aa; b=bb;int sum() return a+b;int* mult() int *p=new int(a*b);return p;void main() int *k;a x(2,3), *p; p=new a(4,5); coutx.sum() *(x.

16、mult()endl; coutsum() mult()endl; delete k;程序運(yùn)行結(jié)果為:5 6 9 203. (此題作業(yè)本上缺漏)#includeclass datepublic:date(int y=2000,int m=1,int d=1)year=y;month=m;day=d;void printdate()coutyear/month/dayendl;protected:int year,month,day;class timepublic:time(int h=0,int m=0,int s=0)hour=h;minutes=m;seconds=s;void prin

17、ttime()couthour:minutes:secondsendl;protected:int hour,minutes,seconds;class date_time : public date, public timepublic:date_time();date_time(int y,int mo,int d,int h=0,int mi=0,int s=0):date(y,mo,d),time(h,mi,s);void printdate_time()printdate();printtime();void main()date_time a,b(2002,10,1,23,59,5

18、9),c(2002,12,31);a.printdate_time();b.printdate_time();c.printdate_time();程序運(yùn)行結(jié)果為:2000/1/10:0:02002/10/123:59:592002/12/310:0:04. (此題作業(yè)本上缺漏)/* test.h */#includeclass pointpublic:void initp(float x0=0,float y0=0)x=x0,y=y0;void move(float xf,float yf)x+=xf;y+=yf;float getx()return x;float gety()return

19、 y;private:float x,y;class rectangle:public pointpublic:void initr(float x,float y,float w,float h)initp(x,y);w=w;h=h;void zoomr(float k)w*=k,h*=k;float geth()return h;float getw()return w;private:float w,h;/* test.cpp *#include”test.h”void main()rectangle rect;rect.initr(10,20,30,40);coutrect.getx(

20、),rect.gety(),rect.getw(),rect.geth()endl;rect.move(5,6);coutrect.getx(),rect.gety(),rect.getw(),rect.geth()endl;rect.zoomr(7);coutrect.getx(),rect.gety(),rect.getw(),rect.geth()next; return c; 假定intnode的類型定義為: struct intnode int data; /結(jié)點(diǎn)值域 intnode* next; /結(jié)點(diǎn)指針域 ;函數(shù)的功能為:統(tǒng)計(jì)出以f為表頭指針的鏈表中結(jié)點(diǎn)的個(gè)數(shù)。 2. int

21、f(const char *s) int i=0; while(*s+)i+; return i; ;函數(shù)的功能為:求出并返回字符指針參數(shù)s所指向的字符串長(zhǎng)度。六、程序改錯(cuò),請(qǐng)根據(jù)程序段或函數(shù)模塊的功能改寫個(gè)別地方的錯(cuò)誤。 1. 下面是分?jǐn)?shù)類fract的定義及測(cè)試主程序,在類定義及其友元函數(shù)定義中有兩處錯(cuò)誤,更正錯(cuò)誤后程序應(yīng)顯示41/28,請(qǐng)指出錯(cuò)誤所在行的行號(hào)并給出改正意見。class fract int den; /分子 int num; /分母public: fract(int d=0,int n=1):den(d),num(n) /1行 friend fract &operator+=

22、(fract,fract&); /2行 void show() coutden/num; /3行; /4行 friend fract &operator+=(fract f1,fract f2) /5行 /7行 f1.den=f1.den*f2.num+f1.num*f2.den; /8行 f1.num*=f2.num; /9行 return f1; /10行void main() fract fr(3,4); fr+=fract(5,7); fr.show();錯(cuò)誤行的行號(hào)為_2_和_5_。分別改正為_ friend fract &operator+=(fract&,fract);_ 和_

23、fract &operator+=(fract &f1,fract f2);_。七、編程: 1. 根據(jù)下面類中構(gòu)造函數(shù)的原型和注釋寫出它的類外定義。class strings char *s; /指向動(dòng)態(tài)分配的字符串?dāng)?shù)組空間int n; /記錄字符串長(zhǎng)度public:strings(char*str); /構(gòu)造函數(shù),利用str字符串長(zhǎng)度初始化n, /利用str字符串初始化s所指的字符串空間strings(strings& str); /拷貝構(gòu)造函數(shù)strings& give(strings& str); /實(shí)現(xiàn)str賦值給*this的功能 strings uion(strings& str);

24、 /實(shí)現(xiàn)*this和str中的字符串合并的 /功能,把合并結(jié)果存入臨時(shí)對(duì)象并返回int lenth() return n; /返回字符串長(zhǎng)度void print() coutsx)t=x;x=y;y=t; int variance()return x*x-y*y; /其它函數(shù)從略;void main() a_class a_obj(3,5); coutresult:a_obj.variance()x)t=x;x=y;y=t; /其它函數(shù)從略 friend int variance (a_class& ac); /參數(shù)名任意;int variance (a_class& ac) return ac.x*ac.x-ac.y*ac.y;void main() a_class a_obj(3,5); coutresult:variance(a_obj)endl;3. (此題作業(yè)本上缺漏)已知類定義如下,其中shape為基類,circle和rectangle分別shap

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論