C++試題及答案 2_第1頁(yè)
C++試題及答案 2_第2頁(yè)
C++試題及答案 2_第3頁(yè)
C++試題及答案 2_第4頁(yè)
C++試題及答案 2_第5頁(yè)
已閱讀5頁(yè),還剩47頁(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、.1、 單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)1. 編寫(xiě)c+程序一般需經(jīng)過(guò)的幾個(gè)步驟依次是()a. 編輯、調(diào)試、編譯、連接b. 編輯、編譯、連接、運(yùn)行c. 編譯、調(diào)試、編輯、連接d. 編譯、編輯、連接、運(yùn)行答案:b2. 決定c+語(yǔ)言中函數(shù)的返回值類型的是()a. return語(yǔ)句中的表達(dá)式類型b. 調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型c. 調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型d. 在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型答案:d3. 下面敘述不正確的是()a. 派生類一般都用公有派生b. 對(duì)基類成員的訪問(wèn)必須是無(wú)二義性的c. 賦值兼容規(guī)則也適用于多重繼承的組合d. 基類的公有成員在派生類中仍然是公有的答

2、案:d4. 所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個(gè)實(shí)體,這實(shí)體也就是()a. 類b. 對(duì)象c. 函數(shù)體d. 數(shù)據(jù)塊答案:a5. 在公有派生類的成員函數(shù)不能直接訪問(wèn)基類中繼承來(lái)的某個(gè)成員,則該成員一定是基類中的()a. 私有成員b. 公有成員c. 保護(hù)成員d. 保護(hù)成員或私有成員答案:a6. 對(duì)基類和派生類的關(guān)系描述中,錯(cuò)誤的是()a. 派生類是基類的具體化b. 基類繼承了派生類的屬性c. 派生類是基類定義的延續(xù)d. 派生類是基類的特殊化答案:b7. 關(guān)于this指針使用說(shuō)法正確的是()a. 保證每個(gè)對(duì)象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)的代碼b. 保證基類私有成

3、員在子類中可以被訪問(wèn)。c. 保證基類保護(hù)成員在子類中可以被訪問(wèn)。d. 保證基類公有成員在子類中可以被訪問(wèn)。答案:a8. 所謂多態(tài)性是指 ()a. 不同的對(duì)象調(diào)用不同名稱的函數(shù)b. 不同的對(duì)象調(diào)用相同名稱的函數(shù)c. 一個(gè)對(duì)象調(diào)用不同名稱的函數(shù)d. 一個(gè)對(duì)象調(diào)用不同名稱的對(duì)象答案:b9. 一個(gè)函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,則應(yīng)把它定義為 ()a. 內(nèi)聯(lián)函數(shù)b. 重載函數(shù)c. 遞歸函數(shù)精品.d. 嵌套函數(shù)答案:a10. 下面函數(shù)模板定義中不正確的是()a. ab. bc. cd. d答案:a11. 假設(shè)classy:publicx,即類y是類x的派生類,則說(shuō)明一個(gè)y類的對(duì)象時(shí)和刪除y類對(duì)象時(shí),

4、調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的次序分別為()a. x,y;y,xb. x,y;x,yc. y,x;x,yd. y,x;y,x答案:a12. 適宜采用inline定義函數(shù)情況是()a. 函數(shù)體含有循環(huán)語(yǔ)句b. 函數(shù)體含有遞歸語(yǔ)句c. 函數(shù)代碼少、頻繁調(diào)用d. 函數(shù)代碼多、不常調(diào)用答案:c13. 假定一個(gè)類的構(gòu)造函數(shù)為a(int aa,int bb) a=aa-;b=a*bb;,則執(zhí)行a x(4,5);語(yǔ)句后,x.a和x.b的值分別為()a. 3和15b. 5和4c. 4和20d. 20和5答案:c14. 在類中說(shuō)明的成員可以使用關(guān)鍵字的是()a. publicb. externc. cpud. reg

