習(xí)題一(帶答案)_第1頁
習(xí)題一(帶答案)_第2頁
習(xí)題一(帶答案)_第3頁
習(xí)題一(帶答案)_第4頁
習(xí)題一(帶答案)_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上習(xí)題一習(xí)題中紅色字體的題目是暫時沒有講到的,同學(xué)們可以暫時跳過。一、 填空題1、面向?qū)ο蟮某绦蛟O(shè)計有四大特點,它們是抽象、封裝、( )、( )。2、類中的成員使用特定的關(guān)鍵字指定不同的訪問特性,其中( )成員是提供給外部的接口,在類中和類外可見。3、protected成員的訪問權(quán)限:派生類( )訪問protected成員,派生類對象( )訪問protected成員,本類的對象( )訪問protected成員(填:能與不能)。4、C+語言中類成員的訪問權(quán)限包括private、( )和( )。5、對一個類中的數(shù)據(jù)成員的初始化可以通過構(gòu)造函數(shù)中的( )實現(xiàn),也可以通過構(gòu)造函

2、數(shù)中的( )實現(xiàn)。6、假定AB為一個類,則執(zhí)行“AB a10;”語句時,系統(tǒng)自動調(diào)用該類的構(gòu)造函數(shù)的次數(shù)為( )。7、假定用戶沒有給一個名為AB的類定義構(gòu)造函數(shù),則系統(tǒng)為其隱含定義的構(gòu)造函數(shù)為( )。8、若類X中沒有定義拷貝構(gòu)造函數(shù),則系統(tǒng)為類X定義的默認(rèn)拷貝構(gòu)造函數(shù)的原型為( )。9、類中的成員只能為該類的成員函數(shù)及該類的派生類中的成員函數(shù)訪問,則應(yīng)加上訪問屬性( )。10、假設(shè)一個類對象數(shù)組為am,其中m為常變量,當(dāng)離開它的作用域時,系統(tǒng)自動調(diào)用該類析構(gòu)函數(shù)的次數(shù)為( )。11、設(shè)p為指向一個動態(tài)對象的指針變量,則執(zhí)行delete p語句時,將自動調(diào)用該類的( )。12、在一個類中定義了全

3、部是默認(rèn)參數(shù)的構(gòu)造函數(shù)后,不能再定義( )構(gòu)造函數(shù)。13、假設(shè)有一個Test類,則執(zhí)行“Test a(5),b2,*p;”語句時,自動調(diào)用該類構(gòu)造函數(shù)的次數(shù)為( )。14、若將類A的成員函數(shù)“void fun();”定義為一個類B的友元函數(shù),則應(yīng)在類B的定義中加一條語句:( )。15、當(dāng)一個對象作用域結(jié)束時,系統(tǒng)自動調(diào)用( )函數(shù)來釋放存儲空間。16、對于類中定義的成員,其默認(rèn)訪問權(quán)限為( )。17、每個對象都有一個指向自身的指針,稱為( )指針,通過使用它來確定其自身的地址。18、一個類有( )個析構(gòu)函數(shù)。19、在類內(nèi)定義的( )數(shù)據(jù)不能被不屬于該類的成員函數(shù)存取。20、this指針是一個隱

4、含的指針,它隱含于每個類的( )中。二、 選擇題1、以下關(guān)于類和對象的敘述錯誤的是( )。A. 對象是類的一個實例B. 任何一個對象都?xì)w屬于一個具體的類C. 一個類只能有一個對象D. 類與對象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似2、以下關(guān)于構(gòu)造函數(shù)的敘述錯誤的是( )。A. 構(gòu)造函數(shù)名必須與類名相同B. 構(gòu)造函數(shù)在定義對象時自動執(zhí)行C. 構(gòu)造函數(shù)無任何函數(shù)類型D. 在一個類中構(gòu)造函數(shù)又且僅有一個3、以下關(guān)于析構(gòu)函數(shù)的敘述錯誤的是( )。A. 一個類中只能定義一個析構(gòu)函數(shù)B. 析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參C. 析構(gòu)函數(shù)不允許有返回值D. 析構(gòu)函數(shù)名前必須冠有符號“”4、以下敘述正確的是( )。A

