C++期末考試試卷及答案

上傳人:飛*** 文檔編號:52471845 上傳時間:2022-02-08 格式:DOCX 頁數(shù):16 大?。?9.04KB
收藏 版權(quán)申訴 舉報 下載
C++期末考試試卷及答案_第1頁
第1頁 / 共16頁
C++期末考試試卷及答案_第2頁
第2頁 / 共16頁
C++期末考試試卷及答案_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

12 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C++期末考試試卷及答案》由會員分享,可在線閱讀,更多相關(guān)《C++期末考試試卷及答案(16頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、C+蝕末考試試卷及答案1 一、單項選擇題(每題2分,共40分) 1 .不是屬于面向?qū)ο蟪绦蛟O(shè)計的特性 A.抽象性B.數(shù)據(jù)相關(guān)性C.多態(tài)性D.繼承 性 2 .將對某一類數(shù)據(jù)的處理算法應(yīng)用到另一類數(shù)據(jù)的處理中,要用到C++勺 A.類B.虛函數(shù)C.運算符重載D.模板 3 .C++與C語言最根本的不同之處在于 A.使用了類B.能夠?qū)崿F(xiàn)變量自動初始化C.支持軟件重用D.支持 接口重用 4 .動態(tài)內(nèi)存分配的主要目的是 A.使程序按動態(tài)聯(lián)編方式運行B.正確合理的使用內(nèi)存 C.提高程序的運行速度D.提高程序的可維護性 5 .在C+福數(shù)的形參前加const關(guān)鍵字,是為了提高函數(shù)的 A

2、.數(shù)據(jù)封裝性B.可理解性C.可維護性D.可重 用性 6 .函數(shù)重載的目的是 A.實現(xiàn)共享B.使用方便,提高可讀性C.提高速度D.減少空 間 7 .從程序片斷:charname[]="C++";course(name);可判斷函數(shù)course的調(diào)用采用的 是 A.傳值調(diào)用B.帶缺省參數(shù)值的函數(shù)調(diào)用C.引用調(diào)用D.傳址 調(diào)用 8 .用來說明類中公有成員的關(guān)鍵字是 9 .如果一個類的成員函數(shù)print()不修改類的數(shù)據(jù)成員值,則應(yīng)將其聲明為 A.voidprint()const;B.constvoidprint(); C.voidconstprint();D.voidpri

3、nt(const); 10 .下列關(guān)于構(gòu)造函數(shù)的論述中,不正確的是 A.構(gòu)造函數(shù)的函數(shù)名與類名相同B.構(gòu)造函數(shù)可以設(shè)置默認參數(shù) C.構(gòu)造函數(shù)的返回類型缺省為int型D.構(gòu)造函數(shù)可以重載 this 的類型 11 .在程序代碼:A::A(inta,int*b){this->x=a;this->y=b;} 是 A. int B. int * C. A D. A * A. 內(nèi)聯(lián)函數(shù) B. 虛函數(shù) C. 重載函數(shù) D. 模板函 試圖釋放一個已經(jīng)釋放了的動態(tài)分 D. 動態(tài)分配的堆內(nèi)存在程序退出后 C. 公有成員數(shù)據(jù) D. 公有 沒有 this 指針 只能用對象名

4、來調(diào)用 沒有 this 指針 只能用對象名來調(diào)用 12 .內(nèi)存泄漏是指 A.內(nèi)存中的數(shù)據(jù)出現(xiàn)丟失B. 配的堆內(nèi)存 C.函數(shù)中局部變量所占的棧內(nèi)存沒有及時回收始終被占用 A.私有成員數(shù)據(jù)B.私有成員函數(shù) 成員函數(shù) 14. 友元函數(shù) A.可以被聲明為constB. C.可以用類名或?qū)ο竺麃碚{(diào)用D. 15. 若一個類的成員函數(shù)前用static關(guān)鍵字修飾,則該成員函數(shù) A.可以被聲明為constB. C.可以訪問該類的所有成員D. 16. C++是用實現(xiàn)接口重用的 數(shù) 17. 公有繼承的派生類對象可以訪問其基類的 A.公有成員B.公有成員及受保護成員C.受

5、保護成員D.私有成 員 18. 設(shè)置虛基類的目的是 A.簡化程序B.使程序按動態(tài)聯(lián)編方式運行C.提高程序運行效率D. 消除二義性 19. 下列關(guān)于純虛函數(shù)和抽象類的描述中,不正確的是 A. 純虛函數(shù)是一個沒有具體實現(xiàn)的虛函數(shù) B. 抽象類是包括純虛函數(shù)的類 C. 抽象類只能作為基類,其純虛函數(shù)的實現(xiàn)在派生類中給出 D. 可以定義一個抽象類的對象 20. 關(guān)于運算符重載的不正確的描述是 A.運算符重載函數(shù)是友元函數(shù)B.體現(xiàn)了程序設(shè)計的多態(tài)性 C.增加新的運算符D.使運算符能對對象操作 二、下面的程序是關(guān)于CBook類的一個定義,試改正程序中的錯誤。(共10分) #in

6、clude #include#inlcude classCBook { private: char*p_book; public:p_book=newchar[strlen(p_val)+1] CBook(constchar*p_val){p_book=newchar[strlen(p_val)];strcpy(p_book,p_val);} voidprint()const{cout<

7、ok_title[60]; CBook*p_book_obj; cout<<“Enterbooktitle:”; cin>>p; CBookabook(p); p_book_obj=&abook;p_book_obj->print(); } 三、根據(jù)如下所示程序,回答下列問題(共10分) #include classCJournal{public: CJournal(){cout<<“Journaldefaultconstructor”<

