2021年内蒙古自治区呼伦贝尔市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx
2021年内蒙古自治区呼伦贝尔市全国计算机等级考试C+语言程序设计模拟考试(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .以下哪个特征不是面向对象思想中的主要特征()。A.多态B.继承C.封装D.垃圾回收2 .关于静态数据成员的描述中正确的是()。A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化3 .设栈S的初始状态为空。元素a,b,c,d,e,f依次通过栈S,若出栈的顺序为b,d,c,f,e,a,则栈S的容量至少应该为A.3B.4C.5D.64 .C+语言中,while循环和do-while循环的主要区别是()。A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句5.为使下列程序的正确输出结果为:Nowis2004-7-612:12:12那么应该在程序划线处填入的语句是()。#include<iostream>usingnamespacestd;classTIME;classDATEpublic:DATE(inty=2004,intm=l,i11td=l)year=y;month=m;day=d;voidDateTime(TIME&t);private:intyear,month,day;classTIMEpublic:TIME(inth=O,i11tm=0,ints=0)hour=h;minute=m;second=s;将类DATE中成员函数DateTime声明为类TIME的友元函数private:inthour,minute,second;voidDATE:DateTime(TIME&t)cout<<',Nowis,<<year<<-,<<month<<-,<<day<<,<<t,hour<<<<t.minute<<,:,<<t.seoond<<'.,<<endl;intmain()DATEd(2004,7,6);TIMEt(12,12,12);d.DateTime(t);return0;A.friendvoidDateTime(TIME&t);B.friendvoidDATE:DateTime(TIME&0;C.voidDateTime(TIME&t);D.friendvoidDateTime(TIME&t);6 .两个或两个以上模块之间关联的紧密程度称为()。A.耦合度B.内聚度C复杂度D.数据传输特性7 .在深度为4的满二叉树中,叶子节点的个数为()。A.16B.8C.7D.158 .下面程序的输出结果是#include<iostream.h>classexampleinta;public:example(intb)a=b+;voidprint()a=a+l;cout<<a<<,';voidprint()constcout<<a<<',',;voidmain()examplex(3);constexampley(2);x.print();y.print();A.22B.43C.42D.329 .关系数据库管理系统能实现的专门关系运算包括()oA.排序、索弓|、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表10 .关于在调用模板函数时模板实参的使用,下列表述中正确的是()。A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略二、单选题(13题)11 .复制构造函数的参数一般是A.某对象名B.某对象成员名C.某对象的引用名D.指向对象的指针名12 .程序的3种基本控制结构是A.过程、子过程和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移13 .语句Ofstreamf(,SALARY.DArlios:app|ios:binary);的功能是建立流对象f,试图打开文件SALA-RY.DAT并与之连接,并且()。A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件14.类MyClass的定义如下:classMyClasspublic:MyClassOvalue=0;SetVariable(inti)value=i;private:intvalue;则对下列语句序列正确的描述是()。A.MyClass*p,my;P=&my;B.语句P=&my;是把对象my赋值给指针变量PC.语句MyClass*p,my;会调用两次类MyClass的构造函数D.对语句*p.SetVariable(5)与语句my.SetVariabIe(5)等价15 .使用ifstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为()oA.ios:inB.ios:outC.ios:inlios:outD.没有默认16 .若变量已正确定义并赋值,以下符合C+语言语法的表达式是()OA.A.a:=b+1B.a=b=c+2C.intl8.5%3D.a=a+7=c+b17 .下列关于模板的说法正确的是()。A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数18 .有如下函数模板声明:templateTMax(Ta,Tb)retum(a>=b)?ab;下列对函数模板MaX()的调用中错误的是()oA.Max(3.5,4.5)B.Max(3.5,4)C.Max(3.5,4.5)D.Max(3.5t4)19 .有如下两个类定义classXXprivate:doublexl;protected:doublex2;public:doublex3;);classYYiprotectedXXprivate:doubleyl;protected:doubley2;public:doubley3;);在类YY中保护成员变量的个数是A.1B.2C.3D.420 .下列说法正确的是()。A定义inta4=l,3;,则a0=l,al=3,a3的值不确定B.定义staticinta4;,则元素值不确定C.constintx;x=5;表示给常量X赋初值D定义inta4;,则其元素的值是不确定的21 .已知函数FA调用函数FB,若要把这两个函数定义在同一个文件中,则()oA.FA必须定义在FB之前B.FB必须定义在FA之前C若FA定义在FB之后,则FA的原型必须出现在FB的定义之前D.若FB定义在FA之后,则FB的原型必须出现在FA的定义之前22 .对下列程序段的描述正确的是()o#include<iostream.h>intfun(int,int);voidmain()cout<<fun(l,2)<<endl;intfun(intx,inty)returnx+y;A该函数定义正确,但函数调用方式错误B.该函数调用方式正确,但函数定义错误C,该函数定义和调用方式都正确D.该函数定义和调用方式都错误23 .有如下程序:ftincluded<iostream>Usingnamespacestd;ClassTestClassinta;public:TestClass(intx)a=x;voidshow()cout<<a;);ClassTestClassl:publicTestClassintb;public:TestClassl(inti):TestClass(i+l),b(i)voidshow()cout<<b;);intmain()TestClassb(5),*P;TestClassld(I):P=&d;p->show();returnO;该程序运行后的打印结果是()oA.5B.lC.0D.2三、2.填空题(12题)24 .静态成员函数可以直接访问类的【】成员,不能直接访问类的【】成员。25 .如果要把返回值为void的函数A声明为类B的友元函数,则应在类B的定义中加入的语句是【】。26 .将关键字ConSt写在函数头之后,函数体之前,说明该函数是一个ConSt成员函数。此时ConSt不是指定函数的返回值,而是修饰【】指针。27 .符号常量可以用宏定义define和来表示。28 .COut<<n'还可以表示为【】,cout.Width(IO)还可表示为【29 .在长度为n的有序线性表中进行二分查找,最坏的情况下需要的比较次数为【30 .以下程序输出的结果是【#include<iostream.h>voidmain()(inta=5tb=4,c=3,d;d=(a>b>C);cout<<d;)31 .在面向对象方法中,信息隐蔽是通过对象的【】来实现的。32 .在一个图中,所有顶点的度数之和等于所有边数的【】倍。33 .多态性分为两类:编译时的多态性和【34 .在树形结构中,树根结点没有【35 .设i,j,k均为int型变量,则执行完for(i=0,j=10;i<=j;i+,j-)k=i+j;语句后,k的值为【】。四、程序改错题(10题)36 .使用VC+6.O打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意:错误的语句在/*error*的下面,修改该语句即可。试题程序:include(iostream,h)classTC(inti;public:TC;voiddisplay;TC;/*error*TC:TC(COUt“Constructor"。",";i=0;)/*error*TC:display(tout<<z4=,z<<i<<,zz<<endl;)/*error*TC:TC(COUI<<z,Destructorzz<<endl:)voidmain(TCa;a.display;37 .使用VC+6.O打开考生文件夹下的源程序文件Lcpp,但该程序运行有问题,请改正IIIain函数中的错误,使该程序的输出结果正确。程序输出:88注意:错误的语句在/*error*/的下面。修改该语句即可,其他的语句不能修改。试题程序:include(iostream,h>classCO(public:/*error*/Staticintn=O:CO(n+:C0(n:/*error*/intCO:n;voidmain