2022年面向?qū)ο蟪绦蛟O(shè)計(jì)形成性考核及解答作業(yè)四_第1頁(yè)
2022年面向?qū)ο蟪绦蛟O(shè)計(jì)形成性考核及解答作業(yè)四_第2頁(yè)
2022年面向?qū)ο蟪绦蛟O(shè)計(jì)形成性考核及解答作業(yè)四_第3頁(yè)
2022年面向?qū)ο蟪绦蛟O(shè)計(jì)形成性考核及解答作業(yè)四_第4頁(yè)
2022年面向?qū)ο蟪绦蛟O(shè)計(jì)形成性考核及解答作業(yè)四_第5頁(yè)
已閱讀5頁(yè),還剩9頁(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、2011春面向?qū)ο蟪绦蛟O(shè)計(jì)單元復(fù)習(xí)指導(dǎo)(4)一、填空題:1. 設(shè)px是指向一個(gè)類對(duì)象的指針變量,則執(zhí)行 “delete px;”語(yǔ)句時(shí),將自動(dòng)調(diào)用該類的( )。 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ù)為( )。 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ù)為( )。 A. 3 B. 4 C. 5 D. 9 4. 假定AB為一個(gè)類,px為指向該類的一個(gè)含有n個(gè)對(duì)象的動(dòng)態(tài)數(shù)組的指針,

2、則執(zhí)行“delete px;”語(yǔ)句時(shí)共調(diào)用該類析構(gòu)函數(shù)的次數(shù)為( )。 A. 0 B. 1 C. n D. n+1 5. 對(duì)類中引用成員的初始化是通過(guò)構(gòu)造函數(shù)中給出的( )實(shí)現(xiàn)的。 A. 函數(shù)體 B. 參數(shù)表 C. 初始化表 D. 初始化表或函數(shù)體 6. 一個(gè)類的靜態(tài)數(shù)據(jù)成員所表示屬性 ( )。 A. 是類的或?qū)ο蟮膶傩?B. 只是對(duì)象的屬性 C. 只是類的屬性 D. 類和友元的屬性 7. 被非靜態(tài)成員函數(shù)訪問(wèn)的類的數(shù)據(jù)成員( )。 A. 可以是非靜態(tài)數(shù)據(jù)成員或靜態(tài)數(shù)據(jù)成員 B. 不可能是類的靜態(tài)數(shù)據(jù)成員 C. 只能是類的非靜態(tài)數(shù)據(jù)成員 D. 只能是類的靜態(tài)數(shù)據(jù)成員 8. 引入友元的主要目的是

3、為了( )。 A. 增強(qiáng)數(shù)據(jù)安全性 B. 提高程序的可靠性 C. 提高程序的效率和靈活性 D. 保證類的封裝性 9. 在重載一個(gè)運(yùn)算符時(shí),其參數(shù)表中沒(méi)有任何參數(shù),這表明該運(yùn)算符是( )。 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.operator+(b) B. b.operator+(a) C. operator+(a,b) D. operator(a+b) 11如果表達(dá)式a+

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

5、or+(Value,int); C. Value &operator+(Value, Value); D. Value &operator+(Value&, Value&); 14. 關(guān)于插入運(yùn)算符的重載,下列說(shuō)法不正確的是( )。 A. 運(yùn)算符函數(shù)的返回值類型是ostream & 。 B. 重載的運(yùn)算符必須定義為類的成員函數(shù)。 C. 運(yùn)算符函數(shù)的第一個(gè)參數(shù)的類型是ostream & 。 D. 運(yùn)算符函數(shù)有兩個(gè)參數(shù)。 15. C+的繼承性允許派生類繼承基類的( )。 A. 部分特性,并允許增加新的特性或重定義基類的特性 B. 部分特性,但不允許增加新的特性或重定義基類的特性 C. 所有特性,并

6、允許增加新的特性或重定義基類的特性 D. 所有特性,但不允許增加新的特性或重定義基類的特性二、填空題1. 當(dāng)一個(gè)隊(duì)列為滿時(shí),不能對(duì)其做_元素的操作。 2在一個(gè)用鏈表實(shí)現(xiàn)的隊(duì)列類中,假定每個(gè)結(jié)點(diǎn)包含的值域用elem表示,包含的指針域用next表示,鏈隊(duì)的隊(duì)首指針用elemHead表示,隊(duì)尾指針用elemTail表示,當(dāng)鏈隊(duì)非空時(shí),_指向隊(duì)首結(jié)點(diǎn)的后繼(即下一個(gè))結(jié)點(diǎn)。 3. 在一個(gè)用鏈表實(shí)現(xiàn)的隊(duì)列類中,若鏈隊(duì)為空或只含有一個(gè)結(jié)點(diǎn),則隊(duì)首指針的值與隊(duì)尾指針的值_。 4一個(gè)類的_函數(shù)通常用于實(shí)現(xiàn)釋放該類對(duì)象中指針成員所指向的動(dòng)態(tài)存儲(chǔ)空間的任務(wù)。 5定義類動(dòng)態(tài)對(duì)象數(shù)組時(shí),其元素只能靠自動(dòng)調(diào)用該類的_來(lái)

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

