




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C+程序設計第一次作業(yè)、問答題1 、什么是面向對象程序設計?面向對象程序設計的優(yōu)點是什么?2 、什么是類?什么是對象?它們之間關系如何?3 、C+的主要特點有哪些?4 、什么叫函數(shù)重載?什么叫運算符重載?請書寫一個函數(shù)重載的程序例子,分別計算圓、矩形、三角形的圖形面積。5 、使用內(nèi)聯(lián)函數(shù)的優(yōu)點是什么?如何將函數(shù)說明為內(nèi)聯(lián)函數(shù)?6 、構造函數(shù)和析構函數(shù)的主要特點各是什么?7 、什么是this指針?它的主要作用是什么?8 、什么是拷貝構造函數(shù)?在哪三種情形下會觸發(fā)拷貝構造函數(shù)的執(zhí)行?9 、什么是友元函數(shù)?使用它有什么好處?10 、什么情況下需要預約存貯空間?試解釋下列程序每一語句的含義。float
2、*p;p=newfloat10;for(inti=0;i<=9;i+,p+)*p=i;11 、如果要釋放上一題中指針p所指的空間,應如何操作?二、程序設計題( 1) 建立一個三角形類tri,有三個私有數(shù)據(jù)a,b,c,設計一個缺省的3參數(shù)構造函數(shù),缺省值分別為3,3,3,再設計一個成員函數(shù)showarea,當參數(shù)能組成三角形時輸出面積值,否則輸出-1。( 2) 建立一個類book,有二個私有的數(shù)據(jù)成員qu和price,建立一個有5個元素的數(shù)組對象,將qu初始化為1,2,3,4,5,將price初始化為qu的10倍,并設計一個成員函數(shù)disp,輸出每個對象的qu*pricer的值。( 3)
3、有一個向量類vector,包括一個點的坐標位置x和y,設計二個友元函數(shù),實現(xiàn)兩個向量的加法和減法運算。( 4) 編寫一個程序,設計一個類score,用于統(tǒng)計一個班的學生成績,其中使用一個靜態(tài)數(shù)據(jù)成員sumfs存儲總分和一個靜態(tài)成員函數(shù)rsumf()返回該總分。三、分析題請仔細閱讀下列程序,回答問題。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ù)?它們在什么情況下執(zhí)行?( 4) 第7行和第9-12行定義的函數(shù)中,哪一個
5、是普通的自定義函數(shù)?哪一個是類exam的成員函數(shù)?( 5) 第15行的含義是什么?( 6) 試寫出該程序的運行結果。( 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;請寫出此時該程序的運行結果。第二次作業(yè)1、 簡答題1、 什么是類?什么是對象?2、 什么叫函數(shù)重載和運算符重載?使用重載有何優(yōu)點?3、 何謂內(nèi)聯(lián)函數(shù)?采用內(nèi)聯(lián)函數(shù)有何好處?4、 構造函數(shù)和析構函數(shù)的主要作用是什
6、么?5、 類成員的訪問控制屬性有哪三種?我們在外部只能訪問具備有哪一種屬性的對象成員?6、 在什么情況下應當采用成員初始化列表方式傳遞數(shù)據(jù)?7、 拷貝構造函數(shù)的參數(shù)與一般的構造函數(shù)有何不同?在哪三種情況下拷貝構造函數(shù)被執(zhí)行?8、什么是this指針?它的主要作用是什么?2、 判斷題1、定義一個整型指針p,在內(nèi)存中預約10個連續(xù)單元,p指向這10個單元之首,可以使用以下語句操作。()int*p=newint(10);2、如果定義char*constname="yang",貝U可執(zhí)行name=newchar4;()3、從一個類定義的各個不同的具體對象,其結構不相同。()4、類的構
7、造函數(shù)可以用public、private或protected中任一訪問屬性說明。()5、重載運算符既可改變其執(zhí)行功能,又可改變它的基本語法形式。()6、利用模板可以大幅度地節(jié)約程序代碼。()7、引入虛基類的好處是防止最派生類對繼承成員的二義性。()8、虛函數(shù)的定義在基類中進行,此虛函數(shù)就可以在一個或多個派生類中被重新定義,但函數(shù)的返回類型、函數(shù)名、形參個數(shù)和類型必須相同。()9、當某個函數(shù)以對象為參數(shù)時,調(diào)用這個函數(shù)必定會執(zhí)行類的拷貝構造函數(shù)。()10、在可以重載的運算符中,并不是都可使用友元函數(shù)進行重載的。()3、 填空題1、構造函數(shù)的名字必須與相同,可以有任意類型的形參,但返回類型,且訪問
8、控制屬性為,當其參數(shù)為時,稱之為拷貝構造函數(shù)。2、已經(jīng)定義好了一個類student,現(xiàn)在要定義一個類pupil,它是從student私有派生而來,那么,定義pupil類的寫法是。3、由于不能直接對一個類的二個對象做加法,因此,必須對+進行,這主要由名為+(參數(shù)表)的函數(shù)完成。4、動態(tài)內(nèi)存分配采用語句,釋放這種方式分配的內(nèi)存空間則用語句。5、在C+中,單行注釋或行尾注釋通常采用進行。4、 綜合分析題1、 分析下列程序中繼承的關系。(3分)2、 指明構造函數(shù)和析構函數(shù)執(zhí)行順序。(5分)3、 寫出程序的運行結果。(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、 程序設計題1、應用C+的多態(tài)性,計算三角形、矩形和圓的面積。建議公共基類命名為Figure,含有二個數(shù)據(jù)成員及純虛函數(shù),形式如下:ClassFigureprotected:floatx
12、,y;public:Figure(floata,floatb)x=a,y=b;virtualvoidshow_area()=0;;三角形類、矩形類和圓類命名分別為Tri、Rec、Cir,并在主函數(shù)中寫出一個調(diào)用的例子,三角形對象、矩形對象和圓對象的初始數(shù)據(jù)為(3,4,5)、(2,4),(10)。最后請寫出你的程序運行結果。2、編寫程序,設計一個時間類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;試重載運算符+,當加上一個整數(shù)(秒)時,輸出新的時間。例如:Times(12,34,16),s1;s1=s+100;/從12點34分16秒后,再過100秒,即加100秒s1.show();第三次作業(yè)一、選擇題(在A、B、C、D四個答案中選擇一個正確的填入后面的括號中)1下面()是對類ttt的聲明。Avoidclassttt;Bclassintttt;Cclassttt();Dclassttt;2用于類中虛成員函數(shù)說明的關鍵字是()A. p
14、ublicB.virtualC.protectedD.private3 下面是關于靜態(tài)成員的說法,其中不正確的是()。A靜態(tài)成員有類作用域,但與普通非靜態(tài)成員有所不同B靜態(tài)函數(shù)沒有this指針,同一個類的不同對象擁有相同的靜態(tài)數(shù)據(jù)成員C靜態(tài)數(shù)據(jù)成員的初始化必須在類外進行D靜態(tài)函數(shù)同樣可以訪問非靜態(tài)數(shù)據(jù)成員4 下面的說法中,不正確的一句是()。A.類的友元函數(shù)是類的特殊成員函數(shù),它對所有的類成員、保護成員和私有成員享有完全訪問特權。B. 一個類的友元類中的成員函數(shù)都是這個類的友元函數(shù)C. 適用于類成員函數(shù)和數(shù)據(jù)的訪問控制同樣適用于枚舉和嵌套類D. 與結構類似,類也可以互相嵌套,適用于嵌套結構的規(guī)
15、則也適用于嵌套類5. ()語言是面向對象的語言。A.CB.PascalC.FortranD.C+6. C+風格的源文件包含的輸入輸出頭文件為()A.stdio.hB.stdafx.hC.iostream.hD.stream.h7. 與C語言printf(Helloword'n");語句功能相同的C+語句是()A.cout>>”Hellowordn”8. cin>>”Hellowordn”9. cout<<”Hellowordn”10. cin<<”Hellowordn”8 在下面幾個元素中,不是面向對象的要素的是();A.重載B
16、.對象C.類D.繼承9 對于int*pa5;的描述,下面敘述正確的是();A. pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素;B. pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量;C. pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針;D. pa5表示某個數(shù)組的第5個元素的值。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;下面是對這段程序的敘述,其中正確的是()。A.有錯誤,編譯不能通過B正確,執(zhí)行結果為:10001000C正確,但執(zhí)行結果的第二個數(shù)值不定D正確,執(zhí)行結果的各個數(shù)值均不為1000二、判斷下列描述正確性,對者劃,錯者劃x(每小題2分)。1 C+中標識符內(nèi)的大小寫字母是沒有區(qū)別的。2 宏定義命令是分號結束的。3 C+的程序中,對變量一定要先說明再使用,說明只要在使用之前就可以。4 whil
18、e循環(huán)語句的循環(huán)體至少執(zhí)行一次。5 在C+中,所有函數(shù)在調(diào)用前都要說明。6 析構函數(shù)是一種函數(shù)體為空的成員函數(shù)。7 如果一個函數(shù)沒有返回值時,定義時需要用void說明。8 派生類是從基類派生出來的,它不能再生成新的派生類。9 對象成員的表示與結構變量成員表示相同,使用運算符.或->。10構造函數(shù)和析構函數(shù)都可以重載,因為它們都是成員函數(shù)。寫出下面程序的輸出結果。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.在下劃線處填上正確的語句并給出程序的輸出結果(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編寫分別可求兩個整型、浮點型和雙精度型數(shù)和的重載函數(shù),并寫主函數(shù)調(diào)用之;3使用引用作為函數(shù)參數(shù),編寫一個交換兩變量值的函數(shù),并寫主函數(shù)調(diào)用之。選擇題(在A、B、C、D四個答案中選擇一個正確的填入后面的括號中)1.C+中,封裝是借助于()達到的。E指針B.類C.數(shù)組D.函數(shù)3宏定義由()結束。A分號B.句號C.新行D.冒號3. 下面是關于
23、一個類的友元的說法,其中不正確的是()A友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員B友元的聲明必須放在類的內(nèi)部C友元函數(shù)可以是類的成員函數(shù)D類與類之間的友元關系不能被繼承4. C+中聲明常量的關鍵字是()。A.constB.externC.publicD.enum5. 關于動態(tài)聯(lián)編的下列描述中,錯誤的是()。A. 動態(tài)聯(lián)編是以虛函數(shù)為基礎的B. 動態(tài)聯(lián)編時在運行時確定所調(diào)用的函數(shù)代碼的C. 動態(tài)聯(lián)編調(diào)用函數(shù)操作是使用指向對象的指針或對象引用D. 動態(tài)聯(lián)編是在編譯時確定操作函數(shù)的6. 下面函數(shù)()的表示方法說明它使用對象的引用作為參數(shù)。A.test(pt*p)B.test(ptp)C.test(pt&a
24、mp;p)D.test(constP)7. 虛函數(shù)的調(diào)用()。A一定使用動態(tài)聯(lián)編B必須使用動態(tài)聯(lián)編C一定使用靜態(tài)聯(lián)編D不一定使用動態(tài)聯(lián)編8. 關于C+與C語言的關系的描述中,錯誤的是();A.C語言是C+的子集;B.C語言與C+是兼容的;C.C+對C語言進行了一些改進;D.C+和C語言都是面向對象的。9重載函數(shù)在調(diào)用時選擇的依據(jù)中,()是錯誤的。A.參數(shù)個數(shù)B.參數(shù)類型C.函數(shù)名字D.函數(shù)類型10.下面的程序是關于函數(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ù)組元素的下標是從0開始,數(shù)組元素是連續(xù)存儲在內(nèi)存單元中的。2 函數(shù)一定要有函數(shù)體。3在說明語句inta(5),&b=a,*p=&a;
26、中b的值和*p值是相等的。4. for循環(huán)是只有可以確定的循環(huán)次數(shù)時才可使用,否則不能用for循環(huán)。5. 在C+用,定義函數(shù)時必須給出函數(shù)的類型。6. 對象引用作函數(shù)參數(shù)不如使用對象指針更方便。7. 說明或定義對象時,類名前必須要加class關鍵字。8. C+語言中,允許單一繼承,不允許多重繼承。9面向對象方法具有三大特性:封裝性、繼承性和繼承性。10在共有繼承中,派生類可以訪問基類中的私有成員。:1 計算下列表達式的值:(1) 已知:inti(10),j(5);A.+i-j-;B.i=i*=j;C.i=3/2*(j=3-2);(2) 已知:inta(5),b(3);計算下面表達式的值及a和b的值。A.!a&&b+;B.a|b+4&&a*b;C.a=1,b=2,a>b?+a:+b;2.寫出下面程序的輸出結果。(1) #include<iostream.h>voidfun()staticintn=25;n-;cout<<”n=”<<n<<endl;voidmain()for(in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教A版高一(下)數(shù)學必修第二冊6.2.3向量的數(shù)乘運算【教學設計】
- 六年級上冊數(shù)學教案:第2單元-第5課時 分數(shù)混合運算練習(2) 北師大版
- 《上學時間》(教案)2024-2025學年數(shù)學二年級下冊
- 一年級數(shù)學下冊教案-4.3 動手做(二)2-北師大版
- 《找規(guī)律》(教案)三年級下冊數(shù)學北師大版
- 一年級上數(shù)學教案-認識物體(7)-西師大版
- 第十章浮力單元教學設計 2023-2024學年人教版八年級下冊物理
- 2024年人工心肺機項目資金籌措計劃書代可行性研究報告
- 河北隆化縣第二中學人教版八年級上冊歷史與社會第三單元第一課 秦始皇開創(chuàng)大一統(tǒng)教學設計
- 2025年吉林省延邊朝鮮族自治州單招職業(yè)適應性測試題庫審定版
- 2025年中華工商時報社事業(yè)單位招聘12人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 安全生產(chǎn)事故調(diào)查與案例分析(第3版)課件 呂淑然 第1-4章 緒論-應急預案編制與應急管理
- 《職業(yè)技能等級評價規(guī)范編制指南編制說明》
- 《教育強國建設規(guī)劃綱要(2024-2035年)》解讀講座
- 2024-2025學年廣東省深圳市寶安區(qū)高一(上)期末數(shù)學試卷(含答案)
- 畜禽養(yǎng)殖場惡臭污染物排放及其處理技術研究進展
- 超聲內(nèi)鏡引導下穿刺活檢術的配合及護理
- 同濟大學《線性代數(shù)》-課件
- 新生兒常見的產(chǎn)傷及護理
- 申請兩癌補助申請書
- 香港審計合同范例
評論
0/150
提交評論