




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年福建省莆田市全国计算机等级考试C++语言程序设计预测试题(含答案)学校: 班级: 姓名: 考号: 一、1.选择题(10题) 设ch是char型变量,其值为'A,,则下面表达式的值是( )。ch=(ch>='A'&&ch<=Z)? (ch+32):chAB.aC.ZD.z 下面对静态数据成员的描述中,正确的是()。静态数据成员是类的所有对象共享的数据类的每个对象都有自己的静态数据成员类的不同对象有不同的静态数据成员值静态数据成员不能通过类的对象调用以下程序的执行结果为()。#include<iostream.h>classSample{intn;public:Sample(inti)(n=i;}operator++()(n++;}//前缀重载运算符operator++(int)(n+=2;}//后缀重载运算符voiddisp()(cout<<"n="<<n<<endl;});voidmain(){SampleA(2),B(2);A++;++B;A.disp();A.disp();)A.n=4B.n=lC.n=3D.n=5n=3n=2n=4n=6下列程序的输出结果是#include<iostream.h>voidmain(){char*str=n12123434n;intxl=0,x2=0,x3=0,x4=0,i;for(i=0;str[i]!='\O*;i++)switch(str[i])(case*!*X4++;case'2'X3++;case'3*X2++;case'4':xl++;}cout<<xl<<”,”<<x2<<”,"<<x3<<”,”<<x4;}A.8,6,4,1B.8,6,3,2C.8,8,4,1D.8,6,4,2下列叙述中正确的是程序就是软件B.程序就是软件C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合在iosbase类中定义了3个用于文件流定位的枚举常量,下列枚举常量不属于此类的是()。ios_ase::begios_base::curios_base::endios_base::ate内部静态变量的作用域是()。定义该静态变量的文件外部B.定义该静态变量的文件内部C.定义该静态变量的函数外部D.定义该静态变量的函数内部关于在调用模板函数时模板实参的使用,下列表述正确的是对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略对于虚拟类型参数所对应的模板实参,若能够省略则必须省略对于常规参数所对应的模板实参,任何情况下都不能省略若有以下的定义,inta[]={l,2,3,4,5.6,7,8,9,10),*p=a;则值为3的表达式是 oA.p+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p有以下程序main(){inta[][3]={{l,2,3},{4,5,0)},(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[l][i]=pa[l][i]-l;elsepa[l][i]=l;cout<<a[l][l]+a[l][l]+a[l][2]<<endl;}执行后输出结果是A.7B.6C.8D.无确定值二、单选题(13题)11.对类的构造函数和析构函数描述正确的是()构造函数可以重载,析构函数不能重载构造函数不能重载,析构函数可以重载构造函数可以重载,析构函数也可以重载构造函数不能重载,析构函数也不能重载设有a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为A.OB.lC.2D.3有下列程序:#include<stdiO.h>voidmain( ){inta=S,b=l,t;t=(a«2)|b;printf("%d\n",t);)程序运行后的输出结果是()oA.21B.llC.6D.l下列对于线性链表的描述中,正确的是()。存储空间必须连续,且各元素的存储顺序是任意的存储空间不一定是连续,且各元素的存储顺序是任意的存储空间必须连续,且前件元素一定存储在后件元素的前面存储空间不一定是连续,且前件元素一定存储在后件元素的前面下列关于对象初始化的叙述中,正确的是A.定义对象的时候不能对对象进行初始化定义对象之后可以显式地调用构造函数进行初始化定义对象时将自动调用构造函数进行初始化在一个类中必须显式地定义构造函数实现初始化以下关键字不能用来声明类的访问权限的是()opubliCB.staticC..protectedD.private17.25.执行语句:cout«8etfill(/*,)«setw(10)«setfill(,^,)«left«123<<,,OK"<<endli后将输出().123•*•****OK123##S#若##()K123********OK««***»**123S#节###WOK########在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则()。完全相同B.完全不同C.部分相同,部分不同D.以一上都不对已知类MyClass的定义如下:classMyClass{public:voidfunctionl(MyClass&c){out«c.data;)statievoidfunction2(MyClas&c)(cout«c.data;)voidfunction3(){out«data;|staticvoidfunction4(){COut«data;)private:intdata;):其中有编译错误的函数是( )OA.function!B.function?C.functionsD.function4以下非法的赋值表达式是()。A.n=(i=2,++i);B.j++;C.++(i+l);D.x=j>0;下列类的定义中,有()处语法错误。classBase(public:Base()(}Base(inti){data=i;}private:intdata;};classDerive:publicBase{public:Derive():Base(O){}Derive(intx)(d=x;)voidsetvalue(inti)(data=i;)private:d;};A.lB.2C.3D.4有如下程序#include<iostream>usingnamespacestd;inti=l;classFun(public:staticinti;intvalue(){returni-1;)intvalue()const{returni+1;}1;intFun::i=2; intmain()(inti=3;Funfunl;constFunfun2;return0;}若程序的输出结果是:123则程序中下划线处遗漏的语句是cout<<funl.value()<<Fun::i<<fun2.value();cout<<Fun::i<<funl.value()<<fun2.value();cout<<funl.value()<<fun2.value()<<Fun::i;cout<<fun2.value()<<Fun::i<<funl.value();下列对重载函数的描述中,错误的是( )。A.重载函数中不允许使用默认参数重载函数中编译是根据参数表进行选择的不要使用重载函数来描述毫不相干的函数构造函数重载将会给初始化带来多种方式三、2.填空题(12题)定义一个函数时,若只允许函数体访问形参的值而不允许修改它的值,则应把该形参声明为【】类型。下面程序的输出结果为 #include<iostream.h>voidmain()(cout<<HHello\bu;}在算法的4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的 特性。表达式x.operator+(y.operator++(0))还可以写成 若有定义语句:int*a,b;,则变量b的数据类型是—以下程序的执行结果是 o#include<iostream.h>classCSample(private:intn;staticintk:public:CSample(inti)(n=i;k++;};voiddispO;);voidCSample::disp()(cout<<"n="<<n<<",k="<<k<<endl)intCSample:表达式x=operator-(y,z)其可以表示 为。对线性表采用折半查找法,该线性表必须【loC++中,派生类继承了基类的全部数据成员和除【】之外的全部函数成员。假定A为一个类,贝IJ语句A(A&a);为该类【】函数的原型说明。重载的流运算符函数经常定义为类的【】函数。耦合和内聚是评价模块独立性的两个主要标准,其中【】反映了模块内各成分之间的联系。四、程序改错题(10题)使用VC++6.0打开考生文件夹下的源程序文件1.cpp,但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果正确。程序输出:88注意:错误的语句在/********error********/的下面。修改该语句即可,其他的语句不能修改。试题程序:#include(iostream.h>classCOpublic:/********error********/staticintn=O:COn++:COn—:):/********error********/intCO::nvoidmainCOobj;COobj2[7];CO*C=NULL:c=&obj:/********error********/eout«C.n«endl;cout«C0::n«endl;}37.使用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;)voidClearFileofstreamoutl:outl.open("l.txt");outl.close;)intmain(chars[1024];ClearFile;cout«"pleaseinputastrin9:"«endl;cin.getline(s,1024);WriteFile(s);returnO;}38.使用VC++6.0打开考生文件夹下的源程序文件1-cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1.txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******err()r******的下面°试题程序:#include<iostream>#include<fstream>//********eifor********usingstd;voidWriteFile(char*s)(ofstreamoutl;//********eifor********outl.open("1.txt",binarylapp);for(inti=0;s[i]!=0;i++)//********euor********outl.puts(s[i]);}outl.close;}voidClearFile{ofstreamoutl;outl.open("l.txt");outl.close;}intmain(chars[1024];ClearFile;cout«"pleaseinputastrin9:"«endl;cin.getline(s,1024);WriteFile(s);returnO;39.使用VC++6.。打开考生文件夹下的源程序文件1.cppo本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?''时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h>voidmain(inti=O;charstr[120];cout«"Enterastringendwith?."«endl;cin.getline(str,120);while(str)if(str[i])=a)str[i]=str[i]-a+A;i++;}cout«str«endl:return;}40.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:sizeof(S1)=5sizeof(s2)=10sizeof(s3)=l注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。⑴不能删除assert()语句。(2)只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include<iostream.h>#include<assert.h>voidmain()(char*sl=”abc”://********eifor********assert(sizeof(s1)==3):cout«"sizeof(s1)=5"«endl;chars2[10]=”ab”://********eifor********assert(sizeof(s2)==2);cout«Msizeof(s2)=10"«endl;chars3=23://********eifor********assert(sizeof(s3)==4);cout«"sizeof(s3)=r,«endl;return;}41.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor»i=0,Destructor注意:错误的语句在//******error******的下面,修改该语句即可。试题程序:#include(iostream.h)classTC(inti;public:TC;voiddisplay;〜TC;};TC:TC{cout«"Constructor"«",";i=0;TC:display{tout«Hi=,,«i«n,H«endl;TC:TC{COUI«"Destructor"«endl:)voidmain(TCa;a.display;}42.使用VC++6.。打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在//******error******的下面,修改该语句即可。试题程序:#include<iostream.h>voidmain//******errc)r******intm=0142:intn=0X27:intq=32;cout<<m<<endl;coutVVn<Vendl;cout<<q<<endl;return;}43.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=1number=10number=100也不能更改程序的结注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h>classTC{public:TC(inti){number=i;)voidSetNumber(intm)(number=m;}intGetNumberconst{returnnumber;}voidPrintconst(cout«"number=,'«number«endl;)private:intnumber;voidmain//********error********TCobjl;objl.Print;TCobj2(3);//********eifor********objl.number=10;//********error*%()******TC.SetNumber(lOO);objl.Print;obj2.Print;44.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******eiror******的下面。试题程序:#include<iostream.h)intmain(trythrow("errorH);I//********error********catch(chars)cout«s«endl;throw((int)0);catchcout«i«endl;throw(O);throw("error");catchcout«"ERROR"«endl:returnO;45.使用VC++6.。打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h)intmain{try{throw("error");catch(chars)(cout«s«endl;throw((int)0);catchcout«i«endl;}try{throw(O);throw("errorH);catch(cout«"ERROR"«endl:}returnO;五、综合应用题(2题)46.使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传人。请在注释“//********2********”之后添加适当的语句。(3)定义类A2的构造函数,该构造函数有3个整型的参数x,y和z,在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//********3********”之后添加适当的语句。⑷完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。程序输出结果如下:73738注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。试题程序:#include<iostream.h>classA(inta;public://********]********intgeta{retuma;}};classAl:publicAintb;public://********2********intgetb{retumb;}};classA2:publicAl{intC;public://****,****3********voidshow//********4********};voidmain(A2a(8.3.7):cout«a.geta«endl:cout«a.getb«endl:a.show;}47.请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,此工程中包含一个源程序文件proj3.cpp,补充编制C++程序proj3.cpp,其功能是读取文本文件in.dat中的全部内容,将文本存放到doc类的对象myDoc中。然后将myDoc中的字符序列反转,并输出到文件out.dat中。文件in.dat的长度不大于1000字节。要求:补充编制的内容写在%**********”与“//**********,,两行之间。实现将myDoc中的字符序列反转,并将反转后的序列在屏幕上输出。不得修改程序的其他部分。注意:程序最后已将结果输出到文件Out.dat中,输出函数writeToFile已经给出并且调用。//proj3.cpp#include<iostream>#include<fstream>#include<catting>usingnamespacestd;classdoc{private:char*sir;〃文本字符串首地址intlength;〃文本字符个数public:〃构造函数,读取文件内容,用于初始化新对象,filename是文件名字符串首地址doc(char*filename);voidreverse;//W字符序列反转一doc;voidwriteToFile(char*filename);};doc::doc(char}filename){ifstreammyFile(filename):intlen=1001,tmp;atr=newchar[1en];length=0;while((trap=myFile.get)!=EOF)(str[length++]=trap;}str[length]='\O';myFile.close;)voiddoc::reverse{〃将数组atr中的length个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个〃字符交换 Idoc::〜doedelete[]str;Ivoiddoc::writeToFile(char*filename)(OfstreamoutFile(filename):outFile«str;outFile.close;)voidmain(docmyDoc(”in.dat”);myDoc.reveme;myDoc.writeToFile(,,out.dat");)六、3.综合应用题(2题)48.使用VC6打开考生文件夹下的工程MyProjl3o此工程包含一个源程序文件MyMainl2.cpp0程序中定义了两个类Base和Derived,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:定义类shapes的保护成员x和y,它们都是整型变量。请在注释“〃**1**”之后添加适当的语句。完成构造函数shapes(intd,intw)定义,使类shapes的保护成员x、y分别初始化为d、w,并分别具有默认值0、0。请在注释“〃**2**”之后添加适当的语句。完成类shapes的成员函数setvalue(intd,intw)的定义,shapes类的数据成员x和y分别被设置成d和w。请在注释“〃**3**”之后添加适当的语句。将类shapes的成员函数voiddisp()设置成纯虚函数。请在注释“//**4**''之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMainl3.cpp清单如下://MyMainl3.cpp#include<iostream>usingnamespacestd;classshapes(〃***]***public:〃***2***voidsetvalue(intd,intw)(〃***3***}〃***4***);classsquare:publicShapes(public:voiddisp()(cout<<x*y<<endl;});intmain()shapes*ptr;squaresi;ptr=&s1;ptr->setvalue(10,5);ptr->disp();return0;}49.使用VC6打开考生文件夹下的工程test34_3o此工程包含一个test34_3.cpp(其中定义了表示栈的类stacko源程序中stack类的定义并不完整,请按要求完成下列操作,将程序补充完整。定义类stack的私有数据成员sp和size,它们分别为整型的指针和变量,其中sP指向存放栈的数据元素的数组,size为栈中存放最后一个元素的下标值。请在注释“〃**1**”之后添加适当的语句。完成类stack的构造函数,该函数首先从动态存储空间分配含有100个元素的int型数组,并把该数组的首元素地址赋给指针sp,然后将该数组的所有元素赋值为0,并将size赋值为-l(size等于-1表示栈为空)。请在注释“〃**2**”之后添加适当的语句。完成类stack的成员函数push的定义。该函数将传入的整型参数x压入栈中,即在size小于数组的最大下标情况下,size自加1,再给x赋值。请在注释“〃**3**”之后添加适当的语句。完成类stack的成员函数pop的定义,该函数返回栈顶元素的值,即在size不等于・1的情况下,返回数组中下标为size的元素的值,并将size减1。请在注释“〃**4**”之后添加适当的语句。程序输出结果如下:thetopelem:1thepopelem:1thestackisempty注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test34_3.cpp清单如下:#include<iostream.h>classstack(〃**]**public:stack();boolempty(){returnsize==-l;}boolfull(){returnsize==99;)voidpush(intx);voidpop();voidtop();1;stack::stack()(〃**2**for(inti=0;i<100;i++)*(sp+i)=0;size=-1;1voidstack::push(intx)(〃**3**cout<<"thestackisfull"<<endl;else(size++;*(sp+size)=x;})voidstack::pop(){//**4**cout<<"thestackisempty"<<endl;else(cout<<"thepopelem:"<<*(sp+size)<<endl;size—;})voidstack::top(){ifiempty())cout<<"thestackisempty"<<endl;else{cout<<"thetopelem:M<<*(sp+size)<<endl;}}voidmain()(stacks;s.push(l);s.top();s.popO;s.top();}参考答案l.B解析:ch=(ch>='A'&&ch<='Z')?(ch+32):ch,其中,初始ch='A',则ch>=,A,\u3000&&ch<=Z为真,执行ch+32变成小写aoA静态成员表示整个类范围共享的信息;必须对静态数据成员进行初始化;静态数据成员是属于类的,不能通过类的对象调用。AD解析:本题考查循环的嵌套。只要注意在C++语言中,系统在字符指针的最后位置会增加一个字符串结束符'\\0',执行8次for循环,再根据switch语句中的条件易知答案。注意:C++中各种条件判断,循环语句的用法。D解析:软件是一系列按照特定顺序组织的计算机数据和指令的集合。软件并不只是包括在计算机上运行的程序,与这些程序相关的文档也被认为是软件的一部分。简单地说,软件就是程序加文档和数据的集合体。D解析:C++文件流的定位方式有3种,被定义为ios_base::seek_dir中的一组枚举符号:①iosbase::beg相对于文件首®iosbase::cur相对于当前位置(负数表示当前位置之前)③ios_base::end相对于文件尾D解析:内部静态变量只被初始化一次,它在定义该变量的函数内部有效。D解析:本题考查的是模板实参的省略。模板实参在以下几种情况中不能省略:从模板函数实参表获得的信息有矛盾:需要获得特定类型的返回值,而不管参数的类型如何;虚拟类型参数没有出现在模板函数的形参表中;函数模板含有常规形参。故本题的正确答案是选项D。AA解析:本题考察对二维数组的使用。按照要求分析各个数组元素的位置,即可以正确的得到答案为A。A一个类中只能定义一个析构函数,否则会造成对同一对象的多次删除;而构造函数可以根据不同的参数个数和类型进行多次重载。C解析:在&&运算中,如果第1个表达式的值为假时,第2个表达式将不再计算。在表达式中第1个表达式m=a>b的值为0,也就是假,所以第2个表达式的将不再计算。所以n的值没有变。AAo【解析】本题考查移位运算符在程序中对5逻辑左移2位,其值扩大4倍等于20,然后再进行按位运算,其值等于21。B解析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。C解析:构造函数的作用是在对象被创建的时候对对象进行初始化。构造函数在对象被创建的时候由系统自动调用。故C项正确。B解析:本题考查了类的访问权限。在C++中,类的访问权限一共有3种,分别是:\u3000public(公有)、protected(保护)和private(私有)。因此,本题应该选择B。TOC\o"1-5"\h\zBADDo【解析】静态函数调用非静态变量错误。必须通过对象实例来访问非静态变量。C解析:对于任何一种赋值运算,其赋值号或复合赋值号左边必须是一个左值。左值是指具有对应的可由用户访问的存储单元,并且能够由用户改变其值的量。而在。选项中赋值号对应的是表达式“i+1”,不是一个左值,因此是非法的赋值表达式。B解析:本题考核派生类的定义和成员的访问权限。第1处错误:在派生类的构造函数Derive(intx)中没有调用基类的构造函数对基类对象初始化。第2处错误:数据data是基类Base的私有成员,派生类Derive不能访问,所以在函数setvalue中对data的赋值是错误的。A解析:本题主要考查的是常成员函数。const关键字可以用于参与对重载函数的区分。重载的原则是:常对象调用常成员函数,一般对象调用一般成员函数。当类中只有一个常成员函数时,一般对象也可以调用该常成员函数。由此可见,通过funl调用value。函数时,是调用前一个,而通过fun2调用value。函数,是调用后一个。另外,value。函数中访问的i是类中定义的数据成员i,全局变量i在类中被“屏蔽”。观察4个选项不难发现,要输出的表达式来来去去只有3个:fun1.value。、fun2.value()和Fun::i。funl.value()调用的是前一个value。函数,输出i・l,这里的i是Fun类的成员i,即等于2-1=1ofun2.value()调用的后一个value()函数,输出i+l=2+l=3。\u3OOOFun::i是通过类名直接访问类的静态数据成员i的值,即2。所以正确的输出顺序应该是:funl.value(),Fun::i,fun2.value()o故应该选择A。AAo【解析】选项A中,重载函数中是允许使用默认参数的;为了使重载函数有意义,不要使用重载函数来描述毫不相干的函数;重载函数中编译是根据参数表进行选择的,包括参数的个数和类型。constconst解析:用const修饰的参数为常类型参数。Hello有穷性有穷性解析:算法的四个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算法必须在有限的时间内完成,即算法必须在执行有限个步骤之后终止。x+y++或x+(y++)x+y++或x+(y++)28.intint解析:缺数据类型。n=10k=3n-20k=3n=30k=3x=y-z采用顺序存储结构且元素按值有序采用顺序存储结构,且元素按值有序构造函数和析构函数构造函数和析构函数解析:C++的类的继承中,基类的构造函数和析构函数不能被继承。拷贝构造拷贝构造解析:本题考核拷贝构造函数的定义。拷贝构造函数是一种特殊的成员函数,它的作用是使用一个已存在的对象来初始化一个被创建的同类的对象。友元友元内聚内聚(l)“staticintn=O”应改为“staticintn;“intCO::n;”应改为“intCO::n=0;"coutv<c.n«endl;"应改为t6cout«c->n«endl:【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第1处应改为“staticintn;”,第2处要给n赋值,第3处输出时引用c的对象,应改为"coutvvc.>nvVendl;"。(1)应改为“usingnamespacestd;"。应改为"outl・open("l.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]);(1)应改为"usingnamespacestd;\n(2)应改为“outl.open(*l.txt',ios::binary|ios::app);\n(3)应改为“outl.put(s[i]);\n【解析】本题第1处的“usingstd建是在程序中引入标准命名空间std,对于C++中引入标准命名空间的格式,缺少namespace,所以第1处的语句修改为44usingnamespacestd; 第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])”。应改为“iRstr[i]>=a&&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)''。(1)应改为Massert(sizeof(s1)==4);"。\n(2)应改为"assert(sizeof(s2)==lO);\n(3)应改为“assert(sizeof(s3)==l);\n【解析】assert函数如果为假,贝IJ会产生一个中断异常。所以要让它正常执行输出结果,那么assert函数只有为真,才不会产生中断异常。uassert(sizeof(sl)=3);”语句中“sizeof(sl)=3"为假,这会使程序产生异常,不能正常执行。因为strl的值为abc,但是它还有一个尾符,它的长度应该是4,而不是3,所以在第1处修改为“assert(sizeof(sl)==4);”。str2[10]说明,str2的空间为10,在第2处修改为“assert(sizeof(s2)=10)尸。charstr3=23;语句说明23是字符,所占存储空间为1,所以修改为t4assert(sizeof(s3)==l);”。(1)应改为“TC::TC”。(2)应改为“voidTC::display”。⑶应改为“TC::〜TC”。【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“::",作用域运算符用釆表示某个成员属于哪个类,使用格式为“(类名)::V成员函数>((参数函数)),因此第1处应改为“TC::TC”,默认构造函数没有参数。由第2处“TC::display”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void,因此第2处的语句应改为“voidTC::display”。由第3处的语句"TC::TC”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“〜”字符,用采与构造函数加以区别,因此第3处的语句应改为“TC::〜TC”。(l)"voidmain''e“intm=0144;"。“intn=OX25;”或“intn===0x25;【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括十进制到八进制,十进制到十六进制。主函数定义的定义形式为“main”,函数名之后必须是一对括号,因此第1处应改为“voidmain”。cout输出默认是以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的100对应八进制的144,卡进制的37对应十六进制的25,因此2和3应分别改成“intm=0144;”,“intn=0x25;'‘或“intn=0x25;"。(1)应改为“TCobjl(l);”。\n(2)应改为“Objl.SetNumber(lO);\n(3)应改为“0bj2.SelNumber(lOO);”。\n【解析】本题第1处的“TCobjl语句是声明TC类的对象Objl,根据TC类构造函数的定义TC(inti),存在整型参数,并且题目要求第一个输出结果两1,所以补全参数1,即第1处的“TCobjl⑴;第2处处的uobjl.number=10;"应该是调用成员函数SetNumber赋值。在C++中成员函数的使用形式应该是:对象名.成员函数,所以修改为“objl.SetNumber(lO);”。类是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中级消防国考试题及答案
- 难点解析人教版八年级上册物理光现象《光的直线传播》专题训练试题(含答案及解析)
- 护理考试题答题技巧及答案
- 2025科目一科四考试真题及答案
- 湖南幼师招考试题及答案
- 考点攻克人教版八年级上册物理机械运动《运动的快慢》达标测试试题(含答案解析)
- 考点解析-苏科版八年级物理下册《力与运动》定向攻克试题(含答案及解析)
- 红会急救考试题及答案
- 2025黄冈中考试卷真题及答案
- 重难点解析人教版八年级上册物理声现象《声音的特性声的利用》同步训练试卷(含答案详解版)
- 2025年春新北师大版数学七年级下册课件 第四章 三角形 问题解决策略:特殊化
- 校外培训机构传染病防控健康教育制度
- 大学语文知到智慧树章节测试课后答案2024年秋南昌大学
- 【MOOC】声乐作品赏析与演唱-扬州大学 中国大学慕课MOOC答案
- 60岁以上务工免责协议书
- 【MOOC】机械之美-神奇的矿冶机械(双语)-江西理工大学 中国大学慕课MOOC答案
- T-IAC CAMRA 47.3- 2022汽车覆盖件低碳维修技术规范 第3部分:车辆玻璃
- 前列腺癌内分泌治疗
- 信息技术居间协议书
- 使用林地可行性报告三篇
- 2024年高考文综(政治)全国卷Ⅰ试卷及答案解析
评论
0/150
提交评论