5、. 在類中不作特別說明的數(shù)據(jù)成員均為私有類型B. 在類中不作特別說明的成員函數(shù)均為公有類型C. 類成員的定義必須放在類體內(nèi)D. 類成員的定義必須是成員變量在前,成員函數(shù)在后5、以下敘述不正確的是( )。A. 一個類的所有對象都有各自的數(shù)據(jù)成員,它們共享成員函數(shù)B. 一個類中可以有多個同名的成員函數(shù)C. 一個類中可以有多個構(gòu)造函數(shù)、多個析構(gòu)函數(shù)D. 類成員的定義必須是成員變量在前,成員函數(shù)在后6、以下不屬于構(gòu)造函數(shù)特征的是( )。A. 構(gòu)造函數(shù)名與類名相同B. 構(gòu)造函數(shù)可以重載C. 構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)D. 構(gòu)造函數(shù)必須指定函數(shù)類型7、下列函數(shù)中,是類MyClass的析構(gòu)函數(shù)的是( )。A.

6、 Myclass();B. MyClass();C. MyClass();D. MyClass(int n);8、關(guān)于類和對象不正確的說法是( )。A. 類是一種類型,它封裝了數(shù)據(jù)和操作B. 對象是類的實例C. 一個類的對象只有一個D. 一個對象必屬于某個類9、在類定義的外部,可以被訪問的成員有( )。A. 所有類成員B. private或protected的類成員C. public的類成員D. public或private的類成員10、關(guān)于this指針的說法錯誤的是( )。A. this指針不能被顯示說明B. 當(dāng)創(chuàng)建一個對象后,this指針就指向該對象C. 成員函數(shù)擁有this指針D. 靜態(tài)

7、成員函數(shù)擁有this指針11、下面有關(guān)new運(yùn)算符的描述,錯誤的是( )。A. 使用new運(yùn)算符創(chuàng)建對象時,會調(diào)用類的構(gòu)造函數(shù)B. 使用new運(yùn)算符創(chuàng)建數(shù)組時,必須定義初始值C. 使用new運(yùn)算符創(chuàng)建的對象可以使用delete運(yùn)算符刪除D. new運(yùn)算符可以用來動態(tài)創(chuàng)建對象和對象數(shù)組12、下面關(guān)于成員函數(shù)的特征中,說法錯誤的是( )。A. 成員函數(shù)可以重載B. 成員函數(shù)可以是靜態(tài)的C. 成員函數(shù)一定是內(nèi)聯(lián)函數(shù)D. 成員函數(shù)可以設(shè)置參數(shù)的默認(rèn)值13、在通常情況下,復(fù)制構(gòu)造函數(shù)的參數(shù)是( )。A. 某個對象的引用名B. 某個對象名C. 某個對象的成員名D. 某個對象指針名14、在類體外定義成員函數(shù)

8、時,需要在函數(shù)名前加上( )。A. 類對象B. 類標(biāo)記C. 類名和作用域運(yùn)算符D. 域運(yùn)算符15、下面關(guān)于時間類Time定義的說法中,正確的是( )。Time time1,time30;Time *pTime;Time &time2=time1;A. time30是一個數(shù)組,它具有30個元素B. pTime就是指向Time類對象的指針C. time2是一個類對象引用,定義時必須對其進(jìn)行初始化,使之成為對象time1的別名D. 以上答案都正確三、 判斷題1、任何一個對象只能屬于一個具體的類。2、構(gòu)造函數(shù)可以有參數(shù),但不可以有返回值。3、一個類可以有多個構(gòu)造函數(shù),也可以有多個析構(gòu)函數(shù)。4、

9、對一個類中數(shù)據(jù)成員的初始化可以通過構(gòu)造函數(shù)中的參數(shù)初始化表實現(xiàn)。5、使用new運(yùn)算符動態(tài)創(chuàng)建對象數(shù)組時必須指定初始值。6、一個類的所有對象都有各自的數(shù)據(jù)成員,它們共享成員函數(shù)。7、一個類中可以有多個同名的成員函數(shù)。8、類成員的定義可以是數(shù)據(jù)成員在前,成員函數(shù)在后。9、類的靜態(tài)成員函數(shù)的初始化工作要放在類外進(jìn)行。10、類與對象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似。四、 分析題1、#include <iostream.h>class Datepublic:void set(int y, int m, int d);void print();private:int year, month,

10、day;void Date:set(int y, int m, int d)year = y;month = m;day = d;void Date:print()cout<<year<<"."<<month<<"."<<day<<endl;void main()Date t1;t1.set(2005,3,3);t1.print();2、#include <iostream.h>class Datepublic:Date ();Date (int y, int m, in

