《2021年辽宁省大连市全国计算机等级考试C++语言程序设计测试卷(含答案).docx》由会员分享,可在线阅读,更多相关《2021年辽宁省大连市全国计算机等级考试C++语言程序设计测试卷(含答案).docx(41页珍藏版)》请在优知文库上搜索。
1、2021年辽宁省大连市全国计算机等级考试C+语言程序设计测试卷(含答案)学校:班级:姓名:考号:一、L选择题(10题)1.()既可重载为一元运算符,又可重载为二元运算符。A,“*,B.=C.=”和“*D.“*”和*+”2 .有如下类的定义。那么空格处的语句是()。classMyClassintxjy;public:MyClass(intxl=0,intyl=O)x=xl;y=yl;staticvoidchange()x+=10;y+=10;A.staticB.constC.privateD.不需要填入内容3 .如果表达式-y中的-和“尸是作为友元函数重载的运算符,采用运算符函数调用格式,该表达
2、式还可以表示为A.operator/(x.operator-(),y);B.operator/(operator-(x),y);C.x.operator-().Operator/(y);D.y.operator/(operator-(x);4 .下列关于栈的描述,错误的是()。A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针5 .以下数据结构中不属于线性数据结构的是oA.队列B.线性表C二叉树D.栈6 .有如下程序;#includeusingnamespacestd;classDAintk;public:DA(intx=l):k(x)-
3、DA()coutopen(ud:Ofile.txf,);C.ofstreammyhle(ud:ofle.txf,);D.ofstream*mynle=new(d:ofile.txf,);21 .下列对字符数组进行初始化中,()是正确的。A.charsl=,abcd;B.chars23=,xyz;C.chars3=a,xy);D.chars423=,xyz,mnp,);22 .使用ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为()oA.ios:inB.ios:outC.ios:inlios:outA没有默认23 .有如下程序:#includeUsingnamespacest
4、d;ClassDemo(public:Demo()coutdefaultconstructorn;Demo(constDemo&x)cont,copyconstruc-torn,1;;DemouserCode(Demob)Democ(b);returnC;intmain()(Demoa;d;coutcallinguserCode()n”;d=userCode(a):returnO;)执行上面程序的过程中,构造函数Demo()和Demo(ConStDemO&x)被调用的次数分别是()。A.1和1B.1和2C.2和3D.2和4三、2.填空题(12题)24 .哈夫曼树是【】。25 .有以下程序:#i
5、ncludeusingnamespacestd;classBase(public:Base()(K=O;)intx;);classDerivedl:virtualpublicBase(public:Derivedl()(x=10;);classDerived2:virtualpublicBase26 .已知数组a中有n个元素,下列语句将数组a中从下标xl开始的k个元素移动到从下标x2开始的k个元素中,其中0=xlx2n,x2+k=xl;i)a=ai;27 .软件开发环境是全面支持软件开发全过程的集合。28 .继承的方式有公有继承、私有继承和【】3种。29 .软件测试的目的是尽可能发现软件中错误
6、,通常【】是在代码编写阶段可进行的测试,它是整个测试工作的基础。30 .派生类的成员一般分为两部分,一部分是【】,另一部分是自己定义的新成员。31 .是数据库设计的核心。32 .以下程序的执行结果是o#includeclassA(inta:public:voidseta(intx)a=x;voidshowa()coutaendl;);classBintb;public:voidsetb(intx)b=x;voidshowb()coutbend1;);33 .通过使用new和delete两个运算符进行的分配为【】存储分配。34 .假设inta=l,b=2;则表达式a+-b的值为【】。35 .多态
7、性分为两类:编译时的多态性和【】的多态性。四、程序改错题(10题)36 .使用VC+6.。打开考生文件夹下的源程序文件1cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*e*or*的下面。试题程序:#includevoidmaininti=O;charstr12O;coutEnterastringendwith?.,endl;/*error*cin.getline(str,120);/*error*while(st
8、r)(/*error*if(stri)=a)stri=stri-a+A;i;)coutstrendl;return;)37 .使用VC+6.。打开考生文件夹下的源程序文件Lcpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*e*or*的下面。试题程序:#includeiostream.h)intmain(try(throw(error);)II*error*catch(chars)(coutsendl;)try(throw(int)0);)II*error*catch(coutiendl;)try(throw(O);throw(error);)/*error*catchreturnO;38 .使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/*eor*的下面。试题程序:#includeclassTC(public:TC(inti)(numbe=i;)voidSetNumber(intm)