國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷31(共25題)_第1頁(yè)
國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷31(共25題)_第2頁(yè)
國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷31(共25題)_第3頁(yè)
國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷31(共25題)_第4頁(yè)
國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷31(共25題)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷31(共9套)(共25題)國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第1套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.epp,但該程序運(yùn)行有問(wèn)題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果是:nember=lnember=10nember:100注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在∥********error********的下面。#lnclude<10Stream.h>C1assTeStClass{public:TestClass(inti){nember=i;}voidSetNember(intm){nember=m;}intGetNember()const(returnnember;}voidPrint()const{cout<<“nember=”<標(biāo)準(zhǔn)答案:(1)TeStClasSobj1(1);(2)obj1.SetNember(10);(3)obj2.SetNember(100);知識(shí)點(diǎn)解析:程序要求輸出nember的值為1,10,100。從已定源程序的main主函數(shù)開(kāi)始入手,可以看出程序定義了TestClass類的對(duì)象objl和obj2,然后通過(guò)調(diào)用類的成員函數(shù)實(shí)現(xiàn)了題目中的輸出結(jié)果。解題思路(1)第1個(gè)標(biāo)識(shí)下,“’TestClassobjl;”語(yǔ)句是聲明TestClass類的對(duì)象objl,根據(jù)TestClass類構(gòu)造函數(shù)的定義TestClass(inti1,存在整型參數(shù),并且題目要求第一個(gè)輸出結(jié)果為1,所以補(bǔ)全參數(shù)1,即第1個(gè)標(biāo)識(shí)下的“TesClaSsobjl(1);”。(2)第2個(gè)標(biāo)識(shí)下的“objl.nember=10;”應(yīng)該是調(diào)用成員函數(shù)SetNember賦值。在C++中成員函數(shù)的使用形式應(yīng)該是:對(duì)象名.成員函數(shù),所以修改為“objl.SetNember(10);”。(3)類是對(duì)象的抽象,而對(duì)象是類的具體實(shí)例。第3個(gè)標(biāo)識(shí)下“TestClass.SetNember(100);”語(yǔ)句中的TestClass為類,并不是對(duì)象,這里應(yīng)該是使用定義的對(duì)象,即0bj2,修改為“obj2.SetNember(100);”。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。請(qǐng)完成函數(shù)fun(intx),該函數(shù)功能是判定x的所有的約數(shù),并且在函數(shù)中調(diào)用寫(xiě)函數(shù)WriteFile0將結(jié)果輸出到modi2.txt文件中。例如:x=10的約數(shù)為1,2,5,10。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).#include#include#includeusingnamespacestd;voidWriteFile(intc){ofstreamoutl;outl.open(”modi2.txt”,ios—base::binaryIlos—base::app);outl<標(biāo)準(zhǔn)答案:for(inti=1;i<=x;i++){if(x%i==0)//如果x被i整除,那么i為x的約數(shù){WriteFile(i);//將約數(shù)i存入文件}}知識(shí)點(diǎn)解析:(1)本題中函數(shù)的功能是求出約數(shù)。x的約數(shù)就是能整除其的所有整數(shù)。可以從1開(kāi)始到x,計(jì)算取余。如果整除該數(shù)為x的約數(shù)。(2)從已給部分源程序的main主函數(shù)開(kāi)始入手,核心函數(shù)voidfun(intx)中的X參數(shù)為要計(jì)算約數(shù)的整數(shù)。解題思路(1)由1到x,循環(huán)判斷其中是否有x的約數(shù)。(2)如果xX被i整除,那么i為x的約數(shù)。(3)最后調(diào)用WriteFile函數(shù),將約數(shù)i存入文件。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp,其中定義了用于表示人基本信息的類CHumanInf0,但類CHumanlnfo的定義并不完整。請(qǐng)按要求完成下列操作,將類CHumanlnfo的定義補(bǔ)充完成:(1)定義私有數(shù)據(jù)成員bloodType用于表示血型,血型為char型的數(shù)據(jù)。請(qǐng)?jiān)谧⑨尅啊?*******1********”之后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成構(gòu)造函數(shù)的定義,要求具有缺省值,缺省值為身高175,體重70,血型A。請(qǐng)?jiān)谧⑨尅啊?*******2********”之后添加適當(dāng)?shù)恼Z(yǔ)句。(3)完成類外CHumanInfo成員函數(shù)Setlnfo的定義。請(qǐng)?jiān)谧⑨尅啊?*******3********之后添加適當(dāng)?shù)恼Z(yǔ)句.(4)在主函數(shù)中調(diào)用成員函數(shù)Setlnfo,把對(duì)象d2的三個(gè)私有數(shù)據(jù)成員分別設(shè)定為身高170,體重64,血型為B。請(qǐng)?jiān)谧⑨尅啊?*******4********”之后添加適當(dāng)?shù)恼Z(yǔ)句。注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#includeC1assCHumanInf0{private:intheight;intweight;∥********1********public:∥********2********:height(ht),weight(wt),bloodType(bt){};CHumanInfo(CHumanlnfo&h1):height(h1.height),weight(h1.weight),bloodType(h1.bloodType){};intGetHeight(){returnheight;}intGetWeight(){returnweight;}intGetBloodType(){returnbloodType;}voidSetInfo(intht,intwt,charbt);voidDisplay(););∥********3********{height=ht;weight=wt;bloodType=bt;}voidCHumanInfo::Display(){cout<<”Humanlnfo:”;cout<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:charbloodType;(2)添加語(yǔ)句:CHumanInfo(intht=175,intwt=70,charbt=’A’)(3)添加語(yǔ)句:voidCHumanInfo::SetInfo(intht,intwt,charbt)(4)添加語(yǔ)句:h2.SetInfo(170,64,’B’)知識(shí)點(diǎn)解析:(1)第1個(gè)標(biāo)識(shí)下定義私有數(shù)據(jù)成員char型的bloodType,故第1個(gè)標(biāo)識(shí)下應(yīng)添加“charbloodType;”。(2)構(gòu)造CHumanlnf00完成三個(gè)成員的初始化,并且?guī)в腥笔≈祬?shù),缺省值為身高175,體重70,血型A,由函數(shù)體語(yǔ)句可知參數(shù)名分別為ht、叭和bt,因此第2個(gè)標(biāo)識(shí)下應(yīng)添加“CHumanlnfo(intht=-l75,intwt=70,charbt=-’A’)”。(3)第3個(gè)標(biāo)識(shí)下在類外完成成員函數(shù)Setlnfo的定義,在類外定義成員函數(shù)的格式為:<返回值類型><類名>::<成員函數(shù)>(<參數(shù)表>),故第3個(gè)標(biāo)識(shí)下應(yīng)添加“voidCHumanlnfo::Setlnfo(intht,intwt,charbt)”。(4)調(diào)用函數(shù)Setlnf00需要3個(gè)參數(shù),程序要求把對(duì)象d2的三個(gè)私有數(shù)據(jù)成員分別設(shè)定為身高170,體重64,血型為B,即把這三個(gè)值傳入函數(shù)SetlnfoO,因此第4個(gè)標(biāo)識(shí)下應(yīng)添加“h2.Setlnfo(170,64,’B’);”0國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第2套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj1下的工程proj1,此工程中包含程序文件main.cpp,其中有ElectricFan(“電風(fēng)扇”)類和主函數(shù)main的定義。程序中位于每個(gè)“//ERROR****found****”之后的一行語(yǔ)句有錯(cuò)誤,請(qǐng)加以改正。改正后程序的輸出結(jié)果應(yīng)為:品牌:清風(fēng)牌,電源:關(guān),風(fēng)速:0品牌:清風(fēng)牌,電源:開(kāi),風(fēng)速:3品牌:清風(fēng)牌,電源:關(guān),風(fēng)速:0注意:只修改每個(gè)“//ERROR****found***”下的那一行,不要改動(dòng)程序中的其他內(nèi)容。#include<iostream>usingnamespacestd;classElectricFan{//“電扇”類char*brand;intintensity;//風(fēng)速:0-關(guān)機(jī),1-弱,2-中,3-強(qiáng)public:ElectricFanfconstchar*the_brand):intensity(0){brand=newchar{strlen(the_brand)+1};strcpy(brand,the_brand);}~ElectricFan(){delete[]brand;}//ERROR*******found*******constchar*theBrand()const{return*brand;)//返回電扇品牌inttheIntensity()const{returnintensity;)//返回風(fēng)速boolisOn()const{returnintensity>0;}//返回電源開(kāi)關(guān)狀態(tài)//ERROR*******found*******voidturnOff(){intensity=1;)//關(guān)電扇voidsetIntensity(intinten){//開(kāi)電扇并設(shè)置風(fēng)速//ERROR*******found*******if(intensity>=1&&intensity<=3)intensity=inten;}voidshow(){cout<<"品牌:"<<theBrand()<<"牌"<<",電源:"<<(isOn()?"開(kāi)":"關(guān)")<<",風(fēng)速:"<<theIntensity()<<endl;}};intmein(){ElectricFanfan("清風(fēng)");fan.show();fan.setIntensity(3);fan.show();fan.turnOff();fan.show();return0;}標(biāo)準(zhǔn)答案:(1)constchar*theBrand()const{retumbrand;}//返回電扇品牌(2)voidturnOff(){intensity=0;}//關(guān)電扇(3)if(inten>=1&&inten<=3)intensity=inten:知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)指針的掌握情況,因?yàn)閎rand是一個(gè)動(dòng)態(tài)指針,木brand表示字符串的首個(gè)字符,brand表示動(dòng)態(tài)數(shù)組,這里要返回動(dòng)態(tài)數(shù)組存儲(chǔ)的品牌名稱。(2)主要考查考生對(duì)成員函數(shù)的掌握情況,根據(jù)題目中類的定義中私有成員的定義:intintensity;//風(fēng)速:0-關(guān)機(jī),1-弱,2-中,3-強(qiáng),可知本函數(shù)要關(guān)電扇,因此在這里intensity=0;。(3)主要考查考生對(duì)成員函數(shù)的掌握,根據(jù)題目中函數(shù)的注釋:開(kāi)電扇并設(shè)置風(fēng)速,可知if語(yǔ)句里要判斷的應(yīng)該是形參inten而不是intensity。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj2下的工程proj2,該工程中包含一個(gè)程序文件main.epp,其中有類AutoMobile(“汽車”)及其派生類Car(“小轎車”)、Truck(“卡車”)的定義,還有主函數(shù)main的定義。請(qǐng)?jiān)跈M線處填寫(xiě)適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:車牌號(hào):冀ABC1234品牌:ForLand類別:卡車當(dāng)前檔位:0最大載重量:12車牌號(hào):冀ABC1234品牌:ForLand類別:卡車當(dāng)前檔位:2最大載重量:12車牌號(hào):滬XYZ5678品牌:QQ類別:小轎車當(dāng)前檔位:0座位數(shù):5車牌號(hào):滬XYZ5678品牌:QQ類別:小轎車當(dāng)前檔位:-1座位數(shù):5注意:只能在橫線處填寫(xiě)適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。#include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;classAutoMobile(//“汽車”類char*brand;//汽車品牌char*number;//車牌號(hào)intspeed;//檔位:1、2、3、4、5,空檔:0。倒檔:-1public:AutoMobile(constchar*the_brand,constchar*the_number):speed(0){brand=newchar[strlen(the_brand)+1];//**********found**********_______;//**********found**********_______;strcpy(number,the_number);}~AutoMobile(){delete[]brand;delete[]number;}constchar*theBrand()const{returnbrand;}//返回品牌名稱constchar*theNumber()const{returnnumber;)//返回車牌號(hào)intcurrentSpeed()const{returnspeed;)//返回當(dāng)前檔位voidchangeGearTo(intthespeed){//換到指定檔位if(speed>=-1&&speed<=5)speed=the_speed;}virtualconstchar*category()const=0;//類別:卡車、小轎車等virtualvoidshow()const{cout<<"車牌號(hào):"<<theNumber()//**********found**********<<"品牌:"<<_______<<"類別:"<<category()<<"當(dāng)前檔位:"<<currentSpeed();}};classCar:publicAutoMobile{intseats;//座位數(shù)public:Car(constchar*the_brand,constchar*the_number,intthe_seats):AutoMobile(the_brand,the_number),seats(the_seats){}intnumberOfSeat()const{returnseats;}//返回座位數(shù)constchar*category()const{return"小轎車";}//返回汽車類別voidshow()const{AutoMobile∷show();cout<<"座位數(shù):"<<number-OfSeat()<<end1;}};classTruck:publicAutoMobile{//“卡車”類intmax_load;//最大載重量public:Truck(constchar*the_brand,constchar*the_number,intthe_max_load):AutoMobile(the_brand,the_number),max_load(the_maxload){}intmaxLoad()const{returnmax_load;)//返回最大載重量//**********found**********constchar*category()_______//返回汽車類別voidshow()const{AutoMobile∷show();cout<<"最大載重量:"<<maxLoad()<<end1;}};intmain(){Trucktruck("ForLand","冀ABC1234”,12),truck.show();truck.changeGearTo(2);truck.show();Carcar("QQ","滬XYZ5678",5);car.show();car.changeGearTo(-1);car.show();cout<<endl;return0;}標(biāo)準(zhǔn)答案:(1)strcpy(brand,the_brand)(2)number=newchar[strlen(the_number)+1](3)theBrand()(4)const{return"卡車";}知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)strcpy函數(shù)的掌握情況,在上一條語(yǔ)句程序給brand指針?lè)峙淞丝臻g,在這里要復(fù)制字符串the_brand,即strcpy(brand,the_brand);。(2)主要考查考生對(duì)動(dòng)態(tài)分配的掌握情況,參考brand指針的復(fù)制過(guò)程完成該語(yǔ)句,先給指針number分配空間,通過(guò)new來(lái)完成:number=newchar[strlen(the_number)+1];。(3)主要考查考生對(duì)成員函數(shù)的掌握,由程序可知這里要輸出的是品牌,因此調(diào)用成員函數(shù)theBrand()來(lái)輸出品牌。(4)主要考查考生對(duì)純虛函數(shù)的掌握,根據(jù)純虛函數(shù)的定義:virtualconstchar*category()const=0;,可知在這里要填寫(xiě):const{return"卡車";}。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj3下的工程proj3,其中使用友元函數(shù)訪問(wèn)類的私有數(shù)據(jù)成員,求出兩個(gè)數(shù)據(jù)成員的大于1的最小公因子。請(qǐng)編寫(xiě)友員函數(shù)FriFun,使其輸出結(jié)果為:Commondenominatoris2要求:補(bǔ)充編制的內(nèi)容寫(xiě)在“//********333********”與“//********666********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//proj3.hC1assFriFunClaSS{inta,b;public:FriFunClass(inti,intJ){a=i;b=j(luò);}friendintFriFun(FriFunClassx);//友元函數(shù)};voidwriteToFile(constchar*);//proj3.cpp#include<iostream>usingnamespacestd;#include"prj3.h"intFriFun(FriFunClassx){//********333********//由于函數(shù)FriFun()是類FriFunClass的友元函數(shù),所以它可以直接訪問(wèn)a和b//********666********}intmain(){FriFunClassn(10,20);if(FriFun(n))cout<<"Commondenominatoris"<<FriFun(n)<<"\n";elsecout<<”NOcommondenominator.\n";writeToFile("");return0;}標(biāo)準(zhǔn)答案:intmin=x.a(chǎn)<x.b?x.a(chǎn):x.b;//此處為取出x.a(chǎn)與x.b中的最小值for(inti=2;i<=min;i++)//從i到min遍歷數(shù)組if(x.a(chǎn)%i==0&&x.b%i==0)//如i能同時(shí)整除x.a(chǎn)來(lái)的x.b,則僅回ireturni;return-1;知識(shí)點(diǎn)解析:主要考查考生對(duì)友元函數(shù)的掌握情況,友元函數(shù)可以訪問(wèn)類的私有數(shù)據(jù)成員,題目要求函數(shù)求出兩個(gè)數(shù)據(jù)成員的大于1的最小公因子,從2開(kāi)始往上算,因此要同時(shí)可以被兩個(gè)私有成員整除,這里用取余符號(hào)完成,取余為0即為整除。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第3套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正常運(yùn)行,并且使程序輸出的結(jié)果為:a=7,b=0a=8,b=10注意:錯(cuò)誤的語(yǔ)句在∥********error********的下面,修改該語(yǔ)句即可。#includeclassCObj{public:∥********error********friendvoidfunc(CObj&,int,int);voiddisplay(){∥********error********cout<<“a=”<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:friendvoidfunc(CObj&,int);(2)cout<<“a=”<知識(shí)點(diǎn)解析:程序中定義了類CObj,其有兩個(gè)成員變量a和b,通過(guò)友元函數(shù)func()可改變a和b的值,display()成員函數(shù)顯示a和b的值。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。請(qǐng)完成函數(shù)fun(intn),求出nXn矩陣的對(duì)角線數(shù)字的平方和。如果n為奇數(shù),則對(duì)角線交叉部位數(shù)字只參與一次計(jì)算。注意:請(qǐng)勿改動(dòng)主函數(shù)main與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。#include#defineMAXN10intXX[MAXN][MAXN];intfun(intn){}voidmain(){intn;do{cout<<”pleaseinputN(1<=N<10):”<>n;if(n<10&&n>=1){break;}}while(1);for(inti=0;i>XX[i][j];}}cout<標(biāo)準(zhǔn)答案:intdata=0;//初始化求平方和變量for(inti=0;i知識(shí)點(diǎn)解析:本題函數(shù)中的功能是輸出N行N列正方陣,然后求兩條對(duì)角線上各元素之平方和。其中,假設(shè)矩陣行、列分別為i、j,那么對(duì)角線上的元素特點(diǎn)是主對(duì)角線上i=j,以及逆對(duì)角線j=n—i一1。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)定義私有數(shù)據(jù)成員year、month、day,分別用于年、月、日,它們都是int型的數(shù)據(jù),請(qǐng)?jiān)谧⑨尅?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成判斷數(shù)據(jù)成員date2是否是閏年函數(shù)intDate::IsLeapYear0的定義,返回?cái)?shù)據(jù)成員date2是否是閏年的值,是則返回1,否則返回0。請(qǐng)?jiān)谧⑨尅?*******2********后添加適當(dāng)?shù)恼Z(yǔ)句。(3)設(shè)置SetData0的默認(rèn)時(shí)間為:2004.12.1,請(qǐng)?jiān)谧⑨尅?*******3********后添加適當(dāng)?shù)恼Z(yǔ)句。(4)完成主函數(shù)main(),完成輸出date2isaleapyear,請(qǐng)?jiān)谧⑨尅?*******4********后添加適當(dāng)?shù)恼Z(yǔ)句。提示:公元紀(jì)年的年數(shù)可以被四整除,即為閏年;被100整除而不能被400整除為平年;被100整除也可被400整除的為閏年。注意:增加或修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修改其他的程序代碼。#includeusingnamespacestd;ClassDate{public:∥********3********voidSetDate(inty,intm,intn);intIsLeapYear();voidPrint(){cout<標(biāo)準(zhǔn)答案:(1)intyear,month,day;(2)將“return”補(bǔ)充完整為:returnfyear%400==0)If(year%4==0&&year%1001=0);(3)將“voidSetDate(inty,intm,intn);”補(bǔ)充完整為:voidSetDate(inty=2004,intm=12,intn=1);(4)將“cout<<“date2is”<<(“”:“not”)<<“aleapyear.”<知識(shí)點(diǎn)解析:本題中程序的功能是判斷2004年是否為閏年。其中成員函數(shù)SetDate設(shè)置日期,IsLeapYear函數(shù)判斷是否為閏年。在VC環(huán)境下打開(kāi)程序,根據(jù)題干給出的幾條功能要求,對(duì)程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從己定源程序的main主函數(shù)開(kāi)始入手,可以看出程序通過(guò)調(diào)用類Date和和其成員函數(shù)實(shí)現(xiàn)各種功能。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第4套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,使它能得出正確的結(jié)果。本程序要求屏幕輸出:n=99注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語(yǔ)句在∥********error********的下面。#include∥********error********classTestClass(){public:∥********error********void~TestClass(){};TeStClass(intn){cout<<‘n’<<‘=’<標(biāo)準(zhǔn)答案:(1)ClassTestClass(2)一TeStClass(){};(3)};知識(shí)點(diǎn)解析:程序要求輸出n=99。從已給定源程序的main主函數(shù)開(kāi)始入手,可以看出程序首先通過(guò)類TestClass中的TestClass構(gòu)造函數(shù)實(shí)現(xiàn)題目要求的輸出。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.epp。閱讀下列函數(shù)說(shuō)明和代碼,補(bǔ)充空出的代碼。函數(shù)conveX(char*des,char*str)實(shí)現(xiàn)的功能是,如果字符串s仃里面有空格或者不可打印字符,則全部去掉,將轉(zhuǎn)化后的字符串放在字符串des里,然后返回該字符串。注意:不能修改程序的其他部分,只能補(bǔ)充convert()函數(shù)。#include#include#defineMAXLEN1024char*convert(char*des,char*str){}voidmain(){chardest[MAXLEN];char*str:”AbcDeFhJK”;cout<標(biāo)準(zhǔn)答案:int]=0;for(inti=0;str[i]!=NULL;i++){if(Str[i]!=‘’&&isprint(Str[i]))//判斷是否是可打印的而且非空格字符{des[J++]=str[i];//添加}}des[j]=NULL;//最后一個(gè)字符為空returndes:知識(shí)點(diǎn)解析:函數(shù)convert(char*des,char*str)實(shí)現(xiàn)的功能是:如果字符串str里面有空格或者不可打印字符,則全部刪除,將轉(zhuǎn)化后的字符串放在字符串des里??捎醚h(huán)方式檢查str中的每個(gè)字符,判斷是不是空格或者不可打印字符,如果不是則放入des中,否則不放入des中。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)定義純虛類TestClass0,包含純虛函數(shù)fun(),請(qǐng)?jiān)谧⑨尅?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成類TestClass1,以公有繼承TestClass0,請(qǐng)?jiān)谧⑨尅?*******2********后添加適當(dāng)?shù)恼Z(yǔ)句。(3)定義TestClass0對(duì)象指針P,請(qǐng)?jiān)谧⑨尅?*******3********后添加適當(dāng)?shù)恼Z(yǔ)句。(4)把TestClassl的對(duì)象obj的指針賦給TestClass0指針P,請(qǐng)?jiān)谧⑨尅?*******4********后添加適當(dāng)?shù)恼Z(yǔ)句。注意:增加代碼,或者修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修改其他的程序代碼。#includeClassTestClass0{public:∥********1********};∥********2********C1assTestClass1{public:voidfun(){cout<<“fun”<fun();return0;標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:virtualvoidfun()=0;(2)將“classTestclassl”補(bǔ)充完整為:classTestClassl:publicTestClass0(3)添加語(yǔ)句:Testclass0*p;(4)添加語(yǔ)句:p=&obj;知識(shí)點(diǎn)解析:本題中的程序功能是利用派生類中的fun成員函數(shù)輸出字符串“fun”。在VC環(huán)境下打開(kāi)程序,根據(jù)題干給出的幾條功能要求,對(duì)程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從己定源程序的main主函數(shù)開(kāi)始入手,可以看出程序通過(guò)調(diào)用類的成員函數(shù)實(shí)現(xiàn)各種輸出操作。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第5套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請(qǐng)使用菜單命令或直接使用VC6打開(kāi)考生文件夾下的工程pmj1,其中有“MP3播放器”類MP3Player和主函數(shù)main的定義。程序中位于每個(gè)//ERROR*********found*********下的語(yǔ)句行有錯(cuò)誤,請(qǐng)加以更正。更正后程序的輸出應(yīng)該是:天籟一1黑色注意:只能修改每個(gè)//ERROR*********found*********下的那一行:不要改動(dòng)程序中的其他內(nèi)容。#include#includeusingnamespacestd;classMP3Player{//“MP3播放器”類char*type;//型號(hào)char*color;//顏色public://ERROR*********found*********MP3Player(constchar*ty=NULL,constchar*co){//ERROR*********found*********if(ty=NULL)type:NULL;else{type=newchar[strlen(ty)+1];strcpy(type,ty);}if(co==NULL)color=NULL;else{color=newchar[strlen(CO)+1];strcpy(color,co);}}一MP3Player(){if(type)delete[]type;//ERROR*********found*********if(color)deletecolor;}constchar*getType()const{re—turntype;}constchar*getColor()const{re—turncolor;)},intmain(){MP3Playermyplayer(“天籟-1”,“黑色”);cout<標(biāo)準(zhǔn)答案:(1)MP3Player(constchar*ty=NULL,constchar*co=NULL){或MP3Player(constchar*ty,constchar*co){(2)if(ty==NULL)(3)if(color)delete[]color;知識(shí)點(diǎn)解析:本題考查MP3Player類,其中涉及構(gòu)造函數(shù)的參數(shù)默認(rèn)值、相等運(yùn)算符與賦值運(yùn)算符的區(qū)別、動(dòng)態(tài)分配內(nèi)存的釋放。【解題思路】(1)主要考查考生對(duì)函數(shù)參數(shù)的默認(rèn)值的掌握,C++中的函數(shù)可以提供默認(rèn)實(shí)參,如果一個(gè)形參具有默認(rèn)實(shí)參,那么它之后的所有形參都必須有默認(rèn)實(shí)參,題目中ty提供了默認(rèn)實(shí)參,所以co也必須提供默認(rèn)實(shí)參,或者將ty的默認(rèn)實(shí)參去掉。(2)主要考查考生對(duì)相等運(yùn)算符與賦值運(yùn)算符區(qū)別的掌握,題意是判斷指針ty是否為NULL,而不是將ty賦值為NULL,修改賦值運(yùn)算符為相等運(yùn)算符。(3)主要考查動(dòng)態(tài)分配內(nèi)存的釋放,動(dòng)態(tài)分配的內(nèi)存在釋放時(shí),new分配的內(nèi)存需要使用delete釋放,而new[]分配的內(nèi)存需要使用delete[]。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請(qǐng)使用菜單命令或直接用VC6打開(kāi)考生文件夾下的工程proj2,其中有元素類Element和集合類MySet的定義。請(qǐng)?jiān)诔绦蛑械臋M線處填寫(xiě)適當(dāng)?shù)拇a,然后刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的輸出結(jié)果應(yīng)為:0358038注意:只能在橫線處填寫(xiě)適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不能刪除或移動(dòng)“//*********found*********{}1nclude#includeusiognamespacestd;#defineMaxElement100classElement{//“元素”類public:intn;Element(inti=0):n(i){)};classMySet{//“集合”類Element*element;//指向存儲(chǔ)元素的數(shù)組的指針intSize;//數(shù)組大小intcounter;//數(shù)組中元素的個(gè)數(shù)intcurrent;//用于表示掃描位置,及當(dāng)前被掃描元素在數(shù)組中的下標(biāo)public:MySet():element(newElement[100]),size(100),counter(0),current(0){)一MySet(){delete[]element;}voidadd(Elementele);//向集合中添加一個(gè)元素,保持由小到大的順序。voidremove(Elementele);//刪除集合中指定的元素voidscanFirst(){current=0;)//將掃描位置定位于首元素//*********found*********voidscanNext()(_______;)//將掃描位置定位于下一個(gè)元素Elementget()const{returnele-ment[current];}//返回當(dāng)前被掃描的元素boolisEnded()const{returncurrent>=counter;)//如果已經(jīng)沒(méi)有更多的元素可掃描了,返回true。voidshow();//顯示集合中所有元素};voidMySet::add(Elementele){intpos=counter;//pos用于確定元素應(yīng)插入的位置while(pos>0){//從后往前尋找該位置if(ele.n>element[pos一1].n)break;//找到應(yīng)插入的位置,退出循環(huán)//**********found**********if()return;//發(fā)現(xiàn)相同元素,終止添加過(guò)程。Pos一一;}if(counter>=size){//如果沒(méi)有足夠空間,擴(kuò)充空間(增加100個(gè)元素的容量)Element*tmp=element;//tmp指向原來(lái)的數(shù)組//**********found**********element=____________;//申請(qǐng)一個(gè)新的數(shù)組,容量擴(kuò)大100個(gè)元素的容量for(inti=0;ipos;i一一)element[i]=element[i一1];//后移相關(guān)元素,騰出存放新元素的空間element[pos]=ele,//插入新元素counter++;}voidMySet::show()fscanFirst();//掃描位置定位于首元素while(!isEnded()){cout<=0){//從后往前尋找該位置if(ele.n>elen~nt[pos].n)return;//集合中沒(méi)有該元素,終止刪除過(guò)程。if(ele.n==element[pos].n)break;//找到刪除的元素,退出循環(huán)。pos一一;}if(pos<0)return;//集合中沒(méi)有該元素,終止刪除過(guò)程。for(inti=pos;i標(biāo)準(zhǔn)答案:(1)++current(2)ele.n==element[pos一1].n(3)newElement[size+100](4)scanNext()知識(shí)點(diǎn)解析:本題考查自增運(yùn)算符、相等運(yùn)算符,動(dòng)態(tài)內(nèi)存分配、成員函數(shù)的使用?!窘忸}思路】(1)主要考查考生對(duì)數(shù)組和自增運(yùn)算符的掌握情況,掃描數(shù)組元素,將掃描位置定位到下一個(gè)元素,需要將下標(biāo)加1,使用自增運(yùn)算符。(2)主要考查考生對(duì)數(shù)組元素的訪問(wèn)和比較運(yùn)算符的掌握,pos初值為數(shù)組元素個(gè)數(shù),所以訪問(wèn)element元素使用pos一1,避免訪問(wèn)數(shù)組越界;另外需要判斷插入元素與當(dāng)前元素是否相等來(lái)決定程序是否返回,使用相等運(yùn)算符。(3)主要考查考生對(duì)動(dòng)態(tài)內(nèi)存分配的掌握,題意需要申請(qǐng)一個(gè)新的數(shù)組,并將當(dāng)前數(shù)組容量size擴(kuò)大100個(gè),所以答案為newElement[size+loo]。(4)主要考查考生對(duì)類成員函數(shù)的掌握,show函數(shù)用來(lái)輸出數(shù)組的所有元素,所以從首元素開(kāi)始一次輸出,輸出一個(gè)元素需要將掃描定位到下一個(gè)元素,對(duì)應(yīng)于前面的scan.First(),使用成員函數(shù)scanNext()最合適不過(guò)了。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請(qǐng)使用菜單命令或直接用VC6打開(kāi)考生文件夾下的工程proj3,其中聲明了‘Date類,它是一個(gè)用于表示日期的類。成員函數(shù)isLessThan用以比較兩個(gè)日期的大?。寒?dāng)?shù)谝粋€(gè)日期早于第二個(gè)日期時(shí),返回true,否則返回false。請(qǐng)補(bǔ)充完整函數(shù)isLessThan。在main函數(shù)中給出了一組測(cè)試數(shù)據(jù),此情況下程序的輸出應(yīng)該是:2007—06—21<2007—07—032007一06—21>=2007—06—192007—06—21<2010一01一01注意:只需在函數(shù)isLessThan的//**********333**********和//**********666**********之間填入若干語(yǔ)句,不要改動(dòng)程序中的其他內(nèi)容。#include”Date.h”intmain(){Datedatel(2007,6,21),date2(2007,7,3),date3(2007,6,19),date4(2010,1,1);datel.show();datel.isLessThan(date2)?cout<<"<”:cout<<¨>=",date2.show();cout<=¨;date3.show();cout<=";date4.show();cout<#includeusingnamespacestd;classDate{intyear;intmonth;intday;public:Date(intY,intm,intd):year(Y),month(m),day(d){)intgetYear()const{returnyear;)intgetMonth()const{returnmonth;)intgetDay()const{returnday;)voidshow(ostream&os=cout)jbooloperator==(Datedate)const{returnyear==date.year&&month=date.month&&day==date.day;}boolisLessThan(Datedate)const;};voidwriteToFile(constchar*path);}標(biāo)準(zhǔn)答案:boolless=false;if(year知識(shí)點(diǎn)解析:本題考查的是Date類,其中涉及布爾變量、成員函數(shù)的使用、邏輯運(yùn)算符和關(guān)系運(yùn)算符的使用?!窘忸}思路】主要考查考生對(duì)成員函數(shù)、關(guān)系運(yùn)算符和邏輯運(yùn)算符的掌握,成員函數(shù)isLessThan是將該對(duì)象本身與參數(shù)date進(jìn)行比較,返回是否小于的布爾值。為了比較isLessThan的調(diào)用對(duì)象與date的大小,需要依次比較year、month、day三個(gè)整數(shù),由于date的year、month、day都是私有成員,所以不能在islessThan中直接使用date的私有成員,而是應(yīng)該使用date的共有成員函數(shù)來(lái)返回這些值,再將本身的成員與返回值比較,同時(shí),為了比較時(shí)間大小,應(yīng)該首先將year進(jìn)行比較,接著是month,最后是day,并將比較結(jié)果暫存布爾變量less中,最后返回。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第6套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正其中的錯(cuò)誤,使程序正確運(yùn)行,并且使程序輸出的結(jié)果為:HelloVisualC++!HelloVisualC++!!注意:錯(cuò)誤的語(yǔ)句在//********error********的下面,修改該語(yǔ)句即可。1#include2classCMyObject3{4public:5CMyObject()6{7//********error********8cout<<"Hello,9"VisualC++!"<標(biāo)準(zhǔn)答案:(1)cout<<"HelIo,"(2)cout<<"Hello,\(3)~CMyObject()知識(shí)點(diǎn)解析:程序當(dāng)中定義了類CMyObject,含有兩個(gè)構(gòu)造函數(shù)和一個(gè)析構(gòu)函數(shù),在構(gòu)造函數(shù)內(nèi)部均使用COU輸出一段字符。[解題思路](1)由程序的運(yùn)行結(jié)果可知,語(yǔ)句CMyObjectobjl;定義objl對(duì)象調(diào)用默認(rèn)的構(gòu)造函數(shù),此時(shí)屏幕上輸出“HelloVisualC++!”,cout流中的數(shù)據(jù)是用流插入運(yùn)算符“<<”順序加入的,第1個(gè)標(biāo)識(shí)下“Hello,”字符串插在輸出流中,因此必須加雙引號(hào)引用起來(lái),即第1個(gè)標(biāo)識(shí)下應(yīng)該為“cout<<"Hello,"”。(2)第2個(gè)標(biāo)識(shí)下“\n”表示換行,與要求的輸出結(jié)果不同,因此第2個(gè)標(biāo)識(shí)下應(yīng)改為“cout<<”Hello.\”。(3)析構(gòu)函數(shù)是一個(gè)特殊的函數(shù),其函數(shù)名與類名相同,并在其名加“~”,用來(lái)與構(gòu)造函數(shù)加以區(qū)別,因此第3個(gè)標(biāo)識(shí)下應(yīng)改為“~CMyObject()”。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,完成空出部分程序。函數(shù)convert(char*strOct)的功能是將八進(jìn)制轉(zhuǎn)換為十進(jìn)制。提示:要每一位轉(zhuǎn)換,然后把轉(zhuǎn)換后得到的數(shù)累加起來(lái)即可。注意:不能修改其他部分的代碼。1#include2#include3intconvert(char*strOct)4{56}7intmain()8{9cout<標(biāo)準(zhǔn)答案:1intre=0;2while(*stroct)3{4re=re*8+(*Stroct)-’0’;5StrOct++;6}7returnre;知識(shí)點(diǎn)解析:函數(shù)convert(char*stroct)的功能是將八進(jìn)制轉(zhuǎn)換為十進(jìn)制,將八進(jìn)制轉(zhuǎn)換成十進(jìn)制的方法是按權(quán)展開(kāi),即八進(jìn)制數(shù)第0位的權(quán)值為8的0次方,第1位權(quán)值為8的1次方,第2位權(quán)值為8的2次方,依次將各位數(shù)乘上其權(quán)值,然后求和即得到相應(yīng)的十進(jìn)制數(shù)。[解題思路](1)定義整型變量變量re,re記錄求得的10進(jìn)制數(shù)。(2)convert(char*strOct)的輸入?yún)?shù)為字符指針,而不是整形數(shù)據(jù)指針,因此需要將ASCII碼轉(zhuǎn)換成相應(yīng)的數(shù)字量,即(*strOct)-’0’。(3)按權(quán)展開(kāi)可采用循環(huán)迭代的方法,如:(123)8=((1×8)+2)×8+3,即迭代過(guò)程為上一次運(yùn)算得到的結(jié)果再乘以8加現(xiàn)在的元素值,即re=re*8+(*strOct)-’0’。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)完成類TestClassl的成員函數(shù)seta定義,定義seta對(duì)象X為int類型,請(qǐng)?jiān)谧⑨?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成類TestClassl(共有)和類TestClass2(私有)派生類TestClass3的定義,請(qǐng)?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z(yǔ)句。(3)定義類TestClass3中的私有成員C為int,請(qǐng)?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z(yǔ)句。(4)完成setc中對(duì)基類的變量a的賦值,請(qǐng)?jiān)谧⑨專?*******4********后添加適當(dāng)?shù)恼Z(yǔ)句。注意:增加代碼,或者修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修改其他的程序代碼。1#include2classTestClasSl3f4inta;5public:6//********1********78{9returna=x;10}11voidshowa()12{13cout<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:intseta(intx)(2)添加語(yǔ)句:classTestClass3:publicTestclassl,privateTestClass2(3)添加語(yǔ)句:intc;(4)添加語(yǔ)句:seta(x);知識(shí)點(diǎn)解析:本題的功能是利用類中的成員函數(shù)設(shè)置數(shù)值,并將其輸出。在VC環(huán)境下打開(kāi)程序,根據(jù)題干給出的幾條功能要求,對(duì)程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從已定源程序的main主函數(shù)開(kāi)始入手,可以看出程序通過(guò)調(diào)用類TestClass實(shí)現(xiàn)各種輸出操作。[解題思路](1)題目l要求“完成類TestClassl的成員函數(shù)seta定義,定義seta對(duì)象x為int類型”。類的成員函數(shù)是函數(shù)的一種,它與一般函數(shù)的區(qū)別只是,它是一個(gè)類的成員,出現(xiàn)在類體中。所以類TestClassl中的成員函數(shù),就是在TestClassl中定義題目中要求的參數(shù)為intx的seta函數(shù),即“intseta(intx)”。(2)題目2要求“完成類TestClassl(公有)和類TestClass2(私有)派生類TestClass3的定義”。從已有的類產(chǎn)生一個(gè)新的子類,稱為類的派生。聲明派生類的一般形式為:class派生類名:[繼承方式]基類名。根據(jù)聲明派生類的一般形式,這里補(bǔ)全“classTestClass3:publicTestClassl,privateTestClass2”。(3)題目3要求“定義類TestClass3中的私有成員c為int”。在類TestClass3中的private數(shù)據(jù)成員區(qū)域,定義intc,即在第3個(gè)標(biāo)識(shí)下補(bǔ)全“intc;”。(4)題目4要求“完成setc中對(duì)基類的變量a的賦值”?;悶門(mén)estClassl,setc對(duì)于該類a的賦值,是intseta(intx)函數(shù)的賦值,即“seta(x);”國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第7套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,但該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為:number1=anumber2=anumber1=anumber2=b注意:錯(cuò)誤的語(yǔ)句在∥********error********的下面,修改該語(yǔ)句即可。#includeclassCMyClass{public:∥********error********friendvoidSetValue(CMyClasobj,charC){obj.number1=c;obj.number2=c;}∥********error********voidSetValue(CMyClassobjcharc1,charc2){obj.number1=c1;obj.number2=c2;}voiddisplay(){cout<<“number1=”<標(biāo)準(zhǔn)答案:(1)friendvoidSetValue(CMyClass&obj,charc)(2)voidSetValue(CMyClasS&obj,charc1,charc2)(3)t.SetValue(t,‘a(chǎn)’,‘b’);知識(shí)點(diǎn)解析:程序中定義了類CMyClass,含有兩個(gè)成員變量char型變量number1和number2,友元SetValue()函數(shù),成員函數(shù)SetValue()和display()函數(shù),SetValue()函數(shù)可改變number1和number2的值,display()函數(shù)在屏幕上打印number1和number2的值。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,完成空出部分程序,使函數(shù)fun()實(shí)現(xiàn)以下功能:找出一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上268又是一個(gè)完全平方數(shù),請(qǐng)問(wèn)該數(shù)是多少?程序分析:在10萬(wàn)以內(nèi)判斷,先將該數(shù)加上100后再開(kāi)方,再將該數(shù)加上268后開(kāi)方,如果開(kāi)方后的結(jié)果滿足條件,即是結(jié)果。#include#includevoidfun(){}intmain(){fun();return0;}標(biāo)準(zhǔn)答案:longint1,x,y,z;for(i=1;i<100000;i++){x=sqrt(i+100);//x為加上100后開(kāi)方后的結(jié)果y=sqrt(i+268);//y為再加上268后開(kāi)方的結(jié)果if(x*x==i+100&&y*y==i+268)//如果一個(gè)數(shù)的平方根的平方等于該數(shù),說(shuō)明此數(shù)是完全平方數(shù)cout<知識(shí)點(diǎn)解析:(1)該程序功能是找出一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上268又是一個(gè)完全平方數(shù)。它的解題思路,根據(jù)題干中給出的分析可知解題思路為,先將該數(shù)加上100后再開(kāi)方,再將該數(shù)加上268后開(kāi)方,如果開(kāi)方后的結(jié)果滿足條件,即是結(jié)果。(2)從已給部分源程序的main主函數(shù)開(kāi)始入手,核心函數(shù)voidfun()實(shí)現(xiàn)題目中的功能。國(guó)家二級(jí)C++機(jī)試(操作題)模擬試卷第8套一、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)1、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說(shuō)明和代碼,實(shí)現(xiàn)函數(shù)sort(intA[],intn),用選擇排序法把數(shù)組從大到小排序。提示:選擇排序法的思想是:(1)反復(fù)從還未排好的那部分線性表中選擇出關(guān)鍵字最小的節(jié)點(diǎn);(2)按照從線性表中選擇出的順序排列節(jié)點(diǎn),重新組成線性表;(3)直到未排序的那部分為空,則重新形成的線性表是一個(gè)有序的線性表。補(bǔ)充函數(shù)sort(intA[],intn),實(shí)現(xiàn)選擇排序。注意:請(qǐng)勿改動(dòng)主函數(shù)。#include#defineN10voidSort(intA[N],intn){}intmain(){intA[N]={1,2,10,5,7,19,34,78,一3,8};sort(A,10);for(inti=0;i標(biāo)準(zhǔn)答案:inti,j;for(i=0;iA[j+1])//如果前面的數(shù)比后面的大則進(jìn)行交換{intt=A[j];//做交換A[j]=A[j+1];A[j+1]=t;}}}知識(shí)點(diǎn)解析:選擇法的思路是:將相鄰兩個(gè)數(shù)比較,將小的調(diào)到前頭。這樣下標(biāo)從0到n-1的數(shù)與其后面相鄰的數(shù)交換,可以把最大的數(shù)交換到數(shù)組的末端。進(jìn)行n次下標(biāo)從0到n-1的交換,則數(shù)組則會(huì)變成有序的,而且是由小到大的順序。二、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)類CBase有一個(gè)常數(shù)變量Number1,在構(gòu)造函數(shù)時(shí)對(duì)其初始化,請(qǐng)?jiān)谧⑨尅?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)類CPri是CBaSe的公共繼承類,請(qǐng)?jiān)谧⑨尅?*******2********后添加適當(dāng)?shù)恼Z(yǔ)句。(3)類CPri構(gòu)造函數(shù)有兩個(gè)形式參數(shù),第一個(gè)是對(duì)CBase的初始化,第二個(gè)缺省為0,用來(lái)對(duì)變量Number2進(jìn)行初始化。請(qǐng)?jiān)谧⑨尅?*******3********后添加適當(dāng)?shù)恼Z(yǔ)句。(4)類CPri的函數(shù)display()重載于CBase的打印函數(shù)。完成對(duì)變量Number2的輸出,然后調(diào)用基類的打印函數(shù),請(qǐng)?jiān)谧⑨尅?*******4********后添加適當(dāng)?shù)恼Z(yǔ)句。輸出的內(nèi)容如下:Number2=12Number=8注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#includeClassCBase{private:intNumber;public:∥********1********CBaSe(intx){}voiddisplay(){cout<<“Number=”<標(biāo)準(zhǔn)答案:(1)將“CBase(intx)”補(bǔ)充完整為:CBase(intx):Number(x)(2)將“classCPri”補(bǔ)充完整為:classCPri:publicCBase(3)將“CPri(intx,inty=0)”補(bǔ)充完整為:Cpri(intx,inty=0):CBase(x)(4)添加語(yǔ)句:cout<<“Number2=”<知識(shí)點(diǎn)解析:程序中定義了類CBase和類CPri,類CPri公有派生于類CBase,CBase中有成員變量Number,CPri有成員變量Number2,兩個(gè)類均有display()函數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論