版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C++機試(操作題)模擬試卷45(共9套)(共25題)國家二級C++機試(操作題)模擬試卷第1套一、基本操作題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:計算形參x所指數(shù)組中N個數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),作為函數(shù)值返回,并將大于平均值的數(shù)放在形參y所指數(shù)組中,在主函數(shù)中輸出。例如,有10個正數(shù):46、30、32、40、6、17、45、15、48、26,其平均值為30.500000。主函數(shù)中輸出:4632404548。請在程序的中括號處填入正確的內(nèi)容并把中括號刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#1nclude#include#defineN10doublefun(doublex[],double*y){inti,j;doubleav;/*********found*********/av=【1】;/*********found*********/for(i=0;iav)y【3】=x[i];y[j]=一1;returnav;}main(){inti;doublex[N],y[N];for(i=0;i=0;i++)printf("%5.1f",y[i]);printf("\n");}標準答案:(1)0.0(2)x[i]/N(3)j++知識點解析:填空1:通過上面的程序可以看出此空考的是給變量賦初值,av代表的是平均值,因此av的初值應該是0.0。填空2:通過for循環(huán)可知,此空代表求平均值,因此應該填寫x[i]/N。填空3:先把大于平均值的數(shù)放在形參y所指數(shù)組中,然后使下標值加1,因此此空應該填j++。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:求出如下分數(shù)列的前n項之和。和值通過函數(shù)值返回main函數(shù)。例如,若n=5,則應輸出8.391667。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#include/*********found*********/fun(intn){inta,b,c,k;doubles;s=0.0;a=2;b=1;for(k=1;k<=n;k++){/*********found*********/s=s+(Double)a/b;c=a;a=a+b;b=c;}returns;}main(){intn=5;system("CLS");printf("\nThevalueoffunctionis:%lf\n",fun(n));}標準答案:(1)doublefun(intn)(2)s=s+(double)a/b;知識點解析:(1)由于返回值s是double型的,所以函數(shù)要定義為double型。(2)C語言規(guī)定所有關(guān)鍵字都必須用小寫英文字母表示,所以s=s+(I)ouble)a/b;應改為s=s+(double)a/b:。國家二級C++機試(操作題)模擬試卷第2套一、基本操作題(本題共1題,每題1.0分,共1分。)1、下列給定程序中,函數(shù)fun的功能是:將形參n所指變量中,各位上為偶數(shù)的數(shù)去掉,剩余的數(shù)按原來從高位到低位的順序組成一個新數(shù),并通過形參指針n傳回所指變量。例如,若輸入一個數(shù)27638496,則新數(shù)為739。請在程序的中括號處填入正確的內(nèi)容并將中括號刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includevoidfun(unsignedlong*n){unsignedlongx=0,i;intt;i=1;while(*n)/*********found*********/{t=*n%【1】;/*********found*********/if(t%2!=【2】){x=x+t*i;i=i*10;}*n=*n/10;}/*********found*********/*n=【3】;}main(){unsignedlongn=一1;while(n>99999999||n<0){printf("Pleaseinput(0<n<100000000):");scanf("%1d",&n);)fun(&n);printf("\nThesultis:%ld\n",n);}標準答案:(1)10(2)0(3)x知識點解析:填空1:通過t對10求余,取出該數(shù)值的各個位。填空2:通過if條件語句實現(xiàn)奇偶數(shù)的判定。如果條件表達式對2求余為0即為偶數(shù),反之則為奇數(shù)。填空3:最后將剩余的數(shù)賦給n所指向的元素。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:將十進制正整數(shù)m轉(zhuǎn)換成k(2≤k≤9)進制數(shù),并按位輸出。例如,若輸入8和2,則應輸出1000(即十進制數(shù)8轉(zhuǎn)換成二進制表示是1000)。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include/*********found*********/voidfun(intm,intk);{intaa[20],i;for(i=0;m;i++){/*********found*********/aa[i]=m/k;m/=k;}for(;i;i--)/*********found*********/printf("%d",aa[i]);}main(){intb,n;printf("\nPleaseenteranumbetandahase:\n");scanf("%d%d",&n,&b);fun(n,b);printf("\n");}標準答案:(1)voidfun(intm,intk)(2)aa[i]=m%k;(3)printf("%d",aa[i—1]);知識點解析:(1)函數(shù)定義的格式錯誤,不應帶有”;”。(2)將十進制正整數(shù)轉(zhuǎn)換為任意進制的數(shù)與十進制正整數(shù)轉(zhuǎn)換成二進制的數(shù)的方法是一樣的。從整數(shù)n澤出它的各位k進制數(shù)值,需采用除k取余的方法,即求n除k的余數(shù),得到它的k進制的個位數(shù),接著將n除以k。在n不等于0的狀況下循環(huán),能順序求出n的k進制的各個位上的數(shù)。(3)在進行for(i=0;m;i++)循環(huán)結(jié)束時,i已經(jīng)多加了一個1,所以這里要減去1。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、函數(shù)fun的功能是:將s所指字符串中下標為偶數(shù)同時ASCII值為奇數(shù)的字符刪除,s所指串中剩余的字符形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為”ABCDEFGl2345”,其中字符C的ASCII碼值為奇數(shù),在數(shù)組中的下標為偶數(shù),因此必須刪除;而字符1的ASCII碼值為奇數(shù),在數(shù)組中的下標為奇數(shù),因此不應當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應是”BDF12345”。注意:部分源程序在文件PROG1.C中。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:#include#includevoidfun(char*s,chart[]){}main(){chars[100],t[100];voidNONO();printf("knPleaseenterstringS:");scanf("%S",S);fun(s,t);printf("\nTheresultis:%s\n",t);NONO(),}voidNONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/chars[100],t[100];FILE*rf,*wf;inti;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%s",s);fun(s,t);fprintf(wf,"%s\n",t);}fclose(rf),fclose(wf);}標準答案:voidfun(char*s,chart[]){inti,j=0;for(i=0,i知識點解析:本題是從一個字符串按要求生成另一個新的字符串。我們使用for循環(huán)語句來解決這個問題。在賦值新的字符串之前,先對數(shù)組元素的下標和ASCII碼的值進行判斷,將滿足要求的元素賦給新的字符串。國家二級C++機試(操作題)模擬試卷第3套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,但該程序運行時有錯,請改正程序中的錯誤,使程序輸出的結(jié)果為:10注意:錯誤的語句在//******error******的下面,修改該語句即可。#include<iostream.h>structstruct{union{inta;charc[4];};intb;//******error******}voidmain(){Structm://******error******m.c[0]=0;m.c[1]=0;m.c[2]=0;//******error******m.c[3]=1;m.b=m.c[3];cout<<m.a(chǎn)<<endl<<m.b<<endl;}標準答案:(1)};(2)m.c[0]=1;(3)m.c[3]=0;知識點解析:(1)第1表示在結(jié)構(gòu)體定義內(nèi),結(jié)構(gòu)體定義的一般形式為:struct<結(jié)構(gòu)體名>{<成員列表>}<變量名列表>;這里定義的結(jié)構(gòu)體并沒有變量名列表,但是結(jié)構(gòu)體定義一定是以“;”結(jié)束的,因此第1個標識下應改為“}”。(2)根據(jù)題目要求程序輸出結(jié)果分別為“1”和“0”,即結(jié)構(gòu)體變量m的成員變量a的值為1,b的值為0,又a和字符數(shù)組c[4]存放在同一段內(nèi)存單元.中,因此a的值可由數(shù)組c[4]決定(兩者使用同一地址單元),故c[0]表示a的低8位,c[1]為a的第二個8位,c[2]為a的第三個8位,c[3]為a的最高8位,a=0,所以c[0]=1,c[1]=c[21=c[3]=0,故第2個標識下應改為“m.c[0]=1;”。(3)由(2)分析可知第3個標識下應改為“m.c[3]=0;”。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,補充空出的代碼。函數(shù)convert(char*des,char*str,charc,char*str2)的功能是:如果str中包含字符“!”,則替換成’a’;如果str中包含字符“&”,則替換成’b’;如果str中包含字符“*”,則替換成str2。并用函數(shù)返回目標轉(zhuǎn)換后的指針。注意:只能補充函數(shù)convert(char*des*char*str,char*str2).#include<iostream.h>#include<cstring>#defineMAXLEN1024voidconvert(char*des,char*Str,char*str2){}voidmain(){chardest[MAXLEN];char*str="!&cefghi*!&";char*str2="jklm";convert(dest,str,str2);cout<<dest<<endl;return;}標準答案:des[0]=0;chartemp[2]={0,0};for(inti=0;str[i]!=NULL;i++){if(str[i]==’!’){temp[0]=’a’;//替換成’a’strcat(des,temp);}elseif(str[i]==’&’){temp[0]=’b’;strcat(des,temp);//替換成’b’}elseif(str[i]==’*’){strcat(des,str2);//替換成str2}else{temp[0]=str[i];strcat(des,temp);//其他情況則添加在后面}}知識點解析:(1)由審題分析可知,利用循環(huán)中不斷檢索str字符串每一個字符,循環(huán)變量i從0開始,直到到了str字符結(jié)束,即srt[i]==NULL為循環(huán)判斷結(jié)束條件。(2)在循環(huán)體內(nèi),用ifelse語句判斷是不是“!”、“&”或“*”這些特定的字符,如果是這些特定的字符則進行相應的替換,如果不是則將該字符直接加在des后面。(3)字符串的連接可以使用字符串連接函數(shù)strcat(),將新字符連接在des后面,即strcat(des.temp)。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。完成以下功能:(1)定義私有常量PI,請在注釋//********1********后添加適當?shù)恼Z句。(2)完成類的私有常量PI的賦值,以及完成對半徑radius的賦值。請在注釋//********2********后添加適當?shù)恼Z句。(3)完成計算圓面積的函數(shù)GetArea()。請在注釋//********3********后添加適當?shù)恼Z句。(4)完成計算圓周長的函數(shù)GetGinh()。請在注釋//********4********后添加適當?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#include<iostream.h>#defineCONST_PI3.141592classCCircle{private:doubleradius;//********1********public://********2********CCircle(intradius)(this->radius=radius;}doubleGetArea(){//********3********}doubleGetGirth(){//********4********}voidSetRadius(intm){radius=m;}};intmain(){CCirclecircle(5);cout<<circle.GetArea()<<endl;cout<<circle.GetGirth()<<endl;circle.SetRadius(10);cout<<Circle.GetArea()<<endl;cout<<circle.GetGirth()<<endl;return0;}標準答案:(1)添加語句:constdoublePI;(2)將“CCircle(intradius)”補充完整為:CCircle(intradius):PI(CONSTPI)(3)添加語句:returnradius*radius*PI;(4)添加語句:return2*radius*PI;知識點解析:(1)第1個標識下定義私有常量PI,常數(shù)據(jù)成員是使用const說明的數(shù)據(jù)成員,因此第1個標識下應添加“constdoublePI;”。(2)常數(shù)據(jù)成員的初始化只能通過構(gòu)造函數(shù)的成員初始化列表進行,構(gòu)造函數(shù)CCircle(intradius)應對常數(shù)據(jù)成員PI進行初始化,第2個標識下應改為“CCircle(intradius):PI(CONST_PI)”。(3)第3個標識下返回圓面積值,圓面積為半徑平方與PI的乘積值,即第3標識下應添加“returnradius*radius*PI;”。(4)第4個標識下返回周長,即第4表示下應添加“return2*radius*PI:”。國家二級C++機試(操作題)模擬試卷第4套一、基本操作題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:將形參s所指字符串中的數(shù)字字符轉(zhuǎn)換成對應的數(shù)值,計算出這些數(shù)值的累加和作為函數(shù)值返回。例如,形參S所指的字符串為abs5defl26jkm8,程序執(zhí)行后的輸出結(jié)果為22。請在程序的中括號處填入正確的內(nèi)容并把中括號刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#includeintfun(char*s){intsum=0;while(*s){/*********found*********/if(isdigit(*s))sum+=*s—【1】;/*********found*********/【2】;}/*********found*********/return【3】;}main(){chars[81];intn;printf("\nEnterastring:\n\n");gets(s);n=fun(s);printf("\nTheresultis:%d\n\n",n);}標準答案:(1)48或’0’(2)s++(3)sum知識點解析:本題是把字符串中是數(shù)字字符轉(zhuǎn)換成對應的數(shù)值并進行累加。填空1:’0’字符對應的ASCII碼值是48,因此數(shù)字字符轉(zhuǎn)換成對應數(shù)值時只要減去48,即是該數(shù)字字符對應的數(shù)值,所以應填48或者’0’。填空2:判斷完一個字符之后,將字符串指針移到下一個位置,所以應填s++。填空3:返回累加和sum,所以應填sum。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、給定程序MODll.c中,函數(shù)fun()的功能是統(tǒng)計S所指一維數(shù)組中0的個數(shù)(存在變量zero中)和l的個數(shù)(存在變量orle中),并輸出結(jié)果。請改正函數(shù)fun中指定部位的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#includevoidfun(int*s,intn){/*********found*********/inti,one=0,zero;for(i=0;i標準答案:(1)inti,one=0,zero=0;(2)switch(s[i])(3)case0:zero++;break;知識點解析:(1)變量zero用來統(tǒng)計數(shù)字0的個數(shù),應將其初始化為0。(2)語法錯誤,switch語句后不加分號。(3)當數(shù)字為0時,變量zero加1,此時應使用break語句跳出switch語句,進行下一次循環(huán),否則會繼續(xù)執(zhí)行case1語句,使程序不能得出正確結(jié)果。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的個位和百位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上。例如,當a=45,b=12時,調(diào)用該函數(shù)后,c=1524。注意:部分源程序給出如下。數(shù)據(jù)文件IN.DAT中的數(shù)據(jù)不得修改。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:#include#includevoidfun(inta,intb,long*c){}main(){inta,b;longc;printf("Inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&C);printf("Theresultis:%1d\n",c);}標準答案:voidfun(inta,intb,long*c){/*b%10獲取b的個位,a/10獲取a的十位,a%10獲取a的個位,b/10獲取b的十位*/*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;}知識點解析:本題主要的問題是如何取出a和b的個位數(shù)和十位數(shù),取出后如何表示成c中相應的位數(shù)。由于a和b都是只有兩位的整數(shù),所以分別對它們除以10可得到它們的十位數(shù),分別用10對它們求余可得到它們的個位數(shù)。得到后對應乘以1000、100、10、1即可得到c的千位數(shù)、百位數(shù)、十位數(shù)和個位數(shù)。注意使用c時要進行指針運算。國家二級C++機試(操作題)模擬試卷第5套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,但該程序運行時有錯,請改正程序中的錯誤,使程序輸出的結(jié)果為:i=5i=10i=15i=20注意:錯誤的∥********error********語句在的下面,修改該語句即可。#includeclassCMyClass{public:templatevoidfunc(Tx,Ty){∥********error********Ti=0;if(x>=i){i=i+x;}else{i=i+y;}cout<<”i=”<標準答案:(1)staticTi=0;(2)t.func((char)68,(char)1);(3)t.func((int)i,1);知識點解析:(I)在主函數(shù)內(nèi)定義了類CMyClass對象t,第一次調(diào)用ftmc0函數(shù)傳入整型參數(shù)5和0,此時T表示整型(int),5>0,此時i和X的和為5,故屏幕輸出i的值為i=5;第二次調(diào)用func()函數(shù),傳入?yún)?shù)為char型數(shù)據(jù),此時T表示字符型(char),chari=0,68>0,故i為68,屏幕輸出ASCII碼為68的字符,即i=D;第三次調(diào)用func()函數(shù),傳入整型數(shù)據(jù)10和1,此時T表示整型(int),輸出為i=15,顯然如果i為一般的局部變量,輸出應該是i=10(10>0,i=10+0=10),這里i記憶了第一次調(diào)用func0函數(shù)后的值0=5,10>5,10+5=15),故i為靜態(tài)變量,因此第1個標識下應改為“staticTi=0:”。(2)func0函數(shù)兩個參數(shù)類型一致,從輸出結(jié)果看,第二次調(diào)用func0傳入的參數(shù)均是char型的,故第2個標識下應改為“t.func((char)68,(char)1);”,(char)68和(char)1含義是做強制類型轉(zhuǎn)換,將整型轉(zhuǎn)換成char型。(3)第3個標識下傳入?yún)?shù)1為整型,局部變量i為float型,由輸出結(jié)果可知,第四次調(diào)用func0函數(shù)也改變了靜態(tài)變量i(staticinti)的值,故傳入的參數(shù)均為整型,因第3個標識下的局部變量i(float型)也要強制類型轉(zhuǎn)換,故第3個標識下應改為“t.func((int)i,1);”。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。請完成函數(shù)fun(char*s),該函數(shù)完成以下功能:(1)把S中的大寫字母轉(zhuǎn)換成小寫字母,把其中的小寫字母轉(zhuǎn)換成大寫字母。并且在函數(shù)中調(diào)用寫函數(shù)WriteFile()將結(jié)果輸出到modi2.txt文件中。例如:s=”helloTEST”,則結(jié)果為:s=”HELLOtest”(2)完成函數(shù)WriteFile(char*s),把字符串輸入文件中。提示:打開文件使用的第二參數(shù)為ios_base::binarylios—base::app。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include<10Stream>#include#includeusingnamespacestdvoidWriteFile(char*s){}voidfun(char*S){}voidClearFile(){ofstreamoutl;outl.open(”modi2.txt”)outl.Close()j}intmain(){ClearFile()charS[1024]cout<<”pleaseinputastring:<標準答案:(1)voidWriteFile(char*s)中的命令語句:ofStreamoutl;outl.open(”modi2.txt”,iosbase::binaryIlos—base::app);//打開文件modi2outl<=‘A’&&s[i]<=‘Z’)//2果是大寫字符,轉(zhuǎn)換為小寫字符{S[i]=s[i]一‘A’+‘a(chǎn)’;//‘s[i]一’A’+’a’等于字符s[i]+32-}Elseif(s[i]>=‘a(chǎn)’&&s[i]<=’z’)//如果是小寫字符,轉(zhuǎn)換為大寫字符{s[i]=s[i]一’a’+’A’;//’s[i]一’a’+’A’-等于字符s[i]-32}}writeFile(s);知識點解析:(1)本題要求實現(xiàn)兩個函數(shù)的功能,其中WriteFile(char*s)實現(xiàn)把字符串輸入到文件中;fun(char*s)函數(shù)實現(xiàn)大寫字母轉(zhuǎn)換成小寫字母,把其中的小寫字母轉(zhuǎn)換成大寫字母。其中大小寫字母之間的ASCII碼差為32。(2)從已給部分源程序的main主函數(shù)開始入手,首先實現(xiàn)WriteFile函數(shù),然后再實現(xiàn)fun函數(shù),并在其中調(diào)用WriteFile函數(shù)。解題思路(1)在WriteFile(char*s)函數(shù)中,利用標準流ofstream實現(xiàn)字符串寫入文件modi2.txt。(2)在fun函數(shù)中,利用for循環(huán)逐個判斷字符是大寫還是小寫。(3)如果是大寫,那么加上32實現(xiàn)大寫轉(zhuǎn)換為小寫。否則,就減去32,實現(xiàn)小寫到大寫的轉(zhuǎn)換。最后調(diào)用前面實現(xiàn)的WriteFile函數(shù),將字符串寫入文件。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、用VC6打開考生文件夾下的源程序文件modi.3.cpp。其中定義的類并不完整,按照要求完成下列操作,將類的定義補充完整。在屏幕和程序modi3.txt文件中輸出以下結(jié)果:HelloTest出現(xiàn)異常情況其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整:(1)以追加的方式打開文件modi3.txt,請在注釋∥********1********后添加適當?shù)恼Z句。(2)定義一個類對象S,請在注釋∥********2********后添加適當?shù)恼Z句。注意:僅在函數(shù)指定位置添加語句,請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容。#include<~ostream.h>#includeusingrlamespacestd;voidWr:i.t:eP~le(char*x){ofstreamout:1;∥********1********out:1.open(“modi3.txt”,);out:1<國家二級C++機試(操作題)模擬試卷第6套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,此工程中含有一個源程序文件proj1.cpp。其中位于每個注釋“//ERROR****found****”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結(jié)果為:Thisobjectisno.1注意:只修改注釋“//ERROR****found****”的下一行語句,不要改動程序中的其他內(nèi)容。//proj1.cpp#include<iostream>usingnamespacestd;classMyClasS{public:MyClass():count(0){cout<<"Thisobjectis";}//ERROR*******found*******voidInc()const{cout<<"no."<<++count<<endl;}private://ERROR*******found*******intcount=0;};intmain(){NyClass*obj=newNyClass;//ERROR*******found********obj.Inc();return0;}標準答案:(1)voidInc()(2)intcount;(3)obj->Inc();知識點解析:(1)考查考生對const,的掌握,在Inc函數(shù)的函數(shù)體{cout<<"no."<<++count<<endl;}中,有語句++count,將使私有成員count的值發(fā)生改變,因此該函數(shù)不能使用const修飾。(2)考查私有成員,在定義類時,私有成員只能聲明不能初始化。(3)主要考查考生對類的指針的掌握,指針調(diào)用類的成員函數(shù)時要使用標識符“->”,而不能使用“.”。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,其中有類Point(“點”)、Rectangle(“矩形”)和Circle(“圓”)的定義。在程序所使用的平面坐標系統(tǒng)中,x軸的正方向是水平向右的,Y軸的正方向是豎直向下的。請在橫線處填寫適當?shù)拇a并刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結(jié)果應該是:--圓形----------圓心=(3,2)半徑=1面積=3.14159--外切矩形------左上角=(2,1)右下角=(4,3)面積=4注意:只能在橫線處填寫適當?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****found****”。#include<ioStream>#include<cmath>usingnamespacestd;//平面坐標中的點//本題坐標系統(tǒng)中,x軸的正方向水平向右,y軸的正方向豎直向下。classPoint{public:Point(doublex=0.0,doubley=0.0):x_(x),y_(y){}doublegetX()const{returnx;}doublegetY()const{returny;}voidsetX(doublex){x_=x;}voidsetY(doubley){y_=y;)private:doublex_;//x坐標doubley_;//y坐標};classRectanqle(public:Rectangle(Pointp,intW,inth):point(P),width(W),height(h){}doubleaEea()const//矩形面積{returnwidth*height;}PointtopLeft()const//左上角頂點{returnpoint;)PointbottomRight()const//右下角頂點(注:y軸正方向豎直向下){//*******found*******returnPoint(_______);}private:Pointpoint;//左上角頂點doublewidth;//水平邊長度doubleheight;//垂直邊長度};//圓形classCirole{public:Circle(Pointp,doubler):center(p),radius(r){}RectangleboundingBox()conSt;//外切矩形doublearea()const//圓形面積{//*******found*******returnPI*_______;}public:staticconstdoublePI;//圓周率private:Pointcenter;//圓心doubleradius;//半徑};constdoubleCircle::PI=3.14159;RectangleCircle::boundingBOx()const{//*******found*******Pointpt(_______);intw,h;//*******found*******w=h=_______;returnRectangle(pt,w,h);)intmain(){Pointp(3,2);Circlec(p,1);cout<<"--圓形--------\n";cout<<"圓心=("<<P.getX()<<’,’<<p.getY()<<")\n";cout<<"半徑="<<1<<endl;cout<<"面積="<<c.a(chǎn)rea()<<endl<<endl;Rectanglebb=c.boundingBox();Pointt1=bb.topLeft();Pointbr=bb.bottomRight();cout<<"--外切矩形---------\n";cout<<"左上角=("<<t1.getX()<<’,’<<t1.getY()<<")\n";cout<<"右下角=("<<br.getX()<<’,’<<br.getY()<<")\n";cout<<"面積="<<bb.a(chǎn)rea()<<endl;return0;}標準答案:(1)point.getX()+width,point.getY()+height(2)radius*radius(3)center.getX()-radius,center.getY()-radius(4)2*radius知識點解析:(1)主要考查考生對成員函數(shù)的掌握,程序要求返回右下角頂點,該點的x坐標為左上角頂點的x坐標加上width,該點的y坐標為左上角頂點Y坐標加上height,即returnPoint(point.getX()+width,point.getY()+height);。(2)主要考查考生對成員函數(shù)的掌握,程序要求計算圓形面積,也就是返回圓面積,即returnPI*radius*radius;。(3)主要考查考生對成員函數(shù)的掌握,首先看函數(shù)聲明:RectangleCircle::boundingBox()const,可知該函數(shù)要返回的是一個Rectangle類型,即要返回的是圓的外切矩形。再看Rectangle類的構(gòu)造函數(shù)Rectangle(Pointp,intw,inth),由此可知,空格處要定義的點pt為左上角點,即Pointpt(center.getX()-radius,center.getY()-radius);。(4)由函數(shù)聲明和Rectangle類的構(gòu)造函數(shù)可知,w和h應該為直徑,即w=h=2*radius;。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,此工程包含一個源程序文件proj3.cpp,其中定義了用于表示二維向量的類MyVector;程序應當顯示(6,8)。但程序中有缺失部分,請按照以下提示,把缺失部分補充完整:(1)在“//**1******found****”的下方是構(gòu)造函數(shù)的定義,它用參數(shù)提供的坐標對x和y進行初始化。(2)在“//**2******found****”的下方是減法運算符函數(shù)定義中的一條語句。兩個二維向量相減生成另一個二維向量:其X坐標等于兩向量X坐標之差,其Y坐標等于兩向量Y坐標之差。(3)在“//**3******found****”的下方,語句的功能是使變量v3獲得新值,它等于向量v1與向量v2之和。注意:只在指定位置編寫適當代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動“****found****”。//proj3.cpp#include<iostream>usingstd::ostream;usingstd::cout;usingstd::endl;classMyVector{//表示二維向量的類doublex;//X坐標值doubley;//Y坐標值public:MyVector(doublei=0.0,doublej=0.0);//構(gòu)造函數(shù)MyVectoroperator+(MyVectorj);//重載運算符+friendMyVectoroperator-(MyVectori,MyVectorj);//童載運算符-friendostream&operator<<(ostream&os,MyVectorv);//重載運算符<<};//**1*********found*******_______(doublei,doublej);x(i),y(j){}MyvectorMyvector::operator+(MyVectorj){returnMyVector(x+j.x,y+j.y);}MyVectoroperator-(MyVectori,MyVectorj){//**2*********found*******returnMyVector(_______);}ostream&operator<<(ostream&os,MyVectorv){os<<’(’<<v.x<<’,’<<v.y<<’)’;//輸出向量v的坐標returnos;}intmain(){MyVectorv1(2,3),v2(4,5),v3;//**3*********found*******v3=_______;cout<<v3<<endl;return0;}標準答案:(1)MyVector::MyVector(2)i.x-j.x,i.y-j.y(3)v1+v2知識點解析:(1)主要考查的是構(gòu)造函數(shù),在類外定義構(gòu)造函數(shù)時要使用類名和作用域,即MyVector::MyVector。(2)主要考查重載運算符“-”的返回語句,返回值應為向量i和j的差,即MyVector(i.xj.x,i.y-j.y);。(3)主要考查重載運算符“+”的使用,由題目可知v3是v1和v2的和,前面我們已經(jīng)重新定義了運算符“+”,所以在這里直接使用語句v3=v1+v2;即可。國家二級C++機試(操作題)模擬試卷第7套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請使用VC6或使用【答題】菜單打開考生文件夾pmjl下的工程pmjl,該工程中包含程序文件main.cpp,其中有類Foo和主函數(shù)main的定義。程序中位于每個“//ERROR木****found****”之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應該是:X=aY=42注意:只修改每個“//ERROR*********found**********”下的那一行,不要改動程序中的其他內(nèi)容。#includeusingnamespacestd;classFoo{public:Foo(charx){x=x;)chargetX()consL{returnx一;)public:stat;iCintV;private:charx;};//ERROR**********found**********intFoo.Y一=42;intmain(intargo,char*argv[]){//ERROR**********found***********Foof;//ERROR**********found***********couL<<“X=”<標準答案:(1)intFoo::y一=42;(2)F00f(‘a(chǎn)’);(3)cout<<“X=”<知識點解析:本題考查的是Foo類,其中涉及構(gòu)造函數(shù)、const函數(shù)和靜態(tài)成員。給類的靜態(tài)成員賦值時要加上類名和作用域符號,與類的成員函數(shù)一樣,類的私有成員不能被類外函數(shù)調(diào)用?!窘忸}思路】(1)主要考查考生對靜態(tài)成員的掌握,因為靜態(tài)整型變量y一是Foo類的公有成員,所以給y一賦值時要加上“Foo::”,即intFoo::y一=42;。(2)主要考查考生對構(gòu)造函數(shù)的掌握,題目要求程序輸出:X=aY=42可以知道,在給Foo類的f聲明時要同時初始化為字符a,即語句Foof(‘a(chǎn)’);。(3)主要考查考生對成員函數(shù)的掌握,因為x是類Foo的私有成員,所以不能在main函數(shù)中直接調(diào)用,要通過公有成員函數(shù)getX()調(diào)用?!窘忸}寶典】類的靜態(tài)成員和類的成員函數(shù)一樣,賦值時要加上類名和作用域符號,要注意通過觀察題目對程序輸出結(jié)果的要求,來給類賦初始值。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請使用VCAi或使用【答題】菜單打開考生文件夾proj2下的工程proj2。其中有類Point(“點”)、lleetangle(“矩形”)和Circle(“圓”)的定義。在程序所使用的平面坐標系統(tǒng)中,x軸的正方向是水平向右的,y軸的正方向是豎直向下的。請在橫線處填寫適當?shù)拇a并刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結(jié)果應該是:一一圓形…………圓心=(3,2)半徑=1面積=3.14159一一外切矩形一一左上角=(2,1)右下角=(4,3)面積=4注意:只能在橫線處填寫適當?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//**********found**********”。#include#includeusingrlal’tlespacest:d;//平面坐標中的點//本題坐標系統(tǒng)中,x軸的正方向水平向右,y軸的正方向豎直向下。ClaSsPoint:{public:Point:(doublex=0.0,doubley=0.0):X一(x),y一(y){}doublegetX()const{returnxj}doublegeY()const{returny一;)voidset;X(doubleX){x=x;)voidsetY(doubley){y一。y;)private:doublex;//x坐標doubley;//y坐標};//矩形classRectangle{public:Rectangle(PointP,intW,inth):point(p),width(w),height(h){}dopblearea()const.//矩形面積{returnwidth*height;}PointtopLeft()const//左上角頂點{returnpoint;}PointbottomRight()const//右下角頌點(注:y軸正方向豎直向下),{//**********found**********returnPoint(_________);}private:Pointpoint;//左上角頂點doublewidth;//水平邊長度doubleheight;//垂直邊長度};//圓形classCircle{public:Circle(PointP,doubler):center(p),radius(r){}RectangleboundingB0x()const,//外切矩形doublearea()const//圓形面積{//**********found***********returnPI*__________;}public:staticconstdoublePI;//圓周率private:Pointcenter;//圓心doubleradius;//半徑};constdoubleCircle::PI=3.14159;RectangleCircle::boundingBox()const{//**********found***********Pointpt(_________);intW,h;//**********found**********W=h=__________;returnRectangle(pt,W,h);}}intmain(){PointP(3,2);CircleC(p,1);cout<<“--圓形一一\n”;cout<<--圓心=(“<標準答案:(1)l~oint.getX()+width,point.getY()+height(2)radius*:radius(3一)center.getX()一radius,center.getY。()一radius(4)2*radius知識點解析:本題考查Point類、Rectangle類和Circle類,其中涉及構(gòu)造函數(shù)、const函數(shù)和靜態(tài)成員。【解題思路】(1)主要考查考生對成員函數(shù)的掌握,程序要求返回右下角頂點,該點的x坐標為左上角頂點的x坐標加上width,該點的y坐標為左上角頂點y坐標加上height,即retumPoint(point.getX()+width,point.getY()+height);。(2)主要考查考生對成員函數(shù)的掌握,程序要求計算圓形面積,也就是返回圓面積,即returnP1*radius*radius;。(3)主要考查考生對成員函數(shù)的掌握,首先看函數(shù)聲明:RectangleCircle::boundingBox()const,可知該函數(shù)要返回的是一個Rectangle類型,即要返回的是圓的外切矩形。再看Rectangle類的構(gòu)造函數(shù)Rectangle(Pointp,intw,inth),由此可知,空格處要定義的點pt為左上角點,即Pointpt(cen-ter.getX()一radius,center.getY()一radius);。(4)由函數(shù)聲明和Rectangle類的構(gòu)造函數(shù)可知,w和h應該為直徑,即w=h=2*radius;。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、請使用VC6或使用【答題】菜單打開考生文件夾pmj3下的工程proj3,其中定義了MyString類,一個用于表示字符串的類。成員函數(shù)reverse的功能是將字符串進行“反轉(zhuǎn)”。例如,將字符串ABCDEF“反轉(zhuǎn)”后,得到字符串FEDCBA;將字符串ABCDEFG“反轉(zhuǎn)”后,得到字符串GFEDCBA。請編寫成員函數(shù)reverse。在main函數(shù)中給出了一組測試數(shù)據(jù),此時程序運行中應顯示:讀取輸入文件…一反轉(zhuǎn)前一STR1=ABCDEFSTR2=ABCDEFG一反轉(zhuǎn)后一STRl=FEDCBASTR2=GFEDCBA要求:補充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中,輸出函數(shù)WriteToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//mgsering.h#include#includeusingnamespacestd;classMyStrincj{public:MyString(constchar*S){sir=newchar[strlen(S)+1];strcpy(str,s);}一NyString(){clelete,[]st:r;}voidEeveEse();friendostream&operator<<(ostream&os,constNyStr~ng&mystr){OS<voidNyString::Eeverse(){//**********333**********//**********666**********}intmain(){charinname[128],pathname[80];strcpy(pathname,“”);sprintf(inname,“in.dat”,pathname);cout<<"讀取輸入文件…\n\n”;ifstreaminfile(inname);if(infile.fail()){ceEr<<“打開輸入文件失敗!”;exit(1);}charbur[4096];infile.getline(buf,4096);NyStringstrl(“ABCDEF”),str2(“ABCDEFG”),str3(bur);cout<<“________反轉(zhuǎn)前…\n”;tout<<“STR1=”<標準答案:Int⊥ength=str⊥en(str);//把字符串str的長度賦值給lenthfor(inti=0,j=length一1;i知識點解析:主要考查MyString類,其中涉及動態(tài)數(shù)組、構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)和友元函數(shù)。本題要把動態(tài)數(shù)組中的字符串反轉(zhuǎn)過來,用兩個變量i和j來代表要調(diào)換的元素的下標,再通過中間變量temp進行交換即可?!窘忸}思路】主要考查考生對動態(tài)數(shù)組的掌握,先看題目要求:成員函數(shù)reverse的功能是將字符串進行“反轉(zhuǎn)”。再由類的定義可知,字符串存放在動態(tài)數(shù)組str中,由strlen函數(shù)得出字符串的長度,最后一個字符的下標為length一1,第一個字符的下標為0,將這兩個字符交換,然后j依次減1同時i依次加1,繼續(xù)交換,直到i大于j時停止循環(huán)即可。國家二級C++機試(操作題)模擬試卷第8套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,其中在編輯窗口內(nèi)顯示的主程序文件中定義有類AAA和主函數(shù)main。程序文本中位于每行“//ERROR****found****”下面的一行有錯誤,請加以改正。改正后程序的輸出結(jié)果應該是:****found****”下面的一行有錯誤,請加以改正。改正后程序的輸出結(jié)果應該是:sum=60注意:只修改每個“//ERROR****found****”下面的一行,不要改動程序中的其他任何內(nèi)容。#include<iostream>usingnamespacestd;classAAA{inta[10];intn;//ERROR*******found*******private:AAA(intaa[],intnn):n(nn){//ERROR*******found*******for(inti=0,i<n,i++)aa[i]=a[i];}intGeta(inti){returna[i];}};intmain(){inta[6]={2,5,8,10,15,20};AAAx(a,6};intsum=0;//ERROR*******found*******for(inti=0;i<6;i++)sum+=x.a(chǎn)[i];cout<<"sum="<<sum<<end1;return0;}標準答案:(1)public:(2)for(inti=0;i<n;i++)a[i]=aa[i];(3)for(inti=0;i<6;i++)sum+=x.Geta(i);知識點解析:暫無解析二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中含有一個源程序文件proj2.cpp。其中定義了類Set和用于測試該類的主函數(shù)main。類Set是一個用于描述字符集合的類,在該字符集合中,元素不能重復(將“a”和“A”視為不同元素),元素最大個數(shù)為100。為該類實現(xiàn)一個構(gòu)造函數(shù)Set(char*s),它用一個字符串來構(gòu)造一個集合對象,當字符串中出現(xiàn)重復字符時,只放入一個字符。此外,還要為該類實現(xiàn)另一個成員函數(shù)InSet(charc),用于測試一個字符c是否在一個集合中,若在,則返回true;否則返回false。構(gòu)造函數(shù)Set和成員函數(shù)InSet的部分實現(xiàn)代碼已在文件proj2.cpp中給出,請在標有注釋“//TODO:”的行中添加適當?shù)拇a,將這兩個函數(shù)補充完整,以實現(xiàn)其功能。提示:在實現(xiàn)構(gòu)造函數(shù)時,可以調(diào)用InSet函數(shù)來判斷一個字符是否已經(jīng)在集合中。注意:只在指定位置編寫適當代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****found****”//proj2.cpp#include<iostram>usingnamespacestd;constintMAXNUM=100;classset{private:intnum;//元素個數(shù)charsetdata[NAXNUN];//字符數(shù)組,用于存儲集合元素public:Set(char*s);//構(gòu)造函數(shù),用字符串s構(gòu)造一個集合對象boolInSet(charc);//判斷一個字符c是否在集合中,若在,返回true,否則返回falsevoidPrint()const;//輸出集合中所有元素},Set∷Set(char*s){num=0;while(*s){//**********found**********if(_______)//TODO:添加代碼,測試元素在集合中不存在//**********found**********_______;//TODO:添加一條語句,加入元素至集合中s++;}}boolSet∷InSet(charc){for(inti=0;i<num;i++)//*********found*********if(_______)//TODO:添加代碼,測試元素C是否與集合中某元素相同//**********found**********_______;//TODO:添加一條語句,進行相應處理returnfalse;}voidSet∷Print()const{cout<<"Setelements:"<<end1;for(inti=0;i<num;i++)cout<<setdata[i]<<";cout<<end1;}intmain(){chars[MAXNUM];cin.getline(s,MAXNUM-1);//從標準輸入中讀入一行Setsetobj(s);//構(gòu)造對象setobjsetobj.Print();//顯示對象setobj中內(nèi)容return0;}標準答案:(1)!InSet(*s)(2)setdata[num++]=*s(3)e==setdata[i](4)returntrue知識點解析:(1)主要考查考生對成員函數(shù)的掌握,題目要求:添加代碼,測試元素在集合中不存在,由類的定義可知函數(shù)boolInSet(charC)可以測試字符c是否在集合中,因此這里直接調(diào)用函數(shù)boolInSet(charc)即可。(2)題目要求:添加一條語句,加入元素至集合中,集合用數(shù)組setdata表示,直接把元素添加到數(shù)組中即可。(3)主要考查考生對if語句的掌握,題目要求:測試元素c是否與集合中某元素相同。前一條語句是個for循環(huán),利用下標i遍歷整個集合,通過if語句中的判斷條件判斷c是否在集合中,用“==”判斷。(4)主要考查考生對成員函數(shù)的掌握,先看函數(shù)的注釋:判斷一個字符C是否在集合中,若在,返回true,否則返回false。if語句成立時,說明字符c存在于集合中,因此應該返回true。三、綜合應用題(本題共1題,每題1.0分,共1分。)3、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中聲明了MiniComplex是一個用于表示復數(shù)的類。請編寫這個operator+運算符函數(shù),以實現(xiàn)復數(shù)的求和運算。兩個復數(shù)的和是指這樣一個復數(shù):其實部等于兩個復數(shù)的實部之和,其虛部等于兩個復數(shù)的虛部之和。例如,(23+34i)+(56+35i)等于(79+69i)。要求:補充編制的內(nèi)容寫在“//********333********”與“//********666********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//Minicomplex.h#include<iostream>usingnamespacestd;classMiniComplex//復數(shù)類{public://重載流插入和提取運算符friendostream&operator<<(ostream&osObject,constMiniComplex&complex){osObject<<"("<<complex.realPart<<"+"<<complex.imagPart<<"i"<<")";returnosObject;}friendistream&operator>>(istream&isObject,MiniComplex&complex){charch;isObject>>complex.realPart>>ch>>complex.imagPart>>ch;returnisObject;}MiniComplex(doublereal=0,doubleimag=0);//構(gòu)造函數(shù)MiniComplexoperator+(constMiniComplex&otherComplex)const;//重載運算符+private:doublerealPart;//存儲實部變量doubleimagPart;//存儲虛部變量};voidwriteToFile(char*);//main.cpp#include"MiniComplex.h"MiniComplex∷MiniComplex(doublereal,doubleimag){realPart=real;imagPart=imag;}MiniComplexMiniComplex∷operator+(constMiniComplex&otherComplex)const}//********333********//********666********}intmain(){voidwriteToFile(char*);MiniComplexnuml(23,34),num2(56,35);cout<<"InitialValueofNuml="<<num1<<"\nInitialValueofNum2="<<num2<<end1;cout<<num1<<"+"<<num2<<"="<<num1+num2<<end1;//使用重栽的加號運算符writeToFile("");return0;}標準答案:MiniComplexsum;//定義復數(shù)對象sumsum.imagPart=this->imagPart+otherComplex.imagPart;//把this中的虛部(this->imagPart)和othercomplex虛部相加賦值給Sum虛部sum.realPart=this->realPart+otherComplex.realPart;//把this中的實部(this->reapart)加上othercomplex實部賦值給Sum實部returnsum;//返回對象Sum知識點解析:主要考查考生對運算符重載的掌握,題目要求編寫operater+運算符函數(shù),以實現(xiàn)復數(shù)的求和與運算。復數(shù)的和的實部等于兩個復數(shù)的實部之和,虛部等于兩個復數(shù)的虛部之和。函數(shù)要返回的類型是MiniComplex,因此要先定義一個MiniComplex類型變量sum,然后對它們的實部和虛部各自求和,返回sum即可。國家二級C++機試(操作題)模擬試卷第9套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,其中有線段類Line的定義。程序中位于每個“//ERROR****found****”之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應該是:Endpoint1=(1,8),Endpoint2=(5,2),length=7.2111。注意:只修改每個“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。#include<iostream>#include<cmath>usingnamespacestd;classLine;doublelength(Line);classLine(//線段類doub2ex1,y1;//線段端點1doublex2,y2;//線段端點2public://ERROR*******found*******Line(doublex1,doubley1,doublex2,doubley2)const{this->x1=x1;this->y1=y1;this->x2=x2;this->y2=y2:}doublegetX1()const{returnx1;}doublegetY1()const{returny1;}doublegetX2()const{returnx2;}doublegetY2()const{returny2;}VOidshow()const{cout<<"Endpoint1=("<<x1<<","<<y1;cout<<"),Endpoint2=("<<x2<<","<<y2;//ERROR*******found*******cout<<"),length="<<length(this)<<"。"<<endl;}};doublelength(Line1){//ERROR*******found*******returnsqrt((1.x1-1.x2)*(1.x1-1.x2)+(1.y1-1.y2)*(1.y1-1.y2));}intmain(){Liner1(1.0,8.0,5.0,2.0);r1.show();return0;}標準答案:(1)Line(doublex1,doubley1,doublex2,doubley2){(2)cout<<"),length="<<length(*this)<<"。"<<endl;(3)returnsqrt((1.getX1()-1.getX2())*(1.getX1()-1.getX2())+(1.getY1()-1.getY2())*(1.getY1()-1.getY2()));知識點解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握,構(gòu)造函數(shù)要給私有成員賦初始值,因此不能使用const來限制。(2)主要考查考生對this指針的掌握,由函數(shù)length的聲明doublelength(Line);可知,length函數(shù)的形參是Line類,在voidshow()const函數(shù)里,this指針指向的是當前Line類,因此可以用*this表示當前Line類。(3)主要考查考生對成員函數(shù)的掌握,length函數(shù)是類外函數(shù),不能直接調(diào)用類的私有成員,因此要通過成員函數(shù)取得對應的值。二、簡單應用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,該工程中包含一個程序文件main.cpp,其中有類AutoMobile(“汽車”)及其派生類Car(“小轎車”)、Truck(“卡車”)的定義,還有主函數(shù)main的定義。請在橫線處填
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理知識之健康教育
- 保險客戶經(jīng)理制度
- 企業(yè)消防包保制度
- 交通過道制度
- 嚴格落實雙報告制度
- 2026年玉溪市生態(tài)環(huán)境局華寧分局編外辦公輔助(內(nèi)勤相關(guān))人員公開招聘備考題庫完整參考答案詳解
- 護理健康科普營養(yǎng)
- 2025至2030中國智能網(wǎng)聯(lián)汽車數(shù)據(jù)合規(guī)治理法律框架及企業(yè)應對策略研究報告
- 遠程醫(yī)療與用藥護理
- 東莞市公安局水上分局麻涌水上派出所2025年第1批警務(wù)輔助人員招聘備考題庫及1套完整答案詳解
- 頸椎間盤突出癥的治療和護理講課件
- 大學之道故事解讀
- 外立面改造項目腳手架施工專項方案
- 2023年全國職業(yè)院校技能大賽-生產(chǎn)事故應急救援賽項規(guī)程
- 廣東省建筑工程混凝土結(jié)構(gòu)抗震性能設(shè)計規(guī)程
- 切削液回收及處理合同模板
- 2023年移動綜合網(wǎng)絡(luò)資源管理系統(tǒng)技術(shù)規(guī)范功能分冊
- 幼兒園大班班本課程-邂逅水墨課件
- 計算機輔助翻譯智慧樹知到期末考試答案章節(jié)答案2024年西華大學
- HGT 2520-2023 工業(yè)亞磷酸 (正式版)
- 閻良現(xiàn)代設(shè)施花卉產(chǎn)業(yè)園規(guī)劃設(shè)計方案
評論
0/150
提交評論