C++試題及答案_第1頁(yè)
C++試題及答案_第2頁(yè)
C++試題及答案_第3頁(yè)
C++試題及答案_第4頁(yè)
C++試題及答案_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余22頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C+考試試卷得 分一、單項(xiàng)選擇(每空1分,共20分)(注意選項(xiàng)填寫到下面表格中!)12345678910Cbdcb111213141516171819201.已知:char *s=n123456u;則cout«s+2; 的輸出結(jié)果為()oA)123456B) 3C)3456D) 22.已知:char *s=Habcden;貝ij sizeof(s) >sizeof(*s)、strlen(s)的值依次為()oA)6 1 5B)4 1 5 C) 6 5 4D) 4 4 53. 下列語(yǔ)句中正確的是()。A)char *s; *s="abcdefgM;B)char *s; c

2、in»s;C)char *s l=”abcd”,*s2=”ehykM;strcpy(sl,s2);D)char *s=nabcdefg" cout«*s;4. C+中,關(guān)于構(gòu)造函數(shù)和析構(gòu)函數(shù),正確的描述是()。A)在定義類時(shí),必須自定義構(gòu)造函數(shù)和析構(gòu)函數(shù),在創(chuàng)建對(duì)彖時(shí)自動(dòng)調(diào)用構(gòu)造函數(shù),在釋 放對(duì)象時(shí)自動(dòng)調(diào)用析構(gòu)函數(shù)B)構(gòu)造函數(shù)和析構(gòu)函數(shù)均可以重載C)已知類Student以及Student巾;在使用p=new Student;時(shí)自動(dòng)調(diào)用無(wú)參構(gòu)造函數(shù)創(chuàng)建動(dòng)態(tài)對(duì) 象,在delelte p;時(shí)自動(dòng)調(diào)用析構(gòu)函數(shù)釋放動(dòng)態(tài)對(duì)象D)構(gòu)造函數(shù)和析構(gòu)函數(shù)都可以成為虛函數(shù)5.關(guān)于拷貝構(gòu)

3、造函數(shù)的描述正確的是()OA)通常的拷構(gòu)造函數(shù)的參數(shù)是象的指型B)如果不自定拷構(gòu)造函數(shù),系提供默的拷構(gòu)造函數(shù)C)如果有自定的構(gòu)造函數(shù),系就不再提供拷構(gòu)造函數(shù)D)如果需要用已有象新建的象初始化,就必自定拷構(gòu)造函數(shù)6. 有關(guān)靜成的描述的是()oA)某個(gè)的靜數(shù)據(jù)成由 的所有象所共享B)的公有靜數(shù)據(jù)成既可以用的象,也可以直接用作用域運(yùn)算符“::通”名來(lái)C)靜數(shù)據(jù)成既可以是私有成,也可以是公有成D)中一旦定了靜數(shù)據(jù)成,就必定靜成函數(shù),以便靜數(shù)據(jù)成行操作7. 一個(gè)的友元函數(shù)或友元能通成 運(yùn)算符 的()oA)所有成B)私有成C)保成D)公有成8. 下面關(guān)于承方式的描述中 的是()oA)公有承,基的公有成和保

4、成在派生中都成公有成B)私有承,基的公有成和保成在派生中都成私有成C)保承,基的公有成和保成在派生中都成保成D)無(wú)哪種承方式,基中的私有成在派生中都無(wú)法直接9. 型兼容是指在基象可以出的地方,都可以使用公有派生的象,已知:class BaseClass ;class DerivedClass:public BaseClass ; BaseClassb,*pb;DerivedClass d,*pd;)oF面不屬于型兼容的是(A) b=d;B) BaseClass &bb=d;C)pd=&b;),其他方面都必須與基類屮相應(yīng)的虛函數(shù)D)pb=&d;10. 在派生類中重新定義虛

