2021年内蒙古自治区兴安盟全国计算机等级考试C++语言程序设计预测试题(含答案).docx

上传人:李司机 文档编号:6776815 上传时间:2024-02-04 格式:DOCX 页数:26 大小:64.79KB
返回 下载 相关 举报
2021年内蒙古自治区兴安盟全国计算机等级考试C++语言程序设计预测试题(含答案).docx_第1页
第1页 / 共26页
2021年内蒙古自治区兴安盟全国计算机等级考试C++语言程序设计预测试题(含答案).docx_第2页
第2页 / 共26页
2021年内蒙古自治区兴安盟全国计算机等级考试C++语言程序设计预测试题(含答案).docx_第3页
第3页 / 共26页
2021年内蒙古自治区兴安盟全国计算机等级考试C++语言程序设计预测试题(含答案).docx_第4页
第4页 / 共26页
2021年内蒙古自治区兴安盟全国计算机等级考试C++语言程序设计预测试题(含答案).docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《2021年内蒙古自治区兴安盟全国计算机等级考试C++语言程序设计预测试题(含答案).docx》由会员分享,可在线阅读,更多相关《2021年内蒙古自治区兴安盟全国计算机等级考试C++语言程序设计预测试题(含答案).docx(26页珍藏版)》请在三一办公上搜索。

1、2021年内蒙古自治区兴安盟全国计算机等级考试C+语言程序设计预测试题(含答案)学校:班级:姓名:考号:一、L选择题(10题)1 .有以下程序:ClassDatepublic:Date(inty,intm,mtd);year=y;month=m;day=d;Date(inty=2000)year=y;month=10;day=1;Date(Date&D)year=d.year;month=d.month;day=d.day;VoidprinA.2B.3C.4D.52 .下列程序输出的结果是()0#includefun1(chara,charb)charc;c=a;a=b;b=c;fun2(ch

2、ar*a,charb)charc;c=*a;*a=b;b=c;fun3(char*a,char*b)charc;c=*a;*a=*b;*b=c;voidmain()chara,b;a-Ab=Bfunl(a,b);putchar(a);putchar(b);a=,A;b=,B,;fun2(&a,b);putchar(a);putchar(b);a=A;b=B;fun3(&a,&b);PUtChar(a);PUtChar(b);putchar(,n,);A.BABBABB.ABBBBAC.ABBABAD.ABABBA3 .下列选项中,不是一个算法的基本特征是()。A.完整性B.可行性C.有穷性D.

3、拥有足够的情报4 .下列关于纯虚函数的描述中,正确的是()。A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0二结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不能是派生类5.关于new运算符的错误的描述是()。A.使用运算符new创建对象数组时必须定义初始值B.使用运算符new创建对象时,会调用类的构造函数C.运算符new可以用来动态创建对象和对象数组D.使用new运算符创建的对象可以使用运算符delete删除6.已知枚举类型定义语句为:enumTokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10;则下列叙述中错误的是()。

4、A.枚举常量NAME的值为1B.枚举常量NUMBER的值为1C.枚举常量MINUS的值为6D.枚举常量PRINT的值为107 .在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶E八日rXXEoA.可行性分析B.需求分析C.详细设计D.程序编码8 .下列语句错误的是()。A.char*p=John;P2=,a,;B.charname5=John;name2-a,C.charname5J=John,*p=name;p2=,a,;D.charname5=,John,*p=fename2;*p-a,;9 .下列程序的运行结果为#includetemplateclassFFTTal,a2,

