2023年河南省信阳市全国计算机等级考试C++语言程序设计预测试题(含答案)_第1页
2023年河南省信阳市全国计算机等级考试C++语言程序设计预测试题(含答案)_第2页
2023年河南省信阳市全国计算机等级考试C++语言程序设计预测试题(含答案)_第3页
2023年河南省信阳市全国计算机等级考试C++语言程序设计预测试题(含答案)_第4页
2023年河南省信阳市全国计算机等级考试C++语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023年河南省信阳市全国计算机等级考试

C++语言程序设计预测试题(含答案)

学校: 班级: 姓名: 考号: 一、1.选择题(10题)设有以下定义和程序:#include<iostream.h>classAl{public:voidshow1()(cout<<"classAl"<<endl;)};classA2:publicAl(public:voidshow2(){cout<<"classA2"<<endl}};classA3:protectedA2(public:voidshow3()(cout<<"classAl"<<endl;));voidmain(){Alobjl;A2obj2;A3obj3;)则以下不合语法的调用语句是objl.showl();obj2.showl();obj3.showl();obj2.show2();下列叙述中错误的是()o线性表是由n个元素组成的一个有限序列线性表是一种线性结构线性表的所有结点有且仅有一个前件和后件线性表可以是空表数据字典表达的是 o

系统中各类逻辑定义的集合B.系统中各类逻辑描述的集合C.系统中各类数据结构的集合D.系统中各类数据描述的集合执行下面的程序段后,变量k的值为()。intk=3,s[2];s[O]=k;k=s[l]*10;不定值B.33C.30D.10main()while(i<20)for{::)if((i%10)==0)break;main()while(i<20)for{::)if((i%10)==0)break;)}{ inti=0,a=0:{(elsei—;i+=ll;a+=i;cout<<a<<endl;A.21B.32C.33D.ll以下程序段共有错误()处。#include<iostream>usingnamespacesstd;classSample{private:intn;public:Sample(inti)(n=i;)voidsetvalue(inti)(n=i;)voiddisplayO{cout<<"n="<<n<<endl;}};intmain(){constSamplea(10);a.setvalue(5);a.display();return0;}A.1B.2C.3D.4下列工具中为需求分析常用工具的是()。A.PADB.PFDC.N-SD.DFD以下程序中函数scmp的功能是返回形参指针si和s2所指字符串中较小字符串的首地址。#include<string>char*scmp(char*sl,char*s2){if(strcmp(sl,s2)<0)return(sl);elseretrun(s2);)main()(inti;charstring[20],str[3][20];for(i=0;i<3;i+A.abedB.abbaC.abcD.abca下列数组的定义中,会产生错误的是()。inta[]={饥T,2,3,4,5,6};inta[10]={0,l,2,3,4,5,6};chara[5]=Mhellon;chara[5]=(,h,;e,,T,,l,;o,};静态成员函数不能说明为A.整型函数B.常函数C.虚函数D.内联函数二、单选题(13题)有如下程序:#include<iostream>usingnamespacestd;classAA{intk;protected:intn;voidsetK(intk)(this->k=k;}public:voidsetN(intn){this->n=n;}};classBB:publicAA{/*类体略*/};intmain(){BBx;x.n=l;//Ix.setN(2);//2x.k=3;//3x.setK(4);//4return0;)在标注号码的四条语句中正确的是 A.lB.2C.3D.4软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及 oA.阶段性报告B.需求评审C.总结D.都不正确下列字符串中可以用作C++标识符的是( )。A.2009varB.gotoC.test-2009D._123函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[o]=l;b[l]=2;swap(b,2)o在运行调用函数中的语句后,b[0]和b[l]的值分别为()。A.l,IB.l,2C.2,2D.2,1将E-R图转换为关系模式时,实体和联系都可以表示为 oA.属性B.键C.关系D.域在进行了任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态,其中只能用于检测刚进行的操作是否失败函数名是()。A.failB.eofC.badD.good下列有关继承和派生的叙述中,正确的是()。派生类不彘访问基类的保护成员作为虚基类的类不能被实例化派生类应当向基类的构造函数传递参数虚函数必须在派生类中重新实现以下叙述中正确的是在类中,不作特别说明的数据成员均为私有类型在类中,不作特别说明的成员函数均为公有类型类成员的定义必须是成员变量在前、成员函数在后类成员的定义必须放在类定义体内部以下程序的输出结果是( )。#include<iostream.h>longfun(intn)(longs;if(n=-l||n==2)s=2;elses=n-fun(n-l):returns;1voidmain( ){cout«fun(3);}A.lB.2C.3D.4若有表达式“(w)?(..x):(++y)”,则其中与w等价的表达式是()。A.w==lB.w==0C.W!=1D.W!=0有如下语句序列:charstr[l0];cin»str;当从键盘输入"Ilovethisgame"时,str中的字符串是A/llovethisgame"B.,,Ilovethi"C."Ilove"D.'T'数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及()。A.A.数据的存储结构B.计算方法C.数据映象D.逻辑存储有以下程序:#include<iostream>usingnamespacestd;#definePl3.14ClassPoint{private:intx,y;public:Point(inta,intB)(X=a;y:b;}intgetx()<returnx;}intgety(){returny;)};classCircle:publicPoint{priA.314B.157C.78.5D.153.86三、2.填空题(12题)语句cout<<'\iT还可表示为【]o数据库系统中实现各种数据管理功能的核心软件称为【】。下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。classMyclass{public:Myclass(intnum);~Myclass();public:int*p;1;Myclass::Myclass(inthum)(【]Myclass::~Myelass()(【];}o长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【]o单元测试又称模块测试,一般采用【】测试。每个对象都维护了一个指向自身的指针,这个指针称为【】指针。在面向对象方法中,允许作用于某个对象上的操作称为【]o人员基本信息一般包括身份证号、姓名、性别、年龄等。其中可以作为主关键字的是 O下面程序的运行结果是【】和【】。#include<iostream.h>#defineN10#defines(x)X*X#definef(x)(X*X)voidmain(){intil,i2;il=1000/s(N);i2=1000/f(N);cout<<il<<””<<i2;1算法复杂度主要包括时间复杂度和 复杂度。设在主函数中有以下定义和函数调用语句,且fun()函数为void类型,请写出fun()函数的首部【]ointmain()(doubles[10][22];intn;fun(s);return0;)在C++流类库中,根基类为 o四、程序改错题(10题)使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=lnumber=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。TCobj2(3)TCobj2(3);试题程序:#include<iostream.h>classTC(public:TC(inti)(number=i;}voidSetNumber(intm){number=m;}intGetNumberconst(returnnumber;)voidPrintconst{cout«"number="«number«endl;Iprivate:intnumber;voidmain//********euor********TCobjl;objl.Print;//********error********objl.number=10;********error*%<)******TC.SetNumber(lOO);objl.Print;obj2.Print;37.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意:错误的语句在//******error******的下面,修改该语句即可。试题程序:#include(iostream.h)classTC(inti;public:TC;voiddisplay;〜TC;//******err()r******TC:TCcout«nConstructor"«n,)//******error******TC:display{tout«ui=H«i«n,u«endl;//******error******TC:TC{COUI«nDestructorn«endl:)voidmain(TCa;a.display;38.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:sizeof(S1)=5sizeof(s2)=10sizeof(s3)=l注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。⑴不能删除assert()语句。(2)只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常试题程序:#include<iostream.h>#include<assert.h>voidmain(){chartsl=HabcM://********error********assert(sizeof(s1)==3):cout«"sizeof(s1)=5n«endl;chars2[10]=%b”://********error********assert(sizeof(s2)==2);cout«"sizeof(s2)=1On«endl;chars3=23://********error********assert(sizeof(s3)==4);cout«"sizeof(s3)=r,«endl;return;}number=i;1voidSetNumber(intm)(number二m;}intGetNumberconst{returnnumber;}voidPrintconst(cout«"number="«number«endl;}private:intnumber;};voidmainTCobjl;objl.Print;TCobj2(3);objl.number=10;//He*******。!*!"。!**%******TC.SetNumber(lOO);objl.Print;

voidmaininti=O;charstr[12O];cout«"Enterastringendwith?."«endl;cin.getline(str,120);while(str)cin.getline(str,120);while(str)if(str[i])=a)str[i]=str[i]-a+A;i++;1cout«str«endlif(str[i])=a)str[i]=str[i]-a+A;i++;1cout«str«endl;return;}43.使用VC++6.0打开考生文件夹下的源程序文件1.行时有错误,请改正程序中的错误,使得程序输出:9,8,7,6,5注意:错误的语句在/********error********/的下面,可。其他的语句不能修改。试题程序:cpp,该程序运修改该语句即#include(iostream.h>classTC/********en*or********/TC(inti)(m_i=i;)voidprint{cout«—m_i«,;Ipublic:intmain/********error********/inti;TC04(10);while(i>5)/********en*Or********/i++04.print;)cout«endl;returnO;}TC:displaytout«,,i=,,«i«",”vvendl;}//******errc)r******TC:TC{COUI«"Destructor"«endl:}voidmain(TCa;a.display;}45.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果正确。程序输出:88注意:错误的语句在/********error********/的下面。修改该语句即可,其他的语句不能修改。试题程序:#include(iostream.h>classCOpublic:staticintn=O:CO{n++:I〜CO{n—:}}:intCO::n;voidmain(COobj;COobj2[7];CO*C=NULL:c=&obj:eout«C.n«endl;cout«C0::n«endl;}五、综合应用题(2题)46.使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示矩形的CRect类,但类CRect的定义并不完整。请按要求完成下列操作,将类CRect的定义补充完整。定义私有数据成员leftPoint>topPoint>rightPoint>bottomPoint»分别用于表示矩形左上角及右下角的点的坐标,它们都是double型的数据。请在注释1之后添加适当的语句。完成默认构造函数CRect的定义,指定默认实参为0,它们都是double型的数据。请在注释2之后添加适当的语句。定义函数体为空的析构函数。请在注释3之后添加适当的语句。⑷在main函数中定义GReet类的实例rect2,并把recti的值赋给rect2°请在注释4之后添加适当的语句。注意:除在指定位置添加语句之外,不要改动程序中的其他内容。试题程序:#include<iostream.h>classCRect(private://********〔********public://********2********//********3********voidSetPoints(double»double,double»double);voidSetLeftPoint(doublem){leftPoint=m;|voidSetRightPoint(doublem){rightPoint=m;}voidSetTopPoint(doublem){topPoint=m;)voidSetBottomPoint(doublem){bottomPoint=m;}voidDisplay();};CReet::CRect(doublel,doublet,doubler»doubleb){leftPoint=1;topPoint=t;rightPoint=r;bottomPoint=b;)voidCRect::Setpoints(doublel,doublet,doubler,doubleb){leftPoint=1;topPoint=t;rightPoint=n;bottomPoint=b;)voidCRect::Display(){cout«"left-toppointis("«leftPoint«","«top-Point«")n«\n;cout«"right-bottompointis(n«rightPoint«","«bottomPoint«")"«\n;1voidmain()CRectrectO;test26_3.cpp,其中定义了类queue,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。完成类queue的无参数的构造函数的定义,要求把数据成员bl和el都初始化为0,同时输出queueinitialized0请在注释“〃**1**”之后添加适当的语句。完成类queue的成员函数qput(intj)的定义,它的功能是把新的元素加入队列,过程是先依据bl的值判断数组是否已经满了,如果是就输出queueisfull,否则bl自加一,并且把参数j的值存入bl指向的数组元素中,请在注释“〃**2**”之后添加适当的语句。完成类queue的成员函数qget()的定义,它的功能是把队列开头的元素提取出队列,并返回该值,过程是先比较el和bl的值判断队列是否已空,如果是就输出queueisempty,否则el自加一,并且把el指向的数组元素返回,请在注释“〃**3**”之后添加适当的语句。程序输出结果如下:queueinitializedqueueinitialized33114422注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test26_3.cpp清单如下:#include<iostream.h>classqueue{intqflOO];intbl,el;public:queue();voidqput(intj);intqget();queue::queue()〃**]**}voidqueue::qput(intj)〃**2**cout<<"queueisfull\n";return;bl++;q[bl]=j;intqueue::qget()H**3**cout<<"queueisempty\n";return0;}el++;returnq[el];}voidmain()queueaa,bb;aa.qput(ll);bb.qput(22);aa.qput(33);bb.qput(44);cout<<aa.qget()<<""<<aa.qget()<<n\nM;cout<<bb.qget()<<"H<<bb.qget()<<"\n”;}49.使用VC6打开考生文件夹下的工程test2_3o此工程包含一个test2_3.cpp,其中定义了类Stud,但类的定义并不完整。请按要求完成一下列操作,将程序补充完整。定义类的公有数据成员no,name[10],其中no是int型的数据,name[10]是字符型一维数组。请在注释“〃**1**”之后添加适当的语句。完成函数set的定义,分别将参数n,na的值赋给数据成员no,nameo注意:请使用this指针完成对no的赋值,使用字符串函数实现对name和cname的赋值。请在注释“〃**2**”之后添加适当的语句。完成类的成员函数disp的定义,使其按no,deg,name和cname的顺序输出类的数据成员的值,中间使用跳格符分隔,请在注释“〃**3**”之后添加适当的语句。输出结果如下:李华95990701王东83990702C解析:本题考核派生类的使用以及访问权限问题。C++中,通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。A2是A1的公有派生类,A3是A2的保护派生类,所以类A1的成员函数show1()在类A3中呈现保护属性,不能通过A3类的对象访问。CC.【解析】线性表是一种线性结构,由n(n>0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C.是错误的。DA解析:本题考核数组元素的初值及其引用。若数组为auto型,且没有进行初始化,其元素的值为不确定。本程序中,虽然给s[0]赋了一个初值,但s[l]的值依旧是不确定的,所以执行语句*=s[l]*10”后,k的值也不确定的。B解析:本题是两个循环语句和一个判断语句的嵌套。对于这类试题,只要考生基础知识扎实,细心判断,一般是没有多大难度的。For循环的作用是在i等于10的时候跳出循环,本题的答案为B。B解析:本题考核常对象、常数据成员和常成员函数。本程序中有两个错误:第1个错误是a.setvalue(5),•语句,由于对象a为常对象,所以对象a的私有数据成员n不能被更新;第2处错误是语句a.display();o由于对象a为常对象,所以通过对象a只能调用它的成员函数,而成员函数display。不是常成员函数。D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判Do【解析】标识符主要由数字、字母、下画线组成,且首位必为字母或下画线,同时标识符不能是关键字。DDo【解析】如果函数实参是数组名,形参也应为数组名,函数swap中形参进行了交换。实际上也是实参进行了交换。而且数组名代表数组首元素的地址,并不是代表数组的全部元素。所以,swap(b,2)是数组b第一个元素与第二个元素进行交换,即b[0]与b[l],根据题干,知道答案为2,loC从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-\nR图中属性也可以转换成关系的属性。本题选择C选项。A解析:C++中可以用文件流对象的下列成员函数来判别文件流的当前状态。函数isopen():判定流对象是否与一个打开的文件相联系,若是,返回true,否则返回falseo函数good():刚进行的操作成功时返回true,否则返回false。函数fail():与good。相反,冈IJ进行的操作失败时返回true,否则返回falseo函数bad。:如果进行了非法操作返回true,否则返回false。函数eof():进行输入操作时,若到达文件尾返回true,否则返回false。其中,eof函数只能用于输入流操作。C派生类可以访问基类的保护成员,而不能访问基类的私有成员。作为虚基类的类可以被实例化。虚函数如果没有派生类中重新实现,那么仍然使用基类的成员函数。A解析:类中默认的类型是私有类型,除非特别指定为公有或保护类型。同时,并没有强制要求成员函数和数据成员的排列顺序,如果类的成员函数在类定义体内部定义,则为内联函数,一般类的成员函数都在类定义体的外部实现。AAo【解析】题中fun函数进行了递归调用,第1次调用时:fun(3)n=3,s=3-fun(2),第二次调用时:fun(2)n=2,s=2,返回第一次调用后,s=3-2=loDDo【解析】本题考査三目运算等。条件表达式的格式为a?b;c。它的含义是,当a为真时,取b的值,否则取c的值。在C语言程序中“为真唧“不等于零”,“为假唧等于0。所以和w等价的表达式是w非零。D解析:在使用标准输入流cin和流提取运算符>>进行多项数据的输入时,使用空白字符(空格键、回车键和Tab键)作为两项数据的分隔符,当遇到I后面的空格时,cin对象即停止接收后面的数据。本题正确答案为为。A解析:数据结构作为计算机的一门学科,主要研究和讨论以下三个方面的问题:①数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;②在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;③对各种数据结构进行的运算。A解析:本程序设计了一个点类Point,包含了横,纵两个坐标数据x和y,由它派生出了圃类Circle,并加入了新的数据成员,即一个半径r和一个求圆面积的函数成员area。在主函数main中,首先定义了一个圃Circle类的对象cl,并通过它的构造函数初始化其数据成员。由此可知,其半径r的值为10,所以其面积为PI*10*10=314,即对象cl的函数成员area的返回值为314。cout<<endl;cout<<endl;解析:\\n表示换行,endl也可表示换行。注意:endl和'\\n呵以通用。数据库管理系统数据库管理系统(DBMS)P=newint(a)sdeletePP=newint(a)NdeleteP解析:new和delete的用法。n/2n/2解析:性表的任何位置插入一个元素的概率相等,即概率为P=l/(n+l),则插入一个元素时所需移动元素的平均次数为E=l/(n+l)(n-i+1)=n/2o白盒法白盒法解析:单元测试又称模块测试,一般采用白盒法测试。this方法方法解析:在面向对象方法中;方法是指允许作用于某个对象上的各种操作。允许作用于某个对象上的操作称为方法。身份证号身份证号解析:主关键字是表中区别不同记录的标识,在该表中只有身份证号能起到这个作用,所以用其作为主关键字。32.1000101000\r\nl0解析:对于define宏定义语句,系统会在编译前进行替换。本题替换过程如下:il=1000/s(N)il=1000/s(10)il=1000/10*10il=1000i2=1000/f(N)i2=1000/f(10)i2=1000/(10*10)i2=10空间空间解析:算法的复杂度包含时间复杂度和空间复杂度,空间复杂度指的是程序运行所要消耗的存储空间。一个算法的优劣主要从算法的执行时间和所需要的存储空间两个方面来衡量voidfun(b[][22])voidfun(b[][22])解析:此题考核的知识点是函数的定义形式与数组名作为函数的参数。函数头的定义形式是“存储类型说明符数据类型说明符函数名(形参列表)”,此题没有涉及到函数的存储类别。如果函数的参数是数组,其第1维的长度可以省略。因此本题的函数首部可以写成:voidfun(b[][22])。35.ios类ios类(1)应改为叮Cobjl(l);\n(2)应改为“Objl.SetNumber(lO);”。\n(3)应改为“0bj2.SelNumber(lOO);\n【解析】本题第1处的“TCobjl语句是声明TC类的对象Objl,根据TC类构造函数的定义TC(inti),存在整型参数,并且题目要求第一个输出结果两1,所以补全参数1,即第1处的“TCobjl(l);”。第2处处的“objl.number=10;"应该是调用成员函数SetNumber赋值。在C++中成员函数的使用形式应该是:对象名.成员函数,所以修改为“objl.SetNumber(lO);”。类是对象的抽象,而对象是类的具体实例。第3处“TC.SetNumber(lOO);”语句中的TC为类,并不是对象,这里应该使用定义的对象,即。可2,所以将语句修改为“obj2.SetNumber(lOO);(1)应改为“TC::TC“。\n(2)应改为“voidTC::display”。\n(3)应改为“TC::~TC”。\n【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符作用域运算符用采表示某个成员属于哪个类,使用格式为“(类名)::v成员函数>((参数函数)),因此第1处应改为“TC::TC”,默认构造函数没有参数。由第2处“TC::display”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void,因此第2处的语句应改为“voidTC::display”。由第3处的语句“TC::TC”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加字符,用采与构造函数加以区别,因此第3处的语句应改为“TC::~TC”。(1)应改为“assert(sizeof(s])=4);\n(2)应改为"assert(sizeof(s2)==lO);\n(3)应改为“assert(sizeof(s3)==l);"。\n【解析】assert函数如果为假,贝IJ会产生一个中断异常。所以要让它正常执行输出结果,那么assert函数只有为真,才不会产生中断异常。44assert(sizeof(sl)=3);”语句中“sizeof(sl)=3”为假,这会使程序产生异常,不能正常执行。因为strl的值为abc,但是它还有一个尾符,它的长度应该是4,而不是3,所以在第1处修改为t4assert(sizeof(s1)==4)str2[10]说明,str2的空间为10,在第2处修改为uassert(sizeof(s2)=10)尸。charstr3=23;语句说明23是字符,所占存储空间为1,所以修改为t4assert(sizeof(s3)==1);”。(1)应改为t6catch(char*s),,o应改为“cateh(inti)”。应改为“catch(...)气【解析】本题中第1个标识前的异常抛出语句为-throw(-error-); 其中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语句修改为“catch(char*S)”。第2个标识前的异常抛出语句为“throw((int)0);”,其中的类型为int。对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行。即第2处的语句修改为“catch(inti)”。如果在catch子句中没有指定异常信息的类型,那么就用删节号表示它可以捕捉任何类型的异常信息,即修改为“catch(...)”。⑴应改为“TCobjl⑴;气应改为“Objl・SetNumber(lO);”。应改为“0bj2・SelNumber(lOO);”。【解析】本题第1处的“TCobjl;”语句是声明TC类的对象Objl,根据TC类构造函数的定义TC(inti),存在整型参数,并且题目要求第一个输出结果两1,所以补全参数1,即第1处的“TCobjl(l);”。第2处处的"objl.number=10;''应该是调用成员函数SetNumber赋值。在C++中成员函数的使用形式应该是:对象名.成员函数,所以修改为“objl.SetNumber(lO);”。类是对象的抽象,而对象是类的具体实例。第3处“TC.SetNumber(lOO);”语句中的TC为类,并不是对象,这里应该使用定义的对象,即obj2,所以将语句修改为“obj2.SetNumber(lOO);"。(1)应改为“usingnamespacestd;\n(2)应改为“outl.open('l.txt',ios::binary|ios::app);\n⑶应改为“outl.put(s[i]);”。\n【解析】本题第1处的“usingstd建是在程序中引入标准命名空间std,对于C++中引入标准命名空间的格式,缺少namespace,所以第1处的语句修改为“usingnamespacestd; 第2处,调用成员函数open中,输入、输出方式是在ios类中定义的,所以“outl.openC.txf,binary|app);”语句缺少类ios,即第2处的语句修改为“outl.open(l.txf,ios::binary|ios::app);第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“out].put(s[i]);”。(1)应改为“ein.getline(str,120,?);"。应改为“while(str[i])”。应改为“if(str[i]xa&&str[i]v=2)”。【解析】本题中要求以输入字符“?"为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为4tcin.getline(字符数组,字符个数,终止标志字符)",所以第1处改为“cin.getline(str,120,?);”。第2处的“while(str)”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换。所以应该修改为“while(str[i])”°第3处的“if(str[i]>=a)”语句是判断字符str[i]是否为小写字符,而现有的语句只是判断字符是否大于a,但是小写字符应该是a到2,所以修改为“if(str[i]>=a&&str[i]>=z)"。⑴应添加“public:”。\n(2)“inti”应改为“inti(10);”。\n(3)"i++;"应改为%-;”。\n【解析】本题主要考查的是成员的访问属性。成员的访问属性有公有、保护和私有3种,而默认的访问属性为私有,只有公有成员才能通过类的对象被访问。故应在构造函数前添加“public:”,否则该类无法被实例化。变量的初始化可以通过“=''号,也可以和初始化对象一样添加构造参数,题目已要求使用后者。本题要求输出5个数,while的循环变量i每次减1,在i>5时循环,故i初始化应为10。若循环中i每次增1,则循环永远不会退出。(1)应改为“TC::TC”。(2)应改为"voidTC::display''。⑶应改为“TC::〜TC”。【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“::",作用域运算符用釆表示某个成员属于哪个类,使用格式为“(类名)::v成员函数>((参数函数)),因此第1处应改为“TC::TC”,默认构造函数没有参数。由第2处“TC::display”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void,因此第2处的语句应改为“voidTC::display"o由第3处的语句“TC::TC”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“〜”字符,用釆与构造函数加以区别,因此第3处的语句应改为“TC::〜TC”。(1)“staticintn=O”应改为"staticintn;"。(2)“intCO::n;”应改为“intCO::n=0;”。(3)"coutv<c.n«endl;"应改为4tcout«c->n«endl:【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第1处应改为“staticintn;”,第2处要给n赋值,第3处输出时引用c的对象,应改为“coutvvc.>nv<endl;(1)应添力H^doubleleftPoint,topPoint,rightPoint,hot-tomPoint;(2)应添加“CReet(doubleleftPoint=0,doubletopPoint=0,doublerightPoint=0,doublebottomPoint=O);⑶应添加“〜CReet{}"。⑷应添加“CReetrect2(rectl);”。【解析】本题在第1处完成私有数据成员leftPoint>top-Point>rightPointbottomPoint的定义,均为double型的变量,故第1处应添加"doubleleftPoint,topPoint,rightPoint,bottomPoint;"。构造函数完成成员变量的初始化,类CRect的默认构造函数初始化double型私有数据成员leftPoint、topPoint、rightPoint、bottomPoint为0。故第2处应添加4tCRect(doubleleftPoint=0,doubletopPoint=0,doublerightPoint=0,doublebottomPoint=0);析构函数名和类名一致,并在前面加“〜”以和构造函数区别,该析构幽数体为空,故第3处应添加“〜CRect{}”,虽然该函数体为空,但“{}”必须保留。主函数中类CRect的对象rect2是通过复制构造函数将recti的值赋值给它实现初始化的.而reetl的初始化直接调用自定义构造函数,第4处应添加"CReetrect2(rect1);"。使用VC++6.0打开源程序文件3.cppo其中类TC用于把文件输出到屏幕,然后进行文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论