復(fù)習(xí)試卷及答案_第1頁
復(fù)習(xí)試卷及答案_第2頁
復(fù)習(xí)試卷及答案_第3頁
復(fù)習(xí)試卷及答案_第4頁
復(fù)習(xí)試卷及答案_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、選擇題(每題2分,20題,共40分)1 下列關(guān)鍵字中,( )不是類定義中使用的關(guān)鍵字。A class B. public C. switch D. private2關(guān)于友元函數(shù)的描述中,錯誤的是( )。A友元函數(shù)說明在類體內(nèi)B友元函數(shù)不是成員函數(shù)C友元函數(shù)必須用對象來引用D友元函數(shù)可直接訪問類中私有成員3下列關(guān)于對象引用的描述中,錯誤的是( )。A對象引用不能作數(shù)組元素B對象引用可作為函數(shù)的參數(shù)和返回值C定義對象引用時需用同類對象的地址值進(jìn)行初始化 D對象引用成員表示與對象相同4下列函數(shù)參數(shù)默認(rèn)值定義錯誤的是() A. Fun(int x, int y=0) B. Fun(int x =

2、100) C. Fun(int x = 0, int y) D. Fun(int x = f( ) (假定函數(shù)f()已經(jīng)定義)class B: public A int k;public:void make()k=m;k=i*j; ;5若類A和類B的定義如下:class A int i,j;protected:int m;public:int geti()return i;則上述中, ( )是非法的表達(dá)式。 A. void make(); B. int k; C. k=m; D. k=i*j;6下面類的定義,有( )處錯誤.class MyClassint i=0;public:void My

3、Class();MyClass(int n);A. 1 B. 2 C. 3 D. 47下列是構(gòu)造函數(shù)的特點,( )是錯誤的。A.構(gòu)造函數(shù)是一種成員函數(shù),它具有一般成員函數(shù)的特點。B.構(gòu)造函數(shù)的名稱與其類名相同。C.構(gòu)造函數(shù)必須指明其類型。D.一個類中可以定義一個或多個構(gòu)造函數(shù)。8已知:p是一個指向類A數(shù)據(jù)成員m的指針,a是類A的一個對象。在給m賦值為5的下列表達(dá)式中,( )是正確的。A. a.p=5 B. a->p=5 C. a.*p=5 D. *a.p=59關(guān)于靜態(tài)成員的描述中,( )是錯誤的。A.靜態(tài)成員可分為靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)B.靜態(tài)數(shù)據(jù)成員定義后必須在類體內(nèi)進(jìn)行初始化C.

4、靜態(tài)數(shù)據(jù)成員初始化不使用其構(gòu)造函數(shù)D.靜態(tài)成員函數(shù)中不能直接引用非靜態(tài)成員10下列關(guān)于new運算符的描述中,錯誤的是( )。A. new運算符組成的表達(dá)式的值是地址值B. 創(chuàng)建對象時不調(diào)用構(gòu)造函數(shù)C.用它創(chuàng)建的對象須用delete來刪除D.可用它來創(chuàng)建動態(tài)的對象和對象數(shù)組 11下列對派生類的描述中,( )是錯誤的。A.一個派生類可以作為另一個派生類的基類。B.派生類至少應(yīng)有一個基類。C.基類中成員訪問權(quán)限繼承到派生類中都保持不變。D.派生類的成員除了自己定義的成員外,還包含了它的基類成員。12派生類的對象對它的哪一類基類成員是可以訪問的( ) A.公有繼承的基類的公有成員B.公有繼承的基類的保

