清華大學(xué)計(jì)算機(jī)系C++期末考試題及答案_第1頁(yè)
清華大學(xué)計(jì)算機(jī)系C++期末考試題及答案_第2頁(yè)
清華大學(xué)計(jì)算機(jī)系C++期末考試題及答案_第3頁(yè)
清華大學(xué)計(jì)算機(jī)系C++期末考試題及答案_第4頁(yè)
清華大學(xué)計(jì)算機(jī)系C++期末考試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.C+期末考試題一、 填空題(25小題,共50分)(以下每小題1分,共10分)1 在C+中,函數(shù)的參數(shù)有兩種傳遞方式,它們是值傳遞和_。地址或指針或引用傳遞 2 當(dāng)一個(gè)成員函數(shù)被調(diào)用時(shí),該成員函數(shù)的 _指向調(diào)用它的對(duì)象。this指針 3 在基類和派生類中,派生類可以定義其基類中不具備的數(shù)據(jù)和操作。對(duì)兩個(gè)有相同名字的數(shù)據(jù)成員進(jìn)行訪問(wèn)時(shí),如果沒(méi)有 _,對(duì)此數(shù)據(jù)成員的訪問(wèn)將出現(xiàn)歧義。作用域分隔符限定時(shí)4 拷貝構(gòu)造函數(shù)使用 _作為參數(shù)初始化創(chuàng)建中的對(duì)象。引用5 在公有繼承的情況下,基類數(shù)據(jù)成員在派生類中的訪問(wèn)權(quán)限 _。保持不變6 描述命題A小于B或小于C的表達(dá)式為 _。AB|Ac&b=c的值是 _。0

2、 (以下每小題2分,共20分)11 面向?qū)ο蟮某绦蛟O(shè)計(jì)有四大特征,它們是抽象、封裝、 _、 _。 繼承 、 多態(tài)12 在C+中,定義重載函數(shù)時(shí),應(yīng)至少使重載函數(shù)的參數(shù)個(gè)數(shù)或參數(shù)類型 _;在基類和派生類中,成員函數(shù)的覆蓋是指 _。不同 派生類成員函數(shù)與在基類被覆蓋的成員函數(shù)名、參數(shù)個(gè)數(shù)、參數(shù)類型和返回值類型均相同 13 構(gòu)造函數(shù)與析構(gòu)函數(shù)除功能不同外,在定義形式上,它們的區(qū)別還包括構(gòu)造函數(shù)名與類名相同,而析構(gòu)函數(shù)名是在類名前加一個(gè)、 _、 _。析構(gòu)函數(shù)沒(méi)有參數(shù) 、 析構(gòu)函數(shù)可以定義為虛函數(shù) 14 動(dòng)態(tài)聯(lián)編要滿足兩個(gè)條件,它們是 _、 _。 被調(diào)用的成員函數(shù)是虛函數(shù) 、 用指針或引用調(diào)用虛函數(shù)15

3、 在C+類中,有一種不能定義對(duì)象的類,這樣的類只能被繼承,稱之為 _,定義該類至少具有一個(gè) _。抽象類 純虛函數(shù)16 在C+類中,const關(guān)鍵字可以修飾對(duì)象和成員函數(shù),const對(duì)象不能 _,const成員函數(shù)不能 _。 被修改 修改類數(shù)據(jù)成員 17 舉出C+中兩種用戶自定義的數(shù)據(jù)類型: _、 _。類 、 枚舉 18 C+中沒(méi)有字符串類型,字符串是通過(guò) _來(lái)表示的,每一個(gè)字符串都有一個(gè)結(jié)尾字符 _。字符數(shù)組 019 C+中沒(méi)有輸入輸出語(yǔ)句,輸入輸出是通過(guò) _實(shí)現(xiàn)的, 寫出一條打印整型變量n的輸出語(yǔ)句: _。 輸入輸出庫(kù) coutn;20 舉出C+中兩種代碼復(fù)用的方式: _、 _。 繼承 、

4、復(fù)用 。(以下每小題4分,共20分) 21 下面程序的運(yùn)行結(jié)果是 _3_。#include void main()char a=a,b=j;float x;x=(b-a)/(F-A);printf(%dn,(int)(3.14*x);22 下面程序的運(yùn)行結(jié)果是 _。#include iostream.h void main( ) int i=1;while (i=15)i+;if (i%3!=2) continue; else cout i=iendl;結(jié)果:2 5 8 11 1423 下面程序的運(yùn)行結(jié)果是 _。#include iostream.h class test private:in

5、t num; float fl; public:test( ); int getint( )return num; float getfloat( )return fl; test( ); ; test:test( ) cout Initalizing default endl; num=0;fl=0.0; test:test( )cout Desdtructor is active endl; void main( ) test array2; cout array1.getint( ) array1.getfloat( ) endl; 結(jié)果:Initalizing defaultInita

6、lizing default0 0Desdtructor is activeDesdtructor is active24 下面程序的運(yùn)行結(jié)果是 _。#include class Apublic:A()coutA:A() called.n;virtual A()coutA:A() called.n; class B:public Apublic:B(int i)coutB:B() called.n;buf=new chari;virtual B()delete buf;coutB:B() called.n;private:char *buf;void fun(A *a)delete a;voi

7、d main()A *a=new B(15);fun(a);結(jié)果:A:A() called.B:B() called.B:B() called.A:A() called.25 下面程序的運(yùn)行結(jié)果是 _。#include int a =1,3,5,7,9;int *p =a,a+1,a+2,a+3,a+4;void main( )printf(%dt%dt%dn,a4,*(a+2),*p1);printf(%dt%dt%dn,*(p+1)+a2,*(p+4)-*(p+0),*(a+3)%a4); 結(jié)果:9 5 38 4 7二、 問(wèn)答題(每小題5分,共20分)1 若程序員沒(méi)有定義拷貝構(gòu)造函數(shù),則編