5、ister答案:a15. 下列不能作為類的成員的是()a. 自身類對(duì)象的指針b. 自身類對(duì)象c. 自身類對(duì)象的引用d. 另一個(gè)類的對(duì)象答案:b16. 使用地址作為實(shí)參傳給形參,下列說(shuō)法正確的是()a. 實(shí)參是形參的備份b. 實(shí)參與形參無(wú)聯(lián)系c. 形參是實(shí)參的備份d. 實(shí)參與形參是同一對(duì)象答案:d17. 下列程序的輸出結(jié)果是()#include void main()int n3=10,20,30,40,50,60;int (*p)3;p=n;coutp00,*(p0+1),(*p)2ad. (*x).a()答案:b20. 關(guān)于對(duì)象概念的描述中,說(shuō)法錯(cuò)誤的是()a. 對(duì)象就是c語(yǔ)言中的結(jié)構(gòu)變量b

6、. 對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體c. 對(duì)象是類的一個(gè)變量d. 對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的答案:a二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。1. c+的流庫(kù)預(yù)定義了4個(gè)流,它們是cin、cout、clog和_。答案:(p193)cerr2. 每個(gè)對(duì)象都是所屬類的一個(gè)_。答案:(p69)實(shí)例3. 在已經(jīng)定義了整型指針ip后,為了得到一個(gè)包括10個(gè)整數(shù)的數(shù)組并由ip所指向,應(yīng)使用語(yǔ)句_。答案:(p78)int *ip=new int10;4. 函數(shù)模板中緊隨template之后尖括號(hào)內(nèi)的類型參數(shù)都要冠以保留字_。答案:(p1

7、45)class5. 定義類的動(dòng)態(tài)對(duì)象數(shù)組時(shí),系統(tǒng)只能夠自動(dòng)調(diào)用該類的_構(gòu)造函數(shù)對(duì)其進(jìn)行初始化。答案:(p80)無(wú)參6. 表達(dá)式cout8. 假如一個(gè)類的名稱為myclass,使用這個(gè)類的一個(gè)對(duì)象初始化該類的另一個(gè)對(duì)象時(shí),可以調(diào)用_構(gòu)造函數(shù)來(lái)完成此功能。答案:(p80)復(fù)制或拷貝9. 對(duì)賦值運(yùn)算符進(jìn)行重載時(shí),應(yīng)聲明為_(kāi)函數(shù)。答案:(p183)類成員10. 如果要把a(bǔ)類成員函數(shù)f()且返回值為void聲明為類b的友元函數(shù),則應(yīng)在類b的定義中加入的語(yǔ)句_。答案:(p109)friend void a:f();11. 下列程序段的輸出結(jié)果是_。for(i=0,j=10,k=0;i=j;i+,j-=3

8、,k=i+j);coutk;答案:412. string 類的_方法返回查找到的字符串在主串的位置。答案:(p40)find精品.13. int n=0;while(n=1)n+;while循環(huán)執(zhí)行次數(shù)是_。答案:無(wú)限次14. 控制格式輸入輸出的操作中,函數(shù)_是用來(lái)設(shè)置填充字符。要求給出函數(shù)名和參數(shù)類型答案:(p195)setfill(char)15. c+語(yǔ)言支持的兩種多態(tài)性分別是編譯時(shí)的多態(tài)性和_的多態(tài)性。答案:(p167)運(yùn)行時(shí)16. 設(shè)函數(shù)sum是由函數(shù)模板實(shí)現(xiàn)的,并且sum(3,6)和sum(4.6,8)都是正確的函數(shù)調(diào)用,則函數(shù)模板具有_個(gè)類型參數(shù)。答案:(p61)217. 執(zhí)行下

