版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、提示:1、本練習(xí)題、試題集全部來自網(wǎng)上共享資源,包括C+面向過程和面向?qū)ο蟮南嚓P(guān)內(nèi)容,今下載整理僅為便于復(fù)習(xí)、練習(xí),請有選擇地閱讀;2、請同學(xué)們做練習(xí)題時(shí)先獨(dú)立思考,再參考答案;附后有幾套模擬試題,全部來自網(wǎng)上其他院校的期末試卷,供同學(xué)們模擬自測。3、試題量大,難免會(huì)有錯(cuò)誤,請慎重選用、思考。1、數(shù)據(jù)共享與保護(hù)一、選擇題:1、在下面存儲(chǔ)類中, ( C ) 對(duì)象的可見性與生存期不一致。 A. 外部類 B. 自動(dòng)類 C. 內(nèi)部靜態(tài)類 D. 寄存器類2、在下面存儲(chǔ)類中,( A )的對(duì)象不是局部變量。 A. 外部靜態(tài)類 B. 自動(dòng)類 C. 函數(shù)形參 D. 寄存器類3、關(guān)于局部變量,下面說法正確的是(
2、C )。 A. 定義該變量的程序文件中的函數(shù)都可以訪問 B. 定義該變量的函數(shù)中的定義處以下的任何語句都可以訪問 C. 定義該變量的復(fù)合語句中的定義處以下的任何語句都可以訪問 D. 定義該變量的函數(shù)中的定義處以上的任何語句都可以訪問4、一個(gè)類的靜態(tài)數(shù)據(jù)成員所表示屬性 ( C )。 A. 是類的或?qū)ο蟮膶傩?B. 只是對(duì)象的屬性 C. 只是類的屬性 D. 類和友元的屬性 5、類的靜態(tài)成員的訪問控制( D )。 A. 只允許被定義為private B. 只允許被定義為private或protected C. 只允許被定義為public D. 可允許被定義為private、protected或pub
3、lic6、靜態(tài)成員函數(shù)對(duì)類的數(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. 只能是類的靜態(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.
4、只能是保護(hù)成員 C. 只能是除私有成員之外的任何成員 D. 具有任何權(quán)限的成員10、引入友元的主要目的是為了( C )。 A. 增強(qiáng)數(shù)據(jù)安全性 B. 提高程序的可靠性 C. 提高程序的效率和靈活性 D. 保證類的封裝性11、 一個(gè)類的成員函數(shù)也可以成為另一個(gè)類的友元函數(shù),這時(shí)的友元說明( A )。 A. 需加上類域的限定 B. 不需加上類域的限定 C. 類域的限定可加可不加 D. 不需要任何限定二、判斷題1、類的靜態(tài)數(shù)據(jù)成員需要在定義每個(gè)類的對(duì)象時(shí)進(jìn)行初始化。F2、當(dāng)將一個(gè)類S定義為另一個(gè)類A的友元類時(shí),類S的所有成員函數(shù)都可以直接訪問類A的所有成員。T3、靜態(tài)數(shù)據(jù)成員必須在類外定義和初始化。
5、T4、靜態(tài)成員函數(shù)可以引用屬于該類的任何函數(shù)成員F。5、友元函數(shù)是在類聲明中由關(guān)鍵字friend修飾說明的類的成員函數(shù)。F6、友元函數(shù)訪問對(duì)象中的成員可以不通過對(duì)象名F三、填空題:1、若“double x=100;”是文件F1.CPP中的一個(gè)全局變量定義語句,若文件F2.CPP中的某個(gè)函數(shù)需要訪問此x , 則應(yīng)在文件F2.CPP中添加對(duì)x的聲明語句為Extern double x;2、如果一個(gè)函數(shù)定義中使用了static修飾,則該函數(shù)不允許被其它文件中的函數(shù)調(diào)用。3、定義外部變量時(shí),不用存儲(chǔ)類說明符Extern,而聲明外部變量時(shí)用它。4、調(diào)用系統(tǒng)函數(shù)時(shí),要先使用#
6、include命令包含該系統(tǒng)函數(shù)的原型語句所在的頭文件。5、C+程序運(yùn)行時(shí)的內(nèi)存空間可以分成全局?jǐn)?shù)據(jù)區(qū),堆區(qū),棧區(qū)和代碼區(qū)。6、局部變量具有局部生存期,存放在內(nèi)存的棧區(qū)中。7、對(duì)類中對(duì)象成員的初始化是通過在構(gòu)造函數(shù)中給出的初始化表來實(shí)現(xiàn)的。8、對(duì)類中常量成員的初始化是通過在構(gòu)造函數(shù)中給出的初始化表來實(shí)現(xiàn)的。9、對(duì)類中引用成員的初始化只能通過在構(gòu)造函數(shù)中給出的初始化表來實(shí)現(xiàn)。10、對(duì)類中一般數(shù)據(jù)成員的初始化既可以通過在構(gòu)造函數(shù)中給出的初始化表來實(shí)現(xiàn),也可以通過構(gòu)造函數(shù)中的函數(shù)體來實(shí)現(xiàn)。11、假定要把a(bǔ)a定義為AB類中的一個(gè)常量整數(shù)型數(shù)據(jù)成員,則定義語句const int aa。12、假定要把a(bǔ)a
7、定義為AB類中的一個(gè)引用整數(shù)型數(shù)據(jù)成員,則定義語句為int &aa。13、假定AB類中只包含一個(gè)整型數(shù)據(jù)成員a,并且它是一個(gè)常量成員,若利用參數(shù)aa對(duì)其進(jìn)行初始化,則該類的構(gòu)造函數(shù)的定義為AB (int aa)a=aa;。14、假定AB類中只包含一個(gè)整型數(shù)據(jù)成員a,并且它是一個(gè)引用成員,若利用引用參數(shù)aa對(duì)其進(jìn)行初始化,則該類的構(gòu)造函數(shù)的定義為AB(int &aa)a=aa;。15、靜態(tài)成員函數(shù)能夠直接訪問類的靜態(tài)數(shù)據(jù)成員,只能通過對(duì)象名訪問類的非靜態(tài)數(shù)據(jù)成員。16、靜態(tài)數(shù)據(jù)成員必須在所有函數(shù)的定義體外進(jìn)行初始化。17、一個(gè)類的成員函數(shù)也可以成為另一個(gè)類的友元函數(shù),這時(shí)的友元說
8、明必須在函數(shù)名前加上類域的限定。四、修改程序題: 下列程序段中,A_class的成員函數(shù)Variance()可求出兩數(shù)的平方差,請改寫該程序段,把Variance()函數(shù)從A_class類中分離出來,用友元函數(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(y>x)t=x;x=y;y=t; int Variance()return x*x-y*y; /其它函數(shù)從略;void main() A_class A_obj(3,5); cout<<"R
9、esult:"<<A_obj.Variance()<<endl;修改后的源程序:class A_class private: int x,y,t; public: A_class(int i,int j):x(i),y(j) if(y>x)t=x;x=y;y=t; friend int Variance(); /其它函數(shù)從略;int variance ()return x*x-y*y;void main() A_class A_obj(3,5); cout<<"Result:"<<A_obj.Variance(
10、)<<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.”; C. char a15; D. char a10=5;3、在下面的二維數(shù)組定義中,正確的是( C )。 A. int a5; B. int a5; C. int a3=1,3,5,2; D. int a(10);4、假定一個(gè)二維數(shù)
11、組的定義語句為“int a34=3,4,2,8,6;”,則元素a12的值為( C )。 A. 2 B. 4 C. 6 D. 85、假定一個(gè)二維數(shù)組的定義語句為“int a34=3,4,2,8,6;”,則元素a21的值為( A )。 A. 0 B. 4 C. 8 D. 66、若定義了函數(shù) double *function(), 則函數(shù)function的返回值為( B )。 A. 實(shí)數(shù)型 B.實(shí)數(shù)的地址 C.指向函數(shù)的指針 D.函數(shù)的地址7、以下函數(shù)的返回結(jié)果是( A )。 int function(char *x) char *p=x; while(*p+); return(p-x-1); A.
12、 求字符串的長度 B.將字符串x連接到字符串p后面 C. 將字符串x復(fù)制到字符串p中 D.將字符串x反向存放8、設(shè)有如下函數(shù)定義 int f(char *s) char *p=s; while(*p!=0) p+; return(p-s); 在主函數(shù)中用cout<<f(“good”)調(diào)用上述函數(shù), 則輸出結(jié)果為( B )。 A. 3 B. 4 C. 5 D. 69、假定變量m定義為“int m=7;”,則定義變量p的正確語句為( B )。 A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m;10、變量s的
13、定義為“char *s=”Hello world!”;”,要使變量p指向s所指向的同一個(gè)字符串,則應(yīng)選?。?A )。 A. char *p=s; B. char *p=&s; C. char *p;p=*s; D. char *p; p=&s11、關(guān)于void 指針,下列說法正確的是( C )。 A. void 指針就是未指向任何數(shù)據(jù)的指針 B. void 指針就是已定義而未初始化的指針 C. 指向任何類型數(shù)據(jù)的指針可直接賦值給一個(gè)void 指針 D. void 指針值可直接賦給一個(gè)非void 指針12、假定一條定義語句為“int a10, x, *pa=a;”,若要把數(shù)組a中
14、下標(biāo)為3的元素值賦給x,則不正確的語句為( D )。 A. x=pa3; B. x=*(a+3); C. x=a3; D. x=*pa+3;13、假定有定義“int b10; int *pb;”,則不正確的賦值語句為( D )。 A. pb=b; B. pb=&b0; C. *pb=new int; D. pb=b5;14、假定p是具有double類型的指針變量,則表達(dá)式+p使p的值(以字節(jié)為單位)增加( C )。 A. 1 B. 4 C. sizeof(double) D. sizeof(p)15、假定p指向的字符串為”string”,則cout<<p+3的輸出結(jié)果為(
15、C )。 A. string B. ring C. ing D. i16、假定p指向的字符串為”string”,若要輸出這個(gè)字符串的地址值,則使用( D )。 A. cout<<*s; B. cout<<s; C. cout<<&s; D. cout<<(void *)s;17、定義p并使p指向動(dòng)態(tài)空間中的包含30個(gè)整數(shù)的數(shù)組所使用的定義語句為( A )。 A. int *p=new int30; B. int *p=new int(30); C. int *p=new 30; D. *p=new int30;18、假定p是具有int*類
16、型的指針變量,則給p賦值的正確語句為( B )。 A. p=new int; B. p=new int*; C. p=new int*; D. p=new int10;19、要使語句“p=new int1020;”能夠正常執(zhí)行,p應(yīng)被事先定義為( D )。 A. int *p; B. int *p; C. int *p20; D. int(*p)20;20、假定變量a和pa定義為“double a10, *pa=a;”,要將12.35賦值給a中的下標(biāo)為5的元素,不正確的語句是( D )。 A. pa5=12.35; B. a5=12.35; C. *(pa+5)=12.35; D. *(a0+
17、5)=12.35;21、假定變量b和pb定義為“int b10, *pb=b;”,要將24賦值給b1元素中,不正確的語句是( C )。 A. *(pb+1)=24; B. *(b+1)=24; C. *+b=24; D. *+pb=24;22、假定指針變量p定義為“int *p=new int(100);”,要釋放p所指向的動(dòng)態(tài)內(nèi)存,應(yīng)使用語句( A )。 A. delete p; B. delete *p; C. delete &p; D. delete p;23、假定指針變量p定義為“int *p=new int30;”,要釋放p所指向的動(dòng)態(tài)內(nèi)存,應(yīng)使用語句( D )。 A. de
18、lete p; B. delete *p; C. delete &p; D. delete p;24、當(dāng)類中一個(gè)字符指針成員指向具有n個(gè)字節(jié)的存儲(chǔ)空間時(shí),它所能存儲(chǔ)字符串的最大長度為( C )。 A. n B. n+1 C. n-1 D. n-2 25、在一個(gè)用鏈表實(shí)現(xiàn)的隊(duì)列類中,假定每個(gè)結(jié)點(diǎn)包含的值域用elem表示,包含的指針域用next表示,鏈隊(duì)的隊(duì)首指針用elemHead表示,隊(duì)尾指針用elemTail表示,若鏈隊(duì)非空,則進(jìn)行插入時(shí)必須把新結(jié)點(diǎn)的地址賦給( D )。 A. elemHead B. elemTail C. elemHead->next和elemHead D.
19、elemTail->next和elemTail26、在一個(gè)用鏈表實(shí)現(xiàn)的隊(duì)列類中,假定每個(gè)結(jié)點(diǎn)包含的值域用elem表示,包含的指針域用next表示,鏈隊(duì)的隊(duì)首指針用elemHead表示,隊(duì)尾指針用elemTail表示,若鏈隊(duì)為空,則進(jìn)行插入時(shí)必須把新結(jié)點(diǎn)的地址賦給( C )。 A. elemHead B. elemTail C. elemHead和elemTail D. elemHead或elemTail27、當(dāng)類中的一個(gè)整型指針成員指向一塊具有n*sizeof(int)大小的存儲(chǔ)空間時(shí),它最多能夠存儲(chǔ)( A )個(gè)整數(shù)。 A. n B. n+1 C. n-1 D. 128、假定AB為一個(gè)類
20、,則執(zhí)行 “AB *px=new ABn;”語句時(shí)將( A )。 A. 動(dòng)態(tài)分配一個(gè)數(shù)組 B. 動(dòng)態(tài)分配一個(gè)對(duì)象 C. 靜態(tài)分配一個(gè)數(shù)組 D. 靜態(tài)分配一個(gè)對(duì)象29、設(shè)px是指向一個(gè)類對(duì)象的指針變量,則執(zhí)行 “delete px;”語句時(shí),將自動(dòng)調(diào)用該類的( C )。 A. 無參構(gòu)造函數(shù) B. 帶參構(gòu)造函數(shù) C. 析構(gòu)函數(shù) D. 拷貝構(gòu)造函數(shù)30、當(dāng)一個(gè)類對(duì)象離開它的作用域時(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è)類對(duì)象數(shù)組為An,當(dāng)離開它定義的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該類析構(gòu)函數(shù)的次數(shù)為( C )。 A. 0 B
21、. 1 C. n D. n-132、假定AB為一個(gè)類,則執(zhí)行 “AB a10;”語句時(shí)調(diào)用該類無參構(gòu)造函數(shù)的次數(shù)為( D )。 A. 0 B. 1 C. 9 D. 1033、假定AB為一個(gè)類,則執(zhí)行 “AB *px=new ABn;”語句時(shí)調(diào)用該類無參構(gòu)造函數(shù)的次數(shù)為( A )。 A. n B. n-1 C. 1 D. 034、假定AB為一個(gè)類,則執(zhí)行 “AB a, b(3), *p;”語句時(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
22、B. 4 C. 5 D. 936、假定AB為一個(gè)類,則執(zhí)行“AB a, b(2), c3, *p=&a;”語句時(shí)共調(diào)用該類無參構(gòu)造函數(shù)的次數(shù)為( D ) A. 5 B. 6 C. 3 D. 437、假定AB為一個(gè)類,則執(zhí)行“AB *p=new AB(1,2);”語句時(shí)共調(diào)用該類構(gòu)造函數(shù)的次數(shù)為( B )。 A. 0 B. 1 C. 2 D. 338、假定AB為一個(gè)類,px為指向該類的一個(gè)含有n個(gè)對(duì)象的動(dòng)態(tài)數(shù)組的指針,則執(zhí)行“delete px;”語句時(shí)共調(diào)用該類析構(gòu)函數(shù)的次數(shù)為( C )。 A. 0 B. 1 C. n D. n+1二、填空題:1、用于存儲(chǔ)一個(gè)長度為n的字符串的字符數(shù)組
23、的長度至少為_n+1_。2、若a是一個(gè)字符數(shù)組,則從鍵盤上向該數(shù)組輸入一個(gè)字符串的表達(dá)式為_getline(cin,a);_。3、若a是一個(gè)字符數(shù)組,則向屏幕輸出a中所存字符串的表達(dá)式為_cout<<a_。4、一個(gè)二維字符數(shù)組a1020能夠存儲(chǔ)_10_個(gè)字符串,每個(gè)字符串的長度至多為_19_。5、對(duì)一個(gè)二維字符數(shù)組a進(jìn)行初始化的數(shù)據(jù)為”123”,”456”,”789”,則a1元素對(duì)應(yīng)的字符串為_”456”_。6、strlen(”apple”)的值為_5_,strcmp(”a”,”A”)的值為_1_。7、假定對(duì)數(shù)組a進(jìn)行初始化的數(shù)據(jù)為2,7,9,6,5,7,10,則a2和a5分別被初
24、始化為_9_和_7_。8、假定對(duì)二維數(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ù)組中位置序號(hào)的公式為_i*m+j+1_。 10、若有定義“double a35;”,則a 數(shù)組中行下標(biāo)和列下標(biāo)的最大值分別為_2_和_4_。11、一個(gè)指針類型的對(duì)象占用內(nèi)存的_4_個(gè)字節(jié)的存儲(chǔ)空間。12、 一個(gè)指針指向一個(gè)數(shù)據(jù)對(duì)象,它保存著該數(shù)據(jù)對(duì)象的_地址_,若數(shù)據(jù)對(duì)象為DataType類型,則相應(yīng)的指針類型為_Datatype*_。13、&
25、#160;若要把一個(gè)整型指針p轉(zhuǎn)換為字符指針,則采用的強(qiáng)制轉(zhuǎn)換表達(dá)式為_(char*)p_。14、假定一個(gè)數(shù)據(jù)對(duì)象為int*類型,則指向該對(duì)象的指針類型為_int *_。15、假定p是一個(gè)指向整數(shù)對(duì)象的指針,則用_*P_表示該整數(shù)對(duì)象,用_P_表示指針變量p的地址。16、 假定p是一個(gè)指針,則*p+運(yùn)算首先訪問_*p_,然后使p_的值增1。17、假定p是一個(gè)指針,則(*p)+運(yùn)算首先訪問_*p_,然后使_*p_的值增1。18、 假定p所指對(duì)象的值為25,p+1所指對(duì)象的值為42,則*p+的值為_25_。19、假定p所指對(duì)象的值為25,p+1所指對(duì)象的值為42,則*+p的值為
26、_42_。20、假定p所指對(duì)象的值為25,p+1所指對(duì)象的值為42,則執(zhí)行(*p)+運(yùn)算后,p所指對(duì)象的值為_26_。21、假定p所指對(duì)象的值為25,p+1所指對(duì)象的值為42,則執(zhí)行*(p+)或*p+運(yùn)算后,p所指對(duì)象的值為_42_。22、假定a是一個(gè)一維指針數(shù)組,則a+i所指對(duì)象的地址比a大_4*i_字節(jié)。23、 假定a是一個(gè)一維數(shù)組,則ai的指針訪問方式為_*(a+i)_。24、假定a是一個(gè)一維數(shù)組,則ai對(duì)應(yīng)的存儲(chǔ)地址(以字節(jié)為單位)為_a+i*sizeof(ai)_。25、 一個(gè)數(shù)組的數(shù)組名實(shí)際上是指向該數(shù)組_首_元素的指針,并且在任何時(shí)候都不允許_ _修改_它。2
27、6、假定指向一維數(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的類型為_ intn_,訪問ai時(shí)返回值的類型為_ int*_。30、假定一個(gè)二維數(shù)組為c58,則c3的值為二維元素c30_的地址,c3+2的值為二維元素_c32_的地址。31、假定p為指向二維數(shù)組int d46的指針,則p的類型為_int (*)6_。32、假定a
28、是一個(gè)二維數(shù)組,則aij的指針訪問方式為_*(*(a+i)+j)_。33、執(zhí)行int p=new int操作得到的一個(gè)動(dòng)態(tài)分配的整型對(duì)象為_*p_。 34、執(zhí)行int *p=new int10操作,使p指向動(dòng)態(tài)分配的數(shù)組中下標(biāo)為0的元素,該元素可表示為_*p_或_p0_。35、 執(zhí)行char *p=new char(a)操作后,p所指向的數(shù)據(jù)對(duì)象的值為_a_。36、 執(zhí)行new charmn操作時(shí)的返回值的類型為_char(*)n_。37、執(zhí)行_delete_p_操作將釋放由p所指向的動(dòng)態(tài)分配
29、的數(shù)據(jù)空間。38、執(zhí)行_deletep_操作將釋放由p所指向的動(dòng)態(tài)分配的數(shù)組空間。39、 NULL是一個(gè)符號(hào)常量,通常作為空指針值,它的具體值為_0_。40、變量v定義為“double v=23.4;”,要使指針pv指向v,則定義pv的語句為_double *pv=&v_。41、 已知語句“cout<<p;”的輸出是“Hello!”,則語句“cout<<*p;”輸出的是_H_。42、. 已知語句“cout<<s;”的輸出是“apple”,則執(zhí)行語句“cout<<s+2;”的輸出結(jié)果為_ple_。43
30、、 指針變量pv和pc定義為“void *pv =”Hello, word!”; char *pc;”,要將pv值賦給pc,則正確的賦值語句是_ strcpy(pc,pv);pc=char(*)pv_。44、 數(shù)組b定義為“int b20100;”,要使pjk 與bjk 等效,則指針p應(yīng)定義為_int (*p)100=b _。45、 與結(jié)構(gòu)成員訪問表達(dá)式p->name等價(jià)的表達(dá)式是_(*p).name_。46、 與結(jié)構(gòu)成員訪問表達(dá)式(*fp).score等價(jià)的表達(dá)式是_
31、fp->score_。47、已知有定義“int x, a=5,7,9, *pa=a;”,在執(zhí)行“x=+*pa;”語句后,x的值是_6_。48、已知有定義“int x, a=6,10,12, *pa=a;”,在執(zhí)行“x=*+pa;”語句后,*pa的值是_10_。49、已知有定義“int x, a=15,17,19, *pa=a;”,在執(zhí)行“x=*pa+;”后,*pa的值是_17_。50、若采用p->abc(y)表達(dá)式調(diào)用一個(gè)成員函數(shù),在成員函數(shù)中使用的_this_就代表了類外的p指針。
32、;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ù)組長度為MS,隊(duì)首元素位置為first,隊(duì)列長度為length,則插入一個(gè)新元素的位置為_(first+length)MS_。54、在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,假定數(shù)組長度為MS,隊(duì)首元素位置為first,隊(duì)列長度為length,則刪除一個(gè)元素后隊(duì)首的位置為_(first+1)MS _。55、定義類動(dòng)態(tài)對(duì)象數(shù)組時(shí),其元素只能靠自動(dòng)調(diào)用該類的_無參構(gòu)造函數(shù)
33、_來進(jìn)行初始化。56、為了釋放類對(duì)象中指針成員所指向的動(dòng)態(tài)存儲(chǔ)空間,則需要為該類定義_析構(gòu)函數(shù)_。57、假定 AB為一個(gè)類,則執(zhí)行“AB a10;”語句時(shí),系統(tǒng)自動(dòng)調(diào)用該類構(gòu)造函數(shù)的次數(shù)為_10_。58、假定一個(gè)類對(duì)象數(shù)組為AN,當(dāng)離開它的作用域時(shí),系統(tǒng)自動(dòng)調(diào)用該類析構(gòu)函數(shù)的次數(shù)為_N_。60、假定指針p指向一個(gè)動(dòng)態(tài)分配的類對(duì)象,則當(dāng)執(zhí)行“delete p;”語句時(shí),在釋放p所指向的動(dòng)態(tài)存儲(chǔ)空間之前將自動(dòng)調(diào)用該類的_析構(gòu)函數(shù)_。61、假定AB為一個(gè)類,該類中含有一個(gè)指向動(dòng)態(tài)數(shù)組空間的指針成員pa,則在該類的析構(gòu)函數(shù)中應(yīng)該包含有一條_deletepa;_語句。三、程
34、序填空題:1、采用指針訪問方式從鍵盤給數(shù)組aN輸入數(shù)據(jù),然后對(duì)元素值重新按逆序存放并輸出。 #include <iostream.h> const int N=8; void main() int aN,*p,*q; for(p=a; p<a+N; p+) cin>>*p; p=a;q=a+N-1; while(p<q) int r=*p; *p=*q; *q=r; p+; q+; for(p=a;p<a+N; p+) cout<<*p<<' ' cout<<endl; 1、 (1) cin>&
35、gt;*p (2) p+ (或+p) (3) 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=NULL;if(n<=0) return;int i=0; NODE* p;while(_ (1)_) p=new NODE;p->data=_ _(2)_;p->next=L;_(3)_;i+;2、(1) i<n (2) tabl
36、ei (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 ARRAY int *v; /指向存放數(shù)組數(shù)據(jù)的空間int s; /數(shù)組大小 public: ARRAY(int a, int n); ARRAY()delete v; int size() return s; int& operator(int n); ;_(1)_ ARRAY(int a, int n)if(n<=0) v=NULL;s=0;return;s=n;v=_ (2)_;for(int
37、i=0; i<n; i+) _ _(3)_;3、 (1) ARRAY: (2) new intn (3) vi=ai 4、下面是一維數(shù)組類ARRAY的定義,ARRAY與普通一維數(shù)組區(qū)別是:(a)用()而不是進(jìn)行下標(biāo)訪問,(2)下標(biāo)從1而不是從0開始,(c)要對(duì)下標(biāo)是否越界進(jìn)行檢查。class int *v; /指向存放數(shù)組數(shù)據(jù)的空間int s; /數(shù)組大小 public: ARRAY(int a, int n); ARRAY()delete v; int size() return s; int& operator()(int n); _(1)_ operator()(int n
38、) / ()的運(yùn)算符函數(shù)定義 if(_(2)_) cerr<<"下標(biāo)越界!" exit(1); return _(3)_;4、(1) int& ARRAY: (2) n<1 | n>s (3) vn-1 (或*(v+n-1)5、已知一個(gè)類的定義如下:#include<iostream.h>class AA int a10;int n;public:void SetA(int aa, int nn); /用數(shù)組aa初始化數(shù)據(jù)成員a, /用nn初始化數(shù)據(jù)成員nint MaxA(); /從數(shù)組a中前n個(gè)元素中查找最大值void Sort
39、A(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素 /進(jìn)行從小到大排序 void InsertA();/采用插入排序的方法對(duì)數(shù)組a中前n個(gè)元素進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素; 該類中MaxA()函數(shù)的實(shí)現(xiàn)如下,請?jiān)跇?biāo)號(hào)位置補(bǔ)充適當(dāng)?shù)膬?nèi)容。int _ _(1)_ int x=a0;for(int i=1; i<n; i+) if(ai>x) _ _(2)_;_(3) _;5、(1) AA:MaxA() (2) x=ai (3) return x6、已知一個(gè)類的定義如下:#include<iostream.h>class AA
40、int a10;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(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素 /進(jìn)行從小到大排序 void InsertA();/采用插入排序的方法對(duì)數(shù)組a中前n個(gè)元素進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素;void AA:SortA()int i,j;for(i=0; _ _(1)_; i+) int x=ai, k=i;for(j=i+1; j<n
41、; j+)if(aj<x) _ _(2)_ak=ai;_(3)_;6、(1) i<n-1 (或i<=n-2) (b) x=aj; k=j; (c) ai=x7、已知一個(gè)類的定義如下:#include<iostream.h>class AA int a10;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(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素 /進(jìn)行從小到大排序 void InsertA();
42、/采用插入排序的方法對(duì)數(shù)組a中前n個(gè)元素進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素;void _(1)_ int i,j;for(i=1; i<n; i+) int x=ai;for(j=i-1; j>=0; j-)if(x<aj) _(2)_;else _(3)_;aj+1=x;7、(1) AA:InsertA() (2) aj+1=aj (3) break 8、已知一個(gè)類的定義如下:#include<iostream.h>class AA int a10;int n;public:void SetA(int aa, int n
43、n); /用數(shù)組aa初始化數(shù)據(jù)成員a, /用nn初始化數(shù)據(jù)成員nint MaxA(); /從數(shù)組a中前n個(gè)元素中查找最大值void SortA(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素 /進(jìn)行從小到大排序 void InsertA();/采用插入排序的方法對(duì)數(shù)組a中前n個(gè)元素進(jìn)行從小到大排序void PrintA(); /依次輸出數(shù)組a中的前n個(gè)元素 /最后輸出一個(gè)換行; 使用該類的主函數(shù)如下:void main()int a10=23,78,46,55,62,76,90,25,38,42;AA x; _ _(1)_;int m=_(2)_;_(3)_;cout<<m<
44、<endl; 該程序運(yùn)行結(jié)果為:23 78 46 55 62 76788、(1) x.SetA(a,6) (2) x.MaxA() (3) x.PrintA() 9、已知一個(gè)類的定義如下:#include<iostream.h>class AA int a10;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(); /采用選擇排序的方法對(duì)數(shù)組a中前n個(gè)元素 /進(jìn)行從小到大排序void PrintA(); /依次輸
45、出數(shù)組a中的前n個(gè)元素, /最后輸出一個(gè)換行; 使用該類的主函數(shù)如下:void main()int a10=23,78,46,55,62,76,90,25,38,42;_ _(1)_; x.SetA(a,8);int _(2)_;_(3)_;x.PrintA(); cout<<m<<endl; 該程序運(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 ; ma
46、in() _(2)_; /定義類A的指針對(duì)象p _(3)_; /用p指向動(dòng)態(tài)對(duì)象并初始化為整數(shù)5 10、 答案:(1) A(int aa):a(aa) (2) A *p 11、class A char *a; public: _(1)_ /定義無參構(gòu)造函數(shù),使a的值為空 A(char *aa) a=_(2)_; strcpy(a,aa); /用aa所指字符串初始化a所指向的動(dòng)態(tài)存儲(chǔ)空間 _ _(3)_ /定義析構(gòu)函數(shù),刪除a所指向的動(dòng)態(tài)存儲(chǔ)空間 ; (3) p=new A(5)11、 答案:(1) A() a=0; 或A():a(0) 注:數(shù)據(jù)0可用NULL代替 (2) new charstrlen(aa)+1 (3) A() delete a;12、class A int a,b; public: A(int aa=0, int bb=0) _(1)_ /分別用aa和bb對(duì)應(yīng)初始化a和b ;main() _(2)_ ; /定義類A的對(duì)象x并用5初始化,同時(shí)定義y并用x初始化 _(3)_ ; /定義p指針,使之指向?qū)ο髕12、 答案:(1) :a(aa),b(bb) (2) A x(5),y(x) 注:x(5)與x=5等效,y(x) 與y=x等效 (3) A *p=&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021-2026年中國流掛儀行業(yè)市場全景調(diào)研及投資規(guī)劃建議報(bào)告
- 2022-2027年中國網(wǎng)紅餐廳行業(yè)市場深度評(píng)估及投資前景預(yù)測報(bào)告
- 2025年中國燃油濾紙行業(yè)市場前瞻與投資戰(zhàn)略規(guī)劃分析報(bào)告
- 二零二五年高端住宅區(qū)建筑工程清包施工合同6篇
- 2020-2025年中國汽車焊接軸市場供需格局及投資規(guī)劃研究報(bào)告
- 2025年塑鋁箔復(fù)合板行業(yè)深度研究分析報(bào)告
- 2024私人房屋買賣合同協(xié)議
- 二零二五年度證券經(jīng)紀(jì)代理合同范本4篇
- 基于2025年度市場需求的廣告投放代理合同3篇
- 二零二五年度網(wǎng)絡(luò)安全監(jiān)測與托管服務(wù)合同
- 火災(zāi)安全教育觀后感
- 農(nóng)村自建房屋安全協(xié)議書
- 快速康復(fù)在骨科護(hù)理中的應(yīng)用
- 國民經(jīng)濟(jì)行業(yè)分類和代碼表(電子版)
- ICU患者外出檢查的護(hù)理
- 公司收購設(shè)備合同范例
- 廣東省潮州市2023-2024學(xué)年高二上學(xué)期語文期末考試試卷(含答案)
- 2024年光伏發(fā)電項(xiàng)目EPC總包合同
- 子女放棄房產(chǎn)繼承協(xié)議書
- 氧化還原反應(yīng)配平專項(xiàng)訓(xùn)練
- 試卷(完整版)python考試復(fù)習(xí)題庫復(fù)習(xí)知識(shí)點(diǎn)試卷試題
評(píng)論
0/150
提交評(píng)論