8、譯器自動(dòng)生成一個(gè)缺省的拷貝構(gòu)造函數(shù),它可能會(huì)產(chǎn)生什么問(wèn)題?解答要點(diǎn):當(dāng)對(duì)象含有指針數(shù)據(jù)成員,并用它初始化同類型的另一個(gè)對(duì)象時(shí),缺省的拷貝構(gòu)造函數(shù)只能將該對(duì)象的數(shù)據(jù)成員復(fù)制給另一個(gè)對(duì)象,而不能將該對(duì)象中指針?biāo)赶虻膬?nèi)存單元也復(fù)制過(guò)去。這樣,就可能出現(xiàn)同一內(nèi)存單元釋放兩次,導(dǎo)致程序運(yùn)行出錯(cuò)。2 簡(jiǎn)述成員函數(shù)、全局函數(shù)和友元函數(shù)的差別。解答要點(diǎn):以下幾點(diǎn)必須說(shuō)清楚:成員函數(shù)是在類內(nèi)部定義的,作用域在類的內(nèi)部,成員函數(shù)可以訪問(wèn)類的數(shù)據(jù)成員(公有、保護(hù)和私有數(shù)據(jù)成員),可以調(diào)用該類的其它成員函數(shù)(公有、保護(hù)和私有成員函數(shù)),可以調(diào)用全局函數(shù)。如果友元函數(shù)是另一個(gè)類的公有成員函數(shù),則該類的成員函數(shù)也只能通

9、過(guò)那個(gè)類的對(duì)象調(diào)用,不能調(diào)用那個(gè)類的保護(hù)和私有成員函數(shù)。非本類成員函數(shù)(其它類成員函數(shù)或全局函數(shù))可以通過(guò)該類的對(duì)象訪問(wèn)該類的公有數(shù)據(jù)成員和調(diào)用該類的的公有成員函數(shù)。不是在類中定義的成員函數(shù)都是全局函數(shù)。如果某一個(gè)函數(shù)(全局函數(shù)或類的成員函數(shù))定義為另一個(gè)類的友元函數(shù),需要在那個(gè)類中用friend關(guān)鍵字聲明,友元函數(shù)并不是類的成員,它的定義自然是在那個(gè)類的外面。3 簡(jiǎn)述結(jié)構(gòu)化的程序設(shè)計(jì)、面向?qū)ο蟮某绦蛟O(shè)計(jì)的基本思想。解答要點(diǎn):結(jié)構(gòu)化的程序設(shè)計(jì)將數(shù)據(jù)和對(duì)數(shù)據(jù)的操作分離,程序是由一個(gè)個(gè)的函數(shù)組成的,面向?qū)ο蟮某绦蛟O(shè)計(jì)將數(shù)據(jù)和操作封裝在一起,程序是由一個(gè)個(gè)對(duì)象組成的,對(duì)象之間通過(guò)接口進(jìn)行通信,它能夠

10、較好地支持程序代碼的復(fù)用。4 結(jié)構(gòu)struct和類class有什么異同?解答要點(diǎn):struct和class都可以定義類,但是缺省訪問(wèn)權(quán)限說(shuō)明時(shí),struct的成員是公有的,而class的成員是私有的。在C+中,struct可被class代替。三、找出下面程序(或程序段)中的語(yǔ)法錯(cuò)誤,并予以糾正(每小題4分,共8分)(1)程序功能是倒序輸出各給定的字符串。#include void main()char str5 =First,Second,Third,Forth,Fifth;char *cp =str4,str3,str2,str1,str0;int i; while(i=5)printf(%

11、c ,*(cp+i);i+; char str5 =First,Second,Third,Forth,Fifth;應(yīng)為char str510 =First,Second,Third,Forth,Fifth; while(i=5)應(yīng)為while(i5) printf(%c ,*(cp+i);應(yīng)為printf(%s,*(cp+i); int i;應(yīng)為int i=0;(2)程序功能是將各個(gè)平方根值放入數(shù)組中。#include void main()int max,a,i;scanf(%d%d,max,a);double xmax;for (i=0;imax;i+)xi=sqrt(a*i); 增加#i

12、nclude scanf(%d%d,max,a);應(yīng)為scanf(%d%d,&max,&a); double xmax;改為:double *x=new doublemax;delete x;四、(8分)下列shape類是一個(gè)表示形狀的抽象類,area( )為求圖形面積的函數(shù),total( )則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。請(qǐng)從shape類派生三角形類(triangle)、矩形類(rectangle),并給出具體的求面積函數(shù)。 class shape public: virtual float area( )=0; ; float total(shape *s ,int n)

13、 float sum=0.0; for(int i=0;iarea( ); return sum; class Triangle:public Shapepublic:Triangle(double h,double w)H=h;W=w;double Area() constreturn H*W*0.5;private:double H,W; class Rectangle:public Shapepublic:Rectangle(double h,double w)H=h;W=w;double Area()constreturn H*W;private:double H,W;五、(6分)完成順序查找函數(shù)f_seq( )。其過(guò)程是:從表頭開(kāi)始,根據(jù)給定的模式,逐項(xiàng)與表中元素比較。如果找到所需元素,則查找成功,并打印出它在表中的順序號(hào)。如果查找整個(gè)表仍未找到所需對(duì)象,則查找失敗#include void f_seq(char *list,char *object,int len)/list 指針數(shù)組,指向字符串/object 模式串/le

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論