華僑大學(xué)C++試卷_第1頁
華僑大學(xué)C++試卷_第2頁
華僑大學(xué)C++試卷_第3頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)用文檔華僑大學(xué) 面向?qū)ο蟪绦蛟O(shè)計(jì)(二) 試卷B班級 學(xué)號姓名 成績注意:請將所有答案寫在答卷上!一、填空題(15分,每小題1分)1. 如果用戶自定義的函數(shù)在調(diào)用點(diǎn)之后再定義,則在調(diào)用點(diǎn)之前,必須用(1)對被調(diào)函數(shù)進(jìn)行說明。2. 函數(shù)的遞歸調(diào)用可以有直接遞歸調(diào)用和(2)遞歸調(diào)用。3. 靜態(tài)全局變量的作用域是(3)。4. 若將某函數(shù)定義為靜態(tài)型(static ),則該函數(shù)只能被(4)所調(diào)用。5. main(int argc,char *argv)函數(shù)中的參數(shù) argv 用于(5)。6. H提供了一種在程序內(nèi)和程序之間組織和使用名稱的技術(shù)。7. 用“con st類型標(biāo)識符&弓I用名=目標(biāo)變

2、量名;”聲明引用,此處con st的含義是(7) <8. C+語言中,(8)定義一個(gè)結(jié)構(gòu)體類型,該結(jié)構(gòu)類型中包含指向自身結(jié)構(gòu)類型的指針成員。(填“可以”或“不可以”)9. 若有類型定義“ typedef char STRING80; STRING s; ”,貝U s 的類型為(9)。10. 類的對象可以直接訪問類中的(10)成員。(private/protected/public )11. 在定義類時(shí),若沒有為類提供析構(gòu)函數(shù),則編譯系統(tǒng)會(huì)自動(dòng)為該類創(chuàng)建一個(gè)默認(rèn)的析構(gòu)函數(shù),其形式為(11)。12. 拷貝構(gòu)造函數(shù)的功能是實(shí)現(xiàn)對象值的拷貝,通過將一個(gè)同類對象的值拷貝給一個(gè)新對象,來完成對新對象

3、的初始化。定義一個(gè)拷貝構(gòu)造函數(shù)的方式是(12)。13. 當(dāng)希望一個(gè)類(如 A)可以存取另一個(gè)類(如 B)的私有成員時(shí),可以將該類(A)聲明為另一類(B)的友元類,友元類(A)的所有成員函數(shù)都可視為該類(£)的(13)函數(shù)。14. 在靜態(tài)成員函數(shù)的實(shí)現(xiàn)中不能直接引用類中說明的非靜態(tài)成員,但可以引用類中說明的(14)成員。15. C+支持兩種不同類型的多態(tài):一種是編譯時(shí)的多態(tài),另一種是(15)時(shí)的多態(tài)。二、選擇題(18分,每小題2分)1. 進(jìn)行文件操作時(shí),需要包含(1) _文件。A)iostream B ) fstream C ) stdio.h D ) stdlib.h2. 若有定義:

4、 enum Weekday sun=7,mon=1,tue,wed,thu,fri,sat day;,以下正確的語句是(2)。A)mon+; B)i nt k=mo n+1; C) day=7; D)day+;3. 若有定義:int (*p)(int,int);,則錯(cuò)誤的敘述是(3)。A) p是一個(gè)指向返回值類型為int,帶有兩個(gè)int型參數(shù)的函數(shù)的指針B) 該類型的變量p可以作為另外一個(gè)函數(shù)的參數(shù)C) 若已定義了函數(shù)int Sum(int x,int y),則p可以指向函數(shù) SumD) p可以作自增運(yùn)算p+4. 若已有定義:structStudent char *name,int age,f

5、loat mark;s8;Student* p=s;,以下語句(組),正確的是(4)。A) cin> >s0. name»sO.age»sO.mark;B) cin> >p_>age>>p_>mark;p_ >n ame="Liuhua"C) s1. name=new char10;strcpy(p->n ame, "Liuhua");D) p->n ame=new char10; strcpy(p->n ame, "Liuhua");5. 若

