




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C復習二試卷分析C復習二試卷分析C復習二試卷分析選擇題1基類指針指向派生類動態對象
派生類動態對象建立時,因為構造函數和析構函數不能繼承,繼承的基類成員必須通過成員初始化列表:X(y)調用基類的構造函數先初始化基類繼承的數據成員,再調用派生類構造函數初始化派生類的數據成員。132x::a=2b=1pa2選擇題2派生類對象初始化基類引用建立臨時的派生類對象調用基類、派生類的構造函數建立基類對象a1,調用基類的拷貝構造函數,派生類對象初始化基類引用。12112.a=3b=1a=3a1臨時對象3選擇題派生類對象初始化基類引用建立派生類對象b3建立基類對象a3,調用基類拷貝構造函數2123113.a=0b=10b3a=2a34選擇題錯。靜態成員屬于類,不分配this指針,不可以是虛函數錯。不是可以是,而是必須是!錯。函數重載實現靜態多態性〔編譯時完成〕,虛函數+繼承可實現動態多態性〔程序運行時連編的〕對。5選擇題知識點:轉義字符A.錯。正確表示:“d:\\dir\\test.txt〞,轉義字符有:‘\d’‘\t’B.錯。少1個形參,正確:fstreamfile(“d:\\dor\\test.txt〞,ios::in|ios::out)C.錯。轉義字符+少1個形參D.對。“direst.txt〞6選擇題7選擇題答案:選A形參1:void(*)(int,int,int),函數指針,地址傳遞函數原形說明:voidf(inta,intb,intc)—函數頭,函數是先定義再使用,后定義先說明,函數指針:
void(*f)(inta,intb,intc)形參2:int整形,值的傳遞形參3:int整形,值的傳遞8選擇題答案:選D從運算符的性質來看,重載運算符“==〞應返回邏輯值。故應選D。運算符重載,完成兩個對象之間有復雜運算運算符重載函數的函數必須為:operator,后面跟一個合法的運算符。list&list::operator==(constlist&a)運算符重載不能改變運算符的優先級和結合性。“:〞,“.〞,“*〞,“::〞,sizeof不能重載9選擇題對象建立時,調用構造函數,對象生命完畢時調用析構函數,調用次序恰恰相反答案:A。共建立了對象a,對象數組b[2],對象指針數組*c[2],分析有三個對象建立。調用三次構造函數。10選擇題CC11選擇題a=b=c分析:例:相當于:operator(a,operator=(b,c))從上面②的函數原形分析,實參2對應的該函數返回的是③對象的引用。但這個實參和對應形參④相比,它的數據類型應該是對象不是對象的引用。1243正確的應該是:Fraction&operator=(Fraction&,Fraction&)orFractionoperator=(Fraction&,Fraction)12選擇題a+=b+=c分析:例:相當于:operator(a,operator+=(b,c))從上面②的函數原形分析,實參2對應的該函數返回的是③對象的引用。但這個實參和對應形參④相比,它的數據類型應該是對象不是對象的引用。1243正確的應該是:Fraction&operator=+(Fraction&,Fraction&)orFractionoperator=(Fraction&,Fraction)我認為D也是錯的。③與④的數據類型應該是一樣的。可以討論。13閱讀程序題fun(int*s,intn)fun(int*s,intn)fun(int*s,intn)fun(&f,3)*s=5*5cout<<f<<‘\n’fun(&f,1)*s=1*5cout<<f<<‘\n’*s=1&x5&f3&f14.15.56.x=25346152答案①14形參:函數的指針閱讀程序題②15x,u,v全局變量,函數外定義函數原形說明:f(double)g(double)t(double,double(*)(double))
double(*)(double)—形參2是函數的指針,屬于地址傳遞,用來傳遞函數的首地址。所傳遞的函數應該是返回值是double,形參只有一個且為double的。閱讀程序題形參:函數的指針②16形參:函數的指針函數的調用:u=t(4,f)→112return(*f)(a*a)returnf(a*a)2337.u=18閱讀程序題③②17閱讀理解形參:函數的指針函數的調用:u=t(4,g)→112return(*f)(a*a)returnf(a*a)2338.v=14②18閱讀理解程度輸出的第一行9,是第二行是10第三行是11。基類對象:b基類指針:*pbi=101③19派生類對象:di=10j=47公有派生:public構造和析構函數不被繼承,基類所繼承的成員必須調用基類構造函數進展初始化。構造函數調用順序:基類→派生類base(I)→j(J)析構函數調用順序構造函數的調用順序恰恰相反。21閱讀理解③201基類指針指向派生類:pb=&dcall(b)
實參與形參都是基類對象,值傳遞;輸出:sum=10call(d)
實參:派生類對象,形參:基類對象;值傳遞輸出:sum=10212call函數形參閱讀理解③213基類指針指向派生類:
pb=&dcall(*pb)
實參:派生類對象,形參:基類對象,值傳遞;
輸出:sum=10pb33call函數形參閱讀理解③22繼承+虛函數=多態〔動態〕,即基類指針指向派生類時,只調對象的虛函數時,即產生多態。基類指針指向派生類對象,調用函數虛函數→派生類的虛函數不是虛函數→基類的函數pb122★閱讀理解③23基類指針指向派生類對象,調用函數虛函數→派生類的虛函數不是虛函數→基類的函數b22★call(&b):實參:基類對象的地址;形參:基類指針b,調用基類的sum閱讀理解③24閱讀理解③基類指針指向派生類對象,調用函數虛函數→派生類的虛函數不是虛函數→基類的函數pb122★call(&d):實參:派生類對象的地址;形參:基類指針b,調用派生類的sum25閱讀理解基類指針指向派生類對象,調用函數虛函數→派生類的虛函數不是虛函數→基類的函數22pb12☆★③26閱讀理解2g函數與基類的虛函數的原形說明不一樣,不是虛函數111派生類對象:Bb基類指針指向派生類:X*px=&b④27閱讀理解2與基類的虛函數的原形說明不一樣,不是虛函數111(),對象調成員函數,同名覆蓋,調派生類的g函數,輸出:B:55px->f(),基類指針px指向派生類b,調派生類的虛函數f()。輸出:B:44px->g(),基類指針指向派生類,調非虛函數時,調基類的。輸出:X:22④28閱讀理解知識點:構造函數與析構函數對象建立時自動調用構造函數;對象消失時自動調用析構函數,兩者的順序恰恰相反⑤29閱讀理解Af1(1),f2(f2);f1—構造函數f2—拷貝構造函數f2=A(f1);
臨時對象—拷貝構造函數臨時對象—析構函數f1=A(f2)
;臨時對象—拷貝構造函數臨時對象—析構函數f(2)=A(f1);臨時對象—拷貝構造函數臨時對象—析構函數析構析構f2析構f11234⑤30閱讀理解f1x=1f2x=211臨時對象x=2f2x=22112⑤31閱讀理解12臨時對象x=3f1x=333臨時對象x=4f2x=44434⑤32閱讀理解123455析構f2析構f1⑤f1x=3f2x=433閱讀理解知識點:靜態數據成員:x數據類型轉換函數:operatorint()后置++:Aoperator(int)缺省的構造函數:A(intx=2,inty=3);voidprint();⑥34閱讀理解1abcA::x=60y=10y=16y=6x=20x=4⑥35閱讀理解1abcA::x=60y=10y=16y=6x=20x=422⑥36閱讀理解1abcA::y=10y=16y=6x=42233i=a+b=(int)a+(int)b=14+20=34⑥37閱讀理解1cA::y=7x=5223344A(x++,y++)→臨時對象:y=12x=8cA::y=6x=4A(4,6)→⑥A::38閱讀理解ABCi=*paAi=B*pbA::i=10i=AC*pc123⑦3339閱讀理解ABCi=1*paAi=2B*pbA::i=10i=3AC*pc4440閱讀理解i=1*pai=2B*pbA::i=10i=3AC*pc55派生類C的指針*pc調用派生類自己的函數〔同名覆蓋〕基類B指針*pb指向派生類對象c,調用虛函數—調派生類C的虛函數print665641閱讀理解i=1*pai=2B*pbA::i=10i=3AC*pc55基類A指針*pa指向派生類對象c時,①基類A的print函數不是虛函數,②基類指針只能指向派生類中繼承的成員〔賦值兼容性〕,調基類A函數print,輸出從基類A繼承的數據成員A::i的值。6767742完善填空char*sorchars[]1實參:數組名形參:數組名或字符指針2給指針p賦值:p=s11243完善填空if(min>*p)3算法:找最小4算法:字符搬家,添加是從后向前搬,搬到第一個字符為止。p>s112345算法:移動指針p--,q--5444完善填空45完善填空6實參:字符串常量形參:字符指針答案:*s7拷貝字符串給動態字符數組ps:答案:ps6746完善填空9答案:*this“=〞應返回左值,例:x=y=z。即當前對象。671010947完善填空8答案:i==0679108對象s2析構時,i==0,輸出“Theend〞;對象s1析構時,i==1,輸出“atthistimeofday〞48完善填空以下程序功能是:從一個字符串str中刪除或添加一個指定的字符,假設指定的字符c出現在str中,則從str中刪除第一個值為c的字符;否則把字符c添加到str的尾部。在程序中,函數dele()從字符串中刪除一個字符;函數add()添加一個字符到字符尾部;函數search〔〕用于查找指定的字符是否在字符串中,假設在,則返回所在位置,否則返回0。49完善填空11.--sors-112.*p2++.搬家13.*s++,將ch中的字符放在最后。14.void(*fp)(char*,char)。fp是函數指針,沒有被說明,是用來調用add和dele函數的。15str,cabcdcfgha/0strcsccadddelep1p2s50完善填空grade成績n排名num學號point鏈node類51完善填空鏈表的建立:建結點、錄數據、鏈表、指針相應移動grade78n0num01pointp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3-12競爭和冒險1-邏輯冒險的判斷
- 山東省名校聯盟2024?2025學年高一下學期3月校際聯考 數學試題(含解析)
- 右江民族醫學院《有機化學B》2023-2024學年第二學期期末試卷
- 瀟湘職業學院《建筑工程質量與安全》2023-2024學年第二學期期末試卷
- 南昌大學科學技術學院《工程項目與質量管理》2023-2024學年第二學期期末試卷
- 陜西省西安市交大附中2024-2025學年第二學期十二月份月考英語試題含答案
- 濮陽科技職業學院《西方文學(上)》2023-2024學年第二學期期末試卷
- 廈門大學嘉庚學院《現代科學與工程計算(二)》2023-2024學年第二學期期末試卷
- 山西晉中理工學院《藥用動物學實驗》2023-2024學年第二學期期末試卷
- 上海嘉定區2025年高三零診綜合試題含解析
- 2022年七年級安全教育下學期教案
- WS377.4-2013 婦女保健基本數據集 第4部分:孕產期保健服務與高危管理
- 刺激性氣體中毒課件
- 作文素材----片段式作文
- 應用生態學PPT課件
- 巧用Mapinfo軟件SQL查詢功能--肖2017
- ID2016 200V三相驅動芯片-電荷泵mos管驅動芯片-驪微電子
- 家具廠首件檢驗記錄表
- 凝汽器灌水查漏方案及措施
- 【那個女孩歌詞陶喆】陶喆那個女孩歌詞分配
- HXD2電力機車電傳動系統和機車網絡控制系統培訓教材
評論
0/150
提交評論