版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年江苏省盐城市全国计算机等级考试C++语言程序设计真题(含答案)学校: 班级: 姓名: 考号: 一、1.选择题(10题)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()o冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-l)/2设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是inta[10]={0,l,2,3,4,5,6,7,8,9},*p=a;a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))有如下程序:#include<iostream>usingnamespacestd;Classx{protected:inta;public:x()(a=l;});classxl:virtualpublicx{public:xl()(a+=l;cout<<A.lB.123C.242D.244下列选项中不全是C++语言关键字的是const,break,defaultlong,void,usingvirtual,extern,includetry,throw,thisC++语言本身没有定义I/O操作,使用I/O流的程序需要包括()。A.stdio.hB.istream.hC.ostream.hD.iostrcam.h有以下程序:#include<iostream>usingnamespacestd;classCSample{private:inti;public:CSample();CSample(intval);voidDisplayO;-CSample();};CSample::CSample()(cout<<"Cl";i=0;)CSample::CSample(intval){cout<<"C2”;i=val;}voidCSample::DisplayO{cout<<i<<":}CSample::〜CSample(){cout<<"D";)intmain(){CSamplea,b(10);return0;)执行后的输出结果为()。A.C1C2DDB.DDC1C2C.C2C1DDD.C1DC2D在进行单元测试时,常用的方法是()。A.采用白盒测试,辅之以黑盒测试B.采用黑盒测试,辅之以白盒测试只使用白盒测试D.只使用黑盒测试以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是#include<iostream.h>voidmain(){int*p,*q,a,b;p=&a;cout<<"inputa:";cin>>p;)*p表示的是指针变量p的地址p表示的是变量a的地址,而不是变量a的值C・*p表示的是指针变量p的值*p只能用来说明p是一个指针变量有以下程序#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intn)(number=n;}〃拷贝的构造函数MyClass(MyClass&other){number=other.number;}~MyClass()(}private:intnumber;};MyClassfun(MyClassp){MyClasstemp(p);returntemp;|intmain()MyClassobj1(10),obj2(0);MyClassobi3(obj1);obj2=fun(obj3);return0;}程序执行时,MyClass类的拷贝构造函数被调用的次数是()。A.5B.4C.3D.2关于构造函数A()的拷贝构造函数正确的是A.A(A*B);B.A(AB);C.A(A&B);D.A(A);二、单选题(13题)以下各选项组中,均是C++语言关键字的组是()。publicoperatorthisshodstringstaticitwhile>=priratecoutprintf—个队列的进队列顺序是1,2,3,4,则出队列顺序为()。A.4,3,2,1B.2,4,3,1C.1,2,3,4D.3,2,1,4已知类Myclass的定义如下classMyClass{public:voidfunction1(MyClass&C)(cout<<c.data;)staticvoidfunction2(MyClass&C){cout<<c.data;}voidfunction3(){cout<<data;|staricvoidfunction4()(cout<<data;}private:intdata;);其中有编译错误的函数是()。A.function1B.function2C.functionsD.function4有如下程序:#include<iostream>usingnamespacestd;classB{public:virtualvoidshow(){cout«"B";});classD:publicB{public:voidshow(){cout«,,D";}};voidfun1(B*ptr){ptr->show();)voidfun2(B&ref){ref.show();)voidfun3(BB)(b.show();)intmain()(Bb,*p=newD;Dd;funl(p);fun2(b);fun3(d);returnO;1程序的输出结果是()。A.BBBB.BBDC.DBBD.DBD数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()o控制流B.加工C.数据存储D.源和潭开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作软件投机B.软件危机C.软件工程D.软件产生下列数据模型中,具有坚实理论基础的是()。层次模型B.网状模型C.关系模型D.以上3个都是对于模板定义关键字class和typename说法不正确的是( )。程序中的class并不能都替换为typenameclass和typename都可互相替换程序中的typename都能替换为class程序中的部分class可以替换为typename下列函数的运行结果是( )。#include<iostream.h>intadd(inta»intb);voidmain(){externintX»y;cout«add(X,y)«endl;)intx(20),y(5);intadd(inta»intb)(ints=a+b:returns;)25B.3OC.20D.15下面对静态数据成员的描述中,正确的是()。静态数据成员是类的所有对象共享的数据类的每个对象都有自己的静态数据成员类的不同对象有不同的静态数据成员值静态数据成员不能通过类的对象调用线性表L=(al,a2,a3,...ai,...an),下列说法正确的是()每个元素都有一个直接前件和直接后件线性表中至少要有一个元素表中诸元素的排列顺序必须是由小到大或由大到小除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件下列关于赋值运算符“=”重载的叙述中,正确的是赋值运算符只能作为类的成员函数重载默认的赋值运算符实现了“深层复制”功能重载的赋值运算符函数有两个本类对象作为形参如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符有如下程序:#include<iostream>usingnamespacestd;voidfunction2(intn);voidfunctionl(intn):{if(n<=O)return;function2(n-2);}voidfunction2(intn){if(n<=O)return;functionl(n-l);1intmain()(functionl(5);
returnO;)下列关于程序运行情况的描述中,正确的是()oA.functionl运行1次,function?运行2运行2次function!运行2次,functionl运行2次,functionl运行2次,function?运行]次function?运行3次function?运行2次三、2.填空题(12题)冒泡排序算法在最好的情况下的元素交换次数为【]o在深度为4的满二叉树中,叶子结点的个数为【】。数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中, 是用户的数据视图,也就是用户所见到的数据模式。表达式cout<<hex改用ios类的成员函数表示为【】。为满足运算符+的可交换性,必须将其重载为【】。若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。编译时的多态性可以通过使用 获得。下列程序中声明了两个类AA和BB,其中函数“print”是类AA的成员函数,但是类BB的友元函数。请在①、②和⑧处各填入正确的内容,使程序能正常运行。#include<iostream.h>【];classAA{intt;public:AA(intx){t=x;)voidprint(BB&b););classBB{ints;public:BB(inty){s=y;}friendvoid【]print(BB&););void[]{cout<<"AA:"<<t<<”BB:H<<w.s<<endl;}<voidmain()(AAm(6);BBn(8);m.print(n);)输出结果为:AA:6;BB:8表达式c3=c1.operator+(c2)或c3=operator+(cl,c2)还可以表示为已知数组a中的元素个数为n,下列语句的作用是将下标为i的元素移动到下标为i-1的单元,其中l<i<no例如,当n=4,a中原有数据为1、2、3、4时,则移动后a中元素为2、3、4、4。请将语句补充完整:for(inti=0;i<n-1;i++)a[i]=a o将x+y*z中的“+”用成员函数重载,”*”用友元函数重载应写为在C++中,一个函数一般由两部分组成,分别是函数头和【】。四、程序改错题(10题)使用VC++6.。打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h)intmain(try(throw("error");catch(chars){cout«s«endl;try(throw((int)0);catch{cout«i«endl;}try(throw(O);throw("error");catchcout«"ERROR"«endl:IreturnO;使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:9,8,7,6,5注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。试题程序:#include(iostream.h>classTC/********error********/TC(inti)(m_i=i;}voidprint{cout«—m_i«,;}public:intmain/********error********/inti;TC04(10);while(i>5)/********erpQr********/i++04.print;}cout«endl;returnO;使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:sizeof(Sl)=5sizeof(s2)=10sizeof(s3)=l注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。⑴不能删除assert()语句。(2)只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include<iostream.h>#include<assert.h>voidmain(){char*sl=,,abc,*://********euor********assert(sizeof(s1)==3):cout«"sizeof(s1)=5"«endl;chars2[10]=%b”://********euor********assert(sizeof(s2)==2);cout«"sizeof(s2)=10,,«endl;chars3=23://********euor********assert(sizeof(s3)==4);cout«"sizeof(s3)=1"«endl;return;}使用VC++6.。打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h)intmain{try{throw("error");catch(chars)(cout«s«endl;throw((int)0);catch(cout«i«endl;)try{throw(O);throw("errorH);}catch(cout«"ERROR"«endl:}returnO;使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意:错误的语句在//******error******的下面,修改该语句即可。试题程序:#include(iostream.h)classTC(inti;public:TC;voiddisplay;〜TC;//******error******TC:TCcout«nConstructor"«",i=0;)//******errc)r******TC:display(tout«ui=u«i«n,H«endl;1//******errc)r******TC:TC(COUI«',Destructor"«endl:}voidmain{TCa;a.display;41.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1.txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在试题程序:#include<iostream>#include<fstream>usingstd;voidWriteFile(char*s)(ofstreamoutl;outl.open("1.txt",binary|app);for(inti=0;s[i]!=0;i++)outl.puts(s[i]);)outl.close;}voidClearFile{ofstreamoutl;outl.open("1.txt”);outl.close;}intmain(chars[1024];ClearFile;cout«"pleaseinputastrin9:"«endl;cin.getline(s,1024);WriteFile(s);returnO;142.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=lnumber=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h>classTC(public:TC(inti)(number=i;}voidSetNumber(intm)(number=m;}intGetNumberconst(returnnumber;)voidPrintconst⑴类CO不能被实例化,请定义一个纯虚函数print,在注释1后添加适当的语句。类C1私有虚继承类CO,请在注释2后添加适当的语句。类C2公有继承于CO,请在注释3后添加适当的语句。⑷类c3公有继承于C2与Cl,请在注释4后添加适当的语句。注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。试题程序:#include(iostream.h)classCO(//********〔********};//********2********classCl:{public:voidprint(coutV”"Cl"VVendl;I};//********3********classC2:public:voidprintcoutVV”C2”VVendl;1);classC3:(public:voidprint(cout<<"C3"<<endh}};voidmain{C30bj3;C20bj2;obj3.print;obj2.print;return;}六、3.综合应用题(2题)48.使用VC6打开考生文件夹下的工程test29_3o此工程包含一个test29_3.cpp,其中定义了二维坐标类Coordinate和三维坐标类造函数中请将X赋值给数据成员b,将y作为基类A构造函数的参数值传入。请在注释“〃**2**”之后添加适当的语句。定义类A2的构造函数,该构造函数有三个整型的参数x,y和2,在构造函数中请将x赋值给数据成员c,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释7/**3**”之后添加适当的语句。完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员c的值,上述三个值在输出时以空格隔开。请在注释“〃**4**”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。程序输出结果如下:96962源程序文件test3O_3.cpp清单如下:#include<iostream.h>classA(inta;public:〃**]**intgeta(){returna;});classAl:publicA{intb;public:〃**2**intgetb(){returnb;|);classA2:publicAlintc;序列按关键字有序或基本有序时,快速排序退化为冒泡排序,最坏情况下比较次数为n(n-l)/2oD解析:本题考核数组与指针。A选项中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量。B选项中,&a[i]是取数组a中第i个元素的地址,而对于*(&a[i]),由指针运算符*的运算规则可知,语句*(&a[i])就是返回地址&a[i]空间中存放的值,也即a[i]oC)选项,由于指针p已指向数组a,所以pE就等于a[i]小这是常用的一种数组元素引用方式。D)选项是以指针方式对数组元素进行引用,由于a只是代表数组的首地址,并不是指针,所以表达式*(*(a+i))是错误的,正确的引用应该为:*(*(p+i))°D解析:本题程序中引入了虚基类。在主函数中,执行语句“yobj;”时,先执行虚基类x的构造函数,使a=l,然后执行类xl的构造函数,使a=2,并输出值2。再执行类x2的构造函数,使a=4,并输出值4。最后执行类y的构造函数,输出值4。C解析:要熟练掌握C++语言中的关键字。注意:include不是C++语言的关键字。注意:define也不是关键字。D解析:在C++中使用1/0流的程序需要包括iostream.h0A解析:本题程序首先定义了类CSample,其内部成员为private类型数据成员inti和public类型成员函数,包括两个构造函数、一个析构函数和一个普通成员函数voidDisplay(),其成员函数的功能分别为:©CSample::CSample():构造函数,输出构造函数的执行消息“C1”,并将数据成员i赋值为i=0:CSample::CSample(intval):重载构造函数,输出构造函数的执行消息“C2”,并将数据成员i赋值为i=val:voidCSample::DisplayO:成员函数,输出数据成员i的值;CSample::〜CSample。:析构函数,输出析构函数的执行消息,并输出数据成员值。在主函数中,程序分别采用两个构造函数,创建了类CSample的两个对象,一个利用不带参数的构造函数创建对象a,另一个利用带参数的构造函数创建对象b。根据上面的分析,可以得到a和b中数据成员i的值分别为0(不带参数情况)和10(所带参数值)。因此下面的两条输出语句分别输出“0"和“10"。此外,由于系统在创建对象时会调用构造函数,在对象生命期结束时会调用析构函数,因此程序还会有相应的输出。由于构造函数的调用顺序与对象创建的先后顺序一致,因此程序应该首先输出两个构造函数的调用信息,即“C1”和“C2”。在主函数执行结束后,由于两个对象a和b的生命期已经结束,因此系统将调用析构函数收回系统资源。由于析构函数的调用顺序与构造函数完全相反,因此系统将首先调用对象b的析构函数,程序输出析构函数执行信息“D”;之后调用对象a的析构函数,程序输出析构函数执行信息“D”oA解析:单元测试的步骤如下:①理解需求和设计。清楚被测试模块在整个软件中所处的位置。一个原则是:好的设计,各模块只负责完成自己的事情,层次与分工明确。单元测试时,可以不测试不属于被测模块所负责的功能,以减少测试用例的冗余。概览源代码。浏览源代码,初步检查源代码的编码风格与规范,大致估算测试工作量,确定模块的复杂程度,初步制定测试的优先级等。精读源代码。认真阅读和分析代码,理解代码的业务逻辑,检查代码与设计是否相符,仔细研究逻辑复杂的模块,可采用一些检查列表来检查程序可能会出现的问题。设计测试用例。综合运用白盒测试方法(并结合黑盒测试方法)设计测试用例,包括功能测试、性能测试等,要达到一定的测试覆盖率。本题正确答案为选项A。搭建单元测试环境。这个阶段主要就是写桩模块和驱动模块,然后驱动模块想办法获取被测试模块对数据的处理结果,并判定返回的实际结果与测试用例的预期结果是否一致,通过测试框架来记录执行的结果,对于出现的错误,还需统计错误的信息,供执行完之后分析。执行测试。运行写好的驱动模块完成对被测试模块的测试。补充和完善测试用例。在测试过程中不断补充测试用例,直到满足要求为止。分析结果,给出评价。根据测试的结果分析、查找错误的原因,并找到解决的办法。测试结束之后,根据测试过程的数据统计,给出被测试对象评价。B解析:p表示的是变量a的地址,定义后*p表示的是变量a的值。BC解析:固定的一种拷贝方式就是v类名>:<类名〉constv类名〉&v引用对象名〉注意:如果一个类中没有声明,拷贝构造函数,编译器会自层次模型是数据库系统中最早出现的数据模型。我们通常把满足以下两个条件的数据模型称为层次模型。有且仅有一个结点无双亲,这个结点称为根结点。其他结点有且仅有一个双亲。层次模型用树形结构来表示各实体与实体间的联系。实体是数据库中数据描述的对象,可以是一个人、一种商品等。在层次模型中,每个结点表示一个记录类型,记录之间的联系用结点之间的连线表示,这种联系是父子之间一对多的联系。记录就是描述实体的相关数据。如果取消层次模型中的两个限制,即允许一个以上的结点无双亲,则每一个结点可以有多个父结点,便形成了网状。我们把网状表示实体之间联系的模型称为网状模型。关系模型用表格形式表示实体类型及其实体间的联系。关系模型是目前最重要的一种模型,它是建立在严格的数学概念的基础上的,具有最坚实的理论基础。关系模型的基本数据结构是二维表,每一张二维表称为一个关系。BB。【解析】在C++程序中的typename是都可以替换为class的,但class不能都替换为typename。AAo【解析】由主函数main入手,定义外部变量x和y,调用函数addo因为x,y为外部变量,所以“intx(20),y(5);”的赋值在add也是有效的,即add函数的运算结果为25。A静态成员表示整个类范围共享的信息;必须对静态数据成员进行初始化;静态数据成员是属于类的,不能通过类的对象调用。D解析:线性表可以为空表,排除选项B。第一个元素没有直接前件,最后一个元素没有直接后件,故排除选项A。线性表的定义中,元素的排列没有规定大小顺序,故选项C也有误,只有D项是正确的。A解析:=、[]、()、・>以及所有的类型;转换运算符只能作为成员函数重载,A项正确。默认的赋值运算符只实现了浅层复制,B项错误。赋值运算符只能作为成员函数重载,形参表中只有一个参数,对应于第二操作数,C项错误。一个类中如果需要重载运算符“=”,通常也就需要定义自己特有的复制构造函数,反之亦然,故D项错误。DDo【解析】函数执行过程为:function】。),function2(3),functionl(2),function2(0)return。24.00解析:冒泡排序算法在最好的情况下(已经有序的)元素交换次数为0。25.88解析:二叉树有一个性质,即在二叉树的第k层上,最多有2kl(k>l)个结点。而对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-l个结点。因此,在深度为4的满二叉树中,所有叶子结点在第4层上,即其结点数为2kJ=2kd=8外模式外模式解析:数据库系统的三级模式分别是内模式、概念模式和外模式。其中,物理模式给出了数据库的物理存储结构和存取方法;概念模式是数据库系统中全局数据逻辑结构的描述;外模式是用户的数据视图,也就是用户所见到的数据模式。cout.serf(los::hexbasefield);友元函数友元函数解析:当需要重载运算符具有可交换性时,选择重载为友元函数。黑盒或者黑箱黑盒或者黑箱解析:软件测试的方法。虚函数和对象虚函数和对象解析多态性是指一个接口,多种方法。而虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且通过基类指针或引用来访问基类和派生类中的同名函数。通过对象名调用的虚函数,是在运行阶段把虚函数和类对象“绑定"在一起的。31.classBB;AA::AA::print(BB&w)c3=cl+c2a[i+l]a[i+l]解析:实现由后面一个数组元素将前一个数组元素进行覆盖,故应该为a[i]=a[i+l]ox..operator+(operator*(yz))x..operator+(operator*(y,z))解析:C++中用成员函数重载x*y为:x.operator*(y);用友元函数重载x*y为operator*(x,y);用成员函数重载x+y为:x.operator+(y);用友元函数重载x+y为:operator+(x,y)。函数体函数体解析:在C++中,一个函数由函数头和函数体两部分组成。(1)应改为ucatch(char*s),,o(2)应改为“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(...)”。(1)应添加“public:\n(2)“inti”应改为“inti(10);”。\n(3)“i++;”应改为“i・・;”。\n【解析】本题主要考查的是成员的访问属性。成员的访问属性有公有、保护和私有3种,而默认的访问属性为私有,只有公有成员才能通过类的对象被访问。故应在构造函数前添加“public:”,否则该类无法被实例化。变量的初始化可以通过“=''号,也可以和初始化对象一样添加构造参数,题目已要求使用后者。本题要求输出5个数,while的循环变量i每次减1,在i>5时循环,故i初始化应为10。若循环中i每次增1,则循环永远不会退出。(1)应改为“assert(sizeof(sl)=4);\n(2)应改为uassert(sizeof(s2)==10);\n(3)应改为"assert(sizeof(s3)==l);\n【解析】assert函数如果为假,贝IJ会产生一个中断异常。所以要让它正常执行输出结果,那么assert函数只有为真,才不会产生中断异常。“assert(sizeof(sl)=3);”语句中“sizeof(sl)=3”为假,这会使程序产生异常,不能正常执行。因为strl的值为abc,但是它还有一个尾符,它的长度应该是4,而不是3,所以在第1处修改为fctassert(sizeof(s1)==4);str2[10]说明,str2的空间为10,在第2处修改为4tassert(sizeof(s2)=10)尸。charstr3=23;语句说明23是字符,所占存储空间为1,所以修改为44assert(sizeof(s3)=1);(1)应改为"catch(char*s)‘‘。(2)应改为“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(...)”。(1)应改为“TC::TC“。\n(2)应改为“voidTC::display”。\n⑶应改为“TC::~TC”。\n【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“::”,作用域运算符用采表示某个成员属于哪个类,使用格式为“(类名)::v成员函数>((参数函数)),因此第1处应改为“TC::TC”,默认构造函数没有参数。由第2处“TC::display”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void,因此第2处的语句应改为“voidTC::display”。由第3处的语句叮(2::和”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加字符,用采与构造函数加以区别,因此第3处的语句应改为“TC::~TC”。(1)应改为“usingnamespacestd;"。应改为"outl.open("1.txt”,ios::binaryIios::app);应改为“outl・put(s[i]);”。【解析】本题第1处的“usingstd;”是在程序中引入标准命名空间std,对于C++中引入标准命名空间的格式,缺少namespace,所以第1处的语句修改为“usingnamespacestd;"。第2处,调用成员函数open中,输入、输出方式是在ios类中定义的,所以“outl.open("l.txt",binaryIapp);”语句缺少类ios,即第2处的语句修改为"outl.open("l.txt”,ios::binaryIios::app);第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“outl.put(s[i]);⑴应改为“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为类,并不是对象,这里应该使用定义的对象,即。bj2,所以将语句修改为“obj2.SetNumber(lOO);"。(1)应改为“ein.getline(str,120,?);”。\n(2)应改为“wh、e(str[i])"。\n⑶应改为“if(str[i]>=a&&str[i]<=2fo\n【解析】本题中要求以输入字符“?"为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为^cin.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)”。(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处的语句修改为t4outl.open('l.txt',ios::binary|ios::app);第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“out].put(s[i]);”。(1)应改为“ein.getline(str,120,?);"。应改为“while(str[i])”°应改为“iRstr[i]>=a&&str[i]v=2)”。【解析】本题中要求以输入字符“?”为结束符,用于字符输入的流成员函数getline函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球一次性使用体外血液循环管路行业调研及趋势分析报告
- 2025-2030全球易碎纸不干胶标签行业调研及趋势分析报告
- 2025年全球及中国教育用交互式LED显示屏行业头部企业市场占有率及排名调研报告
- 养殖场家禽合作合同书
- 医疗器械销售劳动合同书
- 石膏买卖合同书样本年
- 企业之间借款合同范本
- 维修承包合同
- 2025股份制办厂合同范本
- 泵车租赁合同范本
- 小红书食用农产品承诺书示例
- 混凝土试件台账
- 中英文财务报表空白模板(金融非金融完整版)
- 人机料法环测检查表
- 中国数字货运发展报告
- 使用AVF血液透析患者的护理查房
- 《幼儿教师职业道德》教案
- 2021年高考山东卷化学试题(含答案解析)
- 客服百问百答
- GA/T 766-2020人精液PSA检测金标试剂条法
- 品管圈活动提高氧气雾化吸入注意事项知晓率
评论
0/150
提交评论