9、列代碼string str(helloc+);coutstr.substr(5,3);程序的輸出結(jié)果是_。答案:(p42)c+18. 在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,將一組對(duì)象的共同特性抽象出來(lái)形成_。答案:(p38)類19. 定義類動(dòng)態(tài)對(duì)象數(shù)組時(shí),元素只能靠自動(dòng)調(diào)用該類的_來(lái)進(jìn)行初始化。答案:(p77)無(wú)參構(gòu)造函數(shù)20. 已知有20個(gè)元素int類型向量v1,若用v1初始化為v2向量,語(yǔ)句是_。答案:(p151)ector v2(v1);3、 改錯(cuò)題(本大題共5小題,每小題2分,共10分)1. #include class testprivate:int x,y=20;public:test(int

10、i,int j)x=i,y=j;int getx()return x;int gety()return y;void main()test mt(10,20);coutmt.getx()endl;coutmt.gety()endl;答案:int x,y=20;在類內(nèi)部不能對(duì)數(shù)據(jù)成員直接賦值。修改int x,y;2. #include class testint x,y;public:fun(int i,int j)x=i;y=j;show()coutx=x;if(y)cout,y=yendl;coutendl;void main()test a;a.fun(1);精品.a.show();a.f

11、un(2,4);a.show();答案:int i,int j調(diào)用時(shí),既有一個(gè)參數(shù),也有兩個(gè)參數(shù),且沒(méi)有重載,所以參數(shù)需要帶默認(rèn)值。所以int i,int j錯(cuò)誤。修改int i,int j0/注j只要有一個(gè)int類型的數(shù)據(jù)就行。3. #include class aint i;public:virtual void fun()=0;a(int a)i=a;class b:public aint j;public:void fun()coutb:fun()n; b(int m,int n=0):a(m),j(n);void main()a *pa;b b(7);pa=&b;答案:b(int m

12、,int n=0):a(m),j(n)因?yàn)榛愂浅橄箢?,不能被?shí)例化,所以在派生類中不能調(diào)用初始化基類對(duì)象。所以b(int m,int n=0):a(m),j(n)錯(cuò)誤,刪去a(m)。修改b(int m,int n=0):j(n)4. #include class xpublic:int x;public:x(int x)coutx=xendl;x(x&t)x=t.x;coutt.xendl;void fun(x);void fun(x t)coutt.xendl;void main()fun(x(10);答案:coutx=xx=x表達(dá)式的值要加括號(hào)。修改coutx=x)endl;5. #in

13、clude #include class baspublic:bas(char *s=0)strcpy(name,s);void show();protected:char name20;精品.bas b;void show()coutname:endl;void main()bas d2(hello);show();答案:void show();是普通函數(shù)不是成員函數(shù),但是要訪問(wèn)類成員,需要定義為友元函數(shù)。修改friend void show();四、完成程序題(本大題共5小題,每小題4分,共20分)1. 在下面程序橫線處填上適當(dāng)字句,以使該程序執(zhí)行結(jié)果為:50 4 34 21

14、100 7.1 8.1 9.1 10.1 11.1#include template void f (_)_;for (int i=0;in/2;i+)t=ai, ai=an-1-i, an-1-i=t;void main ()int a5=10,21,34,4,50;double d6=11.1,10.1,9.1,8.1,7.1;f(a,5);f(d,6);for (int i=0;i5;i+)cout ai ;cout endl;for (i=0;i6;i+)cout di ;cout endl;答案:t a,int n,t t=0;解析不同的數(shù)據(jù)類型的調(diào)用,使用了模板。f函數(shù)增加t變量,

15、因?yàn)閷?shí)參類型不同,所以t的類型應(yīng)該是t類型的。2. 在下面程序的底畫(huà)線處填上適當(dāng)?shù)淖志?,使該程序?zhí)行結(jié)果為40。#include class test public:_;test (int i=0)x=i+x;int getnum()return test:x+7;_;void main()test test;couttest.getnum()endl;答案:static int x;,int test:x=30;解析從成員函數(shù)訪問(wèn)方式類名:成員可知是靜態(tài)成員所以static int x;從結(jié)果要對(duì)初始化為30,且在類外進(jìn)行初始化, int test:x=30;。3. 在下列程序的空格處填上適

