




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上習題一習題中紅色字體的題目是暫時沒有講到的,同學們可以暫時跳過。一、 填空題1、面向對象的程序設計有四大特點,它們是抽象、封裝、( )、( )。2、類中的成員使用特定的關鍵字指定不同的訪問特性,其中( )成員是提供給外部的接口,在類中和類外可見。3、protected成員的訪問權限:派生類( )訪問protected成員,派生類對象( )訪問protected成員,本類的對象( )訪問protected成員(填:能與不能)。4、C+語言中類成員的訪問權限包括private、( )和( )。5、對一個類中的數據成員的初始化可以通過構造函數中的( )實現,也可以通過構造函
2、數中的( )實現。6、假定AB為一個類,則執(zhí)行“AB a10;”語句時,系統(tǒng)自動調用該類的構造函數的次數為( )。7、假定用戶沒有給一個名為AB的類定義構造函數,則系統(tǒng)為其隱含定義的構造函數為( )。8、若類X中沒有定義拷貝構造函數,則系統(tǒng)為類X定義的默認拷貝構造函數的原型為( )。9、類中的成員只能為該類的成員函數及該類的派生類中的成員函數訪問,則應加上訪問屬性( )。10、假設一個類對象數組為am,其中m為常變量,當離開它的作用域時,系統(tǒng)自動調用該類析構函數的次數為( )。11、設p為指向一個動態(tài)對象的指針變量,則執(zhí)行delete p語句時,將自動調用該類的( )。12、在一個類中定義了全
3、部是默認參數的構造函數后,不能再定義( )構造函數。13、假設有一個Test類,則執(zhí)行“Test a(5),b2,*p;”語句時,自動調用該類構造函數的次數為( )。14、若將類A的成員函數“void fun();”定義為一個類B的友元函數,則應在類B的定義中加一條語句:( )。15、當一個對象作用域結束時,系統(tǒng)自動調用( )函數來釋放存儲空間。16、對于類中定義的成員,其默認訪問權限為( )。17、每個對象都有一個指向自身的指針,稱為( )指針,通過使用它來確定其自身的地址。18、一個類有( )個析構函數。19、在類內定義的( )數據不能被不屬于該類的成員函數存取。20、this指針是一個隱
4、含的指針,它隱含于每個類的( )中。二、 選擇題1、以下關于類和對象的敘述錯誤的是( )。A. 對象是類的一個實例B. 任何一個對象都歸屬于一個具體的類C. 一個類只能有一個對象D. 類與對象的關系和數據類型與變量的關系相似2、以下關于構造函數的敘述錯誤的是( )。A. 構造函數名必須與類名相同B. 構造函數在定義對象時自動執(zhí)行C. 構造函數無任何函數類型D. 在一個類中構造函數又且僅有一個3、以下關于析構函數的敘述錯誤的是( )。A. 一個類中只能定義一個析構函數B. 析構函數和構造函數一樣可以有形參C. 析構函數不允許有返回值D. 析構函數名前必須冠有符號“”4、以下敘述正確的是( )。A
5、. 在類中不作特別說明的數據成員均為私有類型B. 在類中不作特別說明的成員函數均為公有類型C. 類成員的定義必須放在類體內D. 類成員的定義必須是成員變量在前,成員函數在后5、以下敘述不正確的是( )。A. 一個類的所有對象都有各自的數據成員,它們共享成員函數B. 一個類中可以有多個同名的成員函數C. 一個類中可以有多個構造函數、多個析構函數D. 類成員的定義必須是成員變量在前,成員函數在后6、以下不屬于構造函數特征的是( )。A. 構造函數名與類名相同B. 構造函數可以重載C. 構造函數可以設置默認參數D. 構造函數必須指定函數類型7、下列函數中,是類MyClass的析構函數的是( )。A.
6、 Myclass();B. MyClass();C. MyClass();D. MyClass(int n);8、關于類和對象不正確的說法是( )。A. 類是一種類型,它封裝了數據和操作B. 對象是類的實例C. 一個類的對象只有一個D. 一個對象必屬于某個類9、在類定義的外部,可以被訪問的成員有( )。A. 所有類成員B. private或protected的類成員C. public的類成員D. public或private的類成員10、關于this指針的說法錯誤的是( )。A. this指針不能被顯示說明B. 當創(chuàng)建一個對象后,this指針就指向該對象C. 成員函數擁有this指針D. 靜態(tài)
7、成員函數擁有this指針11、下面有關new運算符的描述,錯誤的是( )。A. 使用new運算符創(chuàng)建對象時,會調用類的構造函數B. 使用new運算符創(chuàng)建數組時,必須定義初始值C. 使用new運算符創(chuàng)建的對象可以使用delete運算符刪除D. new運算符可以用來動態(tài)創(chuàng)建對象和對象數組12、下面關于成員函數的特征中,說法錯誤的是( )。A. 成員函數可以重載B. 成員函數可以是靜態(tài)的C. 成員函數一定是內聯函數D. 成員函數可以設置參數的默認值13、在通常情況下,復制構造函數的參數是( )。A. 某個對象的引用名B. 某個對象名C. 某個對象的成員名D. 某個對象指針名14、在類體外定義成員函數
8、時,需要在函數名前加上( )。A. 類對象B. 類標記C. 類名和作用域運算符D. 域運算符15、下面關于時間類Time定義的說法中,正確的是( )。Time time1,time30;Time *pTime;Time &time2=time1;A. time30是一個數組,它具有30個元素B. pTime就是指向Time類對象的指針C. time2是一個類對象引用,定義時必須對其進行初始化,使之成為對象time1的別名D. 以上答案都正確三、 判斷題1、任何一個對象只能屬于一個具體的類。2、構造函數可以有參數,但不可以有返回值。3、一個類可以有多個構造函數,也可以有多個析構函數。4、
9、對一個類中數據成員的初始化可以通過構造函數中的參數初始化表實現。5、使用new運算符動態(tài)創(chuàng)建對象數組時必須指定初始值。6、一個類的所有對象都有各自的數據成員,它們共享成員函數。7、一個類中可以有多個同名的成員函數。8、類成員的定義可以是數據成員在前,成員函數在后。9、類的靜態(tài)成員函數的初始化工作要放在類外進行。10、類與對象的關系和數據類型與變量的關系相似。四、 分析題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(銷售量)三個數據成員以及帶三個參數的(所有參數都具有默認值)構造函數、析構函數、設置信息的函數和顯示信息的函數。編寫相應程序對所定義的類進行測試。2、設計一個點類Point,要求給出一個點的坐標,可以寫出三維坐標形式(x,y,z)。實例化2個點對象,計算兩點之間的距離,并輸出顯示結果。3、聲明一個時鐘類,包含小時Hour、分鐘Minutes、秒Second等3個數據成員,有2個公有成員函數,分別是:時間設置函數SetTime(int NewH=0,int NewM=0,int NewS=
21、0)和時間顯示函數ShowTime()。在主函數mian()中。利用時間設置函數SetTime設置。時間,當調用時間顯示函數ShowTime()時就顯示設置的時間。4、編寫3個名為add的重載函數,分別實現兩個整數相加、兩個單精度數相加、兩個雙精度數相加。5、編寫程序,輸入5個學生的數學和語文成績,按總分從高到低排序。要求設計一個學生類Student實現該功能。習題答案一、 填空題1、繼承,多態(tài)2、公用3、能,不能,不能4、protected,public5、初始化表,函數體6、107、缺省的構造函數8、X:X(X &x);9、protected10、m11、析構函數12、重載13、3
22、14、friend void A:fun();15、析構16、private17、this18、119、private和protected20、非靜態(tài)成員函數二、 選擇題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、調用構造函數1.4 8調用構造函數2.4 820調用析構函數.調用析構函數.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<<"析構函數被調用!"<<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<<"請輸入坐標值:"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<<"現在的時間為:"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<<"請輸入兩個整型數:"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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 愛心捐助樹木活動方案
- 班級語文早讀活動方案
- 煤礦團委元旦活動方案
- 愛才助企活動方案
- 班級特色國學活動方案
- 班級繪本活動方案
- 烤肉咖啡活動方案
- 班活動賣東西活動方案
- 生態(tài)守護活動方案
- 物業(yè)端午推廣活動方案
- 2023年江蘇省環(huán)保集團有限公司校園招聘筆試題庫及答案解析
- 公司重組文書系列范本
- 屠宰場安全隱患排查和治理制度
- 全國《法律職業(yè)資格考試》試卷一預熱階段同步訓練卷(附答案)
- DB11-509-2017房屋建筑修繕工程定案和施工質量驗收規(guī)程
- 2022年丹東市元寶區(qū)社區(qū)工作者招聘筆試題庫及答案解析
- 藝術欣賞完整版課件全套ppt教程(最新)
- GB∕T 2518-2019 連續(xù)熱鍍鋅和鋅合金鍍層鋼板及鋼帶
- 教育培訓機構輔導老師月度績效考核表(KPI)
- (高清正版)JJF(浙)1162-2019空氣熱老化試驗設備校準規(guī)范
- 國家開放大學《中國古代文學(B)(1)》章節(jié)測試參考答案
評論
0/150
提交評論