5、護(hù)成員C.公有繼承的基類的私有成員D.保護(hù)繼承的基類的公有成員13關(guān)于基類和派生類的描述中,錯誤的是( )。A基類和派生類間是包含關(guān)系 B派生類中可以定義自己的成員 C基類成員在派生類中的訪問權(quán)限與繼承方式有關(guān)D派生類中繼承了基類中的全部成員14下列對運算符重載的描述中,正確的是( )。A. 運算符重載可以改變結(jié)合性 B.運算符重載可以改變優(yōu)先級C.運算符重載可以改變操作數(shù)的個數(shù) D.運算符重載不改變優(yōu)先級和結(jié)合性157.p具有指向CSample類的指針類型; 執(zhí)行語句 p = new CSample5 會使CSample類構(gòu)造函數(shù)執(zhí)行 ( )次.A. 0B. 1C. 5D. -116要讓一個

6、類中的所有對象具有共同的數(shù)據(jù),請使用()。A. 常數(shù)成員變量 B. 私有數(shù)據(jù)成員 C. 靜態(tài)數(shù)據(jù)成員 D. 以上都是17給定一個基類Person和一個派生類 Man,下面哪個代碼片段是不正確的。()A.Person pp; Man *mm=&pp;BMan aa; Person *bb=&aa;C. Man jj; Person &dd=jj;D. Person pp; Man aa; pp=aa;18在下列打開磁盤文件的訪問方式常量中,以讀方式打開文件時應(yīng)選用( )。A. in B. out C. ate D. app19下列關(guān)于抽象類的描述中,錯誤的是( )。A.抽

7、象類中至少有一個純虛函數(shù)B.抽象類不能定義對象C.抽象類可以定義對象引用D.抽象類的派生類一定不再是抽象類20控制輸出格式的控制符中,( )是設(shè)置輸出寬度的。A. ws B. ends C. setfill() D. setw()得分二、判斷題(每題1分,15題,共15分)1用class定義的類中,默認(rèn)的訪問權(quán)限是公有的。( )2如果一個類中沒有定義任何構(gòu)造函數(shù),則該類的對象便無法初始化。( )3在c+中,只能重載已有的運算符。( )4友元函數(shù)是成員函數(shù),它可以訪問類中私有成員。( )5對象數(shù)組的元素必須是同一個類的對象。( )6子對象的初始化可以不放在該類的構(gòu)造函數(shù)中。( )7運算符new可

8、以創(chuàng)建變量或?qū)ο螅?也可以創(chuàng)建數(shù)組。( )8基類中私有成員派生類不可直接訪問。( )9公有繼承方式下,基類中公有成員和保護(hù)成員在派生類中仍然是公有的和保護(hù)的。( )10私有繼承方式下,基類中公有成員和保護(hù)成員在派生類中都是私有的。( )11派生類的構(gòu)造函數(shù)中顯式或隱含的包含著直接基類的構(gòu)造函數(shù)。( )12派生類的對象不可以給基類對象賦值。( )13派生類的構(gòu)造函數(shù)中應(yīng)包含直接基類的構(gòu)造函數(shù)。( )14基類中的保護(hù)成員在其派生類中可以訪問,而派生類對象不可訪問。( )15、C+中使用const定義常量。( )得分三、填空題(每空1分,10空,共10分)1面向?qū)ο蟮某绦蛟O(shè)計區(qū)別于面向過程的程序設(shè)計

9、,最大的特點是引入了_和_的概念。2面向?qū)ο蟮娜筇匦裕篲、_、_。3C+中虛基類的引入,其真正目的是_。4C+中函數(shù)的重載有兩種,一種是_、一種是_。5在多繼承方式下,處于同一層次的各基類構(gòu)造函數(shù)的執(zhí)行順序取決于_。6this指針是一個隱含于每一個類的成員函數(shù)的特殊指針,該指針?biāo)赶虻膶ο笫莀;得分四、寫出程序運行結(jié)果(每題5分,4題,共20分)1#include <iostream.h>#include <string.h>class Apublic:A(int i=0) a=i+b; void Print(); A() cout<<"Dest

10、ructorn" private:int a;static int b; ;void A:Print() cout<<'('<<a<<','<<b<<')'<<endl; int A:b=5; void main()A array3; array0=A(1); array1=A(3);A *parr3; for(int i=0;i<3;i+) parri=&arrayi;for(i=0;i<3;i+) parri->Print();2#in