6、有定義:int a,b;,下面引用變量的聲明中,(5)是正確的。A) int& ra=a; int& &rra=ra; B) int& y=10;C) int& z=i nt;D) int &x=a; int &y=b;6. 對于下面定義的類 Myclass,在函數(shù)f中可以將對象 obj的成員data值修改為50的語 句是(6)。class Myclasspublic:Myclass(i nt x) data=x; void SetNum(i nt value) data=value; private:int data;void f(vo

7、id)Myclass obj(45),*ptr=&obj;(6)A) obj.data=50; B)obj.Myclass(50); C)ptr->SetNum(50); D)ptr->data=50;7. 下面敘述正確的是(7)。A)基類的protected成員不能被派生類的成員函數(shù)訪問B)基類的public成員能被派生類的對象直接訪問C)基類的protected 成員在派生類中可能是 privated 的D)基類的private成員不能被基類的成員函數(shù)訪問8. 構(gòu)造函數(shù)不具備的特征的是(8)B)構(gòu)造函數(shù)可以重載D)構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)B)基類指針可以指向基類對象D)

8、派生類指針可以指向基類對象A)構(gòu)造函數(shù)的函數(shù)名與類名相同C)構(gòu)造函數(shù)必須有返回值類型9. 下面敘述錯(cuò)誤的是(9)。A)基類指針可以指向派生類對象C)派生類指針可以指向派生類對象三、閱讀程序題(45分)1. 閱讀下面程序,給出程序的運(yùn)行結(jié)果。(15分,每小題5分)1)#in clude<iostream>using n amespace std;void Fun (i nt x,i nt *py,i nt& z)x+; (*py)-; z*=2; cout<<"x="<<x<<","<<&

9、quot;*py="<<*py<<","<<"z="<<z<<e ndl;void mai n(void)int a=1,b=2,c=3;Fun (a,& b,c); cout<<"a="<<a<<","<<"b="<<b<<","<<"c="<<c<<e ndl;2)#i

10、n clude<iostream>using n amespace std;void P(i nt w)if (w=0) retur n;P(w-1);cout<<w;P(w-1);void mai n(void) P(3); 3)#in clude<iostream>using n amespace std;void prin t(i nt, in t,i nt (*p_fu n)(i nt, in t);int add(i nt,i nt);int substract(i nt,i nt);void mai n(void)int a=10,b=-20,C

11、hoice;in t(*p)(i nt,i nt);cout<<"E nter your choice:"cin> >Choice;switch(Choice)case 1: p=add; break;default: p=substract;prin t(a,b,p);int add(i nt x,i nt y)retur n x+y; int substract(i nt x,i nt y) retur n x-y; void prin t(i nt i,i nt j,i nt (*p_fu n)(i nt,i nt) cout<<&

12、quot;The result is "<<p_fu n(i,j)<<e ndl;實(shí)用文檔程序運(yùn)行時(shí):En ter your Choice:12. 閱讀下面程序,回答相關(guān)問題。(30分)1) ( 7 分)#in elude <iostream>using n amespace std;struct Stude ntint num;char n ame20;char sex;int age;void mai n(void)Student* Fun(Student *,int);Stude nt stu= 11,"lili n" ,

13、'M',18,3,"su nn y",'M',24,2,"zhao",'M',20, 4,"Liu yanhong",'F',30;int size=sizeof(stu)/sizeof(Stude nt);Stude nt *p=Fun( stu,size);cout<<p->nu m<<'t'<<p->n ame<<'t'<<p->age<<e n

14、dl;Student* Fun(Student *s, int n) /問題 a 和 bint in dex=0,i;for(i=1;i< n; i+)if(si. num >si ndex. num) in dex=i;retur n s+in dex;a) (3分)給出函數(shù)Fun()的功能;b) ( 4分)若將函數(shù) Student* Fun(Student *s, int n)的返回值類型改為Student& ,要完成相同的功能,給出源程序中其它需要修改的語句并作相應(yīng)的修改。2) ( 6 分)#in clude<iostream>using n amespa

15、ce std;class Stude ntchar* n ame;int age;float score;public:Stude nt(char* n ,i nt a,float s):age(a),score(s)cout<<"c on struct in g."< <n<<en dl;n ame=new charstrle n(n )+1;strcpy( name, n);Stude nt()cout<<"destruct in g."< <n ame<<e ndl; dele

