还剩41页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2021年广东省中山市全国计算机等级考试C++语言程序设计模拟考试(含答案)学校:班级:姓名:考号:
一、.选择题(题)110语句();的功能是
1.ofstream fSALARY.DAT,iosapp|ios Ibinary建立流对象试图打开文件并与之连接,并且f,SALARY.DAT若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新A.文件若文件存在,将其置为空文件;若文件不存在,打开失败B.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新C.文件若文件存在,打开失败;若文件不存在,建立一个新文件D..下列说法正确的是()2内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方A..内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方B.类的内联函数必须在类体内定义C类的内联函数必须在类体外通过加关键字定义D.inlinevoid order[]Ta;ifxy二;a x;x=y y=a;}if yza=y;y=z;z=a;if xya=x;x=y;y=a;}在进行函数调用时,将把参数的【】传递给值参,把参数的【】传递
33.给引用参数【】技术是将数据和行为看成是一个统一的整体,使一个软件成分,即
34.所谓的对象
35.若有定义语句:intx=3,y=2,z=l;则表达式x yx:y的值是_________
四、程序改错题题
10.使用打开考生文件夹下的源程序文件该程序运行时36VC++
6.
01.cpp,有错误,请改正程序中的错误,使得程序输出9,8,7,6,5注意错误的语句在/的下面,修改该语句即可********error********/其他的语句不能修改试题程序#includeiostream.hclassTC/KJ*KJ*KJ*KJ*KJ*/不不不不不不不不不不不不不不不不/eu*o1TCintim_i=i;voidprintcout«—m_i«,;publicintm_i;intmainerrorinti;TC0410;whilei5!**************/i++
04.print;cout«endl;returnO;.使用打开考生文件夹下的源程序文件但该程37VC++
6.
1.cpp,序运行有问题,请改正函数中的错误,使该程序的输出结果正main确程序输出88注意错误的语句在/的下面修改该语句********error********/即可,其他的语句不能修改试题程序#includeiostream.hclassCO public/*!^1*^1**1*vt*/不不不不不不不不不不不不不不不不/en*or staticintn=Ocon++)〜CO(n—))/«£#/不不不不不不不不•不不不不不不不不QrmtintCOn;voidmainCOobj;COobj2
[7];COCNULLc=obj*1*1K1K£K.t KI*1K£K1K|*1*1K|KI个个个个个个个个个个个个个个个小eout«C.n«endl;cout«C0n«endl;.使用打开考生文件夹下的源程序文件本程序要求输38VC++
6.
01.cpp入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******eiror******试题程序#includeiostream.hvoidmain;inti=Ocharstr
[120];cout«nEnterastringendwith.n«endl;!1********error********cin.getlinestr,120;!1********error********whilestr!1********error********ifstr[i]=astr[i]=str[i]-a+A;i++;cout«str«endl;return;.使用打开考生文件夹下的源程序文件该程序运行时39VC++
6.
01.cpp,有错误,请改正错误,使程序正常运行,并且要求最后一个必须抛出执行的任何异常catch程序异常,输出信息为error OERROR注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******error******试题程序:#includeiostream.h intmaintry throw,error;catchchars cout«s«endl;try throwint0;vl*vt*KI*不不不不不不不不不不不不不不不不^^noi*catch cout«i«endl;try throwO;throw error;个不个个个不小个个个个个个个个个^^norcatch cout«nERRORn«endl;returnO;.使用打开考生文件夹下的源程序文件该程序40VC++
6.
01.cpp,运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意错误的语句在/的下面,修改该语句即/******errc r******可试题程序:#includeiostream.h classTCinti;public TC;voiddisplay;TC;};errorKL*sl K!*T rT^|^T*TTCTC,cout«nConstructorn«n”;i=0;•J*J slvf«J«J vl不不不不不不不不不不不不errorTCdisplayerror、!,7,7,777,、、、q.qTCTCtoutni=n«i«n,n«endl;COUI«HDestructorH«endl}7,7,777Krj*voidmainTCa;a.display;.使用打开考生文件夹下的源程序文件该程序41VC++
6.
01.cpp,运行有问题,请改正函数中的错误,使程序的输出结果为mainnumber=1number=10number=100注意不要改动函数,不能增加或删除行也不能更改程序的结main构,错误的语句在/的下面/******errc r******试题程序#includeiostream.hclassTC publicTCintinumber=i;voidSetNumberintm number=m;intGetNumberconst returnnumber;voidPrintconst cout«n number=n«number«endl;privateintnumber;};voidmainerrorTCobjl;objl.Print;TCobj23;vt*vL*vL*K1个个个不不不不不•不不不不’不个不^^nc iobjl.number=10;//********ej*j*0[*******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用打开考生文件夹下的源程序文件该程序42VC++
6.
01.cpp,运行时有错误,请改正错误,使程序正常运行,并且要求最后一个必须抛出执行的任何异常catch程序异常,输出信息为error0ERROR注意不要改动函数,不能增加或删除行,也不能更改程序的结main构,错误的语句在/的下面/******errc r******试题程序#includeiostream.hintmain try以下程序的输出结果是;
3.#includeiostreamusing namespace stdint main{cout.fin*;cout.width5;couthex100endl;();}returnA.**100B.***64C.100**D.64***.下列不属于结构化分析的常用工具的是4数据流图数据字典判定树图A.B.C.D.PAD
5.关于动态存储分配,下列说法正确的是_______o和是语言中专门用于动态内存分配和释放的函数A.new deleteC++.动态分配的内存空间也可以被初始化8当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必C.用释放内存空间delete当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用D.new.假定和为型,则表达式的值是)6x ydouble x=2,y=x+3/2(o.实体是信息世界中广泛使用的一个术语,它用于表示()7有生命的事物无生命的事物实际存在的事物一切事物A.B.C.D.下面关于友元函数的描述正确的是()
8.友元函数不能访问类的私有成员A.友元函数破坏了类的封装性和隐藏性B..友元函数是类的成员函数C,[、,[、,!、■[e、rrorTthrownerrorn;catchcharscout«s«endl;trythrowint0;*1^1*J KJ*11*KJ**J KJ^1*K1*1个个个个个个个个个个个个个个个个^^noi*catchcout«i«endl;try throwO;throw error;}/不不不不不不不不不不不不不不不不errorcatchcout«nERRORn«endl;returnO;},使用打开考生文件夹下的源程序文件该程序43VC++
6.
01.cpp,运行时有错请改正程序中的错误,使程序输出的结果为1003732注意错误的语句在/的下面,修改该语句即/******error******可试题程序:#includeiostream.h******eiror******voidmain******error******intm=0142******eiror******intn=0X27intq=32;coutmendl;cout nendl;cout qendl;return;.使用打开考生文件夹下的源程序文件本程序44VC++
6.
01.cpp要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******error******试题程序:#includeiostream.h voidmain inti=O;charstr
[120];cout«nEnterastringendwith.n«endl;个个个个小个个个个个小个个个个个^^norcin.getlinestr,120;*1^个个个个个个个个个个个个个个个个^^norwhilestr7,K.J7K!7个个个不不不下不个个个小个个个个^^rrorifstr[i]=astr[i]=str[i]-a+A;i++;cout«str«endl;return;.使用打开考生文件夹下的源程序文件45VC++
6.0该程序运行时有错误,请改正程序中的错误本程序要求实L cpp,现的功能为从键盘输入一个字符串,并将结果保存到文件中
1.txt注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在卜******enor******q j试题程序:#includeiostream#includefstream*1*si*不不不不不不不不不不不不不不不不usingstd;voidWriteFilechar*s ofstreamoutl;***个个个个个个个个个个小个个个个个^^noroutl.openH
1.txt,binary|app;forinti=0;s[i]!=0;i++vl*vt*KI*不不不不不不不不不不不不不不不不^^noi*outl.putss[i];outl.close;voidClearFile ofstreamoutl;outl.opennl.txt;outl.close;}intmainchars
[1024];ClearFile;cout«npleaseinputastrin9H«endl;cin.getlines,1024;WriteFiles;returnO;}
五、综合应用题题
2.使用打开考生文件夹下的源程序文件请完成46VC++
6.
03.cpp以下部分,实现在屏幕上输出为C3C2这个程序需要修改的部分,请按照以下部分实现⑴类不能被实例化,请定义一个纯虚函数在注释后添加co print,1适当的语句⑵类私有虚继承类请在注释后添加适当的语句C1C0,2⑶类公有继承于请在注释后添加适当的语句C2CO,3类公有继承于与请在注释后添加适当的语句4c3C2C1,4注意增加代码或者修改代码的位置已经用符号表示出来请不要修改其他的程序代码试题程序#includeiostream.hclassCO//1/I;//7**1*7,7,7*7/77〃、J、/T*q.rj.classClpublic voidprintcoutn,,Cr,endl;};//K1KJ*1K|K1K1K!*A K1K|*1*1K1/rj*rj*rjw classC2public voidprintcoutMC2nendl;};classC3public voidprintcoutC3endl;;voidmainC3Obj3;C20bj2;obj
3.print;obj
2.print;return;.使用打开考生文件夹下的源程序文件类47VC++
6.
03.cpp包括姓名和年龄两个字段函数获得年龄比较大的人的姓名,People fun然后输出这个姓名到屏幕其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整完成构造函数对姓名的赋值,请在注释后添加适当的语句22⑶定义类的友元函数请在注释后添加适当的语句fun,3补充函数的年龄比较功能,请在注释后添加适当的语句4fun4注意增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码试题程序:#includeiostream.h classPeoplepublic inti;fori=0;sUserName[i]!=O;i++{m_UserName[i]=sUserName[i];//KJ#KL*/rjw rywm_Old=nOld;privatecharm_U serName
[32];intm_01d;//KL KI**1^KL**1**4*•1/rT*};,voidfunchar*s Peoplepersonl,Peopleperson2I I********4********ifforinti=0;personl.m_UserName[i]!=0;i++s[i]=personl.m_UserName[i];s[i+1]=0;elsefdrinti=0;person
2.m_UserName[i]!=0;i++{s[i]=person
2.m_UserName[i];s[i+l]=0;voidmainchars
[32];Peopleplnabc%20;Peoplep2def,30funS,pl,p2;cout«s«endl return;
六、.综合应用题题
32.使用打开考生文件夹下的工程此工程包含一个源程序文48VC6test20_3,件其中定义了用于表示复数的类但类的定义并不tesOO_
3.cpp,comp,comp完整请按要求完成下列操作,将类的定义补充完整定义comp1comp的构造函数,函数含参数和它们都是型的数据,默认值都为请使x y,in,0,用参数列表的形式分别将类数据成员和初始化和的值请在注释a bx y“〃**”之后添加适当的语句1**完成类的成员函数的定义,将血型的参数和分2comp inputintx,inty x y别赋值给数据成员和请在注释“〃**”之后添加适当的语句;S b,2**3完成类的友元函数的定义,该函comp friend comppluscomp x,comp y数首先要定义一个类的对象然后将参数和的数据成员与comp c,x ya b分别相加并分别赋值给的成员和最后返回的值,请在注释“〃**”c ab,c3**之后添加适当的语句输出结果如下10+20i2+3iresult12+23i注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件清单如下test20_
3.cpp#includeiostream.hclass comp友元函数的实现必须在类的内部定义D..对长度为的线性表进行顺序查找,在最坏情况下需要比较的次数为9n()oA.125B.n/2C.n D.n+1不是面向对象系统包含的要素的是()
10..重载对象类继承A B.C.D.
二、单选题(题)
13.下列叙述正确的是()U o.算法的执行效率与数据的存储结构无关A.算法的空间复杂度是指算法程序中指令(或语句)的条数B.算法的有穷性是指算法必须能在执行有限个步骤之后终止C以上三种描述都不对D.复制构造函数的参数一般是
12.某对象名某对象成员名.某对象的引用名.指向对象的指针名A.B.C D.有如下程序13#includeiostream#include cstring using namespace std;int a;int b;public:〃**]**friendcomp pluscomp x,comp y;void inputintx,int yvoid outputcouta+bninendl;comp pluscompx,comp yc.b=x.b+y.b;return c;void maincompx10,20,y,z;y.input2,3;z=plusx,y;x.output;y.output;cout result:;z.output;.使用打开考生文件夹下的工程此工程包含一个49VC6test41_3o其中定义了类但该类的定义并不完整请按要求完test41_
3.cpp,Rectangle,成下列操作,将程序补充完整⑴定义类的私有数据成员和它们都是Rectangle left,top fight,bottom,int型的数据请在注释“〃**”之后添加适当的语句1**⑵添加类的带四个血型参数、、、的构造函数的声明,并Rectangle1t rb使这四个参数的默认值均为请在注释“〃**”之后添加适当的语句0,2**添加类的成员函数参数为型的作用为把的值3Rectangle SetTopint t,t赋给类的数据成员添加类的成员函数参数为top,Rectangle SetBottomint型的作用为把的值赋给类的数据成员请在注释,,之t,t bottom,“〃**3**后添加适当的语句完成派生类的成员函数的定义,使其以格式4Rectangle Show“rightbottom输出,请在注释“〃”之后添加适当的语句point isright,bottom”**4**源程序文件清单如下test41_
3.cpp#includeiostream.h classRectangle//**]**int right,bottom;public:〃**2**〜Rectangle{};void Assignint1,int t,int r,int b;void SetLeftint t{left=t;}二void SetRightint t{right t;}〃**3**void SetBottomint t{bottom=t;}void Show;;Rectangle::Rectangleint1,int t,int r,int bleft=1;top=t;right=r;bottom=b;void Rectangle::Assignint1,intt,int r,int bleft=1;top=t;right=r;bottom=b;void Rectangle::Showcoutleft-top pointislefttop\n;〃**4**void mainRectanglerect;rect.Show;rect.Assignl00,200,300,400;rect.ShowQ;参考答案解析本题考查的是文件流的操作,表示追加方式打开文件(即将LA app指针移至文件尾),表示以二进制方式打开文件bi-naw解析本题考查的是内联函数的定义,引入内联函数是为了解决程序
2.B中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加关键字,则编译器会将在类说明部分定义的任何函数都被认定为inline内联函数
3.B
4.D属于结构化分析的常用工具数据流图,数据字典,判定树和判定表,是详细设计的工具PAD解析分配的内存需要程序自己释放,系统不会自动回收,除非
5.B new程序结束动态分配内存失败,系统不会崩溃解析本题需要掌握的知识点是逗号表达式的求解步骤,另外,注
6.D意一下两个整数相除的结果仍为整数了解了知识点后,本题就可以逐步求解了x=2y=x+3/2y=
2.000000+ly=
3.
0000007.C解析实体是客观存在且可以相互区别的事物实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别解析友元函数说明的位置可在类的任何部位,而友元函数定义则在
8.B类的外部,一般与类的成员函数的定义放在一起,类的友元函数可以直接访问该类的所有成员,但它不是类的成员函数【解析】对线性表进行顺序查找时,从表中的第一个元素开始,将
9.CC0给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为no解析重载不是面向对象的机制
10.A解析本题考查了算法的基本概念算法的执行效率不仅与问题的规
11.C模有关,还与数据的存储结构有关;算法的空间复杂度是指执行算法所需要的内存空间;算法的有穷性是指算法必须能在有限的时间内执行完.即算法必须能在执行有限个步骤之后终止解析+语言中拷贝构造函数的参数一般是某个对象的引用名
12.C C+
13.B本题主要考查了构造函数、拷贝构造函数和析构函数函数中,语main句先后创建了两个对象和在创建对象时,系XCF\r\ndl5,d2dl;dl d2dl统自动调用了构造函数,数据成员的值为输出字符在创建对象dl a5,1;d2时是用已创建的对象初始化,系统自动调用拷贝构造函数,对象数dl d2据成员的值为输出字符然后执行语句a5,2;XCF\r\n*pd=new\r\nXCF8;系统再次调用构造函数通过运算符动态创建了一个类的对象,new XCF该对象的数据成员的值为输出字符并将首地址赋给类的指针a8,1,XCF成员函数的功能是获取数据成员因此执行语句pd Getaa,cout«pd-Geta;输出接着执行语句系统自动调用析构函数,输出指针8delete\r\npd;pd所指向对象的数据成员即输出当函数结束时,系统先自动调用a,8,main析构函数删除对象输出对象的数据成员的值然后再次调用析构d2,d2a5,函数删除对象输出对象的数据成员的值因此程序输出结果为dl,dl a51218855c【解析】在本题中,子函数的功能是如果*的
14.C
15.A Aofunchar*s sASCH值是偶数,则输出*主函数中当实参的值为时,的值s,good9ASCII是字母的值是字母的值是只有字母的103,o ASCII111,d ASCII100,d值是偶数,所以输出字母ASCH d
16.C【解析】二分法查找只适用于顺序存储的有序表,对于长度为的有\n\tCo n序线性表,最坏情况只需比较次log2n解析选项中声明是一个指针,是一个指向数组的指针,所指
17.C Ap向的数组的元素是具有个元素的数组;选项中的则是一个函数n intB p指针,所指向的函数的形参不确定,返回值为选项中的是一个函int;D p数,返回值是指向血类型的指针
18.D解析笛卡尔积设关系和的元数分别是和定义和的笛卡尔R Sr s,R S积是一个元元组的集合,每一个元组的前个分量来自的一个元组,r+s rR后个分量来自的一个元组若有个元组,有个元组,则关系s S R kls k2和关系的广义笛卡尔积有个元组交设关系和关系具有R Sklxk2R S相同的目且相应的属性取自同一个域,则关系与关系的交由属于n,R SR又属于的所有元组组成并设关系和关系具有相同的目即两个SR S n关系都有个属性,且相应的属性取自同一个域,则关系与关系的n R S并由属于或属于的元组组成自然连接是一种特殊的等值连接,它RS要求两个关系中进行比较的分量必须有相同的属性组,并且要将结果中重复的属性去掉数据定义语言例如、、等语句
19.C DDL,CREATE DROPALTER数据操作语言例如插入、\u3000\u3000DML,INSERT UPDATE修改、删除语句DELETE数据查询语言例如语句\u3000\u3000DQL,SELECT数据控制语言例如、、、\u3OOO\u3OOO DCL,GRANT REVOKECOMMIT等语句ROLLBACK
20.D【解析】语言的全称为它是一种介
21.CC SQLStructuredQueryLanguage,于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言四个部分
22.D解析世纪年代以来,提出了许多软件设计方法,主要有
①逐步求2070精对复杂的问题,应设计一些子目标作过渡,逐步细化;
②自顶向下程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化;
⑧模块化一个复杂问题,肯定是由若干稍简单的问题构成模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块,而可复用是面向对象程序设计的一个优点
23.A【解析】选项中,重载函数中是允许使用默认参数的;为了使重载函Ao A数有意义,不要使用重载函数来描述毫不相干的函数;重载函数中编译是根据参数表进行选择的,包括参数的个数和类型;;解析本题考核友元类的声明
24.friend FriendClassfriend FriendClass友元类可以在另一个类的公有部分或私有部分进行说明,说明的方法为〈类名〉;friend25J=
026.A解析数组名作为函数参数传递的是数组的首地址,即实参数组27,212,1名把实参数组的首地址传给了形参数组名,形参数组名就指向了相应的实参数组,就是说形参数组和实参数其实就是同一个数组,对形参数组元素的修改也同样影响到对应的实参数组元素解析分析本题可知函数功能为计算一个字符串中包含的数字个数
28.44字符串中包含的数字有故输出为2008,
429.C
30.15解析中类的友元函数在声明时
31.friend void A;friend voidA;C++应在该函数前面加上关键字同样如果要声明一个类为另一个类的友friend,元类也要在前面类名前加上friendo解析本题要填入的是函数的形参表此
32.TxTyTzTx,Ty,Tz函数的功能是、和按从小到大的顺序排列,那么就涉及到改变传入x yz的实参值的情况,因此要采用引用传递的方式所以此题空白处应填入Tx,Ty,Tzo.值|地址值|地址解析函数传递只有两种形式——值传递和地址传递
33.面向对象面向对象
3435.2应添加:
36.1“public应改为;\n2“inti”“inti10”;”应改为;\n3“i++“i-【解析】本题主要考查的是成员的访问属性成员的访问属性有公有、保\n护和私有种,而默认的访问属性为私有,只有公有成员才能通过类的对3象被访问故应在构造函数前添加:,否则该类无法被实例化变“public量的初始化可以通过“=”号,也可以和初始化对象一样添加构造参数,题目已要求使用后者本题要求输出个数,的循环变量每次减5while i1,在〉时循环,故初始化应为若循环中每次增则循环永远不会退i5i10i1,o出应改为
37.1“staticintn=O staticintn;”应改为2“intCOn;“intCOn=0;3t4cout«c.n«endl;应改为cout〈vc-nendl;【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第处1应改为第处要给赋值,第处输出时引用的对象,应“staticintn;,2n3c改为〈coutv c-nendl;应改为;
38.1“ein.getlinestr,120,应改为\n⑵whilestr[i]°\n3应改为“ifstr[i]=astr[i]=2,,o【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员\n函数函数读入一行字符,格式为字符数组,字符个数,getline“cin.getline终止标志字符字所以第处改为;第处的1“cin.getlinestr,120,2语句应该是判断字符串中的每一个字符是否为结束符,若不“whilestr”str是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为第处的语句是判断字符“whilestr[i]”3“ifstr[i]=a”str[i]是否为小写字符,而现有的语句只是判断字符是否大于但是小写字符应a,该是到所以修改为a2,“ifstr[i]=a str[i]=z”应改为
39.1catchchar*s”⑵应改为“catehinti”应改为”3catch…【解析】本题中第个标识前的异常抛出语句为其中1“throw,error”;,的类型为字符串所以对应的异常捕捉语句中应该符合这个类型,而catch程序中给出的语句是字符型的,所以第处的语句修改为“catchchars”1“catchchar*S”第2个标识前的异常抛出语句为uthrowint0;,其中的类型为对应的异常捕捉语句中应该符合这个类型,所以补充int catchcatch子句中的类型,否则如果找不到匹配的块,系统就会调用一个系统catch函数,使程序终止运行即第处的语句修改为如果在2“catchinti”catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为”“catch…class XCF{int a;public:XCFint aa=O:aaa{coutl;XCFXCF x{a=x.a;coutn2H;}-XCF{couta;}int Geta{return a;};int main{XCFdl5,d2dl;XCF*pd=new XCF8;coutpd-Geta;delete pd;return0;运行时的输出结果是A.1215588B.1218855C.12185D.128512语言中关于构造函数的说法正确的是
14.C++构造函数的函数名不必和类名相同构造函数只能有一个.每个A.B.C类必定有构造函数构造函数必有返回值D..有下列程序15#includestdiO.hvoidfunchar*s{while*s{if*s%2==lprintf%C,*s;十s+应改为
40.1“TCTC”应改为2voidTCdisplay”⑶应改为“TC〜TC”【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“”,作用域运算符用采表示某个成员属于哪个类,使用格式为“类名<成员函数〉参数函数,因此第处应改为1“TC默认构造函数没有参数由第处后的语句看,这TC”,2“TCdisplay”是在类外实现函数,因此也有作用域运算符使用错误问题,函TC display数返回值为因此第处的语句应改为由第处void,2“voidTCdisplay”3的语句可知,显然这里是在类外实现析构函数,析构函数是一“TCTC”个特殊的函数,它的名称和类名相同,并在前面加“”字符,用采与构〜造函数加以区别,因此第处的语句应改为3“TC〜TC”应改为
41.1TCobjll;应改为2“Objl.SetNumberlO;应改为3“0bj
2.SelNumberlOO;【解析】本题第处的”语句是声明类的对象根据1“TCobjl;TC Objl,TC类构造函数的定义存在整型参数,并且题目要求第一个输出结果TCinti,两所以补全参数即第处的第处处1,1,1“TCobjll;2的”应该是调用成员函数赋值在+中成“objl.number=10;SetNumber C+员函数的使用形式应该是对象名.成员函数,所以修改为类是对象的抽象,而对象是类的具体实例第“objl.SetNumberlO;3处”语句中的为类,并不是对象,这里应该使“TC.SetNumberlOO;TC用定义的对象,即所以将语句修改为bj2,“obj
2.SetNumberlOO;应改为
42.1catchchar*s”应改为2catehinti”应改为”3catch…【解析】本题中第个标识前的异常抛出语句为其中1“throw,error”;,的类型为字符串所以对应的异常捕捉语句中应该符合这个类型,catch而程序中给出的语句是字符型的,所以第处的语句修改为“catchchars”1“catchchar*S”第2个标识前的异常抛出语句为uthrowint0;,其中的类型为对应的异常捕捉语句中应该符合这个类型,所以补充int catchcatch子句中的类型,否则如果找不到匹配的块,系统就会调用一个系统catch函数,使程序终止运行即第处的语句修改为如果在2“catchinti”catch子句中没有指定异常信息的类型,那么就用删节号…表示它可以捕捉任何类型的异常信息,即修改为”“catch…
43.l“voidmairT”2“intm=0144;”或”3“intn=OX25;“intn===0x25;【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括十进制到八进制,十进制到十六进制主函数定义的定义形式为函数名之后必须是一对括号,因此第处应改为“main”,1“voidmain”cout输出默认是以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的对应八进制的卡进制的对应十六进制的100144,3725,因此2和3应分另U改成“intm=0144;”,uintn=0x25;”或“intn=025;应改为
44.1“ein.getlinestr,120,;⑵应改为“whilestr[i]°3应改为“ifstr[i]=astr[i]=2,,【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员函数函数读入一行字符,格式为字符数组,字符个数,终getline“cin.getline止标志字符”,所以第处改为1“cin.getlinestr,;第处的语句应该是判断字符串中的每一个字符120,2“whilestr”str是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为第处的“whilestr[i]”3“ifstr[i]=a”语句是判断字符用是否为小写字符,而现有的语句只是判断字符是否str大于但是小写字符应该是到所以修改为a,a2,uifstr[i]=a str[i]=z,,o应改为
45.⑴usingnamespacestd;应改为2outl.openl.txt,iosbinary Iiosapp;应改为3“outl.puts[i];【解析】本题第处的”是在程序中引入标准命名空间对1“usingstd;std,于中引入标准命名空间的格式,缺少所以第处的语句修C++namespace,1改为第处,调用成员函数“usingnamespacestd;2open中,输入、输出方式是在类中定义的,所以ios“outl.openl.txt,binary I”语句缺少类即第处的语句修改为app;ios,2“outl.openl.txt,ios第个标识应该用流成员函数输出字符,所以第binary Iiosapp;3put处的语句修改为3“outl.puts[i];应添加
46.1virtualvoidprint=0,“应改为⑵“classC1classC1virtualprivateCO^^”应改为3“classC2“classC2publicCO””应改为4“classC3classC3publicC2,publicCl”【解析】本题考查了类的继承根据题意,第处应该添加1第处根据题意,在冒号后面应添加“virtualvoidprint=0;2第处根据题意,冒号后应添加第处根“virtualprivateCO”3“publicCO4据题意,冒号后应添加“publicC2,publicCl”应添加应添加
47.1Peoplechar*sUserName,intn01d^^2l“m_UserName[i]=O;⑶应添力口”由丫血*$,0111011m11©People personl,People”person2;将补充完整为4“if“ifpersonl.m_Oldperson
2.mOld”【解析】本题第处要求“完成类的构造函数”根据语句1“classPeople”知道为类,所以类的构造函数名为根据第处的大括People PeoplePeople,1弧中的语句知道函数中的参数为数组存放姓名,整型存sUserName nOld放年龄,所以补充构造函数定义为第“Peoplechar*sUserName,intnOtd”处要求”完成构造函数对姓名的贼值“第处补全姓名赋值,即22第处要求“定义类的友元函数在中,“m_UserName[i]=O;3fun C++如果在本类以外的其他地方定义了一个函数,在类体中是用对该函friend数进行声明的,此函数称为本类的友元函数,并且能够调用本类中的成员变量程序中的函数定义为fun voidfunchar*S,Peoplepersonl,People person2,,»所以声明fun为类People的友元函数,即这里补全44friendvoktfunchar*s,Peoplepersonl,Peopleperson2;第4处要求“补充函数的年龄比较类中年龄的变量为根据中类fun Peoplem_Old,C++变量的调用格式补充第处语句中的条件判断语句,即4if“ifper-sonl.m_01dperson
2.m_01d”
48.1compint x=0int y=0axby{}2a=x;b=y;3comp c;c.a=x.a+y.a;1\r\n compintx=O,int y=0ax,by{}\r\n2\r\n a=x;\r\n b=y;解析本题考查考生对于类的定义\r\n3\r\n compc;\r\n c.a=x.a+y.a;和友元函数定义的掌握,请注意⑴中的参数列表形式和中对象使用3“.”访问它的数据成员
49.1int lefttop;2Rectangleint1=0intt=0int r=0int b=0;3voidSetTopint t{top=t;}4coutTight-bottom pointis“rightnnbottom\n;l\r\nintleft,top;\r\n2\r\n Rectangleint1=0,intt=0,int r=0,int b=0;\r\n3\r\n voidSetTopint t{top=t;}\r\n4\r\n coutTight-bottom pointis fright7bottomy\!\\nV;解析主要考查考生对于类的定义和定义一般成员函数的掌握,其中⑵中为了使构造函数可以不带参数,使用了对于参数给定默认值的方法,这点需要考生注意,中连续的字符流的输出可以连续使用“〈”符号实现4voidmain{chara[]={ngoodn;funa;printfnnH;注意字母的码值为程序运行后的输出结果是A.d B.go C.god D.gooda ASCII97,o.下列叙述中正确的是160对长度为的有序链表进行查找,最坏情况下需要的比较次数为A.n n.对长度为的有序链表进行对分查找,最坏情况下需要的比较次数为B nn/
2.对长度为的有序链表进行对分查找,最坏情况下需要的比较次数为C nlog2n.对长度为的有序链表进行对分查找,最坏情况下需要的比较次数为D nnlog2n下列说法正确的是
17.是把定义为整型变量,它指向不知数据类型的一维数A.int*p[n;p组;是把定义为整型指针B.int*pp;定义指针数组每个指针指向一个整型变量C.int*p[n p,.有三个关系和如18S T;为指向函数的指针,函数返回值为整型D.int*p pK由关系和通过运RS算得到关系T,则所使用的运算为(o.笛卡尔积交.并.自然连接A B.C D为用户与数据库系统提供接口的语言是
19.高级语言数据描述语言()数据操纵语言().汇编语A.B.DDL C.DML D言
20.若有说明则对数组元索的非法引用是()
17.int a
[3][41a.A.a
[0][2*l]B.C.a[4-2]
[0]D.a
[0]
[4]语言又称为()
21.SQL
0.结构化定义语言.结构化控制语言结构化查询语苦.结构化操纵A BC.D语言.下列选项中不属于结构化程序设计方法的是22自顶向下逐步求精模块化可复用A.B.C.D..下列对重载函数的描述中,错误的是()
23.重载函数中不允许使用默认参数A.A重载函数中编译是根据参数表进行选择的B.不要使用重载函数来描述毫不相干的函数C构造函数重载将会给初始化带来多种方式D.
三、.填空题(题)212若要把类定义为类的友元类,则应在类
24.FriendClass MyClassMyClass的定义中加入语句【】下面程序用于计算矩阵的两条对角线上的元素之和补充下列语句,实
25.现该功能#includeiostream.h()void main{);inta
[3],
[3]={9,8,7,6,5,4,3,2,1int sum1=0,sum2=0,i,j;()for i=0;i3;i++(;;)for j=0j3j++();if i==j suml+=a[i][j](;)for i=0i3i++()for j=2;[];j-();if i+j==2sum2+=a[i][j])创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果
26.没有显式给出数组元素的初值,则调用缺省构造函数下列程序涉及对象数组的创建和单个对象的创建,其输出结果是【】#includeiostream usingnamespacestd;class Foo{publicFooint x{cout;Foo{};int mainFoof
[3].g⑶;returnO;函数可完成对数组从第个元素到第个元素两两
27.swaparr,n arr1n交换在运行调用函数中的语句后,和的值分别为【】a
[0]a[l]a
[0]=l;a[l]=2;swapa,2;下列程序的输出结果是[]
28.o#includeiostream,h intCalcDigitalchar*strif str==NULLreturn0;int num_ofLdigital=0;forint i=O;str{i]!=0x0;i++ifstr[i]=9str[i]=0匚num_o digital++;匚return num_o digital;void mainchara[]=nBeijing2008olympicM;coutCalcDigitalaendl;下列程序的输出结果是【】
29.#includeiostream#includecstringusingnamespacestd;void funconstcharts,char c{c=s[strlens/2];}int maincharstr[]=nABCDEn;char ch=str[l];funstr,ch;coutch;return0;}在深度为的完全二叉树中,度为的结点数最多为【】
30.52如果要把返回值为的函数声明为类的友元函数,则应在
31.voidAB类的定义中加入的语句是【B下列程序将、和按从小到大的顺序排列,请将下面的函数模板补
32.xyz充完整templateclass T。