11、clude <iostream.h>class Studentpublic:Student(int i=0,double j=0) num=i;score=j; void print() cout<<num<<,<<score<<endl; friend void fun(Student &rs);private:int num;double score;void fun(Student &rs) rs.num=1100;rs.score=80;rs.print();void main() Student s1(100

12、2,50),s2; s1.print(); fun(s2);3 #include<iostream>using namespace std;class Afriend double count(A&);public:A(double t, double r):total(t),rate(r)private:double total;double rate;double count(A&a)a.total+=a.rate*a.total;return a.total;int main(void )A x(100,0.5),y(50,0.1);cout<<c

13、ount(x)<<','<<count(y)<<'n'cout<<count(x)<<'n'return 0;4#include <iostream >using namespace std;class BASEchar c; public: BASE(char n):c(n) virtual BASE()cout<<c<<endl;class DERIVED:public BASE char c; public:DERIVED(char n):BAS

14、E(n+1),c(n)DERIVED()cout<<c<<endl;int main(void) DERIVED('X'); return 0; 得分五、程序設(shè)計題(15分,第1題5分,第2題10分)1有兩個長方體,其長、寬、高分別為:(1)12,25,30;(2)15,30,20。分別求它們的體積。編寫一個程序,使用類來定義長方體,在類中使用帶參數(shù)的構(gòu)造函數(shù),并在主函數(shù)中,完成兩個長方體的實現(xiàn)。2編寫程序:定義抽象基類Shape,由它派生出五個派生類:Circle(圓形)、Square(正方形)、 Rectangle( 長方形)、Trapezoid (

15、梯形)和Triangle (三角形),用虛函數(shù)分別計算各種圖形的面積,并求出它們的和。要求用基類指針數(shù)組。使它的每一個元素指向一個派生類的對象。 注:主函數(shù)中定義如下對象Circle circle(12.6); Square square(3.5); Rectangle rectangle(4.5,8.4);Trapezoid trapezoid(2.0,4.5,3.2);Triangle triangle(4.5,8.4); 一、 選擇題(每題2分,20題,共40分)1-5 CCCCD 6-10CCCBB 11-15CADDC 16-20CABDD二、1-5FFTFT 6-10FTTTT 1

16、1-15TFTTT1、類 、對象2、封裝、繼承、多態(tài)3、解決多重繼承下的二義性問題4、函數(shù)參數(shù)個數(shù)不同、函數(shù)參數(shù)類型不同5、聲明基類的順序6、當(dāng)前正在操作類的成員的對象四、寫出程序運行結(jié)果(每題5分,4題,共20分)1、DestructorDestructor(6,5)(8,5)(5,5)DestructorDestructorDestructor2、1002,501100,803150,552254. X Y六、程序設(shè)計題(15分,第1題5分,第2題10分)1、#include <iostream>Using namespace std;class Box public:Box(

17、int,int,int);Int volume(); private:int height;int width;int length;Box:Box(int h,int w,int len) height=h; width=w; length=len;int Box:volume()return(height*width*length);int main()Box box1(12,25,30);cout<<”The volume of box1 is”<<box1.volume()<<endl;Box box2(15,30,21);cout<<”

18、The volume of box2 is”<<box2.volume()<<endl;Return0; 2、#include <iostream>using namespace std;class Shapepublic: virtual double area() const =0; ;class Circle:public Shapepublic:Circle(double r):radius(r) virtual double area() const return 3.14159*radius*radius; protected: double r

19、adius; ;class Square:public Shapepublic: Square(double s):side(s) virtual double area() const return side*side; protected: double side;class Rectangle:public Shapepublic: Rectangle(double w,double h):width(w),height(h) virtual double area() const return width*height; protected: double width,height;

