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

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

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

12 積分

下載資源

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

資源描述:

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

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

2、.數(shù)據(jù)封裝性B.可理解性C.可維護(hù)性D.可重 用性 6 .函數(shù)重載的目的是 A.實(shí)現(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 .用來(lái)說(shuō)明類中公有成員的關(guān)鍵字是 9 .如果一個(gè)類的成員函數(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è)置默認(rèn)參數(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. 模板函 試圖釋放一個(gè)已經(jīng)釋放了的動(dòng)態(tài)分 D. 動(dòng)態(tài)分配的堆內(nèi)存在程序退出后 C. 公有成員數(shù)據(jù) D. 公有 沒(méi)有 this 指針 只能用對(duì)象名

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

5、保護(hù)成員D.私有成 員 18. 設(shè)置虛基類的目的是 A.簡(jiǎn)化程序B.使程序按動(dòng)態(tài)聯(lián)編方式運(yùn)行C.提高程序運(yùn)行效率D. 消除二義性 19. 下列關(guān)于純虛函數(shù)和抽象類的描述中,不正確的是 A. 純虛函數(shù)是一個(gè)沒(méi)有具體實(shí)現(xiàn)的虛函數(shù) B. 抽象類是包括純虛函數(shù)的類 C. 抽象類只能作為基類,其純虛函數(shù)的實(shí)現(xiàn)在派生類中給出 D. 可以定義一個(gè)抽象類的對(duì)象 20. 關(guān)于運(yùn)算符重載的不正確的描述是 A.運(yùn)算符重載函數(shù)是友元函數(shù)B.體現(xiàn)了程序設(shè)計(jì)的多態(tài)性 C.增加新的運(yùn)算符D.使運(yùn)算符能對(duì)對(duì)象操作 二、下面的程序是關(guān)于CBook類的一個(gè)定義,試改正程序中的錯(cuò)誤。(共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ù)如下所示程序,回答下列問(wèn)題(共10分) #include classCJournal{public: CJournal(){cout<<“Journaldefaultconstructor”<

8、dpaper”<

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

10、問(wèn)的基礎(chǔ)上增加哪些輸出。(4分) 3. 若在主函數(shù)中定義一個(gè)對(duì)象CJournaljournal;程序編譯時(shí)會(huì)否出錯(cuò)?為什么?(3分) 四、編程題(共40分) 1 .定義一個(gè)商品類CGoods其中包含商品號(hào)(longno)、商品名(char*p_name)、商品價(jià)格(doubleprice)三個(gè)數(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段增加一個(gè)商品總數(shù)(intcount)數(shù)據(jù)成員,并增加一個(gè)成員函數(shù)getCount()獲取count的值,編寫一個(gè)友元函數(shù)getName()獲取商品名稱p_name。做如上修改后,重新實(shí)現(xiàn)CGoods 類(與第1問(wèn)相同的不用再重復(fù))。(10分) 3 .為CGood段定義小于運(yùn)算符('<')和不小于運(yùn)算符('>=')兩個(gè)運(yùn)算符重載函數(shù)。CGoods類對(duì)象大小的比較是根據(jù)其商品價(jià)格(price)的值的大小來(lái)實(shí)現(xiàn)的。(與第2問(wèn)相同的不用再重 復(fù))(10分) 4 .以CGood恭為基類,派生出服裝類CClothes和食品類CFood兩個(gè)派生類,并在這兩個(gè)類中 分別增加一個(gè)表示品牌的指針

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

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

16、錯(cuò)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(); (該對(duì)得2分,未改或改錯(cuò)得0分,正確之處該成錯(cuò)誤倒扣1分) 三、 1. Journaldefaultconstructor <

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

18、會(huì)出錯(cuò)得1分,答對(duì)原因得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; ( 答對(duì)得1分,答錯(cuò)或漏答得0分) 在CCourse類的構(gòu)造函數(shù)中增加一條: total_course++; ( 答對(duì)得1分) 在CCourse類的拷貝構(gòu)造函數(shù)中增加一條: total_course++; ( 答對(duì)得1分) 在CCourse類的析構(gòu)函數(shù)中增加一條: total_course--; ( 答對(duì)得1分) 在classCCourse定義中增加一條: public: staticgetTotalCourse(){returntotal_course;} ( 答對(duì)得2

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

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

24、 else returnfalse; } 4. ( 答對(duì)得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,"高級(jí)語(yǔ)言程序設(shè)計(jì)",credit,instructor); break; case'2': p_course=newCOOP(id,"面向?qū)ο蟪绦蛟O(shè)計(jì)",credit,instructor); break; default: exit(0); } p_course->studyFor(); deletep_course; } (答對(duì)得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: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(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

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


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

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