2022年甘肃省定西市全国计算机等级考试C++语言程序设计真题(含答案)_第1页
2022年甘肃省定西市全国计算机等级考试C++语言程序设计真题(含答案)_第2页
2022年甘肃省定西市全国计算机等级考试C++语言程序设计真题(含答案)_第3页
2022年甘肃省定西市全国计算机等级考试C++语言程序设计真题(含答案)_第4页
2022年甘肃省定西市全国计算机等级考试C++语言程序设计真题(含答案)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

2022年甘肃省定西市全国计算机等级考试

C++语言程序设计真题(含答案)学校:班级:姓名:考号:一、1.选择题(10题).下列叙述中正确的是A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述三种说法都不对.设有如下程序段:charstr[]="World”;char*ptr=str;执行上面的程序段后,*(ptr+5)的值为o.不确定的值D.Q的地址.下列关于运算符重载不正确的是()A.运算符重载不能改变运算符的操作数个数B.运算符重载不能改变运算符的优先级C.运算符重载不能改变运算符的结合性D.运算符重载能改变对预定义类型数据的操作方式4.关于输入流的提取符“〉〉”、提取函数get()的说法不正确的是()。A.提取符“>>”能提取空白字符注意:错误的语句在/I注意:错误的语句在/I******error******的下面,修改该语句即可。试题程序:#include(iostream.h)classTCinti;public:TC;voiddisplay;~TC;//******error******TC:TCcout«nConstructorn«n”i=0;)//******error******TC:displaytout«,i=n«i«nn«endl,,//******error******TC:TCCOUI«nDestructorn«endl:)voidmain(TCa;a.display;38.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:9,8,7,6,5注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。试题程序:#include(iostream.h>classTC(不不不不不不不不en*or不不不不不不不不/TC(inti)(m_i=i;)voidprint(cout«—m_i«,;)public:intmi;intmain个个个个个个个^^rror个个个个个个个个inti;TC04(10);while(i>5)!****************!i++:04.print;cout«endl;returnO;39.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1.txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在******error******白勺卜।Hjo试题程序:#include<iostream>#include<fstream>vl*vl* vl*个个个个个个个个^^rror个个个***个个个个usingstd;voidWriteFile(char*s)(ofstreamoutl;/不不不不不不不不error不不不不少不不不outl.open("l.txt",binary|app);for(inti=0;s[i]!=0;i++)(//7>7>7>7,7>7>7> 7>7,7,7>7>7>7,7,/不不不小不不不不error不不小不不不不不outl.puts(s[i]);)outl.close;)voidClearFile(ofstreamoutl;outl.open(nl.txt'');outl.close;)intmain(chars"024];ClearFile;cout«npleaseinputastrin9:n«endl;cin.getline(s,1024);WriteFile(s);returnO;.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为error0ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h)intmain(try(throw(nerrorn);)//********error********catch(chars)cout«s«endl;)try(throw((int)0);//********enor********catchcout«i«endl;)try(throw(O);throw(nerrorn);)/不不不不不不不不error'不不不不不不不不catch(cout«nERRORn«endl;)returnO;).使用VC++6.。打开考生文件夹下的源程序文件1.cpp,但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果正确。程序输出:88注意:错误的语句在/********error********/的下面。修改该语句即可,其他的语句不能修改。试题程序:#include(iostream.h>classCOpublic:/7> 7>7>kI>7,不不不不不不不不en<0r不不不不不不不不staticintn=O:CO(n++:)〜CO(n—:)):不不不不不不不不en*or不不不不不不不不intCO::n;voidmain(COobj;COobj2[7];CO*C=NULL:c=&obj:小不不不不小不不en*or不不不不不不不不eout«C.n«endl;cout«C0::n«endl;.使用VC++6.0打开考生文件夹下的源程序文件1,cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1.txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在******error******的下面。试题程序:#include<iostream>#include<fstream>/I********error********usingstd;voidWriteFile(char*s)ofstreamoutl;//********enx)r********outl.open(nl.txtM,binary|app);for(inti=0;s[i]!=0;i++)(II********error********outl.puts(s[i]);)outl.close;)voidClearFileofstreamoutl;outl.open(nl.txt");outl.close;)intmainchars[1024];ClearFile;cout«npleaseinputastrin9:n«endl;cin.getline(s,1024);WriteFile(s);returnO;).使用VC++6.。打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h>voidmain(inti=O;charstr[120];cout«nEnterastringendwith?・n«endl;/不不不不个不不不error不不小不不不不不cm.getline(str,120)cm.getline(str,120);kI>个个个个个个个个^^nor个个个个个个个个while(str)7,7,7, 7,7,^1> 、!>7,个个个*t*不不个下^^nor个个个个个个个个if(str[i])=a)str[i]=str[i]-a+A;cout«str«endl;return;.使用VC++6.。打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h)intmainB提取函数get()能够提取空白字符C.提取函数get()可以带参数,用以存储从流中得到的字符D.提取函数get()的返回值为所提取的字符.定义一个具有10个元素的整型数组,应当使用语句是oA.inta[10]B.ihta[2,5]C.inta[]D.int*a[10]:.数据库设计的根本目标是要解决()。A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护.关于纯虚函数和抽象类的描述中,()是错误的。A.纯虚函数是一种特殊的虚函数,它没有具体的定义.抽象类是指具有纯虚函数的类C一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出.下列描述正确的是()。A.表示m>n为true或m<n为true的表达式为m>n&&m<nB.switch语句结构中必须有default语句C.if语句结构中必须有else语句D.如果至少有一个操作数为true,则包含运算符的表达式为truetrythrow(nerrorn);vl*vl*wj>k!>«1> >J>*1>*J>*1>vl**J>*1>个个个个个个个个^^rror个个***个个个个个catch(chars)cout«s«endl;throw((int)0);个个个个个个个个^^nor个个个个个个个小catchcout«i«endl;)trythrow(O);throw(nerrorn);kI* vt* vl*kL*个不不不不不不不^^noi*不不不不不不不不catchcout«nERRORn«endl;returnO;45,使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:sizeof(Sl)=5sizeof(s2)=10sizeof(s3)=l注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。⑴不能删除assert()语句。(2)只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include<iostream.h>#include<assert.h>voidmain()(chartsl="abc":/不不不不个不不小error不不不个不不小不assert(sizeof(s1)==3):cout«Msizeof(sl)=5!,«endl;chars2[10]="ab":///不不不不不不不不error不不不不不不不不assert(sizeof(s2)==2);cout«nsizeof(s2)=10n«endl;chars3=23:sX* sl>sf> ^X>sX^个个个个个个个个个个个个个*r**t*个assert(sizeof(s3)==4);cout«nsizeof(s3)=ln«endl;return;)五、综合应用题(2题)46.使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。⑴定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。(2)定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传人。请在注释“//********2********”之后添加适当的语句。⑶定义类A2的构造函数,该构造函数有3个整型的参数x,y和z,在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//""""K3*******51s”之后添加适当的语句。(4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。程序输出结果如下:73738注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。试题程序:#include<iostream.h>classA(inta;public://********]********intgeta{returna;}};classAl:publicA(intb;public://********2********intgetb{returnb;}};classA2:publicAlintC;public:voidshow/I********4********};voidmainA2a(8.3.7):cout«a.geta«endl:cout«a.getb«endl:a.show;47.使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。每卖出一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整。(1)定义类TCFruit的私有静态数据成员float型变量AllWeight和int型变量AHN0,请在注释1后添加适当的语句。(2)完成类TCFruit的带一个float型变量w的构造函数,并把这个w加到AllWeight中,并且AllNo自加。请在注释2后添加适当的语句。(3)在析构函数中,在AllWeight中减去weight,然后析INo自减,请在注释3后添加适当的语句。(4)完成静态成员变量的初始化为0,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:#include(iostream.h>classTCFruitprivate:floatWeight;vL*ikL**1*vL*vl*vl*kL*4、■[、,J、,卜q、4、-[、Iq、4、-[、■Fq、q、4、staticintAHNo;public:TCFruit(floatw)//kL* *1*kL*/ Jrj*rr* rj*rT*rTwAllWeight十二w:A11NO++:TCFruit// si*si*k1*kI* *1*kL*/q.q、q. 4、4q、q.」、〃、q.q.AllWeight-=Weight:}voiddisplay(cout«nSellaFruitwithn«Weight«nk9n<<endl;coutvv"Allsellnumber:n«AllNo«endl;cout«nAllsellweight:n«AllWeight«nk9n<<endl«endl;};II********4********floatTCFruit::AllWeight=O.0;intmain(TCFruitFruitl(1.2);Fruitl.display;TCFruitFruit2(2.3);Fruit2.display;returnO;)六、3.综合应用题(2题)48.使用VC6打开考生文什夹下的工程testl_3o此工程包含一个testl_3.cpp,其中定义了类circle和column,其中column类由circle类protected派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。⑴定义类circle的保护数据成员r和area,它们都是double型的数据。请在注释“//**1**”之后添加适当的语句。⑵添加类circle的无参数的构造函数,使circle对象的r默认值为0,请在汁释“〃**2**,,之后添加适当的语句。(3)添加派生类column构造函数的定义,传入的参数为double型的height和radius,并将具分别赋值给数描成员h和基类的r,请在注释“〃**3***之后添加适当的语句。(4)完成派生类column的成员函数print的定义,使其以格式“r=_area=_"先输出半径r和底面积area,再以格式“h=_vol=_”输出高h和体积vol的值,请在注释“〃**4**”之后添加适当的语句。输山结果如下:r=larea=3.1416h=2vol=6.2832注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。源程序文件testl_3.cpp清单如下:#include<iostream.h>constdoublepi=3.1416;classcircleprotected:〃**]**public:circle(doubleradius){r=radius;}voidprint()area=r*r*pi;cout<<"r="<<r<<nn<<narea=n<<ared<<endl;));classcolumn:protectedcircle(protected:doubleh;public:〃**3**voidprint()(〃**4**));voidmain()(columncol(l.0,2.0);Col.print();)49.使用VC6打开考生文件夹下的工程test40_3o此工程包含一个test40_3.cpp,其中定义了类CVector,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。⑴完成类CVector构造函数的定义,把传入的int型参数a和b分别赋值给类的成员变量x和yo请在注释“〃**1**”之后添加适当的语句。⑵完成类CVector的运算符重载函数的定义,使Cvector类的两个对象相加时可以直接使用符号“+”,并且结果仍然为类Cvector的对象,请在注释“〃**2**,,之后添加适当的语句。⑶在主函数中添加适当的语句,把类Cvector的对象a和b相力口,并且把结果保存在对象c中,最后以“x,y”的形式输出在屏幕上,请在注释“〃**3**,,之后添加适当的语句。源程序文件test40_3.cpp清单如下:#include<iostream.h>classCVectorpublic:intx,y;CVector(){};CVector(int,int);CVectoroperator+(CVector););CVector::CVector(inta,intb)〃**]**)CVectorCVector::operator+(CVectorparam)〃**2**temp.y=y+param.y;return(temp);}intmain()CVectora(3,1);CVectorb(1,2);CVectorc;return0;)参考答案l.C解析:在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,.算法的有穷性是指A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用.对虚函数的调用()。A.一定使用动态联编B.必须使用动态联编C.一定使用静态联编D.不一定使用动态联编二、单选题(13题).下列对重载函数的描述中,错误的是( )。A.A.重载函数中不允许使用默认参数B.重载函数中编译是根据参数表进行选择的C.不要使用重载函数来描述毫不相干的函数D.构造函数重载将会给初始化带来多种方式.派生类对象对其基类中的什么成员是可访问的?()A.公有继承的私有成员B.私有继承的公有成员C.私有继承的保护成员D.保护继承的保护成员内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项A与B错误,选项C正确。2.B.DD。【解析】本题考查C++语言中操作符重载的概念。运算符重载的关键字是operator。运算符重载的规则是重载时不能改变运算符的操作数个数,不能改变运算符的优先级,不能改变运算符的结合性,不能改变对预定义类型数据的操作方式。.A解析:提取函数get()能够提取空白字符,可以带参数,用以存储从流中得到的字符,返回值为所提取的字符。.A.A解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享本身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。因此,数据库设计的根本目标是要解决数据共享问题。.C.D解析:本题主要考查Ct+语言的基本语法,选项A中应该为m>n||m<n:选项B中default语句可有可无;选项C中订可以单独作为一条语句,不必须和else搭配。.A算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。.D解析:虚函数在运行阶段和类的对象绑定在一起,这样成为动态联编。虚函数声明只能出现在类声明的虚函数原型中,而不能在成员的函数体实现时。必须由成员函数来调用成员函数来调用或者通过指针、引用来访问虚函数。如果通过对象名来访问虚函数,则联编在编译过程中认为是静态联编。.AAo【解析】选项A中,重载函数中是允许使用默认参数的;为了使重载函数有意义,不要使用重载函数来描述毫不相干的函数;重载函数中编译是根据参数表进行选择的,包括参数的个数和类型。.D13.C本题主要考查了对象数组、指针数组和new运算符。new运算符返回指向指定类型的一个指针。对象数组是指数组元素为对象的数组,该数组中的每一个元素都是同一个类的对象。定义对象数组时,系统将自动调用构造函数创建每一个对象元素,因为类MyClass中定义了一个有一个整型参数的构造函数,编译器将不再为其生成缺省构造函数,所以定义对象数组时必须分别调用有参构造函数为每一个数组元素指定初始值。因此选项A错误,没有初始化对象数组;选项B中,用指向对象的指针初始化对象数组,类型不匹配,因此选项B错误;指针数组是由指针组成的数组,即数组中的每一个元素都是指向同一类型对象的指针。选项C定义了指向MyClass类对象的指针数组x3,该定义语句正确;选项D中,只能用指向MyClass类对象的指针或用已有的MyClass类对象的地址来初始化指针数组x4的每一个元素,不能用对象进行初始化,因此选项D错误。14.A解析:continue是跳出了本次循环中尚未执行的语句,重新执行循环,但没有终止循环。注意:注意break,continue和goto语句的用法和区别。15.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名…都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。16.D本题考查的知识点是:类的构造。建立一个类的对象时,构造函数的执行顺序如下:①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下):(如果一行声明了多个对象,则还要遵循自左向右)③执行自身的构造函数。本题Derived类继承于Base类,所以首先会构造基类Base,但Derived类的构造函数没有初始化列表,所以将调用Base类的默认构造函数,输出一个0。接下来由于它的成员中还定义了一个Base类的对象,而构造函数也没有显示初始化这个对象,所以再次调用Base类的默认构造函数输出一个0。最后构造自身,因为主函数中传入了构造参数1,所以构造自身时输出了一个1。故最终输出结果为001,应该选择D。17.CCo【解析】E一R(Entity一Relationship)图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。18.A19.D解析:本题考核虚函数的应用。动态联编一直要到程序运行时才能确定调用哪个函数。虚函数是实现动态联编的必要条件之一。没有虚函数一定不能实现动态联编,但有虚函数存在时,必须同时满足下列条件,才能实现动态联编:类之间满足子类型关系;调用虚函数操作的是指向对象的指针或对象引用,或者是由成员函数调用虚函数。20.C21.A解析:在默认情况下,与ifstream流对象关联的文件将以in模式打开,该模式允许文件进行读操作;与。fstream关联的文件则以。ut模式打开,使文件可写。22.CC。【解析】保护继承时,类成员的访问级别只能是降低为保护模式,因此即使基类的公有成员,也被缩小为保护模式。23.D冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。24.0.多继承多继承.输出结果输出结果.机器机器.存储存储解析:数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关。.存储存储解析:数据结构包括逻辑结构和物理结构(存储结构),逻辑结构包括集合、线性、树、网络等,而存储结构主要指的是逻辑结构的存储,包括顺序、链表、索弓I、散列等。.析构函数析构函数解析:C++类对象销毁时,自动执行的函数是析构函数。.数据库管理系统数据库管理系统(DBMS).一对多一对多解析:实体集“项目主管”与实体集项目'的联系属于一对多的联系。.A(aa)c(aaq+l)°^c(aa+l)A(aa)oA(aa),c(aaq+l)或c(aa+l),A(aa)o解析:题中要求用aa初始化基类A,用aa+1初始化类对象成员c,用的初始化列表的形式,即A(aa),c(aa+l)或c(aa+l),A(aa)o.cout<<endl;cout<<endl;解析:"\\n”表示换行,endl也可表示换行。注意:endl和“\\n”可以通用。.有穷性有穷性解析:算法是指解题方案的准确而完整的描述。它有4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。.(1)应改为“ein.getline(str,120,?);\n(2)应改为"while(str为)”。\n(3)应改为“if(str[i]>=a&&str[i]<=2),,o\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),,o.(1)应改为“TC::TC”。\n(2)应改为"voidTC::display”。\n(3)应改为“TC::〜TC”。\n【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“::”,作用域运算符用采表示某个成员属于哪个类,使用格式为“(类名)::(成员函数〉((参数函数)),因此第1处应改为“TC::TC”,默认构造函数没有参数。由第2处“TC::display”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void,因此第2处的语句应改为“voidTC::display"。由第3处的语句叮(2::丁小可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“〜”字符,用采与构造函数加以区别,因此第3处的语句应改为“TC::〜TC”。.(1)应添加“public:\n(2)“inti”应改为“inti(10);\n(3)“i++;”应改为“i-;\n【解析】本题主要考查的是成员的访问属性。成员的访问属性有公有、保护和私有3种,而默认的访问属性为私有,只有公有成员才能通过类的对象被访问。故应在构造函数前添加“public:",否则该类无法被实例化。变量的初始化可以通过号,也可以和初始化对象一样添加构造参数,题目已要求使用后者。本题要求输出5个数,while的循环变量i每次减1,在i>5时循环,故i初始化应为10o若循环中i每次增1,则循环永远不会退出。.(1)应改为"usingnamespacestd;"。⑵应改为"outl.open("l.txt",ios::binaryIios::app);(3)应改为“outl.put(s[i]);5,o【解析】本题第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)应改为"catch(char*s)”。⑵应改为“cateh(inti)”。(3)应改为"catch(…)”。【解析】本题中第1个标识前的异常抛出语句为“throw,error");”,其中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语句修改为“catch(char*S)”。第2个标识前的异常抛出语句为44throw((int)0);”,其中的类型为int。对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行。即第2处的语句修改为“catch(inti)”。如果在catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为“catch(…)”。.(l)“staticintn=O"应改为"staticintn;"。(2)“intC0::n;”应改为“intCO::n=0;(3)“cout«c.n«endl;"应改为"cout«c->n<<endl;【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第1处应改为“staticintn;",第2处要给n赋值,第3处输出时引用c的对象,应改为"cout«c->n<<endl;.⑴应改为"usingnamespacestd;\n(2)应改为“outl.open('l.txt',ios::binary|ios::app);\n(3)应改为“outl.put(s[i]);\n【解析】本题第1处的“usingstd广是在程序中引入标准命名空间std,对于C++中引入标准命名空间的格式,缺少namespace,所以第1处的语句修改为“usingnamespacestd;第2处,调用成员函数open中,输入、输出方式是在ios类中定义的,.openfl.txt',binary|app)二语句缺少类ios,即第2处的语句修改为“outl.open(,l.txf,ios::binary|ios::app);”。第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“outl.put(s[i]).(1)应改为“ein.getline(str,120,?);⑵应改为“while(str[i])"°(3)应改为“if(str[i]>=a&&str[i]<=2)?,。【解析】本题中要求以输入字符“?”为结束符,用于字符输入的流成员函数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,所以修改为t4if(str[i]>=a&&str[i]>=z),,0.(1)应改为"catch(char*s)”。(2)应改为"cateh(inti)”。(3)应改为"catch(…)”。【解析】本题中第1个标识前的异常抛出语句为“throw,error”);",其中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语.已知类MyClass声明如下:classMyClass{intn;public:MyClass(intk):n(k){}intgetValue()const{returnn;});在下列数组定义中正确的是。A.MyClassxl[2];B.MyClassx2[2]={newMyClass(l),newMyClass(2)};C.MyClass*x3⑵;D.MyClass*x4[2]={MyClass(l),MyClass(2)};.关于continue语句叙述不正确的是( )oA.continue语句用于循环体中,结束循环B.continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue可以用于if语句中D.continue语句不能代替break语句.关系数据库管理系统能实现的专门关系运算包括()。A排序、索弓I、统计B.选择、投影、连接C关联、更新、排序D.显示、打印、制表.有如下程序:#include<iostream>usingnamespacestd;classBase{句修改为"catch(char*S)”。第2个标识前的异常抛出语句为44throw((int)0);",其中的类型为int。对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行。即第2处的语句修改为“catch(inti)”。如果在catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为"catchy..)”。.(1)应改为"assert(sizeof(sl尸=4);\n⑵应改为"assert(sizeof(s2尸=10);\n(3)应改为"assert(sizeof(s3)==l);\n【解析】assert函数如果为假,则会产生一个中断异常。所以要让它正常执行输出结果,那么assert函数只有为真,才不会产生中断异常。uassert(sizeof(s1)==3);”语句中“sizeof(sD==3”为假,这会使程序产生异常,不能正常执行。因为strl的值为abc,但是它还有一个尾符,它的长度应该是4,而不是3,所以在第1处修改为“assert(sizeof(sD==4)了。str2[10]说明,str2的空间为10,在第2处修改为“assert(sizeof(s2)==10):。charstr3=23;语句说明23是字符,所占存储空间为1,所以修改为44assert(sizeof(s3)==l);.(l)“A(intx){a=x;}“。(2)<<Al(intx,inty):A(y){b=x;(3)"A2(intx,inty,intz):Al(y,z){c=x;(4)"cout«geta«nn«getb«nn«c«endl;"。【解析】本题第1处要求定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a,构造函数没有返回值类型,所以应填“A(intx){a=x;}”。第2处第3处根据继承中对象的初始化语法规则可知。第4处要求调用基类成员函数,由于都是公有继承,ge-ta>getb都是自身类的公有函数,所以根据继承规则,在对象A2中,依然是公有的可以通过对象A2直接调用。.(1)应添力ITstaticfloatAUWeight;⑵应添力rWeight=w;⑶应添力[TAllNo--;(4)应添加“intTCFruit::AllNo=0;【解析】静态数据成员声明时需使用关键字static,因此第1处应添加"staticfloatAllWeight;构造函数用来对类成员进行初始化,在TCFruit类的构造函数TCFruit(floatw)中,完成weight的初始化,并把这个w加到AllWeight中,并且AllNo自加,因此第2处应添加“weight=w;"。调用析构函数相当于退出,这时AllWeight中减去weight,然后AHN。自减,因此第3处应添加“AllNo-; 静态数据成员的初始化格式为“<数据类型><类名>::(静态数据成员>=(初始值)”,因此第4处应添加“intTCFruit::AHNo=0;.(1)doubler;doublearea;(2)circle(){r=0;}(3)column(doubleradiusdoubleheight):circle(radius){h=height;}(4)circle::print();cout<<nh=n<<h<<nn<<nvol=n<<area*h<<endl;(l)\r\ndoubler;\r\ndoublearea;\r\n(2)\r\ncircle(){r=0;}\r\n(3)\r\ncolumn(doubleradius,doubleheight):circle(radius){h=height;}\r\n(4)\r\ncircle::print();\r\ncout<<'h=’<<h<<''<<'vol='<<area*h<<endl;解析:主要考查考生对于类的数据成员定义与成员函数构造的掌握,其中⑶使用了参数列表进行变量赋值,(4)使用作用域符::调用基类print函数。.(1)x=a;y=b;(2)CVectortemp;temp.x二x+param.x;(3)c=a+b;tout<<c.x<<""<<c.y;(l)\r\nx=a;\r\ny=b;\r\n(2)\r\nCVectortemp;\r\ntemp.x=x+param.x;\r\n(3)\r\nc=a+b;\r\ntout<<c.x<

温馨提示

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

评论

0/150

提交评论