




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級C++機(jī)試(操作題)模擬試卷5(共9套)(共27題)國家二級C++機(jī)試(操作題)模擬試卷第1套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,該工程中包含程序文件main.cpp,其中有類Clock(“時(shí)鐘”)的定義和主函數(shù)main的定義。程序中位于每個(gè)“//ERROR****found****”之后的一行語句有錯(cuò)誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:Initialtimesare0d:0h:0m:59sAfteronesecondtimesare0d:0h:1m:0S注意:只修改每個(gè)“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。#include<iostream>usingnamespacestd;classClock{public:Clock(unsignedlongi=0);voidset(unsignedlongi=0);voidprint()const;voidtick();//時(shí)間前進(jìn)一秒Clockoperator++();private:unsignedlongtotal_sec,seconds,fminutes,hours,days;};Clock::Clock(unsignedlongi):totalsec(i),seconds(i%60),minutes((i/60)%60),hours((i/3600)%24),days(i/86400){}voidClock::set(unsignedlongi){totalsec=i;seconds=i%60;minutes=(i/60)%60;hours=(i/3600)%60;days=i/86400;}//ERROR*******found*******voidClock::print(){cout<<days<<"d:"<<hours<<"h:"<<minutes<<"m:"<<seconds<<"s"<<endl;}voidClock::tick(){//ERROR*******found*******set(total_sec++);}ClockClock::operator++(){tick();//ERROR*******found*******returnthis;}intmain(){Clockck(59);tout<<"Initialtimesare"<<endl;ck.print();++ck;tout<<"AfterOnesecondtimesare"<<endl;ck.print();return0;}標(biāo)準(zhǔn)答案:(1)voidClock::print()const(2)set(++total_see);(3)return*this;知識點(diǎn)解析:(1)主要考查考生對成員函數(shù)的掌握,由Clock類中對函數(shù)print的聲明voidprint()const;可知,在定義print函數(shù)時(shí)少了const。(2)主要考查考生對++操作的掌握,根據(jù)函數(shù)要求,時(shí)間要先前進(jìn)一秒,再調(diào)用函數(shù)set,因此total_sec++應(yīng)改為++total_sec.(3)主要考查考生對this指針的掌握,函數(shù)要求返回值Clock,即返回一個(gè)類,而不是指針,因此使用*this。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,此工程包含一個(gè)源程序文件proj2.cpp。其中定義了Score類。Score是一個(gè)用于管理考試成績的類。其中,數(shù)據(jù)成員_s指向存儲成績的數(shù)組,_n表示成績的個(gè)數(shù);成員函數(shù)Sort使用冒泡排序法將全部成績按升序進(jìn)行排列。請?jiān)诔绦蛑械臋M線處填寫適當(dāng)?shù)拇a,然后刪除橫線,以實(shí)現(xiàn)Score類的成員函數(shù)Sort。注意:只在指定位置編寫適當(dāng)代碼,不要改動程序中的其他內(nèi)容,也不要?jiǎng)h除或移動“//****found****”。//proj2.cpp#include<iostream>#include<cstdlib>#include<ctime>usingnamespacestd;classscore{public:Score(double*s,intn):_s(s),_n(n){}doubleGetScore(inti)COBst{return_s[i];}voidsort();private:double*_s;int_n;};voidScore::Sort(){//********found********for(inti=0;i<_n-1;_______)//********found********for(intj=_______;j>i;j--)if(_s[j]<_s[j-1]){//交換_s[j]和_s[j-1]doublet=_s[j];//********found********_______;//********found********_______;}}intmain(){conStintNUN=10;doubles[NUN];stand(time(0));for(inti=0;i<NUN;i++)s[i]=double(rand())/RANDMAX*100;Scoress(s,NUM);ss.Sort();for(intj=0;j<NUM;j++)cout<<ss.GetScore(j)<<endl;return0;}標(biāo)準(zhǔn)答案:(1)i++(2)_n-1(3)_s[j]=_s[j-1](4)_s[j-1]=t知識點(diǎn)解析:(1)主要考查for循環(huán)語句,從題目要求可知循環(huán)變量i要從0到_n-2,因此i要遞增操作,即i++。(2)主要考查考生對冒泡排序的掌握,這里要求從后往前掃描,比較相鄰兩個(gè)元素,若后者小則交換,因此在這里下標(biāo)j要從最后開始,即int_i=_n-1。(3)考查交換算法,在if語句中_s[j]<_s[j-1]滿足條件,則實(shí)現(xiàn)交換。因?yàn)橐呀?jīng)把_s[j]的值賦給了中間變量t,所以這里要把_s[j-1]的值賦給_s[j],即_s[j]=_s[j-1];。(4)考查交換算法,這里只需把中間變量t中的值賦給_s[j-1]即可。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,其中聲明的DataList類,是一個(gè)用于表示數(shù)據(jù)表的類。sort成員函數(shù)的功能是將當(dāng)前數(shù)據(jù)表中的元素升序排列。請編寫這個(gè)sort函數(shù)。程序的正確輸出應(yīng)為:排序前:7,1,3,11,6,9,12,10,8,4,5,2排序后:1,2,3,4,5,6,7,8,9,10,11,12要求:補(bǔ)充編制的內(nèi)容寫在“//********333********”與“//********666********”兩行之間。不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序調(diào)用。//DataList.h#include<iostream>usingnamespacestd;classDataList{//數(shù)據(jù)表類intlen;double*d;public:DataList(intlen,doubledata[]=NULL);~DataList(){delete[]d;}intlength()const{returnlen;}//數(shù)據(jù)表長度(即數(shù)據(jù)元素的個(gè)數(shù))doublegetElement(inti)const{returnd[i];}voidsort();//數(shù)據(jù)表排序voidshow()const;//顯示數(shù)據(jù)表};voidwriteToFile(char*,constDataList&);//main.cpp#include"DataList.h"DataList::DataList(intlen,doubledata[]):len(len){d=newdouble[len];for(inti=0;i<len;i++)d[i]=(data==NULL?0.0:data[i]);}voidDataList::sort(){//數(shù)據(jù)表排序//********333********//********666********}voidDataList::show()const{//顯示數(shù)據(jù)表for(inti=0;i<len-1;i++)tout<<d[i]<<",";tout<<d[len-1]<<endl;}intmain(){doubles[]={7,1,3,11,6,9,12,10,8,4,5,2};DataListlist(12,s);cout<<"排序前:";list.show();liSt.sort();cout<<endl<<"排序后:";list.show();writeToFile("",liSt);return0;}標(biāo)準(zhǔn)答案:for(inti=0;1<len;++i)//從頭遍歷數(shù)組dfor(intj=i;j<len;++j)//從i+1處遍歷數(shù)組dif(d[i]>d[j])//d[i]和d[j]比較人,如果大于,就d[i]和d[j]值交換{inttemp=d[i];//把臨時(shí)整型變量temp賦值為d[i]d[i]=d[j];//把d[j]賦值給d[i]d[j]=temp;//把temp值賦給d[j]}知識點(diǎn)解析:本題使用最簡單的冒泡排序算法,首先明確要排序的動態(tài)數(shù)組d,其長度為len,在此可以使用兩個(gè)下標(biāo)i和j相比較,當(dāng)d[i]>d[j]時(shí),數(shù)組內(nèi)的值利用中間變量temp進(jìn)行交換。國家二級C++機(jī)試(操作題)模擬試卷第2套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,該工程中包含程序文件main.epp,其中有類Door(“門”)和主函數(shù)main的定義。程序中位于每個(gè)“//ERROR****found****”之后的一行語句有錯(cuò)誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:打開503號門…門是鎖著的,打不開。打開503號門的鎖…鎖開了。打開503號門…門打開了。打開503號門…門是開著的,無須再開門。鎖上503號門…先關(guān)門…門鎖上了。注意:只修改每個(gè)“//ERROR********found********”下的那一行,不要改動程序中的其他內(nèi)容。1#include2usingnamespacestd;3classDoor{4intnum;//門號5boolclosed;//true表示門關(guān)著6boollocked;//true表示門鎖著7public:8Door(intnum){9//ERROR********found********10num=this->num;11closed:10cked:true;12}13boolisClosed()const{returnclosed;}14//門關(guān)著時(shí)返回true,否則返回false15boolisOpened()const{return!ciosed;}16//門開著時(shí)返回true,否則返回false17boolisLocked()const{returnlocked;}18//門鎖著時(shí)返回true,否則返回false19boolisUnlocked()const{return!locked;}20//門未鎖時(shí)返回true,否則返回false21voidopen(){//開門22cout<標(biāo)準(zhǔn)答案:(1)this->num=num:(2)if(!closed)(3)voidlock(){知識點(diǎn)解析:(1)主要考查考生對this指針的掌握,在構(gòu)造函數(shù)中this指針指向的是當(dāng)前類,因此要給num賦值使用語句this->num=num;完成。(2)主要考查考生對if語句的掌握,先看類的私有成員中關(guān)于closed的定義:boolclosed;//true表示門關(guān)著。再看下一條語句:cout<<"門是開著的,無須再開門。";。即滿足條件時(shí)就會輸出:門是開著的,無須再開門。岡此if括號內(nèi)應(yīng)該是!closed。(3)主要考查考生對const函數(shù)的掌握,lock函數(shù)體中存在語句locked=true,即有參數(shù)發(fā)生改變,因此不能用const。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,此工程中含有一個(gè)源程序文件proj2.cpp。函數(shù)char*GetNum(char*src,ehar*buf)從src開始掃描下一個(gè)數(shù)字字符序列,并將其作為一個(gè)字符串取出放人字符串空間buf中。函數(shù)返回掃描的終止位置,如果返回NULL表示沒有掃描到數(shù)字字符序列。運(yùn)行程序時(shí),如果輸入的一行字符序列是ABC012XYZ378MN274WS則輸出為:Digitstring1is012Digitstring2is378Digitstring3is274注意:只在橫線處編寫適當(dāng)代碼,不要?jiǎng)h除或移動“//****found****”。1//proj2.cpp2#include3usingnamespacestd;4char*GetNum(char*src,char*buf)5{6while(*src!=’\0’)7{8if(isdigit(*sre))break;9src++;10}11if(*src=:’\0’)12//********found********13_______;14while(*sre!=’\0’&&isdigit(*sre))15{16//********found********17_______;18buf++;19src++;20}21*buf=’\0’;22returnsrc;23}24intmain()25{26charstr[100],digits[20];27cin.getline(str,100);28char*p=str;29inti=1;30while((P=GetNum(p,digits))t=NULL)31{32cout<<"Digitstring"<標(biāo)準(zhǔn)答案:(1)returnNULL(2)*buf=*src(3)i++知識點(diǎn)解析:(1)主要考查考生對if語句的掌握,由判斷條件if(*src==’\0’),說明字符串src為空,則返回NULL即可。(2)主要考查考生對while循環(huán)語句的掌握,while語句的循環(huán)條件為*src!=’\0’&&isdigit(*src),該條件是指,若字符串src不為空并且水src指向的字符為數(shù)字字符,則進(jìn)行循環(huán)。題目要求把數(shù)字字符放入字符串buf中,因此為*buf=*src。(3)主要考查考生對while循環(huán)語句的掌握,從上一行語句cout<<"Digitstring"<三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中定義的Matrix是一個(gè)用于表示矩陣的類。成員函數(shù)max_value的功能是求出所有矩陣元素中的最大值。例如,若有3×3矩陣則調(diào)用max_value函數(shù),返回值為3。請編寫成員函數(shù)max_value。要求:補(bǔ)充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。1//Matrix.h2#include3#include4usingnamespacestd;5constintM=18;6constintN=18;7classMatrix{8intarray[M][N];9public:10Matrix(){)11intgetElement(inti,intj)const{returnarray[i][j];}12voidsetElement(inti,intj,intvalue){array[i][j]:value;}13intmaxvalue()const;14voidshow(constchar*s)const15{16cout<45voidreadFromFile(constchar*f,Matrix&m){6ifstreaminfile(f);7if(infile.fail()){cerr<<"打開輸入文件失敗!";return;}8intk;9for(inti=0;i>k;12m.setElement(i,j,k);13}14}15intMatrix::max_value()const16{17//********333********1819//********666********20}21intmain()22{23Matrixm;24readFromFile("",m);25m.show("Matrix:");26cout<標(biāo)準(zhǔn)答案:1inttemp=0;//定義整數(shù)變量temp,并賦值為零2for(inti=0;i知識點(diǎn)解析:主要考查考生對二維數(shù)組的掌握,題目要求成員函數(shù)max_value的功能是求出所有矩陣元素中的最大值。因此只要逐個(gè)元素比較即可,下標(biāo)i和j作為矩陣行和列的標(biāo)記,使用雙層for循環(huán)來遍歷數(shù)組中的所有元素。國家二級C++機(jī)試(操作題)模擬試卷第3套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.epp,該程序運(yùn)行時(shí)有錯(cuò),請改正其中的錯(cuò)誤,使程序正常運(yùn)行,輸出的結(jié)果為:Constructor,i=0,Destructor注意:錯(cuò)誤的語句在//********error********的下面,修改該語句即可。1#include2classcobj3i4inti;5public:6CObj();7voiddisplay();8-CObj();9};10//********error********11cobj:cobj()12{13cout<<"Constructor"<<",";14i=0;15}16//********error********17cobj:display()18i19cout<<"i="<標(biāo)準(zhǔn)答案:(1)CObj::CObj()(2)VOidCObj::display()(3)CObj::~CObj()知識點(diǎn)解析:程序當(dāng)中定義了類CObj,成員為int型變量i,display函數(shù)、構(gòu)造函數(shù)和析構(gòu)函數(shù),在構(gòu)造函數(shù)中顯示“Constructor”,display函數(shù)顯示成員i的值,析構(gòu)函數(shù)顯示“Destructor”,因此程序運(yùn)行結(jié)果就是定義對象,隱式調(diào)用構(gòu)造函數(shù),然后調(diào)用display()函數(shù)顯示i的值,最后清除對象時(shí)調(diào)用析構(gòu)函數(shù)。[解題思路](1)在類的外部定義成員函數(shù)時(shí),必須在成員函數(shù)前面加上類名和作用域運(yùn)算符(::),作用域運(yùn)算符用來表示某個(gè)成員屬于哪個(gè)類,使用格式為:<類名>::<成員函數(shù)>(<參數(shù)函數(shù)>),因此第1個(gè)標(biāo)識下應(yīng)改為CObj::CObj(),默認(rèn)構(gòu)造函數(shù)沒有參數(shù)。(2)第2個(gè)標(biāo)識下“CObj:display()”,從其后的語句看,這是在類外實(shí)現(xiàn)CObi函數(shù),因此也有作用域運(yùn)算符使用錯(cuò)誤問題,display()函數(shù)返回值為void,因此第2個(gè)標(biāo)識下應(yīng)改為voidCObj::display()。(3)第3個(gè)標(biāo)識下“CObj:CObj()”,顯然這里是在類外實(shí)現(xiàn)析構(gòu)函數(shù),析構(gòu)函數(shù)是一個(gè)特殊的函數(shù),它的名字和類名相同,并在前面加“~”字符,用來與構(gòu)造函數(shù)加以區(qū)別,因此第3個(gè)標(biāo)識下應(yīng)改為CObj::~CObj()。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼。函數(shù)show()的功能是將1、2、3、4四個(gè)數(shù)字,組成互不相同且無重復(fù)數(shù)字的四位數(shù),并將這些數(shù)輸出到屏幕,輸出的內(nèi)容如下:123412431324134214231432213421432314234124132431312431423214324134123421412341324213423l43124321將函數(shù)show()補(bǔ)充完整。注意:請勿改動主函數(shù)。1#include2voidshow()3{45}6intmain()7{8show();9return0;10}標(biāo)準(zhǔn)答案:1for(inti=I;i<5;i++)2for(intJ=l;j<5;J++)3for(int1=l;1<5;1++)4for(intk=1;k<5;k++)5{6if(i!=j&&J!=k&&i!=k&&i!=l&&J!=l&&k!=1)//條件判斷7cout<知識點(diǎn)解析:函數(shù)show()的功能是將1、2、3、4四個(gè)數(shù)字組成互不相同且無重復(fù)數(shù)字的四位數(shù),并打印在屏幕上,可用循環(huán)來查找符合條件的四位數(shù),用每一層循環(huán)的循環(huán)變量表示4位數(shù)當(dāng)中的一個(gè)數(shù),因此需4重循環(huán),在最內(nèi)層循環(huán)判斷是否滿足條件,滿足條件則輸出。[解題思路](1)四重循環(huán)變量分別為i、i、1和k,分別從1變化至4,分別表示四位數(shù)的第一、第二、第三和第四位數(shù)。(2)在最內(nèi)層循環(huán)內(nèi),如果i、j、k和1互不相同則i、j、k和1表示的四位數(shù)互不相同,把i、j、k和1打印在屏幕上。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開源程序文件modi3.cpp。其中類TestClass用于把文件輸出到屏幕,然后進(jìn)行文件的分割。分割的方法如下:第一個(gè)文件的大小是文件的前一半,另外一個(gè)文件的大小是剩余部分。此程序?qū)nt.tXt文件中的內(nèi)容輸出到屏幕,并且將文件按照以上方式分割,存于文件outl.txt和out2.txt中。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)從輸入文件中獲得一個(gè)字符,并判斷是否到文件結(jié)尾,如果到文件結(jié)尾,則退出循環(huán)。請?jiān)谧⑨專?*******1********后添加適當(dāng)?shù)恼Z句。(2)把獲得的輸入文件的內(nèi)容存儲到buf中,并且用len記錄下文件的長度。請?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z句。(3)將輸入文件的后一半內(nèi)容存儲在第二個(gè)文件中,請?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z句。(4)使用文件流對象打開輸入文件in.txt,請?jiān)谧⑨專?*******4********后添加適當(dāng)?shù)恼Z句。注意:僅在函數(shù)指定位置添加語句,請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容。1#include2#include3#include4classTestClass5{6public:7TestClassfchar*fileName)8{9len=0,10fstreaminfile;11infile.open(fileName,ios::in);12charch;13//********1********14while()15{16cout<標(biāo)準(zhǔn)答案:(1)將“while()”完整為:while(infile.get(ch))(2)添加語句:buf[len++]=ch;(3)添加語句:OUtfile2<知識點(diǎn)解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從已給定源程序的main主函數(shù)開始入手,可以看出程序通過調(diào)用類TestClass及其成員函數(shù)實(shí)現(xiàn)各種輸出操作。[解題思路](1)題目1要求“從輸入文件中獲得一個(gè)字符,并判斷是否到文件結(jié)尾”。程序中的“while()”循環(huán)判斷語句中缺少從文件中獲得的字符,所以這里補(bǔ)全while循環(huán)判斷條件,即“while(infile.get(ch))”。(2)題目2要求“把獲得的輸入文件的內(nèi)容存儲到buf中,并且用len記錄下文件的長度。”所以為buf分配空間,即“buf[len++]=ch;”。(3)題目3要求“將輸入文件的后一半內(nèi)容存儲在第二個(gè)文件中?!痹贑++中,用流插入運(yùn)算符為“<<”,所將buf中存放的數(shù)據(jù)存入文件outfile2,以根據(jù)題干中的要求,即這里補(bǔ)全“outfile2<國家二級C++機(jī)試(操作題)模擬試卷第4套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò),請改正其中的錯(cuò)誤,使程序正確運(yùn)行,并且使程序輸出的結(jié)果為:30130注意:錯(cuò)誤的語句在∥********error********的下面,修改該語句即可。#includeinta=10;classCObj{public:CObj(){a=b=0;}voiddisplay(){∥********error********cout<標(biāo)準(zhǔn)答案:(1)cout<a+=a;(3)a+=::a;知識點(diǎn)解析:程序當(dāng)中定義了全局變量a和類CObj,類CObj含有成員變量a和b,類CObj的變量a和全局變量a均為整型變量,名字完全一樣,使用時(shí)需要注意區(qū)分。類CObj成員函數(shù)display()打印變量a和b的值,func(inta)函數(shù)和func20均使類成員變量a增加,但是增加方式不同。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部分的程序。實(shí)現(xiàn)函數(shù)sort(intA[],intn),用冒泡法將數(shù)組排序。提示:所謂冒泡法,就是每次把相鄰的兩個(gè)數(shù)交換,較大的數(shù)交換到后面。這樣下標(biāo)從0到n-1的數(shù)與其后面相鄰的數(shù)交換,可以把最大的數(shù)交換到數(shù)組的末端。進(jìn)行n次下標(biāo)從0到n-1的交換,則數(shù)組則會變成有序的,而且是由大到小的順序。注意:不能修改程序的其他部分,并且不能刪除其他的部分,也不能修改程序的結(jié)構(gòu)。#include#defineN10voidsort(intA[N],intn){}intmain(){intA[N]={5,7,4,6,i0,13,78,一4,9,20);Sort(A,10);for(inti=0;i標(biāo)準(zhǔn)答案:intitj,k,t;for(i=0;i知識點(diǎn)解析:函數(shù)sort(intA[],intn)用冒泡排序法把數(shù)組進(jìn)行從大到小的排序,冒泡法排序利用了求數(shù)組中最小值及其位置的算法,首先從n個(gè)數(shù)中找出最大值,放在第一個(gè)元素位置上,再從剩下的n-1個(gè)數(shù)中找出最大值,放在第二個(gè)元素位置上,這樣不斷重復(fù)下去,直到剩下最后一個(gè)數(shù)。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp,其中定義了用于表示日期的類Date,但類Date的定義并不完整。請按要求完成下列操作,將類Date的定義補(bǔ)充完成。(1)定義私有數(shù)據(jù)成員year、month和day,分別用于表示年、月和日,它們都是int型的數(shù)據(jù)。請?jiān)谧⑨尅?******1*******之后添加適當(dāng)?shù)恼Z句。(2)完成默認(rèn)構(gòu)造函數(shù)Date的定義,使Date對象的默認(rèn)值為:year=1,month=1,day=1,請?jiān)谧⑨尅?******2*******之后添加適當(dāng)?shù)恼Z句。(3)完成重載構(gòu)造函數(shù)Date(inty,intm,intd)的定義,把數(shù)據(jù)成員year、month和day分別初始化為參數(shù)y、m和d的值,請?jiān)谧⑨尅?******3*******之后添加適當(dāng)?shù)恼Z句。(4)完成成員函數(shù)print()的類外定義,使其以“年一月一日”的格式將Date對象的值輸出到屏幕上,例如:2008-8-8。請?jiān)谧⑨尅?******4*******之后添加適當(dāng)?shù)恼Z句。注意:僅在函數(shù)指定位置添加語句,請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容。#includeclassDate{public:∥*******2*******Date(inty,intm,intd){∥*******3*******}voidprint()const;private:∥datamember∥*******1*******};voidDate::print()const{∥*******4*******}intmain(){Datenational_day(1949,i0,1);national_day.print();return0;}標(biāo)準(zhǔn)答案:(1)添加語句:intyear,month,day;(2)添加語句:Date()(year=1;month=1;day=1;}(3)添加語句:year=y;month=m;day=d;(4)添加語句:cout<知識點(diǎn)解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從已給定源程序的main主函數(shù)開始入l手,可以看出程序通過調(diào)用類Date和函數(shù)print實(shí)現(xiàn)各種輸出操作。國家二級C++機(jī)試(操作題)模擬試卷第5套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,但該程序運(yùn)行有問題,請改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果是:112233445566778899注意:不要改動main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在∥********error********的下面。1#include2#include3voidmein(){4inta[3][3]_{{1,2,3),{4,5,6),{7,8,9));5int*P,i;6∥********error********7P=a;8for(i=0;i<9;i++){9cout<標(biāo)準(zhǔn)答案:(1)P=&a[0][0];(2)cout<知識點(diǎn)解析:從已給定源程序的main主函數(shù)開始入手,可以看出程序是通過數(shù)組與指針兩種方法輸出數(shù)組值。解題思路(1)打開modil.cpp,調(diào)試程序,顯示錯(cuò)誤提示為第一標(biāo)識下“modil.cpp(7):errorC2440:’=’:cannotconvertfrom’int[3][3]’to’int*”,a為二維數(shù)組型變量,將其值賦值給P,應(yīng)該是P指向數(shù)組a的起始位置,即“P=&a[0][0];”。(2)程序中第2個(gè)標(biāo)識下的“cout<二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部分程序,使該程序輸出倒9×9口訣。程序分析:分行與列考慮,共9行9列,設(shè)置兩個(gè)變量i和j,i控制行,j控制列。程序運(yùn)行結(jié)果如下:1-9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=811*8=82.8=163*8=244*8=325*8=406*8=487*8=568*8=641*7=72*7=143*7=214*7=285*7=356*7=427*7=491*662*6=123*6=184*6=245*6=306*6=361*5=52*5=103*5=154*5=205*5=251*4=42*4=83*4=124*4=161*3=32*3=63*3=91*2=22*2=41*1=l注意:只能補(bǔ)充函數(shù)show(),請勿改動其他部分的內(nèi)容。#includevoidshow(){}voidmain(){cout<<”9*9倒乘法口訣I-<標(biāo)準(zhǔn)答案:for(int1=9;1>0;1一一){for(intj=1;j<=i;j++){cout<知識點(diǎn)解析:(1)由審題分析可知,可利用兩重循環(huán)來實(shí)現(xiàn)輸出倒9×9口訣,設(shè)置兩個(gè)循環(huán)變量,外層循環(huán)變量i從9開始變化至1,循環(huán)9次,代表乘號后面的數(shù)字。(2)內(nèi)部循環(huán)變量i從1變化到i,代表乘號前面的數(shù)字,輸出一行,.j<=i,這樣保證輸出的是倒9×9口訣。在內(nèi)層循環(huán)體內(nèi),利用cout輸出J的值、“*”、i的值、“=”和i*i值,即輸出乘法公式。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp,其中定義了類baseA、priAl和priA2,其中priAl類由baseA類公有派生,priA2類由priAl類公有派生。上述三個(gè)類的定義并不完整,請按要求完成下列操作,將程序補(bǔ)充完整。程序輸出結(jié)果如下:1051057(1)定義類baseA的構(gòu)造函數(shù),該構(gòu)造函數(shù)有一個(gè)整型的參數(shù)m,在構(gòu)造函數(shù)中請將m賦值給數(shù)據(jù)成員a。請?jiān)谧⑨尅啊?*******1********”之后添加適當(dāng)?shù)恼Z句。(2)定義類priA1的構(gòu)造函數(shù),該構(gòu)造函數(shù)有兩個(gè)整型的參數(shù)m和11,在構(gòu)造函數(shù)中請將m賦值給數(shù)據(jù)成員b,將n作為基類baseA構(gòu)造函數(shù)的參數(shù)值傳入。請?jiān)谧⑨尅啊?*******2********”之后添加適當(dāng)?shù)恼Z句。(3)定義類priA2的構(gòu)造函數(shù),該構(gòu)造函數(shù)有三個(gè)整型的參數(shù)m,n和k,在構(gòu)造函數(shù)中請將m賦值給數(shù)據(jù)成員c,將n和k分別賦值給基類priAl構(gòu)造函數(shù)的參數(shù)m和n。請?jiān)谧⑨尅啊?*******3********”之后添加適當(dāng)?shù)恼Z句。(4)完成類priA2的成員函數(shù)show的定義,該函數(shù)調(diào)用基類成員函數(shù),輸出基類私有成員a和b及類priA2自身的數(shù)據(jù)成員C的值,上述三個(gè)值在輸出時(shí)以空格隔開。請?jiān)谧⑨尅啊?*******4********”之后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#lnclude<10Stream.h>C1assbaseA{inta;public:∥********1********intgeta(){returna;}};classpriAl:publicbaseA{intb;public:∥********2********intgetb(){returnb;}};classpriA2:publicpriAl{intC;public:∥********3********voidshow(){∥********4********}};voidmain(){priA2a(7,5,10);cout<標(biāo)準(zhǔn)答案:(1)添加語句:baseA(intm){a=m;}(2)添加語句:priAl(intm,intn):baseA(n){b=m;}(3)添加語句:priA2(intm,intn,intk):priAl(n,k){c=m,)(4)添加語句:cout<知識點(diǎn)解析:(1)根據(jù)題目1要示,構(gòu)造函數(shù)函數(shù)名和類名一致,顯然baseA構(gòu)造函數(shù)名為baseA(),在baseA()中通過參數(shù)m完成對成員變量a的賦值,因此構(gòu)造函數(shù)名為baseA(intm),在函數(shù)內(nèi)部對成員a賦值,故第1個(gè)標(biāo)識下應(yīng)添加“baseA(intm){a=m;)”。(2)根據(jù)題目2要示,構(gòu)造函數(shù)形式為priAl(intm,intn),m賦值給priAl類成員b,將n作為基類baseA構(gòu)造函數(shù)的參數(shù)值傳入,故第2個(gè)標(biāo)識下應(yīng)添加“priAl(hatm,hatn):baseA(n){b=m;)”。(3)根據(jù)題目3要示,函數(shù)形式為priA2(intm,intn,intk1,在構(gòu)造函數(shù)中將m賦值給數(shù)據(jù)成員c,將11和k分別賦值給基類priAl構(gòu)造函數(shù)的參數(shù)m和n,因此第3個(gè)標(biāo)識下應(yīng)添加“priA2(intm,intn,intk):priAl(n,k){c=m;}”。(4)根據(jù)題目4要示,priA2類公有派生于priAl,而priA1公有派生于baseA,因此在priA2類中可以調(diào)用基類的geta0和getb0來獲得基類私有成員a和b,再輸出priA2的私有成員C即滿足要求,因此第4個(gè)標(biāo)識下應(yīng)添加“cout<國家二級C++機(jī)試(操作題)模擬試卷第6套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò),請改正其中的錯(cuò)誤,使程序正常運(yùn)行,并使程序輸出的結(jié)果為:Maxis7提示:max()函數(shù)實(shí)現(xiàn)找出兩個(gè)數(shù)中的最大值,并作為函數(shù)值返回。注意:錯(cuò)誤的語句在∥********error********的下面,修改該語句即可。#includeusingnamespacestd;∥********error********intmax(inta,intb){if(a標(biāo)準(zhǔn)答案:(1)intmax(int&a,int&b)(2)max(m,n);知識點(diǎn)解析:(1)由審題分析可知max函數(shù)采用的是傳送引用方式傳遞參數(shù),因此第1個(gè)標(biāo)識下應(yīng)該為intmax(intt&a,int&b)。(2)調(diào)用max時(shí),傳遞引用時(shí)直接使用變量名即可,第2個(gè)標(biāo)識下應(yīng)改為“max(m,n)”。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼。函數(shù)sort(int&m,int&n,int&1)實(shí)現(xiàn)將三個(gè)整數(shù)m、n、1由大到小輸出。m最大,1最小。程序分析:程序?qū)崿F(xiàn)時(shí),可以把最大的數(shù)放到m上,先將m與n進(jìn)行比較,如果mvoidsort(int&m,int&n,int&1){}intmain(){intx=9;inty=13;intz=一3;sort(x,y,z);cout<標(biāo)準(zhǔn)答案:Intt;if(m知識點(diǎn)解析:(1)由審題分析可知,三次比較便可將m、n、1排序。(2)在實(shí)現(xiàn)時(shí),先將m與n進(jìn)行比較,如果m三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp,其中定義了用于表示矩形的CRect類,但類CRect的定義并不完整。請按要求完成下列操作,將類CRect的定義補(bǔ)充完成。(1)定義私有數(shù)據(jù)成員leftPoint、topPoint、rightPoint、bottomPoint,分別用于表示矩形左上角及右下角的點(diǎn)的坐標(biāo),它們都是double型的數(shù)據(jù)。請?jiān)谧⑨尅?*******1********之后添加適當(dāng)?shù)恼Z句。(2)完成默認(rèn)構(gòu)造函數(shù)CRect的定義,指定缺省實(shí)參為0,都是double型的數(shù)據(jù)。請?jiān)谧⑨尅?*******2********之后添加適當(dāng)?shù)恼Z句。(3)定義函數(shù)體為空的析構(gòu)函數(shù)。請?jiān)谧⑨尅?*******3********之后添加適當(dāng)?shù)恼Z句。(4)在main()函數(shù)中定義CRect類的實(shí)例reet2,并把rectl的值賦給rect2。請?jiān)谧⑨尅?*******4********之后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#includeClassCRect{private:∥********1********public:∥********2********∥********3********voidSetPoints(double,double,double,double);voidSetLeftPoint(doublem)(1eftPoint=m;)voidSetRightPoint(doublem){rightPoint=m;)voidSetToppoint(doublem){topPoint=m;)voidSetBottomPoint(doublem){bottomPoint=m;)voidDisplay(););CRect::CRect(double1,doublet,doubler,doubleb){leftPoint=1;topPoint=t;rightPoint=r;bottomPoint=b;}voidCRect::SetPointS(double1,doublet,doubler,doubleb){leftPoint=1;topPoint=t;rightPoint=r;bottompoint=b;}voidCRect::Display(){cout(<”left—toppointiS(”<標(biāo)準(zhǔn)答案:(1)添加語句:doubleleftPoint,topPoint,rightPoint,bottomPoint;(2)添加語句:CRect(doubleleftPoint=0,doubletopPoint=0,doublerightPoint=0,doublebottomPoint=0);(3)添加語句:~CRect(){}(4)添加語句:CRectrect2(rectl)知識點(diǎn)解析:(1)第1個(gè)標(biāo)識下完成私有數(shù)據(jù)成員leflPoint、topPoint、rightPoint、bottomPoint的定義,均為double型的變量,故第1個(gè)標(biāo)識下應(yīng)添加“doubleleflPoint,topPoint,rightPoint,bottomPoint;”。(2)構(gòu)造函數(shù)完成成員變量的初始化,類CRect的默認(rèn)構(gòu)造函數(shù)并初始化double型私有數(shù)據(jù)成員leflPoint、topPoint、rightPoint、bottomPoint為0,故第2個(gè)標(biāo)識下應(yīng)添加“CRect(doubleleftPoint=0,doubletopPoint=0,doublerightPoint=0,doublebottomPoint=0);”。(3)析構(gòu)函數(shù)名和類名一致,并在前面加“~”以和構(gòu)造函數(shù)區(qū)別,該析構(gòu)函數(shù)體為空,故第3個(gè)標(biāo)識下應(yīng)添加“~CRect0{};”,雖然該函數(shù)體為空,但是“{}”必須保留。(4)主函數(shù)中類CRect的對象rect2是通過復(fù)制構(gòu)造函數(shù)將rectl的值賦值給它實(shí)現(xiàn)初始化的,而rect1的初始化直接調(diào)用自定義構(gòu)造函數(shù),第4個(gè)標(biāo)識下應(yīng)添加“CRectrect2(reet1);”。國家二級C++機(jī)試(操作題)模擬試卷第7套一、基本操作題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:將不帶頭結(jié)點(diǎn)的單向鏈表結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)從小到大排序。即若原鏈表結(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為10,4、2、8、6,排序后鏈表結(jié)點(diǎn)數(shù)據(jù)域從頭至尾的數(shù)據(jù)為2、4、6、8、10。請?jiān)诔绦虻闹欣ㄌ柼幪钊胝_的內(nèi)容并把中括號刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#defineN6typeclefstructnode{intdata;struernode,*next;}NODE;voidfun(NODE*h){NODE*p,*q;intt;p=h;while(P){/*********found*********/q=【1】;/*********found*********/while(【2】){if(p一>data>q一>data){t=p一>data;p一>data=q一>data;q一>data=t;}q=q一>next;}/*********found*********/p=【3】;}}NODE*creatiist(inta[]){NODE*h,*p,*q;inti;h=NULL;for(i=0;idata=a[i];q一>next=NULL;if(h==NULL)h=p=q;else{p一>next=q;p=q;}}returnh;}voidoutlist(NODE*h){NODE*p;P=h;if(P==NULL)printf("ThelistisNULL!\n");else{printf("\nHead");do{printf("一>%d",p一>data);p=p一>next;)while(p!=NULL);printf("一>End\n");}}main(){NODE*head;inta[N]={0,10,4,2,8,6);head=creatlist(a);printf("\nTheoriginallist:\n");outlist(head);fun(head);printf("\nThelistafterinverting:\n");outlist(head);}標(biāo)準(zhǔn)答案:(1)p一>next(2)q(3)p一>next知識點(diǎn)解析:填空1:從第2個(gè)while循環(huán)可知,q的初值應(yīng)該為p的next,故此空應(yīng)該填寫p一>next。填空2:第2個(gè)while循環(huán)表示的是每次從鏈表剩下的樹中找出最小的數(shù),因此此空應(yīng)該以q是否為空來判斷循環(huán)是否結(jié)束,所以此空應(yīng)該填寫q。填空3:當(dāng)找到一個(gè)最小的數(shù)時(shí)p應(yīng)該向后移,因此此空應(yīng)該填寫p一>next。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:將主函數(shù)中兩個(gè)變量的值進(jìn)行交換。例如,若變量a中的值為8,b中的值為3,則程序運(yùn)行后,a中的值為3,b中的值為8。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include/*********found*********/voidfun(intx,inty){intt;/*********found*********/t=x;x=y;y=t;}voidmain(){inta,b;a=8;b=3;fun(&a,&b);printf("%d%d\n",a,b);}標(biāo)準(zhǔn)答案:(1)voidfun(int*x,int*y)(2)t=*x;*x=*y;*y=t;知識點(diǎn)解析:(1)本題考查指針變量作函數(shù)參數(shù)。一般變量作參數(shù)時(shí),不能改變實(shí)參的值,采用指針變量作為參數(shù)則能夠改變實(shí)參的值。主函數(shù)中fun函數(shù)的調(diào)用方式表明fun函數(shù)的參數(shù)應(yīng)當(dāng)為指針類型。(2)此處是一個(gè)變量交換操作錯(cuò)誤,可知x、y是指針類型,變量類型不同,因而x、y不能與t進(jìn)行值的交換。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、函數(shù)fun的功能是:將a、b兩個(gè)兩位正整數(shù)合并成一個(gè)新的整數(shù)放在c中。合并的方式是:將a中的十位和個(gè)位數(shù)依次放在變量c的百位和個(gè)位上,b中的十位和個(gè)位數(shù)依次放在變量c的千位和十位上。例如,當(dāng)a=45,b=12,調(diào)用該函數(shù)后c=1425。注意:部分源程序給出如下。請勿改動主函數(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("Theresdltis:%id\n",c);}標(biāo)準(zhǔn)答案:voidfun(inta,intb,long*c){/*b%10獲取b的個(gè)位,a/10獲取a的十位,a%10獲取a的個(gè)位,b/10獲取b的十位*/*c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;}知識點(diǎn)解析:本題的主要問題是如何取出a和h的個(gè)位數(shù)和十位數(shù),取出后如何表示成c中相應(yīng)的位數(shù)。由于a和b都是只有兩位的整數(shù),所以分別對它們除10可得到它們的十位數(shù),分別用10對它們求余可得到它們的個(gè)位數(shù)。得到后對應(yīng)乘以1000,、100、10、1,就可得到c的千位數(shù)、百位數(shù)、十位數(shù)和個(gè)位數(shù)。注意使用c時(shí)要進(jìn)行指針運(yùn)算。國家二級C++機(jī)試(操作題)模擬試卷第8套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請使用VC6或使用【答題】菜單打開考生文件夾prog1下的工程prog1,該工程中包含程序文件main.epp,其中有Salary(“工資”)類和主函數(shù)main的定義。程序中位于每個(gè)“//ERROR****found****”之后的一行語句行有錯(cuò)誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:應(yīng)發(fā)合計(jì):3500應(yīng)扣合計(jì):67.5實(shí)發(fā)工資:3432.5注意:只修改每個(gè)“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。#includeusingnamespacestd;classSalary{public:Salary(constchar*id,doublethebase,doublethebonus,doublethetax)//ERROR**********found**********:thebase(base),thebonus(bonus),thetax(tax){staffid=newchar[strlen(id)+1];strcpy(staffid,id);}//ERROR**********found**********一Salary(){delete*staff_id;)doublegetGrossPay()const{returnbase+bonus;)//返回應(yīng)發(fā)項(xiàng)合計(jì)doublegetNetPay()const{returngetGrossPay()一tax;}//返回實(shí)發(fā)工資額private:char*staffid;//職工號doublebase;/基本工資doublebonus;//獎(jiǎng)金doubletax;//代扣個(gè)人所得稅};intmain(){Salarypay(”888888”,3000.0,500.0,67.50);cout;<<”應(yīng)發(fā)合計(jì):”<標(biāo)準(zhǔn)答案:(1):base(the_base),bonus(the_bonus),tax(the_tax)(2)~Salary(){delete[]staff_id;}(3)cout<<”實(shí)發(fā)工資:”<知識點(diǎn)解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握情況,構(gòu)造函數(shù)的成員初始列表要把形參放在括號內(nèi)。(2)主要考查考生對析構(gòu)函數(shù)的掌握情況,析構(gòu)函數(shù)使用delete釋放指針,delete后要跟標(biāo)識符“[]”。(3)主要考查考生對成員函數(shù)調(diào)用的掌握情況,調(diào)用類的成員函數(shù)使用標(biāo)識符“.!”,而不是作用域符“::”。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中包含一個(gè)程序文件main.cpp,其中有日期類Date、人員類Person及排序函數(shù)sonByName和主函數(shù)main的定義。請?jiān)诔绦蛑械臋M線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義和函數(shù)定義。此程序的正確輸出結(jié)果應(yīng)為:按姓名排序排序前張三男出生日期:1978年4月20日王五女出生日期:1965年8月3日楊六女出生日期:1965年9月5日李四男出生日期:1973年5月30日排序后:李四男出生日期:1973年5月30日王五女出生日期:1965年8月3日楊六女出生日期:1965年9月5日張三男出生日期:1978年4月20日注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要?jiǎng)h除或移動“//****found****”。#includeusingnamespacestd;classDate{//日期類intyear,month,day;//年、月、日public:Date(intyear,intmonth,intday):year(year),month(month),day(day){)intgetYear()const{returnyear;}intgetMonth()const{returnmonth;)intgetDay()const{returnday;)};classPerson{//人員類charname[14],//姓名boolismale;//性別,為true時(shí)表示男性Datebirthdate;//出生日期public:Person(char*name,boolismale,Datebirth_date)//**********found**********:______________{strcpy(this->name,name);}constchar*getName()const{returnname;)boolisMale()const{returnismale;}DategetBirthdate()const{returnbirthdate;)//利用strcmp()函數(shù)比較姓名,返回一個(gè)正數(shù)、0或負(fù)數(shù),分別表示大于、等于、小于intcompareName(constPerson&p)const{//**********found**********____________}voidshow(){cout<i){PersonP=ps[m];ps[m]=ps[i];ps[i]=p;}}}intmain(){Personstaff[]={Person(”張三”,true,Date(1978,4,20)),Person(”王五”,false,Date(1965,8,3)),Person(”楊六”,false,Date(1965,9,5)),Person(”李四”,true,Date(1973,5,30))};constintSize=sizeof(staff)/Sizeof(staff[0]);inti;cout<標(biāo)準(zhǔn)答案:(1)is_male(is_male),birth_date(birth_date)(2)retumstrcmp(name,P.getName());(3)<知識點(diǎn)解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握,由函數(shù)體內(nèi)strcpy(this一>name,name);可知,要使用成員列表初始化的成員為is_male和birth_date。(2)主要考查考生對strcmp()函數(shù)的掌握,先看程序?qū)υ摵瘮?shù)的功能要求:利用strcmp()函數(shù)比較姓名,返回一個(gè)正數(shù)、0或負(fù)數(shù),分別表示大于、等于、小于。因?yàn)閟trcmp()函數(shù)的功能是比較字符串大小,因此可以直接被retum語句調(diào)用:returnstrcmp(nalne,P.getName());。(3)主要考查考生對成員函數(shù)的掌握,程序的注釋為:顯示出生月,由此可以知道這里要輸出出生月份,直接調(diào)用函數(shù)getMonth()即可。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程pmj3,其中定義了MyString類,一個(gè)用于表示字符串的類。成員函數(shù)reverse的功能是將字符串進(jìn)行“反轉(zhuǎn)”。例如,將字符串ABCDEF“反轉(zhuǎn)”后,得到字符串FEDCBA;將字符串ABCDEFG“反轉(zhuǎn)”后,得到字符串GFEDCBA。請編寫成員函數(shù)reverse。在main函數(shù)中給出了一組測試數(shù)據(jù),此時(shí)程序運(yùn)行中應(yīng)顯示:讀取輸入文件…一反轉(zhuǎn)前一STR1=ABCDEFSTR2=ABCDEFG一反轉(zhuǎn)后一STR1=FEDCBASTR2=GFEDCBA要求:補(bǔ)充編制的內(nèi)容寫在“//**********333**********”與“//**********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);}一NyString(){delete[]st;r;)voidEeveEse();friendostream&operator<<(OStream
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中信息技術(shù)課堂教學(xué)方法的創(chuàng)新研究
- 2025光電車衣發(fā)電系統(tǒng)
- 中小學(xué)心理健康教育課程設(shè)計(jì)與實(shí)踐知到課后答案智慧樹章節(jié)測試答案2025年春浙江師范大學(xué)
- 三級人力資源管理師-三級人力資源管理師考試《理論知識》押題密卷6
- 三級人力資源管理師-《企業(yè)人力資源管理師(理論知識)》考前強(qiáng)化模擬卷6
- 山東省菏澤市東明縣第一中學(xué)2024-2025學(xué)年高二下學(xué)期開學(xué)地理試題
- 2018高考人教政治二輪鞏固練題(六)及解析
- 2018年普通高校招生全國統(tǒng)一考試仿真模擬(一)語文試題
- 甘肅省張掖市高臺縣一中2024-2025學(xué)年高三下學(xué)期第二次檢測語文試題(原卷版+解析版)
- 2025屆福建省漳州市高三下學(xué)期第三次檢測歷史試題 (原卷版+解析版)
- 工程結(jié)算審核服務(wù)方案技術(shù)標(biāo)
- 小區(qū)物業(yè)收支明細(xì)公告范本
- 500kV變電站監(jiān)控后臺施工調(diào)試方案
- 《老年社會學(xué)與社會工作》復(fù)習(xí)考試題庫(帶答案)
- 中醫(yī)醫(yī)院治未病科建設(shè)與管理指南
- 關(guān)于“短視頻與防沉迷”為主題的閱讀(2021貴州遵義中考語文非連續(xù)性文本閱讀試題及答案)
- 柴進(jìn)的五個(gè)故事
- 瓜州橋?yàn)车谝伙L(fēng)電場200mw工程可行性研究報(bào)告
- 耳鼻咽喉頭頸外科學(xué):耳科學(xué)
- 2023年空置房管理辦法4篇
- 中考英語現(xiàn)在完成時(shí)專項(xiàng)練習(xí)題及答案學(xué)習(xí)啊
評論
0/150
提交評論