2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx

上传人:夺命阿水 文档编号:965107 上传时间:2024-02-04 格式:DOCX 页数:40 大小:70.15KB
返回 下载 相关 举报
2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx_第1页
第1页 / 共40页
2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx_第2页
第2页 / 共40页
2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx_第3页
第3页 / 共40页
2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx_第4页
第4页 / 共40页
2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx》由会员分享,可在线阅读,更多相关《2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx(40页珍藏版)》请在课桌文档上搜索。

1、2021年辽宁省抚顺市全国计算机等级考试C+语言程序设计模拟考试(含答案)学校:班级:姓名:考号:一、L选择题(10题)1 .有以下程序:#includeusingnamespacestd;classsampleprivate:intx;public:sample(intA)x=a;frienddoublesquare(samples););doublesquare(samples)returnS.X*S.K;intmain()saA.20B.30C.900D.4002 .C+语言中标点符号中表示一条预处理命令开始的是A.#B.;C.*D.3 .下列运算符中,*运算符在C+中不能重载()。A.

2、?B.+C.-D.=4 .下面关于数组的初始化正确的是()。ACharStr=a,b,C,B.charstr2=4a,jb,cC.charstr23:4a,jb,c,C)e,TD.charstr():4a,jb,c,5 .()既可重载为一元运算符,又可重载为二元运算符。A,“*,B.=“C=“和*D.*和*+”6 .若有以下程序段:inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);couta,nb,cendl;其输出结果是A.3,0,-10B.0,0,5C.-10,3,-10D.3,0,3已知n一个Int型变量,下列语句中错误的是A) long*p=newlongn;B)

3、 longpn;C) long*p=newlong(n)?7 .D)longd10?8 .假定MyClaSS为一个类,则该类的拷贝构造函数的声明语句为()。A.MyClass&(MyClassx);B.MyClass(MyClassx)C.MyClass(MyClass&x);D.MyClass(MyClass*x)9 .下列关于虚基类的描述,错误的是()oA.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数10 .按照标识

4、符的要求,下列选项中,()符号不能组成标识符。A.连接符B.下划线C.大小写字母D.数字字符二、单选题(13题)11 .字符串常量hello”的字符个数是()。A.3B.4C.5D.612 .当调用函数时,实参是一个数组名,则向函数传送的是oA.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值13 .在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。A.外模式B.内模式C.概念模式D.逻辑模式14 .下列语句中错误的是()。A.Constinta;B.Constinta=10;C.Constint*point=0;D.Constint*point=newi

5、nt(10);15 .如果表达式“-X/y”中的和/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为()。A.operator/(X.operator-(),y);B.operator/(operator-(x),y);C.X.operator-().operator/(y);D.y.operator/operator-(x);16 .类MyClass的定义如下:classMyClasspublic:MyClass()MyClass(inti)value=newint(i);int*value;若要对value赋值,则下面语句正确的是()。A.MyClassmy;my

6、.value=10;B.MyClassmy;*my;*ValUe=Io;C.MyClassmy;my.*value=10;D.MyClassmy(10);17 .有如下程序:#includeusingnamespacestd;classPairintm;intn;public:Pair(inti,intJ):m(i),n(J)booloperator(PairP)const;/需在类体外给出定义;intmain()Pairpl(3,4),p2(4,3),p3(4,5);COUtp2)p1)p3)p2);return0;)运算符函数OPerator功能是比较两个Pair对象的大小,当左边对象大时

7、,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n.n大者为大。程序输出0101,下列对运算符重载函数的正确定义是A.boolPair:operator(PairP)constif(m!=P.m)retummP.m;returnnP.n;)B.boolPair:operator(PairP)if(m!=P.m)returnmP.m;returnnP.n;)C.boolPair:operator(PairP)constif(mP.m)retumtrue;return11P.n;)D.boolPair:operator(PairP)if(mP.m)r

