版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級C++機試(操作題)模擬試卷35(共9套)(共27題)國家二級C++機試(操作題)模擬試卷第1套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,此工程中含有一個源程序文件proj1.cpp。其中位于每個注釋“//ERROR**********found**********”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結(jié)果為:NUM=0Value=1注意:只修改注釋“//ERROR****found****”的下一行語句,不要改動程序中的其他內(nèi)容。//proj1.cpp#inccludeusingnamespacestd;classMyClass{inti;friendVOidIncrement(MyClass&f);public:constintNUN;//ERROR********found********MyClass(inti=0){NUN=0;i=i;}intGetValue()const{returni;}};//ERROR********found********voidIncrement(){f.i++;}intmain(){NyClassobj;//ERROR****found****NyClass::Increment(obj);cout<<"NUN="<標(biāo)準(zhǔn)答案:(1)MyClass(inti=0):NUM(0){(2)voidIncrement(MyClass&f){f._i++;}(3)Increment(obj);知識點解析:(1)主要考查考生對常量數(shù)據(jù)成員初始化方法的掌握,常量數(shù)據(jù)成員的初始化只能通過構(gòu)造函數(shù)的成員初始化列表進行,并且要使用關(guān)鍵字const修飾。該題的前一條語句constintNUM;,說明NUM是常量數(shù)據(jù)成員。(2)主要考查考生對友元函數(shù)的掌握,友元函數(shù)的定義與聲明要一致,先看該友元函數(shù)的聲明部分:friendvoidIncrement(MyClass&f);,返回類型為void,函數(shù)參數(shù)為MyClass&f;再比較出錯的語句:voidIncrement(){f._i++;},錯誤在于該函數(shù)沒有參數(shù),應(yīng)把MyClass&f填在括號內(nèi)。(3)主要考查友元函數(shù)的調(diào)用,友元函數(shù)并不屬于類,因此調(diào)用友元函數(shù)時不需要添加類名及作用域,只需要像調(diào)用普通函數(shù)一樣即可。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中含有一個源程序文件proj2.cpp。其中定義了類Set和用于測試該類的主函數(shù)main。類Set是一個用于描述字符集合的類,在該字符集合中,元素不能重復(fù)(將“a”和“A”視為不同元素),元素最大個數(shù)為100。為該類實現(xiàn)一個構(gòu)造函數(shù)Set(char*s),它用一個字符串來構(gòu)造一個集合對象,當(dāng)字符串中出現(xiàn)重復(fù)字符時,只放人一個字符。此外,還要為該類實現(xiàn)另一個成員函數(shù)InSet(charC),用于測試一個字符c是否在一個集合中,若在,則返回true;否則返回false。構(gòu)造函數(shù)Set和成員函數(shù)InSet的部分實現(xiàn)代碼已在文件proj2.cpp中給出,請在標(biāo)有注釋“//TODO:”的行中添加適當(dāng)?shù)拇a,將這兩個函數(shù)補充完整,以實現(xiàn)其功能。提示:在實現(xiàn)構(gòu)造函數(shù)時,可以調(diào)用InSet函數(shù)來判斷一個字符是否已經(jīng)在集合中。注意:只在指定位置編寫適當(dāng)代碼,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****found****”。//proj2.cpp#includeusingnamespacestd;constintMAXNUM=100;classSet{private:intnum;//元素個數(shù)charsetdata[MAXNUM];//字符數(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標(biāo)準(zhǔn)答案:(1)!InSet(*s)(2)setdata[num++]=*s(3)c==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),利用下標(biāo)i遍歷整個集合,通過if語句中的判斷條件判斷c是否在集合中,用“==”判斷。(4)主要考查考生對成員函數(shù)的掌握,先看函數(shù)的注釋:判斷一個字符c是否在集合中,若在,返回true,否則返回false。if語句成立時,說明字符c存在于集合中,因此應(yīng)該返回truec。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中包含了類IntegerSet和主函數(shù)main的定義。一個IntegerSet對象就是一個整數(shù)的集合,其中包含0個或多個無重復(fù)的整數(shù);為了便于進行集合操作,這些整數(shù)按升序存放在成員數(shù)組elem的前若干單元中。成員函數(shù)add的作用是將一個元素添加到集合中(如果集合中不存在該元素),成員函數(shù)remove從集合中刪除指定的元素(如果集合中存在該元素)。請編寫成員函數(shù)remove。在main函數(shù)中給出了一組測試數(shù)據(jù),此時程序的正確輸出結(jié)果應(yīng)為:234527283166752345627283166752345619272831667534561927283166753456192728316675要求:補充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)WriteToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//IntegorSet.h#ifndefINTEGERSET#defineINTEGERSET#includeusingnamespacestd;constintMAXELEMENTS=100;//集合最多可擁有的元素個數(shù)classIntegerSet{intelem[MAXELEMENTS];//用于存放集合元素的數(shù)組intcounter;//用于記錄集合中元素個數(shù)的計數(shù)器public:IntegerSet():counter(0){)//創(chuàng)建一個空集合IntegerSet(intdata[],intsize);//利用數(shù)組提供的數(shù)據(jù)創(chuàng)建一個整數(shù)集合voidadd(intelement);//添加一個元素到集合中voidremove(intelement);//刪除集合中指定的元素intgetCount()const{returncounter;}//返回集合中元素的個數(shù)intgetElement(inti)const{returnelem[i];}//返回集合中指定的元素voidshow()const;};voidWriteToFile(char*);#endif//main.cpp#include"IntegerSet.h"#includeIntegerSet::IntegerSet(intdata[],intsize):counter(0){for(inti=0;i0;j--)if(element>=elem[j-1])break;//如果找到的是等于element的元素,說明要添加的元素已經(jīng)存在,直接返回if(j>0)if(element==elem[j一1])return;//如果找到的是小于element的元素,j就是要添加的位置//該元素及其后面的元素依次后移,騰出插入位置for(intk=counter;k>j;k--)elem[k]=elem[k-1];elem[j]=element;//將element插入到該位置counter++;//計數(shù)器加1}voidIntegerSet::remove(intelement){//***********333***********//***********666***********}voidIntegerSet::show()const{for(inti=0;i標(biāo)準(zhǔn)答案:for(inti=0;1知識點解析:主要考查考生對有序數(shù)組的掌握,題目要求成員函數(shù)remove從集合中刪除指定的元素(如果集合中存在該元素)。遍歷數(shù)組elem中的元素,找出與形參element相等的元素,并將其刪除,每刪除一個元素,即將該元素之后的每個元素前移一位,如果不存在與形參element相等的元素則沒有操作。使用下標(biāo)i遍歷數(shù)組,if語句判斷是否與element相等。國家二級C++機試(操作題)模擬試卷第2套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,該程序運行時有錯,請改正其中的錯誤,使程序正常運行,輸出的結(jié)果為:Constructor,i=O,Destructor注意:錯誤的語句在∥********4********的下面,修改訪語句即可。#includeclassCObj{inti;public:CObj();voiddisplay();-CObj();};∥********error********CObj:cobj(){cout<<“Constructor"‘<“.”,i=0;}{CObj:display(){cout<<“i=”<標(biāo)準(zhǔn)答案:(1)CObj::CObj()(2)VOidcobj::display()(3)CObj::~CObj()知識點解析:(1)在類的外部定義成員函數(shù)時,必須在成員函數(shù)前面加上類名和作用域運算符(::),作用域運算符用來表示某個成員屬于哪個類,使用格式為:<類名>::<成員函數(shù)>(<參數(shù)函數(shù)>),因此第1個標(biāo)識下應(yīng)改為CObj::CObi(),默認(rèn)構(gòu)造函數(shù)沒有參數(shù)。(2)第2個標(biāo)識下“COb.j:display()”,從其后的語句看,這是在類外實現(xiàn)COb.j函數(shù),因此也有作用域運算符使用錯誤問題,display()函數(shù)返回值為void,因此第2個標(biāo)識下應(yīng)改為voidCObj::display()。(3)第3個標(biāo)識下“CObj:CObj()”,顯然這里是在類外實現(xiàn)析構(gòu)函數(shù),析構(gòu)函數(shù)是一個特殊的函數(shù),它的名字和類名相同,并在前面加“~”字符,用來與構(gòu)造函數(shù)加以區(qū)別,因此第3個標(biāo)識下應(yīng)改為CObj::一CObj()。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部分程序,使函數(shù)fun()實現(xiàn)以下功能:找出一個整數(shù),它加上100后是一個完全平方數(shù),再加上268又是一個完全平方數(shù),請問該數(shù)是多少?程序分析:在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后開方,如果開方后的結(jié)果滿足條件,即是結(jié)果。#include#includevoidfun(){}intmain(){fun();return0;}標(biāo)準(zhǔn)答案:longinti,x,y,z;f017。(i=1;i<100000;i++){x=sqrt(i+100);//x為加上100后開方后的結(jié)果y=sqrt(i+268);//y為再加上268后開方的結(jié)果if(x*x==i+100&&y*y==i+268)//如果一個數(shù)的平方根的平方等于該數(shù),說明此數(shù)是完全平方數(shù)cout<知識點解析:(1)該程序功能是找出一個整數(shù),它加上100后是一個完全平方數(shù),再加上268又是一個完全平方數(shù)。它的解題思路,根據(jù)題干中給出的分析可知解題思路為,先將該數(shù)加上100后再開方,再將該數(shù)加上268后開方,如果開方后的結(jié)果滿足條件,即是結(jié)果。(2)從已給部分源程序的main主函數(shù)開始入手,核心函數(shù)voidfun()實現(xiàn)題目中的功能?!窘忸}思路】(1)利用循環(huán)找到滿足條件的整數(shù)。(2)首先計算x加上100和y加上268的開方。(3)一個數(shù)的平方根的平方等于該數(shù),說明此數(shù)是完全平方數(shù)。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。程序通過繼承關(guān)系,實現(xiàn)對姓名的控制。類TestClass1實現(xiàn)對名字訪問的接口,TestClass2實現(xiàn)對名字的設(shè)置和輸出。程序輸出為:TestClass2NameMay其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。(1)在類TestClassl中定義接口函數(shù)GetName,為純虛函數(shù)。請在注釋∥********1********后添加適當(dāng)?shù)恼Z句。(2)函數(shù)GetName20實現(xiàn)獲得名字的緩存,但是只獲得讀允許操作這個緩存,請在注釋∥********2********后添加適當(dāng)?shù)恼Z句。(3)實現(xiàn)TestClass2的構(gòu)造函數(shù),請在注釋∥********3********后添加適當(dāng)?shù)恼Z句。(4)完成TestClass2的構(gòu)造函數(shù),實現(xiàn)對名字的處理。請在注釋∥********4********后添加適當(dāng)?shù)恼Z句。注意:增加代碼,或者修改代碼的位置已經(jīng)用符號表示出來。請不要修改其他的程序代碼。#includeclassTestClassl{public:∥********1********};classTestClass2:publicTestClassl{public:voidGetName(){cout<(”TestClass2Name”<GetName();cout<標(biāo)準(zhǔn)答案:(1)添加語句:virtualvoidGetName():0;(2)添加語句:constchar*GetName2()(3)添加語句:TestClass2(char*str)(4)添加語句:mstr[i]=0;知識點解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個補全或修改。從已定源程序的main主函數(shù)開始入手,可以看出程序通過調(diào)用類TestClass和接口函數(shù)Getname實現(xiàn)各種輸出操作。解題思路(1)題目l要求“在類TestClassl中定義接口函數(shù)GetName,為純虛函數(shù)”。在C++中,在基類中用virtual聲明成員函數(shù)為虛函數(shù)。純虛函數(shù)是在聲明虛函數(shù)時被“初始化”為0的函數(shù),即“virtualvoidGetName0=0;”。(2)題目2要求“函數(shù)GetName20實現(xiàn)獲得名字的緩存,但是只獲得讀允許操作這個緩存”。只能引用數(shù)據(jù)成員,而不能修改,那么使用常成員函數(shù)。一般形式為,const函數(shù)類型函數(shù)名,即“constchar*GetName20”。(3)題目3要求“實現(xiàn)TestClass2的構(gòu)造函數(shù)”。TestClass2的構(gòu)造函數(shù)與類TestClass2名應(yīng)該相同,而且第三個標(biāo)識下的大括弧中是對字符數(shù)組str的操作,所以類TestClass2的構(gòu)造函數(shù)中的參數(shù)為str,即這里補全為“TestClass2(char*str)”。(4)題目4要求“完成TestClass2的構(gòu)造函數(shù),實現(xiàn)對名字的處理”,補全類TestClass2的構(gòu)造函數(shù),構(gòu)造函數(shù)中的名字變量s仃對應(yīng)于類TestClass中的成員變量mstr,所以這里補全變量賦值操作“mstr[i]=0;990國家二級C++機試(操作題)模擬試卷第3套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,—num:num:10#includeinti=10;C1assTestClass{public:TestClass(inti){cout<<“num:”<標(biāo)準(zhǔn)答案:(1)this一>i=i+1;或TestClass::i=i+1;或(*this).i=i+1;(2)TestClassprint(0);(3)cout<<”num:”(<::i<知識點解析:程序要求輸出member的值為O,1,10。從已定源程序的main主函數(shù)開始入手,可以看出程序首先通過類TestClass中的TestClass構(gòu)造函數(shù)的調(diào)用實現(xiàn)第一次hum值的輸出;然后通過調(diào)用類TestClass中的成員函數(shù)Print實現(xiàn)第二次hum值的輸出;最后通過輸出函數(shù)cout實現(xiàn)第三次hum值的輸出。解題思路(1)打開modil.cpp,調(diào)試程序,顯示錯誤提示為第二標(biāo)識下“modil.cpp(22):errorC2512:‘TestClass’:noappropriatedefaultconstructoravailable”,主函數(shù)中首先調(diào)用的就是第2個標(biāo)識下的TestClassprint函數(shù),構(gòu)造函數(shù)的名字和類的名字是一樣的,而程序中給出的“TestClassprint;”沒有給出參數(shù),所以程序調(diào)試時無法確定調(diào)用的函數(shù)。根據(jù)TestClass構(gòu)造函數(shù)“TestClass(int”的定義,應(yīng)該存在int型參數(shù),并且題目要求第一次輸出的值為“0”,所以第2個標(biāo)識正確的調(diào)用函數(shù)為“TestClassprint(0);”(2)運行,發(fā)現(xiàn)第一次的輸出正確,但是第二次的輸出值為“858993460”,并不是題目中要求的“1”。在主函數(shù)中,可知第二次輸出調(diào)用的是“print.Print();”即類TestClass的成員函數(shù)“Print()”。成員函數(shù)Print的定義“voidPrintoconst”中的輸出語句為“tout<<“num:”<i=i+1;”或“TestClass::i=i+1;”或“(*this).i=i++”。(3)主函數(shù)中通過“cout<<“num:”<二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部分程序。函數(shù)fun(intn)的功能是實現(xiàn)對一個整數(shù)的加密,具體的加密方法是:一個四位長的整數(shù),每位數(shù)字加上3然后除以9的余數(shù)代替該數(shù)字,再將第一位和第四位交換,第二位和第三位交換,然后返回得到的密碼。程序輸出:76542108注意:不能修改其他部分的代碼。#include#includeintfun(intn){}intmain(){inti=1234;cout<標(biāo)準(zhǔn)答案:inti,a[4],t;a[0]=n%10;//取整型n的第一位數(shù)字a[1]=n%100/10;//取整型n的第2位數(shù)字a[2]=n%1000/100;//取整型n的第3位數(shù)字a[3]:n/1000;//取整型n的第4位數(shù)字for(i=0;i<=3;i++)//每位數(shù)字加3,取余{a[i]+=3;a[i]%=9;}t=a[0];//根據(jù)加密算法交換a[0]=a[3];a[3]=t;t=a[1];a[1]=a[2];a[2]=t;returna[3]*1000+a[2]*100+a[1]*10+a[0];//重組,返回加密數(shù)字知識點解析:暫無解析三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。其中:定義了類circle和column,column類由circle類protected派生,但是兩個類的定義并不完整,請按照以下的要求,將程序補充完整。(1)定義類circle的保護數(shù)據(jù)成員函數(shù)r和area,它們都是double型的數(shù)據(jù),請在注釋∥********1********后完成。(2)添加類circle的無參數(shù)的構(gòu)造函數(shù),使得類circle對象的r默認(rèn)值為0,請在注釋∥********2********后完成。(3)添加派生類column的構(gòu)造函數(shù)的定義,使得參數(shù)為double型的height和radius并將其分別賦給數(shù)據(jù)成員h和基類的r請在注釋∥********3********之后完成。(4)完成派生類column的成員函數(shù)print()的定義,請在注釋∥********4********料之后完成,使得輸出為:radius=5area=78.54height=10vol=785.4注意:增加代碼,或者修改代碼的位置已經(jīng)用符號表示出來。請不要修改其他的程序代碼。#includeconstdoublepi=3.1416;C1asscircle{protected:∥********1********publiC:∥********2********{r=0.0;}Circle(doubleradius){r=radius;}voidprint(){area=r*r*pi;cout<<“radius=”<標(biāo)準(zhǔn)答案:(1)添加語句:doubler,area;(2)添加語句:Circle()(3)添加語句:column(doubleradius,doubleheight)(4)添加語句:cout<<”height=”<知識點解析:本題的功能是計算圓的面積和周長。在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對程序中給出注釋下的內(nèi)容逐個補全或修改。從已定源程序的mam主函數(shù)開始入手,可以看出程序通過調(diào)用類和成員函數(shù)實現(xiàn)各種輸出操作。解題思路(1)題目1要求“定義類circle的保護數(shù)據(jù)成員函數(shù)r和area,它們都是double型的數(shù)據(jù)”。保護成員與private和public一樣是用來聲明成員的訪問權(quán)限的。在已有程序circle類中的protected:區(qū)域,添加變量r和area的定義,即“doubler,area;”。(2)題目2要求“添加類circle的無參數(shù)的構(gòu)造函數(shù),使得類circle對象的r默認(rèn)值為0”。在C++中,構(gòu)造函數(shù)是一種特殊的成員函數(shù),它的名字與類同名,沒有參數(shù)的構(gòu)造函數(shù)一般形式為:構(gòu)造函數(shù)名(),所以這里添加“circleO”。(3)題目3要求“添加派生類column的構(gòu)造函數(shù)的定義”。同(2),另外帶參數(shù)的構(gòu)造函數(shù)的一般格式為:構(gòu)造函數(shù)名(類型1形參1,類型2形參2,……),所以這里添加“column(doubleradius,doubleheight)”。(4)題目4要求“完成派生類column的成員函數(shù)print()的定義”。根據(jù)題干中輸出結(jié)果,知道第一個輸出值為height,第二個輸出值為vol,即area*h,所以這里添加“cout<<”height=”<國家二級C++機試(操作題)模擬試卷第4套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,其中在編輯窗口內(nèi)顯示的主程序文件中定義有類ABC和主函數(shù)main。程序文本中位于每行“//ERROR****found****”之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)該是:2123注意:只修改每個“//ERROR****found****”下面的一行,不要改動程序中的其他任何內(nèi)容。1#include2usingnamespacestd;34classABC{5public:6//ERROR**********found**********7ABC(){a=0;b:0;c=0;}8ABC(intas,intbb,intcc);9voidSetab(){++a,++b;}10intSum(){returna+b+c;}11private:12inta,b;13constintc;14};1516ABC::ABC(intaa,intbb,intcc):c(cc){a=as;b:bb;)1718intmain()19{20ABCx(1,2,3),y(4,5,6);21ABCz,*w=&z;22w->Setab();23//ERROR**********found**********24ints1=x.Sum()+y->Sum();25cout<標(biāo)準(zhǔn)答案:(1)ABC():a(0),b(0),c(0){}(2)ints1=x.Sum()+y.Sum();(3)ints2=sl+w->Sum():知識點解析:(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、請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中包含一個程序文件main.cpp,其中有坐標(biāo)點類point、線段類Line和三角形類Triangle的定義,還有main函數(shù)的定義。程序中兩點間距離的計算是按公式實現(xiàn)的,三角形面積的計算是按公式f=請在程序中的橫線處填寫適當(dāng)?shù)拇a,然后刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:Side1:9.43398Side2:5Side3:8area:20注意:只在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****found****”。1#include2#include3usingnamespacestd;4classPoint{//坐標(biāo)點類5public:6constdoublex,y;7Point(doublex=0.0,doubley=0.0):x(x),y(y){}8//**********found**********9doubledistanceTo(——)10const{11//到指定點的距離12returnsqrt((x-p.x)*(x-o.x)+(y-p.y)*(y-p.y));13}14};15classLine{//線段類16public:17constPointp1,p2;//線段的兩個端點18//**********found**********19Line(Pointp1,Pointp2):_____20{}21doublelength()const{returnp1.distanceTo(p2);)//線段的長度22};23classTriangle{//三角形類24public:25constPointp1,p2,p3;//三角形的三個頂點26//**********found**********27Triangle(______):p1(p1),p2(p2),p3(p3){)28doublelengthl()const{//邊p1,p2的長度29returnLine(pl,p2).1ength();30}31doublelength2()const{//邊p2,p3的長度32returnLine(p2,p3).1ength();33}34doublelength3()const{//邊p3,p1的長度35returnLine(p3,p1).1ength();36}37doublearea()const{//三角形面積38//**********found**********39doubles=——————————;40returnsqrt(s*(s-lengthl())*(s-length2())*(s-length3()));41}42};43intmain(){44Triangler(Point(0.0,8.0),Point(5.0,0.0),Point(0.0,0.0));45cout<<“Side1:”<標(biāo)準(zhǔn)答案:(1)constPoint&p(2)p1(p1),p2(p2)(3)Pointp1,Pointp2,Pointp3(4)(lengthl()+:length2()+length3())/2知識點解析:(1)主要考查考生對函數(shù)形參的掌握,由函數(shù)的注釋可知有本坐標(biāo)點到達某個坐標(biāo)點類的距離,再根據(jù)函數(shù)體returnsqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));可知,該坐標(biāo)點類名為p,因此可以知道形參為Point&p,為了不改變該坐標(biāo)點的值,前面要加上const。(2)主要考查考生對構(gòu)造函數(shù)的掌握,對于常變量型私有成員constPointp1,p2,只能用成員初始化列表進行賦值。(3)主要考查考生對構(gòu)造函數(shù)的掌握,由空格后面的語句:p1(p1),p2(p2),p3(p3){}可知,該構(gòu)造函數(shù)需要進行成員列表初始化,再看類的私有成員constPointp1,p2,p3,可知p1,p2,p3是Point類型,因此形參為Pointp1,Pointp2,Pointp3。(4)主要考查考生對成員函數(shù)的掌握,根據(jù)函數(shù)注釋,可知本函數(shù)要求計算三角形面積,再看題目的提示:s=(a+b+c)/2??芍崭裉幰畹氖侨切蔚娜龡l邊之和除以2,而求邊長的函數(shù)已經(jīng)給出,這里直接調(diào)用即可。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請使用【答題】菜單命令或直接用VC6打開考生文件夾下的工程proj3,其中聲明的是一個人員信息類,補充編制程序,使其功能完整。在main函數(shù)中給出了一組測試數(shù)據(jù),此種情況下程序的輸出應(yīng)該是:Zhang20Tsinghua。注意:只能在函數(shù)address_change的“//********333********”和“//********666********”之間填人若干語句,不要改動程序中的其他內(nèi)容。程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。1//proj3.h2#include3#include4usingnamespacestd;5clasSPerson{6charname[20];7intage;8char*address;9public:10Person(){age=0;address=0;)11voidname_change(char*_name);12//名字修改函數(shù)13voidage_change(int_age);14//年齡修改函數(shù)15voidaddresschange(char*add);16//地址修改函數(shù)17voidinfodisplay();18//人員信息顯示19~Person();20//析構(gòu)函數(shù)21};22voidwriteToFile(constchar*path);1proj3.cpp2#include3#include4#include"proj3.h"5usingnamespacestd;67voidPerson::namechange(char*_name)8{9strcpy(name,_name);10}11voidPerson::age_change(int_age)12{13age=_age;14}15voidPerson::address_change(char*_16add)17{18if(address!=NULL)delete[]ad-19dress;20//********333********21//********666********22}23voidPemson::info_display(){24cout<標(biāo)準(zhǔn)答案:1address=newchar[strlen(add)+1];//給類成員變量動態(tài)分配空間2strcpy(address,_add);//把字符串a(chǎn)dd復(fù)制給address知識點解析:函數(shù)address_change(char*_add)的功能是地址修改,也就是說通過該函數(shù)把類的地址修改為add字符串。類的私有成員address是字符指針,因此首先要給address分配空間,通過new語句來實現(xiàn):address=newchar[strlen(_add)+1];。接下來就是要復(fù)制字符串,使用系統(tǒng)函數(shù)strcpy,其用法為strcpy(參數(shù)1,參數(shù)2),將參數(shù)2的內(nèi)容復(fù)制到參數(shù)1中。國家二級C++機試(操作題)模擬試卷第5套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,該程序運行時有錯,請改正其中的錯誤,使程序正常運行,即使程序在界面輸出以下類似內(nèi)容:0012FF6810012FF3C50012FF6C20012FF4440012FF7030012FF4C30023FF7440012FF5420012FF7850012FF5C1006AFDCC~006AFDEF數(shù)據(jù)可能因為機器的不同,程序的輸出的內(nèi)容會有差異。只要相差為4的連續(xù)地址即可。注意:不要改動main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯誤的語句在//********error********的下面。#includeusingnamespacestd;intmain(){int*p,a[5]={1,2,3,4,5};double*q,b[5]={5.0,4.0,3.0,2.0,1.0};intx;p=a;q=b;//********error********for(x=0;x<=5;x++)//********error********cout<標(biāo)準(zhǔn)答案:(1)for(x=0;x<5;x++)(2)cout<知識點解析:(1)根據(jù)數(shù)組a、b定義,它們都是5個元素,而第1個標(biāo)識下的“for(x=0;x<=5;x++)”循環(huán)了6次,應(yīng)該是5次,所以第1個標(biāo)識下的將其修改為“for(x=0;x<5;x++)”(2)第2個標(biāo)識下的P變量為指針型變量,p+x為指向數(shù)組中第x個元素的地址,這里要輸出的是存儲單元的內(nèi)容,所以使用“*”指針元素符,即修改為“cout<二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼。函數(shù)func(intd[],intn)的功能是將長度為num的數(shù)組d的每一個數(shù)字是奇數(shù)的擴大1倍,并存儲到數(shù)組d中。例如:123456789返回:226410614818將func(intd[],intnum)補充完整。注意:請勿改動主函數(shù)。#includeVoidfunc(intd[],intnum){}intmain(){intData[]={1,2,3,4,5,6,7,8,9);func(Data,9);for(inti=0;i標(biāo)準(zhǔn)答案:for(inti=0;i知識點解析:(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]擴大一倍。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。(1)重載運算符int,請在注釋//********1********后添加適當(dāng)?shù)恼Z句。(2)重載運算符“<<”,請在注釋//********2********后添加適當(dāng)?shù)恼Z句。(3)在主函數(shù)main()中定義變量i,并調(diào)用對象obi的int運算符,給變量賦初值為10,請在注釋//********3********后添加適當(dāng)?shù)恼Z句。(4)調(diào)用obj的“<<”運算符輸出:HelloTest注意:增加代碼,或者修改代碼的伊鼠已經(jīng)川符號表示出來。請不要修改其他的程序代碼。#includeusingnamespacestd;ClassTestClass{public://********1********{cout<<"int"<標(biāo)準(zhǔn)答案:(1)添加語句:operatorint()(2)添加語句:operator<<(char*str)(3)添加語句:inti=int(obj);(4)添加語句:obj<<"HelloTest";知識點解析:(1)題目1要求“重載運算符int”的定義。運算符重載的方法是定義一個重載運算符的函數(shù),其一般格式為:函數(shù)類型opemmr運算符名稱(形參列表){對運算符的重載處理)。所以第1個標(biāo)識下,重載運算符int的語句為“operatorint()”。(2)題目2要求“重載運算符‘<<’”。同(1),第2個標(biāo)識下“<<”的重載函數(shù)定義為“operator<<(char*str)”。(3)題目3要求“在主函數(shù)main()中定義變量i,并調(diào)用對象obj的int運算符,給變量賦初值為10?!倍x變量i,即inti?!皁peratorint()”中的返回值為10,所以調(diào)用對象obi的int運算符,給變量賦初值為10,就是int(obj),即第三個標(biāo)識下添加“inti=int(obj);”。(4)題目4要求“調(diào)用0bj的“<<”運算符輸出“HelloTest”"。重載運算符“<<”后,不僅能輸出標(biāo)準(zhǔn)類型數(shù)據(jù),而且可以輸出用戶自己定義的類對象。所以直接添加要輸出的字符串即可,即“obj<<"HelloTest";”。國家二級C++機試(操作題)模擬試卷第6套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請使用VC6或使用【答題】菜單打開考生文件夾projl下的工程pmj1。程序中位于每個“//ERROR****found****”之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:value=63number=1注意:只修改每個“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。#includeUSingnamespacestd;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=”<標(biāo)準(zhǔn)答案:(1)MyClass(intval):N(1)(2)~MyClass(){delete[]p;}(3)voidprint(MyClass&obj)知識點解析:本題考查MyClass類,其中涉及動態(tài)數(shù)組、構(gòu)造函數(shù)、析構(gòu)函數(shù)和友元函數(shù)。構(gòu)造函數(shù)的成員列表初始化格式為:私有成員(參數(shù))……{},不能用賦值語句。析構(gòu)函數(shù)使用delete語句,delete語句的語法是:delete[]指針?!窘忸}思路】(1)主要考查考生對構(gòu)造函數(shù)的掌握,在這里不能使用賦值語句。(2)主要考查考生對析構(gòu)函數(shù)的掌握,析構(gòu)函數(shù)的delete語句要使用標(biāo)識符“[],’,即delete[]p;。(3)主要考查考生對友元函數(shù)的掌握,友元函數(shù)并不屬于類,因此定義時前面不用加類名和作用域符號?!窘忸}寶典】友元函數(shù)考查較少,但也是很關(guān)鍵的,友元函數(shù)并不屬于類,只是可以使用類的私有成員而已,因此定義的時候就當(dāng)作普通函數(shù)處理即可。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,其中定義了Component類、Composite類和Leaf類。Component是抽象基類,Composite和Leaf是Compo-nent的公有派生類。請在橫線處填寫適當(dāng)?shù)拇a并刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:LeafNode注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容.也不要刪除或移動“//****found****”。#includeusingnamespacestd;classComponent{public://聲明純虛函數(shù)print()//**********found**********};classComposite:publicComponent{public://**********found**********voidsetChild(__________){mchild=chiid;}virtualvoidprint()const{mchild一>print();}private:Component*m—child;};classLeaf:publicComponent{public:virtualvoidprint()const{//**********found**********_____________}};intmain(){Leafnode;Compositecomp;comp.setChild(&node);Component*P=&comp;P一>print();return0;}標(biāo)準(zhǔn)答案:1)virtualvoidprint()const=0;(2)Component*child(3)cout<<“LeafNode”<知識點解析:本題考查抽象類Component類及其派生類Composite和Leaf,其中涉及純虛函數(shù)和成員函數(shù)。純虛函數(shù)要根據(jù)在派生類中該函數(shù)的返回值、參數(shù)、有無const來確定?!窘忸}思路】(1)主要考查考生對純虛函數(shù)的掌握,題目要求聲明純虛函數(shù)print()。在其派生類中print()函數(shù)的定義為virtualvoidprint()const,由此可知純虛函數(shù)為virtualvoidprint()const=0(2)主要考查考生對成員函數(shù)的掌握,題目要求填寫函數(shù)voidsetChild的形參,由setChild的函數(shù)體可知形參為child,再看類的私有成員m—child的定義:Component*m—child;。由此可知形參為:Component*child。(3)主要考查考生對純虛函數(shù)的掌握,先看主函數(shù)的程序:Leafnode;Compositecomp;comp.setChild(&node);Componen*p=&comp;p一>print();第一條和第二條語句都是定義語句,第三條語句調(diào)用函數(shù)setChild,由setChild函數(shù)的定義可知,comp中的m—child等于node,第四條語句定義了個指針p指向comp的地址,也就是node,最后一條語句通過指針p調(diào)用函數(shù)print,也就是調(diào)用類Leaf的函數(shù)print,因為題目要求輸出:LeafNode,因此在這里添加語句:cout<<”LeafNode’’<三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中定義的Matrix是一個用于表示矩陣的類。成員函數(shù)max_value的功能是求出所有矩陣元素中的最大值。例如,若有3×3矩陣則調(diào)用max_value函數(shù),返回值為3。請編寫成員函數(shù)max—valueo要求:補充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//Matrix.h#include#includeusingnamespacestd;constintM=18;constintN=18;classMatrix{intarray[M][N];public:Matrix(){)intgetElement(inti,intJ)const{returnarray[i][J];)voidsetElement(inti,intJ,intvalue){array[i][J]=value;)intmaxvalue()const;voidshow(constchar*s)const{cout<voidreadFromFile(constchar*f,Matrix&m){ifstreaminfile(f);if(infile.fail()){cerr<<”打開輸入文件失敗!;return;)intk;for(inti=0;i>k;m.setElement(i,j,k);}}intMatrix::maxvalue()const{//*********333*********//*********666*********}intmain(){Matrixm;readFromFile(“”,m);m.show(“Matrix:”);cout<標(biāo)準(zhǔn)答案:Inttemp;//定義整數(shù)變量temp,并賦值為零for(inti=0;i知識點解析:本題考查Matrix類,其中涉及構(gòu)造函數(shù)、二維數(shù)組、成員函數(shù)和const函數(shù)?!窘忸}思路】主要考查考生對二維數(shù)組的掌握,題目要求成員函數(shù)max—value的功能是求出所有矩陣元素中的最大值。因此只要逐個元素比較即可,下標(biāo)i和j作為矩陣行和列的標(biāo)記,使用雙層for循環(huán)來遍歷數(shù)組中的所有元素?!窘忸}寶典】主要考查考生對二維數(shù)組的掌握,二維數(shù)組使得存儲的數(shù)據(jù)大幅增加,只要把二維數(shù)組想象成矩陣,利用矩陣相關(guān)知識求解即可。國家二級C++機試(操作題)模擬試卷第7套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,該程序運行時有錯,請改正其中的錯誤,使程序正確運行,并且使程序輸出的結(jié)果為:30130注意:錯誤的語句在//*****error******的下面,修改該語句即可。#includeinta=10;classCObj{public:CObj(){a=b=0;}voiddisplay(){//*****error******cout<標(biāo)準(zhǔn)答案:(1)cout<a+=a;(3)a+=::a;知識點解析:(1)成員函數(shù)display()打印變量a和b的值,即cout輸出a和b的值,cout流中的數(shù)據(jù)是用流插入運算符“<<”順序加入的,因此“<”不正確,因此第1個標(biāo)識下應(yīng)改成cout<a+=a;”。(3)func2()函數(shù)雖然沒有參數(shù),但是成員變量a和全局變量a重名,第3個標(biāo)識下“a+=a”也會有歧義,分不清楚是全局變量加倍還是類成員變量加倍或者其他情況,調(diào)用func2()函數(shù)后,輸出“130”,說明a為13,b為0,因此是成員變量與全局變量a的和賦給成員變量a,正確的寫法是“a+=::a;”,“::a”表示是全局變量a。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼。函數(shù)num(char*str)實現(xiàn)返回字符串中非數(shù)字的個數(shù)。例如:abc123abc45返回輸出:6將函數(shù)num()補充完整。注意:請勿改動主函數(shù)。#includeintnum(char*str){}intmain(){charstr[1024];cout<<"pleaseinputastrfng:"<標(biāo)準(zhǔn)答案:intnumber=0;for(inti=0;str[i]!=0;i++)if(Str[i]>’9’||str[i]<’0’)//非數(shù)字字符number++;returnnumber;知識點解析:(1)利用循環(huán)搜索數(shù)組str中的元素,循環(huán)變量從0開始,直到str[i]=0(到了字符數(shù)組的尾),不斷地讀取str中讀取元素。(2)每讀到一個元素判斷是否是非數(shù)字字符,即滿足條件“str[i]>’9’‖str[i]<’0’”的字符為非數(shù)字字符,非數(shù)字字符個數(shù)加1,循環(huán)結(jié)束就得到了非數(shù)字字符的個數(shù)。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補充完整。完成以下功能:(1)完成構(gòu)造函數(shù),設(shè)置數(shù)組元素的個數(shù)為0,請在注釋//********1********之后添加語句。(2)完成函數(shù)AddMember(intn),如果參數(shù)n包含在類的數(shù)據(jù)成員數(shù)組中,則返回0,否則把數(shù)據(jù)寫入數(shù)組,然后返回1,請在注釋//********2********之后添加語句。(3)完成函數(shù)DelMember(intn),如果變量在數(shù)據(jù)中,則刪除該變量,并且返回1,如果不存在則返回0,請在注釋//********3********之后添加語句。(4)完成成員函數(shù)islnclude(intn)的定義,該函數(shù)檢查參數(shù)n是否在類的數(shù)據(jù)成員數(shù)組elems中,如果在返回1,否則返回0。請在注釋//********4********之后添加語句。注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#include#defineMAX_LENGTH500classCArray{public:CArray(){//********1********}intAddMember(intn){for(inti=0;i標(biāo)準(zhǔn)答案:(1)添加語句:length=0;(2)將“if(Array[i]=n)”補充完整為:if(Array[i]==n)或if(n==Array[i])(3)將“if()”補充完整為:if(i知識點解析:(1)使length的初始化為0,因此添加語句:“l(fā)ength=0;”(2)第2個標(biāo)識下是檢查n是否已經(jīng)在數(shù)組當(dāng)中存在,用if語句來判斷,即if(Array[i]==n)或if(n==Array[i])。(3)DelMember(intn)函數(shù)刪除指定的元素,由于元素在數(shù)組當(dāng)中的位置未知,因此必須先查找該元素的位置,在該函數(shù)的實現(xiàn)過程當(dāng)中通過for循環(huán)來完成,即第一個for循環(huán)查找n在數(shù)組中的位置。如果n存在于數(shù)組中,那么if中的break語句就會執(zhí)行跳出循環(huán),此時循環(huán)變量i的值會小于length,即通過判斷i的值是否小于length值可以知道n是否存在數(shù)組中,如果存在數(shù)組中接下來進行刪除操作。即第3個標(biāo)識下應(yīng)改為if(i國家二級C++機試(操作題)模擬試卷第8套一、基本操作題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:調(diào)用隨機函數(shù)產(chǎn)生20個互不相同的整數(shù)放在形參a所指數(shù)組中(此數(shù)組在主函數(shù)中已置0)。請在程序的中括號處填入正確的內(nèi)容并把中括號刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#defineN20voidfun(int*a){inti,x,n=0;x=rand()%20;/*********found*********/while(n<【1】){for(i=0;i標(biāo)準(zhǔn)答案:(1)N或20(2)break(3)n知識點解析:填空1:變量n用于存儲數(shù)組的下標(biāo),要通過while語句對數(shù)組進行賦值,數(shù)組的容量為20,因此循環(huán)條件應(yīng)為n<20。填空2:通過一個for循環(huán)判斷x是否與數(shù)組中已存的元素重復(fù),若重復(fù)則跳出for循環(huán)結(jié)束。填空3:若for循環(huán)是由break語句結(jié)束的,則x與數(shù)組中的元素重復(fù),此時i必然小于n;若for循環(huán)是因為循環(huán)變量i遞增到某值,而不再滿足循環(huán)條件結(jié)束的,說明x的值與數(shù)組中的元素不重復(fù),則此時i的值等于n。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:刪除指針p所指字符串中的所有空白字符(包括制表符、回車符及換行符)。輸入字符串時用“#”結(jié)束輸入。請改正程序中的錯誤,使它能輸出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#includefun(char*p){inti,t;charc[80];/*********found*********/For(i=0,t=0;p[i];i++)if(!isspace(*(p+i)))c[t++]=p[i];/*********found*********/c[t]="\0";strcpy(p,c);}voidmain(){charc,s[80];Inti=0;printf("Inputastring:");c=getchar();while(c!=’#’){s[i]=c;i++;c=getchar();)s[i]=’\0’;fun(s);puts(s);}標(biāo)準(zhǔn)答案:(1)for(i=0,t=0;p[i];i++)(2)c[t]=’\0’;知識點解析:該題目考查C語言關(guān)鍵字的書寫,c語言中關(guān)鍵字是區(qū)分大小寫的。另外為字符串結(jié)尾添加結(jié)束符時應(yīng)書寫為‘\0’,而非“\0”,“\0”表示一個字符串。該程序的if條件中應(yīng)用了isspace函數(shù),該函數(shù)的功能是檢查ch是否為空格、跳格符(制表符)或換行符。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請編寫函數(shù)fun,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:333333334444444455555555則一維數(shù)組中的內(nèi)容應(yīng)該是:333333334444444455555555。注意:部分源程序在文件PROGl.C中。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:#includevoidfun(int(*s)[10],int*b,int*n,intmm,intnn){}voidmain(){FILE*wf;intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",w[i][j]);printf("\n");}fun(w,a,&n,3,4);printf("TheAarray:\n");for(i=0;i標(biāo)準(zhǔn)答案:voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j,k=0;for(i=0;i知識點解析:本題可以用兩個循環(huán)來處理,由于是按行的順序取出,所以第1個循環(huán)用于控制行下標(biāo),第2個循環(huán)用于控制列下標(biāo);若改成按列的順序取出,則循環(huán)應(yīng)改成:for(i-0;i國家二級C++機試(操作題)模擬試卷第9套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請使用菜單命令或直接使用VC6打開考生文件夾下的工程projl。程序中位于每個//ERROR**********found**********下的語句行有錯誤,請加以更正,不得修改程序的其他部分。更正后程序的輸出應(yīng)該是:兩點之間的距離為:7.5231注:意:只能修改每個//ERROR**********found**********下的那一行,不要改動程序中的其他內(nèi)容。#include#includeusingnamespacestd;classPoint{private:doublex,y,public:Point(doublexx,doubleYY)(x=xx;y=yy;}//ERROR**********found**********doubleMyDistance(Point&a,Point&b);},doubleMyDistance(Point&a,Point&b){//ERROR**********found**********doubledx:x—b.x;//ERROR**********found**********doubledy=a.y—y;returnsqrt(dx*dx+dy*dy);}intmain(){Pointp1(3.6,6.4),p2(8,0.3);doubled=MyDistance(pl,p2);cout<<“兩點之間的距離為:”<標(biāo)準(zhǔn)答案:(1)frienddoubleMyDistance(Point&a,Point&b);(2
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版小額貸款擔(dān)保及貸款利率調(diào)整及貸款條件變更及擔(dān)保人責(zé)任合同3篇
- 二零二五年度木工耗材供應(yīng)與配送合同4篇
- 01 修辭手法題的應(yīng)對策略-高考語文一輪復(fù)習(xí)之核心考點解密
- 七年級道德與法治試卷
- 二零二五年度鋼材行業(yè)質(zhì)量標(biāo)準(zhǔn)制定與實施合同3篇
- 二零二五年度陵園墓碑雕刻技藝傳承合同4篇
- 2025版品牌視覺設(shè)計制作合同范本2篇
- 《菜根譚名句》課件
- 2025年因擅自公開他人隱私賠償協(xié)議
- 2025年家政服務(wù)協(xié)議編寫書
- 課題申報書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計研究
- 駱駝祥子-(一)-劇本
- 全國醫(yī)院數(shù)量統(tǒng)計
- 《中國香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺人群趨勢洞察報告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識報告-
- 天津市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 經(jīng)濟學(xué)的思維方式(第13版)
- 中國綠色食品市場調(diào)查與分析報告
- 手衛(wèi)生依從性調(diào)查表
- 湖北教育出版社四年級下冊信息技術(shù)教案
評論
0/150
提交評論