![2021年江蘇省鹽城市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第1頁(yè)](http://file4.renrendoc.com/view/d1846671b492339ec4e0416bf68d3c70/d1846671b492339ec4e0416bf68d3c701.gif)
![2021年江蘇省鹽城市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第2頁(yè)](http://file4.renrendoc.com/view/d1846671b492339ec4e0416bf68d3c70/d1846671b492339ec4e0416bf68d3c702.gif)
![2021年江蘇省鹽城市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第3頁(yè)](http://file4.renrendoc.com/view/d1846671b492339ec4e0416bf68d3c70/d1846671b492339ec4e0416bf68d3c703.gif)
![2021年江蘇省鹽城市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第4頁(yè)](http://file4.renrendoc.com/view/d1846671b492339ec4e0416bf68d3c70/d1846671b492339ec4e0416bf68d3c704.gif)
![2021年江蘇省鹽城市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)_第5頁(yè)](http://file4.renrendoc.com/view/d1846671b492339ec4e0416bf68d3c70/d1846671b492339ec4e0416bf68d3c705.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年江蘇省鹽城市全國(guó)計(jì)算機(jī)等級(jí)考試C++語(yǔ)言程序設(shè)計(jì)真題(含答案)學(xué)校: 班級(jí): 姓名: 考號(hào): 一、1.選擇題(10題)對(duì)于長(zhǎng)度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是()o冒泡排序?yàn)閚/2B.冒泡排序?yàn)閚C.快速排序?yàn)閚D.快速排序?yàn)閚(n-l)/2設(shè)有以下語(yǔ)句,對(duì)a數(shù)組元素的引用中(其中0<=i<10)不正確的是inta[10]={0,l,2,3,4,5,6,7,8,9},*p=a;a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))有如下程序:#include<iostream>usingnamespacestd;Classx{protected:inta;public:x()(a=l;});classxl:virtualpublicx{public:xl()(a+=l;cout<<A.lB.123C.242D.244下列選項(xiàng)中不全是C++語(yǔ)言關(guān)鍵字的是const,break,defaultlong,void,usingvirtual,extern,includetry,throw,thisC++語(yǔ)言本身沒有定義I/O操作,使用I/O流的程序需要包括()。A.stdio.hB.istream.hC.ostream.hD.iostrcam.h有以下程序:#include<iostream>usingnamespacestd;classCSample{private:inti;public:CSample();CSample(intval);voidDisplayO;-CSample();};CSample::CSample()(cout<<"Cl";i=0;)CSample::CSample(intval){cout<<"C2”;i=val;}voidCSample::DisplayO{cout<<i<<":}CSample::?CSample(){cout<<"D";)intmain(){CSamplea,b(10);return0;)執(zhí)行后的輸出結(jié)果為()。A.C1C2DDB.DDC1C2C.C2C1DDD.C1DC2D在進(jìn)行單元測(cè)試時(shí),常用的方法是()。A.采用白盒測(cè)試,輔之以黑盒測(cè)試B.采用黑盒測(cè)試,輔之以白盒測(cè)試只使用白盒測(cè)試D.只使用黑盒測(cè)試以下程序中調(diào)用cin函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤的,其錯(cuò)誤原因是#include<iostream.h>voidmain(){int*p,*q,a,b;p=&a;cout<<"inputa:";cin>>p;)*p表示的是指針變量p的地址p表示的是變量a的地址,而不是變量a的值C?*p表示的是指針變量p的值*p只能用來(lái)說(shuō)明p是一個(gè)指針變量有以下程序#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intn)(number=n;}〃拷貝的構(gòu)造函數(shù)MyClass(MyClass&other){number=other.number;}~MyClass()(}private:intnumber;};MyClassfun(MyClassp){MyClasstemp(p);returntemp;|intmain()MyClassobj1(10),obj2(0);MyClassobi3(obj1);obj2=fun(obj3);return0;}程序執(zhí)行時(shí),MyClass類的拷貝構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。A.5B.4C.3D.2關(guān)于構(gòu)造函數(shù)A()的拷貝構(gòu)造函數(shù)正確的是A.A(A*B);B.A(AB);C.A(A&B);D.A(A);二、單選題(13題)以下各選項(xiàng)組中,均是C++語(yǔ)言關(guān)鍵字的組是()。publicoperatorthisshodstringstaticitwhile>=priratecoutprintf—個(gè)隊(duì)列的進(jìn)隊(duì)列順序是1,2,3,4,則出隊(duì)列順序?yàn)?)。A.4,3,2,1B.2,4,3,1C.1,2,3,4D.3,2,1,4已知類Myclass的定義如下classMyClass{public:voidfunction1(MyClass&C)(cout<<c.data;)staticvoidfunction2(MyClass&C){cout<<c.data;}voidfunction3(){cout<<data;|staricvoidfunction4()(cout<<data;}private:intdata;);其中有編譯錯(cuò)誤的函數(shù)是()。A.function1B.function2C.functionsD.function4有如下程序:#include<iostream>usingnamespacestd;classB{public:virtualvoidshow(){cout?"B";});classD:publicB{public:voidshow(){cout?,,D";}};voidfun1(B*ptr){ptr->show();)voidfun2(B&ref){ref.show();)voidfun3(BB)(b.show();)intmain()(Bb,*p=newD;Dd;funl(p);fun2(b);fun3(d);returnO;1程序的輸出結(jié)果是()。A.BBBB.BBDC.DBBD.DBD數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()o控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱作軟件投機(jī)B.軟件危機(jī)C.軟件工程D.軟件產(chǎn)生下列數(shù)據(jù)模型中,具有堅(jiān)實(shí)理論基礎(chǔ)的是()。層次模型B.網(wǎng)狀模型C.關(guān)系模型D.以上3個(gè)都是對(duì)于模板定義關(guān)鍵字class和typename說(shuō)法不正確的是( )。程序中的class并不能都替換為typenameclass和typename都可互相替換程序中的typename都能替換為class程序中的部分class可以替換為typename下列函數(shù)的運(yùn)行結(jié)果是( )。#include<iostream.h>intadd(inta?intb);voidmain(){externintX?y;cout?add(X,y)?endl;)intx(20),y(5);intadd(inta?intb)(ints=a+b:returns;)25B.3OC.20D.15下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是()。靜態(tài)數(shù)據(jù)成員是類的所有對(duì)象共享的數(shù)據(jù)類的每個(gè)對(duì)象都有自己的靜態(tài)數(shù)據(jù)成員類的不同對(duì)象有不同的靜態(tài)數(shù)據(jù)成員值靜態(tài)數(shù)據(jù)成員不能通過(guò)類的對(duì)象調(diào)用線性表L=(al,a2,a3,...ai,...an),下列說(shuō)法正確的是()每個(gè)元素都有一個(gè)直接前件和直接后件線性表中至少要有一個(gè)元素表中諸元素的排列順序必須是由小到大或由大到小除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件下列關(guān)于賦值運(yùn)算符“=”重載的敘述中,正確的是賦值運(yùn)算符只能作為類的成員函數(shù)重載默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制”功能重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對(duì)象作為形參如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符有如下程序:#include<iostream>usingnamespacestd;voidfunction2(intn);voidfunctionl(intn):{if(n<=O)return;function2(n-2);}voidfunction2(intn){if(n<=O)return;functionl(n-l);1intmain()(functionl(5);
returnO;)下列關(guān)于程序運(yùn)行情況的描述中,正確的是()oA.functionl運(yùn)行1次,function?運(yùn)行2運(yùn)行2次function!運(yùn)行2次,functionl運(yùn)行2次,functionl運(yùn)行2次,function?運(yùn)行]次function?運(yùn)行3次function?運(yùn)行2次三、2.填空題(12題)冒泡排序算法在最好的情況下的元素交換次數(shù)為【]o在深度為4的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為【】。數(shù)據(jù)庫(kù)系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中, 是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。表達(dá)式cout<<hex改用ios類的成員函數(shù)表示為【】。為滿足運(yùn)算符+的可交換性,必須將其重載為【】。若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。編譯時(shí)的多態(tài)性可以通過(guò)使用 獲得。下列程序中聲明了兩個(gè)類AA和BB,其中函數(shù)“print”是類AA的成員函數(shù),但是類BB的友元函數(shù)。請(qǐng)?jiān)冖?、②和⑧處各填入正確的內(nèi)容,使程序能正常運(yùn)行。#include<iostream.h>【];classAA{intt;public:AA(intx){t=x;)voidprint(BB&b););classBB{ints;public:BB(inty){s=y;}friendvoid【]print(BB&););void[]{cout<<"AA:"<<t<<”BB:H<<w.s<<endl;}<voidmain()(AAm(6);BBn(8);m.print(n);)輸出結(jié)果為:AA:6;BB:8表達(dá)式c3=c1.operator+(c2)或c3=operator+(cl,c2)還可以表示為已知數(shù)組a中的元素個(gè)數(shù)為n,下列語(yǔ)句的作用是將下標(biāo)為i的元素移動(dòng)到下標(biāo)為i-1的單元,其中l(wèi)<i<no例如,當(dāng)n=4,a中原有數(shù)據(jù)為1、2、3、4時(shí),則移動(dòng)后a中元素為2、3、4、4。請(qǐng)將語(yǔ)句補(bǔ)充完整:for(inti=0;i<n-1;i++)a[i]=a o將x+y*z中的“+”用成員函數(shù)重載,”*”用友元函數(shù)重載應(yīng)寫為在C++中,一個(gè)函數(shù)一般由兩部分組成,分別是函數(shù)頭和【】。四、程序改錯(cuò)題(10題)使用VC++6.。打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正錯(cuò)誤,使程序正常運(yùn)行,并且要求最后一個(gè)catch必須拋出執(zhí)行的任何異常。程序異常,輸出信息為errorOERROR注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream.h)intmain(try(throw("error");catch(chars){cout?s?endl;try(throw((int)0);catch{cout?i?endl;}try(throw(O);throw("error");catchcout?"ERROR"?endl:IreturnO;使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使得程序輸出:9,8,7,6,5注意:錯(cuò)誤的語(yǔ)句在/********error********/的下面,修改該語(yǔ)句即可。其他的語(yǔ)句不能修改。試題程序:#include(iostream.h>classTC/********error********/TC(inti)(m_i=i;}voidprint{cout?—m_i?,;}public:intmain/********error********/inti;TC04(10);while(i>5)/********erpQr********/i++04.print;}cout?endl;returnO;使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果為:sizeof(Sl)=5sizeof(s2)=10sizeof(s3)=l注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。⑴不能刪除assert()語(yǔ)句。(2)只能修改后面的數(shù)字。提示:assert函數(shù)如果為假,則會(huì)產(chǎn)生一個(gè)中斷異常。試題程序:#include<iostream.h>#include<assert.h>voidmain(){char*sl=,,abc,*://********euor********assert(sizeof(s1)==3):cout?"sizeof(s1)=5"?endl;chars2[10]=%b”://********euor********assert(sizeof(s2)==2);cout?"sizeof(s2)=10,,?endl;chars3=23://********euor********assert(sizeof(s3)==4);cout?"sizeof(s3)=1"?endl;return;}使用VC++6.。打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正錯(cuò)誤,使程序正常運(yùn)行,并且要求最后一個(gè)catch必須拋出執(zhí)行的任何異常。程序異常,輸出信息為errorOERROR注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream.h)intmain{try{throw("error");catch(chars)(cout?s?endl;throw((int)0);catch(cout?i?endl;)try{throw(O);throw("errorH);}catch(cout?"ERROR"?endl:}returnO;使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為Constructor,i=0,Destructor注意:錯(cuò)誤的語(yǔ)句在//******error******的下面,修改該語(yǔ)句即可。試題程序:#include(iostream.h)classTC(inti;public:TC;voiddisplay;?TC;//******error******TC:TCcout?nConstructor"?",i=0;)//******errc)r******TC:display(tout?ui=u?i?n,H?endl;1//******errc)r******TC:TC(COUI?',Destructor"?endl:}voidmain{TCa;a.display;41.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤。本程序要求實(shí)現(xiàn)的功能為從鍵盤輸入一個(gè)字符串,并將結(jié)果保存到文件1.txt中。注意:不要改動(dòng)main函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在試題程序:#include<iostream>#include<fstream>usingstd;voidWriteFile(char*s)(ofstreamoutl;outl.open("1.txt",binary|app);for(inti=0;s[i]!=0;i++)outl.puts(s[i]);)outl.close;}voidClearFile{ofstreamoutl;outl.open("1.txt”);outl.close;}intmain(chars[1024];ClearFile;cout?"pleaseinputastrin9:"?endl;cin.getline(s,1024);WriteFile(s);returnO;142.使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運(yùn)行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果為:number=lnumber=10number=100注意:不要改動(dòng)main函數(shù),不能增加或刪除行。也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在//******error******的下面。試題程序:#include<iostream.h>classTC(public:TC(inti)(number=i;}voidSetNumber(intm)(number=m;}intGetNumberconst(returnnumber;)voidPrintconst⑴類CO不能被實(shí)例化,請(qǐng)定義一個(gè)純虛函數(shù)print,在注釋1后添加適當(dāng)?shù)恼Z(yǔ)句。類C1私有虛繼承類CO,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。類C2公有繼承于CO,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。⑷類c3公有繼承于C2與Cl,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z(yǔ)句。注意:增加代碼或者修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修改其他的程序代碼。試題程序:#include(iostream.h)classCO(//********〔********};//********2********classCl:{public:voidprint(coutV”"Cl"VVendl;I};//********3********classC2:public:voidprintcoutVV”C2”VVendl;1);classC3:(public:voidprint(cout<<"C3"<<endh}};voidmain{C30bj3;C20bj2;obj3.print;obj2.print;return;}六、3.綜合應(yīng)用題(2題)48.使用VC6打開考生文件夾下的工程test29_3o此工程包含一個(gè)test29_3.cpp,其中定義了二維坐標(biāo)類Coordinate和三維坐標(biāo)類造函數(shù)中請(qǐng)將X賦值給數(shù)據(jù)成員b,將y作為基類A構(gòu)造函數(shù)的參數(shù)值傳入。請(qǐng)?jiān)谧⑨尅啊?*2**”之后添加適當(dāng)?shù)恼Z(yǔ)句。定義類A2的構(gòu)造函數(shù),該構(gòu)造函數(shù)有三個(gè)整型的參數(shù)x,y和2,在構(gòu)造函數(shù)中請(qǐng)將x賦值給數(shù)據(jù)成員c,將y和z分別賦值給基類A1構(gòu)造函數(shù)的參數(shù)x和y。請(qǐng)?jiān)谧⑨?/**3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。完成類A2的成員函數(shù)show的定義,該函數(shù)調(diào)用基類成員函數(shù),輸出基類數(shù)據(jù)成員a和b及類A2自身的數(shù)據(jù)成員c的值,上述三個(gè)值在輸出時(shí)以空格隔開。請(qǐng)?jiān)谧⑨尅啊?*4**”之后添加適當(dāng)?shù)恼Z(yǔ)句。注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。程序輸出結(jié)果如下:96962源程序文件test3O_3.cpp清單如下:#include<iostream.h>classA(inta;public:〃**]**intgeta(){returna;});classAl:publicA{intb;public:〃**2**intgetb(){returnb;|);classA2:publicAlintc;序列按關(guān)鍵字有序或基本有序時(shí),快速排序退化為冒泡排序,最壞情況下比較次數(shù)為n(n-l)/2oD解析:本題考核數(shù)組與指針。A選項(xiàng)中,p為指針,數(shù)組名a代表數(shù)組的首地址,所以p-a就是指針到數(shù)組首地址的偏移量。B選項(xiàng)中,&a[i]是取數(shù)組a中第i個(gè)元素的地址,而對(duì)于*(&a[i]),由指針運(yùn)算符*的運(yùn)算規(guī)則可知,語(yǔ)句*(&a[i])就是返回地址&a[i]空間中存放的值,也即a[i]oC)選項(xiàng),由于指針p已指向數(shù)組a,所以pE就等于a[i]小這是常用的一種數(shù)組元素引用方式。D)選項(xiàng)是以指針?lè)绞綄?duì)數(shù)組元素進(jìn)行引用,由于a只是代表數(shù)組的首地址,并不是指針,所以表達(dá)式*(*(a+i))是錯(cuò)誤的,正確的引用應(yīng)該為:*(*(p+i))°D解析:本題程序中引入了虛基類。在主函數(shù)中,執(zhí)行語(yǔ)句“yobj;”時(shí),先執(zhí)行虛基類x的構(gòu)造函數(shù),使a=l,然后執(zhí)行類xl的構(gòu)造函數(shù),使a=2,并輸出值2。再執(zhí)行類x2的構(gòu)造函數(shù),使a=4,并輸出值4。最后執(zhí)行類y的構(gòu)造函數(shù),輸出值4。C解析:要熟練掌握C++語(yǔ)言中的關(guān)鍵字。注意:include不是C++語(yǔ)言的關(guān)鍵字。注意:define也不是關(guān)鍵字。D解析:在C++中使用1/0流的程序需要包括iostream.h0A解析:本題程序首先定義了類CSample,其內(nèi)部成員為private類型數(shù)據(jù)成員inti和public類型成員函數(shù),包括兩個(gè)構(gòu)造函數(shù)、一個(gè)析構(gòu)函數(shù)和一個(gè)普通成員函數(shù)voidDisplay(),其成員函數(shù)的功能分別為:?CSample::CSample():構(gòu)造函數(shù),輸出構(gòu)造函數(shù)的執(zhí)行消息“C1”,并將數(shù)據(jù)成員i賦值為i=0:CSample::CSample(intval):重載構(gòu)造函數(shù),輸出構(gòu)造函數(shù)的執(zhí)行消息“C2”,并將數(shù)據(jù)成員i賦值為i=val:voidCSample::DisplayO:成員函數(shù),輸出數(shù)據(jù)成員i的值;CSample::?CSample。:析構(gòu)函數(shù),輸出析構(gòu)函數(shù)的執(zhí)行消息,并輸出數(shù)據(jù)成員值。在主函數(shù)中,程序分別采用兩個(gè)構(gòu)造函數(shù),創(chuàng)建了類CSample的兩個(gè)對(duì)象,一個(gè)利用不帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建對(duì)象a,另一個(gè)利用帶參數(shù)的構(gòu)造函數(shù)創(chuàng)建對(duì)象b。根據(jù)上面的分析,可以得到a和b中數(shù)據(jù)成員i的值分別為0(不帶參數(shù)情況)和10(所帶參數(shù)值)。因此下面的兩條輸出語(yǔ)句分別輸出“0"和“10"。此外,由于系統(tǒng)在創(chuàng)建對(duì)象時(shí)會(huì)調(diào)用構(gòu)造函數(shù),在對(duì)象生命期結(jié)束時(shí)會(huì)調(diào)用析構(gòu)函數(shù),因此程序還會(huì)有相應(yīng)的輸出。由于構(gòu)造函數(shù)的調(diào)用順序與對(duì)象創(chuàng)建的先后順序一致,因此程序應(yīng)該首先輸出兩個(gè)構(gòu)造函數(shù)的調(diào)用信息,即“C1”和“C2”。在主函數(shù)執(zhí)行結(jié)束后,由于兩個(gè)對(duì)象a和b的生命期已經(jīng)結(jié)束,因此系統(tǒng)將調(diào)用析構(gòu)函數(shù)收回系統(tǒng)資源。由于析構(gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)完全相反,因此系統(tǒng)將首先調(diào)用對(duì)象b的析構(gòu)函數(shù),程序輸出析構(gòu)函數(shù)執(zhí)行信息“D”;之后調(diào)用對(duì)象a的析構(gòu)函數(shù),程序輸出析構(gòu)函數(shù)執(zhí)行信息“D”oA解析:?jiǎn)卧獪y(cè)試的步驟如下:①理解需求和設(shè)計(jì)。清楚被測(cè)試模塊在整個(gè)軟件中所處的位置。一個(gè)原則是:好的設(shè)計(jì),各模塊只負(fù)責(zé)完成自己的事情,層次與分工明確。單元測(cè)試時(shí),可以不測(cè)試不屬于被測(cè)模塊所負(fù)責(zé)的功能,以減少測(cè)試用例的冗余。概覽源代碼。瀏覽源代碼,初步檢查源代碼的編碼風(fēng)格與規(guī)范,大致估算測(cè)試工作量,確定模塊的復(fù)雜程度,初步制定測(cè)試的優(yōu)先級(jí)等。精讀源代碼。認(rèn)真閱讀和分析代碼,理解代碼的業(yè)務(wù)邏輯,檢查代碼與設(shè)計(jì)是否相符,仔細(xì)研究邏輯復(fù)雜的模塊,可采用一些檢查列表來(lái)檢查程序可能會(huì)出現(xiàn)的問(wèn)題。設(shè)計(jì)測(cè)試用例。綜合運(yùn)用白盒測(cè)試方法(并結(jié)合黑盒測(cè)試方法)設(shè)計(jì)測(cè)試用例,包括功能測(cè)試、性能測(cè)試等,要達(dá)到一定的測(cè)試覆蓋率。本題正確答案為選項(xiàng)A。搭建單元測(cè)試環(huán)境。這個(gè)階段主要就是寫樁模塊和驅(qū)動(dòng)模塊,然后驅(qū)動(dòng)模塊想辦法獲取被測(cè)試模塊對(duì)數(shù)據(jù)的處理結(jié)果,并判定返回的實(shí)際結(jié)果與測(cè)試用例的預(yù)期結(jié)果是否一致,通過(guò)測(cè)試框架來(lái)記錄執(zhí)行的結(jié)果,對(duì)于出現(xiàn)的錯(cuò)誤,還需統(tǒng)計(jì)錯(cuò)誤的信息,供執(zhí)行完之后分析。執(zhí)行測(cè)試。運(yùn)行寫好的驅(qū)動(dòng)模塊完成對(duì)被測(cè)試模塊的測(cè)試。補(bǔ)充和完善測(cè)試用例。在測(cè)試過(guò)程中不斷補(bǔ)充測(cè)試用例,直到滿足要求為止。分析結(jié)果,給出評(píng)價(jià)。根據(jù)測(cè)試的結(jié)果分析、查找錯(cuò)誤的原因,并找到解決的辦法。測(cè)試結(jié)束之后,根據(jù)測(cè)試過(guò)程的數(shù)據(jù)統(tǒng)計(jì),給出被測(cè)試對(duì)象評(píng)價(jià)。B解析:p表示的是變量a的地址,定義后*p表示的是變量a的值。BC解析:固定的一種拷貝方式就是v類名>:<類名〉constv類名〉&v引用對(duì)象名〉注意:如果一個(gè)類中沒有聲明,拷貝構(gòu)造函數(shù),編譯器會(huì)自層次模型是數(shù)據(jù)庫(kù)系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。我們通常把滿足以下兩個(gè)條件的數(shù)據(jù)模型稱為層次模型。有且僅有一個(gè)結(jié)點(diǎn)無(wú)雙親,這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn)。其他結(jié)點(diǎn)有且僅有一個(gè)雙親。層次模型用樹形結(jié)構(gòu)來(lái)表示各實(shí)體與實(shí)體間的聯(lián)系。實(shí)體是數(shù)據(jù)庫(kù)中數(shù)據(jù)描述的對(duì)象,可以是一個(gè)人、一種商品等。在層次模型中,每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,記錄之間的聯(lián)系用結(jié)點(diǎn)之間的連線表示,這種聯(lián)系是父子之間一對(duì)多的聯(lián)系。記錄就是描述實(shí)體的相關(guān)數(shù)據(jù)。如果取消層次模型中的兩個(gè)限制,即允許一個(gè)以上的結(jié)點(diǎn)無(wú)雙親,則每一個(gè)結(jié)點(diǎn)可以有多個(gè)父結(jié)點(diǎn),便形成了網(wǎng)狀。我們把網(wǎng)狀表示實(shí)體之間聯(lián)系的模型稱為網(wǎng)狀模型。關(guān)系模型用表格形式表示實(shí)體類型及其實(shí)體間的聯(lián)系。關(guān)系模型是目前最重要的一種模型,它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的,具有最堅(jiān)實(shí)的理論基礎(chǔ)。關(guān)系模型的基本數(shù)據(jù)結(jié)構(gòu)是二維表,每一張二維表稱為一個(gè)關(guān)系。BB?!窘馕觥吭贑++程序中的typename是都可以替換為class的,但class不能都替換為typename。AAo【解析】由主函數(shù)main入手,定義外部變量x和y,調(diào)用函數(shù)addo因?yàn)閤,y為外部變量,所以“intx(20),y(5);”的賦值在add也是有效的,即add函數(shù)的運(yùn)算結(jié)果為25。A靜態(tài)成員表示整個(gè)類范圍共享的信息;必須對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化;靜態(tài)數(shù)據(jù)成員是屬于類的,不能通過(guò)類的對(duì)象調(diào)用。D解析:線性表可以為空表,排除選項(xiàng)B。第一個(gè)元素沒有直接前件,最后一個(gè)元素沒有直接后件,故排除選項(xiàng)A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項(xiàng)C也有誤,只有D項(xiàng)是正確的。A解析:=、[]、()、?>以及所有的類型;轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,A項(xiàng)正確。默認(rèn)的賦值運(yùn)算符只實(shí)現(xiàn)了淺層復(fù)制,B項(xiàng)錯(cuò)誤。賦值運(yùn)算符只能作為成員函數(shù)重載,形參表中只有一個(gè)參數(shù),對(duì)應(yīng)于第二操作數(shù),C項(xiàng)錯(cuò)誤。一個(gè)類中如果需要重載運(yùn)算符“=”,通常也就需要定義自己特有的復(fù)制構(gòu)造函數(shù),反之亦然,故D項(xiàng)錯(cuò)誤。DDo【解析】函數(shù)執(zhí)行過(guò)程為:function】。),function2(3),functionl(2),function2(0)return。24.00解析:冒泡排序算法在最好的情況下(已經(jīng)有序的)元素交換次數(shù)為0。25.88解析:二叉樹有一個(gè)性質(zhì),即在二叉樹的第k層上,最多有2kl(k>l)個(gè)結(jié)點(diǎn)。而對(duì)于滿二叉樹來(lái)說(shuō),每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-l個(gè)結(jié)點(diǎn)。因此,在深度為4的滿二叉樹中,所有葉子結(jié)點(diǎn)在第4層上,即其結(jié)點(diǎn)數(shù)為2kJ=2kd=8外模式外模式解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。cout.serf(los::hexbasefield);友元函數(shù)友元函數(shù)解析:當(dāng)需要重載運(yùn)算符具有可交換性時(shí),選擇重載為友元函數(shù)。黑盒或者黑箱黑盒或者黑箱解析:軟件測(cè)試的方法。虛函數(shù)和對(duì)象虛函數(shù)和對(duì)象解析多態(tài)性是指一個(gè)接口,多種方法。而虛函數(shù)的作用是允許在派生類中重新定義與基類同名的函數(shù),并且通過(guò)基類指針或引用來(lái)訪問(wèn)基類和派生類中的同名函數(shù)。通過(guò)對(duì)象名調(diào)用的虛函數(shù),是在運(yùn)行階段把虛函數(shù)和類對(duì)象“綁定"在一起的。31.classBB;AA::AA::print(BB&w)c3=cl+c2a[i+l]a[i+l]解析:實(shí)現(xiàn)由后面一個(gè)數(shù)組元素將前一個(gè)數(shù)組元素進(jìn)行覆蓋,故應(yīng)該為a[i]=a[i+l]ox..operator+(operator*(yz))x..operator+(operator*(y,z))解析:C++中用成員函數(shù)重載x*y為:x.operator*(y);用友元函數(shù)重載x*y為operator*(x,y);用成員函數(shù)重載x+y為:x.operator+(y);用友元函數(shù)重載x+y為:operator+(x,y)。函數(shù)體函數(shù)體解析:在C++中,一個(gè)函數(shù)由函數(shù)頭和函數(shù)體兩部分組成。(1)應(yīng)改為ucatch(char*s),,o(2)應(yīng)改為“cateh(inti)"。⑶應(yīng)改為“catch(...)”。【解析】本題中第1個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為-throw("error"); 其中的類型為字符串。所以對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類型,而程序中給出的語(yǔ)句“catch(chars)”是字符型的,所以第1處的語(yǔ)句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為“throw((int)0);”,其中的類型為int。對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類型,所以補(bǔ)充catch子句中的類型,否則如果找不到匹配的catch塊,系統(tǒng)就會(huì)調(diào)用一個(gè)系統(tǒng)函數(shù),使程序終止運(yùn)行。即第2處的語(yǔ)句修改為“catch(inti)”。如果在catch子句中沒有指定異常信息的類型,那么就用刪節(jié)號(hào)表示它可以捕捉任何類型的異常信息,即修改為“catch(...)”。(1)應(yīng)添加“public:\n(2)“inti”應(yīng)改為“inti(10);”。\n(3)“i++;”應(yīng)改為“i??;”。\n【解析】本題主要考查的是成員的訪問(wèn)屬性。成員的訪問(wèn)屬性有公有、保護(hù)和私有3種,而默認(rèn)的訪問(wèn)屬性為私有,只有公有成員才能通過(guò)類的對(duì)象被訪問(wèn)。故應(yīng)在構(gòu)造函數(shù)前添加“public:”,否則該類無(wú)法被實(shí)例化。變量的初始化可以通過(guò)“=''號(hào),也可以和初始化對(duì)象一樣添加構(gòu)造參數(shù),題目已要求使用后者。本題要求輸出5個(gè)數(shù),while的循環(huán)變量i每次減1,在i>5時(shí)循環(huán),故i初始化應(yīng)為10。若循環(huán)中i每次增1,則循環(huán)永遠(yuǎn)不會(huì)退出。(1)應(yīng)改為“assert(sizeof(sl)=4);\n(2)應(yīng)改為uassert(sizeof(s2)==10);\n(3)應(yīng)改為"assert(sizeof(s3)==l);\n【解析】assert函數(shù)如果為假,貝IJ會(huì)產(chǎn)生一個(gè)中斷異常。所以要讓它正常執(zhí)行輸出結(jié)果,那么assert函數(shù)只有為真,才不會(huì)產(chǎn)生中斷異常?!癮ssert(sizeof(sl)=3);”語(yǔ)句中“sizeof(sl)=3”為假,這會(huì)使程序產(chǎn)生異常,不能正常執(zhí)行。因?yàn)閟trl的值為abc,但是它還有一個(gè)尾符,它的長(zhǎng)度應(yīng)該是4,而不是3,所以在第1處修改為fctassert(sizeof(s1)==4);str2[10]說(shuō)明,str2的空間為10,在第2處修改為4tassert(sizeof(s2)=10)尸。charstr3=23;語(yǔ)句說(shuō)明23是字符,所占存儲(chǔ)空間為1,所以修改為44assert(sizeof(s3)=1);(1)應(yīng)改為"catch(char*s)‘‘。(2)應(yīng)改為“cateh(inti)”。⑶應(yīng)改為“catch(...)”?!窘馕觥勘绢}中第1個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為-throw(-error-); 其中的類型為字符串。所以對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類型,而程序中給出的語(yǔ)句“catch(chars)”是字符型的,所以第1處的語(yǔ)句修改為“catch(char*S)”。第2個(gè)標(biāo)識(shí)前的異常拋出語(yǔ)句為“throw((int)0);”,其中的類型為int。對(duì)應(yīng)的異常捕捉語(yǔ)句catch中應(yīng)該符合這個(gè)類型,所以補(bǔ)充catch子句中的類型,否則如果找不到匹配的catch塊,系統(tǒng)就會(huì)調(diào)用一個(gè)系統(tǒng)函數(shù),使程序終止運(yùn)行。即第2處的語(yǔ)句修改為“catch(inti)”。如果在catch子句中沒有指定異常信息的類型,那么就用刪節(jié)號(hào)表示它可以捕捉任何類型的異常信息,即修改為“catch(...)”。(1)應(yīng)改為“TC::TC“。\n(2)應(yīng)改為“voidTC::display”。\n⑶應(yīng)改為“TC::~TC”。\n【解析】在類的外部定義成員函數(shù)時(shí),必須在成員函數(shù)前面加上類名和作用域運(yùn)算符“::”,作用域運(yùn)算符用采表示某個(gè)成員屬于哪個(gè)類,使用格式為“(類名)::v成員函數(shù)>((參數(shù)函數(shù))),因此第1處應(yīng)改為“TC::TC”,默認(rèn)構(gòu)造函數(shù)沒有參數(shù)。由第2處“TC::display”后的語(yǔ)句看,這是在類外實(shí)現(xiàn)TC函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)誤問(wèn)題,display函數(shù)返回值為void,因此第2處的語(yǔ)句應(yīng)改為“voidTC::display”。由第3處的語(yǔ)句叮(2::和”可知,顯然這里是在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函數(shù)是一個(gè)特殊的函數(shù),它的名稱和類名相同,并在前面加字符,用采與構(gòu)造函數(shù)加以區(qū)別,因此第3處的語(yǔ)句應(yīng)改為“TC::~TC”。(1)應(yīng)改為“usingnamespacestd;"。應(yīng)改為"outl.open("1.txt”,ios::binaryIios::app);應(yīng)改為“outl?put(s[i]);”?!窘馕觥勘绢}第1處的“usingstd;”是在程序中引入標(biāo)準(zhǔn)命名空間std,對(duì)于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處的語(yǔ)句修改為“usingnamespacestd;"。第2處,調(diào)用成員函數(shù)open中,輸入、輸出方式是在ios類中定義的,所以“outl.open("l.txt",binaryIapp);”語(yǔ)句缺少類ios,即第2處的語(yǔ)句修改為"outl.open("l.txt”,ios::binaryIios::app);第3個(gè)標(biāo)識(shí)應(yīng)該用流成員函數(shù)put輸出字符,所以第3處的語(yǔ)句修改為“outl.put(s[i]);⑴應(yīng)改為“TCobjl⑴;氣應(yīng)改為“Objl.SetNumber(lO);”。應(yīng)改為“0bj2?SelNumber(lOO);”。【解析】本題第1處的“TCobjl;”語(yǔ)句是聲明TC類的對(duì)象Objl,根據(jù)TC類構(gòu)造函數(shù)的定義TC(inti),存在整型參數(shù),并且題目要求第一個(gè)輸出結(jié)果兩1,所以補(bǔ)全參數(shù)1,即第1處的“TCobjl(l);”。第2處處的"objl.number=10;,'應(yīng)該是調(diào)用成員函數(shù)SetNumber賦值。在C++中成員函數(shù)的使用形式應(yīng)該是:對(duì)象名.成員函數(shù),所以修改為“objl.SetNumber(lO);”。類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例。第3處“TC.SetNumber(lOO);”語(yǔ)句中的TC為類,并不是對(duì)象,這里應(yīng)該使用定義的對(duì)象,即。bj2,所以將語(yǔ)句修改為“obj2.SetNumber(lOO);"。(1)應(yīng)改為“ein.getline(str,120,?);”。\n(2)應(yīng)改為“wh、e(str[i])"。\n⑶應(yīng)改為“if(str[i]>=a&&str[i]<=2fo\n【解析】本題中要求以輸入字符“?"為結(jié)束符,用于字符輸入的流成員函數(shù)getline函數(shù)讀入一行字符,格式為^cin.getline(字符數(shù)組,字符個(gè)數(shù),終止標(biāo)志字符)”,所以第1處改為“cin.getline(str,120,?);”。第2處的“while(str)”語(yǔ)句應(yīng)該是判斷字符串str中的每一個(gè)字符是否為結(jié)束符,若不是結(jié)束符,在循環(huán)中判斷每一個(gè)字符是否為小寫,若為小寫,則轉(zhuǎn)換。所以應(yīng)該修改為“while(str[i])”°第3處的“if(str[i]>=a)”語(yǔ)句是判斷字符str[i]是否為小寫字符,而現(xiàn)有的語(yǔ)句只是判斷字符是否大于a,但是小寫字符應(yīng)該是a到2,所以修改為“if(str[i]>=a&&str[i]>=z)”。(1)應(yīng)改為"usingnamespacestd;\n(2)應(yīng)改為“outl.open('l.txt',ios::binary|ios::app);\n⑶應(yīng)改為“outl.put(s[i]);\n【解析】本題第1處的“usingstd建是在程序中引入標(biāo)準(zhǔn)命名空間std,對(duì)于C++中引入標(biāo)準(zhǔn)命名空間的格式,缺少namespace,所以第1處的語(yǔ)句修改為“usingnamespacestd; 第2處,調(diào)用成員函數(shù)open中,輸入、輸出方式是在ios類中定義的,所以“outl.openC.txf,binary|app);”語(yǔ)句缺少類ios,即第2處的語(yǔ)句修改為t4outl.open('l.txt',ios::binary|ios::app);第3個(gè)標(biāo)識(shí)應(yīng)該用流成員函數(shù)put輸出字符,所以第3處的語(yǔ)句修改為“out].put(s[i]);”。(1)應(yīng)改為“ein.getline(str,120,?);"。應(yīng)改為“while(str[i])”°應(yīng)改為“iRstr[i]>=a&&str[i]v=2)”。【解析】本題中要求以輸入字符“?”為結(jié)束符,用于字符輸入的流成員函數(shù)getline函數(shù)
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 晉教版地理七年級(jí)下冊(cè)9.3《撒哈拉以南的非洲──黑種人的故鄉(xiāng)》聽課評(píng)課記錄
- 新版華東師大版八年級(jí)數(shù)學(xué)下冊(cè)《16.1.2分式的基本性質(zhì)約分》聽評(píng)課記錄4
- 北師大版歷史九年級(jí)下冊(cè)第13課《新興力量的崛起》聽課評(píng)課記錄
- 人教版數(shù)學(xué)七年級(jí)上冊(cè)2.1《去括號(hào)》聽評(píng)課記錄
- 人教部編版九年級(jí)歷史下冊(cè)聽課評(píng)課記錄:第13課《羅斯福新政》
- 人教版數(shù)學(xué)九年級(jí)上冊(cè)24.2《直線和圓的位置關(guān)系(1)》聽評(píng)課記錄
- 人教版數(shù)學(xué)八年級(jí)上冊(cè)《完全平方公式》聽評(píng)課記錄6
- 小學(xué)二年級(jí)上冊(cè)除法口算
- 九年級(jí)第一學(xué)期班主任總結(jié)
- 五年級(jí)下冊(cè)口算題
- 西安經(jīng)濟(jì)技術(shù)開發(fā)區(qū)管委會(huì)招聘筆試真題2024
- 2025屆浙江省高三歷史選考總復(fù)習(xí)模擬測(cè)試(八)歷史試題(含答案)
- 廣州2025年第一次廣東廣州市白云區(qū)政務(wù)服務(wù)和數(shù)據(jù)管理局政府雇員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- CQI-23模塑系統(tǒng)評(píng)估審核表-中英文
- 二年級(jí)數(shù)學(xué)上冊(cè)100道口算題大全(每日一練共12份)
- 40篇短文搞定高中英語(yǔ)3500單詞
- Q∕SY 1342-2010 終端計(jì)算機(jī)安全管理規(guī)范
- 乘法口訣表(到25乘25)
- 建設(shè)工程施工合同糾紛案件要點(diǎn)分析課件
- TPM“2”STEP培訓(xùn)方法和技巧(發(fā)生源困難源對(duì)策=兩源改善)
評(píng)論
0/150
提交評(píng)論