




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+程序設(shè)計(jì)第一次作業(yè)、問(wèn)答題1 、什么是面向?qū)ο蟪绦蛟O(shè)計(jì)?面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn)是什么?2 、什么是類?什么是對(duì)象?它們之間關(guān)系如何?3 、C+的主要特點(diǎn)有哪些?4 、什么叫函數(shù)重載?什么叫運(yùn)算符重載?請(qǐng)書寫一個(gè)函數(shù)重載的程序例子,分別計(jì)算圓、矩形、三角形的圖形面積。5 、使用內(nèi)聯(lián)函數(shù)的優(yōu)點(diǎn)是什么?如何將函數(shù)說(shuō)明為內(nèi)聯(lián)函數(shù)?6 、構(gòu)造函數(shù)和析構(gòu)函數(shù)的主要特點(diǎn)各是什么?7 、什么是this指針?它的主要作用是什么?8 、什么是拷貝構(gòu)造函數(shù)?在哪三種情形下會(huì)觸發(fā)拷貝構(gòu)造函數(shù)的執(zhí)行?9 、什么是友元函數(shù)?使用它有什么好處?10 、什么情況下需要預(yù)約存貯空間?試解釋下列程序每一語(yǔ)句的含義。float
2、*p;p=newfloat10;for(inti=0;i<=9;i+,p+)*p=i;11 、如果要釋放上一題中指針p所指的空間,應(yīng)如何操作?二、程序設(shè)計(jì)題( 1) 建立一個(gè)三角形類tri,有三個(gè)私有數(shù)據(jù)a,b,c,設(shè)計(jì)一個(gè)缺省的3參數(shù)構(gòu)造函數(shù),缺省值分別為3,3,3,再設(shè)計(jì)一個(gè)成員函數(shù)showarea,當(dāng)參數(shù)能組成三角形時(shí)輸出面積值,否則輸出-1。( 2) 建立一個(gè)類book,有二個(gè)私有的數(shù)據(jù)成員qu和price,建立一個(gè)有5個(gè)元素的數(shù)組對(duì)象,將qu初始化為1,2,3,4,5,將price初始化為qu的10倍,并設(shè)計(jì)一個(gè)成員函數(shù)disp,輸出每個(gè)對(duì)象的qu*pricer的值。( 3)
3、有一個(gè)向量類vector,包括一個(gè)點(diǎn)的坐標(biāo)位置x和y,設(shè)計(jì)二個(gè)友元函數(shù),實(shí)現(xiàn)兩個(gè)向量的加法和減法運(yùn)算。( 4) 編寫一個(gè)程序,設(shè)計(jì)一個(gè)類score,用于統(tǒng)計(jì)一個(gè)班的學(xué)生成績(jī),其中使用一個(gè)靜態(tài)數(shù)據(jù)成員sumfs存儲(chǔ)總分和一個(gè)靜態(tài)成員函數(shù)rsumf()返回該總分。三、分析題請(qǐng)仔細(xì)閱讀下列程序,回答問(wèn)題。1: #include<iostream.h>2: classexam3: inti;4: public:5: exam(intn)i=n;cout<<"constructing.n"6: exam()cout<<"destructi
4、ng.n"7: intget_i()returni;8:9: intsqr_it(exams)10: 11: returns.get_i()*s.get_i();12: 13: voidmain()14: 15: examx(11);16: cout<<x.get_i()<<endl;17: cout<<sqr_it(x)<<endl;18: ( 1) 第1行能省略嗎?為什么?( 2) 第4行的public:是什么含義?( 3) 第5行、第6行分別定義的是什么函數(shù)?它們?cè)谑裁辞闆r下執(zhí)行?( 4) 第7行和第9-12行定義的函數(shù)中,哪一個(gè)
5、是普通的自定義函數(shù)?哪一個(gè)是類exam的成員函數(shù)?( 5) 第15行的含義是什么?( 6) 試寫出該程序的運(yùn)行結(jié)果。( 7) 如果將9-12行改為如下內(nèi)容:9: intsqr_it(exam*s)10: 11: returns->get_i()*s->get_i();12: 并將第17行改為17: cout<<sqr_it(&x)<<endl;請(qǐng)寫出此時(shí)該程序的運(yùn)行結(jié)果。第二次作業(yè)1、 簡(jiǎn)答題1、 什么是類?什么是對(duì)象?2、 什么叫函數(shù)重載和運(yùn)算符重載?使用重載有何優(yōu)點(diǎn)?3、 何謂內(nèi)聯(lián)函數(shù)?采用內(nèi)聯(lián)函數(shù)有何好處?4、 構(gòu)造函數(shù)和析構(gòu)函數(shù)的主要作用是什
6、么?5、 類成員的訪問(wèn)控制屬性有哪三種?我們?cè)谕獠恐荒茉L問(wèn)具備有哪一種屬性的對(duì)象成員?6、 在什么情況下應(yīng)當(dāng)采用成員初始化列表方式傳遞數(shù)據(jù)?7、 拷貝構(gòu)造函數(shù)的參數(shù)與一般的構(gòu)造函數(shù)有何不同?在哪三種情況下拷貝構(gòu)造函數(shù)被執(zhí)行?8、什么是this指針?它的主要作用是什么?2、 判斷題1、定義一個(gè)整型指針p,在內(nèi)存中預(yù)約10個(gè)連續(xù)單元,p指向這10個(gè)單元之首,可以使用以下語(yǔ)句操作。()int*p=newint(10);2、如果定義char*constname="yang",貝U可執(zhí)行name=newchar4;()3、從一個(gè)類定義的各個(gè)不同的具體對(duì)象,其結(jié)構(gòu)不相同。()4、類的構(gòu)
7、造函數(shù)可以用public、private或protected中任一訪問(wèn)屬性說(shuō)明。()5、重載運(yùn)算符既可改變其執(zhí)行功能,又可改變它的基本語(yǔ)法形式。()6、利用模板可以大幅度地節(jié)約程序代碼。()7、引入虛基類的好處是防止最派生類對(duì)繼承成員的二義性。()8、虛函數(shù)的定義在基類中進(jìn)行,此虛函數(shù)就可以在一個(gè)或多個(gè)派生類中被重新定義,但函數(shù)的返回類型、函數(shù)名、形參個(gè)數(shù)和類型必須相同。()9、當(dāng)某個(gè)函數(shù)以對(duì)象為參數(shù)時(shí),調(diào)用這個(gè)函數(shù)必定會(huì)執(zhí)行類的拷貝構(gòu)造函數(shù)。()10、在可以重載的運(yùn)算符中,并不是都可使用友元函數(shù)進(jìn)行重載的。()3、 填空題1、構(gòu)造函數(shù)的名字必須與相同,可以有任意類型的形參,但返回類型,且訪問(wèn)
8、控制屬性為,當(dāng)其參數(shù)為時(shí),稱之為拷貝構(gòu)造函數(shù)。2、已經(jīng)定義好了一個(gè)類student,現(xiàn)在要定義一個(gè)類pupil,它是從student私有派生而來(lái),那么,定義pupil類的寫法是。3、由于不能直接對(duì)一個(gè)類的二個(gè)對(duì)象做加法,因此,必須對(duì)+進(jìn)行,這主要由名為+(參數(shù)表)的函數(shù)完成。4、動(dòng)態(tài)內(nèi)存分配采用語(yǔ)句,釋放這種方式分配的內(nèi)存空間則用語(yǔ)句。5、在C+中,單行注釋或行尾注釋通常采用進(jìn)行。4、 綜合分析題1、 分析下列程序中繼承的關(guān)系。(3分)2、 指明構(gòu)造函數(shù)和析構(gòu)函數(shù)執(zhí)行順序。(5分)3、 寫出程序的運(yùn)行結(jié)果。(7分)#include"iostream.h"classApubl
9、ic:A()a=0;cout<<"A:defaultcon."<<endl;A(inti)a=i;cout<<"A'scon."<<endl;A()cout<<"A'sdes."<<endl;voidprint()cout<<a<<endl;intgeta()returna;private:inta;classCpublic:C()c=0;cout<<C:defaultcon.<<endl;C(int
10、i)c=i;cout<<Cscon.<<endl;C()cout<<Csdes.<<endl;voidprint()cout<<c<<endl;intgetc()returnc;private:intc;classB:publicA,publicCpublic:B()b=0;cout<<B:defaultcon.<<endl;B(inti,intj,intk,intl,intn):A(i),C(j),cc(k),aa(l),b(n)cout<<Bscon.<<endl;B()
11、cout<<Bsdes.<<endl;voidprint()A:print();C:print();cout<<b<<,<<aa.geta()<<endl;cout<<cc.getc()<<endl;private:intb;Ccc;Aaa;voidmain()Bbb(1,2,3,4,5);bb.print();5、 程序設(shè)計(jì)題1、應(yīng)用C+的多態(tài)性,計(jì)算三角形、矩形和圓的面積。建議公共基類命名為Figure,含有二個(gè)數(shù)據(jù)成員及純虛函數(shù),形式如下:ClassFigureprotected:floatx
12、,y;public:Figure(floata,floatb)x=a,y=b;virtualvoidshow_area()=0;;三角形類、矩形類和圓類命名分別為Tri、Rec、Cir,并在主函數(shù)中寫出一個(gè)調(diào)用的例子,三角形對(duì)象、矩形對(duì)象和圓對(duì)象的初始數(shù)據(jù)為(3,4,5)、(2,4),(10)。最后請(qǐng)寫出你的程序運(yùn)行結(jié)果。2、編寫程序,設(shè)計(jì)一個(gè)時(shí)間類Time,它的基本定義如下:classTimeinthour,minute,second;public:Time();Time(inth,intm,ints)hour=h,minute=m,second=s;voidshow()cout<&l
13、t;Timeis<<hour<<:<<minute<<:<<second<<endl;試重載運(yùn)算符+,當(dāng)加上一個(gè)整數(shù)(秒)時(shí),輸出新的時(shí)間。例如:Times(12,34,16),s1;s1=s+100;/從12點(diǎn)34分16秒后,再過(guò)100秒,即加100秒s1.show();第三次作業(yè)一、選擇題(在A、B、C、D四個(gè)答案中選擇一個(gè)正確的填入后面的括號(hào)中)1下面()是對(duì)類ttt的聲明。Avoidclassttt;Bclassintttt;Cclassttt();Dclassttt;2用于類中虛成員函數(shù)說(shuō)明的關(guān)鍵字是()A. p
14、ublicB.virtualC.protectedD.private3 下面是關(guān)于靜態(tài)成員的說(shuō)法,其中不正確的是()。A靜態(tài)成員有類作用域,但與普通非靜態(tài)成員有所不同B靜態(tài)函數(shù)沒(méi)有this指針,同一個(gè)類的不同對(duì)象擁有相同的靜態(tài)數(shù)據(jù)成員C靜態(tài)數(shù)據(jù)成員的初始化必須在類外進(jìn)行D靜態(tài)函數(shù)同樣可以訪問(wèn)非靜態(tài)數(shù)據(jù)成員4 下面的說(shuō)法中,不正確的一句是()。A.類的友元函數(shù)是類的特殊成員函數(shù),它對(duì)所有的類成員、保護(hù)成員和私有成員享有完全訪問(wèn)特權(quán)。B. 一個(gè)類的友元類中的成員函數(shù)都是這個(gè)類的友元函數(shù)C. 適用于類成員函數(shù)和數(shù)據(jù)的訪問(wèn)控制同樣適用于枚舉和嵌套類D. 與結(jié)構(gòu)類似,類也可以互相嵌套,適用于嵌套結(jié)構(gòu)的規(guī)
15、則也適用于嵌套類5. ()語(yǔ)言是面向?qū)ο蟮恼Z(yǔ)言。A.CB.PascalC.FortranD.C+6. C+風(fēng)格的源文件包含的輸入輸出頭文件為()A.stdio.hB.stdafx.hC.iostream.hD.stream.h7. 與C語(yǔ)言printf(Helloword'n");語(yǔ)句功能相同的C+語(yǔ)句是()A.cout>>”Hellowordn”8. cin>>”Hellowordn”9. cout<<”Hellowordn”10. cin<<”Hellowordn”8 在下面幾個(gè)元素中,不是面向?qū)ο蟮囊氐氖牵ǎ籄.重載B
16、.對(duì)象C.類D.繼承9 對(duì)于int*pa5;的描述,下面敘述正確的是();A. pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素;B. pa是一個(gè)指向某數(shù)組中第5個(gè)元素的指針,該元素是int型變量;C. pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針;D. pa5表示某個(gè)數(shù)組的第5個(gè)元素的值。10 .下面程序使用new與delete命令:#include<iostream.h>main()long*p,i;p=newlong;if(!p)cout<<”Allocationerrorn”;return1;*p=1000;i=(long)p;cout&
17、lt;<”Hereisintegeratp:”<<*p<<”n”;cout<<”Hereisi:“<<i<<”n”;deletep;return0;下面是對(duì)這段程序的敘述,其中正確的是()。A.有錯(cuò)誤,編譯不能通過(guò)B正確,執(zhí)行結(jié)果為:10001000C正確,但執(zhí)行結(jié)果的第二個(gè)數(shù)值不定D正確,執(zhí)行結(jié)果的各個(gè)數(shù)值均不為1000二、判斷下列描述正確性,對(duì)者劃,錯(cuò)者劃x(每小題2分)。1 C+中標(biāo)識(shí)符內(nèi)的大小寫字母是沒(méi)有區(qū)別的。2 宏定義命令是分號(hào)結(jié)束的。3 C+的程序中,對(duì)變量一定要先說(shuō)明再使用,說(shuō)明只要在使用之前就可以。4 whil
18、e循環(huán)語(yǔ)句的循環(huán)體至少執(zhí)行一次。5 在C+中,所有函數(shù)在調(diào)用前都要說(shuō)明。6 析構(gòu)函數(shù)是一種函數(shù)體為空的成員函數(shù)。7 如果一個(gè)函數(shù)沒(méi)有返回值時(shí),定義時(shí)需要用void說(shuō)明。8 派生類是從基類派生出來(lái)的,它不能再生成新的派生類。9 對(duì)象成員的表示與結(jié)構(gòu)變量成員表示相同,使用運(yùn)算符.或->。10構(gòu)造函數(shù)和析構(gòu)函數(shù)都可以重載,因?yàn)樗鼈兌际浅蓡T函數(shù)。寫出下面程序的輸出結(jié)果。1. #include<iostream.h>voidmain()inta,b,c;a=1,b=2,c=a+b+3;cout<<a<<”,”<<b<<”,”<<
19、;c<<endl;c=(a+,a+=6,a+b);cout<<c<<endl;2. #include<iostream.h>voidswap(int&x,int&y)inttemp;temp=x;x=y;y=temp;cout<<”x=”<<x<<”,”<<”y=”<<y<<endl;voidmain()inta(5),b(9);swap(a,b);cout<<”a=”<<a<<”,”<<”b=”<<
20、b<<endl;3. #include<iostream.h>classApublic:A();A(inti,intj);voidprint();private:inta,b;;A:A() a=b=0;cout<<"Defaultconstructorcalled.n”;A:A(inti,intj) a=i;b=j;cout<<"Constructorcalled.n”;voidA:print() cout<<"a="<<a<<",b=”<<b<
21、;<endl;voidmain() Am,n(4,8);m.print();n.print();四、編程或程序填空。1.在下劃線處填上正確的語(yǔ)句并給出程序的輸出結(jié)果(6分)。#include<iostream.h>#include(1)classstrApublic:strA(float,float,float);;public:floata,b,c;floatstrA:fun1()returna+b+c;strA:strA(floati,floatj,floatk)a=i;b=j;c=k;doublestrA:fun2()floats;s=float(a+b+c)/2.0)
22、;returnsqrt(s*(s-a)*(s-b)*(s-c);voidmaina()strAtri(3,4,5);cout<<tri.fun1()<<endl;cout<<tri.fun2()<<endlin;2編寫分別可求兩個(gè)整型、浮點(diǎn)型和雙精度型數(shù)和的重載函數(shù),并寫主函數(shù)調(diào)用之;3使用引用作為函數(shù)參數(shù),編寫一個(gè)交換兩變量值的函數(shù),并寫主函數(shù)調(diào)用之。選擇題(在A、B、C、D四個(gè)答案中選擇一個(gè)正確的填入后面的括號(hào)中)1.C+中,封裝是借助于()達(dá)到的。E指針B.類C.數(shù)組D.函數(shù)3宏定義由()結(jié)束。A分號(hào)B.句號(hào)C.新行D.冒號(hào)3. 下面是關(guān)于
23、一個(gè)類的友元的說(shuō)法,其中不正確的是()A友元函數(shù)可以訪問(wèn)該類的私有數(shù)據(jù)成員B友元的聲明必須放在類的內(nèi)部C友元函數(shù)可以是類的成員函數(shù)D類與類之間的友元關(guān)系不能被繼承4. C+中聲明常量的關(guān)鍵字是()。A.constB.externC.publicD.enum5. 關(guān)于動(dòng)態(tài)聯(lián)編的下列描述中,錯(cuò)誤的是()。A. 動(dòng)態(tài)聯(lián)編是以虛函數(shù)為基礎(chǔ)的B. 動(dòng)態(tài)聯(lián)編時(shí)在運(yùn)行時(shí)確定所調(diào)用的函數(shù)代碼的C. 動(dòng)態(tài)聯(lián)編調(diào)用函數(shù)操作是使用指向?qū)ο蟮闹羔樆驅(qū)ο笠肈. 動(dòng)態(tài)聯(lián)編是在編譯時(shí)確定操作函數(shù)的6. 下面函數(shù)()的表示方法說(shuō)明它使用對(duì)象的引用作為參數(shù)。A.test(pt*p)B.test(ptp)C.test(pt&a
24、mp;p)D.test(constP)7. 虛函數(shù)的調(diào)用()。A一定使用動(dòng)態(tài)聯(lián)編B必須使用動(dòng)態(tài)聯(lián)編C一定使用靜態(tài)聯(lián)編D不一定使用動(dòng)態(tài)聯(lián)編8. 關(guān)于C+與C語(yǔ)言的關(guān)系的描述中,錯(cuò)誤的是();A.C語(yǔ)言是C+的子集;B.C語(yǔ)言與C+是兼容的;C.C+對(duì)C語(yǔ)言進(jìn)行了一些改進(jìn);D.C+和C語(yǔ)言都是面向?qū)ο蟮摹?重載函數(shù)在調(diào)用時(shí)選擇的依據(jù)中,()是錯(cuò)誤的。A.參數(shù)個(gè)數(shù)B.參數(shù)類型C.函數(shù)名字D.函數(shù)類型10.下面的程序是關(guān)于函數(shù)承載的,假定A,B,C,D是它們可能的輸出之一,其中正確的輸出是()。A.2510B.2010C.2011.4D.2014.076源程序如下:#include<iostre
25、am.h>intMultiply(intn1,intn2)returnn1*n2;floatMultiply(intf1,floatf2)returnf1*f2;voidmain()inta1=10;inta2=2.5;floatb1=2.55;floatb2=5.52;cout<<Multiply(a1,a2)<<endl;cout<<Multiply(b1,b2)<<endl;。1 C+用數(shù)組元素的下標(biāo)是從0開始,數(shù)組元素是連續(xù)存儲(chǔ)在內(nèi)存單元中的。2 函數(shù)一定要有函數(shù)體。3在說(shuō)明語(yǔ)句inta(5),&b=a,*p=&a;
26、中b的值和*p值是相等的。4. for循環(huán)是只有可以確定的循環(huán)次數(shù)時(shí)才可使用,否則不能用for循環(huán)。5. 在C+用,定義函數(shù)時(shí)必須給出函數(shù)的類型。6. 對(duì)象引用作函數(shù)參數(shù)不如使用對(duì)象指針更方便。7. 說(shuō)明或定義對(duì)象時(shí),類名前必須要加class關(guān)鍵字。8. C+語(yǔ)言中,允許單一繼承,不允許多重繼承。9面向?qū)ο蠓椒ň哂腥筇匦裕悍庋b性、繼承性和繼承性。10在共有繼承中,派生類可以訪問(wèn)基類中的私有成員。:1 計(jì)算下列表達(dá)式的值:(1) 已知:inti(10),j(5);A.+i-j-;B.i=i*=j;C.i=3/2*(j=3-2);(2) 已知:inta(5),b(3);計(jì)算下面表達(dá)式的值及a和b的值。A.!a&&b+;B.a|b+4&&a*b;C.a=1,b=2,a>b?+a:+b;2.寫出下面程序的輸出結(jié)果。(1) #include<iostream.h>voidfun()staticintn=25;n-;cout<<”n=”<<n<<endl;voidmain()for(in
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 花店出入庫(kù)管理制度
- 茶包裝標(biāo)識(shí)管理制度
- 重要接待車管理制度
- 落地式卸料平臺(tái)施工方案的專家驗(yàn)證
- 課外讀物進(jìn)校園管理實(shí)施方案
- 江門市房地產(chǎn)市場(chǎng)調(diào)研分析報(bào)告(案例)
- 財(cái)經(jīng)英語(yǔ)華為手機(jī)
- 視覺感知行業(yè)發(fā)展歷程分析
- 山東省德州市寧津縣育新中學(xué)等2024-2025學(xué)年七年級(jí)下學(xué)期5月期中考試數(shù)學(xué)試題(含部分答案)
- 試題【python二級(jí)】知識(shí)點(diǎn)-題型練習(xí)
- 2025年行政能力測(cè)驗(yàn)考試真題及答案
- 2024年寧夏中衛(wèi)沙坡頭區(qū)招聘社區(qū)專職工作者真題
- 2025年江蘇省南京市中考物理模擬練習(xí)卷(含答案)
- 人教部編版三年級(jí)下冊(cè)語(yǔ)文各單元【習(xí)作范文】
- 教師普法考試題及答案
- 水冷空調(diào)項(xiàng)目可行性研究報(bào)告
- 2025年小產(chǎn)權(quán)房的買賣合同5篇
- 清運(yùn)垃圾污水合同范本
- 夫妻婚內(nèi)財(cái)產(chǎn)財(cái)產(chǎn)協(xié)議書
- 天耀中華合唱簡(jiǎn)譜大劇院版
- 戴爾電腦培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論