8、dpaper”<

9、dl;} ~CComputerDesign(){cout<<“《ComputerDesign》defaultdestructor”<subscribe(); p_journal->read(); } 1. 當(dāng)程序運行到①處時,寫出程序運行的輸出結(jié)果(3分) 2. 當(dāng)程序結(jié)束時,程序會在第1

10、問的基礎(chǔ)上增加哪些輸出。(4分) 3. 若在主函數(shù)中定義一個對象CJournaljournal;程序編譯時會否出錯?為什么?(3分) 四、編程題(共40分) 1 .定義一個商品類CGoods其中包含商品號(longno)、商品名(char*p_name)、商品價格(doubleprice)三個數(shù)據(jù)成員,以及相應(yīng)的構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、析構(gòu)函數(shù)、打印數(shù)據(jù)成員的成員函數(shù)。(10分) #include #include usingnamespacestd; classCCourse { private: longno; char*p_n

11、ame; floatcredit; public: CCourse(longno_val,charp_val,floatcredit_val); CCourse(constCCourse&r_course);~CCourse(){deletep_name;}voidprint()const; }; CCourse:CCourse(longno_val,charp_val,floatcredit_val){no=no_val; p_name=newchar[strlen(p_val)+1]; strcpy(p_name,p_val); credit=credit_val; }

12、 CCourse:CCourse(constCCourse&r_course){ no=r_course.no; p_name=newchar[strlen(r_course.p_name)+1]; strcpy(p_name,r_course.p_name);credit=r_course.credit; }voidCCourse:print()const{ cout<<"Coursenumber"<

13、ood段增加一個商品總數(shù)(intcount)數(shù)據(jù)成員,并增加一個成員函數(shù)getCount()獲取count的值,編寫一個友元函數(shù)getName()獲取商品名稱p_name。做如上修改后,重新實現(xiàn)CGoods 類(與第1問相同的不用再重復(fù))。(10分) 3 .為CGood段定義小于運算符('<')和不小于運算符('>=')兩個運算符重載函數(shù)。CGoods類對象大小的比較是根據(jù)其商品價格(price)的值的大小來實現(xiàn)的。(與第2問相同的不用再重 復(fù))(10分) 4 .以CGood恭為基類,派生出服裝類CClothes和食品類CFood兩個派生類,并在這兩個類中 分別增加一個表示品牌的指針

14、數(shù)據(jù)成員(char*p_brand)和表示用途的成員函數(shù)(voidusedFor() ——可分別輸出一條表示服裝和食品用途的信息)。寫出CClothes類和CFood類的完整定義(包括 構(gòu)造、析構(gòu)和usedFor()成員函數(shù)的實現(xiàn))。(10分) 五、附加題(共30分。注意:確?;绢}成績能達到75分以上,再嘗試做附加題!) 1.在基本題第四題的基礎(chǔ)上,在CGoodSfe增力口總商品數(shù)(longtotal_goods)和商品總價格(doubletotal_price)兩個數(shù)據(jù)成員,以及相應(yīng)的獲取這兩個數(shù)據(jù)成員值的成員函數(shù)getTotalGoods()和 getTotalPrice()。

15、(注意說明數(shù)據(jù)成員和成員函數(shù)的存儲類型,以便能夠用類名來調(diào)用getTotalGoods()和getTotalPrice()這兩個函數(shù))。為了能夠采用動態(tài)聯(lián)編的方式調(diào)用派生類的usedFor()成員函數(shù),應(yīng)該在CGood恭及其派生類CClothes和CFood類中作何改動?(15分)2.編寫一個實現(xiàn)兩個數(shù)交換的函數(shù)模板swap,然后使用該函數(shù)模板再編寫一個對具有n個數(shù)組元 素(通用類型)的數(shù)組采用冒泡排序算法進行排序的函數(shù)模板。(15分) 試卷參考答案 一、單項選擇題 1-5.BDABC6-10.BDAAC 11-15.CADBB16-20.CADDA (每小題答對2分,不答0分,答

16、錯0分) 二、 #include改為#include p_book=newchar[strlen(p_val)]改為p_book=newchar[strlen(p_val)+1] CBookabook;改為CBookabook(p); p_book_obj=abook改為p_book_obj=&abook; p_book_obj.print()改為p_book_obj->print(); (該對得2分,未改或改錯得0分,正確之處該成錯誤倒扣1分) 三、 1. Journaldefaultconstructor <