5、函數(shù)時(shí),除了(保持一致。A)參數(shù)個(gè)數(shù)B)參數(shù)類型C)函數(shù)名稱D)函數(shù)體16.下列關(guān)于getlineO函數(shù)的敘述中,錯(cuò)誤的是()O11. 下列運(yùn)算符中,必須使用成員函數(shù)進(jìn)行重載的是()。A)=B) =C)»D) +12. 下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是()。A)運(yùn)算符重載不可以改變優(yōu)先級(jí)B)運(yùn)算符重載不可以改變結(jié)合性C)運(yùn)算符重載不可以改變運(yùn)算符的操作數(shù)個(gè)數(shù)D)加法運(yùn)算符“ +和”賦值運(yùn)算符“二都”重載之后,意味著“ +=也”被重載了13. 有關(guān)運(yùn)算符重載的說(shuō)法錯(cuò)誤的是()。A)在一個(gè)類中,可以對(duì)一個(gè)操作符進(jìn)行多次重載B)重載賦值運(yùn)算符“二時(shí)”,為了保持原有特性,重載運(yùn)算符函數(shù)中

6、應(yīng)該使用返回語(yǔ)句“remm *this; ”C)C+屮所有的運(yùn)算符都可以被重載D)如果在某個(gè)類屮使用成員函數(shù)對(duì)運(yùn)算符重載,其左操作數(shù)必須是該類的對(duì)象14. 已知某個(gè)類的友元函數(shù)重載了 +=和-,a, b , c是該類的對(duì)象,貝IJ “ a+=b-c ”被C+編譯 器解釋為()oA) opera tor+=(a ,ope ra tor-(b,c)B) a.operator+=(b.operator-(c)C) operator+=(a,b.operator-(c)D) a.operator+=(operator-(b,c)15. 下面4個(gè)選項(xiàng)屮,專門用于讀取單個(gè)字符的是()。A) cin.rea

7、d()B) cin.get() C) cin.put() D) cin.getline()A) getUne()函數(shù)僅用于從鍵盤而不能從文件讀取字符串B) getline()函數(shù)讀取字符串長(zhǎng)度是受限制的C) getline()函數(shù)讀取字符串時(shí),遇到終止符就停止D) getline()函數(shù)中所使用的終止符默認(rèn)是換行符,也可指定其他終止符17. 打開文件的方式中,()以追加方式打開文件。A) ios:inB) ios:out C) ios:app D) ios:trunc18. 當(dāng)使用ofs憂am流類定義一個(gè)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件的隱含打開方式為()OA) ios: outl ios:b

8、inaryB) ios:inl ios:binaryC) ios:outD) ios:in19. 有關(guān)函數(shù)模板和模板函數(shù)說(shuō)法錯(cuò)誤的是()。A) 函數(shù)模板只是對(duì)函數(shù)的描述,編譯器不為其產(chǎn)生任何執(zhí)行代碼,所以它不是一個(gè)實(shí)實(shí)在 在的函數(shù)B) 模板函數(shù)是實(shí)實(shí)在在的函數(shù),它由編譯系統(tǒng)在遇到具體函數(shù)調(diào)用時(shí)所生成,并調(diào)用執(zhí)行C) 函數(shù)模板需要實(shí)例化為模板函數(shù)后才能執(zhí)行D) 當(dāng)函數(shù)模板和一般函數(shù)同名時(shí),系統(tǒng)先去匹配函數(shù)模板,將其實(shí)例化后進(jìn)行調(diào)用20 個(gè)()允許用戶為類定義一種模式,使得類中的某些數(shù)據(jù)成員及某些成員函數(shù)的返回值能取任意類型。A)類模板 B)模板類 C)函數(shù)模板D)模板函數(shù)得分二、判斷題(每空 1

9、分,共20分)注意:請(qǐng)將判斷題結(jié)果(正確為 T,錯(cuò)誤為F)填寫到下面表格屮!12345678910111213141516171819201.定中的成默的限是private。2. 一個(gè)中的保成和公有成 似,在程序的任何地方都可以被。3. 系提供的缺省構(gòu)造函數(shù)沒有參數(shù),所以自定構(gòu)造函數(shù)必有參數(shù)。4. 一旦自定了構(gòu)造函數(shù),系便不再提供缺省的構(gòu)造函數(shù)。5. 一個(gè)只能有一個(gè)構(gòu)造函數(shù)和一個(gè)析構(gòu)函數(shù)。6. 靜數(shù)據(jù)成必在中行定和初始化。7. 靜成函數(shù)中不能非靜成。8. 重插入運(yùn)算符“vv必”采用成重。9. 如果A是B的友,那么A中的所有成函數(shù)都可以B中的所有成。10. 放派生的象,首先用基的析構(gòu)函數(shù),然后用

