國家二級C++機(jī)試(操作題)模擬試卷5(共27題)_第1頁
國家二級C++機(jī)試(操作題)模擬試卷5(共27題)_第2頁
國家二級C++機(jī)試(操作題)模擬試卷5(共27題)_第3頁
國家二級C++機(jī)試(操作題)模擬試卷5(共27題)_第4頁
國家二級C++機(jī)試(操作題)模擬試卷5(共27題)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

國家二級C++機(jī)試(操作題)模擬試卷5(共9套)(共27題)國家二級C++機(jī)試(操作題)模擬試卷第1套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,其中有點(diǎn)類Point和線段類Line和主函數(shù)main的定義,程序中位于每個“//ERROR*******found*******”之后的一行語句有錯誤,請加以改正。改正后程序的輸出應(yīng)為:p1=(8,4)p2=(3,5)注意:只修改兩個“//ERROR*******found*******”下的那一行,不要改動程序中的其他內(nèi)容。#include<iostream>#include<cmath>usingnamespacestd;classPoint{doubleX,y;public:Point(doublex=0.0,doubley=0.0)//ERROR*******found*******{x=x,y=y;)doublegetX()const{returnx;)doublegetY()const{returny;)//ERROR*******found*******voidshow()const{cout;<<’(’<<x<<’,’<<y<<’)’}};classLine{Point;pl,p2;public:Line(Pointpt1,Pointpt2)//ERROR*******found*******{pt1=p1;pt2=p2;}Pointgetp1()const{returnp1;)PointgetP2()const{returnp2;}};intmain(){Lineline(Point:(8,4),Point(3,5));cout<<”p1=”;line.getp1().show();cout<<”p2=”;line.getp2().show();tout<<endl;return0;}標(biāo)準(zhǔn)答案:(1):x(x),y(y){}或{this->x=x;this->y=y;}(2)voidshow()const{cout<<’(<<x<<’,<<y<<’)’;}(3):p1(pt1):p2(pt2){}或{p1=pt1;p2=p2}知識點(diǎn)解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握,因為形參名和私有成員名稱一樣因此不能直接賦值,在這里使用成員列表初始化,也可以使用this指針賦值。(2)主要考查考生對語句基本語法的掌握,根據(jù)語句:voidshow()const{cout<<’(’<<x<<’,<<y<<)’}??煽闯龊瘮?shù)體內(nèi)并沒有;作為cout語句的結(jié)束符,因此程序錯誤。(3)主要考查考生對構(gòu)造函數(shù)的掌握,形參是pt1和pt2,這里寫反了,也可以使用成員列表初始化法,可以避免這種錯誤。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,其中有整數(shù)棧類IntList、順序棧類SeqList和鏈接棧類LinkList的定義。請在程序中的橫線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:4631846318注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動//“*******found*******”.#include<iostEeain>usingnamespacestd;classIntStack{//整數(shù)棧類public:virtualvoidpush(int)=0;//入棧virtualintpop()=0;//出棧并返回出棧元素virtualint.topElement()const=0;//返回棧頂元素,但不出棧virtualbool~sErapty()const=0;//判斷是否??諁;classSeqStack:publicIntStack{intdata[100],//存放棧元素的數(shù)組int:top;//棧頂元素的下標(biāo)public://*******found*******SeqStack():____________{}//把top初始化為-1表示??誺oidpush(intn){data[++top]=n;)//*******found*******intpop()freturn________;)inttopElement()const{returndata[top];}boolisEmpty()const{returntop=-1;}};structNode{intdata;Node*next;};classLinkStack:publicIntStack{Node*top;public://*******found*******LinkStack():_____________{}//把top初始化為NULL表示??誺oidpush(intn){Node*P=newNode;P一>data=n://*******found*******________________;top=P;}intpop(){intd=top一>data;;top=top一>next;returnd;}inttopElement()const(returntop一>data;}boolisEmpty()const{returntop==NULL,)};voidpushData(IntStack&st){st.push(8);st.push(1);st.push(3);st.push(6);st.push(4);}voidpopData(IntStack&st)fwhile(!st.isEmpty())cout<<st.pop()<<¨;}intmain(){SeqStackstl,pushData(stl);popData(stl);cout<<endl;LinkStackst2;pushData(st2);popData(st2);cout<<endl;return0;}標(biāo)準(zhǔn)答案:(1)top(-1)(2)data[top--](3)top(NULL)(4)p->next=top;知識點(diǎn)解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握情況,先看語句注釋:把top初始化為-1表示???,即要把top賦值為-1即可。(2)主要考查考生對純虛函數(shù)的掌握,先看純虛函數(shù)在基類的注釋:出棧并返回出棧元素。要返回棧頂元素可以通過data[top]得到,出棧同時要使得top往下移動,即top--。(3)主要考查考生對構(gòu)造函數(shù)的掌握情況,先看語句注釋:把top初始化為NULL表示棧空,因此使用成員列表初始化直接把top賦值為NULL即可。(4)主要考查考生對棧的掌握,push為入棧函數(shù),top指向棧頂元素,因此新添加的指針的next要指向top,即:p->next=top;。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,其中聲明IntSet是一個用于表示正整數(shù)集合的類。IntSet的成員函數(shù)Intersection的功能是求當(dāng)前集合與另一個集合的交集。請完成成員函數(shù)Intersection。在main函數(shù)中給出了一組測試數(shù)據(jù),此時程序的輸出應(yīng)該是:求交集前:123581028911305667求交集后:12358102891130566728要求:補(bǔ)充編制的內(nèi)容寫在“//*******333*******”與“//*******666*******”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//Intset.h#include<iostream>usingnamespacestd;constintMax=100;classIntSet{public:IntSet()//構(gòu)造一個空集合{end=-1;}IntSet(inta[],intsize)//構(gòu)造一個包含數(shù)組a中size個元素的集合{if(size>=Max)end=Max-1;elseend=size-1;for(inti=0;i<=end;i++)element[i]=a[i];}boolIsMemberOf(inta)//判斷a是否為集合中的一個元素{for(inti=0;i<=end;i++)if(element[i]=a)returntrue;returnfalse;}intGetEnd(){returnend;}//返回最后一個元素的下標(biāo)intGetElement(inti){returnelement[i];}//返回下標(biāo)為i的元素IntSetIntersection(IntSet&set),//求當(dāng)前集合與集合set的交voidPrint()//輸出集合中的所有元素{for(inti=0;i<=end;i++)if((i+1)%20=0)cout(<element[i]<<endl;elsecout<<element[i](<”;cout<<endl:}private:intelement[Max];intend;};voidwriteToFile(constchar*);//main.cpp#include”IntSet.h”IntSetIntSet::Intersection(IntSet&set){inta[Max],size=0;//*******333*******//*******666*******returnIntSet(a,size);}intmain(){inta[]={1,2,3,5,8,i0);intb[]=(2,8,9,ii,30,56,67);IntSetsetl(a,6),set2(b,7),set3;cout<<·-求交集前:”<<endl;setl.Print();set2.Print();set3.Print();set3=setl.Intersection(set2);cout<<endl<<-’求交集后:”<<endl;setl.Print();set2.Print();set3.Print();writeToFile(””);return0;}標(biāo)準(zhǔn)答案:for(inti=0;i<=set.GetEnd0;i++)//遍歷對象set數(shù)組if(IsMemberOf(set.GetElement(1)))a[size++]=set.GetElement(i);知識點(diǎn)解析:主要考查考生對數(shù)組的掌握,根據(jù)IntSet類的構(gòu)造函數(shù):IntSet(inta[],intsize)//構(gòu)造一個包含數(shù)組a中size個元素的集合{if(size>=Max)end=Max-1;elseend=size-1;for(inti=0;i<=end;i++)element[i]=a[i];}可知數(shù)組element用來裝載集合,end表示數(shù)組長度,因此調(diào)用函數(shù)IsMember0來判斷set中的元素是否存在于集合中.如果存在則放入數(shù)組a中。國家二級C++機(jī)試(操作題)模擬試卷第2套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時有錯,請改正其中的錯誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果為:Maxis7提示:max()函數(shù)實(shí)現(xiàn)找出兩個數(shù)中的最大值,并作為函數(shù)值返回。注意:錯誤的語句在//******error******的下面,修改該語句即可。1#include<iostream>2usingnamespacestd;3//********error********4intmax(inta,intb)5{6if(a<b)7{8intt=a;9a=b;10b=t;11}12returnb;13}14intmain()15{16intm=-3;17intn=7;18//******error******19max(-3,n);20cout<<’’Maxis’’<<m<<ena1;21return0;22}標(biāo)準(zhǔn)答案:(1)intmax(int&a,int&b)(2)max(m,n);知識點(diǎn)解析:函數(shù)參數(shù)傳遞形式有多種:將變量名作為實(shí)參和形參、傳遞變量的指針和傳送引用方式,將變量名作為實(shí)參和形參方式,傳遞是單向的,在函數(shù)執(zhí)行過程中形參的值發(fā)生變化不會傳回實(shí)參,而指針和引用方式在函數(shù)執(zhí)行過程中形參會影響實(shí)參。函數(shù)max返回最大值,而在主函數(shù)內(nèi)并沒有使用其返回值,而是輸出m值,可知在max函數(shù)類已將最大值存放在m里,因此max函數(shù)采用的是傳遞引用方式。(1)由審題分析可知max函數(shù)采用的是傳送引用方式傳遞參數(shù),因此第1個標(biāo)識下應(yīng)該為intmax(int&a,int&b)。(2)調(diào)用max時,傳遞引用時直接使用變量名即可,第2個標(biāo)識下應(yīng)改為“max(m,n)”。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部門的程序。實(shí)現(xiàn)函數(shù)sort(intA[],intn),用冒泡法將數(shù)組排序。提示:所謂冒泡法,就是每次把相鄰的兩個數(shù)交換,較大的數(shù)交換到后面。這樣下標(biāo)從0到n-1的數(shù)與其后面相鄰的數(shù)交換,可以把最大的數(shù)交換到數(shù)組的末端。進(jìn)行n次下標(biāo)從0到n-1的交換,則數(shù)組則會變成有序的,而且是由大到小的順序。注意:不能修改程序的其他部分,并且不能刪除其他的部分,也不能修改程序的結(jié)構(gòu)。1#include<iostream.h>2#defineN103voidsort(intA[N],intn)4{56}7intmain()8{9intA[N]={5,7,4,6,10,13,78,-4,9,20};10sort(A,10);11for(inti=0;i<sizeof(A)/sizeof(int);i++)12{13cout<<A[i]<<’’;14}15cout<<end1;16return0;17}標(biāo)準(zhǔn)答案:1inti,j,k,t;2for(i=0;i<n-1;i++)3{4for(k=i,j=i+1;j<n;j++)5if(A[k]<A[j])//如果前面的比后面的小則需要交換5k=j;7if(k!=i)//交換8{9t=A[i];10A[i]=A[k];11A[k]=k;12}13}知識點(diǎn)解析:函數(shù)sort(intA[],intn)用冒泡排序法把數(shù)組進(jìn)行從大到小的排序,冒泡法排序利用了求數(shù)組中最小值及其位置的算法,首先從n個數(shù)中找出最大值,放在第一個元素位置上,再從剩下的n-1個數(shù)中找出最大值,放在第二個元素位置上,這樣不斷重復(fù)下去,直到剩下最后一個數(shù)。(1)以數(shù)組“A[]={3,8,7,6,5,0,1,2,9,4}”為例來說明具體的排序過程,第一次選擇:第一步從A[0]-A[9]中找最大值max及下標(biāo)k,max=9,k=8;第二步交換a[0]與最大值a[8]的值;第一次結(jié)束后a[0]已存放了最大值,下一次比較就不必再經(jīng)過它了,而從a[1]開始,如此循環(huán)。從例中可以看出10個元素要進(jìn)行九次比較,n個元素要進(jìn)行n-1次比較。設(shè)置兩層循環(huán),外層循環(huán)變量i從0到n-1,內(nèi)層循環(huán)變量從i開始到n-1,在內(nèi)層循環(huán)中找最大值,如果最大值的下標(biāo)k和i不同,則交換,實(shí)現(xiàn)選擇法排序。(2)在內(nèi)層循環(huán)體內(nèi),如果最大值的下標(biāo)k和i不同,則用一個臨時變量記錄第i個元素,然后將第k個元素賦值給第i個元素,臨時變量值賦給第k個元素,如此完成兩個元素的交換。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)利用define定義常量TRUE為1,定義常量FALSE為0,請在注釋//********1********后添加適當(dāng)?shù)恼Z句。(2)在類A2前增加A1的聲明,請在注釋//********2********后添加適當(dāng)?shù)恼Z句。(3)在類C1中聲明友元函數(shù)boolfunc(A2aa,A1&b),請在注釋//********3********后添加適當(dāng)韻語句。(4)實(shí)現(xiàn)函數(shù)boolfunc(A2&obj1,A1&obj2)功能,檢查兩個類的值都為TRUE,則返回TRUE,請在注釋//********4********后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。1#include<iostream.h>2//********1********34#defineFALSE05//********2********67classA28{9private:10boolm_A2;11friendboolfunc(A2&obj1,A1&obj2);12public:13A2()14{15m_A2=FALSE;16}17public:18voidsetA2(booln)19{20m_A2=n;21}22};23classA124{25private:26booim_A1;27//********3********2829public:30A1()31{32m_A1=TRUE;33}34public:35voidsetA1(booln)36{37m_A1=n;38}39};40boolfunc(A2&obj1,A1&obj2)41{42//********4********43return44}45intmain()46{47A2obj0;48A1obj1;49cout<<func(obj0,obj1)<<end1;50obj0.setA2(TRUE);51obj1.setA1(TRUE);52cout<<func(obj0,obj1)<<end1;53return0;54}標(biāo)準(zhǔn)答案:(1)添加語句:#defineTRUE1(2)添加語句:classA1;(3)添加語句:friendboolfunc(A2&obj1,A1&obj2);(4)將“return”補(bǔ)充完整為:returnobj1.m_A2==TRUE&&obj2.m_A1==TRUE;知識點(diǎn)解析:程序當(dāng)中定義了兩個類,每個類中具有一個bool型成員變量,函數(shù)func(A2&obi1,Al&obj2)功能是檢查這兩個類的成員變量值是否都為TRUE,如果均為TRUE返回真,否則返回FALSE,相當(dāng)于一個邏輯與運(yùn)算。(1)#define命令一般將一個指定的標(biāo)識符(即宏名)來代表一個字符串,其定義形式一般為:#define宏名(參數(shù)表)字符串,因此第1個標(biāo)識下應(yīng)添加#defineTRUE1。(2)類聲明格式為:“class<類名>;”,故第2個標(biāo)識下應(yīng)添加“classA1:”。(3)友元不是本類的成員函數(shù),在它的函數(shù)體內(nèi)部可以通過對象名來訪問類的私有成員和保護(hù)成員。友元函數(shù)是在類聲明中由關(guān)鍵字friend修飾的非成員函數(shù),3出添加語句:“friendboolfunc(A2&obj1,A1&obj2);”。函數(shù)func返回變量m_A2和m_A1的邏輯與運(yùn)算結(jié)果,因此第4標(biāo)識下應(yīng)改為“returnobj1.m_A2==TRUE&&obj2.m_A1=TRUE;”。國家二級C++機(jī)試(操作題)模擬試卷第3套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,程序中位于每個“//ERROR*******found*******”之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:value=63number=1注意:只修改每個“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。#include<iostream>usingnamespacestd;classMyClass{int*P;constintN;public://ERROR*******found*******MyClass(intval):N=1{P=newint;*P=val;}//ERROR*******found*******~MyClass(){delete*P;)friendvoidprint(MyClass&obj);};//ERROR*******found*******voidMyClass::print(MyClass&obj){cout(<”value=”<<*(obj.P)(<endl;cout<<”number=”<<o(jì)bj.N<<endl:}intmain(){MyClassobj(63);print(obj);return0;}標(biāo)準(zhǔn)答案:(1)MyClass(intval):N(1)(2)~MyClass(){deletep;}(3)voidprint(MyClass&obj)知識點(diǎn)解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握,在這里不能使用賦值語句。(2)主要考查考生對析構(gòu)函數(shù)的掌握,p是通過newint進(jìn)行動態(tài)內(nèi)存分配的,分配的是單個int的內(nèi)存,而不是數(shù)組。根據(jù)析構(gòu)函數(shù)的delete語句,即deletep;。(3)主要考查考生對友元函數(shù)的掌握,友元函數(shù)并不屬于類,因此定義時前面不用加類名和作用域符號。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,其中定義了Component類、Composite類和Leaf類。Component是抽象基類,Composite和Leaf是Component的公有派生類。請在橫線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:LeafNode注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//*******found*******”。#include<iostream>usingnamespacestd;classComponent{public://聲明純虛函數(shù)print()//*******found*******};classComposite:publicComponent{public://*******found*******voidsetChiid(________){mchiid=chiid;}virtualvoidprint()const{mchild一>print();}private:Component*mchiid;};classLeaf:publicComponent{public:virtualvoidprint()const{//*******found*******)};intmain(){Leafnode;Compositecomp;comp.setChild(&node);Component*P=&comp:P一>print();return0;}標(biāo)準(zhǔn)答案:(1)virtualvoidprint()const=0;(2)Component*child(3)cout<<"LeafNode"<<endl;知識點(diǎn)解析:(1)主要考查考生對純虛函數(shù)的掌握,題目要求聲明純虛函數(shù)print()。在其派生類中print(函數(shù)的定義為virtualvoidprint)const,由此可知純虛函數(shù)為virtualvoidprint()const=0。(2)主要考查考生對成員函數(shù)的掌握,題題要求填寫函數(shù)voidsetChild的形參,由setChild的函數(shù)體??芍螀閏hild,再看類的私有成員m_child的定義:Component*m_child;。由此可知形參為:Component*child。(3)主要考查考生對純虛函數(shù)的掌握,先看主函數(shù)的程序:Leafnode;Compositecomp;comp.setChild(&node);Component*p=&comp;p->print();第一條和第二條語句都是定義語句,第三條語句調(diào)用函數(shù)setChild,由setChild函數(shù)的定義可知,comp中的m_child等于node,第四條語句定義了個指針p指向comp的地址,也就是node,最后一條語句通過指針p調(diào)用函數(shù)print,也就是調(diào)用類Leaf的函數(shù)print,因為題目要求輸出:LeafNode,因此在這里添加語句:cout<<"LeafNode"<<endl;。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,其中定義的Matrix是一個用于表示矩陣的類。成員函數(shù)max_value的功能是求出所有矩陣元素中的最大值。例如,若有3×3矩陣則調(diào)用max_value函數(shù),返回值為3。請編寫成員函數(shù)max_value。要求:補(bǔ)充編制的內(nèi)容寫在“//*******333*******”與“//*******666*******”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)wfiteToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//Matrix.h#include<iostream>#include<iomanip>usingnamespacestd;constintM=18;constintN=18;classMatrix{intarray[M][N];public:Matrix(){}intgetElement(inti,intj)const(returnarray[i][j];}voidsetElement(inti,intj,intvalue){array[i][j]=value;}intmaxvalue()const;voidshow(constchar*S)const{cout<<endl<<S:for(inti=0;i<M;i++){cout<<endl:for(intj=0;j<N;j++)cout<<setw(4)<<array[i][j];)}};voidreadFromFile(constchar},Matrix&);voidwriteToFile(char{,constMatrix&);//main.cpp#include”Matrix.h”#include<fstream>voidreadFromFile(constchar*f,Matrix&m){ifstreaminfile(f);if(infile.fail()){cerr<<”打開輸入文件失敗!”;return;}intk;for(inti=0;i<M;i++)for(intj=0;j<N;j++)(infile>>k:m.setElement(i,j,k);}}intMatrix::maxvalue()const{//*******333*******//*******666*******}intmain(){Matrixm;readFromFile(””,m);m.show(”Matrix:”);cout<<endl<<·,最大元素:”<<m.maxvalue()<<endl;writeToFile(””,m);return0;}標(biāo)準(zhǔn)答案:inttemp=0;//定義整數(shù)變量temp,并賦值為零for(inti=0;i<M;i++)//遍歷矩陣的行for(intj=0;j<N;j++)//遍歷矩陣的列if(temp<array[i][i])temp=array[i][i];//賦值returntemp;//返回temp知識點(diǎn)解析:主要考查考生對二維數(shù)組的掌握.題目要求成員函數(shù)maxvalue的功能是求出所有矩陣元素中的最大值。因此只要逐個元素比較即可,下標(biāo)i和j作為矩陣行和列的標(biāo)記,使用雙層for循環(huán)來遍歷數(shù)組中所有元素。國家二級C++機(jī)試(操作題)模擬試卷第4套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,該工程中包含程序文件main.cpp,其中有類Clock(“時鐘”)的定義和主函數(shù)main的定義。程序中位于每個“//ERROR****found****”之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:Initialtimesare0d:0h:0m:59sAfteronesecondtimesare0d:0h:1m:0S注意:只修改每個“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。#includeusingnamespacestd;ClassClock{public:Clock(mRsignedlongi=0);voidset(unsignedlongi=0);voidprint()const;voidtick();//時間前進(jìn)一秒Clockoperator++();private:unsignedlongtotalsec,seconds,minutes,hours,days;};Clock::C1ock(unsignedlongi):totalsec(i),seconds(i%60),minutes((i/60)%60),hours((i/3600)%24),days(i/86400){}voidClock::set(uns~gnedlongi){totalsec=i;seconds=i%60;minutes=(i/60)%60;hours=(i/3600)%60;days=i/86400;}//ERROR*********found*********voidClock::print(){tout<標(biāo)準(zhǔn)答案:(1)voidClock::print()const(2)set(++total_sec);(3)return*this;知識點(diǎn)解析:(1)主要考查考生對成員函數(shù)的掌握,由Clock類中對函數(shù)print的聲明voidprint()const;可知,在定義print函數(shù)時少了const。(2)主要考查考生對++操作的掌握,根據(jù)函數(shù)要求,時間要先前進(jìn)一秒,再調(diào)用函數(shù)set,因此total_sec++應(yīng)改為++total_sec。(3)主要考查考生對this指針的掌握,函數(shù)要求返回值Clock,即返回一個類,而不是指針,因此使用*this。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,該工程中含有一個源程序文件proj2.cpp,其中定義了CharShape類、Triangle類和Rectangle類。CharShape是一個抽象基類,它表示由字符組成的圖形(簡稱字符圖形),純虛函數(shù)Show用于顯示不同字符圖形的相同操作接口。Triangle和Rectangle是CharShape的派生類,它們分別用于表示字符三角形和字符矩形,并且都定義了成員函數(shù)Show,用于實(shí)現(xiàn)各自的顯示操作。程序的正確輸出結(jié)果應(yīng)為:****************########################請閱讀程序,分析輸出結(jié)果,然后根據(jù)以下要求在橫線處填寫適當(dāng)?shù)拇a并刪除橫線。(1)將Triangle類的成員函數(shù)Show補(bǔ)充完整,使字符三角形的顯示符合輸出結(jié)果。(2)將Rectangle類的成員函數(shù)Show補(bǔ)充完整,使字符矩形的顯示符合輸出結(jié)果。(3)為類外函數(shù)fun添加合適的形參。注意:只在指定位置編寫適當(dāng)代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****found****”。//proj2.cpp#includeusingnamespacestd;classCharShape{public:CharShape(charch):ch(ch){};virtualvoidShow()=0;protected:charch;//組成圖形的字符};classTriangle:publicChar-Shape{public:Triangle(charch,intr):CharShape(ch),rows(r){}voidShow();private:introws;//行數(shù)};classRectangle:publicChar-Shape{public:Rectangle(charch,intr,intc):CharShape(ch),rows(r),cols(c){)voidShow();private:introws,cols;//行數(shù)和列數(shù)};voidTriangle::Show()//輸出字符組成的三角形{for(inti=1;i<=rows;i++){//********found********for(intj=1;j<=___________;j++)cout<<ch;cout<標(biāo)準(zhǔn)答案:(1)i*2-1(2)_nows(3)_cols(4)CharShape&cs知識點(diǎn)解析:(1)考查for循環(huán)語句,該語句所在的函數(shù)的功能是輸出字符組成的三角形。從外層循環(huán)中可以看出下標(biāo)i代表行數(shù),那么下標(biāo)j就代表每一行字符的個數(shù),因為要輸出的是三角形,所以每一行的個數(shù)與該行的行數(shù)相關(guān),即i<=i*2一1:。(2)考查for循環(huán)語句,該語句所在的函數(shù)的功能是輸出字符組成的矩形?;氐絉ectangle類中可以知道矩形的長和寬就是類中私有成員的行數(shù)和列數(shù),因此在這里只要要求下標(biāo)i不大于行數(shù)即可。(3)考查for循環(huán)語句,該語句所在的函數(shù)的功能是輸出字符組成的矩形?;氐絉ectangle類中可以知道矩形的長和寬就是類中私有成員的行數(shù)和列數(shù),因此在這里只要要求下標(biāo)j不大于列數(shù)即可。(4)主要考查考生對虛函數(shù)的掌握,該語句所在的函數(shù)是普通函數(shù)fun,題目要求為fun函數(shù)添加形參。從函數(shù)體中可以知道形參名為cs,那么形參的類型是什么呢?就是抽象類CharShape,因此要使用CharShape&cs才可以實(shí)現(xiàn)題目要求輸出的內(nèi)容。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,其中定義了Mystring類,一個用于表示字符串的類。成員函數(shù)reverse的功能是將字符串進(jìn)行“反轉(zhuǎn)”。例如,將字符串ABCDEF“反轉(zhuǎn)”后,得到字符串FEDCBA;將字符串ABCDEFG“反轉(zhuǎn)”后,得到字符串GFEDCBA。請編寫成員函數(shù)reverse。在main函數(shù)中給出了一組測試數(shù)據(jù),此時程序運(yùn)行中應(yīng)顯示:讀取輸入文件…---反轉(zhuǎn)前---STR1=ABCDEFSTR2=ABCDEFG---反轉(zhuǎn)后---STR1=FEDCBASTR2=GFEDCBA要求:補(bǔ)充編制的內(nèi)容寫在“//*********33*********”與“//*********666*********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中,輸出函數(shù)WriteToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//mgsering.h#include#includeusingnamespacestd;classMystring{public:Mystring(constchar*s){str=newchar[strlen(s)+1];strcpy(str,s);}~Mystring(){delete[]str;)voidreverse();friendOstream&operator<<(Ostream&os,constMystring&mystr){OS<voidMystring::reverse(){//*********333*********//*********666*********}intmain(){charinname[128],pathname[80];strcpy(pathname,"");sprintf(inname,"in.dat",pathname);cout<<"讀取輸入文件…\n\n";iEstreaminfile(inname);if(infile.fail()){cerr<<"打開輸入文件失敗!";exit(1);}charbur[4096];infile.getline(bur,4096);Nystringstrl("ABCDEF"),str2("ABCDEFG"),str3(buf);cout<<"---反轉(zhuǎn)前---\n";cout<<"STR1="<標(biāo)準(zhǔn)答案:intlength=strlen(str);//把字符串str的長度賦值給lenthfor(inti=0,j=length-1;i知識點(diǎn)解析:主要考查考生對動態(tài)數(shù)組的掌握,先看題目要求:成員函數(shù)reverse的功能是將字符串進(jìn)行“反轉(zhuǎn)”。再由類的定義可知,字符串存放在動態(tài)數(shù)組str中,由strlen函數(shù)得出字符串的長度,最后一個字符的下標(biāo)為length-1,第一個字符的下標(biāo)為0,將這兩個字符交換,然后j依次減1同時i依次加1,繼續(xù)交換,直到i大于j時停止循環(huán)即可。國家二級C++機(jī)試(操作題)模擬試卷第5套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,此工程中含有一個源程序文件proj1.cpp。其中位于每個注釋“//ERROR********found********”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結(jié)果為:NUM=0Value=1注意:只修改注釋“//ERROR****found****”的下一行語句,不要改動程序中的其他內(nèi)容。1//proj1.cpp2#include3usingnamespacestd;4classMyClass{5int_i;6friendvoidTncrement(MyClass&f);7public:8constint;NUM;9//ERROR********found********10MyClass(inti=0){NUH=0;11_i=i;12}13intGetValue()const{returni;}14};15//ERROR********found********16voidIncrement;(){f.i++;}17intmain()1819MyClassobj;20//ERROR********found********21MyClass::Increment(obj);22cout<<"NUH="<標(biāo)準(zhǔn)答案:(1)MyClass(inti=0):NUM(O){(2)voidIncrement(MyClass&f){f.一i4-+;}(3)Increment(obj):知識點(diǎn)解析:(1)主要考查考生對常量數(shù)據(jù)成員初始化方法的掌握,常量數(shù)據(jù)成員的初始化只能通過構(gòu)造函數(shù)的成員初始化列表進(jìn)行,并且要使用關(guān)鍵字const修飾。該題的前一條語句constintNUM;,說明NUM是常量數(shù)據(jù)成員。(2)主要考查考生對友元函數(shù)的掌握,友元函數(shù)的定義與聲明要一致,先看該友元函數(shù)的聲明部分:friendvoidIncrement(MyClass&f);,返回類型為wild,函數(shù)參數(shù)為MyClass&f;再比較出錯的語句:voidIncrement(){f._i++;},錯誤在于該函數(shù)沒有參數(shù),心把MyClass&t填住括號內(nèi)。(3)主要考查友兀函數(shù)的凋用,友元函數(shù)并不屬于類,因此調(diào)用友元函數(shù)時不需要添加類名及作用域,只需要像調(diào)用普通函數(shù)一樣即可。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,其中在編輯窗口內(nèi)顯示的主程序文件中定義有類Base和Derived,以及主函數(shù)main。程序文本中位于每行“//****found****”下面的一行內(nèi)有一處或多處下畫線標(biāo)記,請在每個下畫線標(biāo)記處填寫合適的內(nèi)容,并刪除下畫線標(biāo)記。經(jīng)修改后運(yùn)行程序,得到的輸出應(yīng)為:sum=55。注意:只在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容。#includeusingnamespacestd;classBase{public:Base(intm1,intm2){metal=m1;mem2=m2;}intsum()(returnmem1+mere2;)private:intmem1,mem2;//基類的數(shù)據(jù)成員};//派生類Derived從基類Base公有繼承//*******found*******classDerired:{public://構(gòu)造函數(shù)聲明Derived(intm1,intm2,intm3);//sum函數(shù)定義,要求返回meta1、mem2和mem3之和//*******found*******intsum(){return____________+mem3;}private:intmem3;//派生類本身的數(shù)據(jù)成員};//構(gòu)造函數(shù)的類外定義,要求由m1和m2分別初始化mem1和mem2,由m3初始化mem3//*******found*******__________Derived(intm1,intm2,intm3)://*******found*******_________,mem3(m3){}intmain(){Basea(4,6);Derivedb(10,15,20);intsum=a.sum()+b.sum();Cout<<"sum="<標(biāo)準(zhǔn)答案:(1)publicBase(2)Base::sum()(3)Denved::(4)Base(m1,m2)知識點(diǎn)解析:(1)主要考查考生對公有繼承的掌握情況,根據(jù)題目要求:派生類Derived從基類Base公有繼承,因此這里使用public來公有繼承。(2)主要考查考生對成員函數(shù)的掌握情況,根據(jù)題目對sum函數(shù)的要求:sum函數(shù)定義,要求返回mem1、mem2和mem3之和,因此這里直接調(diào)用基類的sum函數(shù),再加上mem3就滿足題目要求。(3)主要考查考生對構(gòu)造函數(shù)的掌握情況,由于Derived的構(gòu)造函數(shù)在類外定義,因此要加上類名和作用域符,即Derived::。(4)主要考查考生對構(gòu)造函數(shù)的掌握情況,因為Denved是Base類的派生類,所以其構(gòu)造函數(shù)要使用成員列表初始化先給Base初始化。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,該文件中定義了用于表示日期的類Date、表示人員的類Person和表示職員的類Staff;程序應(yīng)當(dāng)顯示:張小麗123456789012345但程序中有缺失部分,請按以下提示把缺失部分補(bǔ)充完整:(1)在“//**1******found****”的下方是析構(gòu)函數(shù)定義中的語句,它釋放兩個指針成員所指向的動態(tài)空間。(2)在“//**2******found****”的下方是rename函數(shù)中的一個語句,它使指針name指向申請到的足夠容納字符串new_name的空間。(3)在“//**3******found****”的下方是構(gòu)造函數(shù)定義的一個組成部分,其作用是利用參數(shù)表中前幾個參數(shù)對基類Person進(jìn)行初始化。注意:只在指定位置編寫適當(dāng)代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動“****found****”。填寫的內(nèi)容必須在一行中完成,否則評分將產(chǎn)生錯誤。//proj3.cpp#includeusingnamespacestd;ClassPerson{char*idcardno;//用動態(tài)空間存儲的身份證號char*name;//用動態(tài)空間存儲的姓名boolismale;//性別:true為男,false為女public:Person(constchar*pid,constchar*pname,boolpmale);~Person(){//**1*********found*******_____________;}constchar*getIDCardNO()const{returnidcardno;)constchar*getName()const{returnname;}voidrename(constchar*newname);boolisMale()const{returnis-male;}};classStaff:publicPerson{char*department;doublesalary;public:Staff(constchar*id_card_no,constchar*p_name,boolismale,constchar:Icdept,doublesal);~Staff(){delete[]department;)constchar*getDepartment()const{returndepartment;}voidsetDepartment(constchar*d);doublegetSalary()const{returnsalary;}voidsetSalary(doubleS){salary=s;}};Person::Pemson(constchar*idcardno,constchar*pname,boolismale):ismale(is_male){idcardno=newchar[strlen(idcardno)+1];strcpy(idcazdno,id_card_no);name=newchar[strlen(pname)+1];strcpy(name,p_name);}voidPerson::rename(constchar*new_name){delete[]name;//**1*********found*******____________;strcpy(name,new_name);}Staff::Staff(conStchar*idcardno,constchar*P_name,boolismale,//**3*********found*******constchar*dept,doublesal):{department=newchar[strlen(dept)+1];strcpy(department,dept);salary=sal;}voidStaff::setDepartment(constchar*dept){delete[]department;department=newchar[strlen(dept)+1];strcpy(department,dept);}intmain(){StaffZhangsan("123456789012345","張三",false,"人事部",1234.56);Zhangsan.rename("張小麗");cout<標(biāo)準(zhǔn)答案:(1)delete[]idcardno,name(2)name=newchar[strlen(new_name)+1](3)Person(id_eard_no,p_name,is_male)知識點(diǎn)解析:(1)主要考查考生對析構(gòu)函數(shù)的掌握,題目要求釋放兩個指針成員所指向的動態(tài)空間。釋放動態(tài)空間應(yīng)使用delete語句,因為要釋放兩個指針,使用語句:delete[]idcardno,name;實(shí)現(xiàn)。注意當(dāng)釋放多個指針時,中間用逗號隔開。(2)考查動態(tài)數(shù)組分配空間,題目要求指針name指向申請到的足夠容納字符串new_name的空間。使用strlen(new_name)得到字符串new_nanle的長度,但是這里要注意加1。(3)主要考查考生對派生類構(gòu)造函數(shù)的掌握,題目要求利用參數(shù)表中前幾個參數(shù)對基類Person進(jìn)行初始化。派生類的構(gòu)造函數(shù)要使用成員列表初始化法對基類初始化,因此為constchar*dept,doublesal):Person(id_card_no,p_name,is_male)。國家二級C++機(jī)試(操作題)模擬試卷第6套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,其中在編輯窗口內(nèi)顯示的主程序文件中定義有Xabe類和主函數(shù)main。在程序文本中位于每行”//ERROR**********found**********下面的一行有錯誤,請加以更正。更正后程序的輸出為:57注意:只允許修改每個”//ERROR**********found**********下面的一行語句,不允許改動程序中的其他任何內(nèi)容。#include<iostream>usingnamespacestd;classXabc{int*a;intn;public:xabc(intaa[],intnn):n(nn){a=newint[n];for(inti=0;i<n;i++)//ERROR*******found*******aa[i]=a[i];}intGetA(inti)const{returna[i];}intSumA(intn);~Xabc(){delete[]a;}};intXabc::SumA(intn){ints=0:for(intj=0;j<n;j++)s+=a[j];returns;}intmain(){inta[6]=={2,5,8,3,6,9};Xabcx(a,6);a[3]=19;intd=0;for(inti=0;i<6;i++)//ERROR*******found*******d+=x.a(chǎn)[i];//ERROR*******found*******intf=SumA(5);cout<<d+f<<endl;return0;}標(biāo)準(zhǔn)答案:(1)a[i]=aa[i];(2)d+=x.GetA(j);(3)intf=x.SumA(5);知識點(diǎn)解析:(1)Xabc的構(gòu)造函數(shù)需要使用形參aa為成員指針a賦值,函數(shù)體中,首先動態(tài)分配n個連續(xù)的整型變量的內(nèi)存空間,并將內(nèi)存空間的首地址賦給a,然后通過for循環(huán),使用數(shù)組aa為a的n個元素的賦值(2)x是類Xabc的對象,成員a在定義時沒有指定訪問標(biāo)號,默認(rèn)為private成員,所以這里不能通過x對象直接訪問a,應(yīng)該通過公有成員函數(shù)GetA()來訪問(3)SumA()函數(shù)是類Xabc的公有成員函數(shù),需要通過對象來引用,而不能直接引用二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,該工程中包含一個程序文件main.cpp,其中有類Quadritic、類Root及主函數(shù)main的定義。一個Quadritic對象表示一個ax2+bx+c的一元二次多項式。一個Root對象用于表示方程ax2+bx+c=0的一組根,它的數(shù)據(jù)成員num_of_roots有3種可能的值,即0、1和2,分別表示根的3種情況:無實(shí)根、有兩個相同的實(shí)根和有兩個不同的實(shí)根。請在程序中的橫線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為(注:輸出中的X^2表示x2):3X^2+4X+5=0.0無實(shí)根4.5X^2+6X+2=0.0有兩個相同的實(shí)根:-0.666667和-0.6666671.5X^2+2X-3=0.0有兩個不同的實(shí)根:0.896805和-2.23014注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****found****”。#include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;classRoot{//一元二次方程的根public:constdoublex1;//第一個根constdoublex2;//第二個根constintnum_of_roots;//不同根的數(shù)量:0、1或2//創(chuàng)建一個“無實(shí)根”的Root對象Root():x1(0.0),x2(0.0),num_of_rootS(0){}//創(chuàng)建一個“有兩個相同的實(shí)根”的Root對象Root(doubleroot)//*******found*******:_______{}//創(chuàng)建一個“有兩個不同的實(shí)根”的Root對象Root(doubleroot1,doubleroot2):x1(root1),x2(root2),mum_of_roots(2){}voidshow()const{//顯示根的信息cout<<"\t\t";switch(num_of_roots){case0:*******found*******case1:cout<<"有兩個相同的實(shí)根:"<<x1<<"和"<<x2;break;default:cout<<"有兩個不同的實(shí)根:"<<x1<<"和"<<x2;break;}}},classQuadratic{//二次多項式public:constdoublea,b,c;//分別表示二次項、一次項和常數(shù)項等3個系數(shù)Quadratic(doublea,doubleb,doublec)//構(gòu)造函數(shù)//*******found*******:_______{}Quadratic(Quadratic&x)//復(fù)制構(gòu)造函數(shù):a(x.a(chǎn)),b(x.b),c(x.c){)Quadraticadd(Quadraticx)const{//求兩個多項式的和returnQuadratic(a+x.a(chǎn),b+x.b,c+x.c);}Quadraticsub(Quadraticx)const{//求兩個多項式的差//*******found*******_______}doublevalue(doublex)const{//求二次多項式的值returna*x*x+b*x+c;}Rootroot()const{//求一元二次方程的根doubledelta=b*b-4*a*c;//計算判別式if(delta<0.0)returnRoot{};if(deita==0.0)returnRoot(-b/(2*a));doublesq=sqrt(delta);returnRoot((-b+sq)/(2*a),(-b-sq)/(2*a));}voidshow()const{//顯示多項式cout<<endl<<a<<"X^2"<<showpos<<b<<"X"<<C<<noshowpos;}voidshowFunction(){//顯示一元二次方程show();cout<<"=0.0";}};intmain()(Quadraticq1(3.0,4.0,5.0),q2(4.5,6.0,2.0),q3(q2.sub(q1));q1.showFunction();q1.root().show();q2.showFunction();q2.root().show();q3.showFunction();q3.root().show();cout<<endl;return0;}標(biāo)準(zhǔn)答案:(1)x1(root),x2(root),num_of_roots(1)(2)cout<<"無實(shí)根";break;(3)a(a),b(b),c(C)(4)returnQuadratic(a-x.a(chǎn),b-x.b,c-x.c);知識點(diǎn)解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握,題目要求創(chuàng)建一個“有兩個相同的實(shí)根”的Root對象。說明兩個根x1和x2相等,根的數(shù)量為1,因此可以得出語句:x1(root),x2(root),num_of_roots(1){}。(2)主要考查考生對switch語句的掌握,在語句switch(num_of_roots){中,num_of_roots代表根的數(shù)量,當(dāng)為0時,表示沒有根,因此輸出無實(shí)根,注意要在句尾加break。(3)主要考查考生對構(gòu)造函數(shù)的掌握,本題使用成員初始化列表來構(gòu)造函數(shù)。(4)主要考查考生對成員函數(shù)的掌握,題目要求求兩個多項式的差。兩個多項式的差就是各個次方的系數(shù)相減,因此得出語句:returnQuadratic(a-x.a(chǎn),b-x.b,c-x.c);。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,此工程中包含一個源程序文件proj3.cpp,補(bǔ)充編制C++程序proj3.cpp,其功能是讀取文本文件in.dat中的全部內(nèi)容,將文本存放到doc類的對象myDoc中。然后將myDoc中的字符序列反轉(zhuǎn),并輸出到文件out.dat中。文件in.dat的長度不大于1000字節(jié)。要求:補(bǔ)充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”兩行之間。實(shí)現(xiàn)將myDoc中的字符序列反轉(zhuǎn),并將反轉(zhuǎn)后的序列在屏幕上輸出。不得修改程序的其他部分。注意:程序最后已將結(jié)果輸出到文件out.dat中,輸出函數(shù)writeToFile已經(jīng)給出并且調(diào)用。//proj3.cpp#include<iostream>#include<fstream>#include<cstring>usingnamespacestd;ClassdoC{private:char*str;//文本字符串首地址intlength;//文本字符個數(shù)public://構(gòu)造函數(shù),讀取文件內(nèi)容,用于初始化新對象,filename是文件名字符串首地址doc(char*filename);voidreverse();//將字符序列反轉(zhuǎn)~doc();voidwriteToFile(char*filename);};doc::doc(char*filename){ifstreammyFile(filename);intlen=1001,tmp;str=newchar[len];length=0;while((tmp=myFile.get())!=EOF){str[length++]=tmp;}str[length]=’\0’;myFiie.close();}voiddoc::reverse(){//將數(shù)組str中的length個字符中的第一個字符與最后一個字符交換,第二個字符與倒數(shù)第二個//字符交換……//***********333***********//***********666***********}doc::~doc(){delete[]str;}voiddoc::writeToFile(char*filename){ofstreamoutFile(filename);outFile<<str;outFile.close();}voidmain(){docmyDoc("in.dat");myDoc.reverse();myDoc.writeToFile("out.dat");}標(biāo)準(zhǔn)答案:inti,j;//定義兩個整數(shù)臨時變量i.j.for(i=0,j=length-1;i<j;i++,j--){chartemp=str[i];//把Str[i]中的值保存在臨時變量tempstr[i]=str[j];//把Str[j]值賦給Str[i],實(shí)現(xiàn)字符前后替換str[j]=temp;//把保存在臨時變量temp中的值再賦值給Str[j]}知識點(diǎn)解析:題目要求將myDoc中的字符序列反轉(zhuǎn),在main函數(shù)中我們看到mvDoc是doc類,根據(jù)doc類的定義可以知道它是把讀取文件的字符串存到str動態(tài)數(shù)組中。reverse函數(shù)實(shí)現(xiàn)將數(shù)組str中的length個字符中的第一個字符與最后一個字符交換,第二個字符與倒數(shù)第二個字符交換,依次類推。使用變量i和j,分別表示第一個字符和最后一個字符的下標(biāo),定義temp作為中間變量進(jìn)行交換。國家二級C++機(jī)試(操作題)模擬試卷第7套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時有錯誤,請改正程序中的錯誤,使得程序運(yùn)行后沒有內(nèi)存遺漏??梢栽谛薷奶幵黾踊蛘邉h除一條語句。本程序完成輸入兩個字符串,分別存儲到s1,s2中。注意:不要改動main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯誤的語句在//******error********的下面。1#include<iostream.h>2voidmain()3{4char*s1;5chars2[1024];6cout<<’’pleaseinputastring:’’<<end1;7//********error********8cin.getlinne(s1,1024);9cout<<’’plesaeinputastring:’’<<end1;10cin.getline(s2,1024);11//********error********12deletes1;13//********error********14deletes2;15return,16}標(biāo)準(zhǔn)答案:(1)s1=newchar[1024];(2)delete[]s1;(3)刪除“deletes2;”語句知識點(diǎn)

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論