8、eturntrue;return11P.n;18 .下面描述中体现了抽象类特性的语句是A.可以说明虚函数B.可以进行构造函数重载C.可以定义友元函数D.不能定义对象19 .算法的空间复杂度是指()。A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数20 .下面关于C+流的叙述中,正确的是()。A.cin是一个输入流对象B.可以用ifstream定义一个输出流对象C.执行语句序列Char*y=PQMN”;COUty;将输出字符串PQMN的地址D.执行语句序列CharX80;Cin.getline(x,80);时

9、,若输入Happynewyearj则X中的字符串是“Happy”21 .下面程序的运行结果为#includeVoidswap(int&a,intb)inttemp;temp=a+;a=b;b=temp;voidmain()inta=2,b=3;swap(a,b);couta,lbendlA.2,3B.3l2C.2,2D.3,322 .有如下程序;#includeusingnamespacestd;classBasepublic:voidoutput()cout1;virtualvoidPrint()cout,B;);classDerived:publicBasepublic:voidoutpu

10、t()cout2;voidPrint()coutoutput();ptr-Print();deleteptr;return0;)程序的输出结果是A.1BB.1DC.2BD.2D23 .表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是A.showbase()和eof()B.shoWpoint()和eof()C.showpoint()和bad()D.showpoint()和good()三、2.填空题(12题)24 .有下列程序:#includeusingnamespacestd;classONE(public:virtualvoidf()COUt,;);classTWO:publicO

11、NE(public:TW0()coutW;);classTHREErpublicTWO(pub25 .如果一个数组中的每个元素都是同一类的对象,则该数组被称为【】。26 .软件开发环境是全面支持软件开发全过程的集合。27 .一棵二叉树第八层(根结点为第一层)的结点数最多为【】个。28 .数据结构分为线性结构和非线性结构,其中循环链表属于【】。29 .软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于期。30 .数据库系统的主要特点为数据集成性、数据的高和低冗余性、数据独立性和数据统一管理和控制。31 .模块的独立程度可以由两

12、个定性标准度量。其中,是度量一个模块功能强度的一个相对指标。32 .以下程序的执行结果是#includeclassA(public:virtualvoidfunl()coutnAfunlendl;virtualvoidfun2()coutAfun2endl;voidfun3()cout,Afun3,endl:)voidfun4()cout,Afun4nendl:33 .数据的逻辑结构是从逻辑关系上描述数据,它与数据的【】结构无关。34 .请将下列程序补充完整,使得输出结果为bbaa。#includeusingnamespacestd;classApublic:coutaa;);classBrp

13、ublicApublic:-B()coutnbbn;);intmain()B*p=newB;deletep;return0;35 .在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。四、程序改错题(10题)36 .使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#includeclassTC(public:TC(inti)(number=i;)

14、voidSetNumber(intm)(number=m;)intGetNumberconst(returnnumber;VoidPrintconstcoutnumber=,numberendl;private:intnumber;);voidmain(II*e*or*TCobjl;objl.Print;TCobj2(3);II*e*or*objl.number=10;II*ej*j*or*TC.SetNumber(100);objl.Print;obj2.Print;)37 .使用VC+6.。打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,

