




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
精品文檔姓名 學號 學院 專業(yè) 座位號 ( 密 封 線 內 不 答 題 )密封線線_ _ 誠信應考,考試作弊將帶來嚴重后果! 華南理工大學期末考試高級語言程序設計(2)試卷A注意事項:1. 考前請將密封線內各項信息填寫清楚; 2. 所有答案寫在答題紙上,答在其它地方無效; 3. 試卷可做草稿紙,試卷必須與答題紙同時提交;4考試形式:閉卷; 5. 本試卷共五大題,滿分100分,考試時間120分鐘。一.單項選擇題(每題2分,共20分).1在C+中,有關類和對象正確說法是( A )。.精品文檔A對象是類的一個實例 B對象是類的存儲空間C一個類只能有一個對象 D類是程序包,對象是存儲空間2在類定義中,稱為接口的成員是( C )。A. 所有類成員B. private或protected的類成員C. public的類成員D. public或private的類成員3. 一個類的友員函數(shù)能夠通過( D )訪問該類的所有成員。A靜態(tài)數(shù)據(jù) B析構造函數(shù) Cthis指針 D類對象參數(shù)4. 下面描述錯誤的是( B )。A自定義構造函數(shù)應該是公有成員函數(shù) B構造函數(shù)可以是虛函數(shù)C構造函數(shù)在建立對象時自動調用執(zhí)行 D構造函數(shù)可以重載5. 在類的繼承關系中,基類的( B )成員在派生類中可見。A. 所有B. public和protectedC. 只有publicD. 只有protected6設B類是A類的派生類,有說明語句 A a, *ap; B b, *bp; 則以下正確語句是( C )。A. a=b;B. b=a;C. ap=&b;D. bp=&a;7C+中,以下( D )語法形式不屬于運行時的多態(tài)。A. 根據(jù)if語句的求值決定程序流程 B. 根據(jù)基類指針指向對象調用成員函數(shù)C. 根據(jù)switch語句的求值決定程序流程 D. 根據(jù)參數(shù)個數(shù)、類型調用重載函數(shù)8. 假設對A類定義一個重載“+”號運算符的成員函數(shù),以便實現(xiàn)兩個A類對象的加法,并返回相加結果,則該成員函數(shù)的函數(shù)原型為( B )。AA operator +( const A &A1, const A &A2 ); BA A: operator +( const A &A2 );CA:operator +( A &A2 ); DA A:operator +( );9. 一個類模板定義了靜態(tài)數(shù)據(jù)成員,則( A )。A每一個實例化的模板類都有一個自己的靜態(tài)數(shù)據(jù)成員。B每一個實例化的對象都有一個自己的靜態(tài)數(shù)據(jù)成員。C它的類型必須是類模板定義的抽象類型。D所有模板類的對象公享一個靜態(tài)數(shù)據(jù)成員。10讀一個C+數(shù)據(jù)文件,要創(chuàng)建一個( A )流對象。AifstreamBofstreamCcin Dcout二簡答題(每小題4分,共20分)1有右圖所示類格。類X中有數(shù)據(jù)成員int a。根據(jù)以下函數(shù)注釋的編譯信息,分析int X:a的訪問特性,class Y對class X和class Z對class Y的繼承性質。class Xclass Yclass Z void Y:funY() coutaendl; /正確void Z:funX() coutaendl; /錯誤void main() X x; Y y; Z z; coutx.aendl;/正確 couty.aendl;/錯誤 coutz.aendl;/錯誤int X:a是class X的public數(shù)據(jù)成員,class Y為protected繼承class X,class Z為private繼承class Y。2有人定義一個教師類派生一個學生類。他認為“姓名”和“性別”是教師、學生共有的屬性,聲明為public,“職稱”和“工資”是教師特有的,聲明為private。在學生類中定義特有的屬性“班級”和“成績”。所以有class teacher public:char name20; char sex; private:char title20; double salary;class student : public teacher private: char grade20 ; int score;你認為這樣定義合適嗎?請做出你認為合理的類結構定義。class person public:char name20; char sex;class teacher : public person private:char title20; double salary;class student : public person private: char grade20 ; int score;3有類定義class Test int a,b; public:Test ( int m, int n ) a=m; b=n; void Set( int m, int n ) a=m; b=n; /;有人認為“Test和Set函數(shù)的功能一樣,只要定義其中一個就夠了”。這種說法正確嗎?為什么?帶參數(shù)的構造函數(shù)用于建立對象數(shù)據(jù)初始化,成員函數(shù)用于程序運行時修改數(shù)據(jù)成員的值。4若有聲明template class Tclass /*/ ;建立一個Tclass對象用以下語句Tclass Tobj;有錯誤嗎?若出錯,請分析原因,并寫出一個正確的說明語句。沒有實例化類屬參數(shù)。Tclass Tobj;5C+的文本文件可以用binary方式打開嗎?若有以下語句fstream of(d:testfile, ios:out|ios:binary);double PI=3.1415;請寫出把PI的值寫入文件d:testfile末尾的語句。可以。of.seekp(0,ios:end);of.write(char*)&PI, sizeof(double);三.閱讀下列程序,寫出執(zhí)行結果(每題6分,共24分) 1.#include /運算符重載enum BoolConst False=0 , True=1 ;/定義枚舉類型class Boolean public:Boolean(BoolConst x = False) logic = x; void print() const logic? cout TRUE : cout FALSE ; friend Boolean operator +(const Boolean & obj1, const Boolean & obj2);friend Boolean operator *(const Boolean & obj1, const Boolean & obj2); protected: BoolConst logic;Boolean operator+ ( const Boolean & obj1, const Boolean & obj2 ) return (obj1.logic|obj2.logic)?Boolean(True):Boolean(False); Boolean operator* ( const Boolean & obj1, const Boolean & obj2 ) return (obj1.logic & obj2.logic) ? Boolean(True) : Boolean(False); void main() Boolean a(False), b(True), c, d ; c = a * b; d = a + b; a.print(); b.print(); c.print(); d.print(); coutendl; FALSE TRUE FALSE TRUE 2.#include /模板,靜態(tài)數(shù)據(jù)成員template class List public: List(T x=0) data = x; void append(List *node ) node-next=this; next=NULL; total+; List *getnext() return next; T getdata() return data; static int total; private: T data; List *next;template int List:total=0;void main() int i, n=5; List headnode; List *p, *last; last = &headnode; for( i=1; i=n; i+ ) p = new List(i*2); p-append( last ); last = p; p = headnode.getnext(); while( p ) cout getdata() getnext(); coutendl; couttotal=List:totalendl;24 6 8 10Total=53.#include /類成員#includeclass Point public: Point(int x1=0, int y1=0) x = x1; y = y1; coutPoint構造函數(shù)n; int GetX() return x; int GetY() return y; private: int x;int y;class Distance public: Distance(Point xp1, Point xp2); double GetDis() return dist; private: Point p1; Point p2; double dist;Distance:Distance(Point xp1, Point xp2): p1(xp1), p2(xp2) coutDistance構造函數(shù)n; double x = double(p1.GetX() - p2.GetX(); double y = double(p1.GetY() - p2.GetY(); dist = sqrt(x * x + y * y);void main() Point myp1(0,0), myp2(0,20); Distance mydist(myp1,myp2); coutThe distance is mydist.GetDis()endl;Point構造函數(shù)Point構造函數(shù) Distance構造函數(shù) The distance is 204. 寫出data.txt中的結果和屏幕顯示的結果。#include void main() int a=10; double x=50.5; char str10, fname20 = d:data.txt; fstream iofile(fname,ios:out); if(!iofile) return; iofileData:ta+10 xstrax; coutstring=strna=a, x= xendl;? Data.txt Data:20 50.5輸出string= Data:a=20, x=50.5四. 根據(jù)程序輸出填空。(每空2分,共24分)1./成員和友員#includeclass Time public: Time(int h, int m) hours=h; minutes=m; _(1)_ Time12();void _(2)_ Time24(Time time);friend void private: int hours, minutes;_(3)_ Time12()void Time:if(hours12) couthours-12:minutesPMn ; else couthours:minutesAMn ;void Time24(Time time) cout _(4)_ ; time.hours:time.minutesn void main()Time T1(20,30), T2(10,45); T1.Time12(); Time24(T1); T2.Time12(); Time24(T2);程序輸出:8:30PM20:3010:45AM10:452. /虛繼承#includeclass A public: A(const char *s)coutst; A();class B: (5) A virtual public public: B(const char *s1, const char *s2):A(s1)couts2t;class C: (6) virtual public A public: C(const char *s1, const char *s2):A(s1) couts2t;class D:public B, public C public: D(const char *s1,const char *s2,const char *s3,const char *s4) : (7) A(s1),B(s1,s2),C(s1,s3) couts4t;void main() D *ptr=new D(class A,class B,class C,class D); delete ptr;程序輸出:class Aclass Bclass Cclass D3. #include /繼承#includeclass studentID public:studentID _(8)_/(int d=0)構造函數(shù)的默認參數(shù) value=d; coutvaluet; ; protected: int value; ;class student : public studentID public: student _(9)_ (char *pname=no name,int ssID=0):studentID(ssID) strncpy(name, pname, sizeof(name); namesizeof(name)-1=0; coutnamen; ; protected: char name20;void main() student s1(Ranry,9818) , s2(Jenny), s3; 程序輸出:9818Ranry0Jenny0 no name4. /多態(tài)#include class p_class int num ; public : void set_num( int val ) num=val; void show_num( ) ;void p_class : show_num( ) coutnum t;void main() p_class ob3, *p ; for( int i=0; ishow_num( ); p=ob (11) ; p-show_num( ); p=ob+2 (12) ; p-show_num( ); p=ob+1程序輸出:15 45 30五、完成程序。(第1小題4分,第2小題8分,共12分)1根據(jù)程序輸出,以最小形式補充A類和B類的成員函數(shù)。#include class A public : /A類的成員函數(shù)virtual A()coutA_object destroyed.n;class B : publ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年醫(yī)院信息化建設新趨勢:電子病歷系統(tǒng)醫(yī)療信息化技術創(chuàng)新報告001
- 2025年醫(yī)院電子病歷系統(tǒng)優(yōu)化與醫(yī)療信息化產業(yè)生態(tài)協(xié)同創(chuàng)新模式實踐報告001
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式下的合同管理與合規(guī)性報告
- 2025年工業(yè)互聯(lián)網平臺量子通信技術在智能物流領域的應用研究報告
- 2025年工業(yè)互聯(lián)網平臺區(qū)塊鏈智能合約安全防護技術與風險評估報告
- 2025年財富管理行業(yè)客戶需求研究與服務升級策略報告
- 2025年儲能電池熱管理系統(tǒng)在智慧農業(yè)領域的應用前景報告
- 生態(tài)旅游區(qū)可持續(xù)發(fā)展規(guī)劃與管理中的生態(tài)旅游與旅游者體驗提升報告
- 安全基礎知識試題及答案
- 2025年文化旅游演藝項目文化旅游產業(yè)融合發(fā)展案例研究報告
- 人教版(2024)八年級下冊物理期末復習:知識點清單+重難點考點 學案
- 2025年高考江蘇卷物理高考真題+解析(參考版)
- 四川省眉山市東坡區(qū)2023-2024學年高二下學期6月期末聯(lián)合考試數(shù)學試題(解析版)
- 2025新高考英語Ⅱ卷真題聽力原文
- 小學數(shù)學一年級下冊《思維能力》訓練題(共6組-附答案)
- 廣東省東莞市2025屆九年級下學期中考三模英語試卷(含答案)
- 浙江省寧波市鄞州區(qū)2025年八年級下學期期末數(shù)學試題及參考答案
- 蘭花種植項目可行性研究報告(專業(yè)完整版)
- 學校固定資產管理培訓
- 2025年河北省第二屆職業(yè)技能大賽(智能硬件裝調賽項)考試復習題庫(含答案)
- 法治素養(yǎng)考試試題及答案
評論
0/150
提交評論