16、當(dāng)?shù)淖志?,使輸出為?,2,10。#include 精品.#include class magicdouble x;public:magic(double d=0.00):x(fabs(d)magic operator+(_)return magic(sqrt(x*x+c.x*c.x);_operator(ostream & stream,magic & c) streamc.x;return stream;void main()magic ma;coutma, magic(2), ma+magic(-6)+magic(-8)endl;答案:operator+(magic&c),friend

17、ostream&operator解析對(duì)加法進(jìn)行重載,operator+(magic & c),是對(duì)插入符進(jìn)行重載,要訪問(wèn)成員所以定義為友元函數(shù),friend ostream & operator。4. 下面是一個(gè)輸入半徑,輸出其面積和周長(zhǎng)的c+程序,在下劃線處填上正確的語(yǔ)句。#include _;_;void main()double rad;coutrad;double l=2.0*pi*rad;double s=pi*rad*rad;coutn the long is:lendl;coutthe area is:sendl;答案:using namespace std,#define pi

18、 3.14159解析進(jìn)行輸入或輸出要引入iostream, 所以u(píng)sing namespace std;從標(biāo)點(diǎn)看沒(méi)有分號(hào),所以使用宏定義,#define pi 3.14159。5. 程序?qū)崿F(xiàn)大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母。#include void main()char a;_;cina;if(_)a=a+i;couta=a & a=z解析大寫(xiě)字母變小寫(xiě)字母相差32,需要對(duì)i聲明并初始化。大寫(xiě)字母變小寫(xiě)字母。要判斷字符是大寫(xiě)字母。五、程序分析題(本大題共4小題,每小題5分,共20分)1. 給出下面程序輸出結(jié)果。#include精品.class apublic:virtual void print()c

19、out a prog. endl;class b:public a;class c:public bpublic:void print()coutc prog.endl;void show(a *p)(*p).print();void main()a a;b b;c c;show(&a);show(&b);show(&c);答案:a prog.a prog.c prog.解析考查多態(tài)性的。a類對(duì)象調(diào)用本身的虛函數(shù),b類因?yàn)闆](méi)有覆寫(xiě)print,所以仍然調(diào)用基類的虛函數(shù)。而c類重新定義print虛函數(shù),所以調(diào)用c類的print。2. 給出下面程序輸出結(jié)果。#include #include #in

