《2021年内蒙古自治区通辽市全国计算机等级考试C++语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《2021年内蒙古自治区通辽市全国计算机等级考试C++语言程序设计真题(含答案).docx(39页珍藏版)》请在优知文库上搜索。
1、2021年内蒙古自治区通辽市全国计算机等级考试C+语言程序设计真题(含答案)学校:班级:姓名:考号:一、L选择题(10题)1.定义如下枚举类型enumMonday9Tuesday,Wednesday,Thrusday,Friday=2;则下列语句正确的是()。A.表达式Wednesday=Friday的值是trueB.Dayday;day=3C.Dayday;day=Monday+3D.Dayday;day=Tuesday+102 .有如下函数模板定义:templateTlsum(Tlal)return(al+a2+a3);)则以下调用中正确的是()。A.sum(5);B.sum(5);C.s
2、um(5);D.sum(5);3 .在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.概念设计阶段C逻辑设计阶段D.物理设计阶段4 .下列输出字符,A1的方法中,()是错误的。A.coutput(,A,);B.cout,A,;C.cort.put(,A);D.charA=A,;coutA;5 .下列描述中正确的是()oA.构造函数可以为虚函数,析构函数不可以为虚函数B.构造函数不可以为虚函数,析构函数可以为虚函数C.构造函数可以为虚函数,析构函数可以为虚函数D.构造函数不可以为虚函数,析构函数不可以为虚函数6 .以下程序执行后的输出结果是()。#includeusi
3、ngnamespacestd;voidtry(int,int,int,int);intmain()intx,y,z,r;x=l;y=2;try(x,y,z,r);coutrendl;return0;voidtry(intx,inty,intz,intr)Z=x+y;x=X*X;y=y*y;r=z+x+y;A.18B.9C.10D.不确定7 .以下程序的输出结果是#includevoidmain()charx=040;cout(Xnext=HL;B.p-next=HL;HL=P;C.p-next=HL;p=HL;D.p-next=HL-next;HL-next=p9 .有如下程序;#includ
4、eusingnamespacestd;classBasepublic;Base(inti)x=i;)voiddispaOcoutxprivate;intx;classDerived;publicBasepublic;Derived(inti);Base(i+10)x=i;)voiddispb()dispa();coutxendl;private;intx;);intmain()Derivedb(2);b.dispb();return0;运行的结果是()oA.2,2B.12,2C.12,10D.10,210 .如果关系R中有4个属性和3个元组,关系S中有3个属性和5个元组,则RXS的属性个数和元
5、组个数分别是oA.7和8B.7和15C.12和8D.12和15二、单选题(13题)11 .数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是A.线性链表B.二叉链表C.栈与队列D.循环队列12 .有下列程序:#includevoidmain()inti,j;fbr(i=3;i=l;i)for(j=l;j=2;j+)printf(%d”,i+j);printf(nn);程序的运行结果是()oA.234B.43234554334C.23D.453434232313 .由于常对象不能被更新,因此A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常
6、成员D.通过常对象可以调用任何不改变对象值的成员函数14 .若有如下类声明:ClassMyClasspublic:MyClass()Cout则对a数组元素的非法引用是().a02*lB.al3C.a4-20D.a0417 .派生类的成员函数不能访问基类的()。A.公有成员和保护成员B.公有成员C.私有成员D.保护成员18 .有如下程序:#include+usingnamespacestd;#includeusingnamespacestd;classBase(public:voidfun()coutBase:fun);classDerived:publicBase(public:voidfun
7、()(coutnDerived:funnfun()D.fun();19 .在C+语言中,打开一个文件就是将这个文件与一个什么建立关联?A.流B.类C.结构D.对象20 .在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是OA.()B.C.D.21 .下列有关类成员的叙述中,正确的是()。A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员22 .数据流图中带有箭头的线段表示的是()。A.控制流B.事件驱动C模块调用D.数据流23 .已知类A有公用数据成员a,并重载了二运算符,且有Aobj2;constA*ptr
8、=newA;,则下列语句错误的是()。A.ptr-a=100;B.ptr=&obj2;C.ptr+;D.obj2=*ptr;三、2.填空题(12题)24 .常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示,用带空心圆的箭头表示传递的是数据。25 .下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。#include#includemain()(chara=,clanguage,t;一定是偶数个数inti,j,k;k=strlen(a);for(i=0;i=k-2;i+=2)for(j=i+2;j=k;j=j+2)if(1)(t=ai;a
9、i=aj;a|j=t;)coutaendl;)26 .耦合和内聚是评价模块独立性的两个主要标准,其中反映了模块内各成分之间联系的是【】。27 .重载的关系运算符和逻辑运算符的返回类型应当是【】。28 .强行排错法涉及的调试技术主要是【】和监视表达式。29 .虚基类说明格式如下:slass派生类名【】基类名30 .下列程序的运行结果是【Io#includeclassA(public:virtualvoiduse()coutinAn;);classBrpublicA(public:virtualvoiduse()coutinBn;);classC:publicB(public:virtualvoi
10、duse()coutuse()deleteobj;)31 .面向对象程序设计支持的3大特性为:封装性、继承性和【】。32 .关系数据库的关系演算语言是以【】为基础的DML语言。33 .下面程序的运行结果是【】#includeusingnamespacestd;intfun(intn)(staticintm=2;m=m+n;returnm;)intmain()(inta=3,b=4;intx;x=fun(a);x=fun(b);coutxendl;returnO;34 .C+中封装性、继承性和【】是面向对象思想的主要特征。35 .派生类对基类的继承有三种方式:,保护继承。四、程序改错题(10题)
11、36 .使用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=0;)II*error*TC:display(tout,i=in,endl;)II*error*TC:TCCOUI,Destructor,endl:voi
12、dmainTCa;a.display;)37 .使用VC+6.0打开考生文件夹下的源程序文件1.cppo本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*e11o*的下面。试题程序:#includevoidmain(inti=O;charstrl20;coutEnterastringendwith?.endl;II*e*or*cin.getline(strj120);II*e*or*while(str)(II*e*or*if(stri)=a)stri=stri-a+A;i+;)coutstrendl;return;)38 .使用VC+6.。打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意:错误的语句在/*e*or*的下面,修改该