20、;class Trapezoid:public Shapepublic: Trapezoid(double t,double b,double h):top(t),bottom(t),height(h) virtual double area() const return 0.5*(top+bottom)*height; protected: double top,bottom,height; ;class Triangle:public Shapepublic: Triangle(double w,double h):width(w),height(h) virtual double are

21、a() const return 0.5*width*height; protected: double width,height; ;int main() Circle circle(12.6); Square square(3.5); Rectangle rectangle(4.5,8.4); Trapezoid trapezoid(2.0,4.5,3.2); Triangle triangle(4.5,8.4); Shape *pt5=&circle,&square,&rectangle,&trapezoid,&triangle; double a

22、reas=0.0; for(int i=0;i<5;i+) areas=areas+pti->area(); cout<<"totol of all areas="<<areas<<endl; return 0;。一、填空題(每空一分,共15分,15%)1、面向?qū)ο蟪绦蛟O(shè)計的三大特性是:封裝性、_、_。用來定義C+類的關(guān)鍵字是_。2、要使用C+中的輸入輸出流函數(shù),在程序中必須包含的頭文件是_;要使用字符串處理函數(shù),需包含的頭文件是_。3、任何類中允許有三種類型的數(shù)據(jù):_、_、_;在默認(rèn)情況下,類的成員的操作屬性是_。4、一個類

23、有_個構(gòu)造函數(shù)。5、this指針是一個隱含于每一個類的成員函數(shù)的特殊指針,該指針?biāo)赶虻膶ο笫莀;6、C+中按照對象生存期的不同,把對象分為三種:_、_、_。7、C+中虛基類的引入,其真正目的是_。得分二、選擇題(每小題2分,共40分,40%)1、下列關(guān)于構(gòu)造函數(shù)和析構(gòu)函數(shù)的描述中,正確的是_。(A)構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能有參數(shù);(B)構(gòu)造函數(shù)和析構(gòu)函數(shù)都可以重載;(C)構(gòu)造函數(shù)和析構(gòu)函數(shù)都沒有類型;(D)構(gòu)造函數(shù)和析構(gòu)函數(shù)都可以繼承;2、下列關(guān)于C+中常量的描述中,正確的是_。(A)定義常量的關(guān)鍵字是static;(B)常成員函數(shù)可以更改常量的值;(C)常量定義時必須進(jìn)行初始化;(D)定義

24、一般常量時,常量關(guān)鍵字?jǐn)[放的位置無關(guān);3、下列關(guān)于函數(shù)重載的描述中,正確的是_。(A)函數(shù)名不同,也可進(jìn)行函數(shù)重載;(B)函數(shù)名相同,函數(shù)類型不同,也是函數(shù)重載;(C)函數(shù)名相同,函數(shù)類型相同,肯定不是函數(shù)重載;(D)函數(shù)名相同,函數(shù)類型相同,函數(shù)參數(shù)不同,是函數(shù)的重載;4、下述靜態(tài)成員的特性中,_是錯誤的。(A)說明靜態(tài)數(shù)據(jù)成員時前邊要加修飾符staic;(B)靜態(tài)數(shù)據(jù)成員要在類體外進(jìn)行初始化;(C)引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和域作用運算符;(D)靜態(tài)數(shù)據(jù)成員是屬于類的,因此它不能被對象所操作;5、char a=”student”; const char

25、*ptr=&a; ptr應(yīng)該是_。(A)指向字符常量的指針;(B)指向字符的常量指針;(C)指向字符串常量的指針;(D)指向字符串的常量指針;6、已知:print()函數(shù)時一個類的常成員函數(shù),并且無返回值,下列表示中,_是正確的。(A)void print() const;(B)const void print();(C)void const print();(D)void print(const);7、運算符>*的功能是_。(A)用來表示指向?qū)ο笾羔槍χ赶蝾惓蓡T指針的操作;(B)用來表示對象對指向類成員指針的操作;(C)用來表示指向?qū)ο笾羔槍︻惓蓡T的操作;(D)用來表示對象對類