5、a3;public:FF(TTbl,TTb2,TTb3)al=bl;a2=b2;a3=b3;TTSum()returnal+a2+a3;);voidmain()FFx(int(l.l),2,3),y(int(4.2),5.A.6.115.2B.615C.615.2D.6.11510 .下列关于this指针的叙述中,正确的是()。A.任何与类相关的函数都有this指针B.类的成员函数都有this指针C.类的友元函数都有this指针D.类的非静态成员函数才有this指针二、单选题(13题)11 .下列叙述中正确的是()oA.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性

6、结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构12 .有下列程序:#includevoidmain()chara=4;printf(u%dn,a=al);)程序的运行结果是()。A.A.40B.16C.8D.413 .链表不具有的特点是()A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比14 .按照“先进先出”原则组织数据的数据结构是()。A.队列B.栈C.双向链表D.二叉树15 .下列符号中可以用做C+标识符的是()。A._radiusB.f00barC.elseD.3room16 .下列选项中正确的语句是()。A.A.

7、chars3;s=BOOK!n;B.B.char*s;s=BOOK!;C.C.chars10;s=,BOOK;D.D.char*S;s=BOOK!;17 .下面关于break语句的描述中,不正确的是(A.A.break可以用于循环体内B.break语句可以在for循环语句中出现多次C.break语句可以在switch语句中出现多次D.break语句可用于if条件判断语句内18 .在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是()A数据库系统B.文件系统C人工管理D.数据项管理19 .若在表达式y/x中,是作为成员函数重载的运算符,则该表

8、达式还可以表示为A.x.operator/(y)B.operator/(x,y)C.y.operator/(x).operator/(y,x)20 .在c+语言程序中,对象之间的相互通信通过()。A继承实现B.调用成员函数实现C.封装实现D.函数重载实现21 .按照“先进后出”原则组织数据的数据结构是()0A队列B.栈C.双向链表D.二叉树22 .下列()是C+语言的有效标识符。A.NolB.N0.1C.12345D.int23 .下列有关模板的叙述中,正确的是()。A函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义C类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能

9、省略模板实参三、2.填空题(12题)24 .有以下程序:#includeusingnamespacestd;classBasepublic:Base()x=0;)intx;;classDerivedl:virtualpublicBase(public:Derivedl()(x=10;);classDerived2:virtualpublicBase(public:Derived2()(x=20;);classDerived:publicDerived!,protectedDerived2();intmain()(Derivedobj;coutobj.xendl;return0;该程序运行后的输

10、出结果是【】。25 .下列程序用于打印出ASCll字符,其析构函数内的语句应为【Io#include#ineludetemplateclassArray(T*elems;intsize;public:Array(int.s);Array()T&operator(int)voidperator=(T);templateArray:Array(ints)size=s;elems=newTsizefor(inti=0;isize;i+)elemsi=0)templateArray:Array()templateT&Array:operatorQ(intindex)(returnelemsindex;

11、)templatevoidArray:operator=(Ttemp)(for(inti=0;isize;i+)elemsi=temp;)voidmain()(inti,n=26;Arrayarrl(n)Arrayarr2(n)for(i=0;in;i+)-arrli=,a+i;arr2i=,a+i;)coutASCII字符endl;for(i=0;in;i+)coutsetw(8)arrlisetw(8)arr2iendl;)26 .下列程序中的重载函数disp()发生错误,错误原因是一#includeclassSampleprivate:intm;staticintst;public:Sa

12、mple(inta)m=a;st+=a;staticvoiddisp()coutmendl;staticvoiddisp(Sampleinput)(coutinput.mendl;);intSample:st=2;voidmain()(SampleFirst(2)1Second(4);Sample:disp();Sample:disp(Second);)27 .下列程序的输出结果是o#includeusingnamespacestd;templateTfun(Ta,Tb)return(a=b)?a:b;intmain()(COUtfun(3,6),fun(3.14F,6.28F)edl;ret

13、urnO;)28 .树中度为零的结点称为o29 .下面程序的运行结果为【#includevoidmain()(chara=3;switch(a)(case3:cout3;case,21:cout2;break;default:cout1;)30 .从一个或多个基本表导出的表是一个【】,它是一个虚表。31 .有如下程序:#includeusingnamespacestd;classCApublic:CA()coutA,;);classCB:privateCApublic:CB()cout,B,;);intmain()CAalCBb;return0;(运行时的输出结果是.32 .软件生命周期一般可

