<span id="plx27"><var id="plx27"></var></span>
<dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>
  • 歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
    裝配圖網(wǎng)
    ImageVerifierCode 換一換
    首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

    《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》期末考試試題

    • 資源ID:17764461       資源大?。?span id="mrmcxfa" class="font-tahoma">77.91KB        全文頁(yè)數(shù):6頁(yè)
    • 資源格式: DOC        下載積分:9.9積分
    快捷下載 游客一鍵下載
    會(huì)員登錄下載
    微信登錄下載
    三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
    二維碼
    微信掃一掃登錄
    下載資源需要9.9積分
    郵箱/手機(jī):
    溫馨提示:
    用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
    支付方式: 支付寶    微信支付   
    驗(yàn)證碼:   換一換

     
    賬號(hào):
    密碼:
    驗(yàn)證碼:   換一換
      忘記密碼?
        
    友情提示
    2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
    3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
    4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
    5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

    《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》期末考試試題

    C+面向?qū)ο蟪绦蛟O(shè)計(jì)考試試題 本試卷滿分100分; 請(qǐng)將答案寫在答題紙上,寫明題號(hào),不必抄題,字跡工整、清晰; 請(qǐng)?jiān)诖痤}紙和試題紙上都寫上你的班級(jí),學(xué)號(hào)和姓名,交卷時(shí)請(qǐng)將試題紙、答題紙和草紙一并交上來。 一、 單選題(共10分,每題1分) 1. C+中解決命名沖突的機(jī)制是:D(A) 虛基類 (B) 虛函數(shù) (C) 函數(shù)重載 (D) 名字空間2. 若類A的一個(gè)對(duì)象所占的內(nèi)存空間中包含虛函數(shù)表的入口地址,則: C(A) 類A不能有靜態(tài)數(shù)據(jù)成員(B) 類A中公有的成員函數(shù)一定是虛的(C) 類A中至少有一個(gè)成員函數(shù)是虛的(D) 類A的析構(gòu)函數(shù)一定是虛的3任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多是:B(A) 不限個(gè)數(shù) (B) 1 (C) 2 (D) 34 下列關(guān)于this指針的說法,哪個(gè)是正確的: D(A) this指針一定指向常量型數(shù)據(jù) (B) this指向的數(shù)據(jù)不可更改(C) 靜態(tài)成員函數(shù)中也可以訪問this指針 (D) this指針本身可直接作為成員函數(shù)的返回值5在類定義中,為說明成員的訪問權(quán)限,private, protected, public 可以出現(xiàn)次數(shù)為:A(A)次數(shù)沒有具體限定 (B) 每種至多一次(C) public 至少一次 (D) 每種至少一次6下面哪種定義方式是正確的,并且使得p可以作為函數(shù)void f( A* const pp);的實(shí)參:A(A)A * p = new A; (B)A a; A* p = a; (C)const A* p = new A; (D)A a; const A* p = a;7 obj是類A的一個(gè)對(duì)象,執(zhí)行語句 const A& aA= obj; ,則下列說法正確的是: C(A)類A的拷貝構(gòu)造函數(shù)會(huì)被調(diào)用 (B)類A的賦值函數(shù)會(huì)被調(diào)用(C)&aA的值就是 &obj (D) 語句obj.f( );等價(jià)于語句aA.f( );8下面關(guān)于訪問類A的私有數(shù)據(jù)成員的說法,錯(cuò)誤的是: C(A)類A的友元函數(shù)可以訪問類A的私有成員。 (B)類A的友元類中的非靜態(tài)成員函數(shù)可以訪問類A的私有成員。(C)類A的嵌套類中的非靜態(tài)成員函數(shù)可以訪問類A的私有成員。(D)類A中的非靜態(tài)成員函數(shù)可以訪問類A的私有成員。 9類A中有唯一的一個(gè)成員函數(shù)f,且f是公有的靜態(tài)或非靜態(tài)成員函數(shù),對(duì)于類A的一個(gè)對(duì)象a,執(zhí)行語句 a.f(100);成功,那么f 的函數(shù)原型不可以是:B(A) A& f( int, int=50 ); (B) void f(int& ) ;(C) const A * f(const int ); (D) A f( const int&);10. 下面關(guān)于類的成員函數(shù)描述不正確的是:A(A) 靜態(tài)成員函數(shù)內(nèi)可以直接訪問類的非靜態(tài)成員數(shù)據(jù)(B) 靜態(tài)成員函數(shù)內(nèi)可以直接訪問類的靜態(tài)成員數(shù)據(jù)(C) 非靜態(tài)成員函數(shù)可以直接訪問類的非靜態(tài)成員數(shù)據(jù)(D) 非靜態(tài)成員函數(shù)可以直接訪問類的靜態(tài)成員數(shù)據(jù)(全局成員)二、判斷正誤,對(duì)于你認(rèn)為錯(cuò)誤的論述,說明原因或舉出反例。(每題2分,共20分)1. 重載流操作符<<和>> 時(shí),如果第一個(gè)參數(shù)的類型為ostream 和istream,那么這個(gè)重載函數(shù)既可以用于標(biāo)準(zhǔn)輸入輸出流,也可以用于文件流上。對(duì),ostream 和istream是標(biāo)準(zhǔn)輸入輸出流、文件流、字符串流的基類2. 在同一個(gè)類中,可以定義重載的成員函數(shù) void f(int);和virtual void f(int); 。錯(cuò),這屬于重復(fù)定義3. 抽象類不會(huì)產(chǎn)生實(shí)例,所以不需要有構(gòu)造函數(shù)。錯(cuò),被派生時(shí)需要它的構(gòu)造函數(shù)4. 類A有一個(gè)非靜態(tài)的成員函數(shù)f,其函數(shù)原型是:void A:f( ) const,則該函數(shù)被調(diào)用時(shí),一定是通過類A或類A的某后裔類的一個(gè)用const修飾符說明的常量對(duì)象調(diào)用的。錯(cuò),常函數(shù)可以由變量對(duì)象或常量對(duì)象調(diào)用5. 異常必須在其產(chǎn)生的當(dāng)前函數(shù)中捕獲,而不能在外層函數(shù)中捕獲該異常。錯(cuò),可以在外層捕獲,并且這是最常見的用法6. 只要程序中沒有A a1 = a2; 和A a1(a2); 形式的代碼,類A的拷貝構(gòu)造函數(shù)就不會(huì)被調(diào)用。錯(cuò),參數(shù)傳遞或函數(shù)返回時(shí)也調(diào)用拷貝構(gòu)造函數(shù)7. 在protected繼承方式下,派生類對(duì)象的指針不能直接轉(zhuǎn)換成指向基類對(duì)象的指針。對(duì),否則基類中的公有成員由不可見變?yōu)榭梢?,?quán)限被放大8. 若靜態(tài)成員函數(shù)中調(diào)用了一個(gè)函數(shù)f,那么f 一定不是虛函數(shù)。對(duì),靜態(tài)成員函數(shù)不能是虛函數(shù),因?yàn)樘摵瘮?shù)入口需要在保存在對(duì)象中的虛函數(shù)表中,而靜態(tài)成員函數(shù)不屬于對(duì)象。9. 若要實(shí)例化一個(gè)含有引用型數(shù)據(jù)成員的類,那么只能使用構(gòu)造函數(shù)初始化列表來初始化該數(shù)據(jù)成員。對(duì),沒有別的辦法10. 構(gòu)造函數(shù)的函數(shù)體中,不能使用return語句;但在實(shí)現(xiàn)該類的自動(dòng)類型轉(zhuǎn)化函數(shù)時(shí),必須有return 語句。對(duì)三、回答下列各題(每題4分,共20分)1. 舉例說明static關(guān)鍵字的用法和相應(yīng)目的(至少3種)。f() static int a; 函數(shù)體內(nèi)的靜態(tài)變量,每次調(diào)用該函數(shù)時(shí)值保持不變static int a; 全局的靜態(tài)變量,約束作用域?yàn)樗谖募lass A static int a; A的靜態(tài)成員,類似全局變量,需用A:a訪問2. 舉例說明類的數(shù)據(jù)成員在哪些情況下必須在初始化列表中進(jìn)行初始化(至少3種)?;惒惶峁o參的構(gòu)造函數(shù)成員對(duì)象不提供無參的構(gòu)造函數(shù)有常量成員或引用成員3. 舉例說明虛擬繼承的作用和目的。虛擬繼承的目的是使基類在派生類中只保留一個(gè)副本從而避免二義性4. 舉例說明成員函數(shù)A& f( ) const;和成員函數(shù)A& f( ); 的區(qū)別。A& f( ) const是常函數(shù),隱含的this指針是常指針,因此在f中不能修改對(duì)象成員的值。舉例略5. 有類A的對(duì)象a,任意給出一種解決方案,使得程序支持下面的表達(dá)式:a=10+a; class A A(int); /轉(zhuǎn)換構(gòu)造函數(shù)friend const A operator+(const A,const A); /重載+;四、指出下列程序代碼中存在的錯(cuò)誤或不足,說明原因。(每題5分,共10分)1#include<iostream.h>class A public: virtual A( ) virtual void f( ) cout<<"A:f( )"<<endl; virtual void g( ) cout<<"A:g( )"<<endl; ;class B:public Apublic: virtual void g( ) cout<<"B:g( )"<<endl; virtual void k( ) cout<<"B:k( )"<<endl;void main( ) A * p= new B; p->f( ); p->g( ); p->k( ); delete p;答:函數(shù)k在A中沒有定義,執(zhí)行p->k( );時(shí)要根據(jù)p的類型在A中查k的信息2#include<iostream.h>#include<string.h>class A;class B:public A public: B(const char* info) m_buf=new char256; strcpy(m_buf,info); B( ) delete m_buf; virtual void output( ) cout << m_buf; private: char * m_buf; ;class A public: A( ) virtual void output( ) ;void main() A*pa = new B("hello!") ; pa->output( ); delete pa; 答:A的析構(gòu)函數(shù)應(yīng)定義為虛函數(shù),否則B的析構(gòu)函數(shù)不會(huì)被調(diào)用,m_buf也不會(huì)被釋放五、寫出下面程序的運(yùn)行結(jié)果(每題5分,共10分) 1#include <iostream.h> class A public: A( ):count(1) virtual A( ) virtual A* Copy( ) const = 0; virtual void Out( ) const = 0;protected: int count;class B:public A public: B( ) -count; Out( ); virtual A* Copy( ) const B *p = new B(*this); +p->count; return p; virtual void Out( ) const cout << count << endl; ;void main( ) B b; A* a1=&b; a1->Out( ); a1 = a1->Copy( ); a1->Out( ); delete a1; 答:1210 -2#include <iostream.h> class A public: A(int n):num(n) Out( ); A(const A& rhs):num(rhs.num) Out( ); void Out( ) cout<<num<<endl; public: int num;class B:public A public: B(A& a) :obj(a),A(1) void Out( ) obj.Out( ); private: A obj;void main( ) A a(8); B b1(a); B b2(b1); b2.Out();答:818188-六、閱讀下面兩個(gè)類的定義和部分實(shí)現(xiàn)代碼,完成3個(gè)問題。(共10分)#include<iostream.h>class A public: A(int n):value(n) void Display( ) const cout<<"Value = "<<value<<endl; private: int value; class B public: B(int n); void Display( ) const aA.Display(); private: A aA;int main( ) B b1(1);b1.Display( );B b2(2);b2. Display( );return 0; 1. 3分實(shí)現(xiàn)類B的構(gòu)造函數(shù),使得程序的輸出為:Value=1Value=2答:B(int n):aA(n)23分若main函數(shù)中增加了語句B b3(b1); 針對(duì)本例,說明是否有必要以公有方式自定義并實(shí)現(xiàn)類B的拷貝構(gòu)造函數(shù),為什么?答:不需要,因?yàn)轭怋及基類A中不存在引用或指針成員,使用默認(rèn)的拷貝構(gòu)造函數(shù)就可以。3. 4分在不改動(dòng)類A和main函數(shù)的前提下,以繼承的方式重新定義并實(shí)現(xiàn)類B,使得程序的輸出結(jié)果不變。答:class B:public A public: B(int n):A(n); void Display( ) const A:Display(); ;七、(共20分,每問題10分) 某程序員為了靈活地對(duì)各種的給定的曲線函數(shù)f(x)畫出其曲線圖形,設(shè)計(jì)并部分實(shí)現(xiàn)了一個(gè)曲線類curve,該類的成員數(shù)據(jù)中,count代表坐標(biāo)點(diǎn)的個(gè)數(shù),pxs代表的數(shù)組存放這些坐標(biāo)點(diǎn)的橫坐標(biāo),pys代表的數(shù)組存放利用f(x)計(jì)算得到的這些坐標(biāo)點(diǎn)的縱坐標(biāo)。由于不同曲線的計(jì)算公式f(x)是不同的,該程序員希望曲線函數(shù)的種類可以通過繼承curve類的方式任意增加,增加一個(gè)新的f(x)時(shí)不改變curve類中的內(nèi)容,也不改變利用curve類進(jìn)行圖形繪制的算法。已部分完成的curve類定義和實(shí)現(xiàn)如下:class curve public:void setPxs( ) /*把獲取的橫坐標(biāo)數(shù)據(jù)存放在pxs代表的數(shù)組中,并為count置值*/ double* getPxs( ) const return pxs;int getCount( ) const return count;double* getPys( ) const ;private:double* pxs;double* pys;int count;1、請(qǐng)按照該程序員的設(shè)計(jì)意圖給出成員函數(shù)getPys的完整實(shí)現(xiàn)。實(shí)現(xiàn)過程中,可以為curve類增加其它成員。可以假設(shè)setPxs函數(shù)已經(jīng)完整實(shí)現(xiàn),不需要考慮曲線的繪制和顯示。答:class curve public:void setPxs( ) /*把獲取的橫坐標(biāo)數(shù)據(jù)存放在pxs代表的數(shù)組中,并為count置值*/ double* getPxs( ) const return pxs;int getCount( ) const return count;double* getPys( ) const ;virtual double f(double)=0;private:double* pxs;double* pys;int count;double* curve:getPys( ) const if(pys=NULL) pys=new doublecount;for(int i=0;i<count;i+)pysi=f(pxsi);return pys;注:嚴(yán)格來講,還應(yīng)在析構(gòu)函數(shù)中釋放pxs和pys,但這部分不作為要考的語法點(diǎn),故此處略掉2、以曲線函數(shù):f(x)=3*x*x+2*x+1.為例,從curve派生一個(gè)類curve1,并用文字說明其它的函數(shù)(如:main函數(shù))如何利用基類curve中的getPys函數(shù)獲取該曲線的縱坐標(biāo)值。答:class curve1 : public curvevirtual double f(double x) return3*x*x+2*x+1; ;

    注意事項(xiàng)

    本文(《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》期末考試試題)為本站會(huì)員(jun****875)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

    溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




    關(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),我們立即給予刪除!

    欧美久久久一区二区三区,国产精品亚洲一区二区无码,亚洲国产精品综合久久20声音,亚洲国产精品无码久久久蜜芽
    <span id="plx27"><var id="plx27"></var></span>
    <dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>