26、成員的操作;8、下列對派生類的描述中,_是錯誤的。(A)一個派生類可以作為另一個派生類的基類;(B)派生類至少有一個基類;(C)派生類的成員除了它自己的成員外,還包含了它的基類的成員;(D)派生類中繼承的基類成員的訪問權(quán)限到派生類保持不變;9、派生類的構(gòu)造函數(shù)的成員初始值表中,不能包含_。(A)基類的構(gòu)造函數(shù);(B)派生類的子對象的初始化;(C)基類的子對象的初始化;(D)派生類中一般數(shù)據(jù)成員的初始化;10、下列表達(dá)式中,_是非法的。已知:int a=5;float b=5.5;(A)a%3+b;(B)b*b&&+a;(C)(a>b)+(int (b)%2);(D)+a+

27、b;11、在未對基類中的可繼承成員重新做屬性聲明時,派生類的對象對它的基類成員中_是可以訪問的。(A)公有繼承的公有成員;(B)公有繼承的私有成員;(C)公有繼承的保護(hù)成員;(D)私有繼承的公有成員;12、下列存儲類標(biāo)識符中,_的可見性與存在性不一致。(A)外部類 (B)自動類 (C)內(nèi)部靜態(tài)類(D)寄存器類13、在C+中,下列關(guān)于設(shè)置函數(shù)參數(shù)默認(rèn)值的描述中,正確的是_。(A)當(dāng)設(shè)置了參數(shù)的默認(rèn)值后,就不能用從主調(diào)函數(shù)傳來的數(shù)據(jù);(B)設(shè)置參數(shù)默認(rèn)值時,應(yīng)該是先設(shè)置左邊的,再設(shè)置右邊的;(C)設(shè)置參數(shù)默認(rèn)值時,應(yīng)該是先設(shè)置右邊的,再設(shè)置左邊的;(D)設(shè)置參數(shù)默認(rèn)值時,應(yīng)該全部參數(shù)都設(shè)置;14、

28、下列說法中不正確的是_。(E)公有繼承時基類中的public成員在派生類中仍是public的;(F)公有繼承時基類中的private成員在派生類中仍是private的;(G)私有繼承時基類中的public成員在派生類中是private的;(H)保護(hù)繼承時基類中的public成員在派生類中是protected的;15、以下說法中不正確的是_。(A)構(gòu)造函數(shù)和析構(gòu)函數(shù)不可以被繼承;(B)基類的友元關(guān)系不可以被繼承;(C)派生類中的友元可以訪問基類中的private成員;(D)當(dāng)派生類和基類中出現(xiàn)同名成員函數(shù)時,派生類覆蓋基類;16、關(guān)于多繼承二義性的描述中,_是錯誤的。(A)一個派生類的兩個基類中

29、都有某個同名成員,在派生類中對這個成員的訪問可能出現(xiàn)二義性;(B)解決二義性的最常用的方法是對成員名的限定法;(C)基類和派生類中同時出現(xiàn)的同名函數(shù),也存在訪問上的二義性;(D)一個派生類是從兩個基類中派生出來的,而這兩個基類又有一個共同的基類,對該基類成員進(jìn)行訪問時,也可能出現(xiàn)二義性;17、帶有虛基類的多層派生類構(gòu)造函數(shù)的成員初始化列表中都要列出虛基類的構(gòu)造函數(shù),這樣將對虛基類的子對象初始化_。(A)與虛基類下面的派生類個數(shù)有關(guān);(B)多次;(C)二次;(D)一次;18、作用域運算符的功能是_。(A)標(biāo)識作用域的級別;(B)指出作用域的范圍;(C)給定作用域的大??;(D)標(biāo)識某個成員是屬于哪