16、te n ame;;void mai n(void)Student s("Liu",18,86.5);Student *p_st1= new Student("Chen",18,86.5);delete p_st1; /問題 b)a) ( 4分)給出程序的運(yùn)行結(jié)果;b) ( 2分)若去掉語句 delete p_st1;,程序運(yùn)行結(jié)果會(huì)不同嗎?3) ( 9 分)#in clude<iostream>using n amespace std;class Poi ntprivate:char *n ame;float X,Y;public:Poi

17、nt(char* s,float a,float b)X=a;Y=b;n ame=new charstrle n( s)+1;strcpy( names);cout<<"I nitializ ing Poin t: " <<n ame<<", X="<<X<<",丫="<<Y<<e ndl;Point(Point &p);float GetX() return X; float GetY() return Y; void Show() cout

18、<<" name:"<< name<<", X="<<X<<",Y="<<Y<<e ndl; Poin t()cout<<"deleti ng Poi nt: "< <n ame<<", "<<X<<","<<Y<<e ndl; delete n ame;class LinePoint p1,p2;public

19、:Lin e(char* pin ame,float x1,float y1,char* p2n ame,float x2, float y2):p1(p1 name,x1,y1),p2(p2 name,x2,y2) cout<<"L ine con structor."<<e ndl;實(shí)用文檔Li ne()cout<<"L ine destructor."<<e ndl;;Point:Point(Point &p) /問題 bn ame=new charstrle n(p.n ame)+1;str

20、cpy (n ame,p .n ame);X=p.X;Y=p.Y;cout<<"Copi ng Poi nt: "<<p. name<<","<<X<<","<<Y<<e ndl;void fun( Poi nt p)p.Show(); void mai n(void)Poi nt A("objA",12,24);fun( A);Line L1("p1",1,2,"p2",3,4);a) (

21、6分)給出程序的運(yùn)行結(jié)果;b) ( 3分)給出拷貝構(gòu)造函數(shù)Point(Point &p)的功能。是否可以去掉該函數(shù)?4) (8 分)#in clude<iostream>using n amespace std;class Basepublic:int Bvalue;Base( in t v)Bvalue=v;cout<<"Base con structor."<<e ndl;int getBvalue() retur n Bvalue; ;class D1:public Basepublic:int D1value;D1(int

22、 v,int b):Base(v)D1value=b;cout<<"D1 con structor."<<e ndl;in t getD1value() return D1value; ;class D:public D1實(shí)用文檔void Simplify(void) /對分?jǐn)?shù)的分子和分母進(jìn)行化簡public :int Dvalue;int getDvalue() retur n Dvalue; D(i nt v1,i nt v2,i nt a):D1(v1,v2)Dvalue=a;cout<<"D con structor.&

23、quot;<<e ndl;void mai n(void)D obj(1,2,3);cout<<obj.getDvalue()<<e ndl; cout<<obj.getBvalue()<<e ndl; / cout<<obj.getD1value()<<e ndl;問題b)a)( 6分)給出程序的運(yùn)行結(jié)果;b)( 2 分)能否將表達(dá)式 obj.getBvalue() 改為 obj.Bvalue?四、編程題(22分)1. 一個(gè)簡單分?jǐn)?shù)類的結(jié)構(gòu)如下,請補(bǔ)充相應(yīng)代碼,使之完成程序功能。#in clude<io

24、stream.h> int gcd(i nt m,i nt n) /(1)完成求兩個(gè)數(shù)的最大公因數(shù)(5分)class Fractio nalNumber /分?jǐn)?shù)int nu merator;/分子int denomin ator; /分母public:Fracti on alNumber(i nt n=0,i nt d=1) /5分)Fractio nalNumber()cout<<"Destructor is called."<<e ndl;Fract ion alNumber(c onst Fract ion alNumber& x

25、) nu merator=x .nu merator;denomin ator=x.de nomin ator;Simplify。;cout<<"Copy con structor is called."<<e ndl;實(shí)用文檔int g=gcd(de nomin ator, nu merator);nu merator/=g;denomin ator/=g;void Output() cout <<n umerator<<"/"<<de nomi nator<<e ndl; /分?jǐn)?shù)

26、的輸出void add(const FractionalNumber& x) /分?jǐn)?shù)的加法(5 分)?friend Fract ion alNumber operator+(Fract ion alNumber& nu m1,Fractio nalNumber& nu m2); /友元函數(shù)的聲明;/類定義結(jié)束Fract ion alNumber operator+(Fract ion alNumber& nu m1,Fract ion alNumber& nu m2)int n result,dresult;dresult=nu m1.de nomin

