【正文】
A. 自己所屬類、對(duì)象成員所屬類、基類 B. 對(duì)象成員所屬類、基類、自己所屬類 C. 基類、對(duì)象成員所屬類、自己所屬類 D. 基類、自己所屬類、對(duì)象成員所屬類 18. 下列對(duì)派生類的描述中錯(cuò)誤的說(shuō)法是:( )。 A. 部分特性,并允許增加新的特性或重定義基類的特性 B. 部分特性,但不允許增加新的特性或重定義基類的特性 C. 所有特性,并允許增加新的特性或重定義基類的特性 D. 所有特性,但不允許增加新的特性或重定義基類的特性 16. 對(duì)于公有繼承,基類中的私有成員在派生類中將 ( )。 D. 運(yùn)算符函數(shù)有兩個(gè)參數(shù)。 C. 運(yùn)算符函數(shù)的第一個(gè)參數(shù)的類型是ostream amp。 。 14. 關(guān)于插入運(yùn)算符的重載,下列說(shuō)法不正確的是( )。, Valueamp。 D. Value amp。 C. Value amp。 A. Value operator+(Value, Value)。”,則此語(yǔ)句中肯定屬于重載操作符的是( )。 A. ++(1) B. operator++(a) C. operator++(a,1) D. ++() 12. 一個(gè)程序中數(shù)組a和變量k定義為“int a[5][10],k。 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. 可以是非靜態(tài)數(shù)據(jù)成員或靜態(tài)數(shù)據(jù)成員 B. 不可能是類的靜態(tài)數(shù)據(jù)成員 C. 只能是類的非靜態(tài)數(shù)據(jù)成員 D. 只能是類的靜態(tài)數(shù)據(jù)成員 8. 引入友元的主要目的是為了( )。 A. 函數(shù)體 B. 參數(shù)表 C. 初始化表 D. 初始化表或函數(shù)體 6. 一個(gè)類的靜態(tài)數(shù)據(jù)成員所表示屬性 ( )。”語(yǔ)句時(shí)共調(diào)用該類析構(gòu)函數(shù)的次數(shù)為( )?!闭Z(yǔ)句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為( )?!闭Z(yǔ)句時(shí)調(diào)用該類無(wú)參構(gòu)造函數(shù)的次數(shù)為( )?!闭Z(yǔ)句時(shí),將自動(dòng)調(diào)用該類的( )。 i++) a[i]=aa[i]。 for(int i=0。}2.Array::Array(int aa[], int nn) { n=nn。 else if(kn) return 1。amp。 else if(a[i][i]) return 1。 ik。 else k=n。1. 13 15 17 在函數(shù)體給常量c賦值 缺少分號(hào) 定義z多一個(gè)參數(shù)七、編程:1.int AA::CompareBig(AA b){ int k。,把str2所指字符串連接到str1所指字符串的后面,并返回str1指針?!睹嫦?qū)ο蟪绦蛟O(shè)計(jì)》形成性考核冊(cè)答案作業(yè)3一、選擇題:1. B 2. B 3. B 4. A 5. D 6. C 7. D 8. C 9. C 10. C 11. D 12. A 13. B 14. B 15. D 16. C 17. C 18. D 二、填空題:1. *p 2. int(*)[6]131. *(a[i]+j) 或*(*(a+i)+j)或*(a+i)[j] 3. x 4. ’a’ 5. delete p 6. ple 7. (*p).name 8. 6 9. 對(duì)象 10. 聚合 11. 多繼承(或多重繼承)12. 設(shè)計(jì)、 實(shí)現(xiàn) 13. private(或私有) 14. private 15. 冒號(hào)16. 不在 17. *this 18. 隊(duì)列長(zhǎng)度 19. (first+1)%MS 三、程序填充參考解答1. (1) intamp。 coutendl。 i++) couta[i]39。} //返回?cái)?shù)組長(zhǎng)度 void Print() { //輸出數(shù)組 for(int i=0。 aa)。 aa)。 //拷貝構(gòu)造函數(shù) Arrayamp。 //構(gòu)造函數(shù),利用aa數(shù)組長(zhǎng)度nn初始化n, //利用aa數(shù)組初始化a所指向的數(shù)組空間 Array(Arrayamp。 //指向動(dòng)態(tài)分配的整型數(shù)組空間 int n。 2. 根據(jù)下面類中構(gòu)造函數(shù)的原型和注釋寫出它的類外定義。 //比較*this與b的大小,從前向后按兩數(shù)組 //中的對(duì)應(yīng)元素比較,若*this中元素值大則返回1,若b中 //元素值大則返回1,若相等則繼續(xù)比較下一個(gè)元素,直到 //一個(gè)數(shù)組中無(wú)元素比較,此時(shí)若兩者的n值相同則返回0, //否則若*this中的n值大則返回1,若b中的n值大則返回1。 i++) a[i]=aa[i]。 for(int i=0。 n=nn。 exit(1)。 int MS。class AA { int* a。錯(cuò)誤原因分別為_____________________、______________________ 和_____________________。 //16行 B x=a,y(b),z(1,2,3),。 c=aabb。} //11行 B(int aa, int bb):d(aa+bb) { //12行 a=aa。 //8行 A d。 //5行 class B { //6行 int a,b。 class A { //1行 int a。 }六、程序改錯(cuò),請(qǐng)根據(jù)程序段或函數(shù)模塊的功能改寫個(gè)別地方的錯(cuò)誤。\039。 while(str2[j]) str1[i++]=str2[j++] 。 } 2. char* f8(char* str1, const char* str2) { int i=0,j=0。 else c3++。amp。i++) if(strlen(a[i])5) c1++。 for(int i=0。}五、指出程序或函數(shù)的功能 1. void f4(char a[M][N]) { int c1,c2,c3。 epSetValue(x+y,yz,20)。 (x,y,z)。 CE ex, *ep=amp。 return (dc? d:c)。 }。 c=x3。 void SetValue(int x1,int x2, int x3) { a=x1。 int getmax() {return (ab? a:b)。 coutendl。I) coutp[I]39。 for(I=2。I3。 char *p[3]。 coutendl。i4。 c[j]++。i++) { int j=0。 for(int i=0。 int b[4]={60,70,90,101}。 coutmendl。 int m=___(2)___。 AA x。 //依次輸出數(shù)組a中的前n個(gè)元素 //最后輸出一個(gè)換行}。 //采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素 //進(jìn)行從小到大排序 void InsertA()。 //用數(shù)組aa初始化數(shù)據(jù)成員a, //用nn初始化數(shù)據(jù)成員n int MaxA()。 int n。 ___(3)___。 in。int ____(1)_____ { int x=a[0]。 //依次輸出數(shù)組a中的前n個(gè)元素}。 //采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素 //進(jìn)行從小到大排序 void InsertA()。 //用數(shù)組aa初始化數(shù)據(jù)成員a, //用nn初始化數(shù)據(jù)成員n int MaxA()。 int n。} return ___(3)___。___(1)___ operator[](int n) //[ ]的運(yùn)算符成員函數(shù)定義{ if(n0 || ___(2)___) {cerr下標(biāo)越界!。 operator[](int n)。} int size(){ return s。 //數(shù)組大小 public: ARRAY(int a[], int n)。class ARRAY{ int *v。19. 在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,假定數(shù)組長(zhǎng)度為MS,隊(duì)首元素位置為first,隊(duì)列長(zhǎng)度為length,則刪除一個(gè)元素后隊(duì)首的位置為__________。 17. (y)表達(dá)式調(diào)用一個(gè)成員函數(shù),在成員函數(shù)中使用的________就代表了類外的x對(duì)象。 15. 若在類的定義體中只給出了一個(gè)成員函數(shù)的原型,則在類外給出完整定義時(shí),其函數(shù)名前必須加上類名和兩個(gè)________分隔符。 13. 類中的數(shù)據(jù)成員的訪問屬性通常被指明為________。 11. 如果一個(gè)派生類的基類不止一個(gè),則這種繼承稱為____________。 9. 以面向?qū)ο蠓椒?gòu)造的系統(tǒng),其基本單位是__________?!?,在執(zhí)行“x=++*pa。 7. 與結(jié)構(gòu)成員訪問表達(dá)式pname等價(jià)的表達(dá)式是____________?!钡妮敵鍪恰癮pple”,則執(zhí)行語(yǔ)句“couts+2。 5. 執(zhí)行________操作將釋放由p所指向的動(dòng)態(tài)分配的數(shù)據(jù)空間。 3. 若y是x的引用,則對(duì)y的操作就是對(duì)_______的操作。 A. 0 B. 1 C. 2 D. 任意個(gè)二、填空題1. 若p指向x,則________與x的表示是等價(jià)的。”( )。 A. 4和5 B. 5和4 C. 4和20 D. 20和5 17. 假定一個(gè)類的構(gòu)造函數(shù)為 “B(int ax, int bx): a(ax), b(bx) {}”,執(zhí)行 “B x(1,2),y(3,4)。}”,則執(zhí)行 “A x(4,5)。 A. 無(wú)參構(gòu)造函數(shù) B. 帶參構(gòu)造函數(shù) C. 賦值重載函數(shù) D. 拷貝構(gòu)造函數(shù) 16. 假定一個(gè)類的構(gòu)造函數(shù)為 “A(int aa, int bb) {a=aa。 A. 帶參構(gòu)造函數(shù) B. 無(wú)參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 賦值重載函數(shù) 15. 假定AB為一個(gè)類,則執(zhí)行 “AB r1=r2。 A. 建立 B. 撤消 C. 賦值 D. 引用 14. 假定AB為一個(gè)類,則執(zhí)行 “AB x。 A. elemHead B. elemTail C. elemHeadnext和elemHead D. elemTailnext和elemTail 12. 對(duì)于一個(gè)類的構(gòu)造函數(shù),其函數(shù)名與類名( )。 A. n B. n+1 C. n1 D. n2 10. 在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,假定數(shù)組長(zhǎng)度為MS,隊(duì)首元素位置為first,隊(duì)列長(zhǎng)度為length,則隊(duì)尾(即最后一個(gè))元素的位置為( )?!笔窃擃愔幸粋€(gè)成員函數(shù)的原型,若該函數(shù)返回this值,()調(diào)用該成員函數(shù)后,x的值( )。 A. .h B. .c C. .cpp D. .cp 7. 假定AA是一個(gè)類,abc是該類的一個(gè)成員函數(shù),則參數(shù)表中隱含的第一個(gè)參數(shù)的類型為( )。