版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(jí)C++機(jī)試(操作題)模擬試卷21(共9套)(共27題)國家二級(jí)C++機(jī)試(操作題)模擬試卷第1套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,此工程中包含一個(gè)源程序文件main.cpp,其中有類Book(“書”)和主函數(shù)main的定義。程序中位于每個(gè)“//ERROR****found****”下的語句行有錯(cuò)誤,請(qǐng)加以改正。改正后程序的輸出結(jié)果應(yīng)該是:書名:C++語句程序設(shè)計(jì)總頁數(shù):299已把“C++語言程序設(shè)計(jì)”翻到第50頁已把“C++語言程序設(shè)計(jì)”翻到第51頁已把“C++語言程序設(shè)計(jì)”翻到第52頁已把“C++語言程序設(shè)計(jì)”翻到第51頁已把書合上。當(dāng)前頁:0注意:只修改每個(gè)“//ERROR****found****”下的那一行,不要改動(dòng)程序中的其他內(nèi)容。#includeusingnamespacestd;classBook{char*title;intnum_pages;//頁數(shù)intcur_page;//當(dāng)前打開頁面的頁碼,0表示書未打開public://ERROR********found********Book(constchar*theTitle,intpages)num_pages(pages){title=newchar[strlen(theTitle)+1];strcpy(title,theTitle);cout<num_pages){cout<<"無法翻到第"<標(biāo)準(zhǔn)答案:(1)Book(constchar*theTitle,intpages):num_pages(pages)(2)voidopenAtPage(intpage_no){//把書翻到指定頁(3)cur_page=0;知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,構(gòu)造函數(shù)的成員列表初始化法要注意它的格式,即成員列表前要有標(biāo)識(shí)符“:”,因此語句改為:Book(constchar*theTitle,intpages):Bum_pages(pages)。(2)主要考查考生對(duì)const函數(shù)的掌握,在函數(shù)體中可以看到有語句cur_page=page_no,即cur_page的值發(fā)生改變,因此該函數(shù)不是const函數(shù)。(3)主要考查考生對(duì)成員函數(shù)的掌握,題目要求輸出的最后一條是“當(dāng)前頁:0”,可知主函數(shù)中調(diào)用close函數(shù)后當(dāng)前頁為0,因此應(yīng)該是cur_page=0;。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,該工程中包含程序文件main.cpp,其中有類Mammal(“哺乳動(dòng)物”)、類Elephant(“大象”)、類Mouse(“老鼠”)的定義和主函數(shù)main的定義。請(qǐng)?jiān)跈M線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述定義。此程序的正確輸出結(jié)果應(yīng)為:ELEPHANTMOUSE注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。#includeusingnamespacestd;enumcategory{EMPTY,ELEPHANT,MOUSE);char*output[]={"EMPTY","ELEPHANT","MOUSE"};classMammal{public:Mammal(char*str){//**********found**********name=new__________strcpy(name,str);}virtualchar*WhoAmI()=0;virtual~Mammal(){delete[]name;}voidPrint(){cout<Print();deletepm;pm=newMouse("Micky");pm->Print();deletepm;return0;}標(biāo)準(zhǔn)答案:(1)char[strlen(str)+1];(2)Mammal(str)(3)returnoutput[MOUSE];(4)Elephant知識(shí)點(diǎn)解析:(1)主要考查分配空間,程序要給name分配空間,由下一條語句中strcpy(name,str)可知程序要把字符串str復(fù)制給name,因此要分配的空間大小為strlen(str)+1。(2)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,因?yàn)镋lephant類是Mammal類的派生類,所以其構(gòu)造函數(shù)要使用成員列表先對(duì)Mammal類初始化。(3)主要考查考生對(duì)枚舉類型的掌握,先看程序:enumcategory{EMPTY,ELEPHANT,MOUSE}。再參考Elephant類中的WhoAmI函數(shù):char*WhoAmI(){returnoutput[ELEPHANT];}??芍@里要填寫的返回語句為:returnoutput[MOUSE];。(4)主要考查考生對(duì)派生類的掌握,題目要求輸出:ELEPHANTMOUSE可知,要先調(diào)用Elephant類的WhoAm1函數(shù),因此給指針pm分配Elephant類空間。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請(qǐng)使用VC6或使用【答題】菜單打開考生目錄proj3下的工程文件proj3,此工程中包含一個(gè)源程序文件proj3.cpp,補(bǔ)充編制c++程序proj3.cpp,其功能是讀取文本文件in.dat中的全部內(nèi)容,將文本存放到doc類的對(duì)象myDoc中。然后將myDoc中的字符序列反轉(zhuǎn),并輸出到文件out.dat中。文件in.dat的長度不大于1000字節(jié)。要求:補(bǔ)充編制的內(nèi)容寫在“//********333********”與“//********66666********”兩行之間。實(shí)現(xiàn)將myDoc中的字符序列反轉(zhuǎn),并將反轉(zhuǎn)后的序列在屏幕上輸出。不得修改程序的其他部分。注意:程序最后已將結(jié)果輸出到文件out.dat中,輸出函數(shù)writeToFile已經(jīng)給出并且調(diào)用。//proj3.cpp#include#include#includeusingnamespacestd;Classdoc{private:char*str;//文本字符串首地址intlength;//文本字符個(gè)數(shù)public://構(gòu)造函數(shù),讀取文件內(nèi)容,用于初始化新對(duì)象,filename是文件名字符串首地址doc(char*filename);voidreverse();//將字符序列反轉(zhuǎn)~doc();voidwriteToFile(char*filename);};doc::doc(char*filename){ifstreammyFile(filename);intfen=1001,tmp;str=newchar[len];length=0;while((tmp=myFile.get())!=EOF){str[length++]=tmp;}str[length]=’\0’;myFile.close();}voiddoc::reverse(){//將數(shù)組str中的length個(gè)字符中的第一個(gè)字符與最后一個(gè)字符交換,第二個(gè)字符與倒數(shù)第二個(gè)//字符交換……//***************333***************//***************666***************}doc::~doc(){delete[]str;}voiddoc::writeToFile(char*filename){ofstreamoutFile(filename);outFile<標(biāo)準(zhǔn)答案:inti,j;//定義兩個(gè)整數(shù)臨時(shí)變量i.j.for(i=0,j=length-1;i<j;i++,j--){chartemp=str[i];//把Str[i]中的值保存在臨時(shí)變量tempstr[i]=str[j];//把Str[j]值賦給Str[i],實(shí)現(xiàn)字符前后替換str[j]=temp;//把保存在臨時(shí)變量temp中的值再賦值給Str[j]}知識(shí)點(diǎn)解析:題目要求將myDoc中的字符序列反轉(zhuǎn),在main函數(shù)中我們看到myDoc是doc類,根據(jù)doc類的定義可以知道它是把讀取文件的字符串存到str動(dòng)態(tài)數(shù)組中。reverse函數(shù)實(shí)現(xiàn)將數(shù)組str中的length個(gè)字符中的第一個(gè)字符與最后一個(gè)字符交換,第二個(gè)字符與倒數(shù)第二個(gè)字符交換,依次類推。使用變量i和j,分別表示第一個(gè)字符和最后一個(gè)字符的下標(biāo),定義temp作為中間變量進(jìn)行交換。國家二級(jí)C++機(jī)試(操作題)模擬試卷第2套一、基本操作題(本題共1題,每題1.0分,共1分。)1、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,此工程包含一個(gè)源程序文件proj1.cpp。其中位于每個(gè)注釋“//ERROR****found****”之后的一行語句存在錯(cuò)誤。請(qǐng)改正這些錯(cuò)誤,使程序的輸出結(jié)果為:Youareright.注意:只修改注釋“//ERROR****found****”的下一行語句,不要改動(dòng)程序中的其他內(nèi)容。//proj1.cpp#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intx):number(x){}//ERROR*******found*******~MyClass(intx){}//ERROR*******found*******voidJudge(MyClass&obj);private:intnumber;};voidJudge(MyClass&obj){if(obj.number==10)cout<<"Youareright."<<end1;elsecout<<"Sorry"<<end1;}intmain(){//ERROR*******found*******MyClassobject;Judge(object);return0;}標(biāo)準(zhǔn)答案:(1)~MyClass(){}(2)friendvoidJudge(MyClass&obj);(3)MyClassobject(10);知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)析構(gòu)函數(shù)的掌握,析構(gòu)函數(shù)是沒有形參的,因此把形參去掉即可,因?yàn)樵擃悰]有動(dòng)態(tài)分配空間,所以不需要使用delete語句釋放空間。(2)主要考查考生對(duì)友元函數(shù)的掌握,在函數(shù)定義中有語句voidJudge(MyClass&obj),在main函數(shù)中有語句Judge(object);,即Judge函數(shù)是可以被類外函數(shù)調(diào)用的,并且定義時(shí)沒有加上類名和作用域,因此可以知道Judge函數(shù)是友元函數(shù),需要在類型前加上friend。(3)主要考查考生對(duì)構(gòu)造函數(shù)調(diào)用的掌握,題目要求輸出結(jié)果為:Youareright,在Judge函數(shù)體內(nèi)有語句:if(obj.number==10)cout<<"Youareright."<<end1;要想使屏幕輸出語句:Youareright.,就必須使obj.number的值為10,因此要使用構(gòu)造函數(shù)語句MyClassobject(10);。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,此工程中包含一個(gè)頭文件shape.h,其中包含了類Shape、Point和Triangle的聲明;包含程序文件shape.cpp,其中包含了類Triangle的成員函數(shù)和其他函數(shù)的定義;還包含程序文件proj2.cpp,其中包含測試類Shape、Point和Triangle的程序語句。請(qǐng)?jiān)诔绦蛑械臋M線處填寫適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述功能。此程序的正確輸出結(jié)果應(yīng)為:此圖形是一個(gè)抽象圖形,周長=0,面積=0此圖形是一個(gè)三角形,周長=6.82843,面積=2注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。//shape.hclassShape{public:virtualdoubleperimeter()const{return0;}//返回形狀的周長virtualdoublearea()const{return0;}//返回形狀的面積virtualconstchar*name()const{return"抽象圖形")//返回形狀的名稱};classPoint{//表示平面坐標(biāo)系中的點(diǎn)的類doublex;doubley;public://**********found**********Point(doublex0,doubley0):_______{}//用x0、y0初始化數(shù)據(jù)成員x、ydoublegetX()const{returnx,}doublegety()const{returny;}};classTriangle:publicShape{//**********found**********_______;//定義3個(gè)私有數(shù)據(jù)成員public:Triangle(Pointp1,Pointp2,Pointp3):pointl(p1),point2(p2),point3(p3){)doubleperimeter()const;doublearea()const;constchar*name()const{return"三角形";}};//shape.cpp#include"shape.h"#include<cmath>doublelength(Pointp1,Pointp2){returnsqrt((p1.getX()-p2.getX())*(p1.getX()-p2.getX())+(p1.getY()-p2.getY())*(p1.getY()-p2.getY()));}doubleTriangle∷perimeter()const{//一個(gè)return語句,它利用length函數(shù)計(jì)算并返回三角形的周長//**********found**********_______;}doubleTriangle∷area()const{doubles=perimeter()/2.0;returnsqrt(s*(s-length(point1,point2))*(s-length(point2,point3))*(s-length(point3,point1)));}//proj2.cpp#include"shape.h"#include<iostream>usingnamespacestd;//********found********_______//show函數(shù)的函數(shù)頭(函數(shù)體以前的部分){cout<<"此圖形是一個(gè)"<<shape.name()<<",周長="<<shape.perimeter()<<",面積="<<shape.a(chǎn)rea()<<end1;}intmain(){Shapes;Triangletri(Point(0,2),Point(2,0),Point(0,0));show(s);show(tri);return0;}標(biāo)準(zhǔn)答案:(1)x(x0),Y(y0)(2)Pointpoint1,point2,point3(3)returnlength(point1,point2)+length(point1,point3)+length(point2,point3)(4)voidshow(Shape&shape)知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,題目要求用x0、y0初始化數(shù)據(jù)成員x、y,因此在這里使用成員列表初始化,即Point(doublex0,doubley0):x(x0),y(yo){}。(2)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,題目要求定義3個(gè)私有數(shù)據(jù)成員。由構(gòu)造函數(shù)可知3個(gè)私有數(shù)據(jù)成員的類型都是Point,名稱分別為point1、point2和point3,因此空格處填寫:Pointpoint1,point2,point3。(3)主要考查:考生對(duì)成員函數(shù)的掌握,題目要求使用return語句,利用length函數(shù)計(jì)算并返回三角形的周長。length函數(shù)返回的是兩點(diǎn)間的距離,因此return語句只要返回三角形三條邊的距離和,即為三角形的周長。(4)主要考查考生對(duì)成員函數(shù)的掌握,這里要定義show函數(shù)的函數(shù)頭(函數(shù)體以前的部分)。由主函數(shù)main中show函數(shù)的使用情況show(s)和show(tri)可知,s是Shape類,tri是Triangle類,因?yàn)門riangle是Shape類的派生類,所以可知show函數(shù)的參數(shù)是Shape類型,無返回值,得出語句voidshow(Shape&shape)。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、請(qǐng)使用【答題】菜單命令或直接用VC6打開考生文件夾下的工程proj3,其中聲明的是一個(gè)人員信息類,補(bǔ)充編制程序,使其功能完整。在main函數(shù)中給出了一組測試數(shù)據(jù),此種情況下程序的輸出應(yīng)該是:Zhang20Tsinghua。注意:只能在函數(shù)address_change的“//********333********”和“********666********”之間填入若干語句,不要改動(dòng)程序中的其他內(nèi)容。程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//proj3.h#include<iostream>#include<string>usingnamespacestd;classPerson{charname[20];intage;char*address;public:Person(){age=0;address=0;}voidname_change(char*_name);//名字修改函數(shù)voidage_change(int_age);//年齡修改函數(shù)voidaddress_change(char*_add);//地址修改函數(shù)voidinfodisplay();//人員信息顯示~Person();//析構(gòu)函數(shù)};voidwrriteToFile(constchar*path);proj3.cpp#include<iostream>#include<string>#include"proj3.h"usingnamespacestd;voidPerson∷namechange(char*_name1{strcpy(name,name);}voidPeEson∷age_change(int_age){age=_age;}voidPeEson∷address_change(char*_add){if(address!=NULL)delete[]address;//********333********//********666********}voidPerson∷info_display(){cout<<name<<’\t’<<age<<’\t’;if(address!=NULL)cout<<address<<end1;tout<<end1;}Person∷~PeEson(){if(address!=NULL)delete[]address;}voidmain(){PeEsonp1;p1.name_change("Zhang");p1.a(chǎn)ge_change(20);p1.a(chǎn)ddress_change("TsinghuaUniversity");p1.a(chǎn)ddresschange("Tsinghua");p1.infodisplay();writeToFile("");}標(biāo)準(zhǔn)答案:address=newchar[strlen(_add)+1];//給類成員變量動(dòng)態(tài)分配空間strcpy(address,_add);//把字符_add復(fù)制給address知識(shí)點(diǎn)解析:函數(shù)address_change(char*_add)的功能是地址修改,也就是說通過該函數(shù)把類的地址修改為add字符串。類的私有成員address是字符指針,因此首先要給address分配空間,通過new語句來實(shí)現(xiàn):address=newchar[strlen(_add)+1];。接下來就是要復(fù)制字符串,使用系統(tǒng)函數(shù)strcpy,其用法為strcpy(參數(shù)1,參數(shù)2),將參數(shù)2的內(nèi)容復(fù)制到參數(shù)1中。國家二級(jí)C++機(jī)試(操作題)模擬試卷第3套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使得程序輸出:number1=4.8number2=93.6number3=0.9PRODUCT=404.352注意:錯(cuò)誤的語句在∥********error********的下面。修改該語句即可。其他的語句不能修改。#includeUSingnamespacestd;intmain(){doublenumberl=4.8,number2=93.6,number3=0.9;∥********error********product=numberl*number2*number3;∥********error********cout<<"numberl=”<標(biāo)準(zhǔn)答案:(1)doubleproduct=number1*number2*number3;(2)cout<<“numberl=”<知識(shí)點(diǎn)解析:(1)C++要求變量在定義后才能使用,顯然product變量沒有定義,number1、number2和number3均為double型變量,product是這三個(gè)變量的乘積,因此product的數(shù)據(jù)類型是double型,因此第1個(gè)標(biāo)識(shí)下應(yīng)改為doubleproduct=number1*number2*number3。(2)cout流中的數(shù)據(jù)是用流插入運(yùn)算符“<<”順序加入的,第2個(gè)標(biāo)識(shí)下是輸出numberl、number2和number3的值,各個(gè)數(shù)據(jù)之間用“<<”順序加入,不能用“<”,第2個(gè)標(biāo)識(shí)下應(yīng)改為cout<<”numberl=”<二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部分程序。函數(shù)fun(intn)的功能是在n行n列的矩陣中,每行都有最大的數(shù),本程序求這n個(gè)最大數(shù)中的最小一個(gè),并作為參數(shù)返回。注意:不能修改程序的其他部分,只能修改fun()函數(shù)。#include#defineN100inta[N][N];intfun(intn){}voidmain(){intn;cout<<”pleaseinputN:”<>n;for(inti=0;i>a[i][j];}cout<<”Theminofmaxnumbers—is”(標(biāo)準(zhǔn)答案:introw;intmax;intmin;intcol;for(row=0;row知識(shí)點(diǎn)解析:(1)該程序功能是找出矩陣中所有行最大的數(shù)中的最小一個(gè)。它的解題思路,首先找出每一行的最大值,然后在這些值中進(jìn)行比較,找出其中的最小值。(2)從已給部分源程序的main主函數(shù)開始入手,核心函數(shù)intfun(intn)中的n參數(shù)為矩陣中的列和行數(shù)。解題思路(1)兩層循環(huán),內(nèi)層循環(huán)求每一行最大值,外層循環(huán)求最小值。(2)求最大值,首先將最大值賦值為每行第一列的元素,然后依次循環(huán)比較。(3)將求出的第一個(gè)最大值賦值為第一個(gè)最小值,然后將以后求得的最大值依次與之比較,求出所有值的最小值。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)在類TestClass中定義name為字符串類型,age為整型,請(qǐng)?jiān)谧⑨尅?*******1********之后添加語句。(2)設(shè)置類TestClass0的基類為TestClass類的定義,請(qǐng)?jiān)谧⑨尅?*******2********后添加語句。(3)在類TestClass的派生類TestClass0的公有成員中定義析構(gòu)函數(shù)TestClass0,請(qǐng)?jiān)凇?*******3********后添加。(4)設(shè)置類TestClassl的基類為TestClass類的定義,請(qǐng)?jiān)凇?*******4********后實(shí)現(xiàn)。本程序輸出如下結(jié)果:TestClassclassconstructorTestClass0classconstructorTestClassonclassconstructorTcstClasslclassconstructorTestClasslclassconstructorTcstClassclassconstructorTestClass0classconstructorTestClassclassconstructor注意:增加代碼,或者修改代碼的位置已經(jīng)用符號(hào)表示出來。請(qǐng)不要修改其他的程序代碼。#includeC1assTestClass{∥********1********public:TestClass(){cout<<“TestClassclassconstructor”<標(biāo)準(zhǔn)答案:(1)添加語句:char*name;intage;(2)添加語句:classTestel.a(chǎn)ss0:publicTestclass(3)添加語句:~Testclasso()(4)添加語句:classTestel.a(chǎn)ssl:publ.icTestelass知識(shí)點(diǎn)解析:本題的功能是利用構(gòu)造函數(shù)和析構(gòu)函數(shù)中的輸出語句,輸出字符串。在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對(duì)程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從已定源程序的main主函數(shù)開始入手,完成類的定義以及其成員函數(shù)。解題思路(1)題目l要求“TestClass中定義name為字符串類型,age為整型”。根據(jù)題目要求,在程序TestClass類中定義變量name和age,即“char*name;intage;”。(2)題目2要求“設(shè)置類TestClass0的基類為TestClass類的定義”。在C++中,從已有的類產(chǎn)生一個(gè)新的子類,稱為類的派生。聲明派生類的一般形式為:class派生類名:繼承方式,基類名。根據(jù)聲明派生類的一般形式,這里補(bǔ)全“classTestClass0:publicTestClass”。(3)題目3要求“在類TestClass的派生類TestClass0的公有成員中定義析構(gòu)函數(shù)TestClass0”,析構(gòu)函數(shù)也是一個(gè)特殊的成員函數(shù),它的作用與構(gòu)造函數(shù)相反,它的名字是類名的前面加一個(gè)“~”符號(hào)。題目中要求的類名字為“’YestClass0”即這里補(bǔ)全“~1"estClass0()”。(4)題目4要求“設(shè)置類TestClassl的基類為TestClassl類的定義”同(2)在第4個(gè)標(biāo)識(shí)下補(bǔ)充“classTestClassl:publicTestClass”。國家二級(jí)C++機(jī)試(操作題)模擬試卷第4套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modil.cpp,但該程序運(yùn)行有問題,請(qǐng)改正main函數(shù)中的錯(cuò)誤,使程序的輸出結(jié)果是:112233445566778899注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在//********error********的下面。1#include2#include3voidmain()f4inta[3][3]={{1,2,3),{4,5,6),{7,8,9));5int*p,i;6//********error********7P=a;8for(i=0;i<9;i++){9cout<標(biāo)準(zhǔn)答案:(1)P=&a[0][0];(2)cout<知識(shí)點(diǎn)解析:從已給定源程序的main主函數(shù)開始入手,可以看出程序是通過數(shù)組與指針兩種方法輸出數(shù)組值。[解題思路](1)打開modil.cpp,調(diào)試程序,顯示錯(cuò)誤提示為第一標(biāo)識(shí)下“modi1.cpp(71:errorC2440:’=’:cannotconvefrom’int[3][3]’to’int*’”,a為二維數(shù)組型變量,將其值賦值給p,應(yīng)該是P指向數(shù)組a的起始位置,即“p=&a[0][0];”。(2)程序中第2個(gè)標(biāo)識(shí)下的“cout<二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。請(qǐng)完成函數(shù)fun(char*data),此函數(shù)的功能是,找出字符串?dāng)?shù)組中最小的ASCII值,如果有相同變量,則輸出最后一個(gè)所在的位置;如果字符串為空,則返回一1;或者不存在時(shí)也返回一1。注意:請(qǐng)勿改動(dòng)主函數(shù)main與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。計(jì)算數(shù)字如果第一個(gè)字母最小,則返回0。依次增加。1#include2intfun(char*data)3{45}6voidmain()7{8charStr[1024];9cout<<"請(qǐng)輸入一行英文字符串:\n";10cin.getline(str,1024);11cout<<"最小的字母出現(xiàn)在距離頭部"<標(biāo)準(zhǔn)答案:1intMinPos=0;//初始化最小值位置2if(data==NULL)//判斷輸入字符串是否為空3return-1;4charMinData=data[0];//設(shè)置字符串第一個(gè)字符為最小值5if(MinData==0)//判斷第一個(gè)字符是否存在6return一1;7for(inti=1;data[i]!=0;i++)8{9if(data[i]<=MinData)10{11iMinData=data[i];//逐個(gè)判斷每個(gè)字母是否小于標(biāo)記字符12MinPos=i;//最小值位置13}14}15returnMinPos;知識(shí)點(diǎn)解析:(1)該程序功能是找出字符串?dāng)?shù)組中最小的ASCII值。它的解題思路,用最小值變量標(biāo)記第一個(gè)待找字符,把所有待找字符和標(biāo)記字符逐個(gè)進(jìn)行比較,并標(biāo)記其當(dāng)前最小值及其所在位置,從而找出最小值。(2)從已給部分源程序的main主函數(shù)開始入手,核心函數(shù)intfun(char*data)中的data參數(shù)為輸入的字符串?dāng)?shù)組,其中MinPos為最小值位置。[解題思路](1)MinPos變量首先指向字符串data的第一個(gè)字符,同時(shí)將標(biāo)志位MinPos初始值賦為0。(2)然后利用for循環(huán)對(duì)每一個(gè)當(dāng)前字符與MinPos標(biāo)記的字符進(jìn)行比較。(3)循環(huán)中將求得的最小數(shù)據(jù)data[i]賦值給MinData,并將該數(shù)據(jù)項(xiàng)數(shù)組標(biāo)志位賦給標(biāo)志位MinPos。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)完成構(gòu)造函數(shù)的定義,使得數(shù)據(jù)成員變量filename和contex為空,內(nèi)容長度FileLength為0。請(qǐng)?jiān)谧⑨專狭?*******1********后添加適當(dāng)?shù)恼Z句。(2)完成析構(gòu)函數(shù),對(duì)contex內(nèi)存的釋放。請(qǐng)?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z句。(3)完成WriteFile()函數(shù),用來對(duì)contex內(nèi)容進(jìn)行設(shè)置填充內(nèi)容,如果以前有內(nèi)容,則刪除以前的內(nèi)容,重新填寫。請(qǐng)?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z句。(4)完成CopyFile()~數(shù),完成將參數(shù)對(duì)象的contex的內(nèi)容拷貝到當(dāng)前的文件內(nèi)容中,請(qǐng)?jiān)谧⑨專?*******4********后添加適當(dāng)?shù)恼Z句。注意:除在指定位置添加語句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。1#include2classMyFileClasS3{4private:5charfilename[64];6char*contex;7intFileLength;8public:9MyFileClasS()10{11//********1********1213contex=NULL;14FileLength=0;15}16~MyFileClasS()17{18if(FileLength)19//********2********2021}22voidOpenFile(char*str,intlen)23{24for(inti=0;i標(biāo)準(zhǔn)答案:(1)添加語句:filename[0]=0;或filename[0]=NULL;(2)添加語句:delete[]contex;(3)添加語句:deletecontex;(4)添加語句:WriteFlie(file.contex,file.FileLength);知識(shí)點(diǎn)解析:程序當(dāng)中定義了類MyFileClass,包含3個(gè)成員變量,分別為filename、contex和FileLength,分別表示文件名、文件內(nèi)容和文件長度,類MyFileClass有多個(gè)成員函數(shù):構(gòu)造函數(shù)、析構(gòu)函數(shù)、OpenFile(char*str,intlen)、WriteFlie(char*str,intlen)、CopyFile(MyFileClass&file)和display(),OpenFile()用來給filename賦值,并清空contex內(nèi)容;WriteFileO函數(shù)用來對(duì)contex內(nèi)容進(jìn)行設(shè)置填充內(nèi)容;CopyFile(MyFileClass&file)函數(shù)完成將參數(shù)file對(duì)象的contex內(nèi)容拷貝到當(dāng)前的文件內(nèi)容中;display()將contex內(nèi)容打印到屏幕上。[解題思路](1)構(gòu)造函數(shù)MyFileClass()完成類成員變量的初始化,將數(shù)據(jù)成員變量filename和contex為空,內(nèi)容長度FileLength為0,因此第1個(gè)標(biāo)識(shí)下應(yīng)添加“filename[0]=0;”或“filename[0]=NULL;”。(2)析構(gòu)函數(shù)用來釋放一個(gè)對(duì)象,在對(duì)象刪除前,用它來做一些清理工作,WriteFlie()函數(shù)會(huì)申請(qǐng)內(nèi)存空間,因此在對(duì)象刪除的時(shí)候必須將這些內(nèi)存空間釋放,這個(gè)工作可以放在析構(gòu)函數(shù)中來處理,第2個(gè)標(biāo)識(shí)下是釋放由new申請(qǐng)的內(nèi)存空間,因此第2個(gè)標(biāo)識(shí)下應(yīng)添加“delete[]contex;”。(3)WriteFile0函數(shù)首先對(duì)contex內(nèi)容清空,第3個(gè)標(biāo)識(shí)下應(yīng)添加“deletecontex;”。(4)CopyFile(MyFileClass&file)函數(shù)完成將參數(shù)file對(duì)象的contex的內(nèi)容拷貝到當(dāng)前的文件內(nèi)容中,可直接調(diào)用WriteFlie()函數(shù),因此第4個(gè)標(biāo)識(shí)下應(yīng)添加“WriteFlie(file.contex,file.FileLength);”。國家二級(jí)C++機(jī)試(操作題)模擬試卷第5套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正其中的錯(cuò)誤,使程序正確運(yùn)行。并且使程序輸出的結(jié)果為:OK注意:錯(cuò)誤的語句在//********error********的下面,修改該語句即可。#includeClassCBaSe{public:CBaSe(){a=b=0;)private:inta,b;};classCDerivel:publicCBase{public:CDerivel(){}//********error********virtualvoidfunc();};classCDerive2:publicCDerivel{public:CDerive2(){a=0;b=0;}Voidfunc(){//********error********cout<<"OK"func();}標(biāo)準(zhǔn)答案:(1)virtualvoidfunc()=0;(2)cout<<"OK"<知識(shí)點(diǎn)解析:(1)由審題分析可知,CDerivel類中的func()函數(shù)是純虛函數(shù),純虛函數(shù)的定義格式為:virtual<函數(shù)類型><函數(shù)名>(<參數(shù)表>)=0,因此第1個(gè)標(biāo)識(shí)下應(yīng)為“virtualvoidfunc()=0;”。func()函數(shù)沒有參數(shù)表。(2)編譯程序后發(fā)現(xiàn)第2個(gè)標(biāo)識(shí)下有錯(cuò)誤,cout流中的數(shù)據(jù)是用流插入運(yùn)算符“<<”順序加入的,因此“<”不正確,應(yīng)改成“cout<<"OK"<二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,完成空出部分程序。函數(shù)fun(int*arr,intn)的功能是將指定的有序數(shù)組壓縮成各元素互不相同的有序數(shù)組,即相同數(shù)只保留一個(gè),多余的被刪除。并返回互不相同的元素的個(gè)數(shù)。注意:不能修改程序的其他部分,只能修改fun()函數(shù)。#includeintfun(int*a,intn){}Voidmain(){intA[]=(6,6,5,4,4,3,3,2,1);intj=fun(A,sizeof(A)/sizeof(int));for(inti=0;i標(biāo)準(zhǔn)答案:intj;intk=0;//指向數(shù)組第一個(gè)元素j=1;//指向數(shù)組第二個(gè)元素while(j知識(shí)點(diǎn)解析:(1)首先指向數(shù)組第一個(gè)元素a[k],然后將第二元素a[j]與它比較,不同存入數(shù)組第二個(gè)元素(a[++k])。(2)同時(shí),將被比較的位置向后移動(dòng)一位(j++)。循環(huán)直到數(shù)組的最后一個(gè)元素比較完畢。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、使用VC6打開考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)完成類Rect的構(gòu)造函數(shù),實(shí)現(xiàn)對(duì)變量left、right、top、bottom的初始化,缺省值都為0,請(qǐng)?jiān)谧⑨專?*******1********后添加適當(dāng)?shù)恼Z句。(2)完成類Rectangle的構(gòu)造函數(shù),請(qǐng)?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z句。(3)完成計(jì)算矩形對(duì)角線長度函數(shù)Diagonal(),請(qǐng)?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z句。(4)完成計(jì)算周長函數(shù)Girth(),請(qǐng)?jiān)谧⑨專?*******4********后添加適當(dāng)?shù)恼Z句。程序輸出:50140注意:增加代碼,或者修改代碼的位置已經(jīng)用符號(hào)表示出來。請(qǐng)不要修改其他的程序代碼。#include#includeclassRectangle{public:intleft,right,top,bottom;//********1********{left=1;right=r;top=t;bottom=b;}//********2********{left=rc.1eft;right=rc.right;top=rc.top;bottom=rc.bottom;}floatDiagonal(){//********3********return}intGirth(){//********4********return}};intmain(){Rectanglerect(20,50,40,80);Rectanglerect2(rect);cout<標(biāo)準(zhǔn)答案:(1)添加語句:Rectangle(int1,intr,intt,intb)(2)添加語句:Rectangle(Rectangle&rc)(3)將“return”補(bǔ)充完整為:returnsqrt((right—left)*(right—left)+(bottom—top)*(bottom—top));(4)將“return”補(bǔ)充完整為:return2*((right—left)+(bottom—top));知識(shí)點(diǎn)解析:(1)構(gòu)造函數(shù)函數(shù)名和類名一致,構(gòu)造函數(shù)可以重載,即多個(gè)構(gòu)造函數(shù)有相同的名字不同的參數(shù),顯然題目當(dāng)中兩個(gè)構(gòu)造函數(shù)均有參數(shù),由函數(shù)體體內(nèi)“l(fā)eft=1;right=r;top=t;bottom=b;”,說明l,r,t,b為構(gòu)造函數(shù)的參數(shù),因此第1標(biāo)識(shí)處應(yīng)添加“Rectangle(intl,intr,intt,intb)”。(2)和題目1一樣,構(gòu)造函數(shù)名和類名一致,函數(shù)體內(nèi):“l(fā)eft=rc.left;right=re.right;top=re.top;bottom=rc.bottom;”顯然rc是Rect對(duì)象,故該構(gòu)造函數(shù)的參數(shù)為re對(duì)象,故第2標(biāo)識(shí)處應(yīng)添加“Rectangle(Rectangle&rc)”。(3)由對(duì)象的left、fight、top、bottom值可以求得矩形的長和寬,因此可采用勾股定理計(jì)算對(duì)角線長度,即第3標(biāo)識(shí)處補(bǔ)充完整為:returnsqrt((right.1eft)*(fight—left)+(bottom-top)*(bottom—top))。(4)同樣的周長可由長和寬的數(shù)值計(jì)算得到,長和寬之和的兩倍即周長,第4標(biāo)識(shí)處補(bǔ)充完整為:return2*((right—left)+(bottom—top))。國家二級(jí)C++機(jī)試(操作題)模擬試卷第6套一、基本操作題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:將a所指4×3矩陣中第k行的元素與第0行元素交換。例如,有下列矩陣:123456789101112若k為2,程序執(zhí)行結(jié)果為:789456123101112請(qǐng)?jiān)诔绦虻闹欣ㄌ?hào)處填入正確的內(nèi)容并把中括號(hào)刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#defineN3#defineM4/*********found*********/voidfun(int(*a)[N],int【1】){inti,temp;/*********found*********/for(i=0;i<【2】;i++){temp=a[0][i];/*********found*********/a[0][i]=【3】;a[k][i]=temp;}}main(){intx[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j;printf("Thearraybeforemoving:\n\n");for(i=0;i標(biāo)準(zhǔn)答案:(1)k(2)N(3)a[k][i]知識(shí)點(diǎn)解析:填空1:變量k在函數(shù)體fun中已經(jīng)使用,但在函數(shù)體中沒有定義,肯定是在函數(shù)的形參中定義的,所以應(yīng)填k。填空2:數(shù)組共N列,所以應(yīng)填N。填空3:這部分語句實(shí)現(xiàn)的功能是變量值的交換,所以應(yīng)填a[k][i]。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、給定程序MODll.C中,函數(shù)fun的功能是求矩陣(二維數(shù)組)a[N][N]中每行的最小值,結(jié)果存放到數(shù)組b中。假如:若a=[12*]則結(jié)果應(yīng)為1,5,9,13,請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include#defineN4voidfun(inta[][N],intb[]){inti,j;for(i=0;i標(biāo)準(zhǔn)答案:(1)b[i]=a[i][0];(2)for(j=1;ja[i][j])知識(shí)點(diǎn)解析:數(shù)組b存放每行的最小值,針對(duì)二維數(shù)組使用二層循環(huán),在第一層循環(huán)的開始將每行的第1個(gè)數(shù)賦給數(shù)組b相應(yīng)的元素,在第二層循環(huán)中,數(shù)組b中的元素依次與本行中的每個(gè)元素進(jìn)行比較,找到一行中的最小值存入數(shù)組b。(1)b[i]存放二級(jí)數(shù)組a每一行中第1個(gè)元素值,表示為a[i][0]。(2)每行元素的第1個(gè)值要和這一行中的每個(gè)元素進(jìn)行比較,條件j三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、學(xué)生的記錄由學(xué)號(hào)和成績組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,其功能是:把低于平均分的學(xué)生數(shù)據(jù)放入b所指的數(shù)組中,低于平均分的學(xué)生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include#defineN8typedefstruct{charnum[10];doubles;}STREC;doublefun(STREC*a,STREC*b,int*n){}V0idmain(){STRECs[N]=({"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85),{"GA01",91},{"GA07",72},{"GA08",64),{"GA06",87}};STRECh[N];inti,n;doubleave;aVe=fun(s,h,&n);printf("The%dstudent;datawhichislowerthan%7.3f:\n",n,ave);for(i=0;i標(biāo)準(zhǔn)答案:doublefun(STREC*a,STREC*b,int*n){inti,j=0;doubleav=0.0;for(i=0;i知識(shí)點(diǎn)解析:本題使用循環(huán)語句和條件判斷語句來實(shí)現(xiàn)程序操作,第1個(gè)循環(huán)語句的作用是求出總分,然后求出平均分av。第2個(gè)循環(huán)的作用是將分?jǐn)?shù)低于平均分的學(xué)生記錄存入結(jié)構(gòu)體數(shù)組b中。國家二級(jí)C++機(jī)試(操作題)模擬試卷第7套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾下的源程序文件modi1.cpp,但該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使該程序的輸出結(jié)果為:100注意:錯(cuò)誤的語句在//********error********的下面,修改該語句即可。#includestaticintx=50;intt=0;int*func(intx,inty,intz){t=t+x+y+z;//********error********returnt;};Voidmain(){inty=30;intx=10;intz=20;//********error********x=x;//********error********cout<標(biāo)準(zhǔn)答案:(1)return&t;(2)X=::x;(3)cout<<*func(x,y,z)<知識(shí)點(diǎn)解析:(1)由審題分析可知,函數(shù)func(intx,inty,intz)返回的是整型數(shù)據(jù)指針,而第1個(gè)標(biāo)識(shí)下的returnt表示返回一個(gè)整型數(shù)據(jù),和要求的返回?cái)?shù)據(jù)類型不匹配,應(yīng)改為“return&t;”。(2)第2個(gè)標(biāo)識(shí)下x=x表示局部變量x自己給自己賦值,調(diào)用func(x,y,z)函數(shù)后,返回的運(yùn)算結(jié)果是30+10+20=60,與輸出100不同,而全局靜態(tài)變量x值為50,30+50+20=100,剛好滿足條件,因此第2個(gè)標(biāo)識(shí)下是將全局靜態(tài)變量x的值賦給局部變量x,即第2個(gè)標(biāo)識(shí)下應(yīng)該為“X=::x;”,“::”表示的是引用全局變量。(3)func(x,y,z)返回一個(gè)整型數(shù)據(jù)指針,通過該指針可以得到運(yùn)算結(jié)果,而cout<二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、使用VC6打開考生文件夾下的源程序文件modi2.cpp。請(qǐng)完成函數(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。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include#include#includeusingnamespacestd;voidWriteFile(char*s){}voidfun(char*s){}voidClearFile(){ofstreamout1;out1.open("modi2.txt");out1.Close();}intmain(){C1earFile();chars[1024];cout<<"pleaseinputastring:"<標(biāo)準(zhǔn)答案:(1)voidWriteFile(char*s)中的命令語句:ofstreamout1,tout1.open("modi2.txt",iosbase::binary|iosbase::app);//打開文件modi2out1<=’A’&&s[i]<=’Z’)//如果是大寫字符,轉(zhuǎn)換為小寫字符{s[i]=s[i]一’A’+’a’;//’s[i]一’A’+’a’等于字符s[i]+32’}Elseif(S[i]>=’a’&&s[i]<=’z’)//如果是小寫字符,轉(zhuǎn)換為大寫字符{s[i]=s[i]一’a’+’A’;//’s[i]一’a’+’A’’等于字符s[i]一32}}WriteFile(s);(2)從已給部分源程序的main主函數(shù)開始入手,首先實(shí)現(xiàn)WriteFile函數(shù),然后再實(shí)現(xiàn)fun函數(shù),并在其中調(diào)用WriteFile函數(shù)。知識(shí)點(diǎn)解析:(1)在WriteFile(char*s)函數(shù)中,利用標(biāo)準(zhǔn)流ofstream實(shí)現(xiàn)字符串寫入文件modi2.txt。(2)在fun函數(shù)中,利用for循環(huán)逐個(gè)判斷字符是大寫還是小寫。(3)如果是大寫,那么加上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,其中定義了多個(gè)類,但類不能達(dá)到輸出要求,按照定義的輸出修改函數(shù),使得輸出如下:TestClass3TestClass2TestClass1其中定義的類并不完整,按照要求完成下列操作,將類的定義補(bǔ)充完整。(1)類TestClass2公共繼承于TestClass1,請(qǐng)?jiān)谧⑨專?*******1********后添加適當(dāng)?shù)恼Z句。(2)print函數(shù)為虛函數(shù),請(qǐng)?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z句。(3)修改語句,使得P指定對(duì)象obj3,請(qǐng)?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z句。(4)修改語句,利用P調(diào)用print()函數(shù),完成輸出信息,注釋//********4********后添加適當(dāng)?shù)恼Z句。注意:僅在函數(shù)指定位置添加語句,請(qǐng)勿改動(dòng)主函數(shù)main與其他函數(shù)中的任何內(nèi)容。#includeusingnamespacestd;ClassTestClass1{public:voidprint(){cout<<"TestClass1"<標(biāo)準(zhǔn)答案:(1)將“classTestClass2”補(bǔ)充完整為:ClassTestClass2:publicTestClass1(2)將“voidprint()”補(bǔ)充完整為:virtualvoidprint()(3)將“p=obj3;”修改為:p=&obj3;(4)將“p.print();”修改為:p->print();知識(shí)點(diǎn)解析:(1)題目1要求“類TestClass2公共繼承于TestClass1”。從已有的類產(chǎn)生一個(gè)新的子類,成為類的派生。聲明派生類的一般形式為:class派生類名:[繼承方式]基類名。根據(jù)題目中的要求以及派生類的一般形式,第1個(gè)標(biāo)識(shí)下添加語句“classTestClass2:publicTestClass1990(2)題目2要求“print函數(shù)為虛函數(shù)”。在C++中,用virtual聲明的函數(shù)為虛函數(shù),因此第2個(gè)標(biāo)識(shí)下的語句修改為“virtualvoidprint()”。(3)題目3要求“使得P指定對(duì)象obj3”。p為指針變量,obj3為類的對(duì)象,將一個(gè)指針變量指向另一個(gè)變量,只要把被指向的變量的地址賦給指針變量即可。取對(duì)象obj3地址的語句為&obj3,所以這里補(bǔ)全“p=&obj3;”。(4)題目4要求“利用P調(diào)用print()函數(shù)”。C++中用"->"運(yùn)算符實(shí)現(xiàn)成員訪問,因此調(diào)用print()函數(shù),應(yīng)將第4個(gè)標(biāo)識(shí)下修改為“p->print();”。國家二級(jí)C++機(jī)試(操作題)模擬試卷第8套一、基本操作題(本題共1題,每題1.0分,共1分。)1、給定程序中,函數(shù)fun的功能是:計(jì)算出形參s所指字符串中包含的單詞個(gè)數(shù),作為函數(shù)值返回。為便于統(tǒng)計(jì),規(guī)定各單詞之間用空格隔開。例如,形參s所指的字符串為:ThisisaClanguageprogram.,函數(shù)的返回值為6。請(qǐng)?jiān)诔绦虻闹欣ㄌ?hào)處填入正確的內(nèi)容并把中括號(hào)刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includeintfun(char*s){intn=0,flag=0;while(*s!=’\0’){if(*s!=’’&&flag==0){/*********found*********/【1】;flag=1;)/*********found*********/if(*s==’’)flag=【2】;/*********found*********/【3】;}returnn;}main(){charstr[81];intn;printf("\nEnteralinetext:\n");gets(str);n=fun(str);printf("\nThereare%dwordsinthistext.\n\n",n);}標(biāo)準(zhǔn)答案:(1)n++(2)0(3)s++知識(shí)點(diǎn)解析:填空1:單詞個(gè)數(shù)用變量n來統(tǒng)計(jì),當(dāng)前字母不是空格且flag狀態(tài)標(biāo)志為0時(shí),可以劃斷出現(xiàn)一個(gè)新的單詞,則單詞數(shù)就加1,將狀態(tài)標(biāo)志flag置為1,所以應(yīng)填n++。填空2:當(dāng)前字符是空格時(shí),flag狀態(tài)標(biāo)志置0,所以應(yīng)填0。填空3:判斷完一個(gè)字符之后,要繼續(xù)判斷字符串的下一個(gè)位置,所以應(yīng)填s++。二、簡單應(yīng)用題(本題共1題,每題1.0分,共1分。)2、下列給定程序中,函數(shù)fun的功能是:找出一個(gè)大于給定整數(shù)m且緊隨m的素?cái)?shù),并作為函數(shù)值返回。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#includeintfun(intm){inti,k;for(i=m+1;;i++){for(k=2;k標(biāo)準(zhǔn)答案:(1)if(i%k==0)(2)if(k==i)知識(shí)點(diǎn)解析:(1)判斷當(dāng)前數(shù)是否為素?cái)?shù),若存在一個(gè)數(shù)(除l和其自身)能整除當(dāng)前數(shù),則跳出本次循環(huán),所以if條件應(yīng)為i%k==0。(2)如果i是素?cái)?shù),則循環(huán)結(jié)束時(shí)k==i,將該值返回。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)3、規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)和尾部的*號(hào)外,將串中其他的*號(hào)全部刪除。形參h已指向字符串中第一個(gè)字母,形參p指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“****A*BC*DEF*G********”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****ABCDEFG********”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include#include#includevoidfun(char*a,char*h,char*p){}main(){chars[81],*t,*f;printf("Enterastring:\n");gets(s);t=f=s;while(*t)t++;t--;while(*t==’*’)t--;while(*f==’*’)f++;fun(s,f,t);printf("Thestringafterdeleted:\n");puts(s);}標(biāo)準(zhǔn)答案:voidfun(char*a,char*h,char*p){inti=0;char*q=a;/*將前導(dǎo)*號(hào)保存到a中*/while(q知識(shí)點(diǎn)解析:本題的重點(diǎn)是要選擇好判斷條件,首先是需要判斷前導(dǎo)*號(hào)的結(jié)束,然后判斷是否指向最后一個(gè)字母,最后補(bǔ)充尾部*號(hào),只要思路對(duì)了即可正確解答。國家二級(jí)C++機(jī)試(操作題)模擬試卷第9套一、基本操作題(本題共1題,每題1.0分,共1分。)1、使用VC6打開考生文件夾
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度物流園區(qū)承包租賃管理合同4篇
- 2025年度35KV變電站電氣設(shè)備改造工程咨詢合同3篇
- 二零二五年度洗浴中心品牌連鎖加盟承包合作協(xié)議3篇
- 二零二五版旅游車輛租賃合同(含景區(qū)交通票務(wù)服務(wù))3篇
- 2025年度棉花產(chǎn)業(yè)節(jié)能減排技術(shù)合作合同4篇
- 2025年度定制化產(chǎn)品物流配送承包合同4篇
- 二零二五年度節(jié)水灌溉項(xiàng)目設(shè)計(jì)施工一體化合同4篇
- 二零二五年度洗碗設(shè)備節(jié)能改造合同4篇
- 中藥材2024年進(jìn)出口合同
- 2025年度文化演出活動(dòng)聘用勞務(wù)合同范本4篇
- 專利補(bǔ)正書實(shí)例
- 《動(dòng)物生理學(xué)》課程思政優(yōu)秀案例
- 高分子材料完整版課件
- DB37∕T 5118-2018 市政工程資料管理標(biāo)準(zhǔn)
- 大氣紅色商務(wù)展望未來贏戰(zhàn)集團(tuán)年會(huì)PPT模板課件
- T∕CAWA 002-2021 中國疼痛科專業(yè)團(tuán)體標(biāo)準(zhǔn)
- 住宅工程公共區(qū)域精裝修施工組織設(shè)計(jì)(217頁)
- 冷卻塔技術(shù)要求及質(zhì)量標(biāo)準(zhǔn)介紹
- (完整版)項(xiàng)目工程款收款收據(jù)
- 井點(diǎn)降水臺(tái)班記錄表
- 奇瑞汽車4S店各類表格模板
評(píng)論
0/150
提交評(píng)論