下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 / 541、數(shù)據(jù)共享與保護(hù)一、選擇題:1、在下面存儲類中, ( C ) 對象的可見性與生存期不一致。A.外部類 B. 自動(dòng)類 C. 內(nèi)部靜態(tài)類 D. 寄存器類2、在下面存儲類中,( A )的對象不是局部變量。A.外部靜態(tài)類 B. 自動(dòng)類 C. 函數(shù)形參 D.寄存器類3、關(guān)于局部變量,下面說法正確的是 ( C ) 。A. 定義該變量的程序文件中的函數(shù)都可以訪問B.定義該變量的函數(shù)中的定義處以下的任何語句都可以訪問C.定義該變量的復(fù)合語句中的定義處以下的任何語句都可以訪問D.定義該變量的函數(shù)中的定義處以上的任何語句都可以訪問4、一個(gè)類的靜態(tài)數(shù)據(jù)成員所表示屬性 ( C ) 。A.C.是類的或?qū)ο?/p>
2、的屬性B.只是對象的屬性類和友元的屬性只是類的屬性D5、類的靜態(tài)成員的訪問控制(D )。A.只允許被定義為 privateB.只允許被定義為 private或 protectedC.只允許被定義為publicD.可允許被定義為 private、 protected 或 public6、靜態(tài)成員函數(shù)對類的數(shù)據(jù)成員訪問(B )。A.是不允許的B.只允許是靜態(tài)數(shù)據(jù)成員C.只允許是非靜態(tài)數(shù)據(jù)成員D. 可允許是靜態(tài)數(shù)據(jù)成員或非靜態(tài)數(shù)據(jù)成員7、被非靜態(tài)成員函數(shù)訪問的類的數(shù)據(jù)成員 ( A ) 。A. 可以是非靜態(tài)數(shù)據(jù)成員或靜態(tài)數(shù)據(jù)成員 B. 不可能是類的靜態(tài)數(shù)據(jù)成員C. 只能是類的非靜態(tài)數(shù)據(jù)成員 D. 只能
3、是類的靜態(tài)數(shù) 據(jù)成員8、靜態(tài)數(shù)據(jù)成員的初始化是在(D )中進(jìn)行的。A. 構(gòu)造函數(shù) B. 任何成員函數(shù)C. 所屬類 D. 全局區(qū)9、當(dāng)將一個(gè)類 A 或函數(shù) f()說明為另一個(gè)類 B 的友元后,類 A 或函數(shù) f()能夠 直接訪問類 B 的( D )。A. 只能是公有成員B.只能是保護(hù)成員C. 只能是除私有成員之外的任何成員 D. 具有任何權(quán)限的成員10、 引入友元的主要目的是為了(C )。A. 增強(qiáng)數(shù)據(jù)安全性B.提高程序的可靠性C. 提高程序的效率和靈活性 D. 保證類的封裝性11、 一個(gè)類的成員函數(shù)也可以成為另一個(gè)類的友元函數(shù),這時(shí)的友元說明 ( A )。A. 需加上類域的限定B.不需加上類域
4、的限定C. 類域的限定可加可不加 D. 不需要任何限定二、判斷題2 / 541、 類的靜態(tài)數(shù)據(jù)成員需要在定義每個(gè)類的對象時(shí)進(jìn)行初始化。F2、當(dāng)將一個(gè)類 S 定義為另一個(gè)類 A 的友元類時(shí),類 S 的所有成員函數(shù)都可以直 接訪問類 A 的所有成員。T3、 靜態(tài)數(shù)據(jù)成員必須在類外定義和初始化。T4、 靜態(tài)成員函數(shù)可以引用屬于該類的任何函數(shù)成員F。5、友元函數(shù)是在類聲明中由關(guān)鍵字 frie nd 修飾說明的類的成員函數(shù)。F6 友元函數(shù)訪問對象中的成員可以不通過對象名F三、填空題:1、若“ double x=100?!笔俏募?F1.CPP 中的一個(gè)全局變量定義語句,若 文件F2.CPP 中的某個(gè)函數(shù)需
5、要訪問此 x ,則應(yīng)在文件 F2.CPP 中添加對 x 的 聲明語句為Extern double x。2、如果一個(gè)函數(shù)定義中使用了static 修飾,則該函數(shù)不允許被其它文件中的函數(shù)調(diào)用。3、 定義外部變量時(shí),不用存儲類說明符 Extern,而聲明外部變量時(shí)用它。4、 調(diào)用系統(tǒng)函數(shù)時(shí),要先使用#include 命令包含該系統(tǒng)函數(shù)的原型語句所 在的頭文件。5、 C+程序運(yùn)行時(shí)的內(nèi)存空間可以分成全局?jǐn)?shù)據(jù)區(qū),堆區(qū),棧區(qū)和代碼區(qū)。6、局部變量具有局部生存期,存放在內(nèi)存的 棧區(qū)中。7、 對類中對象成員的初始化是通過在構(gòu)造函數(shù)中給出的 初始化表來實(shí)現(xiàn) 的。&對類中常量成員的初始化是通過在構(gòu)造函數(shù)中
6、給出的 的。9、對類中引用成員的初始化只能通過在構(gòu)造函數(shù)中給出的10、對類中一般數(shù)據(jù)成員的初始化既可以通過在構(gòu)造函數(shù)中給出的初始化表來實(shí)現(xiàn),也可以通過構(gòu)造函數(shù)中的函數(shù)體來實(shí)現(xiàn)。11、假定要把 aa 定義為 AB 類中的一個(gè)常量整數(shù)型數(shù)據(jù)成員,則定義語句 constint aa 。12、假定要把 aa 定義為 AB 類中的一個(gè)引用整數(shù)型數(shù)據(jù)成員, 則定義語句 為int &aa。13、 假定 AB 類中只包含一個(gè)整型數(shù)據(jù)成員 a,并且它是一個(gè)常量成員,若 利用參數(shù) aa 對其進(jìn)行初始化,則該類的構(gòu)造函數(shù)的定義為 AB (int aa)a=aa ; 。14、 假定 AB 類中只包含一個(gè)整型數(shù)
7、據(jù)成員 a,并且它是一個(gè)引用成員,若 利用引用參數(shù) aa 對其進(jìn)行初始化,則該類的構(gòu)造函數(shù)的定義為AB(int&aa)a=aa ; 。15、 靜態(tài)成員函數(shù) 能夠直接訪問類的靜態(tài)數(shù)據(jù)成員,只能通過對象名訪問 類的非靜態(tài)數(shù)據(jù)成員。16、 靜態(tài)數(shù)據(jù)成員必須在所有函數(shù)的定義體外進(jìn)行初始化。17、一個(gè)類的成員函數(shù)也可以成為另一個(gè)類的友元函數(shù),這時(shí)的友元說明必 須在函數(shù)名前加上 類域的限定。四、修改程序題:下列程序段中, A_class 的成員函數(shù) Variance() 可求出兩數(shù)的平方差,請改 寫該初始化表來實(shí)現(xiàn)初始化表來實(shí)3 / 54程序段,把 Variance() 函數(shù)從 A_class 類
8、中分離出來,用友元函數(shù)來實(shí)現(xiàn) 該函數(shù)的功能。class A_class private:int x,y,t 。public:A_class(int i,int j):x(i),y(j) if(yx)t=x 。 x=y。 y=t 。 int Variance()return x*x-y*y。 / 其它函數(shù)從略。void main() A_class A_obj(3,5) 。coutResult:A_obj.Variance()x)t=x 。 x=y。 y=t 。 friendint Variance() 。/ 其它函數(shù)從略。int variance () return x*x-y*y 。void
9、 main() A_class A_obj(3,5) 。cout Result: A_obj.Variance()endl 。2、數(shù)組、指針與字符串一、1 、在下面的一維數(shù)組定義中,哪一個(gè)有語法錯(cuò)誤。( C )A. int a=1,2,3。 B. int a10=0。C. int a 。D. int a5。2、在下面的字符數(shù)組定義中,哪一個(gè)有語法錯(cuò)誤。(D )。A. char a20=”abcdefg ”。 B. char a=” x+y=55. ”。5。4 / 54C. char a15 。D. char a10=3、在下面的二維數(shù)組定義中,正確的是A. int a5 。C. int a3=
10、1,3,5,24、假定一個(gè)二維數(shù)組的定義語句為“ 元素 a12 的值為( C )。A. 2 B. 4 C. 6 D. 85、假定一個(gè)二維數(shù)組的定義語句為“ 元素 a21 的值為( A )。A. 0 B. 4 C. 8 D. 66、若定義了函數(shù) double *function(),( B )。A. 實(shí)數(shù)型 B. 實(shí)數(shù)的地址7、以下函數(shù)的返回結(jié)果是( A )。int function(char *x) char *p=x 。 while(*p+)A. 求字符串的長度 B. 面C. 將字符串 x 復(fù)制到字符串 p 中8、設(shè)有如下函數(shù)定義int f(char *s) char *p=s 。while
11、(*p!= 0) p+ 。return(p-s) 。在主函數(shù)中用 coutf( “good”) 調(diào)用上述函數(shù) , 則輸出結(jié)果為 B )。A. 3B. 4C. 5D. 6A. int p=&m。 B. int *p=&mD. int *p=m 。10、變量 s 的定義為“ char *s= ” Hello world! 指向的同一個(gè)字符串,則應(yīng)選取( A )。A. char *p=s。 B. char *p=&s 。 C. char *pchar *p 。 p=&s11、關(guān)于 void 指針,下列說法正確的是( C )。A. void指針就是未指向任何數(shù)據(jù)的指針B
12、. void指針就是已定義而未初始化的指針C.指向任何類型數(shù)據(jù)的指針可直接賦值給一個(gè) void 指針D. void 指針值可直接賦給一個(gè)非 void 指針12、假定一條定義語句為“ int a10, x, *pa=a ?!?,若要把數(shù)組 a 中下標(biāo)為 3 的元素值賦給 x,則不正確的語句為(D )。A. x=pa3 。 B. x=*(a+3)。 C. x=a3。 D. x=*pa+3。( C )。B. int a5。 D. int a(10) 。int a34=3,4,2,8,6?!保瑒tint a34=3,4,2,8,6。”,則則函數(shù) function 的返回值為C. 指向函數(shù)的指針 D. 函數(shù)
13、的地址。 return(p-x-1) 。將字符串 x 連接到字符串 p 后D. 將字符串 x 反向存放9、假定變量 m 定義為“ int m=7。”,則定義變量p 的正確語句為(B )。C. int &p=*m。,要使變量 p 指向 s 所。 p=*s 。 D.5 / 5413、假定有定義“ int b10 。 int *pb ?!保瑒t不正確的賦值語句為 ( D )。A. pb=b 。 B. pb=&b0 。 C. *pb=new int 。 D. pb=b5 。14、 假定 p 是具有 double 類型的指針變量,則表達(dá)式+p 使 p 的值(以字節(jié)為 單位)增加( C )。
14、A. 1 B. 4 C. sizeof(double) D. sizeof(p)15、假定 p 指向的字符串為” string ”,則 coutp+3 的輸出結(jié)果為 ( C )。A. string B. ring C. ing D. i16、假定 p 指向的字符串為” string ”,若要輸出這個(gè)字符串的地址值,則使 用( D )。A. cout*s 。 B. couts 。 C. cout&s 。 D. coutnext 和 elemTail26、在一個(gè)用鏈表實(shí)現(xiàn)的隊(duì)列類中,假定每個(gè)結(jié)點(diǎn)包含的值域用elem 表示,包含的指針域用 next 表示,鏈隊(duì)的隊(duì)首指針用 elemHead
15、表示,隊(duì)尾指針用 elemTail 表示,若鏈隊(duì)為空,則進(jìn)行插入時(shí)必須把新結(jié)點(diǎn)的地址賦給 ( C ) 。A. elemHeadB. elemTailC. elemHead 和 elemTail D. elemHead 或 elemTail27、當(dāng)類中的一個(gè)整型指針成員指向一塊具有n*sizeof(int) 大小的存儲空間時(shí),它最多能夠存儲 ( A ) 個(gè)整數(shù)。A. n B. n+1 C. n-1 D. 1AB *px=new ABn ?!闭Z句時(shí)將 ( A ) 。 B. 動(dòng)態(tài)分配一個(gè)對象29、設(shè) px 是指向一個(gè)類對象的指針變量,則執(zhí)行“delete px ?!闭Z句時(shí),將自動(dòng)調(diào)用該類的 ( C
16、) 。A. 無參構(gòu)造函數(shù) B. 帶參構(gòu)造函數(shù) C. 析構(gòu)函數(shù) D. 拷貝 構(gòu)造函數(shù)30、當(dāng)一個(gè)類對象離開它的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該類的( D ) 。A. 無參構(gòu)造函數(shù) B. 帶參構(gòu)造函數(shù) C. 拷貝構(gòu)造函數(shù) D. 析 構(gòu)函數(shù)31、假定一個(gè)類對象數(shù)組為 An ,當(dāng)離開它定義的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該 類析構(gòu)函數(shù)的次數(shù)為 ( C ) 。A. 0 B. 1 C. n D. n-132、假定 AB 為一個(gè)類,則執(zhí)行 “AB a10?!闭Z句時(shí)調(diào)用該類無參構(gòu)造函數(shù) 的次數(shù)為 ( D ) 。A. 0 B. 1 C. 9 D. 1033、假定 AB 為一個(gè)類,則執(zhí)行 “AB *px=new ABn。”語句時(shí)
17、調(diào)用該類無參 構(gòu)造函數(shù)的次數(shù)為 ( A ) 。A. n B. n-1 C. 1 D. 034、 假定 AB 為一個(gè)類,則執(zhí)行 “AB a, b(3), *p?!闭Z句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為 ( A )。A. 2 B. 3 C. 4 D. 535、 假定 AB 為一個(gè)類,則執(zhí)行 “AB a(2), b3, *p4。”語句時(shí)共調(diào)用該 類構(gòu)造函數(shù)的次數(shù)為 ( B )。A. 3 B. 4 C. 5 D. 936、假定 AB 為一個(gè)類,則執(zhí)行“ AB a, b(2), c3, *p=&a ?!闭Z句時(shí)共調(diào)用 該類無參構(gòu)造函數(shù)的次數(shù)為 ( D )A. 5 B. 6 C. 3 D. 437、假定
18、AB 為一個(gè)類,則執(zhí)行“ AB *p=new AB(1,2)。”語句時(shí)共調(diào)用該類構(gòu) 造函數(shù)的次數(shù)為 ( B ) 。A. 0 B. 1 C. 2 D. 3C. elemHead-next28、假定 AB 為一個(gè)類,則執(zhí)行A. 動(dòng)態(tài)分配一個(gè)數(shù)組C.靜態(tài)分配一個(gè)數(shù)組D. 靜態(tài)分配一個(gè)對象7 / 5438、 假定 AB 為一個(gè)類,px 為指向該類的一個(gè)含有 n 個(gè)對象的動(dòng)態(tài)數(shù)組的指 針,則執(zhí)行“ delete px ?!闭Z句時(shí)共調(diào)用該類析構(gòu)函數(shù)的次數(shù)為 ( C )A. 0 B. 1 C. n D. n+1二、填空題:I、 用 于存儲一個(gè)長度為 n 的字符串的字符數(shù)組的長度至少為_n+1_ 。 2、若
19、a 是一個(gè)字符數(shù)組,則從鍵盤上向該數(shù)組輸入一個(gè)字符串的表達(dá)式為 _getline(cin,a) 。 _ 。3、 若 a 是一個(gè)字符數(shù)組,則向屏幕輸出 a 中所存字符串的表達(dá)式為_couta_ 。4、 一個(gè)二維字符數(shù)組a1020 能夠存儲 _10_個(gè)字符串,每個(gè)字符串的長度至多為 _19_。5、 對一個(gè)二維字符數(shù)組a 進(jìn)行初始化的數(shù)據(jù)為 ” 123” ,” 456” ,”789” ,則 a1 元素對應(yīng)的字符串為 _” 456” _。6、 strlen( ” apple” ) 的值為 _5_ , strcmp( ” a” ,” A” )的值為_1_ 。7、假定對數(shù)組 a進(jìn)行初始化的數(shù)據(jù)為2,7,9
20、,6,5,7,10,則 a2和 a5分別被初始化為 _9_ 和_7_ 。8、假定對二維數(shù)組 a34 進(jìn)行初始化的數(shù)據(jù)為 3,5,6,2,8,7 ,則a11 和 a23 分別被初始化為 _8_和_0_ 。9、若二維數(shù)組 a 有 m 列,設(shè) a00位于數(shù)組的第一個(gè)位置上,則計(jì)算任一元素 aij 在數(shù)組中位置序號的公式為 _i*m+j+1 _ _。10、若有定義“ double a35?!保瑒t a 數(shù)組中行下標(biāo)和列下標(biāo)的最大值分別為 _2_ 和_4_ 。II、 一個(gè)指針類型的對象占用內(nèi)存的 _4_個(gè)字節(jié)的存儲空間。12、 一個(gè)指針指向一個(gè)數(shù)據(jù)對象,它保存著該數(shù)據(jù)對象的 _地址_ ,若數(shù)據(jù)對象為 Da
21、taType 類型,則相應(yīng)的指針類型為 _Datatype* _ 。13、 若要把一個(gè)整型指針 p 轉(zhuǎn)換為字符指針,則采用的強(qiáng)制轉(zhuǎn)換表達(dá)式為_(char*)p_ _ 。14、 假定一個(gè)數(shù)據(jù)對象為int* 類型,則指向該對象的指針類型為 _int。15、 假定 p 是一個(gè)指向整數(shù)對象的指針,則用_*P_ 表示該整數(shù)對象,用 _P_表示指針變量 p 的地址。16、 假定 p 是一個(gè)指針,則*p+運(yùn)算首先訪問_*p_ ,然后使 p_的值增1。17、假定 p 是一個(gè)指針,則 (*p)+ 運(yùn)算首先訪問 _*p_,然后使_*p_的值增 1。18、 假定 p 所指對象的值為 25, p+1 所指對象的值為
22、42,則*p+的值為_25_ 。19、 假定 p 所指對象的值為 25,p+1 所指對象的值為 42,則*+p 的值為_42_。20、假定 p 所指對象的值為 25, p+1 所指對象的值為 42,則執(zhí)行 (*p)+ 運(yùn) 算8 / 54后, p 所指對象的值為 _26_。21、假定 p 所指對象的值為 25, p+1 所指對象的值為 42,則執(zhí)行 *(p+) 或 *p+運(yùn)算后,p 所指對象的值為_42_。22、 假定 a 是一個(gè)一 維指針 數(shù)組, 則 a+i 所指對象的 地址比 a 大 _4*i_字節(jié)。23、 假定 a 是一個(gè)一維數(shù)組,則 ai 的指針訪問方式為_*(a+i )24、 假定 a
23、 是一個(gè)一維數(shù)組,則 ai 對應(yīng)的存儲地址(以字節(jié)為單位)為_a+i*sizeof(ai)_ _ 。25、 一個(gè)數(shù)組的數(shù)組名實(shí)際上是指向該數(shù)組 _首_ 元素的指針,并且在任何時(shí)候都不允許 _ _修改 _ 它。26、假定指向一維數(shù)組 b10中元素 b4的指針為 p,則 p+3 所指向的元素 為_b7_ , p-2 所指向的元素為 _b2 _ 。27、 若要定義 整型 指針 p 并 初始 指向 x, 則 所 使用 的 定 義語句為_int*p=&x_ _ 。28、 若 p 指向 x,則_ *p_與 x 的表示是等價(jià)的。29、 在一個(gè)二維數(shù)組 int amn 中,包含的一維元素 ai 的類型
24、為 _intn _ ,訪問 ai 時(shí)返回值的類型為 _ int* _。30 、 假 定 一 個(gè) 二 維 數(shù) 組 為 c58, 則 c3 的 值 為 二 維 元 素c30 _ 的地址, c3+2 的值為二維元素 _c32_ _ 的地址。31、 假定 p 為指向二維數(shù)組 int d46的指針,貝 U p 的類型為nt (* ) 6 。32、 假定 a 是一個(gè)二維數(shù)組,則 aij 的指針訪問方式為 _*(*(a+i )+j ) _。33、 執(zhí)行 int p=new int 操 作得 到的 一 個(gè) 動(dòng)態(tài)分配 的 整 型 對 象為_*p_ 。 34 、執(zhí)行 int *p=new int10 操作,使 p
25、 指向動(dòng)態(tài)分配的數(shù)組中下標(biāo)為 0 的元素,該元素可表示為 _*p_ 或_p0_ 。35、執(zhí)行 char *p=new char( a)操作后,p 所指向的數(shù)據(jù)對象的值為 _a。36 、 執(zhí) 行 new charmn 操 作 時(shí) 的 返 回 值 的 類 型 為 _char(*)n_ 。37、 執(zhí)行 _delete_p_ _ 操作將釋放由 p 所指向的動(dòng)態(tài)分配的數(shù)據(jù)空間。38、 執(zhí)行 _deletep _ 操作將釋放由 p 所指向的動(dòng)態(tài)分配的數(shù)組空 間。39、 NULL 是 一 個(gè) 符 號 常量 , 通 常作 為 空指 針 值 , 它 的 具 體 值為_0_。40、 變量 v 定義為“ doubl
26、e v=23.4。”,要使指針 pv 指向v,則定義 pv 的語句為 _double *pv=&v_ 。41、 已知語句“ coutp。”的輸出是“ Hello! ”,則語句“ cout*p?!陛敵龅氖?_H_。42 、 . 已 知 語 句 “ coutname 等 價(jià) 的 表 達(dá) 式 是(*p).name _ 。46、 與結(jié)構(gòu)成員訪問表達(dá)式(*fp).scorescore_ 。47 、 已 知 有 定 義 “ int x, a=5,7,9, *pa=a 。 ” , 在 執(zhí) 行“x=+*pa?!闭Z句后,x 的值是_ 6_。48 、 已 知 有 定 義 “ int x, a=6,10,1
27、2, *pa=a 。 ” , 在 執(zhí) 行 “x=*+pa。 ”語句后,*pa 的值是 1049、已知有 定義“ int x, a=15,17,19, *pa=a。 ” , 在執(zhí)行“x=*pa+。 ”后, *pa 的值是_1 7_ 。50、若采用 p-abc(y) 表達(dá)式調(diào)用一個(gè)成員函數(shù),在成員函數(shù)中使用的_this _就代表了類外的 p 指針。51、在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,包含有兩個(gè)數(shù)據(jù)成員,一個(gè)指明隊(duì)首元素位置,另一個(gè)指明 _隊(duì)列長度 _。52、在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,包含有兩個(gè)數(shù)據(jù)成員,一個(gè)指明隊(duì)列長度,另一個(gè)指明 _隊(duì)首_ 元素的位置。53、 在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,假定數(shù)組
28、長度為MS 隊(duì)首元素位置為first , 隊(duì) 列 長 度 為 length , 則 插 入 一 個(gè) 新 元 素 的 位 置 為 _(first+length)MS_ 。first ,隊(duì)列長度為 length ,則刪除一個(gè)元素后隊(duì)首的位置為 _(first+1 )MS055、 定義類動(dòng)態(tài)對象數(shù)組時(shí),其元素只能靠自動(dòng)調(diào)用該類的_無參構(gòu)造函數(shù) _來進(jìn)行初始化。56、為了釋放類對象中指針成員所指向的動(dòng)態(tài)存儲空間,則需要為該類定義 _ 析構(gòu)函數(shù) _ 。57、假定 AB 為一個(gè)類,則執(zhí)行“ AB a10 ?!闭Z句時(shí),系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為 _10_ 。58、假定一個(gè)類對象數(shù)組為 AN ,當(dāng)離開它
29、的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該類析構(gòu)函數(shù)的次數(shù)為 _N_ 。60、假定指針 p 指向一個(gè)動(dòng)態(tài)分配的類對象,則當(dāng)執(zhí)行“ delete p。”語句時(shí),在釋放 p 所指向的動(dòng)態(tài)存儲空間之前將自動(dòng)調(diào)用該類的_析構(gòu)函數(shù)_。61、 假定 AB 為一個(gè)類,該類中含有一個(gè)指向動(dòng)態(tài)數(shù)組空間的指針成員pa,則在該類的析構(gòu)函數(shù)中應(yīng)該包含有一條 _deletepa 。 _語句。三、程序填空題:等價(jià)的 表達(dá) 式 是_fp-54、在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,假定數(shù)組長度為MS 隊(duì)首元10 / 541、采用指針訪問方式從鍵盤給數(shù)組 aN 輸入數(shù)據(jù),然后對元素值重新按逆序存放并輸出。#i nclude const int N=8
30、。void mai n()int aN,*p,*q。for(p=a。p*p。p=a。q=a+N-1owhile(pq) int r=*p。*p=*q。*q=r。p+。 q+。for(p=a。pa+M p+)cout *p (2) p+ (或 +p)q-( 或-q)2、 假定有定義為“ struct NODEint data 。NODE* next?!保旅嫠惴ǜ?據(jù) table數(shù)組中的 n 個(gè)元素建立一個(gè)表頭指針為 L 的鏈表,鏈表中結(jié)點(diǎn)值的順 序與數(shù)組元素值的順序正好相反。void f6(NODE*& L, int table, int n)L=NULLif(ndata=(2) 。p
31、-next=L。(3)。i+。 2、(1) in (2) tablei (3) L=p 3、已知一維數(shù)組類 ARRAY 勺定義如下,構(gòu)造函數(shù)的作用是把參數(shù) n 的值賦給 s,給 v 動(dòng)態(tài)分配長度為 n 的數(shù)組空間,接著利用數(shù)組參數(shù) a初始化 v 所指向的 數(shù)組。class ARRAYint *v 。/指向存放數(shù)組數(shù)據(jù)的空間int s。/ 數(shù)組大小11 / 54public:ARRAY(int a, int n) 。 ARRAY()delete v。 int size() return s。 int& operator(int n) 。_(1)_ ARRAY(int a, int n)i
32、f(nv=0) v=NULL。s=0。return。s=n。v=_ (2)_ 。for(int i=0。 in 。 i+) _ _(3)_3、 (1) ARRAY:(2) new intn (3) vi=ai4、下面是一維數(shù)組類 ARRAY 勺定義,ARRAY 與普通一維數(shù)組區(qū)別是:(a)用() 而不是 進(jìn)行下標(biāo)訪問, (2) 下標(biāo)從 1 而不是從 0 開始, (c) 要對下標(biāo)是否越界 進(jìn)行檢查。class int *v 。/ 指向存放數(shù)組數(shù)據(jù)勺空間int s 。/ 數(shù)組大小public:ARRAY(int a, int n) 。 ARRAY()delete v。 int size() ret
33、urn s。 int& operator()(int n)。 。 _(1)_ operator()(int n) / () 勺運(yùn)算符函數(shù)定義if(_(2)_) cerr下標(biāo)越界! 。 exit(1) 。 return _(3)_。4、(1) int& ARRAY: (2) ns5、已知一個(gè)類勺定義如下:#include class AA int n 。public:void SetA(int aa, int nn)/v n-1(或 *(v+n-1)。/ 用數(shù)組 aa 初始化數(shù)據(jù)成員 a,用nn 初始化數(shù)據(jù)成員 n_(3)_。12 / 54int MaxA() 。
34、 / 從數(shù)組 a 中前 n 個(gè)元素中查找最大值 void SortA() 。 / 采用選擇排序的方法對數(shù)組 a 中前 n 個(gè)元素 / 進(jìn)行從小到大排序void InsertA()。 / 采用插入排序的方法對數(shù)組 a 中前 n 個(gè)元素進(jìn)行從小到大排序。該類中 MaxA()函數(shù)的實(shí)現(xiàn)如下,請?jiān)跇?biāo)號位置補(bǔ)充適當(dāng)?shù)膬?nèi)容int _ _(1)_int x=a0。for(int i=1 。 ix) _ _(2)_。_(3) _ 。5、(1) AA:MaxA()(2) x=ai (3) return x 6、已知一個(gè)類的定義如下:#include class AA int n 。void AA
35、:SortA()int i,j 。for(i=0 。 _ _(1)_ 。 i+) int x=ai,k=i 。 for(j=i+1 。 jn 。 j+) if(ajx) _(2)_ ak=ai。void PrintA()/ 依次輸出數(shù)組 a 中的前 n 個(gè)元素public:void SetA(int aa, int nn)/int MaxA()void SortA() /void InsertA() 到大排序 voidPrintA() 。/。 / 用數(shù)組 aa 初始化數(shù)據(jù)成員 a,用 nn 初始化數(shù)據(jù)成員 n/ 從數(shù)組 a 中前 n 個(gè)元素中查找最大值/ 采用選擇排序的方法對數(shù)組 a 中前 n
36、 個(gè)元素 進(jìn)行從小到大排序。/ 采用插入排序的方法對數(shù)組 a 中前 n 個(gè)元素進(jìn)行從小依次輸出數(shù)組 a 中的前 n 個(gè)元素13 / 546、(1) in-1 ( 或 i=n-2) (b) x=aj。 k=j 。 (c) ai=x7、已知一個(gè)類的定義如下:#includeclass AA int a10 。int n 。void _(1)_int i,j 。for(i=1 。 i=0 。 j-) if(xaj) _(2)_。else _(3)_ aj+1=x 。7、(1) AA:InsertA() (2) aj+1=aj (3) break 8、已知一個(gè)類的定義如下:#include class
37、 AA int n 。public:void SetA(int aa, int nn)。 / 用數(shù)組 aa 初始化數(shù)據(jù)成員 a,/用 nn 初始化數(shù)據(jù)成員 nint MaxA() 。 / 從數(shù)組 a 中前 n 個(gè)元素中查找最大值void SortA() 。 / 采用選擇排序的方法對數(shù)組 a 中前 n 個(gè)元素 /進(jìn)行從小到大排序public: void SetA(int aa, int nn)/ 從數(shù)組 a 中前 n 個(gè)元素中查找最大值/ 采用選擇排序的方法對數(shù)組 a 中前 n 個(gè)元素 進(jìn)行從小到大排序/ 采用插入排序的方法對數(shù)組 a 中前 n 個(gè)元素進(jìn)行從小/ 用數(shù)組 aa 初
38、始化數(shù)據(jù)成員 a, 用nn 初始化數(shù)據(jù)成員 nint MaxA() 。 /void SortA()/void InsertA() 到大排序 voidPrintA() 。/依次輸出數(shù)組 a 中的前 n 個(gè)元素void InsertA()。 / 采用插入排序的方法對數(shù)組 a 中前 n 個(gè)元素進(jìn)行從小到大排序void PrintA() 。 / 依次輸出數(shù)組 a 中的前 n 個(gè)元素/ 最后輸出一個(gè)換行14 / 54。使用該類的主函數(shù)如下: void main()int a10=23,78,46,55,62,76,90,25,38,42 AA x 。_ _(1)_ 。int m=_(2)_ 。_(3)_
39、 。 coutmendl。該程序運(yùn)行結(jié)果為 :23 78 46 55 62 7678 8、(1) x.SetA(a,6) (2) x.MaxA() (3) x.PrintA()9、已知一個(gè)類的定義如下: #includeclass AA int n 。使用該類的主函數(shù)如下: void main()int a10=23,78,46,55,62,76,90,25,38,42 _ _(1)_ 。x.SetA(a,8) 。int _(2)_ 。_(3)_ 。public:void SetA(int aa, int nn)/int MaxA() voidSortA() / voidPri
40、ntA() /。 / 用數(shù)組 aa 初始化數(shù)據(jù)成員 a, 用nn 初始化數(shù)據(jù)成員 n 中前 n 個(gè)元素中查找最大值/ 從數(shù)組/ 采用選擇排序的方法對數(shù)組 a 中前 n 個(gè)元素 進(jìn)行從小到大排序依次輸出數(shù)組 a 中的前 n 個(gè)元素, 最后輸出一個(gè)換行15 / 54x.PrintA() 。coutmendl 。該程序運(yùn)行結(jié)果為 :23 25 46 55 62 76 78 90909、(1) AA x(2) m=x.MaxA() (3) x.SortA()10、 class A int a 。public:A() a=0。 _(1)_ /定義構(gòu)造函數(shù),用參數(shù) aa 初始化數(shù)據(jù)成員 a 。main()
41、 _(2)_。 / 定義類 A 的指針對象 p_(3)_。 / 用 p 指向動(dòng)態(tài)對象并初始化為整數(shù) 510、答案: (1) A(int aa):a(aa)(2) A *p11、 class A char *a 。public:_(1)_ /定義無參構(gòu)造函數(shù),使 a 的值為空A(char *aa) a=_(2)_。strcpy(a,aa) 。 / 用 aa 所指字符串初始化 a 所指向的動(dòng)態(tài)存儲空間_ _(3)_ /定義析構(gòu)函數(shù),刪除 a 所指向的動(dòng)態(tài)存儲空間 。(3) p=new A(5)11、答案:A() a=0?;?A():a(O) 注:數(shù)據(jù) 0 可用 NULL弋替(2) new char
42、strlen(aa)+1(3) A() delete a。 12、class A int a,b 。public:A(int aa=0, int bb=0) _(1)_ /分別用 aa 和 bb 對應(yīng)初始化 a和 b 。16 / 54main() _(2)_ 。 / 定義類 A 的對象 x 并用 5 初始化,同時(shí)定義 y 并用 x 初始化_(3)_ 。 / 定義 p 指針,使之指向?qū)ο?x12、答案: (1) :a(aa),b(bb)(2) A x(5),y(x) 注: x(5) 與 x=5 等效, y(x) 與 y=x 等效 (3) A *p=&x13、 class A int a,
43、b 。public:_(1)_ /定義構(gòu)造函數(shù),使參數(shù) aa 和 bb 的默認(rèn)值為 0 ,/在函數(shù)體中用 aa 初始化 a,用 bb 初始化 b 。 main() A *p1, *p2 。_(2)_ 。 / 調(diào)用無參構(gòu)造函數(shù)生成由 p1 指向的動(dòng)態(tài)對象_(3)_ 。 / 調(diào)用帶參構(gòu)造函數(shù)生成由 p2 指向的動(dòng)態(tài)對象,/使 a 和 b 成員分別被初始化為 4 和 513、 答案: (1) A(int aa=0, int bb=0)a=aa 。 b=bb 。 (2) p1=new A(3) p2= new A(4,5)_(2)_GetTotal_Weight() / _(3)_ 。14、 clas
44、s Goodsprivate:char gd_name20 intweight 。 static inttotalweight public:Goods (char*str,intw) strcpy(gd_name,str) weight=w 。totalweight+=weight Goods ()totalweightchar* GetN()_(1)_int GetW()return weight一種類定義如下 :/商品名稱商品重量 同類商品總重量構(gòu)造函數(shù)-= weight 。 / 。 返回商品名稱定義靜態(tài)成員函數(shù)返回總重量17 / 5414、 (1) return gd_name (2)
45、 static int (3) return totalweight四、閱讀程序題:1、 #include#includevoid main() chara510=student,worker,soldier,cadre,peasantchar s110, s210 。 strcpy(s1,a0) 。strcpy(s2,a0) 。 for(int i=1。 i0) strcpy(s1if(strcmp(ai, s2)0) strcpy(s2couts1 s2endl 。2、 #include#includeclass CD char* a 。int b 。public:void Init(ch
46、ar* aa, int bb)a=new charstrlen(aa)+1 。 strcpy(a,aa) 。b=bb 。char* Geta() return a。 int Getb() return b。 void Output() couta bendl。 dx 。void main()CD dy。dx.Init(abcdef,30) 。dy.Init(shenyafen,3*dx.Getb()+5) 。 dx.Output() 。dy.Output() 。,ai) 。,ai) 。18 / 54abcdef 30 shenyafen 953、#include#includeclass CD
47、 char* a 。int b 。public:void Init(char* aa, int bb)a=new charstrlen(aa)+1 。 strcpy(a,aa) 。b=bb 。char* Geta() return a。 int Getb() return b。 void Output() couta bendl 。 。void main()CD dx,dy 。char a20 。dx.Init(abcdef,30) 。 strcpy(a,dx.Geta() 。strcat(a,xyz) 。dy.Init(a,dx.Getb()+20) 。dx.Output() 。dy.Out
48、put() 。abcdef 30 abcdefxyz 504、#include#includeclass A char *a 。public:A(char *s) a=new charstrlen(s)+1。19 / 54strcpy(a,s) coutaendlA() delete a 。 coutDestructor!endl 。 void main() A x(xuxiaokai) 。A *y=new A(weirong) 。 delete y 。xuxiaokai weirong Destructor! Destructor!5、#include class A int a 。publ
49、ic:A(int aa=0): a(aa) couta 。 A() coutXxk。 。void main() A *p 。A x3=1,2,3,y=4 。 coutendl 。 p=new A3 。 coutendl 。delete p 。 coutdata=x 。3p-n ext=NULL。if(list=NULL) return p。NODE *p 仁 list。while(p1- n ext!=NULL) p1= p1-next 到表尾p1=p08加的結(jié)點(diǎn)return list。錯(cuò)誤行的行號為_2和_ 8。分別改正為 NODE *p=new NODE2、假定要求下面程序輸出結(jié)果為“ d
50、=800,f=60 ”,在第 4-23 行中存在著三條 語句錯(cuò)誤,請指出錯(cuò)誤語句的行號并改正。#i ncludeclass A 1行int n 。2行public:3行A(i nt aa, int nn): n(nn) 4行for(int i=0。in。i+) aai=ai。5行6行int Get(int i) return ai。7行int SumA(i nt n)。8行。9行int A:SumA(i nt n) 10行行行行行行行456。7行,鏈表非空先找行,讓原表尾指針指向新添和_strcp21 / 54int s=0 。11行for(int j=0。jvn。j+) s+
51、=aj。12行return s 。13行14行void main() /15行int a=2,5,8,10,15,20。/16行A x(a,6) 。/17行int d=1 。/18行for(int i=0 。 i4 。 i+) d*=x.ai。/19行int f=SumA(6) 。/20行coutd=d , 。/21行coutf=fms) coutError!endl 。exit(1) 。 MS=m。n=nn。a=new intMS 。for(int i=0。 iMS。 i+) ai=aai 。int Count(int x) 。 / 從數(shù)組 a 的前 n 個(gè)元素中統(tǒng)計(jì)出其/ 值等于 x 的個(gè)
52、數(shù)并返回。int AA:count( int x)int sum=0 。for(int i=0。 iMS。 i+)If(ai=x)Sum+。 return sum 。六、程序設(shè)計(jì)題:1、int AA:Count(int x)22 / 54int i,c=0 。for(i=0 。 ims) coutError!endl 。 exit(1) 。 MS=m。n=nn。 a=new intMS 。for(int i=0。 iMS。 i+) ai=aai 。int Search(int x) 。 / 從數(shù)組 a 的前 n 個(gè)元素中順序查找值為 素,/ 若查找成功則返回元素的下標(biāo),否則返回 -1 。int
53、 AA:Search ( int x)for(int i=0。 i=MS) return -1 ;2、int AA:Search(int x)int i 。for(i=0 。 ims) coutError!endl 。exit(1) 。 MS=m。n=nn。 a=new intMS 。for(int i=0。 iMS。 i+) ai=aai 。int MaxMin(int& x, int& y) 。/從數(shù)組 a 的前 n 個(gè)元素中求出 / 最大值和最小值,并分別由引用參數(shù) x 和 y 帶回,/ 同時(shí)若 n 大于 0 則返回 1,否則返回 0。void MaxMin(int &a
54、mp;x,int &y)int x=a0,y=a0。for(int i=1。 ix) x=ai 。else。if(ai0)return 1 。return 0 。3、int AA:Compare(AA b)if(n!=b.n) return 0。for(int i=0。 ims) coutError!endl 。 exit(1) 。 MS=m。n=nn。 a=new intMS 。for(int i=0。 iMS。 i+) ai=aai 。int Compare(AA b)。/比較*this 與 b 的大小,若兩者中/ 的 n 值相同,并且數(shù)組中前 n 個(gè)元素值對應(yīng) / 相同,則認(rèn)為兩
55、者相等返回 1,否則返回 0。int AA:Compare(AA b)int count=0。for(int i=0。 iai= =b.ai) count+ 。if(this-n= =b.n)&(count=n) return 1 。elsereturn 0。4、int AA:CompareBig(AA b)int k 。if(nb.n) k=b.n 。 else k=n 。for(int i=0。 ib.ai) return 1。else if(aib.ai) return -1。if(k=n & k=b.n) return 0。else if(kms) coutError!
56、endl 。 exit(1) 。 MS=m。n=nn。5、根據(jù)下面類中 CompareBig 函數(shù)成員的原型和注釋寫出它的類外定義。class AA int* a 。int n 。int MS 。25 / 54a=new intMS 。for(int i=0。 iMS。 i+) ai=aai 。int CompareBig(AA b) 。/比較*this 與 b 的大小,從前向后按兩數(shù)組/ 中的對應(yīng)元素比較,若 *this 中元素值大則返回 1,若 b 中 / 元素值大則返回 -1,若相等則繼續(xù)比較下一個(gè)元素,直到/ 一個(gè)數(shù)組中無元素比較,此時(shí)若兩者的 n 值相同則返回 0, / 否則若 *t
57、his中的 n 值大則返回 1,若 b 中的 n 值大則返回 -1 。int AA:CompareBig(AA b)int i 。for(i=0 。 iaib.ai)return 1 。else if(this-aib.ai) return -1。else continue 。if(i=MS) return 0 。5、AA* AA:Reverse()int i,x 。 for(i=0 。 ims) coutError!endl 。exit(1) 。 MS=m。n=nn。 a=new intMS 。for(int i=0。 iMS。 i+) ai=aai 。AA* Reverse() 。 / 對
58、于調(diào)用該函數(shù)的對象,將其 a 數(shù)組中前 n 個(gè) / 元素值按相反的次序排列,返回指向該對象的指針。6、 根據(jù)下面類中 Reverse 函數(shù)成員的原型和注釋寫出它的類外定義。class AA int* a 。int n 。int MS 。26 / 54。int AA:* Reverse() for(int i=0。 in=n。 px-MS=MS。 px-a=new intMS 。for(int i=0 。 ian-1-i=ai 。return px 。7、根據(jù)下面類中 Reverse1 函數(shù)成員的原型和注釋寫出它的類外定義 class AA int* a 。int n 。int MS 。27 /
59、 54public:void InitAA(int aa, int nn, int ms) if(nnms) coutError!endl 。 exit(1) 。 MS=m。n=nn。a=new intMS 。for(int i=0。 iMS。 i+) ai=aai 。AA* Reverse1() 。 / 通過動(dòng)態(tài)存儲分配得到一個(gè)對象,并動(dòng)態(tài)分配 aMS 數(shù)組空間,要求該對象中的 n 和 MS 的值與*this 中的/ 對應(yīng)成員的值相同,數(shù)組元素的值是按照 *this 中數(shù)組元 / 素的相反次序排列得到的,要求該函數(shù)返回動(dòng)態(tài)對象的地址。int AA:* Reverse()AA c。c.n=*t
60、his.n 。c.MS=*this.MS 。*a=new int MS 。for(int i=0。iMS/2。i+)c.ai=*this.MS-1-i。return &c 。7、Array:Array(int aa, int nn) n=nn。a=new intn 。for(int i=0。 in 。 i+) ai=aai 。8、根據(jù)下面類中構(gòu)造函數(shù)的原型和注釋寫出它的類外定義class Array int *a 。 / 指向動(dòng)態(tài)分配的整型數(shù)組空間int n 。 / 記錄數(shù)組長度public:Array(int aa, int nn)/。 / 構(gòu)造函數(shù),利用 aa 數(shù)組長度 nn 初始化 n, 利用aa 數(shù)組初始化 a 所指向的數(shù)組空間Array(Array& aa) 。 /Array& Give(Array& aa)拷貝構(gòu)造函數(shù)28 / 54/ 實(shí)現(xiàn) aa 賦值給 *this的功能并返回 *this。/實(shí)現(xiàn)*this 和 aa 中的數(shù)組合并的功能,把合并結(jié)果存入臨時(shí)對象并返回 / 返回?cái)?shù)組長度Array Uion
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化資源跨部門協(xié)作-深度研究
- 融資租賃擔(dān)保在2025年度合同中的監(jiān)管政策和合規(guī)要求2篇
- 2025年廣州華商職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 存儲虛擬化與云計(jì)算-深度研究
- 家庭經(jīng)濟(jì)背景與學(xué)業(yè)成就關(guān)聯(lián)-深度研究
- 2025年柴油零售連鎖經(jīng)營授權(quán)合同4篇
- 2025年廣東科貿(mào)職業(yè)學(xué)院高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 城市公共資源云管理創(chuàng)新-深度研究
- 2025年廣東司法警官職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年廣東創(chuàng)新科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 《大學(xué)生職業(yè)發(fā)展與就業(yè)指導(dǎo)》課程標(biāo)準(zhǔn)
- 第23課《出師表》課件(共56張)
- GB/T 3953-2024電工圓銅線
- 發(fā)電機(jī)停電故障應(yīng)急預(yù)案
- 接電的施工方案
- 常用藥物作用及副作用課件
- 幼兒阿拉伯?dāng)?shù)字描紅(0-100)打印版
- 社會組織等級評估報(bào)告模板
- GB/T 12173-2008礦用一般型電氣設(shè)備
- 新媒體研究方法教學(xué)ppt課件(完整版)
- 2020新版?zhèn)€人征信報(bào)告模板
評論
0/150
提交評論