8、生類時(shí),使用private關(guān)鍵字表示為私有繼承,使用_關(guā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() /判???if(top=-1) return true;else return false;int Depth() return top+1; /返回棧的深度void Print(); /

9、按照后進(jìn)先出原則依次輸出棧中每個(gè)元素,直到??諡橹筽rivate: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_(3)_ ;(1) (2) (3)2. #include #include class A int *a; int n; int MaxLen; public: A(): a(0), n(0

10、), 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)_ /函數(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è) /元素值依

11、次累加到s中 couts=sendl; (1) (2) (3) 3. 在下面一段類定義中, Derived類公有繼承了基類Base。需要填充的函數(shù)由注釋內(nèi)容給出了功能。class Base private: int mem1,mem2; /基類的數(shù)據(jù)成員 public: 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,由

12、m3初始化mem3 Derived(int m1,int m2, int m3); /輸出mem1,mem2和mem3數(shù)據(jù)成員的值 void output() _(1)_; coutmem3endl;/.;Derived:Derived(int m1,int m2, int m3): _(2)_ _(3)_;(1) (2) (3) 四、寫(xiě)出程序運(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(); /返

13、回兩個(gè)分?jǐn)?shù)*this和x之和,具體定義在另外文件中實(shí)現(xiàn)Franction FranAdd(const Franction& x); /置分?jǐn)?shù)的分子和分母分別0和1 void InitFranction() 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

14、,10); c.InitFranction(); c=a.FranAdd(b); d=c.FranAdd(a);couta: ; a.FranOutput(); coutb: ; b.FranOutput(); coutc: ; c.FranOutput(); coutd: ; d.FranOutput(); 2. #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 ma

15、in() int *k;A x(2,3), *p; p=new A(4,5); coutx.Sum() *(x.Mult()endl; coutSum() Mult()next; return c; 假定IntNode的類型定義為: struct IntNode int data; /結(jié)點(diǎn)值域 IntNode* next; /結(jié)點(diǎn)指針域 ; 2. int f(const char *s) int i=0; while(*s+)i+; return i; ;六、程序改錯(cuò),請(qǐng)根據(jù)程序段或函數(shù)模塊的功能改寫(xiě)個(gè)別地方的錯(cuò)誤。 1. 下面是分?jǐn)?shù)類fract的定義及測(cè)試主程序,在類定義及其友元函數(shù)定義中有

16、兩處錯(cuò)誤,更正錯(cuò)誤后程序應(yīng)顯示41/28,請(qǐng)指出錯(cuò)誤所在行的行號(hào)并給出改正意見(jiàn)。class fract int den; /分子 int num; /分母public: fract(int d=0,int n=1):den(d),num(n) /1行 friend fract &operator+=(fract,fract&); /2行 void show() coutden/next 3. 相同 4. 析構(gòu) 5. 無(wú)參構(gòu)造函數(shù) 6. 10 7. 初始化表 8. int& aa; 9. 不會(huì) 10. 2 11. 公有 保護(hù) 12Public 三、程序填充參考解答1. (1) int Stack

17、:Pop() (2) elemtop- (3) Pop()2. 答案:(1) a=new intMaxLen (b) return ai; (c) s+=r.GetValue(i)3. (1) Base:output() (2) Base(m1,m2) (3) mem3=m3四、程序運(yùn)行結(jié)果參考解答1. a: 6/15 b: 3/10 c: 7/10 d: 11/10 2. 5 6 9 20 五、指出程序或函數(shù)的功能1. 統(tǒng)計(jì)出以表頭指針為f的鏈表中結(jié)點(diǎn)的個(gè)數(shù)。2. 求出并返回字符指針參數(shù)s所指向的字符串長(zhǎng)度。六、程序改錯(cuò),請(qǐng)根據(jù)程序段或函數(shù)模塊的功能改寫(xiě)個(gè)別地方的錯(cuò)誤。1. 2 5 friend fract &operator+=(fract&,fract); fract &operator+=(fract &f1,fract f2); 七、編程:1. Strings:Strings(char*str) n=strlen(str);s=new charn+1;s

溫馨提示

  • 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)論