27、ator* nu m2.de nomin ator;n result=nu m1. nu merator* nu m2.de no mi nator+nu m1.de nomin ator* nu m2, nu merator;retur n Fract ion alNumber( nresult,dresult);void mai n(void)/設(shè)計(jì)測試程序,創(chuàng)建類對象,使用output() 、add()和運(yùn)算符 +'(7分)?/end of main()華僑大學(xué) 面向?qū)ο蟪绦蛟O(shè)計(jì)(二) 答卷姓名學(xué)號成績一、填空題(15分,每小題1分)(1)(2)(3)(4)(5)(6)(7)(8

28、)(9)(10)(11)(12)(13)(14)(15)二、選擇題(18分,每小題2分)(1)(3)(5)_(Z)(8)_(9)三、閱讀程序題(45分)1閱讀下面程序,給出程序的運(yùn)行結(jié)果。(15分,每小題5分)1)運(yùn)行結(jié)果:2)運(yùn)行結(jié)果:3)運(yùn)行結(jié)果:(30 分)2.閱讀下面程序,回答相關(guān)冋題1)( 7 分)a) (3分)函數(shù)Fun()的功能:b) (4分)需要修改:2)( 6 分)a)(4分)運(yùn)行結(jié)果:b)(2 分)3)( 9 分)a) ( 6分)運(yùn)行結(jié)果:b) (3 分)4)(8 分)1)( 6分)運(yùn)行結(jié)果:四、編程題(22分)1. 一個(gè)簡單分?jǐn)?shù)類的結(jié)構(gòu)如下,請補(bǔ)充相應(yīng)代碼,使之完成程序功

29、能。5分)in t gcd(i nt m,i nt n) /( 1)完成求兩個(gè)數(shù)的最大公因數(shù)(Fract ion alNumber(i nt n=0,i nt d=1) /完成構(gòu)造函數(shù)的實(shí)現(xiàn)(5分)void add(const FractionalNumber& x) /分?jǐn)?shù)的加法(5 分)void mai n(void)/設(shè)計(jì)測試程序,創(chuàng)建類對象,使用output()、add()和運(yùn)算符 +' (7 分)/end of mai n()參考答案、填空題(15分,每小題1分)實(shí)用文檔(1 )函數(shù)原型 (2)間接 (3)定義它所在的源程序文件(4)定義該函數(shù)的源程序所在文件的其他函

30、數(shù)(5)指針數(shù)組中各元素分別指向命令行中的各個(gè)字符串(6)命名空間(7 )引用的目標(biāo)變量是常量(8) 可以 9. 字符數(shù)組 lO.public 11.類名12.類名(con st類名&對象名) 13 .友元函數(shù)14.靜態(tài)15.運(yùn)行二、選擇題(18分,每小題2分)(1) B(2)B( 3)D(4)D( 5)D( 6)C( 7)C( 8)C ( 9) D三、閱讀程序題(45分)1閱讀下面程序,給出程序的運(yùn)行結(jié)果。(15分,每小題5分)1)CA: Document s and S. - - 口回x=2, *py-l ,a=6 a=l,b=lc -6Fpess anv key to conti

31、nue2) 1 2 1 3 1 2 13)oiDocusents and.-二 xllEnter* youlj* clioi匚薜士The result is -10 Press any key to cont1A*Ld 1Jd2.閱讀下面程序,回答相關(guān)冋題。(30分)1) (7 分)a) 函數(shù)返回最大學(xué)號的學(xué)生指針;b) 需要修改的地方:Stude nt& Fun( Stude nt *,i nt);修改 1Student p=Fun(stu,size); /修改 2修改3cout<<p .num <<'t'<<p .n ame<

32、;<'t'<<p.age<<e ndl; return sindex;/修改 42) (6 分)a)c: *C: Docu»ents and.constructing.Liu constructing Chen JdEsti'uct zin - Chen destructinQ(. . .Liu. Press £iny key to continueb)去掉語句后,結(jié)果不同:小 *C: Dccu»ents and bonstpuctingr.-Liu. .Chendestructing _.*Liu Fress anj/ key to continue_ X3) ( 9 分)a)cv -C:Docu*ents and Settings£d>.lxInitializing Poi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論