11、t d);void print();private:int year, month, day;Date: Date ():year(2005),month(3),day(15)Date: Date (int y, int m, int d):year(y),month(m),day(d)void Date:print()cout<<year<<"."<<month<<"."<<day<<endl;void main()Date t1,t2(2005,3,18) ;t1.print()

12、;t2.print();3、# include<iostream.h> class Apublic: int f1(); int f2(); void setx(int m) x=m; cout<<x<<endl; void sety(int n ) y= n; cout<<y<<endl; int getx() return x; int gety() return y; private: int x, y; ; int A:f1() return x+y; int A:f2() return x-y; void main() A

13、a;a.setx(10); a.sety(5); cout<<a.getx()<<t<<gety()<<endl; cout<<a.f1()<<t<<a.f2()<<endl;4、# include<iostream.h> class T public: T(int x, int y) a=x; b=y; cout<<”diao yong gou zao han shu 1.”<<endl; cout<<a<<t<<b<&

14、lt;endl; T(T &d) cout<<”diao yong gou zao han shu 2.”<<endl; cout<< d.a<<t<<d.b<<endl; T() cout<<”diao yong xi gou han shu.”<<endl; int add(int x,int y=10) return x+y; private: int a,b; ; void main() T d1(4,8); T d2(d1); cout<<d2.add(10)<&

15、lt;endl; 5、#include<iostream.h>class Aint a;double b;public:A(int x=100,double y=1.2)a=x;b=y;void show(char *pt)cout<<pt<<":"<<endl;cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;void main()A obj1,obj2(100,3.5);obj1.s

16、how("obj1");obj2.show("obj2");A *p;p=&obj1;p->show("p->obj1");(*p).show("(*p)obj1");p=&obj2;p->show("p->obj2"); (*p).show("(*p)obj2");p=new A;p->show("p->new");delete p;6、#include<iostream.h>class K

17、public:int x;K (int i)x=i;void fun1(int j)x+=j;cout<<"fun1:"<<x<<endl;void fun2(int j)x+=j;cout<<"fun2:"<<x<<endl;void main()K c1(3),c2(6);void(K:*pfun)(int)=K:fun1;(c1.*pfun)(6);pfun=K:fun2;(c2.*pfun)(12);7、#include<iostream>using namesp

18、ace std;class TIME;class DATEpublic:DATE(int a=2004,int m=9,int b=23)year=a;month=m;day=b;void DateTime(TIME &t);private:int year,month,day;class TIMEpublic:TIME(int h=0,int m=0,int s=0)hour=h;minute=m;second=s;friend void DATE:DateTime(TIME&t);private:int hour,minute,second;void DATE:DateTi

19、me(TIME&t)cout<<"Now is"<<year<<'.'<<month<<'.'<<day<<t.hour<<':'<<t.minute<<':'<<t.second<<'.'<<endl;int main()DATE b(2004,9,23); TIME t(10,20,50); b.DateTime(t); retu

20、rn 0;五、 編程題1、定義一個圖書類Book,類中包括name(書名)、author(作者)和sale(銷售量)三個數(shù)據(jù)成員以及帶三個參數(shù)的(所有參數(shù)都具有默認(rèn)值)構(gòu)造函數(shù)、析構(gòu)函數(shù)、設(shè)置信息的函數(shù)和顯示信息的函數(shù)。編寫相應(yīng)程序?qū)λx的類進(jìn)行測試。2、設(shè)計一個點類Point,要求給出一個點的坐標(biāo),可以寫出三維坐標(biāo)形式(x,y,z)。實例化2個點對象,計算兩點之間的距離,并輸出顯示結(jié)果。3、聲明一個時鐘類,包含小時Hour、分鐘Minutes、秒Second等3個數(shù)據(jù)成員,有2個公有成員函數(shù),分別是:時間設(shè)置函數(shù)SetTime(int NewH=0,int NewM=0,int NewS=

21、0)和時間顯示函數(shù)ShowTime()。在主函數(shù)mian()中。利用時間設(shè)置函數(shù)SetTime設(shè)置。時間,當(dāng)調(diào)用時間顯示函數(shù)ShowTime()時就顯示設(shè)置的時間。4、編寫3個名為add的重載函數(shù),分別實現(xiàn)兩個整數(shù)相加、兩個單精度數(shù)相加、兩個雙精度數(shù)相加。5、編寫程序,輸入5個學(xué)生的數(shù)學(xué)和語文成績,按總分從高到低排序。要求設(shè)計一個學(xué)生類Student實現(xiàn)該功能。習(xí)題答案一、 填空題1、繼承,多態(tài)2、公用3、能,不能,不能4、protected,public5、初始化表,函數(shù)體6、107、缺省的構(gòu)造函數(shù)8、X:X(X &x);9、protected10、m11、析構(gòu)函數(shù)12、重載13、3