17、gn>>defaultconstructor Subscribing<> Reading<> (全部答對得3分,答錯或漏答一條輸出扣1分) 2. Subscribing<> Readingpaper <>defaultdestructor Journaldefaultdestructor (全部答對得4分,答錯或漏答一條輸出扣1分) 3. 會出錯,因為CJournal中包含有純虛函數(shù),故CJournal是抽象類,不能定義抽象類 對象。 (答對編譯

18、會出錯得1分,答對原因得2分。) 四、 1. #include #include usingnamespacestd; classCCourse { private: longno; char*p_name; floatcredit; public: CCourse(longno_val,char*p_val,floatcredit_val); CCourse(constCCourse&r_course); ~CCourse(){deletep_name;} voidprint()const; }; CCourse::C

19、Course(longno_val,char*p_val,floatcredit_val) { no=no_val; p_name=newchar[strlen(p_val)+1]; strcpy(p_name,p_val); credit=credit_val; } CCourse::CCourse(constCCourse&r_course) { no = r_course.no; p_name=newchar[strlen(r_course.p_name)+1]; strcpy(p_name,r_course.p_name); credit=r_cours

20、e.credit; } voidCCourse::print()const { cout<<"Coursenumber:"<

21、0分) 在類外部增加一條: intCCourse::total_course=0; ( 答對得1分,答錯或漏答得0分) 在CCourse類的構(gòu)造函數(shù)中增加一條: total_course++; ( 答對得1分) 在CCourse類的拷貝構(gòu)造函數(shù)中增加一條: total_course++; ( 答對得1分) 在CCourse類的析構(gòu)函數(shù)中增加一條: total_course--; ( 答對得1分) 在classCCourse定義中增加一條: public: staticgetTotalCourse(){returntotal_course;} ( 答對得2

22、分,未加static得1分) 在classCCourse定義中增加一條: friendchar*getCourseName(constCCourse&r_course); ( 答對得1分,未加friend得0分) 在類外部定義: char*getCourseName(constCCourse&r_course) { returnr_course.p_name; } ( 答對得2分) 3. 在classCCourse定義中增加一條: public: booloperator<(constCCourse&r_course); ( 答對得2分) 在類外部定義: bool

23、CCourse::operator<(constCCourse&r_course) if(credit=(constCCourse&r_course); ( 答對得2分) 在類外部定義: boolCCourse::operator>=(constCCourse&r_course) { if(credit>=r_course.credit) returntrue;

24、 else returnfalse; } 4. ( 答對得3分) classCHLP:publicCCourse { private: char*p_openby; public: CHLP(longno_val,char*p_val,floatcredit_val,char*p_open) CCourse(no_val,p_val,credit_val) { p_openby=newchar[strlen(p_open)+1]; strcpy(p_openby,p_open); } ~CHLP(){deletep_openby;} voidstudyFor

25、(){cout<<"Studyforstructuredprogramming"<

26、nby,p_open); } ~COOP(){deletep_openby;} void studyFor(){cout<<"Studyforobjectorientedprogramming"< 主函數(shù)可定義為: voidmain()

27、 { charchoice,instructor[10]; floatcredit; longid; CCourse*p_course; cout<<"Selectcourse:\n"; cout<<"1.forHighLevelLanguageProgramming\n"; cout<<"2.forObjectOrientedProgramming\n"; cin>>choice; cout<<"Entercoursenumber:"; cin>>id; cout<<"Entercredit:" cin>>credit; cout<<"Enterinstruc

28、torname:"; cin>>instructor; switch(choice) { case'1': p_course=newCHLP(id,"高級語言程序設(shè)計",credit,instructor); break; case'2': p_course=newCOOP(id,"面向?qū)ο蟪绦蛟O(shè)計",credit,instructor); break; default: exit(0); } p_course->studyFor(); deletep_course; } (答對得13分) 2. #include usingnamesp

29、acestd; template voidswap(T&a,T&b) { Ttemp; temp=a; a=b; b=temp; } template voidbubbleSort(Ta[],intn) { inti,j; for(i=1;ia[j+1]) swap(a[j],a[j+1]); } template voidprint(T1a[],intn) { for(inti=0;i

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!