14、分为这样几个阶段:问题定义、可行性研究、【】、设计、编码、测试、运行和维护。33 .在用ClaSS定义一个类时,数据成员和成员函数默认的访问权限是【】34 .语句CoUtsetprecision(3)3.1415926classCO(public:/*error*/Staticintn=O:CO(n+:C0(n:/*error*/intCO:n;voidmain(COobj;COobj27;CO*C=NULL:c=&obj:/*error*/eoutC.nendl;coutCO::nendl;37.使用VC+6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误。

15、本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件LtXt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*crro*的下面。试题程序:ttincludeftinclude/*error*usingstd;VoidWriteFiIe(char*s)(ofstreamoutl;/*error*outl.open(,l.txtzz,binaryapp);for(inti=O;si!=0;i+)(/*error*outl.puts(si);)outl.close;)VoidClearFile(ofstreamoutl;outl.open(,l.txt

16、);outl.close;)intmain(chars1024;ClearFile;cout/zpleaseinputastrin9:“endl;cin.getline(s,1024);WriteFile(s);returnO;38 .使用VC+6.O打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在/*error*的下面,修改该语句即可。试题程序:ftinclude/*crro*voidmain/*error*intm=0142:/*error*intn=0X27:intq=32;coutmendl;coutnen

17、dl;coutqendl;return;39 .使用VC+6.0打开考生文件夹下的源程序文件Lcpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个CatCh必须抛出执行的任何异常。程序异常,输出信息为error0ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*crror*的下面。试题程序:ftincludeiostream,h)intmaintrythrow(,errorz);/*error*catch(chars)(coutsendl;try(throw(int)0);)/*error*catch(coutiendl;tryt

18、hrow(0);throw(,errorzz);/*error*catch(coutz,ERROR,zendl;)returnO;40.使用VC+6.0打开考生文件夹下的源程序文件Lcpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/*(?rror*的下面。试题程序:ftincludeclassTC(public:TC(inti)(number=i;VoidSetNumber(intm)(number=m;)intGetNumbercon

19、st(returnnumber;VoidPrintconst(cout,number=znumberendl;private:intnumber;);voidmain/*error*TCobjl;objl.Print;TCobj2(3);/*error*objl.number=10;/*error*%o*TC.SetNumber(100);objl.Print;obj2.Print;41.使用VC+60打开考生文件夹下的源程序文件l.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=lnumber=10number=100注意:不要改动main函数,不能增

20、加或删除行。也不能更改程序的结构,错误的语句在/*error*的下面O试题程序:#includeClassTCpublic:TC(inti)number=i;)voidSetNumber(intm)number=m;)intGetNumberconstreturnnumber;)VoidPrintconst(coutnumber=numberclassTC(/*11rQp*/TC(inti)(m_i=i;)voidprint(cout-mj5)*fQr*i+:04.print;)coutendl;return;)43 .使用VC+6.。打开考生文件夹下的源程序文件LCppo本程序要求输入一个字

21、符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*crror*的下面。试题程序:ftincludeVoidmain(inti=O;charstr120;coutzzEnterastringendwith?.zzendl;/*error*cin.getline(str,120);/*error*while(str)(/*error*if(stri)=a)stri=stri-aA;i+;)coutstrendl;return;44 .使用VC+6

22、0打开考生文件夹下的源程序文件l.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意:错误的语句在/*error*的下面,修改该语句即可。试题程序:#include(iostream.h)ClassTCinti;public:TC;voiddisplay;TC;);/*rQ*TC:TC(coutConstructor,;i=0;)/*fQ-*TC:display(touti=,itendl;)/*fQf*TC:TC(COUIDestructorendl:)Voidmain(TCa;a.display;)45 .使用V

23、C+60打开考生文件夹下的源程序文件1cpp本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*errc)r*的下面。试题程序:#includeVoidmain(inti=O;charstr120;coutEnterastringendwith?.endl;/*fQf*cin.getline(str,120);/*pQp*while(str)(/*pfQf*if(stri)=a)stri=stri-a+A;i+;)couts

24、trtopPointrightPointbottomPoint,分别用于表示矩形左上角及右下角的点的坐标,它们都是double型的数据。请在注释1之后添加适当的语句。(2)完成默认构造函数CReCt的定义,指定默认实参为0,它们都是double型的数据。请在注释2之后添加适当的语句。(3)定义函数体为空的析构函数。请在注释3之后添加适当的语句。(4)在main函数中定义GReet类的实例rect2,并把re-CtI的值赋给rect20请在注释4之后添加适当的语句。注意:除在指定位置添加语句之外,不要改动程序中的其他内容。试题程序:ftincludeClassCRect(private:publ

25、ic:/不不不不不不不*2*不不不不不不不/不不不不不不不不3*不不不不不不不VoidSetPoints(double,double,double,double);VoidSetLeftPoint(doublem)leftPoint=m;VoidSetRightPoint(doublem)rightPoint=m;VoidSetTopPoint(doublem)topPoint=m;VoidSetBottomPoint(doublem)bottomPoint=m;VoidDisplay();;CReet:CRect(doublel,doublet,doubler,doubleb)IeftPoi

26、nt=I;topPoint=t;rightPoint=r;bottomPoint=b;voidCRect:Setpoints(doublel,doublet,doubler,doubleb)(IeftPoint=I;topPoint=t;rightPoint=n;bottomPoint=b;)voidCRect:Display()(coutz,left-toppointis(,zleftPointz,ztop-Point,z)/zn;cout,right-bottompointis(z*rightPointz*,bottomPoint/,)z/n;)Voidmain()(CRectrectO;

27、rect.Display();rect.SetPoints(20,20.6,30,40);rect.Display();CRectrectl(0,0,150,150);recti.SetTopPoint(10.5);recti.SetLeftPoint(10.5);/*4*rect2.Display();47 .使用VC+6.0打开考生文件夹下的源程序文件3.cppo类PeoPIe包括姓名和年龄两个字段。函数fun获得年龄比较大的人的姓名,然后输出这个姓名到屏幕。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。(1)完成类的构造函数功能,请在注释1后添加适当的语句。(2)完成构造

28、函数对姓名的赋值,请在注释2后添加适当的语句。(3)定义类的友元函数fun,请在注释3后添加适当的语句。(4)补充函数fun的年龄比较功能,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:ftincludeClassPeople(public:inti;for(i=0;sUserNamei!=0;i+)m_UserNamei=sUserNamei;/亭*亭*2*亭*亭亭m_01d=n01d;)private:charm_UserName32;intm_01d;/亭亭*不*亭*3*不*):voidfun(char*s,People&

29、personl,People&person2(/*4*if(for(inti=0;personl.m_UserNamei!=0;i+)(si=person1.m_UserNamei;sil=0;else(for(inti=0;person2.m_UserNamei!=0;i+)si=person2.m_UserNamei;sil=0;)voidmain(chars32;Peoplepl(z*abcz*,20);Peoplep2(def”,30):fun(S,pl,p2);coutsendl:return;六、3.综合应用题(2题)48 .使用VC6打开考生文件夹下的工程test4L3此工程包含

30、一个test4L3.cpp,其中定义了类ReCtange但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。定义类ReCtangIe的私有数据成员left,top和fight,bottom,它们都是int型的数据。请在注释,7*1*,之后添加适当的语句。添加类ReCtangIe的带四个int型参数1、t、r、b的构造函数的声明,并使这四个参数的默认值均为0,请在注释7*2*之后添加适当的语句。添加类Rectangle的成员函数SetToP()参数为int型的t,作用为把t的值赋给类的数据成员top,添加类Rectangle的成员函数SetBottOm()参数为int型的t,作用为把t的

31、值赋给类的数据成员bottom,请在注释7*3*之后添加适当的语句。完成派生类ReCtangle的成员函数ShOW()的定义,使其以格式“right-bottompointis(righttbottom)输出,请在注释,7*4*,之后添加适当的语句。源程序文件test41_3.cpp清单如下:#includeclassRectangle(/*intright,bottom;public:/*2*Rectangle()O;voidAssign(int1,intt,intr1intb);voidSetLeft(intt)left=t;voidSetRight(intt)right=t;/*3*vo

32、idSetBottom(intt)bottom=t;voidShow();;Rectangle:Rectangle(int1,intt,intr,intb)(left=1;top=t;right=r;bottom=b;)voidRectangle:Assign(int1,intt,intr,intb)(left=1;top=t;right=r;bottom=b;)voidRectangle:Show()coutleft-toppointis(leftltop),n,;/*4*)voidmain()(Rectanglerect;rect.Show();rect.Assign(100,200,30

33、0,400);rect.Show();)49 .使用VC6打开考生文件夹下的工程test7_3,此工程包含一个源程序文件test7_3.cpp,其中含有一个类Circle的定义,但该类的定义并不完整。请按要求完成下列操作,将类Circle的定义补充完整。为类Circle增加一个构造函数,该函数有一个参数,并在构造时将该参数值赋给成员radiuso将该函数实现为一个非内联函数,并且使用参数列表的方式将类成员赋值。请在注释7*1*之后添加适当的语句。为类CirCIe增加一个成员函数Print(),使得可以输出有关圆的信息,比如下列程序Circlec;c.SetRadius(5);c.Print()

34、;将输出:Thecirclehasradiusof5!请在注释*2*”之后添加适当的语句。完成友元函数voidCompareR(Circle*d,Cirde*c2)的定义,在屏幕中输出Cl与c2比较radius大小结果,要求使用if-else结构完成。请在注释“*3*之后添加适当的语句。输出结果如下;Thecirclehasradusof5!Thecirclehasradiusof10!clc2注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test7_3,cpp清单如下:#includeclassCirclepublic:Circle():radius(5)/voidS

35、etRadius(intr)radius=r;intGetRadiusOreturnradius;/*2*friendvoidCompareR(Circle*cl,Circle*C2);private:intradius;;voidCompareR(Circle*cl,Circle*C2)(/*3*coutc2GetRadius()=(c2-GetRadiusQ)coutcl=c2GetRadius()GetRadiusO)coutclc2endl;)voidmain()(Circlecl;cl.SetRadius(5);Cl.Print();Circlec2(10);c2.Print();C

36、ompareR(&cl,&c2);)参考答案1.B解析:本题考核拷贝构造函数。上述程序中,拷贝构造函数一共被调用了3次:第一次是在执行语句Datedate3(datel);时,用已经建立的对象datel对正在建立的对象date3进行初始化;第二次是在调用fun函数时,由于是传值调用,因此实参对象date3要对形参对象d进行初始化;第三次是在执行fun函数中的返回语句returntemp时,系统初始化一个匿名对象时使用了拷贝构造函数。2.B解析:由程序中的主函数main入手,分别调用funLfun2,fun3函数,得出输出结果。其中,3个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有

37、的是引用,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以d调用funl后,实参a和b并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,即传递的是地址,所以形参a的改变会影响实参a的值,即BB。同理,调用fun3后为BA.3 .A解析:作为一个算法,一般应该具有4个特征:可行性,即考虑到实际的条件能够达到一个满意的结果;确定性,算法中第一个步骤都必须是有明确定义的;有穷性,一个算法必须在有取的时间内做完;拥有足够的情报。4 .B解析:基类的虚函数有时候不可能被调用到,这时可定义该虚函数为纯虚函数。纯虚函数没有函数体,但一定要进行说明,它告诉编译器,派生类必须

38、定义该成员函数。纯虚函数是一种特殊的虚函数,纯虚函数是在虚函数的后面加上u=0,表示该虚函数无函数体,并非赋值运算。纯虚函数的一般格式为VirtUaI()=0;。在很多情况下,在基类中不能对虚函数给出有意义的实现,而把它说明为纯虚函数.5 .A6 .A解析:本题考查的是C+语言的数据类型。第一个枚举常量的值为0,允许程序曼示的定义中指定部分或全都枚举常量的值,枚举常量默认时,在首一枚举常量值的基础上以此增Io7.B答案B考点软件工程基础评析分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段。软件工程中的瀑布模型:问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试,运行和维护相关链点:层次图和HIPo图是概要设计中的工具图;程序流程图、N-S图、问题分析PAD图、设计程序语言PDL是详细设计中的工具图8.A9.B解析:本题考查模板函数的应用,表达式int(

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号