22、14、friend void A:fun();15、析構(gòu)16、private17、this18、119、private和protected20、非靜態(tài)成員函數(shù)二、 選擇題1、C2、C3、B4、A5、C6、D7、C8、C9、C10、D11、B12、C13、A14、C15、D三、 判斷題1、2、3、×4、5、×6、7、8、9、×10、四、 分析題1、2005.3.32、2005.3.152005.3.183、10510 515 54、調(diào)用構(gòu)造函數(shù)1.4 8調(diào)用構(gòu)造函數(shù)2.4 820調(diào)用析構(gòu)函數(shù).調(diào)用析構(gòu)函數(shù).5、obj1:a=100b=1.2obj2:a=100b=3

23、.5p->obj1:a=100b=1.2(*p)obj1:a=100b=1.2p->obj2:a=100b=3.5(*p)obj2:a=100b=3.5p->new:a=100b=1.26、fun1:9fun2:187、Now is2004.9.2310:20:50.五、 編程題1、#include <iostream.h>#include <string.h>class Bookprivate:char name20;char author20;float sale;public:Book(char n="C+",char au=

24、"Li",float s=0)strcpy(name,n);strcpy(author,au);sale=s;Book()cout<<"析構(gòu)函數(shù)被調(diào)用!"<<endl;void setBook(char n,char au,float s)strcpy(name,n);strcpy(author,au);sale=s;void showBook()cout<<"name:"<<name<<endl;cout<<"author:"<<

25、author<<endl;cout<<"sale:"<<sale<<endl;void main()Book b;b.showBook();b.setBook("datastructure","YanWeiMin",29);b.showBook();2、#include <iostream.h>#include <math.h>class pointpublic:void set();void getline(point);private:float x,y,z;

26、void point:set()cout<<"請輸入坐標(biāo)值:"cin>>x>>y>>z;void point:getline(point p2)double l;l=sqrt(x-p2.x)*(x-p2.x)+(y-p2.y)*(y-p2.y)+(z-p2.z)*(z-p2.z);cout<<"這兩點的距離為"<<l<<endl;int main()point p1,p2;p1.set();p2.set(); p1.getline(p2);return 0;3、#incl

27、ude <iostream>using namespace std;class clockpublic:void settime(int newh=0,int newm=0,int news=0);void showtime();private:int hour,minute,second;void clock:settime(int newh,int newm,int news)hour=newh;minute=newm;second=news;void clock:showtime()cout<<"現(xiàn)在的時間為:"cout<<hour

28、<<"-"<<minute<<"-"<<second<<endl;int main()clock t1,t2,t3,t4;t1.settime(12,34,12);t1.showtime();t2.settime(12,34);t2.showtime();t3.settime(12);t3.showtime();t4.settime();t4.showtime();return 0;4、#include <iostream>using namespace std;class ADDp

29、ublic:int add(int xx,int yy);float add(float xx,float yy); double add(double xx,double yy);void print(int z);void print(float z);void print(double z);private:int x1,y1,z1;float x2,y2,z2;double x3,y3,z3;int ADD:add(int xx,int yy)x1=xx;y1=yy; z1=x1+y1;return z1;float ADD:add(float xx,float yy)x2=xx;y2

30、=yy; z2=x2+y2;return z2;double ADD:add(double xx,double yy)x3=xx;y3=yy; z3=x3+y3;return z3;void ADD: print(int z)cout<< x1<<'t'<< y1<<'t'<< z<<endl;void ADD: print(float z)cout<< x2<<'t'<< y2<<'t'<< z&l

31、t;<endl;void ADD: print(double z)cout<< x3<<'t'<< y3<<'t'<< z<<endl;int main()int m1; float m2; double m3;ADD a1,a2,a3;cout<<"請輸入兩個整型數(shù):"int d1,d2;cin>>d1>>d2;m1=a1.add(d1,d2);cout<<"x y z"<<endl;a1.print(m1);c

溫馨提示

  • 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

提交評論