30、個類的;;19、對于派生類中的構(gòu)造函數(shù),在定義對象時構(gòu)造函數(shù)的執(zhí)行順序為_。(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ù)>成員對象的構(gòu)造函數(shù)>派生類構(gòu)造函數(shù);20、已知int a,b;下列增量和減量表達(dá)式正確的是_。(A)(a+)+;(B)a+b;(C)+(a+)+(+b);(D)a+b;得分三、程序改錯。如果程序有錯誤(可能有多處),請說明錯誤的理由,并改正;沒有不用改正,只需判斷;(每題2分,共10分,

31、10%)1、char *ptr=new char20;delete ptr;2、class A private:int x=2,y=6;3、聲明類Tdate的析構(gòu)函數(shù):void date(int ,int ,int);4、int a=8,b=9;int *const pa=&a;int const *pb=&b;*pa=b;*pb=a;5、class Apublic:A(int x,int y)X=x;Y=y;private:int X,Y;class B:public Apublic:B(int p,int q)P=p;Q=q;privare:int P,Q;得分四、寫出程序

32、的運行結(jié)果(每題3分,共6分)1、#include <iostream.h>int f(int a);void main()int a=2,i;for(i=0;i<3;i+)cout<<f(a)<<” “;static int c=3; int f(int a)int b=0;b+;c+;return(a+b+c);2、#include <iostream.h>class Apublic:A(int i,int j)a=i;b=j;void Move(int x,int y)a+=x;b+=y;void Show()cout<<

33、"("<<a<<","<<b<<")"<<endl;private:int a,b;class B:public Apublic:B(int i,int j,int k,int l):A(i,j),x(k),y(l)void Show()cout<<x<<","<<y<<endl;void fun()Move(3,5);void f1()A:Show();private:int x,y;void main()

34、A e(1,2);e.Show();B d(3,4,5,6);d.fun();d.A:Show();d.B:Show();d.f1();得分五、問答題(第一題4分,第二題4分,第三題6分,共14分,14%)1、從下面的描述中,體現(xiàn)出面向?qū)ο笾械氖裁锤拍睿浚?)“小兔兒過橋,蹦蹦跳;小鴨子過橋,搖啊搖;小螃蟹過橋,橫著爬;小袋鼠過橋,媽媽抱?!?。(2)“在某些情況下,石頭可以起到錘子的作用”。2、如果我們要編寫一個Tdate的日期類,在類中,我們要完成如下功能:(1)對任意設(shè)定的日期,能夠進(jìn)行日期的加減N天的操作;(0<N<31)(2)對任意設(shè)定的日期,能夠計算它等于星期幾;(設(shè)定1

35、900/1/1星期一為基準(zhǔn))為了達(dá)到以上的程序效果,思考(1)如何處理日期計算中的不同月份天數(shù)不同的問題(也就是你采用何種數(shù)據(jù)結(jié)構(gòu)來存儲數(shù)據(jù))?(2)對于功能二,要計算等于星期幾,你是如何思考的;函數(shù)的功能實現(xiàn)中著重要處理什么問題,你如何處理?3、閱讀以下程序,回答問題。#include <iostream.h>class Apublic:void f1();A()i1=10,j1=11;protected:int j1;private:int i1;class B:public Apublic:void f2();B()i2=20;j2=21;protected:int j2;p

36、rivate:int i2;class C:private Bpublic:void f3();C()i3=30;j3=31;protected:int j3;private:int i3;回答下列問題:(1)派生類B中的成員函數(shù)f2( ),能否訪問基類A中成員:f1( ),i1,j1;(2)派生類B的對象b能否發(fā)訪問基類A中的成員:f1( ),i1,j1;(3)派生類C中的成員函數(shù)f3( )能否訪問直接基類B中的成員:f2( )和j2;能否訪問間接基類A中的成員f1( ),j1,i1;(4)派生類C的對象c能否訪問直接基類B中的成員f2( )和j2;能否訪問間接基類A中的成員f1( ),j1

