




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級C++機(jī)試(操作題)模擬試卷7(共9套)(共26題)國家二級C++機(jī)試(操作題)模擬試卷第1套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1,其中在編輯窗口內(nèi)顯示的主程序文件中定義有類ABC和主函數(shù)main。程序文本中位于每行“//ERROR****found****”之后的一行語句有錯誤,請加以改正,改正后程序的輸出結(jié)果應(yīng)該是:2123注意:只修改每個“//ERROR****found****”下面的一行,不要改動程序中的其他任何內(nèi)容。#includeusingnamespacestd;classABC{public://ERROR*******found*******ABC(){a=0;b=0;c=0;}ABC(intas,intbb,intcc);voidSetab(){++a,++b;}intSum(){returna+b+c;}private:inta,b;constintc;};ABC::ABC(intas,intbb,intcc):c(cc){a=aa;b=bb;}intmain(){ABCx(1,2,3),y(4,5,6);ABCz,*w=&z,w->Setab();//ERROR*******found*******ints1=x.Sum()+y->Sum();cout<標(biāo)準(zhǔn)答案:(1)ABC():a(0),b(0),c(0){}(2)intsl=x.Sum()+y.Sum();(3)ints2=sl+w->Sum();知識點(diǎn)解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握情況,根據(jù)私有成員的定義:constintc;可知,c為常變量,因此構(gòu)造函數(shù)必須使用成員列表初始化來給c賦初始值。(2)主要考查考生對類的指針的掌握情況,根據(jù)主函數(shù)的第一條語句:ABCx(1,2,3),y(4,5,6);可知,x和y都是ABC類,但不是指針,因此它們調(diào)用ABC類的成員函數(shù)要使用標(biāo)識符“.”,而不是“->”。(3)主要考查考生對類的指針的掌握情況,根據(jù)主函數(shù)的第二條語句:ABCz,*w=&z;可知,w是ABC類的指針,指向z,因此w調(diào)用ABC類的成員函數(shù)時要使用標(biāo)識符“->”,而不是“.”。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,此工程中含有一個源程序文件proj2.epp。函數(shù)char*GetNum(char*src,char*buf)從sre開始掃描下一個數(shù)字字符序列,并將其作為一個字符串取出放入字符串空間buf中。函數(shù)返回掃描的終止位置,如果返回NULL表示沒有掃描到數(shù)字字符序列。運(yùn)行程序時,如果輸入的一行字符序列是ABC012XYZ378MN274WS則輸出為:Digitstring1is012Digitstring2is378Digitstring3is274注意:只在橫線處編寫適當(dāng)代碼,不要刪除或移動“//****found****”。//proj2.cpp#includeusingnamespacestd;char*GetNum(char*src,char*buf){while(*src!=’\0’){if(isdigit(*Src))break;src++;}if(*src==’\0’)//*********found*********______________;while(*src!=’\0’&&isdigit(*src)){//*********found*********____________;buf++;src++;}*buf=’\0’;returnRsrc;}intmain(){charstr[100],digits[20];cin.getline(str,100);char*p=str;inti=1;while((p=GetNum(p,digits))!=NULL){cout<<"Digitstring"<標(biāo)準(zhǔn)答案:intmin=x.a(chǎn)知識點(diǎn)解析:主要考查考生對友元函數(shù)的掌握情況,友元函數(shù)可以訪問類的私有數(shù)據(jù)成員,題目要求函數(shù)求出兩個數(shù)據(jù)成員的大于1的最小公因子,從2開始往上算,因此要同時可以被兩個私有成員整除,這里用取余符號完成,取余為0即為整除。國家二級C++機(jī)試(操作題)模擬試卷第2套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請打開考生文件夾下的解決方案文件proj1。程序中位于每個//ERROR****found****下一行的語句有錯誤,請加以更正。更正后程序的輸出應(yīng)為:Thevalueis5Thevalueis10Thereare2objects.Thereare1objects.注意:只修改每個//ERROR****found****下的那一行,不要改動程序中的其他內(nèi)容。#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intvalue){//ERROR**********found**********this.value=value;count++;}//ERROR**********found**********void~MyClass(){count--;}staticintgetCount(){returncount;}intgetValue(){returnvalue;}private:intvalue;staticintcount;};//ERROR**********found**********staticintMyClass::count=0;intmain(){MyClass*p=newMyClass(5);MyClass*q=newMyClass(10);cout<<"Thevalueis"<<p->getValue()<<endl;cout<<"Thevalueis"<<q->getValue()<<endl;cout<<"Thereare"<<MyClass::getCount()<<"objects."<<endl;deletep;cout<<"Thereare"<<MyClass::getCount()<<"objects."<<endl;return0;}標(biāo)準(zhǔn)答案:(1)this->value=value;(2)~MyClass()(3)intMyClass::count=0;知識點(diǎn)解析:(1)主要考查考生對this指針的掌握,this是一個指針變量,調(diào)用成員時應(yīng)使用標(biāo)識符"->"。(2)主要考查考生對析構(gòu)函數(shù)的掌握.定義析構(gòu)函數(shù)時不能使用任何返回類型。(3)主要考查考生對靜態(tài)成員的掌握,靜態(tài)成員賦值時不用添加static,但聲明時要使用。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,其中定義了Shape類和Point類。Shape類表示抽象的形狀,其成員函數(shù)draw聲明了顯示形狀的接口。Point是Shape的派生類,表示平面直角坐標(biāo)系中的點(diǎn),其成員函數(shù)draw用于在屏幕上顯示Point對象;成員函數(shù)distance用于計(jì)算兩個點(diǎn)之間的距離。提示:在平面直角坐標(biāo)系中,點(diǎn)(x1,y2)和點(diǎn)(x2,y2)之間的距離為:d=;標(biāo)準(zhǔn)庫函數(shù)sprt用于求平方根。請?jiān)跈M線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:(3,0)(0,4)Distance=5注意:只在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動"****found****"。#include<iostream>#include<math.h>usingnamespacestd;classShape{public://**********found**********______________________________virtual~Shape(){}};classPoint:publicShape{public:Point(doublex,doubley):x_(x),y_(y){}virtualvoiddraw()const;//**********found**********doubledistance(_____________)const{returnsqrt((x_-pt.x_)*(x_-pt.x_)+(y_-pt.y_)*(y_-pt.y_));}private://**********found**********____________________};voidPoint::draw()const{//**********found**********cout<<’(’<<__________<<’)’<<endl;}intmain(){Point*pt1=newPoint(3,0);Point*pt2=newPoint(0,4);Shape*s=pt1;s->draw();s=pt2;s->draw();cout<<"Distance="<<pt1->distance(*pt2)<<endl;deletept1;deletept2;return0;}標(biāo)準(zhǔn)答案:(1)virtualvoiddraw()const=0;(2)constPoint&pt(3)doublex_,y_:(4)x_<<’,’<<y_知識點(diǎn)解析:(1)主要考查考生對純虛函數(shù)的掌握,參考在派生類中該函數(shù)的定義可得到,注意純虛函數(shù)要"=0"。(2)主要考查考生對成員函數(shù)的掌握,由函數(shù)體可知形參為constPoint&pto(3)主要考查考生對私有成員的掌握,由構(gòu)造函數(shù)可知私有成員為doublex_,y_。(4)根據(jù)題目要求輸出私有成員變量x_,y_。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,其中聲明的Matrix是一個用于表示矩陣的類。其成員函數(shù)transpose的功能是實(shí)現(xiàn)矩陣的轉(zhuǎn)置運(yùn)算。將矩陣A的行列互換,所得到的矩陣稱為A的轉(zhuǎn)置,記作AT。例如,若有3x3矩陣則A的轉(zhuǎn)置為AT=請編寫成員函數(shù)transpose,以實(shí)現(xiàn)矩陣轉(zhuǎn)置功能。要求:補(bǔ)充編制的內(nèi)容寫在//**********333**********與//**********666**********之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。//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;}voidtranspose();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*,Matrix&);//main.cpp#include<fstream>#include"Matrix.h"voidreadFromFile(constchar*filename,Matrix&m){ifstreaminfile(filename);if(!infile){cerr<<"無法讀取輸入數(shù)據(jù)文件?。躰";return;}intd;for(inti=0;i<M;i++)for(intj=0;j<N;j++){infile>>d;m.setElement(i,j,d);}}voidMatrix::transpose(){//********333********//********666********}intmain(){Matrixm;readFromFile("in.dat",m);m.show("Beforetranspose:");m.transpose();m.show("Aftertranspose:");writeToFile("",m);return0;}標(biāo)準(zhǔn)答案:for(inti=0;i<M;i++)for(intj=0;j<i;j++){inttemp=array[i][i];array[i][j]=array[j][i];array[j][i]=temp;}知識點(diǎn)解析:主要考查考生對二維數(shù)組的掌握,程序用二維數(shù)組表示矩陣,編寫矩陣轉(zhuǎn)置功能。要實(shí)現(xiàn)矩陣的轉(zhuǎn)置,只要使矩陣中的元素array[i][j]與array[j][i]交換.程序使用循環(huán)語句遍歷矩陣元素,外層循環(huán)用于控制行下標(biāo),內(nèi)層循環(huán)用于控制列下標(biāo)。國家二級C++機(jī)試(操作題)模擬試卷第3套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時有錯,請改正錯誤,使得程序正確執(zhí)行,并且輸出以下語句:TestClass1:0TestClass2注意:不要改動main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯誤的語句在//******error******的下面。1#include<iostream.h>2structTestClass13{4TestClass1(inti=0)5{6m_i=i;7}8voidprint()9{10cout<<’’TestClass1:’’<<m_i<<end1;11};12intm_i;13};14classTestClass215{16public:17TestClass2()18{19}20voidprint()21{22cout<<’’TestClass2’’<<end1;23};24//********error********25private:26~TestClass2()27{28}29};30intmain()31{32//********error********33TestClass1obj1();34//********error********35TestClass2obj2();36obj1.print();37obj2.print();38return0;39}標(biāo)準(zhǔn)答案:(1)public:(2)TestClasslobj1(0);或TestClass1obj1;(3)TestClass2obj2;知識點(diǎn)解析:程序要求輸出TestClass1:0和TestClass2。從已定源程序的main主函數(shù)開始入手,可以看出程序首先定義TestClass1和TestClass2類型的變量,然后通過調(diào)用其中的print成員函數(shù)實(shí)現(xiàn)輸出結(jié)果。(1)第1個標(biāo)識下的“private:~TestClass2()”是析構(gòu)函數(shù),它不是私有的,所以這里應(yīng)該為“刪除private:或修改為public:”。(2)第2個標(biāo)識下的“TestClass1obj1();”語句是定義一個TestClass1類型的對象obj1(),根據(jù)類TestClass1構(gòu)造函數(shù)的定義“TestClass1(inti=0)”,知道存在整型參數(shù),應(yīng)該補(bǔ)充參數(shù),或者只是先定義一個對象名,然后在使用時補(bǔ)充參數(shù),即修改為“TestClass1obj1(0);或TestClass1obj1;”。(3)同理第3個標(biāo)識下的“TestClass2obj2();”語句修改為“TestClass2obj2;”。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。完成函數(shù)fun(char*s,inta[]),其功能是把s中出現(xiàn)的數(shù)字轉(zhuǎn)換成數(shù)字存儲在a[]中,然后返回轉(zhuǎn)換的個數(shù)。例如:s=’’1234abcdef567’’;則:a[]中存儲著1234567返回:7注意:不能修改程序的其他部分,只能修改fun()函數(shù)。1#include<iostream.h>2intfun(char*s,inta[])3{45}6intmain()7{8inta[1024];9intlen=fun(’’1234abcdef567’’,a);10for(inti=0;i<len;i++)11{12cout<<a[i]<<’’;13}14cout<<end1;15cout<<i<<end1;16return0;17}標(biāo)準(zhǔn)答案:1intj=0;2for(inti=0;s[i]!=0;i++)//字符串內(nèi)循環(huán)3{4if(s[i]>=’0’&&s[i]<=’9’)//判斷字符是否為0~9的字符5{6a[j++]=s[i]-;0’;//如果為0~9的字符,轉(zhuǎn)換為整型7}8}9returnj;//返回?cái)?shù)字個數(shù)知識點(diǎn)解析:(1)該程序功能是把字符串中出現(xiàn)的數(shù)字轉(zhuǎn)換成數(shù)字存儲在數(shù)組中,然后返回轉(zhuǎn)換的個數(shù)。其中,字符和整型的ASCII差為96,即為’0’的ASCII碼值。(2)從已給部分源程序的main主函數(shù)開始入手,核心函數(shù)fun實(shí)現(xiàn)題目中要求的功能,其中intfun(char*s,inta[])中的s為要轉(zhuǎn)換的字符串,a為存放轉(zhuǎn)換為數(shù)字的數(shù)組,返回值為轉(zhuǎn)換的個數(shù)。(3)j變量用來記錄轉(zhuǎn)換的個數(shù),首先初始化為0。(4)然后利用for循環(huán)對每一個當(dāng)前字符進(jìn)行判斷是否為數(shù)字字符。(5)如果為數(shù)字字符,就將其減去字符’0’,即實(shí)現(xiàn)字符和整型的轉(zhuǎn)換。并且,將j的變量值加1。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。類Person完成對人的姓名和年齡的綁定。函數(shù)fun()獲得年齡比較大的姓名。然后輸出這個姓名到屏幕。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)完成類的構(gòu)造函數(shù),請?jiān)谧⑨專?*******1********后添加適當(dāng)?shù)恼Z句。(2)完成構(gòu)造函數(shù)對姓名的賦值,請?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z句。(3)定義類的友元函數(shù)fun(),請?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z句。(4)補(bǔ)充函數(shù)fun()的年齡比較,請?jiān)谧⑨專?*******4********后添加適當(dāng)?shù)恼Z句。注意:增加代碼,或者修改代碼的位置已經(jīng)用符號表示出來。請不要修改其他的程序代碼。1#include<iostream.h>2classPerson3{4public:5//********1********67{8inti;9for(i=0;sUserrName[i]!=0;i++)10{11m_UserName[i]=sUserrName[i];12}13//********2********1415m_Old=nOld;16}17private:18charm_UserName[32];19intm_Old;20//********3********2122};23voidfun(char*s,Person&person1,Person&person2)24{25//********4********26if()27{28for(inti=0;person1.m_UserName[i]!=0;i++)29{30s[i]=person1.m_UserName[i];31s[i+1]=0;32}33}34else35{36for(inti=0;person2.m_UserName[i]!=0;i++)37{38s[i]=person2.m_UserName[i];39s[i+1]=0;40}41}42}43voidmain()44{45chars[32];46Personp1(’’abc’’,20);47Personp2(’’def’’,30);48fun(s,p1,p2);49cout<<s<<end1;50return;51}標(biāo)準(zhǔn)答案:(1)添加語句:Person(char*sUserrName,intnO1d)(2)添加語句:m_UserName[i]=0;(3)添加語句:friendvoidfun(char*s,Person&person1,Person&person2);(4)將“if()”補(bǔ)充完整為:if(person1.m_O1d>person2.m_O1d)知識點(diǎn)解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個補(bǔ)全或修改。從已定源程序的main主函數(shù)開始入手,函數(shù)fun是輸出年齡較大的姓名,類Person記錄了姓名和年齡。(1)題目1要求“完成類的構(gòu)造函數(shù)”。根據(jù)“classPerson”語句知道Person為類,所以類Person的構(gòu)造函數(shù)名為Person,根據(jù)第1個標(biāo)識下的大括弧中的語句知道函數(shù)中的參數(shù)為數(shù)組sUserrName存放姓名,整型nOld存放年齡,所以補(bǔ)充構(gòu)造函數(shù)定義為“Person(char水sUserrName,intnOld)”。(2)題目2要求“完成構(gòu)造函數(shù)對姓名的賦值”。根據(jù)(1)中的分析,在第2個標(biāo)識下補(bǔ)全姓名賦值,即“m_UserName[i]=0;”。(3)題目3要求“定義類的友元函數(shù)fun()”。在C++中,如果在本類以外的其它地方定義了一個函數(shù),在類體中是用friend對該函數(shù)進(jìn)行聲明的,此函數(shù)稱為本類的友元函數(shù),并且能夠調(diào)用本類中的成員變量。程序中的fun函數(shù)定義為“voidfun(char*s,Person&person1,Person&person2)”,所以聲明fun()為類Person的友元函數(shù),即這里補(bǔ)全“friendvoidfun(char*s,Person&person1,Person&person2);”。(4)題目4要求“補(bǔ)充函數(shù)fun()的年齡比較”。類Person中年齡的變量為m_O1d,根據(jù)C++中類變量的調(diào)用格式補(bǔ)充第4個標(biāo)識下,if判斷中的條件語句,即“if(person1.m_O1d>person2.m_O1d)”。國家二級C++機(jī)試(操作題)模擬試卷第4套一、基本操作題(本題共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(){delete[]p;}(3)voidprint(MyClass&obj)知識點(diǎn)解析:(1)主要考查考生對構(gòu)造函數(shù)的掌握,在這里不能使用賦值語句。(2)主要考查考生對析構(gòu)函數(shù)的掌握,析構(gòu)函數(shù)的delete語句要使用標(biāo)識符“[]”,即delete[]p;。(3)主要考查考生對友元函數(shù)的掌握,友元函數(shù)并不屬于類,因此定義時前面不用加類名和作用域符號。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請打開考生文件夾下的解決方案文件proj2,此工程中包含一個程序文件main.cpp,其中有“班級”類Class和“學(xué)生”類Student的定義,還有主函數(shù)main的定義。在主函數(shù)中定義了兩個“學(xué)生”對象,他們屬于同一班級。程序展示,當(dāng)該班級換教室后,這兩個人的教室也同時得到改變。請?jiān)跈M線處填寫適當(dāng)?shù)拇a,然后刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:改換教室前:學(xué)號:0789姓名:張三班級:062113教室:521學(xué)號:0513姓名:李四班級:062113教室:521改換教室后:學(xué)號:0789姓名:張三班級:062113教室:311學(xué)號:0513姓名:李四班級:062113教室:311注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容。#include<iostream>usingnamespacestd;classClass{//“班級”類public:Class(constchar*id,constchar*Eoom){strcpy(classid,id);//**********found**********_____________}constchar*getClassTD()const{returnclass_id;}//返回班號//**********found**********constchar*getClassEoom()const{________}//返回所在教室房號voidchangeRoomTo(constchar*new_Eoom){//改換到另一個指定房號的教室strcpy(classroom,new_room);}private:charclass_id[20];//班號charclassroom[20];//所在教室房號};classStudent{//“學(xué)生”類charmy_id[10];//學(xué)號charmy_name[20];//姓名Class&my_class;//所在教室public://**********found**********Student(constchar*the_id,constchar*the_name,Class&the_class):__________{strcpy(my_id,the_id);strcpy(my_name,the_name);}constchar*getID()const{returnmy_id;}constchar*getName()const{returnmy_name;}ClassgetClass()const{returnmy_class;}};voidshowStudent(Student*stu){cout<<"學(xué)號:"<<stu->getID()<<"";cout<<"姓名:"<<stu->getName()<<"";cout<<"班級:"<<stu->getClass().getClasSID()<<"";cout<<"教室:"<<stu->getClass().getClassroom()<<endl;}intmain(){ClasScla("062113","521");StudentZhang("0789","張三",cla),Li("0513","李四",cla);cout<<"改換教室前:"<<endl;showStudent(&Zhang);showStudent(&Li);//062113班的教室由521改換到311//**********found**********________cout<<"改換教室后:"<<endl;showStudent(&Zhang);showStudent(&Li);return0;}標(biāo)準(zhǔn)答案:(1)strcpy(classroom,room);(2)returnclassroom;(3)my_class(the_class)(4)cla.changeRoomTo("311");知識點(diǎn)解析:(1)主要考查考生對strcpy函數(shù)的掌握情況,根據(jù)上一條語句:strcpy(class_id,id);可知,這條語句要復(fù)制字符串room,因此使用strcpy函數(shù)復(fù)制,即strcpy(classroom,room);。(2)主要考查考生對函數(shù)返回值的掌握情況,根據(jù)函數(shù)要求:返回所在教室房號及函數(shù)要求返回的類型為constchar*,可以得出這里直接使用return語句返回classroom即可。(3)主要考查考生對構(gòu)造函數(shù)的掌握情況,先看函數(shù)體中:strcpy(my_id,the_id);strcpy(my_name,the_name):可知只有參數(shù)Class&the_class未使用,因此在這里使用成員列表初始化給my_class賦初始值。(4)主要考查考生對成員函數(shù)調(diào)用的掌握,程序要求052113班的教室由521改換到311。在類Class中已經(jīng)定義了函數(shù):voidchangeRoomTo(constchar*new_room),因此直接調(diào)用函數(shù)changeRoomTo即可。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請打開考生文件夾下的解決方案文件proj3,其中聲明的DataList類,是一個用于表示數(shù)據(jù)表的類。sort成員函數(shù)的功能是將當(dāng)前數(shù)據(jù)表中的元素升序排列。請編寫這個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:DataLlst(intlen,doubledata[]=NULL);~DataList(){delete[]d;}intlength()const{returnlen;)//數(shù)據(jù)表長度(即數(shù)據(jù)元素的個數(shù))doublegetElement(inti)consL{returnd[i];}voidsort();//數(shù)據(jù)表排序voidshow()const;//顯示數(shù)據(jù)表};voidwriteToFile(char*,constDataList&);//main.cpp#include"DataList.h"DataList::DataList(intlen,doubledata[]):len(fen)(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]<<",";couL<<d[len—1]<<endl;}intmain(){doubles[]={7,1,3,11,6,9,12,10,8,4,5,2};DaLaListlist(12,s);cout<<"排序前:";list.show();list.soft();cout<<endl<<”排序后:”;list.show();writeToFile("",list);return0;}標(biāo)準(zhǔn)答案:for(int1=0;i<len;++1)//從頭遍歷數(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];//把臨時整型變量temp賦值為d[i]d[i]=d[j];//把d[j]賦值給d[i]d[j]=temp;//把temp值賦給d[j]}知識點(diǎn)解析:本題使用最簡單的冒泡排序算法,首先明確要排序的動態(tài)數(shù)組d,其長度為len,在此可以使用兩個下標(biāo)i和j相比較,當(dāng)d[i]>d[j]時,數(shù)組內(nèi)的值利用中間變量temp進(jìn)行交換。國家二級C++機(jī)試(操作題)模擬試卷第5套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時有錯,請改正其中的錯誤,使程序正確運(yùn)行,并且使程序輸出的結(jié)果為:HelloVisualC++!HelloVisualC++!!注意:錯誤的語句在//******error******的下面,修改該語句即可。1#include<iostream.h>2classCMyObject3{4public:5CMyObject()6{7//******error******8cout<<’’Hello,9’’VisualC++!’’<<end1;10}11CMyObject(intn)12{13//******error******14cout<<’’Hello,\n15visualC++!!’’<<end1;16}17//******error******18∧CMyObject()19{20}21};22voidmain()23{24CMyObjectobj1;25CMyObjectobj2(0);26}標(biāo)準(zhǔn)答案:(1)cout<<’’Hello,’’(2)cout<<’’Hello,\(3)~CMyObject()知識點(diǎn)解析:程序當(dāng)中定義了類CMyObject,含有兩個構(gòu)造函數(shù)和一個析構(gòu)函數(shù),在構(gòu)造函數(shù)內(nèi)部均使用cou輸出一段字符。(1)由程序的運(yùn)行結(jié)果可知,語句CMyObjectobj1;定義obj1對象調(diào)用默認(rèn)的構(gòu)造函數(shù),此時屏幕上輸出“HelloVisualC++!”,cout流中的數(shù)據(jù)是用流插入運(yùn)算符“<<”順序加入的,第1個標(biāo)識下“Hello,”字符串插在輸出流中,因此必須加雙引號引用起來,即第1個標(biāo)識下應(yīng)該為“cout<<’’Hello,’’”。(2)第2個標(biāo)識下“\n”表示換行,與要求的輸出結(jié)果不同,因此第2個標(biāo)識下應(yīng)改為“cout<<’’Hello,\”。(3)析構(gòu)函數(shù)是一個特殊的函數(shù),其函數(shù)名與類名相同,并在其名加“~”,用來與構(gòu)造函數(shù)加以區(qū)別,因此第3個標(biāo)識下應(yīng)改為“~CMyObject()”。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼。函數(shù)MergeAndSort(ints[],inte[],inta[],intm,intn)實(shí)現(xiàn)將兩個數(shù)組合并。這兩個數(shù)組已經(jīng)有序,按照由小到大的順序排列。例如:e[]={1,3,5,6},m是數(shù)組e的長度,即為4。a[]={2,4,5,7,11,13},n是數(shù)組a的長度,即為6。則執(zhí)行的結(jié)果為:s[]={1,2,3,4,5,6,7,11,13}補(bǔ)充函數(shù)fun(ints[],inte[],inta[],intm,intn),使之實(shí)現(xiàn)上述要求。注意:請勿改動主函數(shù)。1#include<iostream.h>2voidMergeAndSort(ints[],inte[],inta[],intm,intn]3{45}6intmain()7{8intdata[20],i;9inta[]={1,3,5,6};10intb[]={2,4,5,7,11,13};11cout<<’’a[]=’’;12for(i=0;i<4;i++)13cout<<a[i]<<’,’;14cout<<end1;15cout<<’’b[]=’’;16for(i=0;i<6;i++)17cout<<b[i]<<’,’;18cout<<end1;19MergeAndSort(data,a,b,4,6);20cout<<’’s[]=’’;21for(i=0;i<9;i++)22cout<<data[i]<<’,’;23cout<<end124return0;25}標(biāo)準(zhǔn)答案:1inti,j,k;2i=0;3j=0;4k=0;5while(i<m&&:j<n)6{7if(e[i]<a[j])8{9s[k++]=e[i++];//取小的,因?yàn)閺男〉酱笈判?0}11elseif(e[i]==a[j])//相等,取e[i]或a[j]都可12{13s[k++]=e[i];14i++;15j++;16}17else//e[i]>a[j],取小的a[j]18{19s[k++]=a[j++];20}21}22while(i<m)s[k++]=e[i++];//如果數(shù)組e后面還有沒有加進(jìn)來的元素,則加進(jìn)去23while(j<n)s[k++]=a[j++];//如果數(shù)組a后面還有沒有加進(jìn)來的元素,則加進(jìn)去知識點(diǎn)解析:函數(shù)MergeAndSort(ints[],inte[],inta[],intm,intn)實(shí)現(xiàn)將數(shù)組e和數(shù)組a的合并,這兩個數(shù)組已經(jīng)照由小到大的順序排列,因此只需逐個比較e數(shù)組和a數(shù)組的元素值,每次取兩個元素值的小的,如果相等則取兩個當(dāng)中的任意一個均可。(1)由審題分析可知,可設(shè)置循環(huán)來逐個讀取e數(shù)組和a數(shù)組的元素值,然后選擇小的元素放在數(shù)組s中,如果相等則取a數(shù)組元素或e數(shù)組元素均可,可以利用ifelse語句來進(jìn)行判斷。(2)由于數(shù)組e和數(shù)組a長度可能不一定相同,因此在循環(huán)結(jié)束之后,還需要把長度長的數(shù)組的剩余的元素添加到s數(shù)字中,即循環(huán)結(jié)束后如果e數(shù)組內(nèi)還有字符的話把e數(shù)組內(nèi)剩下的字符添加到S數(shù)組內(nèi),同樣如果a數(shù)組內(nèi)還有字符的話把a(bǔ)數(shù)組內(nèi)剩下的字符添加到s數(shù)組內(nèi)。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(I)定義CMyTime的私有成員函數(shù)m_year、m_month類型為int,請?jiān)谧⑨專?*******1********后添加適當(dāng)?shù)恼Z句。(2)補(bǔ)充完成CMyTime的構(gòu)造函數(shù),完成對m_year、m_month的賦值,請?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z句。(3)完成print()的輸出,請?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z句。輸出格式如下:CurrentTimeyear:xxmonth:xx注意:xx表示兩位0~9的數(shù)字,如CurrentTimeyear:08month:04。(4)完成對month的增加函數(shù)AddMonth(intm),請?jiān)谧⑨專?*******4********后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。1#include<iostream.h>2classCMyTime3{4private:5//********1********67public:8CMyTime(intyear,intmonth)9{10//********2********1112}13voiddisplay()14{15charyearChar[3];16charmonthChar[3];17yearChar[0]=(m_year%100)/10+’0’;18yearChar[1]=(m_year%10)+’0’;19monthChar[0]=(m_month%10)/10+’0’’;20monthChar[1]=(m_month%10)+’0’;21//********3********2223cout<<’’CurrentTime¨<<¨year:’’<<yearChar<<¨month:’’<<monthChar<<end1;24}25voidAddMonth(intm)26{27m_month=m_month-1+m;28//********4********2930m_month=m_month%12+1;31}32voidAddYear(intn)33{34m_year=m_year+n;35}36};37intmain()38{39CMyTimemyTime(2006,11);40myTime.AddMonth(5);41myTime.display();42myTime.AddYear(1);43myTime.display();44return0;45}標(biāo)準(zhǔn)答案:(1)添加語句:intm_year,m_month;(2)添加語句:m_year:year;m_month=month;(3)添加語句:yearChar[2]=0;monthChar[2]=0;(4)添加語句:m_year+=m_month/12;或m_year=m_year+m_month/12;知識點(diǎn)解析:程序中定義了類CMyTime,含有m_year和m_month兩個成員變量,成員函數(shù)display()顯示成員變量的值,AddMonth(intm)和AddYear(intn)函數(shù)分別改變m_month和m_year個成員變量的值。(1)第1個標(biāo)識下添加CMyTime的私有成員變量m_year、m_month的聲明,因此第1個標(biāo)識下應(yīng)添加“intm_year,m_month;(2)第2個標(biāo)識下完成類成員構(gòu)造函數(shù)變量的初始化,即將參數(shù)分別賦值給m_year和m_month,因此第2個標(biāo)識下應(yīng)添加“m_year=year;m_month=month;”。(3)第3個標(biāo)識下準(zhǔn)備輸出yearChar數(shù)組和monthChar數(shù)組,字符數(shù)組的最后一個字符應(yīng)該為NULL(0),因此第3個標(biāo)識下應(yīng)添加“yearChar[2]=0;monthChar[2]=0;”。(4)m_month和參數(shù)之和賦值給m_month,其和可能超過12,如果超過12表示下一年了,因此m_year應(yīng)該加1,故先判斷m_month是否比12大,可取m_onth/12和m_year相加,如果m_month沒有超過12則m_month/12=0,反之則為1,第4標(biāo)識下應(yīng)添加“m_year+=m_month/12;或m_year=m_year+m_month/12;”。國家二級C++機(jī)試(操作題)模擬試卷第6套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時有錯誤,請改正錯誤,使得程序輸出:Hellotest注意:不要改動main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯誤的語句在//******error******的下面。1#include<iostream>2//********error********3template<T>4voidfun(Tt)5{6std::cout<<’’test’’<<std::end1;7}8//********error********9template<bool>10voidfun(boolt)11{12std::cout<<(t?’’Hello’’:’’Hi’’)<<std::endlj13}14intmain()15{16//********error********17boolflag=TRUE;18fun(flag);19fun((int)flag);20return0;21}標(biāo)準(zhǔn)答案:(1)template<classT>(2)刪除“template<bool>”(3)boolflag=true;知識點(diǎn)解析:程序要求輸出字符串Hellotest。從已定源程序的main主函數(shù)開始入手,調(diào)用函數(shù)fun實(shí)現(xiàn)字符的輸出。(1)C++中的模板類格式為template<classT>,所以將題目中程序中的第1個標(biāo)識下語句“template<T>”修改為“template<classT>”。(2)在第2個標(biāo)識下的“voidfun(boolt)”函數(shù)中,其中t變量為布爾型變量,是C++中的基礎(chǔ)變量,并不是模板變量,并沒有使用到模板類,所以刪除第2個標(biāo)識下的模板類型定義語句。(3)第3個標(biāo)識下的“boolflag=TRUE;”是聲明布爾型變量flag,并將其值賦為邏輯真。而TRUE并不是合法值,C++中區(qū)分大小寫,所以邏輯真值應(yīng)為true,即“boolflag=true;”。二、簡單應(yīng)用題(本題共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)。1#include<iostream>2#include<fstream>4#include<cmath>4usingnamespacestd;5voidWriteFile(char*s)6{78}9voidfun(char*s)10{1112}13voidClearFile()14{15Ofstreamout1;16out1.open(’’modi2.txt’’);17out1.close();18}19intmain()20{21ClearFile();22chars[1024];23cout<<’’pleaseinputastring:’’<<end1;24cin.getline(s,1024);25fun(s);26return0;27}標(biāo)準(zhǔn)答案:(1)voidWriteFile(char*s)中的命令語句:1ofstreamont1;2out1.open(’’modi2.txt’’,ios_base::binary|ios_base::app);//打開文件modi23out1<<s;//寫入字符串s4out1.close();(2)voidfun(char*s)中的命令語句:1for(inti=0;s[i]!=0;i++)//循環(huán)判斷每一個字符2{3if(s[i]>=’A’&&s[i]<=’Z’)//如果是大寫字符,轉(zhuǎn)換為小寫字符4{5s[i]=s[i]=’A’+’a’;//’s[i]-’A’+’a’等于字符s[i]+32’6}7Elseif(s[i]>=’a’&&s[i]<=’Z’)//如果是小寫字符,轉(zhuǎn)換為大寫字符8{9s[i]=s[i]-’a’+’A’;//’s[i]-’a’+’A’等于字符s[i]-3210}11}12WriteFile(s);知識點(diǎn)解析:(1)本題要求實(shí)現(xiàn)兩個函數(shù)的功能,其中WriteFile(char*s)實(shí)現(xiàn)把字符串輸入到文件中;fun(char*s)函數(shù)實(shí)現(xiàn)大寫字母轉(zhuǎn)換成小寫字母,把其中的小寫字母轉(zhuǎn)換成大寫字母。其中大小寫字母之間的ASCII碼差為32。(2)從已給部分源程序的main主函數(shù)開始入手,首先實(shí)現(xiàn)WriteFile函數(shù),然后再實(shí)現(xiàn)fun函數(shù),并在其中調(diào)用WriteFile函數(shù)。(3)在WriteFile(char*s)函數(shù)中,利用標(biāo)準(zhǔn)流ofstream實(shí)現(xiàn)字符串寫入文件modi2.txt。(4)在fun函數(shù)中,利用for循環(huán)逐個判斷字符是大寫還是小寫。(5)如果是大寫,那么加上32實(shí)現(xiàn)大寫轉(zhuǎn)換為小寫。否則,就減去32,實(shí)現(xiàn)小寫到大寫的轉(zhuǎn)換。最后調(diào)用前面實(shí)現(xiàn)的WriteFile函數(shù),將字符串寫入文件。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。通過繼承完成輸入到屏幕指定的信息:TestClassATestClassBTestClassC其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)完成類B虛繼承于A,請?jiān)谧⑨?,/?***************后添加適當(dāng)?shù)恼Z句。(2)完成類C虛繼承于A,請?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z句。(3)完成類D繼承于B,C,請?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z句。(4)函數(shù)fun通過調(diào)用基類的fun,完成所輸出的內(nèi)容,請?jiān)谧⑨專?*****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:”補(bǔ)充完整為:classTestClassB:virtualpublicTestClassA(2)將“classTestClassC:”補(bǔ)充完整為:classTestClassC:virtualpublicTestClassA(3)將“classTestClassD:”補(bǔ)充完整為:classTestClassD:publicTestClassB,publicTestClassC(4)添加語句:TestClassA::fun();TestClassB::fun();TestClassC::fun();知識點(diǎn)解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個補(bǔ)全或修改。從已定源程序的main主函數(shù)開始入手,可以看出程序通過調(diào)用類和函數(shù)fun實(shí)現(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ù)題目中的要求補(bǔ)全對類TestClassA、TestClassB以及TestClassC中的fun函數(shù),即:TestClassA::fun();TestClassB::fun();TestClassC::fun();國家二級C++機(jī)試(操作題)模擬試卷第7套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時有錯誤,請改正其中的錯誤,使程序正確運(yùn)行。并且使程序輸出的結(jié)果為:OK注意:錯誤的語句在//******error******的下面,修改該語句即可。1#include<iostream.h>2classCBase3{4public:5CBase()6{7a=b=0;8}9private:10inta,b;11};12classCDerive1:publicCBase13{14public:15CDerivel()16{17}18//******error******19virtualvoidfunc();20};21classCDerive2:publicCDerive122{23public:24CDerive2()25{26a=0;27b=0;28}29voidfunc()30{31//******error******32cout<<’’OK’’<end1;33}34private:35inta;36intb;37};38voidmain()39{40CDerive2obj;41//******error******42CDerive1*p=(CDerivel*)obj;43p->func();44}標(biāo)準(zhǔn)答案:(1)virtualvoidfunc()=0;(2)cout<<’’OK’’<<end1;(3)CDerivel*p=(CDerive1*)&obj;知識點(diǎn)解析:程序中定義了類CBase、CDerive1和CDerive2,類CDerive1公有派生于類CBase,CDerive2公有派生于類CDerive1,在類CDerive1中定義了虛函數(shù)func(),但是沒有給出具體實(shí)現(xiàn),派生類CDerive2中給出了func()函數(shù)的具體實(shí)現(xiàn),因此CDerive1類中的func()函數(shù)是純虛函數(shù)。(1)由審題分析可知,CDerive1類中的func()函數(shù)是純虛函數(shù),純虛函數(shù)的定義格式為:virtual<函數(shù)類型><函數(shù)名>(<參數(shù)表>)=0,因此第1個標(biāo)識下應(yīng)為“virtualvoidfunc()=0;”。func()函數(shù)沒有參數(shù)表。(2)編譯程序后發(fā)現(xiàn)第2個標(biāo)識下有錯誤,cout流中的數(shù)據(jù)是用流插入運(yùn)算符“<<”順序加入的,因此“<”不正確,應(yīng)改成“cout<<"OK’’<<end1;”。(3)函數(shù)的調(diào)用方式有2種:非多態(tài)調(diào)用和多態(tài)調(diào)用,非多態(tài)調(diào)用是指不使用指針或引用的直接調(diào)用,多態(tài)調(diào)用是指通過對象的指針或引用的調(diào)用,在主函數(shù)中定義了CDerive1*p,p是指向基類CDerive1的指針,因此是多態(tài)調(diào)用方式,即通過對象的指針來調(diào)用,應(yīng)該把派生類對象的地址賦給p,而不是對象名,因此第3個標(biāo)識下應(yīng)改為“CDerive1*p=(CDerive1*)&obj;”。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼。函數(shù)func(intd[],intn)的功能是將長度為num的數(shù)組d的每一個數(shù)字是奇數(shù)的擴(kuò)大l倍,并存儲到數(shù)組d中。例如:123456789返回:226410614818將fune(intd[],mtnum)補(bǔ)充完整。注意:請勿改動主函數(shù)。1#include<iostream.h>2voidfunc(intd[],intnum)3{45}6intmain()7{8intData[]={1,2,3,4,5,6,7,8,9};9func(Data,9);10for(inti=0,i<sizeof(Data)/sizeof(int);i++)11{12cout<<Data[i]<<’’;13}14cout<<end1;15return0;16}標(biāo)準(zhǔn)答案:1for(inti=0;i<num;i++)2{3if(d[i]%2!=0)4d[i]=2*d[i];5}知識點(diǎn)解析:函數(shù)func(intd[],intn)功能是將長度為num的數(shù)組d的每一個數(shù)字是奇數(shù)的擴(kuò)大1倍,并存儲到數(shù)組d中,因此可利用循環(huán)來查找該數(shù)組,如果該元素為奇數(shù)則變?yōu)樵瓉淼膬杀丁?1)由審題分析可知,利用循環(huán)來逐個判斷d[]中的元素,d[]中元素個數(shù)為num,因此循環(huán)變量從0變化至num。(2)在循環(huán)內(nèi),用if判斷該元素是不是奇數(shù),即if(d[i]%2!=0),將滿足條件的d[i]擴(kuò)大一倍。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)完成CMyClass的構(gòu)造函數(shù),請改正注釋//********1********后的錯誤。(2)完成func()函數(shù)定義,請改正注釋//********2********的錯誤。(3)初始化CmyClass的成員變量Number3為4,請改正注釋//********3********后的錯誤。(4)完成func()函數(shù),請改正注釋//********4********后的錯誤。輸出的結(jié)果為:Number1=12Number2=18Number3=16Number1=4Number2=2Number3=19注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。1#include<iostream.h>2classCMyClass3{4public:5//********1********6CMyClass(inti,intj)7{8Number1=i;9Number3+=i;10}11voiddisplay()12{13cout<<’’Number1=’’<<Number1<<end1;14cout<<’’Number2=’’<<Number2<<end1;15cout<<’’Number3=’’<<Number3<<end1;16}17voidAddNum(inti)18{19Number3+=i;20}21private:22intNumber1;23constintNumber2;24staticintNumber3;25//********2********2627};28//********3********2930voidfunc()31{32CMyClassobj(1,2);33obj.Number1=4;34//********4********35obj.AddNum();36obj.display();37}38voidmain()39{40CMyClassmyObj(12,18);41myObj.display();42func();43return;44}標(biāo)準(zhǔn)答案:(1)將“CMyClass(inti,intj)”補(bǔ)充完整為:CMyClass(inti,intj):Number2(j)(2)添加語句:friendvoidfunc();(3)添加語句:intCMyClass::Number3=4;(4)將“obj.AddNum()”補(bǔ)充完整為:obj.AddNum(2);知識點(diǎn)解析:程序中定義了CMyClass類,其含有3個成員變量和多個成員函數(shù),成員變量Number2為常成員,Number3為靜態(tài)成員。display()函數(shù)輸出3個成員變量的值,AddNum(inti)函數(shù)改變靜態(tài)成員變量Num
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代賬公司合同樣本
- 委托運(yùn)營管理協(xié)議書
- 人教版小學(xué)美術(shù)三年級下冊全冊教案
- 某小區(qū)智能化總體設(shè)計(jì)方案
- 施工降排水施工方案
- 窗簾店規(guī)章制度
- 教案直線的傾斜角與斜率教案
- 門戶網(wǎng)站架構(gòu)設(shè)計(jì)方案
- 腳手架工程監(jiān)理實(shí)施細(xì)則
- 大學(xué)本科學(xué)生課程考核與成績管理實(shí)施辦法
- 無人機(jī)應(yīng)用技術(shù)概論-第-1-章-緒論
- 工程造價咨詢服務(wù)投標(biāo)方案(技術(shù)方案)
- HG∕T 2366-2015 二甲基硅油 標(biāo)準(zhǔn)
- 2024年風(fēng)力發(fā)電運(yùn)維值班員(技師)技能鑒定考試題庫-上(選擇題)
- 檳榔園出租合同范本
- 煤炭開采特種機(jī)器人的設(shè)計(jì)與制造
- 小米公司財(cái)務(wù)績效分析
- 室內(nèi)裝修施工組織設(shè)計(jì)
- G -B- 39800.6-2023 個體防護(hù)裝備配備規(guī)范 第6部分:電力(正式版)
- 《水泵及水泵站》配套習(xí)題資料
- 干部人事檔案轉(zhuǎn)遞單(帶存根回執(zhí))
評論
0/150
提交評論