版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、一、填空題1.c+中變量按照作用范圍可分為局部變量和全局變量。2.動態(tài)聯(lián)編支持的多態(tài)性稱為運行時的多態(tài)性,也稱為動態(tài)多態(tài)性。3.在一個函數(shù)的定義或聲明前加上關(guān)鍵字inline時,該函數(shù)就聲明為內(nèi)聯(lián)函數(shù)。4.在類中定義和實現(xiàn)的函數(shù)稱為成員函數(shù)。5.程序中可以有多個名稱相同,但參數(shù)類型不同或個數(shù)不同或類型與個數(shù)都不同的函數(shù),這種現(xiàn)象稱為函數(shù)重載。6.若定義int a4=1,2,3,4,5,6,7,8,9,則數(shù)組a的第一維的大小是 3 。7.設(shè)置虛基類使用的關(guān)鍵字為virtual。8.基類的構(gòu)造函數(shù)和析構(gòu)函數(shù),不能被派生類繼承。9.含有純虛函數(shù)的類稱為抽象類,它不能定義對象,主要用作基類。10.動態(tài)
2、聯(lián)編支持的多態(tài)性稱為運行時的多態(tài)性。11.運算符重載函數(shù)的兩種主要形式有成員函數(shù)和友元函數(shù)。12.使用模板是為了提高代碼的可重用性。13.在C+語言中,變量按照生存周期分為靜態(tài)存儲類別變量和自動存儲類別變量。14.非成員函數(shù)應(yīng)聲明為類的友元函數(shù),才能訪問該類的private成員。15.在類中,數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問屬性是private(或私有的)。16.如果一個類至少有一個純虛函數(shù),那么該類被稱為抽象類。17.對于含有對象成員的派生類,其構(gòu)造函數(shù)的執(zhí)行順序為:先執(zhí)行基類的構(gòu)造函數(shù)、再執(zhí)行對象成員所屬類的構(gòu)造函數(shù),最后執(zhí)行派生類的構(gòu)造函數(shù)。18.構(gòu)造函數(shù)是一種特殊的成員函數(shù),其作用是對類的
3、數(shù)據(jù)成員進行初始化并執(zhí)行對象的其他內(nèi)部管理操作。19.靜態(tài)成員函數(shù)不能直接引用類中說明的非靜態(tài)成員。20.對于含有對象成員的派生類,其析構(gòu)函數(shù)的執(zhí)行順序為:先派生類的析構(gòu)函數(shù)、再執(zhí)行對象成員所屬類的析構(gòu)函數(shù),最后執(zhí)行基類的析構(gòu)造函數(shù)。21.設(shè)置友元函數(shù)的目的是為能夠訪問該類的私有成員。22.運算符重載仍然保持原來的優(yōu)先級、結(jié)合性和語法結(jié)構(gòu)。23.基類的私有成員不能被派生類的成員訪問。24.靜態(tài)聯(lián)編支持的多態(tài)性稱為編譯時的多態(tài)性,也稱靜態(tài)多態(tài)性。25.任何類中允許有三種訪問權(quán)限的數(shù)據(jù),這三種訪問權(quán)限分別是私有的(private)、被保護的(protected)、公有的(public)。26.C+
4、中封裝性、繼承性和多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計的三個主要特性。27.實現(xiàn)運行時的多態(tài)性要使用繼承和虛函數(shù)。28.將雙目運算符重載為某類的成員函數(shù)時,該成員函數(shù)的左操作數(shù)為當(dāng)前對象(或*this),右操作數(shù)為函數(shù)參數(shù)。29.C+程序運行時,總是從主函數(shù)(main)開始執(zhí)行。30.從實現(xiàn)的角度看,多態(tài)性可以分為編譯時的多態(tài)性和運行時的多態(tài)性。31.抽象類只能作為基類使用,而不能聲明它的對象。32.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的可重用性。33.純虛函數(shù)的聲明格式為:virtual 函數(shù)返回值的數(shù)據(jù)類型 函數(shù)名(形參列表)=0;。34.靜態(tài)成員函數(shù)沒有this指
5、針。35.類有兩個特殊的成員函數(shù),即構(gòu)造函數(shù)和析構(gòu)函數(shù)。36.運算符op重載時,其函數(shù)名是由operator op構(gòu)成。37.無符號整型的類型關(guān)鍵字是unsigned。39.若定義int a23=2,3;則值為3的數(shù)組元素是a10。40.B類是A類的友元,C類是B類的友元,則C類不是A類的友元(如果沒有顯式聲明C是A的友元)。41.模板聲明中的第一個符號總是關(guān)鍵字template。42.C+語言規(guī)定對所有用到的變量要“先定義,后使用”。43.從用戶使用的角度看,函數(shù)有兩種,即系統(tǒng)(庫)函數(shù)和用戶自定義函數(shù)。44.一個變量的地址稱為該變量的指針。45.使幾個不同的變量共占同一段內(nèi)存的結(jié)構(gòu)稱為共用
6、體。46.引用是給對象取一個別名,它引入了對象的同義詞。47.用已有對象復(fù)制一個新對象時調(diào)用復(fù)制構(gòu)造函數(shù)。48.C+提供的預(yù)處理功能主要有宏定義、文件包含和條件編譯。49.C+中static用聲明的變量稱為靜態(tài)變量。50.程序的三種控制結(jié)構(gòu)包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。51.C+中可重用性是通過繼承這一機制來實現(xiàn)的。52.名稱為sample的類的復(fù)制構(gòu)造函數(shù)的原型聲明語句為sample(const sample &);。53.如果參加運算的兩個數(shù)中有一個數(shù)為float型數(shù)據(jù),則運算的結(jié)果是double型。54.在定義函數(shù)時函數(shù)名后面括號中的變量名稱為形式參數(shù),在主調(diào)函數(shù)中調(diào)用一個函
7、數(shù)時,函數(shù)名后面括號中的參數(shù)稱為實際參數(shù)。55.如果有一個變量是專門用來存放另一變量的地址(即指針)的,則它稱為指針變量。56.在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用。57.一個新類從已有的類那里獲得其已有特性,這種現(xiàn)象稱為類的繼承。58.向不同的對象發(fā)送同一個消息,不同的對象在接收時會產(chǎn)生不同的行為(即方法),這種現(xiàn)象稱為多態(tài)性。59.在派生類中,對基類的繼承方式可以有公用繼承、私有繼承、保護繼承。60.派生類中的成員包括從基類繼承過來的成員和自己增加的成員兩大部分。二、選擇題1在一個C+程序文件中,main()函數(shù)的位置_D_。A)必須在開始B)必須在最
8、后C)必須在系統(tǒng)調(diào)用庫函數(shù)后D)可以任意2下列屬于C+合法的字符常量是_C_。A)'97'B)"A"C)'t'D)"0"3設(shè)int x=10,x+=3+x%(-3),則x=_A_。A)14B)15C)11D)124下列運算符,不能重載為友元函數(shù)的是_A_。A)=、()、->B)+、-、+、-C)<、>、<=、>=D)+=、-=、*=、/=5在C+中,要實現(xiàn)動態(tài)聯(lián)編,必須使用_D_調(diào)用虛函數(shù)A)類名B)派生類指針C)對象名D)基類指針6成員運算符obj1>obj2被C+編譯器解釋為_D_。
9、A)operator>()B)>(obj1,obj2)C)obj2.operator>(obj1)D)obj1.operator>(obj2)7在C+中,用于實現(xiàn)運行時多態(tài)性的是_B_。A)內(nèi)聯(lián)函數(shù)B)虛函數(shù)C)模板函數(shù)D)重載函數(shù)8在下列函數(shù)原型中,可以作為類AA構(gòu)造函數(shù)的是_D_。A)void AA(int);B)int AA();C)AA(int)const;D)AA(int);9.對于語句cout<<x<<endl;中的各個組成部分,下列敘述中錯誤的是_C_。A)“cout”是一個輸出流對象B)“endl”的作用是輸出回車換行C)“<
10、;<”稱作流提取運算符D)“x”是一個變量10編譯預(yù)處理命令以_D_結(jié)尾。A);B).C)D)回車鍵11下列運算符中,在C+語言中不能重載的是_C_A) *B) >=C) :D)/12函數(shù)調(diào)用語句fun(a+b,3,max(n-1,b);中,實參的個數(shù)為_A_A)3B)4C)5D)613若有說明int a10=1,2,3,4,5,6,7,8,9,10,*p=a;,則數(shù)值為9的表達式是_B_。A) *p+9B) *(p+8)C) *p+=9D) p+714有關(guān)虛函數(shù)的說法不正確的是_B_。A)只有類的成員函數(shù)才能說明為虛函數(shù) B)靜態(tài)成員函數(shù)可以是虛函數(shù)C)構(gòu)造函數(shù)不能是虛函數(shù)D)析
11、構(gòu)函數(shù)可以是虛函數(shù)15逗號表達式a=4,b=6,a-,b-,a+b的值為_B_。A)9B)8C)10D)616對于類中定義的成員,其隱含訪問權(quán)限為_B_。A)publicB)privateC)staticD)protected17通??截悩?gòu)造函數(shù)的參數(shù)是_C_。A)當(dāng)前類的對象名B)當(dāng)前類的對象的成員名C)當(dāng)前類的對象的引用名D)當(dāng)前類的對象的指針名18聲明一個類的對象時,系統(tǒng)自動調(diào)用一個函數(shù);撤消對象時,系統(tǒng)自動調(diào)用一個函數(shù);這兩個函數(shù)分別為_C_。A)成員函數(shù);構(gòu)造函數(shù)B)復(fù)制構(gòu)造函數(shù);析構(gòu)函數(shù)C)構(gòu)造函數(shù);析構(gòu)函數(shù)D)析構(gòu)函數(shù);復(fù)制構(gòu)造函數(shù)19當(dāng)一個派生類私有繼承一個基類時,基類中的所有
12、公有成員和保護成員成為派生類的_A_。A)private成員B)protected成員C)public成員D)友元20在C+中,要實現(xiàn)動態(tài)聯(lián)編,必須使用_D_調(diào)用虛函數(shù)A)類名B)派生類指針C)對象名D)基類指針21若一個類中含有純虛函數(shù),則該類稱為_A_。A)抽象類B)純基類C)派生類D)基類22設(shè)n=8,i=4,則賦值運算n%=i+1執(zhí)行后,n的值是_B_。A)0B)3C)2D)123C+語言是從早期的C語言逐漸發(fā)展演變而來的,與C語言相比,它在求解問題方法上進行的最大改進是_D_。A) 面向過程B) 復(fù)用性C) 安全性D) 面向?qū)ο?4類的成員函數(shù)不包括_C_。A)構(gòu)造函數(shù)B)析構(gòu)函數(shù)C
13、)友元函數(shù)D)拷貝構(gòu)造函數(shù)25下列字符串常量表示中,_D_是錯誤的。A) ”ABC0”B)”O(jiān)Kt”C)”abcdn”D)ABC26友元運算符obj1>obj2被C+編譯器解釋為_A_。A) operator>(obj1,obj2)B) >(obj1,obj2)C) obj2.operator>(obj1)D) obj1.operator>(obj2)27下列運算符中,在C+語言中不能重載的是_C_。A) *B) >=C) :D)/28下面對友元函數(shù)描述正確的是_C_。A)友元函數(shù)的實現(xiàn)必須在類的內(nèi)部定義B)友元函數(shù)是類的成員函數(shù)C)友元函數(shù)破壞了類的封裝性
14、和隱藏性D)友元函數(shù)不能訪問類的私有成員29下面敘述不正確的是_A_。A)基類的保護成員在派生類中仍然是保護成員B)基類的保護成員在公有派生類中仍然是保護成員C)基類的保護成員在私有派生類中是私有成員D)對基類成員的訪問必須是無二義性30考慮函數(shù)原型void test(int a,int b=7,char z= '*'),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是_C_。A) test(5)B)test(5,8)C)test(6,"#")D)test(0,0,'*');31.下面關(guān)于對象概念的描述中,_D_是錯誤的。A.對象代表著正在創(chuàng)建的系統(tǒng)中的
15、一個實體 B.對象之間的信息傳遞是通過消息進行的C.對象是一個狀態(tài)和操作(或方法)的封裝體 D.對象就是C語言中的結(jié)構(gòu)體變量32.使用派生類的主要原因是_B_。A.提高程序的運行效率 B.提高代碼的可重用性 C.加強類的封裝性D.實現(xiàn)數(shù)據(jù)的隱藏33.有關(guān)析構(gòu)函數(shù)的說法不正確的是_D_。A.析構(gòu)函數(shù)有且只有一個 B.析構(gòu)函數(shù)無任何函數(shù)類型C.析構(gòu)函數(shù)沒有形參D.析構(gòu)函數(shù)的作用是在對象被撤消時收回先前分配的內(nèi)存空間 清理功能34.通??截悩?gòu)造函數(shù)的參數(shù)是_C_。A.某個對象名B.某個對象的成員名C.某個對象的引用名 D.某個對象的指針名35.如果在基類中將show聲明為不帶返回值的純虛函數(shù),正確的
16、寫法是_C_。A.virtual show()=0;B.virtual void show();C.virtual void show()=0;D.void show=0 virtual;36.下面關(guān)于友元的描述中,錯誤的是_D_。A.友元函數(shù)可以訪問該類的私有數(shù)據(jù)成員B.一個類的友元類中的成員函數(shù)都是這個類的友元函數(shù)C.友元可以提高程序的運行效率D.類與類之間的友元關(guān)系可以繼承37.在C+中,_B_運算符不能重載。A. +B.?:C.-D.<=38.能用友元函數(shù)重載的運算符是_A_。A.+B.=C.D.->39.在聲明類時,下面的說法正確的是_C_。A.可以在類的聲明中給數(shù)據(jù)成員
17、賦初值B.數(shù)據(jù)成員的數(shù)據(jù)類型可以是register (CPU中存放)C.private,public,protected可以按任意順序出現(xiàn)D.沒有用private,public,protected定義的數(shù)據(jù)成員是公有成員40.繼承具有_B_,即當(dāng)基類本身也是某一個類的派生類時,底層的派生類也會自動繼承間接基類的成員。A.規(guī)律性B.傳遞性C.重復(fù)性D.多樣性41.在多重繼承中,公有派生和私有派生對于基類成員在派生類中的可訪問性與單繼承的規(guī)則_A_。A.完全相同B.完全不同C.部分相同,部分不同D.以上都不對42.關(guān)于成員函數(shù)特征的下述描述中,_A_是錯誤的。A.成員函數(shù)一定是內(nèi)置函數(shù)B.成員函數(shù)
18、可以重載C.成員函數(shù)可以設(shè)置參數(shù)的默認(rèn)值D.成員函數(shù)可以是靜態(tài)的43.下列的各類函數(shù)中,_C_不是類的成員函數(shù)。A.構(gòu)造函數(shù)B.析構(gòu)函數(shù)C.友元函數(shù)D.拷貝構(gòu)造函數(shù)44.模板的使用是為了_C_。A.加強類的封裝性B.提高代碼的運行效率C.提高代碼的可重用性D.實現(xiàn)多態(tài)性45.下列表示引用的方法中,_D_是正確的。已知:int m=10;A. float &t=&m;B.int &y=10;C.int &z;D. int &x=m;46.在下面有關(guān)對構(gòu)造函數(shù)的描述中,正確的是_A_。A.構(gòu)造函數(shù)沒有返回值B.構(gòu)造函數(shù)的名字與類名不完全相同 (必須相同)C.
19、構(gòu)造函數(shù)必須帶有參數(shù)D.構(gòu)造函數(shù)必須定義,不能默認(rèn)47.友元的作用之一是_D_。A.增加成員函數(shù)的種類B.加強類的封裝性C.實現(xiàn)數(shù)據(jù)的隱藏性D.提高程序的運行效率48.通常復(fù)制構(gòu)造函數(shù)的參數(shù)是_C_。A.某個對象名B.某個對象的成員名C.某個對象的引用名D.某個對象的指針名49.下列運算符中,_B_運算符在C+中不能重載。A. +B.?:C.-D.<=50.下列關(guān)于運算符重載的描述中,_C_是正確的。A.運算符重載可以改變操作數(shù)的個數(shù)B.運算符重載可以改變優(yōu)先級C.運算符重載不可以改變語法結(jié)構(gòu)D.運算符重載可以改變結(jié)合性51.設(shè)有定義int a ;float f;double i;則表達
20、式10+a+i*f值的數(shù)據(jù)類型是_C_。A.intB.floatC.doubleD.不確定52.對虛函數(shù)的調(diào)用_D_。A.一定使用動態(tài)聯(lián)編B.必須使用動態(tài)聯(lián)編C.一定使用靜態(tài)聯(lián)編D.不一定使用動態(tài)聯(lián)編53.派生類的對象對它的基類_A_是可以訪問的。A.公有繼承的公有成員B.公有繼承的私有成員C.公有繼承的保護成員D.私有繼承的公有成員54.類模板的使用實際上是將類模板實例化成一個具體的_A_。A.類(模板類)B.對象C.函數(shù)D.模板函數(shù)55.下列關(guān)于switch語句的描述中,_A_是正確的。A. switch語句中default子句可以沒有,也可有一個B. switch語句中每個語句序列中必須
21、有break語句C. switch語句中default子句只能放在最后D. switch語句中case子句后面的表達式只能是整型表達式56.系統(tǒng)在調(diào)用重載函數(shù)時往往根據(jù)一些條件確定哪個重載函數(shù)被調(diào)用,在下列選項中,不能作為依據(jù)的是_D_。A.參數(shù)個數(shù) B.參數(shù)的類型C.函數(shù)名稱 D.函數(shù)的類型 (即為函數(shù)返回值的數(shù)據(jù)類型)57.在int b3=1,3,2,4,5,6,0;中b22的值是_C_。A.0B.5C.6D.258.下列字符串常量表示中,_A_是錯誤的。A.”yes”or”No”B.”O(jiān)K!”C.”abcdn”D.”ABC0”59.在C+中,關(guān)于設(shè)置參數(shù)的默認(rèn)值的描述中,正確的是_C_。
22、A.不允許設(shè)置參數(shù)的默認(rèn)值B.設(shè)置參數(shù)默認(rèn)值只能在定義函數(shù)時設(shè)置C.設(shè)置參數(shù)默認(rèn)值時,應(yīng)該是先設(shè)置右邊的再設(shè)置左邊的D.設(shè)置參數(shù)默認(rèn)值時,應(yīng)該全部參數(shù)都設(shè)置60.有關(guān)類的說法中,不正確的是_D_。A.類是一種用戶定義的數(shù)據(jù)類型B.類中的成員函數(shù)才能存取類中的私有數(shù)據(jù)C.在類中,如果不作特別說明,所指的數(shù)據(jù)均為私有類型D.在類中,如果不作特別說明,所指的成員函數(shù)均為公有類型61.有關(guān)類和對象的說法不正確的是_C_。A.對象是類的一個實例 B.任何一個對象只能屬于一個具體的類C.一個類只能有一個對象 D.類與對象的關(guān)系和數(shù)據(jù)類型與變量的關(guān)系相似62.有關(guān)構(gòu)造函數(shù)的說法不正確的是_D_。A.構(gòu)造函數(shù)
23、名字和類的名字一樣 B.構(gòu)造函數(shù)在說明類的某個對象時自動執(zhí)行C.構(gòu)造函數(shù)無任何函數(shù)類型 D.構(gòu)造函數(shù)有且只有一個 (構(gòu)造函數(shù)可以重載)63._ D _不是構(gòu)造函數(shù)的特征。A.構(gòu)造函數(shù)的函數(shù)名與類名相同B.構(gòu)造函數(shù)可以重載C.構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)D.構(gòu)造函數(shù)必須指定類型說明64._A_是析構(gòu)函數(shù)的特征。A.一個類中只能定義一個析構(gòu)函數(shù)B.析構(gòu)函數(shù)名與類名不同C.析構(gòu)函數(shù)的定義只能在類體內(nèi) D.析構(gòu)函數(shù)可以有一個或多個參數(shù)三、讀程序?qū)懡Y(jié)果1.#include<iostream>using namespace std; int a=1,3,5,7,9;int & fun(in
24、t i)return ai;int main() int i;fun(3)=12;for(i=0;i<5;i+)cout<<ai<<“ ”;/“ ”中間空3個格cout<<endl;system("pause"); return 0; 運行結(jié)果:1 3 5 12 9 2.#include<iostream>using namespace std; class M public: M(int a=0,int b=0) x=a;y=b; int getx() return x; int gety() return y; pr
25、ivate: int x,y; int main() M op1(5,6); int i,j; i=op1.getx(); j=op1.gety(); cout<<"i="<<i<<",j="<<j<<endl; system("pause"); return 0; 運行結(jié)果:i=5,j=63.#include<iostream>using namespace std;class Bookint num,price;public:Book(int a=0,int
26、b=0)num=a;price=b;void showMoney()cout<<num*price<<endl;int main() Book b=Book(1,2),Book(3,6),Book(8,9);Book *p;int i;p=&b2;for(i=0;i<3;i+,p-)p->showMoney(); 72 system("pause"); 18return 0; 運行結(jié)果: 24.#include<iostream>using namespace std; int f(int); int main() i
27、nt i;for(i=0;i<5;i+) cout<<f(i)<<" "; cout<<endl; system("pause");return 0; int f(int i) static int k=1;for(;i>0;i-) k +=i;return k; 運行結(jié)果:2 5 11 215.#include <iostream>using namespace std;class samplepublic:sample()cout<<"Constructor"
28、<<endl;void fn(int i)static sample c;cout<<"i="<<i<<endl;int main()fn(14); Constructorfn(16); 14return 0; 運行結(jié)果: 166.#include <iostream>using namespace std;int n=0;int &f(int m)n+=m;return n;int main()f(5)+=23;cout<<"n="<<n<<endl
29、;return 0; 運行結(jié)果:287.#include <iostream>using namespace std;int main() int num=327;long p=1;dop*=num%10;num/=10;while(num);cout<<"p="<<p<<endl;return 0; 運行結(jié)果:p=428.#include <iostream>using namespace std;int main()int a10=1,2,3,4,5,6,7,8,9,*p=a+6;cout<<*(-
30、p)<<endl;*(p+4)+=7;cout<<p4<<endl; 6return 0; 運行結(jié)果:79.#include<iostream.h>#include<stdlib.h>class timerpublic:timer() seconds=0;timer(int t) seconds=t;timer(int min,int sec) seconds=min*60+sec;int gettime() return seconds;private:int seconds;void main()timer a,b (10),c(
31、1,10);cout<<"seconds1="<<a.gettime()<<endl; seconds=0cout<<"seconds2="<<b.gettime()<<endl; seconds=10cout<<"seconds3="<<c.gettime()<<endl; 運行結(jié)果: seconds=70 10.#include<iostream> using namespace std; class Tests
32、tatic int count;public:Test()+count;cout<<"對象數(shù)量="<<count<<endl; Test()-count;cout<<"對象數(shù)量="<<count<<endl;int Test:count=0; 對象數(shù)量=1void main() 對象數(shù)量=2Test t3; 運行結(jié)果: 對象數(shù)量=3 對象數(shù)量=211.#include <iostream> 對象數(shù)量=1#include <iomanip> 對象數(shù)量=0usin
33、g namespace std;class myclasspublic: myclass()cout<<setw(3)<<2; myclass(char c)cout<<setw(3)<<3; myclass()cout<<setw(3)<<4<<endl;int main()myclass a,p1,*p2;p2=new myclass('X');delete p2;system("pause");return 0; 運行結(jié)果: 2 2 3 412.#include <
34、;iostream>#include <iomanip>using namespace std;long sum(int n)long s; if(n=1|n=2) s=2; else s=n+sum(n-1); return s; int main()long x; x=sum(4); cout<<x<<endl; system("pause"); return 0; 運行結(jié)果:913.#include <iostream.h>#define max(a,b) (a)>(b)?(a):(b) void main(
35、)int m(1),n(2),p(0),q;q=max(m,n+p)*10;cout<<q<<endl; 運行結(jié)果:2014.#include <iostream.h>#define N 5void fun();void main()for(int i(1);i<N;i+)fun();void fun()static int a;int b(2); 5cout<<(a+=3,a+b)<<endl; 運行結(jié)果:8 1115.#include <iostream.h> 14class pointpublic:point(
36、int i,int j)x=i;y=jvoid print()cout<< (<<x<< ,<<y<<)<<endl;void operator+=(point p)x+=p.x;y+=p.y;void operator-=(point p)x-=p.x;y-=p.y;private:int x,y;void main()point p1(5,7),p2(4,3);p1.print();p2.print();p1+=p2;p1.print();p2-=p1; (5 ,7)p2.print(); (4 , 3) 運行結(jié)果:
37、(9, 10) (-5,-7)四、程序填空1.下面的程序中定義抽象類Base1,利用基類指針作函數(shù)形參調(diào)用虛函數(shù),以實現(xiàn)動態(tài)聯(lián)編。#include <iostream>using namespace std;class Base1/基類Base1定義public:virtual void display()const=0;/純虛函數(shù)(常成員函數(shù))的定義;class Base2:public Base1/基類Base1的公有派生類Base2定義public:void display() const;void Base2:display() constcout << &qu
38、ot;Base2:display()" << endl;class Derived:public Base2/派生類Derived公有繼承Base2public:void display() const;void Derived:display() const cout << "Derived:display()" << endl;void fun(Base1 *ptr)/形參為基類指針的沒有返回值的普通函數(shù)fun的函數(shù)首部ptr->display();/用基類指針ptr調(diào)用虛函數(shù)display()int main() B
39、ase2 base2; Derived derived;/定義Derived類對象fun(&base2);/用Base2對象的指針調(diào)用fun函數(shù)fun(&derived);return 0;2.下面程序的功能是定義類sample,并輸出其數(shù)據(jù)成員,請?zhí)羁眨?include <iostream>using namespace std;class sample/類的定義int m;static int n;/定義整型靜態(tài)數(shù)據(jù)成員npublic:sample(int i)n+;m=i;void disp()成員函數(shù)disp的函數(shù)首部cout<<"m=
40、"<<m<<"n"<<"n="<<n<<endl;int sample:n=0;/為整型靜態(tài)數(shù)據(jù)成員n賦初值0int main()sample s1(3),s2(4);s1.disp();s2.disp();return 0;3.下面程序的功能是重載后置自增1運算符,以實現(xiàn)時鐘對象增1操作。#include <iostream>using namespace std;class Clock public: Clock(int h=0,int m=0, int s=0):ho
41、ur(h),minute(m),second(s)void showTime()const/常成員函數(shù)showTime()的首部cout<<hour<<”:”<<minute<<”:”<<second<<endl;Clock operator+();/后置+的重載函數(shù)原型聲明private:int hour,minute,second;Clock Clock:operator+(int)Clock old=*this;second+;if (second>=60)second%=60;minute+;if (minu
42、te>=60)minute%=60;hour=(hour+1)%24;return old;/函數(shù)的返回值int main() Clock myClock(23,59,59);cout<<"First time output: ";myClock.showTime();cout<<"Show myClock+: ";(myClock+).showTime();/調(diào)用后置+重載函數(shù)并輸出增1之前的對象的數(shù)據(jù)成員值return 0;五、判斷題1.使用內(nèi)聯(lián)函數(shù)是以增大空間開銷為代價的。2.C+語言中規(guī)定:函數(shù)返回值的數(shù)據(jù)類型是由定
43、義函數(shù)規(guī)定的數(shù)據(jù)類型所決定的。3.為了避免嵌套if-else的二義性,C+語言規(guī)定:else與其之前最近的未配對的if配對。4.在C+語言中,實參和與其對應(yīng)的形參各占用獨立的存儲單元。5.在類中,如果不作特別說明,所有成員的訪問屬性均為私有類型。6.C+程序中如果一個函數(shù)先被調(diào)用,后被定義,則應(yīng)在主調(diào)函數(shù)中對被調(diào)函數(shù)進行原型聲明。7.如果在同一個源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量被“屏蔽”,即它不起作用。8.switch語句中default子句的書寫位置是任意的。9.在C+中,編譯時的多態(tài)性是通過函數(shù)和運算符的重載實現(xiàn)的。10.成員函數(shù)不一定是內(nèi)置函數(shù)。11.
44、內(nèi)聯(lián)函數(shù)中不可以包括復(fù)雜語句,如switch及循環(huán)語句等。12.C+語言規(guī)定,函數(shù)定義不可嵌套,但函數(shù)的調(diào)用可以嵌套。13.友元關(guān)系是單向的,不可交換的。14.C+中引進了類和對象的概念,從而使得C語言發(fā)生了質(zhì)變,即從面向過程變成面向?qū)ο蟆?5.常成員函數(shù)只能用來引用數(shù)據(jù)成員的值,而不允許改變數(shù)據(jù)成員的值。16.派生類中公有繼承的基類成員的訪問權(quán)限到派生類保持不變。17.構(gòu)造函數(shù)可以重載是構(gòu)造函數(shù)的特征。17.C+語言允許使用友元,但是友元會破環(huán)封裝性。19.構(gòu)造函數(shù)在說明對象時自動執(zhí)行。20.構(gòu)造函數(shù)可以重載。21.new運算符不能對動態(tài)分配的數(shù)組存儲區(qū)進行初始化。22.析構(gòu)函數(shù)沒有形參,沒
45、有返回值,不能重載。23.已知:int m=10;則int &x=m;是正確的。24.while循環(huán)與dowhile循環(huán)不完全相同,因為while的循環(huán)體可能一次也不執(zhí)行而dowhile語句的循環(huán)至少執(zhí)行一次。25.構(gòu)造函數(shù)名字和類名相同,構(gòu)造函數(shù)可以帶默認(rèn)參數(shù),可以重載,在創(chuàng)建對象時自動執(zhí)行。26.指針變量只有賦值才指向了一個變量。27.在函數(shù)定義中可以沒有return語句,也可以有多個return語句。28.派生類中繼承的基類成員的訪問權(quán)限取決于繼承方式。29.自增運算符(+)和自減運算符(-)只能用于變量,不能用于常量和表達式。30.在對程序進行編譯的過程中,不會發(fā)現(xiàn)注釋中的拼寫
46、錯誤。31.如果對靜態(tài)存儲類別的數(shù)值變量未賦初值,則默認(rèn)值為0。32.C+語言中模板分為函數(shù)模板和類模板兩種。33.必須在類定義體外對靜態(tài)數(shù)據(jù)成員進行初始化。34.構(gòu)造函數(shù)和析構(gòu)函數(shù)不可以被繼承。35.在多繼承情況下,派生類的構(gòu)造函數(shù)中基類構(gòu)造函數(shù)的執(zhí)行順序取決于定義派生類時所指定的各基類的順序。36.對單目運算符重載為友元函數(shù)時,說明一個形參;重載為成員函數(shù)時,不能顯式說明形參。37.預(yù)處理過程是編譯過程之前進行的。38.break語句可以出現(xiàn)在各種循環(huán)體中。六、編程題1.編寫一個程序計算正方體(cube)和圓柱體(cylinder)的體積。要求:(1)定義一個抽象類shape,在其中定義求
47、體積的純虛函數(shù)volume()。(2)抽象類中定義受保護的數(shù)據(jù)成員radius,可作為正方體的邊長或圓柱體的底面圓的半徑。(3)由抽象類派生出要描述的2個類cube和cylinder,在這2個類中要將求體積的函數(shù)實現(xiàn)。(4)設(shè)計一個main()函數(shù),定義一個圓柱體類的對象,并輸出圓柱體的體積。#include <iostream>#define PI 3.1415926using namespace std;class shapepublic:shape(double r) radius=r; virtual double volume()=0; protected: double
48、 radius; ;class cube:public shapepublic:cube(double r):shape(r) double volume()return radius*radius*radius; ;class cylinder:public shapepublic:cylinder(double r,double h):shape(r)height=h; double volume()return PI*radius*radius*height; private: double height; ;int main()cylinder c(5,5);shape *p=&
49、;c;cout<<"cylinder volume is"<<p->volume()<<endl;return 0;2.設(shè)計一個復(fù)數(shù)類complex,其數(shù)據(jù)成員包括real(實部)、image(虛部)。要求:(1)用成員函數(shù)實現(xiàn)以下功能:l 定義默認(rèn)函數(shù),復(fù)數(shù)的實部與虛部初始化為0;l 定義帶參構(gòu)造函數(shù),復(fù)數(shù)的實部與虛部用函數(shù)的參數(shù)初始化;l 用函數(shù)disp()輸出復(fù)數(shù),輸出形式為a+bi(a、b分別為實部和虛部,當(dāng)b為負數(shù)時輸出a-bi);(2)重載運算符“+”,用于實現(xiàn)兩個復(fù)數(shù)的相加運算。要求將其重載為友元函數(shù)。#include
50、 <iostream>using namespace std;class complexpublic: complex()real=0;image=0; complex(int r,int i)real=r;image=i; void disp(); friend complex operator+(complex &c1,complex &c2); private: int real,image;void complex:disp() if(real!=0) cout<<real; if(image=0) if(real=0) cout<<
51、0<<endl; else cout<<endl; else if(image>0) if(image=1) if(real!=0) cout<<"+i"<<endl; else cout<<"i"<<endl; else cout<<"+"<<real<<"i"<<endl; else if(image=-1) cout<<"-i"<<endl;
52、 else cout<<image<<"i"<<endl; complex operator+(complex &c1,complex &c2) return complex(c1.real+c2.real,c1.image+c2.image); 該函數(shù)也可以如下實現(xiàn)complex operator+(complex &c1,complex &c2) complex c; c.real=c1.real+c2.real;c.image=c1.image+c2.image; return c;3.編寫一個程序?qū)崿F(xiàn)對n個整數(shù)按照從大到小的順序應(yīng)用選擇法排序。#include <iostream>#include <iomanip>#define N 10using namespace std;void select_sort(int a,int n)int t,i,j,k; for(i=0;i<n-1;i+) k=i; for(j=i+1;j<n;j+) if(aj>ak)k=j; if(k!=i) t=ai;ai=ak;ak=t; int main() int xN,i; for(i=0;i&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車6s衛(wèi)生管理制度
- 衛(wèi)生院隔離診室工作制度
- 食堂衛(wèi)生清潔制度
- 新鄉(xiāng)鎮(zhèn)衛(wèi)生院會計制度
- 食堂開餐期間衛(wèi)生管理制度
- 肉類分割加工廠財務(wù)制度
- 小學(xué)創(chuàng)衛(wèi)衛(wèi)生管理制度
- 幼兒教室衛(wèi)生清潔制度
- 園所十項衛(wèi)生保健制度
- 衛(wèi)生院伙房制度
- 街道(鄉(xiāng)鎮(zhèn))區(qū)域養(yǎng)老服務(wù)中心建設(shè)驗收指標(biāo)總分表及驗收標(biāo)準(zhǔn)
- 國家衛(wèi)生部《綜合醫(yī)院分級管理標(biāo)準(zhǔn)》
- 撇洪溝改造工程監(jiān)理規(guī)劃河道整治樣本
- (完整版)保證藥品信息來源合法、真實、安全的管理措施、情況說明及相關(guān)證明
- 預(yù)防兩癌知識講座
- 人教版九年級數(shù)學(xué)第二十四章《圓》單元知識點總結(jié)
- 西班牙語專業(yè)本科論文模板
- GB/T 42288-2022電化學(xué)儲能電站安全規(guī)程
- 地質(zhì)災(zāi)害治理工程用表格(完整資料)
- GB/T 9254.1-2021信息技術(shù)設(shè)備、多媒體設(shè)備和接收機電磁兼容第1部分: 發(fā)射要求
- GB/T 39287-2020閉式膨脹罐
評論
0/150
提交評論