15、字符可能输入多行,当输入字符时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*e*or*的下面。试题程序:includevoidmain(inti=O;charstr120;coutEnterastringendwith?.endl;/*error*cin.getline(str,120);/*error*while(str)(/*error*if(stri)=a)stri=stri-a+A;i;)coutstrclassCO(public:Staticintn=O:CO(n+:)CO):!*error*IintC

16、O:n;voidmainCOobj;COobj27;CO*C=NULL:c=&obj:I*error*/eoutC.nendl;coutCO::nendl;)39 .使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意:错误的语句在/*error*的下面,修改该语句即可。试题程序:#include(iostream.h)classTC(inti;public:TC;voiddisplay;-TC;II*error*TC:TC(coutnConstructornn,n;i=

17、0;)II*error*TC:display(tout,i=in,endl;)II*error*TC:TC(COUI,Destructorendl:)voidmain(TCa;a.display;)40 .使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在*error*卜试题程序:#include#include!1*e*or*usingstd;voidWriteFile(char*s)(Ofst

18、reamoutl;II*e*or*outl.open(1.txt,binaryapp);for(inti=0;si!=O;i+)(Ii*ej*por*outl.puts(si);)outl.close;)VoidClearFile(Ofstreamoutl;outl.open(ul.txt);outl.close;)intmainchars1024;ClearFile;coutpleaseinputastrin9:,endl;cin.getline(s,1024);WriteFile(s);return;)41 .使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改

19、正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#includeiostream.h)intmain(try(throw(error);)I/*error*catch(chars)coutsendl;try(throw(int)0);)I/*error*catch(coutiendh)try(throw(O);throw(error);)II*error*catch(coutERROR,endl;)returnO;

20、)42 .使用VC+6.0打开考生文件夹下的源程序文件1.cppo本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*erro*的下面。试题程序:#includevoidmain(inti=O;charstrl120J;coutEnterastringendwith?.,endl;!1*e*0r*cin.getline(str,120);!1*e*0r*while(str)!1*e*0r*if(stri)=a)stri=strij

21、-a+A;1+;)coutstrendl;return;43 .使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#includeiostream.h)intmain(try(throw(error);)I/*error*catch(chars)(coutsendl;)try(throw(int)0);)I/*error*catch(co

22、utiendh)try(throw(O);throw(error);I/*error*catch(coutERRORendl;)returnO;)44 .使用VC+6.。打开考生文件夹下的源程序文件1cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在/*ero*的下面,修改该语句即可。试题程序:#includeI/*error*voidmain(I/*error*intm=0142:I/*error*intn=0X27:intq=32;coutmendl;coutnendl;coutqendl;return;45 .使用VC+6.。打开考生文件夹下

23、的源程序文件1cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/*e*or*的下面。试题程序:#includeclassTC(public:TC(inti)(number=i;)voidSetNumber(intm)(number=m;)intGetNumberconstreturnnumber;VoidPrintconstcoutnumber=numberendh)private:intnumber;voidmain(I/*error

24、*TCobjhobjl.Print;TCobj2(3);I/*error*objl.number=10;/*errc)r*%0*TC.SetNumber(l00);objl.Print;obj2.Print;五、综合应用题(2题)46.请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeePCoPy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数Operator=,以实现深层复制。要求:“*666*之间o不得修改程序的其他部分。注意:程序最后将结果输出到文件out.dat中。输出函数WriteToFiIe已经编译为Obj文件,并且在本程序中调用。/

25、CDeepCopy.h#include#includeusingnamespacestd;classCDeepCopy(public:intn;动态数组的元素个数int*p;动态数组首地址CDeepCopy(int);CDeepCopy;CDeepCopy&operator=(constCDeepCopy&r);赋值运算符函数;voidwriteToFile(char);/main,cppinclude,CDeepCopy.hCDeepCopy::一CDeepCopydeleteP;CDeepCopy::CDeepCopy(intk)n=k:p=newintn;构造函数实现CDeepCopy&

26、CDeepCopy:Operator=(constCDeePCoPy&r)赋值运算符函数实现5*义叱叱*333*义*666*)intmain(CDeepCopya(2),d(3);a.pO=l;d.pO=666;对象a,d数组元素的赋值(CDeepCopyb(3);调用赋值运算符函数a.pO=88;b=a;coutb.pO;显示内层局部对象的数组元素)coutd.pO;显示d数组元素apO的值cout,dfadeaway;n”;couta.pO;/显示a数组元素a.pO的值WriteToFiIe();return0;47 .使用VC+6.。打开源程序文件3.cpp。其中类TC用于把文件输出到屏

27、幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将in.txt文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件OUtLtXt和out2.txt中。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。(1)从输入文件中获得一个字符,并判断是否到文件结尾,如果到文件结尾,则退出循环。请在注释1后添加适当的语句。把获得的输入文件的内容存储到bur中,并且用Ien记录下文件的长度。请在注释2后添加适当的语句。将输入文件的后一半内容存储在第二个文件中,请在注释3后添加适当的语句。使用文件流对象打开输入文件in.txt,请在

28、注释4后添加适当的语句。注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。试题程序:include#includeincludestdlib.h)classTCpublic:TC(char*fileName)(Ien=O;fstreaminfile;infile.open(fileName,ios:in);charch;while(coutch;)infile,close;)voidsplit(fstreamoutfilel;fstreamoutfile2;OUtfilel.open(outl.txt,ios:out);outfile2.open(out2.txt,

29、ios:out);inti=O:for(i=0;ilen/2;i+)do)while(i!=len);OUtfilel.close;outfile2.close;)prwate:intlen;charbuf1024:;voidmain(/*4*TCobj;obj.split;return;)六、3.综合应用题(2题)48 .使用VC6打开考生文件夹下的工程test35.3o此工程包含一个test35.3.cpp,其中定义了时钟类Ck)Ck,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。定义类clock的私有数据成员hour和minute,它们都是int型的数据。请在注释“*1*”

30、之后添加适当的语句。(2)补充完全类clock的构造函数,私有数据成员hour和minute分别初始化为参数h和m的值,请在注释“/*2*之后添加适当的语句。完成类clock的成员函数printtime.的定义,该函数以“Nowthetimeishour:minute”的格式输出数据成员hour和minute的值,如hour=3xminute=59,则输出为“Nowthetimeis03:59”,请在注释“/*3*”之后添加适当的语句。完成类clock的成员函数addoneminutetime的定义该函数可将clock类对象表示的时间加一分钟,如现在hour=3、minute=59,运行该函数

31、后hour=4、minute=0o请在注释“*4*之后添加适当的语句。程序的输出结果如下:Now,thetimeis12:59Now,thetimeis13:00注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test35_3.cpp清单如下:#includeclassclock(private:/*j*public:clock(inth,intm)intpresenthour()returnhour;intpresentminute()returnminute;voidaddoneminutetime();voidprinttime(););voidclock:pnnt

32、time()(if(hour10)cout,0,;H*3*if(minute10)cout,0;coutminute59)(*4*( minute-=60;hour+;)if(hour23)hour=0;)voidmain()(clockc(12,59);c.printtime();c.addoneminutetime();c.printtime();)49 .使用VC6打开考生文件夹下的工程MyPrOj14。此工程包含一个源程序文件MyMain14.cpp,程序中定义了3个类A、B和C,但类的定义并不完整。请按要求完成下列操作,将类的定义补充完成:类A的成员函数setx(inti,intj)

33、是虚函数,其实现的功能是将类A的保护成员X和y分别设置成i和j并且y具有默认值O0请在注释“*1*之后添加适当的语句。将类A的成员函数Print()声明成员纯虚函数。请在注释“*2*”之后添加适当的语句。完成类A的保护数据成员X和y的定义,它们都是整型变量。请在注释“*3*”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain14.叩P清单如下:/MyMain14.cpp#includeusingnamespacestd;classA(public:*2*protected:*3*);classB:publicA(public:voidprin

34、t()(COUtx*xn,n;classC:publicA(public:voidprint()coutx*x*xsetx(5);pa-print();pa=&c;pa-setx(2);pa-print();returnO;参考答案l.c解析:本题考查友元函数的应用。程序中函数square是类sample的一个友元函数,它可以直接访问类Sam-Pie的所有成员。它的功能是返回类sample的私有数据成员X的平方。所以程序的执行结果是900o2.A解析:C+语言中预处理语句的开始符号是#。3 .A4 .A解析:本题考查的是字符数组的初始化。选项B中用3个元素初始化大小为2的数组,越界了;选项C中

35、应该是2行3列的数组,题中使用3行2列初始化,选项D中数组合后应用方括号。5 .A6.B解析:本题考察逗号表达式的使用规则。只要考生能将表达式正确展开,逐步分析,就可获得正确答案为B。7.B解析:对数组定义为普通数组时,要求数组的下标是常表达式,若定义成数组指针则不需要指定数组的大小。8C解析:本题考核拷贝构造函数的概念。声明拷贝构造函数的格式为:类名:拷贝构造函数(const类名&引用名);,其中const是修饰符可,以省略。9.BBo【解析】虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数先于非虚基类的构造函

36、数执行。10.A【解析】此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过31个字符:标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。11.D解析:本题考核的是字符串常量这个知识点。字符串常量实际上是一个数组,组成数据的字符除显式给出的外,还包括字符结尾处标识字符串结束的符号0。所以字符串的字符个数等于字符个数加1,C+语言编译器会自动在字符串的末尾加上0,作为字符串结束标识。故本题答案选项是:D012.B解析:当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址,

37、函数中的形参可定义成以下三种形式:形参定义成数组;形参定义成可变长数组:形参定义为指针变量。13.B数据库有三层模式结构,逻辑模式是数据的全局逻辑结构的描述,外模式也称为子模式,是局部数据的逻辑结构描述,而内模式也称为存储模式,是数据库物理存储结构和存取方法的描述。14.ACOnSt是一个c+语言的关键字,它限定一个变量不允许被改变。使用COnSt在一定程度上可以提高程序的安全性和可靠性。限定符声明变量照能被读,必须初始化。A选项没有初始化,B、C、D选项都正确。15.BBo【解析】本题考查运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且cl、c2都是该类的对象,贝卜CLope

38、rator+(c2)”,与“cl+c2”含义相同。如果+作为该类的非成员函数重载,则operator+(cl,c2)”与“cl+c2”含义相同。同理,运算符作为友元函数重载,则(-X)/y”与表达式“operator/(Gx),y)”相同。前缀运算符“作为友元函数重载,则与OPeratOr(x)”相同,所以组合起来J40perator/(operator(x),y);”,即B选项。16.D17.A解析:题目要求先比较m的大小。其次比较n的大小,首先看函数定义booloperator(Pairp)corlst,从中可以看出B)和D)选项和函数定义不一致,缺少ConS3故排除;选项C只有一层比较不

39、符合题意,故排除C)选项。因此,本题答案为A)。18 .D解析:抽象类指的是类中至少有一个纯虚函数,纯虚函数是虚函数后有=0修饰,表示该函数在本级类中没有实现,类仅用于派生。抽象类存在的唯一目的就是构造类层次,派生出其他类。抽象类与其他类的最大区别就在于抽象类不能实例化。19 .A算法的空间复杂度是指算法在执行过程中所需要的内存空间。所以选择A项。20.AAo本题考查C+流的溉念和I/O的格式化。tin是istream类的对象,即输入流对象。ifstream是输入文件流,类不能定义个输出流对象。getline函数的功能是允许从输入流中读取多个字符,并且允许指定输入终止,在读取完成后,从读取的内

40、容中删除该终止字符,所以D选项中的语句序列后X中字符串应该是Happynewyearo21 .D解析:本题考查的是引用调用,因为函数swap引用调用参数a,所以在SWaP函数中a的变化会改变主函数中9的值,即a自力口1,但b的值并未改变。22.B23.B解析:表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是ShoWPOint()和eof()o22 .22132213解析:此题考查的是派生类的构造和析构函数。建立TWo的对象bb时,调用TWO的构造函数,输出“2;THREE类又派生于TWO类,所以建立THREE类的对象CC时又会输出“2”;ONE类的对象指针P指向了THREE类的ONE类的虚函数f(),输出“1”;最后调用THREE类的f(),输出“

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号