10、派生的析構(gòu)函數(shù)。11. 有虛函數(shù)的稱虛基,它不能用來(lái)定象。12. 虛函數(shù)只有在有承的情況才會(huì)存在。13. 已知:class Base 1 /;class Base2/;class Derived:public Base 1,public Base2 Derived():Base2(),Base 1()/;建 De rive d的象,先用的構(gòu)造 Base2的構(gòu)造函數(shù),然后用 Base 1的構(gòu)造函數(shù),最后 用 Derived函數(shù)。14. 基的指或引用用虛函數(shù)采用后期定。15. 由抽象基 承得到的派生肯定是具體。16. 友元函數(shù)內(nèi)能任何象的任何成。17. 二元運(yùn)算符采用成函數(shù)重,只需要一個(gè)參數(shù),而且

11、參數(shù)可以是內(nèi)部型。18. 一元運(yùn)算符采用某個(gè)的友元函數(shù)重需要一個(gè)參數(shù),參數(shù)的象,不能是其他型。19. C+的輸入/輸出流庫(kù)中,ios類是一個(gè)虛基類,istream類、ostream類以及streambuf 類都是ios類的派生類。20. 設(shè)inf是一個(gè)ifstream 類的流對(duì)象,貝ij inf.seekg(10,ios:beg);表示將文件指針從文件當(dāng) 前位置向后移動(dòng)10個(gè)字節(jié)。得 分 三、讀程序?qū)懡Y(jié)果(每空2分,共32分)1(注意將結(jié)果寫在下面相應(yīng)橫線上!)(1) (2)(3)(6)(7)(8)(10)(11)(12)(13)(14)(15)(16)1.寫出下面程序的運(yùn)行結(jié)果。# incl

12、ude <iostream.h>class Apublic:A()cout«nA:A()called.nn; virtualA() cout«nA:-A()called.nn;);class B:public Apublic:B(int i) cout«,'B:B()calied.nn;bufter=new chari; virtual B() delete buffer;cout«,'B:>B()called.nM;private:char* buffer;void fun(A*a) delete a; void ma

13、in()A "new B(10);iun(b);運(yùn)行結(jié)果:_(1)_(2)_(4)2. 寫出下面程序的運(yùn)行結(jié)果。# include <iostre a m.h>class Shapepublic:void Draw()cout«HS hape "«endl;virtual void Print()=O;;class Circle:public Shape private:double r;public:void Draw()cout«nCircle n«e ndl;void SetData(double radius)r=

14、radius;void Print()cout«"area:"«3.14*r*r«endl;;class Rectangle:public Shapeprivate:double a,b;public:void Draw()cout«nRectangleH«endl;void SetData(double x,double y)a=x,b=y;void Print()cout«Marea:,«a:icb«endl;void main()Circle c;Rectangle r;Shape *sp

15、l=&c;Shape &sp2=r;c.SetData(lO);r.SetData(3,5);spl->Draw();c.Print();sp2.Draw();r.Print();運(yùn)行結(jié)果:(5)(6)(8)3. 寫出下面程序的運(yùn)行結(jié)果(注:運(yùn)行結(jié)果中首行的空白行不考慮)。# include <iostre a m.h> class CArraypublic:CArray(int i) Length=i;Buffer=new charLength+l;C Array () delete Bufter; int GetLength() return Length

