版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
精選優(yōu)質(zhì)文檔-----傾情為你奉上精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)專心---專注---專業(yè)精選優(yōu)質(zhì)文檔-----傾情為你奉上專心---專注---專業(yè)一、單項選擇題(每題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.提高程序的可維護(hù)性5.在C++函數(shù)的形參前加const關(guān)鍵字,是為了提高函數(shù)的_______A.數(shù)據(jù)封裝性B.可理解性C.可維護(hù)性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)鍵字是________A.publicB.privateC.protectedD.friend9.如果一個類的成員函數(shù)print()不修改類的數(shù)據(jù)成員值,則應(yīng)將其聲明為A.voidprint()const;B.constvoidprint();C.voidconstprint();D.voidprint(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ù)可以重載11.在程序代碼:A::A(inta,int*b){this->x=a;this->y=b;}中,this的類型是______A.intB.int*C.AD.A*12.內(nèi)存泄漏是指_______A.內(nèi)存中的數(shù)據(jù)出現(xiàn)丟失B.試圖釋放一個已經(jīng)釋放了的動態(tài)分配的堆內(nèi)存C.函數(shù)中局部變量所占的棧內(nèi)存沒有及時回收D.動態(tài)分配的堆內(nèi)存在程序退出后始終被占用13.從程序片斷:studentzhangsan("張三","M",22);zhangsan.id("");可判斷id是一個________A.私有成員數(shù)據(jù)B.私有成員函數(shù)C.公有成員數(shù)據(jù)D.公有成員函數(shù)14.友元函數(shù)_______A.可以被聲明為constB.沒有this指針C.可以用類名或?qū)ο竺麃碚{(diào)用D.只能用對象名來調(diào)用15.若一個類的成員函數(shù)前用static關(guān)鍵字修飾,則該成員函數(shù)________A.可以被聲明為constB.沒有this指針C.可以訪問該類的所有成員D.只能用對象名來調(diào)用16.C++是用_______實現(xiàn)接口重用的A.內(nèi)聯(lián)函數(shù)B.虛函數(shù)C.重載函數(shù)D.模板函數(shù)17.公有繼承的派生類對象可以訪問其基類的________A.公有成員B.公有成員及受保護(hù)成員C.受保護(hù)成員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分)#include<iostream.h>#include<math.h>#inlcude<string>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<<p_book<<endl;}~CBook(){delete[]p_book;}};voidmain(){charbook_title[60];CBook*p_book_obj;cout<<“Enterbooktitle:”;cin>>p;CBookabook(p);p_book_obj=&abook;p_book_obj->print();}三、根據(jù)如下所示程序,回答下列問題(共10分)#include<iostream.h>classCJournal{public:CJournal(){cout<<“Journaldefaultconstructor”<<endl;}virtualvoidsubscribe()=0;voidread(){cout<<“Readpaper”<<endl;}~CJournal(){cout<<“Journaldefaultdestructor”<<endl;}};classCComputerDesign:publicCJournal{public:CComputerDesign(){cout<<“《ComputerDesign》defaultconstructor”<<endl;}virtualvoidsubscribe(){cout<<“Subscribing《ComputerDesign》”<<endl;}voidread(){cout<<“Reading《ComputerDesign》”<<endl;}~CComputerDesign(){cout<<“《ComputerDesign》defaultdestructor”<<endl;}};voidmain(){CComputerDesignjournal1;CJournal*p_journal;journal1.subscribe();journal1.read();//①p_journal=&journal1;p_journal->subscribe();p_journal->read();}1.當(dāng)程序運行到①處時,寫出程序運行的輸出結(jié)果(3分)2.當(dāng)程序結(jié)束時,程序會在第1問的基礎(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<iostream>#include<string.h>usingnamespacestd;classCCourse{private: longno; char*p_name; 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; }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"<<no<<endl; cout<<"Coursename"<<p_name<<endl; cout<<"Coursecredit"<<credit<<endl; }2.為CGoods類增加一個商品總數(shù)(intcount)數(shù)據(jù)成員,并增加一個成員函數(shù)getCount()獲取count的值,編寫一個友元函數(shù)getName()獲取商品名稱p_name。做如上修改后,重新實現(xiàn)CGoods類(與第1問相同的不用再重復(fù))。(10分)3.為CGoods類定義小于運算符(‘<’)和不小于運算符(‘>=’)兩個運算符重載函數(shù)。CGoods類對象大小的比較是根據(jù)其商品價格(price)的值的大小來實現(xiàn)的。(與第2問相同的不用再重復(fù))(10分)4.以CGoods類為基類,派生出服裝類CClothes和食品類CFood兩個派生類,并在這兩個類中分別增加一個表示品牌的指針數(shù)據(jù)成員(char*p_brand)和表示用途的成員函數(shù)(voidusedFor()——可分別輸出一條表示服裝和食品用途的信息)。寫出CClothes類和CFood類的完整定義(包括構(gòu)造、析構(gòu)和usedFor()成員函數(shù)的實現(xiàn))。(10分)五、附加題(共30分。注意:確?;绢}成績能達(dá)到75分以上,再嘗試做附加題!)1.在基本題第四題的基礎(chǔ)上,在CGoods類增加總商品數(shù)(longtotal_goods)和商品總價格(doubletotal_price)兩個數(shù)據(jù)成員,以及相應(yīng)的獲取這兩個數(shù)據(jù)成員值的成員函數(shù)getTotalGoods()和getTotalPrice()。(注意說明數(shù)據(jù)成員和成員函數(shù)的存儲類型,以便能夠用類名來調(diào)用getTotalGoods()和getTotalPrice()這兩個函數(shù))。為了能夠采用動態(tài)聯(lián)編的方式調(diào)用派生類的usedFor()成員函數(shù),應(yīng)該在CGoods類及其派生類CClothes和CFood類中作何改動?(15分)2.編寫一個實現(xiàn)兩個數(shù)交換的函數(shù)模板swap,然后使用該函數(shù)模板再編寫一個對具有n個數(shù)組元素(通用類型)的數(shù)組采用冒泡排序算法進(jìn)行排序的函數(shù)模板。(15分)一、單項選擇題1-5.BDABC6-10.BDAAC11-15.CADBB16-20.CADDA(每小題答對2分,不答0分,答錯0分)二、#include<math.h>改為#include<string.h>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<<ComputerDesign>>defaultconstructorSubscribing<<ComputerDesign>>Reading<<ComputerDesign>>(全部答對得3分,答錯或漏答一條輸出扣1分)2.Subscribing<<ComputerDesign>>Readingpaper<<ComputerDesign>>defaultdestructorJournaldefaultdestructor(全部答對得4分,答錯或漏答一條輸出扣1分)3.會出錯,因為CJournal中包含有純虛函數(shù),故CJournal是抽象類,不能定義抽象類對象。(答對編譯會出錯得1分,答對原因得2分。)四、1.#include<iostream>#include<string.h>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::CCourse(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_course.credit;}voidCCourse::print()const{cout<<"Coursenumber:"<<no<<endl;cout<<"Coursename:"<<p_name<<endl;cout<<"Coursecredit:"<<credit<<endl;}(數(shù)據(jù)成員定義正確得2分,部分正確得1分,不正確得0分每個成員函數(shù)定義正確得2分,每個成員函數(shù)有小錯誤扣1分,完全不正確不得分)2.在classCCourse定義中增加一條:private:staticinttotal_course;(答對得1分,未加static得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分,未加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分)在類外部定義:boolCCourse::operator<(constCCourse&r_course){if(credit<r_course.credit)returntrue;elsereturnfalse;(答對得3分)在classCCourse定義中增加一條:public:booloperator>=(constCCourse&r_course);(答對得2分)在類外部定義:boolCCourse::operator>=(constCCourse&r_course){if(credit>=r_course.credit)returntrue;elsereturnfalse;}(答對得3分)4.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(){cout<<"Studyforstructuredprogramming"<<endl;}};(答對得5分,其中構(gòu)造函數(shù)3分,析構(gòu)函數(shù)1分,studyFor()函數(shù)1分)classCOOP:publicCCourse{private:char*p_openby;public:COOP(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);}~COOP(){deletep_openby;}voidstudyFor(){cout<<"Studyforobjectorientedprogramming"<<endl;}};(答對得5分,其中構(gòu)造函數(shù)3分,析構(gòu)函數(shù)1分,studyFor()函數(shù)1分)五、1.在classCCourse定義中增加一條:public:virtualvoidstudyFor(){cout<<"studyfordegree\n";}(答對得2分)增加:#include<stdlib.h>主函數(shù)可定義為:voidmain(){charchoice,instructor[10];floatcredit;longid;CCourse*p_course;cout<<"Selectcourse:\n";cout<<"1.forHighLevelLanguageProgramming\n";cout<<"2.forObjectOrientedProgramming\n";cin>>choice;co
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬教新版九年級歷史上冊階段測試試卷
- 2025年統(tǒng)編版九年級歷史下冊階段測試試卷含答案
- 2025年度企業(yè)內(nèi)部培訓(xùn)項目合作協(xié)議合同范本4篇
- 2025年人教新起點必修1歷史下冊階段測試試卷含答案
- 2025年人教B版選修3歷史下冊月考試卷
- 二零二五版苗木養(yǎng)護(hù)管理服務(wù)合同2篇
- 二零二五版南京二手房買賣電子合同范本4篇
- 二零二五年度二零二五互聯(lián)網(wǎng)金融服務(wù)合同規(guī)范范本4篇
- 2025年度墻體改梁與建筑智能化升級合同4篇
- 二零二五年度農(nóng)藥產(chǎn)品生產(chǎn)安全培訓(xùn)采購合同4篇
- 環(huán)境監(jiān)測對環(huán)境保護(hù)的意義
- 2023年數(shù)學(xué)競賽AMC8試卷(含答案)
- 神經(jīng)外科課件:神經(jīng)外科急重癥
- 2024年低壓電工證理論考試題庫及答案
- 2023年十天突破公務(wù)員面試
- 《瘋狂動物城》中英文對照(全本臺詞)
- 醫(yī)院住院醫(yī)師規(guī)范化培訓(xùn)證明(樣本)
- 小學(xué)六年級語文閱讀理解100篇(及答案)
- 氣功修煉十奧妙
- 安徽省物業(yè)服務(wù)標(biāo)準(zhǔn)
- 勾股定理的歷史與證明課件
評論
0/150
提交評論