全国计算机等级考试二级C++上机考试指导.doc
《全国计算机等级考试二级C++上机考试指导.doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C++上机考试指导.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.二级C+语言次第方案上机检验包括全然把持、庞杂应用跟综合应用。2.C+上机把持要紧是恳求考生可以阅读跟分析C+次第,可以采用面向东西的办法编写次第,能熟练应用VisualC+6.0集成开拓状况编写跟调试次第。3.上机检验总时辰为90分钟,总分值100分,共有3种类型的考题:全然把持题、庞杂应用题、综合应用题。4.全然把持题要紧以改作题的办法出现,其出题范围要紧是C+中有关类与东西的把持,如调查查象的定义、东西成员的访征询办法等;庞杂应用题要紧是调查考生编写应用次第的才能,如题目恳求的功能完成某个函数的定义,或调查某种算法的C+完成等;综合应用题的出题范围要紧汇合在类跟东西以及类的承袭与派生
2、这些知识点上。出题办法素日是恳求考生按照题目恳求将次第补偿残缺,并调试次第使之输出精确的结果。例1应用VC6打开考生文件夹下的工程proj1,此工程包括一个源次第文件main.cpp,但该次第运行有征询题,请改正main函数中的差错。源次第文件main.cpp清单如下:#includeclassMyClasspublic:MyClass(intm)member=m;MyClass()intGetMember()returnmember;private:intmember;MyClassMakeobject(intm)MyClass*pMyClass=newMyClass(m);return*p
3、MyClass;intmain()intx=7;/*found*/MyClass*myobj=Makeobject(x);/*found*/coutMyobjecthasmember return0;分析:此题调查查象指针的应用,属于改错题。次第中出现了2个出错标识符,阐明此次第有2处差错。第1处差错:MyClass*myobj=Makeobject(x);,myobj是东西指针,而函数Makeobject的前去值是类MyClass的东西,因此应改为:MyClass*my0bj=&Make0bject(x);。第2处差错是:coutMyobjecthasmember 成员名
4、;跟(*东西指针名).成员名;,显然上述语句的东西指针的应用办法是差错的。答案:应改为:coutMyobjecthasmemberGetMember() (*myobj).GetMember()例2请编写一个函数intfind(chars,chart),该函数在字符串s中查寻字符串t,假定寻到,那么前去字符串t在字符串s中的位置(整数值):否那么前去-1。留心:用数组办法及两重循环来完成该函数。留心:部分源次第已存在文件PROC2.cpp中。请勿修改主函数main跟其他函数中的任何内容,仅在函数find的花括号中填写假定干语句。文件PROC2.cpp的内容如下:#includeint
5、find(chars,chart);constintMAXLINE=256;intmain()charsourceMAXLINE,targetMAXLINE;coutpleaseinputastringforsearching:n;cin.getline(source,MAXLINE;cout=0)coutFindingit,Thetargetstringisatindex elsecoutNotfindingitn;return0;intfind(chars,chart)分析:此题是一道庞杂应用题。函数intfind(chars,chart的功能是在字符串s中查寻字符串t,假定寻到
6、,那么前去字符串t在字符串s中的位置(整数值);否那么前去-1。同时用数组办法及两重循环来完成该函数。答案:intfind(chars,chart)inti=0,j=0;for(i=0;si!=0;i+)if(t0=si)while(tj!=0&si+j!=0)j+;if(tj!=si+j)break;if(tj=0)returni;return-1;例3请编写一个函数voidfun(intaa,intn,intx),其中n表示数组aa中元素的个数,函数的功能是:打算前x为的跟并放在aax中,aa数组中的元素值跟x的值由主函数通过键盘读入。部分源次第如下:#include#defineMAX1
7、00voidmain()voidfun(intaa,intn,intx);intbbMAX,i,x,n;coutn;coutbbi;coutx;fun(bb,n,x);coutThedataaftertotal: voidfun(intaa,intn,intx)分析:此题是一道庞杂应用题。按照题意分析可得:此题恳求考生统计一个数组中前x项的跟。此题要紧调查考生对数组作为形参的应用才能。答案:打算数组aa中前x项的跟可以用循环语句for来完成。次第如下:voidfun(intaa,intn,intx)inti=0,sum=0;for(i=0;isum=sum+aai;aax=sum;例
8、4编写一个函数,用该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。比如,假定输出字符中“theabcthetheyhavetheren,子字符串为“the,那么应输出4。留心:部分源次第在文件PRDE1.CPP中。请勿修改主函数main跟其他函数中的任何内容,仅在fun的花括号中填入编写的假定干语句。部分源次第如下:#include#defineMAX100intfun(char*str,char*substr);intmain()charstrMAX,substr4;intn;coutstr;coutsubstr;n=fun(str,substr);coutThecounter
9、is: return0;intfun(char*str,char*substr)/分析:此题是一道庞杂应用题。(1)此题要紧调查考生对字符串指针或字符串数组的应用才能。函数fun的形参为两个字符串的首所在。(2)函数fun的功能是统计一个长度为3的字符串在另一个字符串中出现的次数。(3)此函数可用一个循环体跟if语句来完成,依次揣摸字符串substr中的值,寻到第一个字符时,设一个计数器k,将k+1赋给k,假定substr中下一个元素是str中的第2个元素那么将k自增,假定有连续3个字符与str中一样那么将计数器n自增。答案:完成此函数功能的办法有多种,下面给出其中一种答案。intf
10、un(char*str,char*substr)intn,z;n=0;for(z=0;strz!=0;z+)if(strz=substr0&(strz+1=substr1)&(strz+2=substr2)nm+;return(n);例5应用VC6打开考生文件夹下的工程proj1,此工程包括一个源次第文件main.cpp,但该次第运行有征询题,请改正main函数中的差错,使次第的输出结果是:member=0member=5member=10源次第文件main.cpp清单如下:#includeclassMyClasspublic:MyClass(inti)member=i;voidSetMemb
11、er(intm)member=m;intGetMember()constreturnmember;voidprint()constcoutmember= private:intmember;voidmain()/*found*/MyClassobj1;obj1.print();MyClassobj2(3);/*found*/obj1.member=5;/*found*/MyClass.SetMember(10);obj1.print();obj2.print();分析:此题要紧调查类与东西的应用。次第中出现了3个出错标识符,阐明此次第有3处差错。第1处差错:MyClassobj1;o
12、bj1.Print();,现在东西obj1不给出初始化值,因此该当改为MyClassobj1(0);obj1.print();。第2处差错:obj1.member=5;,由于类MyClass中,数据成员member是私有成员不克不迭通过类的东西obj1访征询。因此该当改为:obj1.SetMember(5);。第3处差错:MyClass.SteMember(10);,此处MyClass是一个类名,如斯的访征询办法不合法,该当改为:obj2.SteMember(10);。答案:修改后的main()函数该当为:voidmain()MyClassobj1(0);obj1.print();MyClas
13、sobj2(3);obj1.SetMember(5);obj2.SetMember(10);obj1.print();obj2.print();例6应用VC6打开考生文件夹下的工程proj3。此工程包括一个源次第文件main.cpp,其中定义的类并不残缺,按恳务完成以下把持,将类的定义补偿残缺。(1)定义类Planet的保护数据成员distance跟revolve,它们分不表示行星距太阳的距离跟行星的公转周期。其中,distance为double型,revolve为int型。请在注释“/*1*之后添加适当的语句。(2)定义类Earth的构造函数Earth(doubled,intr),并在其中打
14、算地球绕态阳公转的轨道周长。假定:circumference=2*d*3.1416。请在注释“/*2*之后添加适当的语句。(3)定义类Earth的成员show(),用于表示所有信息。包括地球距太阳的距离,地球的公转周期,以及地球绕太阳公转的轨道周长。请在注释“/*3*之后添加适当的语句。源次第如下:#includeclassplanetprotected:/*1*public:planet(doubled,intr)distance=d;revolve=r;classEarth:publicplanetdoublecircumference;public:/*2*/*3*;voidmain()
15、Earthobj(9300000,365);obj.show;答案:(1)第1处是完成类Planet的保护数据成员distance跟revolve的定义,按照题意可填入:doubledistance;intrevolve;。(2)第2处是定义类Earth的构造函数Earth(doubled,intr),并在其中打算地球绕太阳公转的轨道周长。由此可填入:Earth(doubled,intr):planet(d,r)circumference=2*d*3.1416;。(3)第3处是定义类Earth的成员show(),用于表示所有信息。按照恳求可填入:voidshow()cout &NBS
16、P;   例7应用VC6打开考生文件夹下的工程proj3。此工程包括一个源次第文件main.cpp,此次第的运行结果为:Derivelsprint()called.Derive2sprint()called.其中定义的类并不残缺,按恳务完成以下把持,将类的定义补偿残缺。(1)定义函数print()为无值型纯虚函数。请在注释“/*1*之后添加适当的语句。(2)树破类Derive1的构造函数,请在注释“/*2*之后添加适当的语句。(3)完成类Derive2成员函数Print()的定义。请在注释“/*3*之后添加适当的语句。(4)定义类Derive1的东西指针d1,类D
17、erive2的东西指针d2。其初始化值分不为1跟2。#includeclassBasepublic:Base(inti)b=i;/*1*protected:intb;classDerivel:publicBasepublic:/*2*voidprint()coutDerivelsprint()called.print();voidmain()/*4*fun(d1);fun(d2);答案:此题是一道综合应用题,调查承袭与派生,以及纯虚函数。(1)在第1处定义函数print()为无值型纯虚函数。因此应填入:virtualvoidprint()=0;。(2)在第2处树破类Derive1的构造函数,因
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 C+ 上机 考试 指导
限制150内