37、,i1;得分六、程序設(shè)計題(每題15分,共一題,共15分)1 分別定義Teacher(教師)類和Cadre(干部)類,采用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師干部)類。要求:(1) 在兩個基類中都包含姓名、年齡、性別、地址、電話數(shù)據(jù)成員;(2) 在Teacher類中還包含數(shù)據(jù)成員title(職稱),在Cadre類中還包含數(shù)據(jù)成員post(職務(wù)),在Teacher_Cadre類中還包含數(shù)據(jù)成員wages(工資)。(3) 對兩個基類中的姓名、年齡、性別、地址、電話等數(shù)據(jù)成員用相同的名字,在引用這些數(shù)據(jù)成員時,指定作用域。(4) 在類中聲明成員函數(shù),在類外定義成員函數(shù)。(

38、5) 在派生類Teacher_Cadre的成員函數(shù)show中調(diào)用Teacher類中的display函數(shù),輸出姓名、年齡、性別、地址、電話,然后用cout語句輸出織物與工資。一、填空題:(每空1分,15%) 1、繼承、多態(tài)、class; 2、iostream.h、string.h; 3、public、private、protected、private; 4、1個或多個 5、正在操作該成員函數(shù)的對象; 6、局部對象、靜態(tài)對象、全局對象 7、消除二義性、二、選擇題:(每題2分,40%) 1-5C(C,D) DDC 6-10AADCD 11-15ACCBC 16-20CDDDD三、程序改錯。如果程序有

39、錯誤,請說明錯誤的理由,并改正;沒有不用改正,只需判斷;(每題2分,共10分,10%)1、指針ptr指向的是字符型數(shù)組,所以使用delete撤銷new運算符開辟的空間時,應(yīng)在delete后使用;delete ptr; 2、在類的定義中,不能對類的數(shù)據(jù)成員賦予默認(rèn)值。int x ,y;3、析構(gòu)函數(shù)沒有返回值類型,所以不能用void,不能帶參數(shù)。 date( );4、pb是常指針,不能重新賦值。去除*pb=a;5、派生類的構(gòu)造函數(shù)要完成基類數(shù)據(jù)成員的初始化B(int x,int y,int p,int q) :X(x),Y(y)P=p;Q=q;四、寫出程序輸出結(jié)果(每題3分,共6分)1.

40、 7 8 92. (1,2)(6,9)5,6(6,9) 1、(1)多態(tài)性 (2)繼承性2、(1)定義數(shù)組來進(jìn)行每個月份的天數(shù)的存儲。 int month12=31,28,31,30,31,30,31,31,30,31,30,31; (2)可以設(shè)定一個基準(zhǔn)計算的日期,如2001年的1月1號為星期一,然后計算當(dāng)前時間與基準(zhǔn)日期之前的天數(shù),然后除以7,得余數(shù),就可以得到當(dāng)前時間是星期幾。需要處理的是,中間的閏年的2月份天數(shù)+1的問題。3、(1)派生類B中的成員函數(shù)f2,能訪問基類A中f1和j1,不能訪問i1; (2)派生類B的對象b,能訪問基類A中的f1,不能訪問 j1和 i1; (3)派生類C中的

41、成員函數(shù)f3能訪問直接基類B中的f2和j2;能訪問間接基類A中的f1和j1,不能訪問i1; (4)派生類C的對象c不能訪問直接基類B中的成員f2( )和j2;不能訪問間接基類A中的成員f1( ),j1,i1;六、程序設(shè)計題(第一題5分,第二題10分,共15分)#include <string>#include <iostream>using namespace std;class Teacherpublic:Teacher(string nam,int a,char s,string tit,string ad,string t);void display(); protected:string name;int age;char sex;string title;string addr;string tel;Teacher:Teacher(string nam,int a,char s,string tit,string ad,string t): name(name),age(a),sex(s),title(tit),addr(ad),tel(t)void Teacher:display()

溫馨提示

  • 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

提交評論