20、clude bool fun(long n);void main()long a=10,b=30,l=0;if(a%2=0) a+;for(long m=a;m=b;m+=2)if(fun(m)if(l+%10=0)cout endl;cout setw(5) m;bool fun(long n)int sqrtm=(int)sqrt(n);for(int i=2;i=sqrtm;i+)if(n%i=0)return false;return true;答案:11 13 17 19 23 29解析循環(huán)體用來(lái)判斷n是否是質(zhì)數(shù)的函數(shù),在main函數(shù)判斷1030之間質(zhì)數(shù)。3. 給出下面程序輸出結(jié)果。

21、#include 精品.class testint x,y;public:test(int i,int j=0)x=i;y=j;int get(int i,int j)return i+j;void main()test t1(2),t2(4,6);int (test:*p)(int,int=10);p=test:get;cout(t1.*p)(5)endl;test *p1=&t2;cout*p)(7,20)endl;答案:15 27解析指向類成員函數(shù)的指針的使用,*p指向test類中有兩個(gè)參數(shù)的函數(shù)的一個(gè)指針。ptest:get.這樣p就和get發(fā)生了聯(lián)系。(t1.*p)(5)等價(jià)于調(diào)用一

22、個(gè)參數(shù)的get函數(shù)。4. #include #include #include class studentchar name8;int deg;char level7;friend class process; / 說(shuō)明友元類public:student(char na,int d) strcpy(name,na);deg=d;class process public:void trans(student &s)int i=s.deg/10;switch(i)case 9:strcpy(s.level, 優(yōu));break;case 8:strcpy(s.level,良);break;case

23、7:strcpy(s.level,中);break;case 6:strcpy(s.level,及格);break;default:strcpy(s.level,不及格);void show(student &s)coutsetw(10)setw(4)s.degsetw(8)s.levelendl;精品.void main() student st=student(張三,78),student(李四,92),student(王五,62),student(孫六,88);process p;cout結(jié) 果:姓名setw(6)成績(jī)setw(8)等級(jí)endl;for(int i=0;i4;

24、i+) p.trans(sti);p.show(sti);答案:結(jié)果:姓名成績(jī)等級(jí)張三78中李四92優(yōu)王五62及格孫六88良六、程序設(shè)計(jì)題(本大題共1小題,共10分)1. 已定義一個(gè)shape抽象類,在此基礎(chǔ)上派生出矩形rectangle和圓形circle類,二者都有g(shù)etperim()函數(shù)計(jì)算對(duì)象的周長(zhǎng),并編寫(xiě)測(cè)試main()函數(shù)。class shapepublic:shape()shape()virtual float getperim()=0;答案:class rectangle:public shapepublic:rectangle(float i,float j):l(i),w(j

25、)rectangle()float getperim()return 2*(l+w);private:float l,w;class circle:public shapepublic:circle(float r):r(r)float getperim()return 3.14*2*r;private:float r;void main()shape * sp;sp=new circle(10);coutgetperim ()endl;sp=new rectangle(6,4);coutgetperim()p=5;c. a1.*p=5;d. *a1.p=5;答案:c18. 以下基類中的成員函

26、數(shù)表示純虛函數(shù)的是()a. virtual void tt()=0b. void tt(int)=0c. virtual void tt(int)d. virtual void tt(int)答案:a精品.19. c+類體系中,不能被派生類繼承的有()a. 常成員函數(shù)b. 構(gòu)造函數(shù)c. 虛函數(shù)d. 靜態(tài)成員函數(shù)答案:b20. 靜態(tài)成員函數(shù)不能說(shuō)明為()a. 整型函數(shù)b. 浮點(diǎn)函數(shù)c. 虛函數(shù)d. 字符型函數(shù)答案:c二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。1. 假設(shè)int a=1,b=2;則表達(dá)式(+a/b)*b-的值為_(kāi)。答案:22

27、. 抽象類中至少要有一個(gè)_函數(shù)。答案:(p173)純虛3. 一個(gè)抽象類的派生類可以實(shí)例化的必要條件是實(shí)現(xiàn)了所有的_。答案:(p173)純虛函數(shù)的定義4. 下面程序的輸出結(jié)果為_(kāi)。#include void main()int num=2,i=6;doi-;num+;while(-i);coutnumendl;答案:55. 靜態(tài)成員函數(shù)、友元函數(shù)、構(gòu)造函數(shù)和析構(gòu)函數(shù)中,不屬于成員函數(shù)的是_。答案:(p109)友元函數(shù)6. 在用c進(jìn)行程序設(shè)計(jì)時(shí),最好用_代替malloc。答案:(p10)new7. 由const修飾的對(duì)象稱為_(kāi)。答案:(p113)常對(duì)象8. 在c+程序設(shè)計(jì)中,建立繼承關(guān)系倒掛的樹(shù)應(yīng)

28、使用_繼承。答案:(p138)單9. 基類的公有成員在派生類中的訪問(wèn)權(quán)限由_決定。答案:(p132)訪問(wèn)控制方式或繼承方式10. 不同對(duì)象可以調(diào)用相同名稱的函數(shù),但執(zhí)行完全不同行為的現(xiàn)象稱為_(kāi)。答案:(p167)多態(tài)性11. this指針始終指向調(diào)用成員函數(shù)的_。答案:對(duì)象12. 預(yù)處理命令以_符號(hào)開(kāi)頭。答案:(p183)operater13. 類模板用來(lái)表達(dá)具有_的模板類對(duì)象集。答案:(p145)相同處理方法14. c+程序的源文件擴(kuò)展名為_(kāi)。答案:(p21)cpp15. 在#include命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是_的頭文件。答案:(p7)自定義16. vect

29、or類中向向量尾部插入一個(gè)對(duì)象的方法是_。精品.答案:(p157)push_back17. c+語(yǔ)言中如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取_方式。答案:(p51)傳地址或引用18. 語(yǔ)句序列ifstream infile;infile.open(“data.dat”);的功能可用一個(gè)語(yǔ)句實(shí)現(xiàn),這個(gè)語(yǔ)句是_。答案:(p199)ifstream infile(“data.dat”);19. 如果要把類b的成員函數(shù)void fun()說(shuō)明為類a的友元函數(shù),則應(yīng)在類中加入語(yǔ)句_。答案:(p111)friend void b:fun();20. 在編譯指令中,宏定義使用_指令。答案:(p

30、6、97)#define3、 改錯(cuò)題(本大題共5小題,每小題2分,共10分)1. #include #include #include using namespace std;class apublic:a(const char *na)strcpy(name,na);private:char name80;class b:public a public:b(const char *nm):a(nm)void show();void b:show() coutname:nameendl;void main() b b1(b);b1.show();答案:private:因?yàn)閚ame如果是私有的,

31、在派生類中無(wú)法訪問(wèn),而基類沒(méi)有提供成員函數(shù)來(lái)訪問(wèn)name,所以更改name訪問(wèn)權(quán)限為公有或保護(hù),這樣對(duì)于派生類來(lái)說(shuō)是透明的。修改public:或protected:2. #include void f(int *a,int n)int i=0,j=0;int k=0;for(;in/2;i+)k=ai;ai=an-i-1;an-i-1=k;void show(int a,int n)for(int i=0;in;i+)coutai ;coutendl;void main()精品.int p5;int i=0,n=5;for(;i5;i+)pi=i;f(*p,n);show(p,n);答案:修改

32、f(p,n);解析f(*p,n);f函數(shù)第一個(gè)參數(shù)是指針而調(diào)用時(shí)使用*p,*p表示p所指向的變量或?qū)ο?,不是地址即不是指針?. #include void main()int i(3),j(8);int * const p=&i;cout*pendl;p=&j;cout*pendl;答案:int * const p=&i;在指針變量前加const表示一個(gè)常指針即地址不能變化,它指向的變量不能改變且定義時(shí)必須設(shè)置指向變量或?qū)ο蟮牡刂?。修改int *p=&i;4. #include void main()int i,*p;i=10;*p=i;cout*pendl;答案:*p=i;指針即地址沒(méi)有被