16、; char& operator(int i);private:int Length;char* Bufter;char&CArray:opcrator(int i) static char ch;if( i<Leng th &&i>=0)return Bufieri;else cout«Hn Index out of range/1;re turn ch;void main() int ent;CArray string 1(6);char *string2=nNankaiH;for(cnt=0;cnt<8;cnt+)stringl

17、 cnt=string2cnt;cout«endl;for(cnt=0;cnt<8;cnt+)cout«stringlcnt;cout«AnM;cout«s tring 1 .GetLength()«endl;運(yùn)行結(jié)果:_(9)_(10) _(ID (12)(13) _(14)4. 寫出下面程序的運(yùn)行結(jié)果。# include <iostre a m.h>void fun(char *s)int n=0;whik(sn!='(r)n+;char t,*p=s+n-l;while (s<p)t=*s;*s=*p;*p

18、=t;S+;p;void main()char strO=nabcdefgH;iun(str);cout«str«endl;tun(str+l);cout«str«endl;運(yùn)行結(jié)果:一(15)(1© 得分四、程序填空(每空2分,共28分)(注意將結(jié)果寫在下面相應(yīng)橫線上?。?1)(2)(3)(5)(7)(8)(10)(11)(12)(13)(14)1.下面的程序是一個(gè)類模板,可實(shí)現(xiàn)求三個(gè)變量的和,請(qǐng)將程序補(bǔ)充完整# include <iostream.h>(1)class IT Type al, a2, a3;public: a 1

19、=b1;a2=b2; a3=b3;(3)(5) return a l+a2+a3;void main()fF<int> x(12,13,14), y(16,17,18);cout«x.sum( )«" "«y.sum( )«endl;2. 下面的程序?qū)⒁粋€(gè)普通函數(shù)作為類的友元函數(shù),求坐標(biāo)點(diǎn)之和,并且程序輸出結(jié)果為2,2,4,請(qǐng)將程序補(bǔ)充完整。# include <iostream.h>class PointintX,Y;public:(4) X=x; Y=y; Countp+; )Point(Point &am

20、p;p) X=p.X; Y=p.Y; Countp+; Point()Countp-;(5)static int Countp;void display()cout«X«H,'*«Y«H,n;;Point myfun(Point p 1, Point p2, Point p3) Point fmp(pl.X+p2.X+p3.X, pl.Y+p2.Y+p3.Y);(6)(7)void main()Point pp0,ppl(l,2),pp2(l);Point p=myfun(ppO,pp 1 ,pp2);p display ();cout«

21、; (8)«endl;/ 輸岀 Countp 的值3. 下面的程序?qū)⒁粋€(gè)已有文件的內(nèi)容復(fù)制到另一個(gè)文件中。請(qǐng)將程序補(bǔ)充完整。# include <iostream.h># include <fs tream.h># include<stdlib.h>void main()(9)_ infile.open(,d:iile 1 .txt",ios:in);if( Jin file) cout«"file 1 .txt can't open.nu;abort(); outfile.open(,d:file2.txt,

22、',ios:out);if( Jouttile) cout«"file2.txt can! open.nM;abort(); char str8O="OH;while (!in file .eof() infile.read(str,sizeof(str);cout«str;(10)cout«endl;infile.close();(11)n的數(shù)組空4. ARRAY類的定義如下,構(gòu)造函數(shù)把參數(shù)n的值賦給s,給v動(dòng)態(tài)分配長(zhǎng)度為間,然后利用數(shù)組參數(shù) a初始化v所指向的數(shù)組。請(qǐng)將類定義補(bǔ)充完整。class ARRAY int *v;int s

23、;public:ARRAY( int a, int n );ARRAY() delete v;int size() return s; int&operator(int n);;(12) ARRAY(int a, int n)if( n<=0 ) v=NULL; s=0; return; s=n;v= _(13)fbr(int i=0; i<n; i+)答案(1) A:A()called. B:>B()caned. A:A()called. Shape(6) area:314(7) Shape area:15(9) Index out of range.10) Index out o

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論