版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C++機試(綜合應(yīng)用題)模擬試卷1(共9套)(共45題)國家二級C++機試(綜合應(yīng)用題)模擬試卷第1套一、綜合應(yīng)用題(本題共5題,每題1.0分,共5分。)1、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中聲明IntSet是一個用于表示正整數(shù)集合的類。IntSet的成員函數(shù)Intersection的功能是求當(dāng)前集合與另一個集合的交集。請完成成員函數(shù)Intersection。在main函數(shù)中給出了一組測試數(shù)據(jù),此時程序的輸出應(yīng)該是:求交集前:123581028911305667求交集后:12358102891130566728要求:補充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)wfiteToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//Intset.h#includeusingnamespacestd;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<標(biāo)準(zhǔn)答案:for(inti=0;i<=set.GetEnd.();i++)//遍對象set數(shù)組if(IsMemberOf(set.GetElement(i)))//判斷對象Set數(shù)組第i個值是不是集合中的值,如果是則把它插入到a中a[size++]=set.GetElement(i);知識點解析:本題考查的是IntSet類,其中涉及構(gòu)造函數(shù)、bool函數(shù)和成員函數(shù)。本類是一個用于表示正整數(shù)集合的類,題目要求填寫的函數(shù)能實現(xiàn)交集的功能,也就是將兩個數(shù)組內(nèi)的元素進行比較,將一樣的元素提取出來。【解題思路】主要考查考生對數(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ù)IsMemberOf來判斷set中的元素是否存在于集合中,如果存在則放入數(shù)組a中?!窘忸}寶典】主要考查考生對數(shù)組的掌握,集合可以用數(shù)組來實現(xiàn),交集就是將兩個數(shù)組中相等的元素提取出來放入一個新建立的數(shù)組。2、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中聲明IntSet是一個用于表示正整數(shù)集合的類。IntSet的成員函數(shù)Intersection的功能是求當(dāng)前集合與另一個集合的交集。請完成成員函數(shù)Intersection。在main函數(shù)中給出了一組測試數(shù)據(jù),此時程序的輸出應(yīng)該是:求交集前:123581028911305667求交集后:12358102891130566728要求:補充編制的內(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]<<end1;elsecout<<element[i]<<’’;cout<<end1;}private:intelement[Max];intend;};voidwriteTOFile(constchar*);//main.cpp#include"ntSet.h"IntSetIntSet∷Intersection(IntSet&set){inta[Max],size=0;//********333********//********666********returnIntSet(a,size);}intmain(){inta[]={1,2,3,5,8,10);intb[]={2,8,9,11,30,56,67);IntSetsetl(a,6),Set2(b,7),set3;cout<<"求交集前:"<<end1;set1.Print();set2.Print();set3.Print();set3=set1.Intersection(set2);cout<<end1<<"求交集后:"<<end1;set1.Print();set2.Print();set3.Print();writeToFile("");return0;}標(biāo)準(zhǔn)答案:for(inti=0;i<=set.GetEnd();i++)//遍對象set數(shù)組if(IsMemberOf(set.GetElement(i)))//判斷對象set數(shù)組第i個值是不是集合中的值,如果是則把它插入到a中a[size++]=set.GetElement(i);知識點解析:主要考查考生對數(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ù)IsMemberOf來判斷set中的元素是否存在于集合中,如果存在則放人數(shù)組a中。3、請使用菜單命令或直接用VC6打開考生文件夾下的工程prj03。請完善下列程序,實現(xiàn)一個Number類。Add函數(shù)計算2個Number類對象之和,并將和作為Number對象返回。這2個Number對象中各包含一個用字符串表示的10進制正整數(shù),均不超過int的表示范圍。在main函數(shù)中給出了一組測試數(shù)據(jù),使用這組數(shù)據(jù)進行測試時程序的輸出應(yīng)該是:100注意:只需在//**********333**********//**********666**********之間填入所編寫的若干語句,不要改動程序中的其他內(nèi)容。#include#include#include#include”proj3.h”usingnamespacestd;Number::Number(char木n){num=newchar[strlen(n)+1];strcpy(num,n);}Number::Number(Number&n){num=newchar[strlen(n.num)+1];strcpy(num,n.num);}Number::Number(intn){char*tmp=newchar[30];itoa(n,tmp,i0);//函數(shù)itoa的功能是將n轉(zhuǎn)換為字符串,存放于tmp指向的敷組中num=newchar[strlen(tmp)+1];strcpy(num,tmp);}Number::一Number(){if(num)delete[]num;}NumberNumber::Add(Numbern)f//**********333**********}//**********666**********}intmain(){Numbernuml(“32”);Numbernum2(“68”);Number&num3=numl.Add(hum2);cout<標(biāo)準(zhǔn)答案:inti=atoi(hum);intj=atoi(n.GetNum());returnNumber(i+j);知識點解析:本題考查的是Number類,其中涉及C語言的庫函數(shù)、構(gòu)造函數(shù)的使用、成員函數(shù)的使用?!窘忸}思路】主要考查考生對庫函數(shù)、對象成員和構(gòu)造函數(shù)使用的掌握情況,函數(shù)Add的功能是將函數(shù)參數(shù)n與自身相加,返回相加后的Number對象,Number類中成員字符串。aura是用來表示十進制的整數(shù),所以將兩個Number相加需要首先將字符串a(chǎn)ura轉(zhuǎn)化為整數(shù),這里需要使用庫函數(shù)atoi,將調(diào)用對象的hum和對象n的aura轉(zhuǎn)化為十進制整數(shù)i,j,在轉(zhuǎn)化對象n的aura成員時,由于hum是Number類的私有成員,所以不能直接使用,而應(yīng)該通過成員函數(shù)GetNum()返回num;得到十進制數(shù)i、j后,再用i與j的和構(gòu)造成Number對象,所以需要使用Number的參數(shù)為整數(shù)的構(gòu)造函數(shù),即Number’(inti),構(gòu)造Number對象后返回。4、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。(1)對文件以追加的方式打開文件。請在注釋//********1********后添加適當(dāng)?shù)恼Z句。(2)定義m、n為類TestClass的公有int型數(shù)據(jù)成員,請在注釋//********2********后添加適當(dāng)?shù)恼Z句。(3)定義p為類TestClass的數(shù)據(jù)成員指針,并指向類TestClass數(shù)據(jù)成員m,請在注釋//********3********后添加適當(dāng)?shù)恼Z句。(4)定義P指向類TestClass數(shù)據(jù)成員n,請在注釋//********4********后添加適當(dāng)?shù)恼Z句。注意:增加代碼,或者修改代碼的位置已經(jīng)用符號表示出來。請不要修改其他的程序代碼。#include<iostream.h>#include<fStream>#include<iomanip>#include<cmath>usingnamespacestd;voidWriteFile(intx){ofstreamout1;//********1********out1.open("modi3.txt",);out1<<X<<’’;out1.close();}voidClearFile(){ofstreamout1;out1.open("modi3.txt");out1.close();}classTestClass{public:voiddisp(){cout<<"m="<<m<<endl;WriteFile(m);cout<<"n="<<n<<endl;WriteFile(n);}//********2********};voidmain(){//********3********ClearFile();TestClassa;a.*p=30;//********4********a.*p=45;a.disp();}標(biāo)準(zhǔn)答案:(1)將“out1.open("modi3.txt",);”補充完整為:out1.open("modi3.txt",ios_base::app);(2)添加語句:intm,n;(3)添加語句:intTestClass::*p=&(TestClass::m);(4)添加語句:p=&(TestClass::n);知識點解析:(1)題目1要求“對文件以追加的方式打開文件”。文件輸出輸入方式的設(shè)置值,以ios::app方式是以輸出方式打開文件,寫入的數(shù)據(jù)添加在文件末尾,即第1個標(biāo)識下語句補全為“out1.open("modi3.txt",ios_base::app);”。(2)題目2要求“定義m、n為類TestClass的公有int型數(shù)據(jù)成員”。只需在程序中的TestClass類中的public區(qū)域添加m、n的定義即可。即在第2個標(biāo)識下添加“intm,n;”。(3)題目3要求“定義P為類TestClass的數(shù)據(jù)成員指針,并指向類TestClass數(shù)據(jù)成員m”。程序中類TestClass數(shù)據(jù)成員m為:TestClass::m,定義p為類TestClass的數(shù)據(jù)成員指針語句為:TestClass::*p,將其指向前面的數(shù)據(jù)成員m,即為“intTestClass::*p=&(TestClass::m):”。(4)題目4要求“定義P指向類TestClass數(shù)據(jù)成員n”。類TestClass數(shù)據(jù)成員n語句為TestClass::n,用p指向類TestClass數(shù)據(jù)成員n,添加的語句即“p=&(TestClass::n);”。5、使用VC6打開考生文件夾下的源程序文件modi3.clap,其中定義了用于表示學(xué)生學(xué)號的類CStudcntlD,但類CStudentID的定義并不完整。運行結(jié)果為:學(xué)生的學(xué)號為:200805學(xué)生名為:李偉刪除學(xué)生學(xué)號為:200805請按要求完成下列操作,將類CStudentlD的定義補充完成:(1)定義classCStudentlD類的私有數(shù)據(jù)成員IDvalue表示學(xué)生的學(xué)號,為long型的數(shù)據(jù)。請在注釋//********1********之后添加適當(dāng)?shù)恼Z句。(2)完成默認構(gòu)造函數(shù)CSmdentlD的定義,使CStudentlD對象的默認值為:id=0,并把學(xué)生的學(xué)號賦給IDvalue,并輸出“賦給學(xué)生的學(xué)號:”及學(xué)號。請在注釋//********2********之后添加適當(dāng)?shù)恼Z句。(3)完成默認析構(gòu)函數(shù)CStudentlD的定義,使CStudentlD析構(gòu)時輸出“刪除學(xué)號:”及學(xué)號。請在注釋//********3********之后添加適當(dāng)?shù)恼Z句。(4)完成默認構(gòu)造函數(shù)CStudentlnfo的定義。對應(yīng)兩個默認參數(shù):要求定義charstName[],其默認值為“noname”,定義longstID,其默認值設(shè)為0,并使它們賦值給相應(yīng)的類數(shù)據(jù)成員。請在注釋//********4********之后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。1#include<iostream.h>2#include<string.h>3classCStudentID4{5//********1********定義私有數(shù)據(jù)成員67public:8//********2********定義默認構(gòu)造函數(shù)910{11IDvalue=id;12cout<<’’學(xué)生的學(xué)號為:’’<<IDValue<<end1;13}14//********3********定義析構(gòu)函數(shù)1516{17cout<<’’刪除學(xué)生學(xué)號為:’’<<IDvalue<<end1;18}19};20classCStudentInfo21{22private:23CStudentIDid;24charname[20];25public:26//********4********定義默認構(gòu)造函數(shù)完成數(shù)據(jù)成員初始化2728{29cout<<’’學(xué)生名為:’’<<stName<<end1;30strcpy(name,stName);31}32};33voidmain()34{35CStudentInfost(’’李偉’’,200805);36}標(biāo)準(zhǔn)答案:(1)添加語句:longIDvalue;(2)添加語句:CStudentID(lonqid=0)(3)添加語句:~CStudentID()(4)添加語句:CStudentInfo(charstName[]=’’noname’’,longstID=0):id(stID)知識點解析:程序中定義了兩個類CStudentID和CStudentInfo,其中類CStudentID包含學(xué)生的學(xué)號信息的成員變量,有自定義構(gòu)造函數(shù)和默認析構(gòu)函數(shù),而類CStudentlnfo不僅包含學(xué)生的學(xué)號還包括對應(yīng)的姓名信息的成員變量,還實現(xiàn)了自定義構(gòu)造函數(shù)。(1)第1個標(biāo)識下完成CStudentID類的私有數(shù)據(jù)成員IDvalue的定義,為long型的數(shù)據(jù),因此第1個標(biāo)識下應(yīng)添加“l(fā)ongIDvalue;”。(2)構(gòu)造函數(shù)完成類成員變量的初始化,構(gòu)造函數(shù)名和類名一致,該構(gòu)造函數(shù)帶有一個參數(shù)id,其默認值為id=0,因此第2個標(biāo)識下應(yīng)添加“CStudentIPD(longid=0)”。(3)析構(gòu)函數(shù)也和類名一致,并且在前面加“~”以和構(gòu)造函數(shù)區(qū)分,析構(gòu)函數(shù)沒有參數(shù),故第3個標(biāo)識下應(yīng)添加“~CStudentID()”。(4)CStudentInfo包含的學(xué)生學(xué)號信息保存在類CStudentID的實例中,可通過調(diào)用類CStudentID的自定義構(gòu)造函數(shù)初始化,第4個標(biāo)識下應(yīng)添加“CStudentlnfo(charstName[]=’’noname",longstID=0):id(stID)”。國家二級C++機試(綜合應(yīng)用題)模擬試卷第2套一、綜合應(yīng)用題(本題共5題,每題1.0分,共5分。)1、請使用VC6或使用【答題】菜單打開考生文件夾prog3下的工程prog3,其中包含了類Polynomial(“多項式”)的定義。形如5x4+3.4x2一7x+2的代數(shù)式稱為多項式,其中的5為4次項系數(shù),3.4為2次項系數(shù),一7為1次項系數(shù),2為0次項(常數(shù)項)系數(shù)。此例缺3次項,意味著3次項系數(shù)為0,即省略了0x3。在Polynomial中,多項式的各個系數(shù)存儲在一個名為coef的數(shù)組中。例如,對于上面的多項式,保存在coef[0]、coef[1].coef[4]中的系數(shù)依次為:2.0、一7.0,3.4、0.0、5.0,也即對于i次項,其系數(shù)就保存在c(1ef[i]中。成員函數(shù)getValue計算多項式的值,多項式中x的值是由參數(shù)指定的。請補充完成文件Polynomial.cpp中成員函數(shù)getValue的定義。此程序的正確輸出結(jié)果應(yīng)為:Valueofplwhenx=2.0:59.8Valueofp2whenx=3.0:226.8注意:只在函數(shù)getValue的“//**********333**********”和“/**********666**********”之間填入若干語句,不要改動程序中的其他內(nèi)容。//Polynomiac.h#includeusingnamespacestd;classPolynomial{//“多項式”類public:Polynomial(doublecoef[],intnum):coef(newdouble[num]),numofterms(num){for(inti=0;icoef[i]=coef[i];}~Polynomial(){delete[]coef;)//返回指定次數(shù)項的系數(shù)doublegetCoefficient(intpower)const{returncoef[power];)//返回在X等于指定值時多項式的值doublegetValue(doubleX)const,private://系數(shù)數(shù)組,coef[0]為0次項(常數(shù)項)系數(shù),coef[1]為1次項系數(shù),coef[2]為2次項(平方項)系數(shù),余類推。double*coef;intnum0fterms;};voidwriteToFile(constchar‘path);//Polymomial.cpp#include”Polynomial.h”doublePolynomial::getValue(doubleX)const{//多項式的值value為各次項的累加和doublevalue=coef[0];//**********333**********//**********666**********returnvalue;}//main.cpp#include”Polynomial.h”intmain(){doublepl[]={5.0,3.4,一4.0,8.0),p2[]={0.0,-5.4,0.0,3.0,2.0};Polynomialpolyl(pl,sizeof(p1)/sizeof(double)),poly2(p2,sizeof(p2)/sizeof(double));cout<<”ValueofplwhenX=2.0:”<標(biāo)準(zhǔn)答案:for(inti=1;i0)//當(dāng)j大于零時,做相乘操作,即完成該項的乘方動作{xJalue*=x;j一一,}value+=coef[i]*xvalue;//把i項的乘方結(jié)果乘以該項系數(shù)后加進value中}知識點解析:本題考查Polynomi~類,其中涉及構(gòu)造函數(shù)、動態(tài)數(shù)組、析構(gòu)函數(shù)和const函數(shù)。【解題思路】題目要求成員函數(shù)getValue計算多項式的值,多項式中x的值由參數(shù)指定,多項式的值value為各次項的累加和。由類的定義可知數(shù)組coef中存儲的是各次項的系數(shù),這里使用for循環(huán)來完成題目要求,當(dāng)次項為0時,value=coef[0]。當(dāng)次項為1時,value=coef[1]*x+coef[0]。依次類推直到x的最高次數(shù)。2、用VC6打開考生文件夾下的源程序文件modi3.cpp,這個程序完成輸出到屏幕一些特定的信息,但工程有錯誤或者不完整,請完成以下功能:(1)初始化m_Num2的值為j,請在注釋//********1********后添加適當(dāng)?shù)恼Z句。(2)補充全局函數(shù)fun()使之能夠調(diào)用類TestClass的成員變量,請在注釋//********2********后添加適當(dāng)?shù)恼Z句。(3)初始化靜態(tài)變量,請在注釋//********3********后添加適當(dāng)?shù)恼Z句。(4)修改注釋//********4********后的語句。使得程序輸出以下內(nèi)容:m_Num1=1m_Num2=2m_Num3=1m_Num1=4m_Num2=2m_Num3=7注意:僅在函數(shù)指定位置添加語句,請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容。1#include<iostream.h>2classTestClass3{4public:5//********1********67TestClass,(inti,intj)8{9m_Num1=i;10m_Num3+=i;11}12voidPrint()13{14cout<<’’m_Num1=’’<<InNum1<<endl;15cout<<’’m_Num2=’’<<mNum2<<end1;16cout<<’’m_Num3=’’<<mNum3<<end1;17}18voidAdd(inti)19{20m_Num3+=i;21}22private:23intm_Num1;24constintm_Num2;25staticintm_Num3;26//********2********2728};29//********3********30voidfun()31{32TestClassNum(1,2);33Num.m_Num1=4;34//********4********35Num.Add();36Num.Print();37}38voidmain()39{40TestClasSNum(1,2);40Num.Print();42fun();43return;44}標(biāo)準(zhǔn)答案:(1)添加語句:TestClass(inti,intj):m_Num2(j)(2)添加語句:friendvoidfun();(3)添加語句:intTestClass::mNum3=0;(4)將“Num.Add();”補充完整為:Num.Add(5);知識點解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個補全或修改。從已給定源程序的main主函數(shù)開始入手,可以看出程序通過調(diào)用類TestClass和函數(shù)fun實現(xiàn)各種輸出操作。(1)根據(jù)“constintm_Num2;”語句知道m(xù)_Num2為類TestClass中的私有數(shù)據(jù),另外,C++定義構(gòu)造函數(shù)的初始化數(shù)據(jù)成員的方法中可以在原有函數(shù)末尾加一個冒號,然后列出參數(shù)的初始化表實現(xiàn),即“TestClass(inti,intj):m_Num2(j)”。(2)在C++中,如果在本類以外的其他地方定義了一個函數(shù),在類體中是用friend對該函數(shù)進行聲明的,此函數(shù)稱為本類的友元函數(shù),并且能夠調(diào)用本類中的成員變量。程序中fun()在類TestClass以外的地方定義的,為了實現(xiàn)其對類TestClass中成員變量的調(diào)用,在類TestClass中補全“friendvoidfun();”,即聲明fun()為類TestClass的友元函數(shù)。(3)在C++中,初始化類中數(shù)據(jù)成員的格式可以是“<類型>類名class::參數(shù)=”,其中<類型>為要初始化參數(shù)的類型,“::”為作用域符號,說明參數(shù)是class中的參數(shù),所以這里補全“intTestClass::m_Num3=0;”0(4)函數(shù)fun()中“Num.Add();”語句應(yīng)該是調(diào)用類“TestClass”中的成員函數(shù)“voidAdd(inti)”。其定義中存在參數(shù)inti,所以注釋下修改的語句缺少參數(shù)。主函數(shù)首先調(diào)用“Num.Print();”,即實現(xiàn)題目中輸出的前三條語句,而“fun();”語句實現(xiàn)后面三條語句的輸出,即“m_Num3=7”才是調(diào)用Num.Add的輸出結(jié)果,即“m_Num3+=i;”的計算結(jié)果。“TestClassNum(1,2);”中將i的值初始化為1,“m_Num3”的值在上一次“Num.Print();”調(diào)用中為1,如果計算結(jié)果為7,那么Add(inti)中i的初始化值為5,即“Num.Add(5);”。3、使用VC6打開考生文件夾下的源程序文件modi3.cpp,其中定義了用于表示日期的類Date,但類Date的定義并不完整,按要求完成下列操作,將類的定義補充完整。(1)定義私有成員變量year、month、day,分別表示年、月、目,類型為int。請在注釋//********1********后添加適當(dāng)?shù)恼Z句。(2)完成構(gòu)造函數(shù),分別給year、month、day賦值,請在注釋//********2********后添加適當(dāng)?shù)恼Z句。(3)完成重載符號“+=”的定義,請在注釋//********3********后添加適當(dāng)?shù)恼Z句。(4)完成print()打印函數(shù),如2008年8月8日到屏幕和文件modi3.txt格式相同,請在注釋//********4********后添加適當(dāng)?shù)恼Z句。注意:僅在函數(shù)指定位置添加語句,請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容。#include<iostream.h>#include<fStream>#include<iomanip>#include<cmath>USingnamespacestd;voidWriteFile(intc){ofStreamout1;out1.open("modi3.txt",ios_base::app);out1<(c<<’’;out1.close();}voidWriteFile(char*str){ofstreamout1;out1.open("modi3.txt",iosbase::app);out1<<str:out1.close():}voidClearFile(){ofstreamout1;out1.open("modi3.txt");out1.close();}classDate{public:Date(inty,intm,intd){//********2********}voidprint()const;//********3********{month+=m;inti=month/12;intj=month%12;if(i==0){year+=(i-1),month=12;}else{year+=i;month=j;}return*this;}private://********1********};voidDate::Print()const{//********4********WriteFile(year);WriteFile("年");WriteFile(month);WriteFile("月");WriteFile(day);WriteFile("日");}intmain(){clearFile();Dateoly_day(2008,8,8);oly_day+=3;oly_day.print();return0;}標(biāo)準(zhǔn)答案:(1)添加語句:intyear,month,day;(2)添加語句:year=y;month=m;day=d;(3)添加語句:Date&operator+=(intm)(4)添加語句:cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;知識點解析:(1)題目1要求“定義私有成員變量year、month、day”。在C++程序的private區(qū)域中添加變量year、month、day的定義,即在第1個標(biāo)識下添加“intyear,month,day;”。(2)題目2要求“完成構(gòu)造函數(shù),分別給year、month、day賦值”。在程序中“Date(inty,intm,intd)”的構(gòu)造函數(shù)中添加給year、month、day賦值的語句,即在第2個標(biāo)識下添加“year=y;month=m;day=d;”。(3)題目3要求“完成重載符號“+=”的定義”。在C++中,運算符重載的定義方法是定義一個重載運算符的函數(shù),格式為函數(shù)operator+~載運算符號+,所以這里補全“Date&operator+=(intm)”。(4)題目4要求“完成函數(shù)print()打印函數(shù)”。在C++中的print()函數(shù)中補全其打印功能,即在第四個標(biāo)識下添加“cout<<year<<"年"<<month<<"月"<<daV<<"日"<<endl;”。4、使用VC6打開考生文件夾下的源程序文件modi3.cpp,其中定義了用于表示坐標(biāo)的類TestClass1,但類TestClass1的定義并不完整,按要求完成下列操作,將類的定義補充完整。(1)聲明TestClass2類為TestClass1類的友元類,請在注釋//********1********后添加適當(dāng)?shù)恼Z句。(2)完成類的構(gòu)造函數(shù),分別對成員變量賦值,請在注釋//********2********后添加適當(dāng)?shù)恼Z句。(3)完成類的構(gòu)造函數(shù),分別對成員變量賦值,請在注釋//********3********后添加適當(dāng)?shù)恼Z句。(4)完成計算平面上兩點之間的距離函數(shù)Distance,計算的方法如下:X坐標(biāo)之差的平方與Y坐標(biāo)之差的平方之和的開方。請在注釋//********4********后添加適當(dāng)?shù)恼Z句。注意:僅在函數(shù)指定位置添加語句,請勿改動主函數(shù)main與其他函數(shù)中的任何內(nèi)容。1#include<iostream>2#include<cmath>3usingnamespacestd;4classTeStClass15{6//********1********78public:9//********2********1011{12X=a;13Y=b;14}15//********3********1617{18X=a;19Y=0;20}21voidprint()22{23cout<<’’x=’’<<X<<end1;24cout<<’’y=’’<<Y<<end1;25}26private:27floatX,Y;28};29classTestClass230{31public:32floatDistance(TestClass1&p,TestClass1&q);33};34floatTestClass2::Distance(TestClass1&p,TestClass1&q)35{36floatresult;37//********4********3839cout<<result<<end1;40returnresult;41}42intmain()43{44TestClass1p(10,10),q(20);45TestClass2d;46d.Distance(p,q);47return0;48}標(biāo)準(zhǔn)答案:(1)添加語句:friendclassTestClass2;(2)添加語句:TestClass1(floata,floatb)(3)添加語句:TestClass1(floata)(4)添加語句:result=sqrt((p.X-q.X)*(p.X-q.X)+(p.Y-q.Y)*(p.Y-q.Y));知識點解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個補全或修改。從已給定源程序的main主函數(shù)開始入手,可以看出程序通過調(diào)用類TestClass實現(xiàn)各種輸出操作。(1)題目1要求“聲明TestClass2類為TestClass1類的友元類”。C++中聲明友元類的一般形式為friend類名;,所以這里補全“friendclassTestClass2;”。(2)題目2要求“完成類的構(gòu)造函數(shù),分別對成員變量賦值”。程序中TestClass1類的構(gòu)造函數(shù)缺少定義,構(gòu)造函數(shù)首部的一般格式為:構(gòu)造函數(shù)名(類型1形參1,類型2形參2,……),所以在第2個標(biāo)識下補全“TestClass1(floata,floatb)”。(3)題目3要求“完成類的構(gòu)造函數(shù),分別對成員變量賦值”。同理,第三個標(biāo)識下補全“TestClass1(floata)”。(4)題目4要求“完成計算平面上兩點之間的距離函數(shù)Distance”。題目中已經(jīng)給出了計算方法,X坐標(biāo)之差的平方與Y坐標(biāo)之差的平方之和的開方。利用C++中的開方函數(shù)sqrt補全函數(shù)中的兩點之間的距離。即:result=sqrt((p.X-q.X)*(p.X-q.X)+(p.Y-q.Y)*(p.Y-q.Y);。5、使用VC6打開考生文件夾下的源程序文件modi3.cpp。通過繼承完成輸入到屏幕指定的信息:TestClassATestClassBTestClassC其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。(1)完成類B虛繼承于A,請在注釋,//****************后添加適當(dāng)?shù)恼Z句。(2)完成類C虛繼承于A,請在注釋//********2********后添加適當(dāng)?shù)恼Z句。(3)完成類D繼承于B,C,請在注釋//********3********后添加適當(dāng)?shù)恼Z句。(4)函數(shù)fun通過調(diào)用基類的fun,完成所輸出的內(nèi)容,請在注釋//******4******后添加適當(dāng)?shù)恼Z句。注意:增加代碼,或者修改代碼的位置已經(jīng)用符號表示出來。請不要修改其他的程序代碼。1#include<iostream.h>2ClassTestClassA3{4public:5voidfun(){6cout<<’’TestClassA’’<<end1;7}8};9//********1********10classTestClassB11{12public:13voidfun()14{15cout<<’’TestClassB’’<<end1;16}17};18//********2********19classTestClassC20{21public:22voidfun()23{24cout<<’’TestClassC’’<<end1;25}26};27//********3********28classTestClassD29{30public:31voidfun()32{33//********4********3435}36};37voidmain()38{39TestClasSDtest;40test.fun();41return;42};標(biāo)準(zhǔn)答案:(1)將“classTestClassB:”補充完整為:classTestClassB:virtualpublicTestClassA(2)將“classTestClassC:”補充完整為:classTestClassC:virtualpublicTestClassA(3)將“classTestClassD:”補充完整為:classTestClassD:publicTestClassB,publicTestClassC(4)添加語句:TestClassA::fun();TestClassB::fun();TestClassC::fun();知識點解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個補全或修改。從已定源程序的main主函數(shù)開始入手,可以看出程序通過調(diào)用類和函數(shù)fun實現(xiàn)各種輸出操作。(1)題目1要求“完成類B虛繼承于A”。在C++中,聲明虛基類的一般形式為:class派生類名:virtual繼承方式基類名,由題目知道TestClassA為基類,TestClassB為派生類,所以第1個標(biāo)識下修改為“classTestClassB:virtualpublicTIestClassA”。(2)同(1),題目2和題目3中要求的標(biāo)識2和3下的語句修改為“classTestClassC:virtualpublicTestClassA”和“classTestClassD:publicTestClassB,publicTestClassC”。(3)題目4要求“函數(shù)fun通過調(diào)用基類的fun,完成所輸出的內(nèi)容”。在C++中調(diào)用基類的成員函數(shù),要使用作用域限定符“::”,類名A::函數(shù)fun,就是調(diào)用類A的函數(shù)fun,根據(jù)題目中的要求補全對類TestClassA、TestClassB以及TestClassC中的fun函數(shù),即:TestClassA::fun();TestClassB::fun();TestClassC::fun();國家二級C++機試(綜合應(yīng)用題)模擬試卷第3套一、綜合應(yīng)用題(本題共5題,每題1.0分,共5分。)1、請使用VC6或使用【答題】菜單打開考生目錄proj3下的工程文件proj3,此工程包含一個源程序文件proj3.epp,其功能是從文本文件in.dat中讀取全部整數(shù),將整數(shù)序列存放到intArray類的對象myA~ay中,然后對整數(shù)序列按非遞減排序,最后由函數(shù)writeToFile選擇序列中的部分數(shù)據(jù)輸出到文件out.dat中。文件in.dat中的整數(shù)個數(shù)不大于300個。要求:補充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”兩行之間。實現(xiàn)對整數(shù)序列按非遞減排序,并將排序結(jié)果在屏幕上輸出。不得修改程序的其他部分。注意:程序最后已將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)給出并且調(diào)用。//proj3.cpp#include#include#includeusingnamespacestd;classintArray{private:int*array;//整數(shù)序列首地址intlength;//序列中的整數(shù)個數(shù)public://構(gòu)造函數(shù),從文件中讀取數(shù)據(jù)用于初始化新對象。參數(shù)是文件名intArray(char*filename);voidsort();//對整數(shù)序列按非遞減排序一intArray();voidwriteToFile(char*filename););intArray::intArray(char*filename){ifstreammyFile(filename);intlen=300;array=newint[1en];length=0;while(myFile>>array[1ength++]);length一一;myFile.close();}voidintArray::sort(){//**********333**********//**********666**********}intArray::intArray(){delete[]array;}voidintArray::writeToFile(char。filename){intstep=0;ofstreamoutFile(filename);for(inti=0;i標(biāo)準(zhǔn)答案:for(inti=0;iarray[j])//如果arrag[i]>array[j],把array[i]與ar—ray[i]進行對換{inttemp;//定義一個臨時變量temptemp=array[i];//把array[i]值放到變量temparray[i]=array[j];//把array[j]值賦給array[i]array[j]=terap;//把變量temp存放在值array[j]中}for(inta:0;a知識點解析:本題主要考查intArray類,其中涉及構(gòu)造函數(shù)、排序函數(shù)和析構(gòu)函數(shù)。常用的排序算法有冒泡排序、選擇排序、插入排序、堆排序等?!窘忸}思路】題目要求對整數(shù)序列按非遞減排序,要排序就必須要有比較,因此定義兩個下標(biāo)i和j,按題目非遞減排序要求,當(dāng)array[i]比array[j]大時就交換其值,利用中間變量temp來實現(xiàn)?!窘忸}寶典】排序算法有多種,其基本思想是相同的,即先遍歷,后比較,再交換。不同之處在于它們遍歷數(shù)列的順序不同??忌蛇x擇一至兩種算法重點理解。2、請使用【答題】菜單命令或直接用VC6打開考生文件夾下的工程prog3,其中聲明了ValArray類,該類在內(nèi)部維護一個動態(tài)分配的整型數(shù)組。ViArray類的復(fù)制構(gòu)造函數(shù)應(yīng)實現(xiàn)對象的深層復(fù)制。請編寫ValArray類的復(fù)制構(gòu)造函數(shù)。在main函數(shù)中給出了一組測試數(shù)據(jù),此種情況下程序的輸出應(yīng)該是:ValArrayv1={1,2,3,4,5}ValArrayv2={1,2,3,4,5}要求:補充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為boj文件,并且在本程序中調(diào)用。//ValArray.h#includeusingnamespacestd;classValArray{int*y;intSize;public:ValArray(constint*P,intn):Size(n){v=newint[size];for(inti=0;i標(biāo)準(zhǔn)答案:size=other.size;v=newint[size];for(inti=0;i知識點解析:主要考查的是ValArray類,其中涉及動態(tài)數(shù)組、構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)、析構(gòu)函數(shù)和const函數(shù)。注意動態(tài)數(shù)組的復(fù)制構(gòu)造函數(shù)要先給動態(tài)數(shù)組分配空間,再逐個元素復(fù)制?!窘忸}思路】主要考查考生對復(fù)制構(gòu)造函數(shù)的掌握,ValArray類的復(fù)制構(gòu)造函數(shù)應(yīng)實現(xiàn)對象的深層復(fù)制。由ValArray類的構(gòu)造函數(shù):ValArray(constint*p,intn):size(n){v=newint[size];//給v分配大小為size的空間for(inti=0;i<size;i++)//遍厲pv[i]=p[i];//把p[i]賦值給v[i]}可知類中v是動態(tài)數(shù)組,size表示數(shù)組長度,因此要先給v分配空間為size,再逐個元素復(fù)制以達到對象的深層復(fù)制。3、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中包含主程序文件main.cpp和用戶定義的頭文件Array.h,整個程序包含有類Array的定義和主函數(shù)main的定義。請把主程序文件中的Array類的成員函數(shù)Contrary()的定義補充完整,經(jīng)補充后運行程序,得到的輸出結(jié)果應(yīng)該是:585,4,3,2,10,0,8.4,5.6,4.5,3.4,2.3,1.2注意:只允許在“********333********”和“//********666********”之間填寫內(nèi)容,不允許修改其他任何地方的內(nèi)容。//Array.h#include<iostream>usingnamespacestd;template<classType,intm>classArray(//數(shù)組類public:Array(Typeb[],intmm){//構(gòu)造函數(shù)for(inti=0;i<m;i++)if(i<mm)a[i]=b[i];elsea[i]=0;}voidContrary();//交換數(shù)組a中前后位置對稱的元素的值intLength()const{returnm;}//返回數(shù)組長度Typeoperator[](inti)const{//下標(biāo)運算符重載為成員函數(shù)if(i<0‖i>=m){cout<<"下標(biāo)越界!"<<end1;exit(1);}returna[i];}private:Typea[m];};voidwriteToFile(constchar*);//不用考慮此語句的作用//main.cpp#include"Array.h"//交換數(shù)組a中前后位置對稱的元素的值template<classType,intm>voidArray<Type,m>∷Contrary(){//補充函數(shù)體//********333********//********666********}intmein(){intsl[5]={1,2,3,4,5};doubles2[6]={1.2,2.3,3.4,4.5,5.6,8.4);Array<int,5>d1(s1,5);Array<double,8>d2(s2,6);inti;d1.Contrary();d2.Contrary();cout<<d1.Length()<<"<<d2.Length()<<end1;for(i=0;i<4;i++)cout<<d1[i]<<",";cout<<d1[4]<<end1;for(i=0;i<7;i++)cout<<d2[i]<<",";cout<<d2[7]<<end1;writeToFile("");//不用考慮此語句的作用return0;}標(biāo)準(zhǔn)答案:for(inti=0,j=m-1;i<j;i++,j--){//i從0開始自加,j從數(shù)組最一位開始自減,條件是i<j,開始遍歷數(shù)組aTypetemp=a[i];//把a[i]賦值給變量tempa[i]=a[j];//把a[j]賦值給[j]a[j]=temp;//把temp賦值給a[j],最終使a[i]與a[j]值的互換}知識點解析:主要考查考生對交換算法的掌握情況,根據(jù)題目對要完成的函數(shù)Contrary的要求:交換數(shù)組a中前后位置對稱的元素的值。這里取下標(biāo)i=0,即為數(shù)組中的第一個元素,j=m-1,即為數(shù)組中的最后一個元素,利用中間值temp交換元素的值,然后i逐次遞增的同時j逐次遞減,再交換,循環(huán)到i>j時停止交換即可。4、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。(1)完成構(gòu)造函數(shù)的定義,請在注釋//********1********后添加適當(dāng)?shù)恼Z句。(2)定義類的友元函數(shù)fun(),請在注釋//********2********后添加適當(dāng)?shù)恼Z句。(3)定義類的友元函數(shù)main(),請在注釋//********3********后添加適當(dāng)?shù)恼Z句。(4)補充語句,釋放內(nèi)存。請在注釋//********4********后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。1#include<iostream.h>2classTestClass3{4public:5//********1********67{8data=d;9next=NULL;10}11voidSetNext(TestClass*p)12{13next=p;14}15private:16intdata;17TestClass*next;18//********2********1920//********3********2122};23TestClass*fun(TestClass*h)24{25TestClass*t,*s,*u,*v;26s=h一>next;27h->next=NULL;28while(s!=NULL)29{30for(t=s,v=h;v!=NULL&&v->data<t->data;u=v,v=v一>next);31s=s一>next;32if(v==h)33h=t;34else35u->next=v;36t一>next=v;37}38returnh;39}40voidmain()41{42TestClass*h=NULL;43TestClass*q=NULL,44do{45intdata;46cout<<’’pleaseinputanumber,andendwith0’’<<end1;47cin>>data;48if(data==0)break,49TestClass*p=newTestClass(data);50if(h==NULL)51{52h=q=p;53}54else55{56q一>SetNext(p);57q=p;58}59}while(1);60h=fun(h);6162for(;h!=NULL,)63{64q=h一>next;65cout<<h一>data<<’’’’<<end1;66deleteh;67//********4********68}69return;70}標(biāo)準(zhǔn)答案:(1)添加語句:Testclass(intd)(2)添加語句:friendTestClass*fun(TestClass*);(3)添加語句:friendvoidmain();(4)添加語句:h=q;知識點解析:本題的功能是將鍵盤輸入的數(shù)字建立一個鏈表。在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個補全或修改。從已定源程序的main主函數(shù)開始入手,可以看出程序通過調(diào)用類TestClass和函數(shù)fun實現(xiàn)各種輸出操作。(1)題目1要求“完成構(gòu)造函數(shù)的定義”。構(gòu)造函數(shù)是一種特殊的成員函數(shù),它的名字必須與類同名,所以這里的構(gòu)造函數(shù)名字是TestClass。根據(jù)構(gòu)造函數(shù)內(nèi)的“data=d;”語句,知道構(gòu)造函數(shù)TestClass中參數(shù)d為int型,即這里補全“TestClass(intd)”。(2)題目2要求“定義類的友元函數(shù)fun()”。在C++中,如果在本類以外的其它地方定義了一個函數(shù),在類體中是用friend對該函數(shù)進行聲明的,此函數(shù)稱為本類的友元函數(shù),并且能夠調(diào)用本類中的成員變量。程序中fun()在類TestClass以外的地方定義的,為了其實現(xiàn)對類TestClass中程序變量的調(diào)用,在類TestClass中補全“friendTestClass*fun(TestClass*);”。(3)題目3要求“定義類的友元函數(shù)main()。”同(2),這里補全“friendvoidmain();”。(4)題目4要求“補充語句,釋放內(nèi)存。”為了防止內(nèi)存泄漏,在指針使用后要將其釋放。第四個標(biāo)識前面的“deleteh;”語句已經(jīng)將指針h釋放了,所以要釋放指針q,只要將其指向h就可以了,即“h=q;”。5、使用VC6打開考生文件夾下的源程序文件modi3.cpp,其中定義了用于表示雇員的Employee類,但類Employee的定義并不完整。請按要求完成下列操作,將類CEmployee的定義補充完成。(1)定義私有數(shù)據(jù)成員name、street、city、zipcode和age分別用于表示姓名、街道、城市、郵編、年齡,除年齡是整型外其余都是char型的數(shù)據(jù)。請在注釋//********1********之后添加適當(dāng)?shù)恼Z句。(2)完成默認構(gòu)造函數(shù)CEmployee的定義,使其把參數(shù)傳遞給私有數(shù)據(jù)成員name、street、city、zipcode和age。請在注釋//********2********之后添加適當(dāng)?shù)恼Z句。(3)完成成員函數(shù)alterName(char*newName)的定義。請在注釋//********3********之后添加適當(dāng)?shù)恼Z句。(4)完成成員函數(shù)IsEqual(char*ename)的定義,實現(xiàn)當(dāng)name相等時返回真,否則為假的功能,請在注釋//********4********之后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。1#include<iostream.h>2#include<string.h>3#defineMAXLEN204classCEmployee5{6private:7//********1********89intage;10public:11CEmployee(char*newName,char*newStreet,char*newCt,char*newZp,intnewAge);12voidalterName(char*newName);13voiddisplay();14boolIsEqual(char*ename);15};16CEmpIoyee::CEmployee(char*newName,char*newStreet,char*newCt,char*newZp,intnewAge)17{18//********2********1920age=newAge;21}22voidCEmployee::alterName(char*newName)23{24//********3********2526}27boolCEmployee::IsEqual(char*ename)28{29//********4********3031}32voidCEmployee::display()33{34cout<<name<<’’’’<<street<<’’’’;35cout<<city<<’’’’<<zipcode<<’’’’<<age<<end1;36}37voidmain(void)38{39CEmployeeemployee[4]=40{41CEmployee(’’李偉’’,’’興榮路213號’’,’’蘭州’’,’’413412’’,21),42CEmployee(’’張星’’,’’南山街157號’’,’’貴州’’,’’534670’’,30),43CEmployee(’’趙曦’’,’’北大街108號’’,’’深圳’’,’’412440’’,43),44CEmployee(’’劉蘭’’,’’南大街330號’’,’’北京’’,’’670893’’,17),45};46for(inti=0;i<4,i++)47employee[i].display(),49cout<<’’\n修改\’’張星\’’的名字為\’’劉新\’’\n’’<<end1;50for(intj=0;j<4;j++)51{52if(employee[j].IsEqual(’’張星’’))53{54employee[j].a(chǎn)lterName(’’劉新’’);55employee[j].display();56break;57}58}59}標(biāo)準(zhǔn)答案:(1)添加語句:charname[MAXLEN],street[MAXLEN],city[MAXLZN],zipcode[MAXLEN];(2)添加語句:strcpy(name,newName);strcpy(street,newStreet);strcpy(city,newCt);strcpy(zipcode,newZp);(3)添加語句:strcpy(name,newName);(4)添加語句:returnstrcmp(name,ename)==0;知識點解析:程序中定義了一個表示雇員的類CEmployee,該類定義了私有數(shù)據(jù)成員name、street、city、zipcode和age分別用于表示姓名、街道、城市、郵編、年齡,同時定義了四個函數(shù)包括構(gòu)造函數(shù)以及三個成員函數(shù),分別實現(xiàn)更改雇員姓名,判斷雇員姓名以及顯示雇員信息功能。(1)第1個標(biāo)識下要求補充類CEmployee的私有數(shù)據(jù)成員name、street、city、zipcode和age的定義,分別用于表示姓名、街道、城市、郵編、年齡,除年齡是整型外其余都是char型的數(shù)據(jù),由主函數(shù)內(nèi)的對象數(shù)組可知,name、street、city、zipcode均為字符數(shù)組,故第1個標(biāo)識下應(yīng)添加“charname[MAXLEN],street[MAXLEN],city[MAXLEN],zipcode[MAXLEN];”。(2)構(gòu)造函數(shù)完成成員變量的初始化,這里需要給name、street、city、zipcode賦初值,可利用字符串拷貝函數(shù)將參數(shù)字符串拷貝到成員變量中,第2個標(biāo)識下應(yīng)添加“strcpy(name,newName);strcpy(street,newStreet);strcpy(city,newCt);strcpy(zipcode,newZp);”。(3)函數(shù)alterName(char*newName)是改變成員變量name的值,即將參數(shù)拷貝給name,可利用字符串拷貝函數(shù)strcpy()完成拷貝任務(wù),故第3個標(biāo)識下應(yīng)添加“strcpy(name.newName);”。(4)IsEqual(char*ename)函數(shù)是比較name成員變量和參數(shù)newName是否相同,可使用字符串比較函數(shù)strcmp(),第4個標(biāo)識下應(yīng)添加“returnstrcmp(name,ename)==0;”。國家二級C++機試(綜合應(yīng)用題)模擬試卷第4套一、綜合應(yīng)用題(本題共5題,每題1.0分,共5分。)1、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程文件proj3,此工程中包含一個源程序文件proj3.epp,其中定義了用于表示平面坐標(biāo)系中的點的類MyPoint和表示矩形的類MyRectangle;程序應(yīng)當(dāng)顯示:(0,2)(2,2)(2,0)(0,0)4但程序中有缺失部分,請按照以下提示,把缺失部分補充完整:(1)在“//**1******found****”的下方是構(gòu)造函數(shù)的定義,它用參數(shù)提供的左上角和右下角的坐標(biāo)對up_left和down_right進行初始化。(2)在“//**2******found****”的下方是成員函數(shù)getDownLeft的定義中的一條語句。函數(shù)getDownLeft返回用MyPoint對象表示的矩形的左下角。(3)在“//**3******found****”的下方是成員函數(shù)area的定義,它返回矩形的面積。注意:只在指定位置編寫適當(dāng)代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動“****found****”。//proj3.cpp#include<iostream>usingnamespacestd;classMyPoint{//表示平面坐標(biāo)系中的點的類doublex;doubley;public:MyPoint(doubleX,doubley){this->x=x;this->y=y(tǒng);)doublegetX()const{returnx;)doublegetY()const{returny;)voidshow()const{cout<<’(
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租借游艇問題課程設(shè)計
- 算法綜合設(shè)計課程設(shè)計
- 補貨管理的優(yōu)化與實施方案計劃
- 健身器材銷售業(yè)績總結(jié)
- 2024年煙花爆竹安全的應(yīng)急預(yù)案
- 銀行工作總結(jié)創(chuàng)新發(fā)展成果彰顯
- 醫(yī)藥包材采購心得總結(jié)
- 娛樂活動行業(yè)顧問工作總結(jié)提升娛樂活動吸引力
- 服務(wù)業(yè)會計工作內(nèi)容分析
- 2024年設(shè)備的管理制度范本
- 裝配式鋼筋混凝土簡支T梁設(shè)計
- COMMERCIAL INVOICE 商業(yè)發(fā)票
- 大氣課程設(shè)計-—袋式除塵器
- 普天超五類檢測報告
- 會計師事務(wù)所業(yè)務(wù)培訓(xùn)制度
- CMM2-18錨桿機(新)說明書
- 12噸汽車起重機基本技術(shù)規(guī)格資料
- WEB開發(fā)基礎(chǔ)-2021秋本-計算機科學(xué)與技術(shù)本復(fù)習(xí)資料-國家開放大學(xué)2022年1月期末考試復(fù)習(xí)資料
- 安徽省政協(xié)機關(guān)文件材料歸檔范圍
- 本質(zhì)安全理論綜述研究
- 代建項目管理工作大綱
評論
0/150
提交評論