33、賦值。修改p=&i;5. #include class aprivate:int x,y;public:void fun(int i,int j)x=i;y=j;void show()coutx yendl;void main()a a1;a1.fun(2);a1.show();答案:void fun(int i,int j)調(diào)用時(shí)有一個(gè)參數(shù),形參有兩個(gè),可以使第二個(gè)帶默認(rèn)值。修改void fun(int i,int j0)四、完成程序題(本大題共5小題,每小題4分,共20分)1. 完成下面類中成員函數(shù)的定義。#include #include using namespace std;clas

34、s strprivate:char *st;public:str(char *a)精品.set(a);str & operator=(_)delete st;set(a.st);return *this;void show()coutstendl;str()delete st;void set(char *s)/初始化st_strcpy(st,s);void main()str s1(he),s2(she);s1.show(),s2.show();s2=s1;s1.show(),s2.show();答案:str &a,st=new charstrlen(s)+1;2. 一個(gè)類的頭文件如下所示,

35、num初始化值為5,程序產(chǎn)生對(duì)象t,且修改num為10,并使用show()函數(shù)輸出num的值10。#include class testprivate:static int num;public:test(int);void show();_test:test(int n)num=n;void test:show()coutnumendl;void main()test t(10);_答案:int test:num=5;,t.show();3. 下面是一個(gè)三角形三邊,輸出其面積c+程序,在下劃線處填上正確的語(yǔ)句。#include #include void area()double a,b,c

