欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    2021年辽宁省大连市全国计算机等级考试C++语言程序设计测试卷(含答案).docx

    • 资源ID:965079       资源大小:60.11KB        全文页数:41页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2021年辽宁省大连市全国计算机等级考试C++语言程序设计测试卷(含答案).docx

    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中的±-''和“尸是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为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 .有如下程序;#include<iostream>usingnamespacestd;classDAintk;public:DA(intx=l):k(x)-DA()cout<<k;intmain()DAd=DA(3),DA(3),DA(3);DA*p=newDA12J;deleteJp;return();这个程序的输出结果是()。A.lllB.333C.11333D.111337 .下列叙述中正确的是()。A.一个逻辑数据结构只能有一种存储结构8 .数据的逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率9 .在C+语言中,封装是借助于什么达到的?A.结构B.类C.数组D.函数9,设有定义:Classpersonintnum;charname10;public:voidinit(intn,char*m);.;personstd30则以下叙述不正确的是A.std是一个含有30个元素的对象数组B.std数组中的每个元素都是person类的对象C.std数组中的每个元素都有自己的私有变量num和nameD.std数组中的每个元素都有各自的成员函数init10 .以下哪个特征不是面向对象思想中的主要特征()。A.多态B.继承C.封装D.垃圾回收二、单选题(13题)11 .对于拷贝构造函数和赋值操作的关系,正确的是A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化D.拷贝构造函数和赋值操作不能在同一个类中被同时定义12. 一个类的友元函数能够访问该类的oA.私有成员B.保护成员C.公有成员D.所有成员13 .开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作A.软件投机B.软件危机C.软件工程D.软件产生14 .下面关于类和对象的描述中,错误的是()。A.类就是C语言中的结构体类型,对象就是C语言中的结构体变量B.类和对象之间的关系是抽象和具体的关系C.对象是类的实例,一个对象必须属于一个已知的类D.类是具有共同行为的若干对象的统一描述体15 .设有两个字符串P和q,求q在P中首次出现位置的运算称为()OA.A.连接B.模式匹配C.求子串D.求串长16 .下面描述中错误的是()。A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具17 .对于一个类定义,下列叙述中错误的是A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数。C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数。D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数。18 .设栈S的初始状态为空。元素a,b,c,d,ejf依次通过栈S,若出栈的顺序为b,d,c,f,e,a,则栈S的容量至少应该为A.3B.4C.5D.619 .在一个派生类的成员函数中,试图调用其基类的成员函数“void出);",但无法通过编译。这说明()oA.f()是基类的私有成员B.f()是基类的保护成员C.派生类的继承方式为私有D.派生类的继承方式为保护20 .以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是OoA.ofstreammyfile;mynle.open(fcd:ofile.txt'');B.ofstream*mynle=newofstream;mynle->open(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 .有如下程序:#include<iostream.h>Usingnamespacestd;ClassDemo(public:Demo()cout<<defaultconstructorn;Demo(constDemo&x)cont<<,copyconstruc-torn,1;;DemouserCode(Demob)Democ(b);returnC;intmain()(Demoa;d;cout<<callinguserCode()n”;d=userCode(a):returnO;)执行上面程序的过程中,构造函数Demo()和Demo(ConStDemO&x)被调用的次数分别是()。A.1和1B.1和2C.2和3D.2和4三、2.填空题(12题)24 .哈夫曼树是【】。25 .有以下程序:#include<iostream>usingnamespacestd;classBase(public:Base()(K=O;)intx;);classDerivedl:virtualpublicBase(public:Derivedl()(x=10;);classDerived2:virtualpublicBase26 .已知数组a中有n个元素,下列语句将数组a中从下标xl开始的k个元素移动到从下标x2开始的k个元素中,其中0<=xl<x2<n,x2+k<nt请将下列语句补充完整。for(inti=xl+k1;i>=xl;i)a=ai;27 .软件开发环境是全面支持软件开发全过程的集合。28 .继承的方式有公有继承、私有继承和【】3种。29 .软件测试的目的是尽可能发现软件中错误,通常【】是在代码编写阶段可进行的测试,它是整个测试工作的基础。30 .派生类的成员一般分为两部分,一部分是【】,另一部分是自己定义的新成员。31 .是数据库设计的核心。32 .以下程序的执行结果是o#include<iostream.h>classA(inta:public:voidseta(intx)a=x;voidshowa()cout<<a<<endl;);classBintb;public:voidsetb(intx)b=x;voidshowb()cout<<b<<end1;);33 .通过使用new和delete两个运算符进行的分配为【】存储分配。34 .假设inta=l,b=2;则表达式a+-b的值为【】。35 .多态性分为两类:编译时的多态性和【】的多态性。四、程序改错题(10题)36 .使用VC+6.。打开考生文件夹下的源程序文件1cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*e*or*的下面。试题程序:#include<iostream.h>voidmaininti=O;charstr12O;cout<<Enterastringendwith?.',<<endl;/*error*cin.getline(str,120);/*error*while(str)(/*error*if(stri)=a)stri=stri-a+A;i÷÷)cout<<str<<endl;return;)37 .使用VC+6.。打开考生文件夹下的源程序文件Lcpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*e*or*的下面。试题程序:#include<iostream.h)intmain(try(throw(error");)II*error*catch(chars)(cout<<s<<endl;)try(throw(int)0);)II*error*catch(cout<<i<<endl;)try(throw(O);throw("error);)/*error*catchreturnO;38 .使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/*eor*的下面。试题程序:#include<iostream.h>classTC(public:TC(inti)(numbe=i;)voidSetNumber(intm)(number=m;)intGetNumberconst(returnnumber;)VoidPrintconstcout<<number=<<number<<endl;private:intnumber;);voidmain(!1*e*or*TCobjl;objl.Print;TCobj2(3);II*e*or*objl.number=10;II*ejor*TC.SetNumber(100);objl.Print;obj2.Print;)39 .使用VC+6.。打开考生文件夹下的源程序文件1cpp,该程序运行有问题,请改正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(I/*error*TCobjhobjl.Print;TCobj2(3);!*error*objl.number=10;/*error*%()*TC.SetNumber(l00);objl.Print;obj2.Print;40 .使用VC+6.。打开考生文件夹下的源程序文件1.cpp,但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果正确。程序输出:注意:错误的语句在/*eor*/的下面。修改该语句即可,其他的语句不能修改。试题程序:#include(iostream.h>classCOpublic:!*error*/Staticintn=O:COn+:COn-:!*error*/intCO:n;voidmainCOobj;COobj27;CO*C=NULL:c=&obj:!*error*/eout<<C.n<<endl;cout<<CO::n<<endl;41 .使用VC+6.。打开考生文件夹下的源程序文件1cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*eror*的下面。试题程序:#include<iostream.h)intmain(try(throw("error");)I/*error*catch(chars)(cout<<s<<endl;)try(throw(int)0);)I/*error*catch(cout<<i<<endl;)try(throw(O);throw(error");/*error*catch(cout<<',ERROR<<endl;)returnO;42 .使用VC+6.O打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在II*error*8j。试题程序:#include<iostream>#include<fstream>II*error*usingstd;voidWriteFile(char*s)(Ofstreamoutl;II*error*outl.open(,'1.txt",binaryapp);for(inti=0;si!=0;i+)II*error*outl.puts(si);)outl.close;)VoidClearFile(Ofstreamoutl;outl.open(,'1.txt");outl.close;)intmain(chars1024;ClearFile;cout<<"pleaseinputastrin9:"<<endl;cin.getline(s,1024);WriteFile(三);returnO;)43.使用VC+6.。打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意:错误的语句在/*error*的下面,修改该语句即可。试题程序:#include(iostream.h)classTCinti;public:TC;voiddisplay;TC;1I*e*ror*TC:TCcout<<,Constructor"<<,ni=0;!*error*TC:displaytout<<"i="<<i<<n,<<endh!*error*TC:TCCOUI<<"Destructor"<<endl:voidmain(TCa;a.display;44.使用VC+6O打开考生文件夹下的源程序文件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)!*/1+:04.print;)cout<<endl;retum;)45.使用VC+6.。打开考生文件夹下的源程序文件1cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在/*ero*的下面,修改该语句即可。试题程序:#include<iostream.h>II*error*voidmain(/*error*intm=0142:/*error*intn=0X27:intq=32;cout<<m<<endl;cout<<n<<endl;cout<<q<<endl;return;)五、综合应用题(2题)46.使用VC+6.。打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。每卖出一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整。(1)定义类TCFruit的私有静态数据成员float型变量AllWeight和int型变量AnN0,请在注释1后添加适当的语句。(2)完成类TCFruit的带一个float型变量W的构造函数,并把这个W加到AIIWeight中,并且AnNO自加。请在注释2后添加适当的语句。(3)在析构函数中,在AlIWeight中减去Weigh3然后AnNO自减,请在注释3后添加适当的语句。(4)完成静态成员变量的初始化为0,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:#include(iostream.h>ClassTCFruit(private:AoatWeight;StaticintAllNo;public:TCFruit(floatw)(AllWeight+=w:AllNo+:)TCFruit(AllWeight-=Weight:voiddisplaycout<<SellaFruitwith<<Weight<<<,k9<<endl;cout<<,Allsellnumber:<<AllNo<<endl;cout<<Allsellweight:<<AllWeight<<k9"<<endl<<endl;);/*4*AoatTCFruit::AllWeight=O.0;intmain(TCFruitFruitl(l.2);Fruitl.display;TCFruitFruit2(2.3);Fruit2.display;returnO;)47.使用VC+6.。打开考生文件夹下的源程序文件3.cpp。类People包括姓名和年龄两个字段。函数fun获得年龄比较大的人的姓名,然后输出这个姓名到屏幕。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。(1)完成类的构造函数功能,请在注释1后添加适当的语句。(2)完成构造函数对姓名的赋值,请在注释2后添加适当的语句。定义类的友元函数fun,请在注释3后添加适当的语句。(4)补充函数fun的年龄比较功能,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:include<iostream.h>ClassPeople(public:(inti;for(i=0:sUserNamei!=O;i÷÷)m_UserNamei=sUserNamei;)m_Old=nOld;)private:charm_UserName32;intmOld;;voidfun(char*s,People&personl,People&person2(/I*4*if(for(inti=0;personl.m_UserNamei!=0;i÷+)(si=personl.m_UserNamei;si+l=0;)else(for(inti=O;person2.m_UserNamei!=0;i+)si=person2.m_UserNamei;si+l=0;)voidmain(chars32;Peoplepl(',abc",20);Peoplep2("def,30):fun(S,pl,p2);cout<<s<<endl:return;)六、3.综合应用题(2题)48.使用VC6打开考生文件夹下的工程test20_3,此工程包含一个源程序文件tes00_3.cpp,其中定义了用于表示复数的类ComP,但类comp的定义并不完整。请按要求完成下列操作,将类COmP的定义补充完整。定义COmP的构造函数,函数含参数X和y,它们都是in,型的数据,默认值都为0,请使用参数列表的形式分别将类数据成员a和b初始化X和y的值。请在注释“*1*”之后添加适当的语句。完成类ComP的成员函数input(intx,inty)的定义,将int型的参数X和y分别赋值给数据成员s和b,请在注释“*2*»之后添加适当的语句;完成类COmP的友元函数friendcompplus(comp&x,comp&y)的定义,该函数首先要定义一个comp类的对象C,然后将参数X和y的数据成员a与b分别相加并分别赋值给C的成员a和b,最后返回C的值,请在注释“*3*,之后添加适当的语句。输出结果如下:10÷20i2+3iresult:12+23i注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test20_3.cpp清单如下:#include<iostream.h>classcomp(inta;intb;public:*friendcompplus(comp&x,comp&y);voidinput(intx,inty)()voidoutput()(COUt<<a<<,+,<<b<<ni"<<endl;compplus(comp&x,comp&y)(c.b=x.b+y.b;returnc;)voidmain()(compx(10,20),y,z;y.input(2,3);z=plus(x,y);x.output();y.output();cout<<"result:";z.output();49.使用VC6打开考生文件夹下的工程MyProj10。此工程包含一个源程序文件MyMainlO.cpp°程序中定义了两个类BaSe和DeriVed,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:类Derived是基类Base公有派生来的。请在注释“/*1*之后添加适当的语句。完成构造函数Derived(inti)定义,采用初始化列表的方式使基类Base私有成员a初始化为i+1,类Derived的私有成员b初始化为io请在注释“*2*”之后添加适当的语句。完成类Derived的成员函数ShoWO的类体外的定义。函数ShOW()中要显式调用基类的ShOW()函数,然后要输出私有成员b的值。请在注释“*3*”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMainIOCPP清单如下:/MyMainlOxpp#include<iostream>usingnamespacestd;classBase(public:Base(intx)(a=x)voidshow()(cout<<a;)private:inta;*public:*2*voidshow();private:intb;);voidDerived:show()(*3*)intmain()(Derivedd(l),*pb;pb=&d;pb->show();return0;)参考答案1.A2A解析:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词Static0本题程序中把成员函数Change()定义成静态成员函数。由于静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员(因为非静态数据成员只有对象存在时才有意义)。所以类的数据成员X和y也必须定义成静态数据成员。3.B解析:本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且cl、c2都是该类的对象,则cl.operator+(c2)与cl+c2含义相同。如果+作为该类的非成员函数重载,则OPeratOr+(cl,c2)与cl+c2含义相同。同理,运算符“尸作为友元函数重载,则G-X)/y与表达式OPeratOr/(-x),y)相同。前缀运算符作为友元函数重载,则-X与OPeratOr-(X)相同,所以组合起来是OPeratOr/(oPerator-(X),y);,即B选项。4.B解析:栈既能顺序存储,又能链式存储。5 .C解析:线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表(LaStInFirStOut);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表(FirStInFirstOut)o6 .C解析:此题考查的是析构函数和对象的生存期。在主函数中,首先定义了一个DA类对象数组d,从初始化列表中可以看出,它包含3个对象;然后通过new运算符动态创建了一个DA类的对象数组,并将首地址赋给DA类指针p;接着通过delete。运算符销毁指针P所指向的数组,故此时会输出“11”。最后函数结束,销毁前面定义的对象数组d,会输出“333”。故最后的输出结果是11333。7 .D解析:数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和在此集合中定义的若干关系来表示。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。但是不同的存储结构的数据的处理效率不同。8.B解析:C+基本的性质就是它的封装性,而封装性主要是靠类来实现的。9.D解析:首先,Std是对象数蛆,里面有30个对象,每个对象都有自己的私有数据成员,由于成员函数是公有的,在内存中存在一份即可,各个对象都可以使用。10D解析:面向对象语言的基本特性是封装,继承和多态。注意:垃圾回收是JaVa的主要特点。注意:要掌握面向对象的优点。1LC解析:在赋值操作中,将发生对象的拷贝操作,但并不说明两者是完全一样的.一般情况下,如果绐类定义了赋值操作符,则应该同时定义合适的拷贝构造函数,除非系统默认生成的拷贝构造函数满足赋值操作。实际上,系统默认的拷贝构造函数仅仅将数据成员进行简单的对应赋值,而在多数特殊应用中,这么简单的对应关系是不适用的,这就需要程序员重新定义拷贝构造函数。12.D解析:一个类的友元函数对类成员的访问能力等同于类的成员函数,即能访问类的所有成员。13.B解析:软件工程概念的出现源自软件危机。所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。总之,可以将软件危机归结为成本、质量、生产率等问题。14.A解析:在C+语言中,类和结构体有本质区别,类中包含数据及操作函数,而结构体只包含有数据。15.BBo【解析】字串的定位操作通常称为串的模式匹配,是各种串处理系统中最重要的操作之一。16.A详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A错误。17.B解析:本题考查的知识点是:构造函数。如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生成缺省构造函数了。故本题应该选择Bo18.A解析:根据题中给定的条件,可以作如下的模拟操作:元素a,b进栈,栈中有2个元素,分别为a,b;元素b出栈后,元素c,d进栈,栈中有3个元素,分别为a,c,d;元素d,C出栈后,元素e,f进栈,栈中有3个元素,分别为a,e,f;最后,元素f,e,a出栈,栈为空。可以看出,进栈的顺序为a,b1c,d,e,f,出栈的顺序为b,d,c,f,e,a,满足题目要求。每次进栈操作后,栈中最多有3个元素,所以,为了顺利完成这些操作,栈的容量应至少为3。本题的正确答案为Ao19.A解析:此题考查的是派生类对基类成员的访问。基类的成员有公有保护和私有3种访问属性:类的继承方式也有公有继承、保护继承和私有继承3种。无论哪种继承方式,派生类中的成员都不能访问基类中的私有成员,但可以访问基类中的公有成员和保护成员。20 .D解析:本题考查文件对象的创建方法。可以直接定义文件对象,也可以用new来动态生成。很明显,选项D中使用new的方式是错误的。21 .A22 .DD。【解析】使用ifstream流类定义流对象并打开磁盘文件时,文件没有默认的打开方式。其中ios:in是为输入而打开;iso:out是为输出而打开。23 .CCo【解析】函数DemO为构造函数,而DemO(COnStDemo&x)为复制构造函数。C+在创建一个对象时,会自动调用类的构造函数,所以语句“Demoa,d;”将调用函数DemO2次。当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数;在函数返回一个对象时调用拷贝构造函数。由此可知语句d=userCode(a);调用拷贝构造函数3次。24 .带权路径长度最小的二叉树带权路径长度最小的二叉树解析:哈夫曼树是带权路径长度最小的二叉树,又称最优二叉树。25 .20o20o解析:本题中,虽然DeriVedl和DeriVed2由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员X只存在一份拷贝,不论在类DeriVedl中修改,还是在类DeriVed2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derivedobi;”时,就会先调用虚基类Base的构造函数,使得x=0,然后执行类Derivedl的构造函数使得x=10,再执行类DeriVed2的构造函数,使得x=20°最后输出X的值为20o26.x2+i27 .软件工具软件工具解析:软件开发环境或称软件工程环境是全而支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。28 .保护继承保护继承解析:继承性是面向对象程序设计中最重要的机制,用户可以根据不同的需要选择3种不同的继承方式。29 .单元测试单元测试解析:单元测试集中对源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。30 .从基类继承的成员从基类继承的成员解析:派生类的成员由继承的成员和自己定义的成员组成。31 .数据模型数据模型解析数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。32.1333.动态动态解析:本题考查的是对动态分配内存的掌握,在C+语言中,使用关键字HeW和delet

    注意事项

    本文(2021年辽宁省大连市全国计算机等级考试C++语言程序设计测试卷(含答案).docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开