36、;coutc&a+cb&c+ba)double l=(a+b+c)/2;_coutthe area is:sendl;else精品.couterrorabc;,double s=sqrt(l*(l-a)*(l-b)*(l-c);4. 下面程序中base是抽象類。請(qǐng)?jiān)谙旅娉绦虻臋M線處填上適當(dāng)內(nèi)容,以使程序完整,并使程序的輸出為:der1 called!der2 called!#include class basepublic:_;class der1:public basepublic:void display()coutder1 called!endl;class der2:public ba

37、sepublic:void display()coutder2 called!display();void main()der1 b1;der2 b2;base * p=&b1;fun(p);p=&b2;fun(p);答案:virtual void display()=0;,base *p5. 下面程序中用來(lái)求數(shù)組和。請(qǐng)?jiān)谙旅娉绦虻臋M線處填上適當(dāng)內(nèi)容,以使程序完整,并使程序的輸出為:s150。#include class arrint *a,n;public:arr():a(0),n(0)arr(int *aa, int nn)n=nn;a=new intn;for(int i=0;inn;i

38、+)*(a+i)=*(aa+i);arr()delete a;_;return *(a+i);void main()int b5=10,20,30,40,50;arr a1(b,5);精品.int i=0,s=0;_s+=a1.getvalue(i);couts=sendl;答案:int getvalue(int i),for(;i5;i+)五、程序分析題(本大題共4小題,每小題5分,共20分)1. 給出下面程序輸出結(jié)果。#include class exampleint a;public:example(int b=5)a=b+;void print()a=a+1;cout a;void p

39、rint()constcoutaendl;void main()example x;const example y(2);x.print();y.print();答案:622. 給出下面程序輸出結(jié)果。#include void main() int *p1;int *p2=&p1;int b=20;p1=&b;cout*p2endl;答案:203. 給出下面程序輸出結(jié)果。#include class baseprivate:int y;public:base(int y=0) y=y;coutbase(y)n;base() coutbase()n;void print() cout y ;cl

40、ass derived:public baseprivate:int z;public:derived (int y, int z):base(y)z=z;coutderived(y,z)n;derived() coutderived()n;精品.void print()base:print();coutzendl;void main()derived d(10,20);d.print();答案:base(10)derived(10,20)10 20derived()base()4. 給出下面程序輸出結(jié)果。#include class apublic:a()couta 構(gòu)造函數(shù)n;fun();

41、virtual void fun()couta:fun() 函數(shù)n;class b:public apublic:b()coutb構(gòu)造函數(shù)n;fun();void fun() coutb:fun() calle函數(shù)n;void main()b d;答案:a構(gòu)造函數(shù)a:fun()函數(shù)b構(gòu)造函數(shù)b:fun()calle函數(shù)六、程序設(shè)計(jì)題(本大題共1小題,共10分)1. 編寫(xiě)類string的構(gòu)造函數(shù)、析構(gòu)函數(shù)和賦值函數(shù)和測(cè)試程序。已知類string的原型為:#include #include class stringpublic:string(const char *str=null); / 普通構(gòu)

42、造函數(shù)string(const string &other); / 拷貝構(gòu)造函數(shù)string(); / 析構(gòu)函數(shù)string & operator=(const string &other); / 賦值函數(shù)void show()coutm_dataendl;private:char *m_data; / 用于保存字符串;答案:string:string()精品.deletem_data;/由于m_data是內(nèi)部數(shù)據(jù)類型,也可以寫(xiě)成delete m_data;string:string(const char *str)if(str=null)m_data=new char1;/若能加null判斷則更好*m_data=0;elseint length=strlen(str);m_data=new charlength+1; /若能加null判斷則更好strcpy(m_data, str);string:string(const string &other)int length=strlen(ot

溫馨提示

  • 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)論