历年二级C++真题及答案.docx
- 文档编号:27963587
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:122
- 大小:412.26KB
历年二级C++真题及答案.docx
《历年二级C++真题及答案.docx》由会员分享,可在线阅读,更多相关《历年二级C++真题及答案.docx(122页珍藏版)》请在冰豆网上搜索。
历年二级C++真题及答案
A)ch>=A&chv二ZB)ch<=,A,llch>=,Z,
C),A,<=ch<=,Z,D)ch>=*A*&&chv二Z
(13)已知下列语句中的x和y都是int型变量,其中错误的语句
A)x=y++;B)x=++y;C)(x+y)++;D)++x二y;
(14)执行语句席列
intn:
cin»n;
switch(n)
{caseI:
case2:
cout«'T;
case3:
case4:
cout«2;break;
default:
cout«3';
}
时,若键盘输入1,则屏幕显示
A)1B)2C)3D)12
(15)下列程序的输岀结果是
#include
usingnamespacestd:
intmain()
{
chara(]="Hello,World";
char♦ptr=a:
while(*ptr)
{
if(*ptr>=ra'&&*ptrv=N)
cout«char(*ptr+A
elsecout«*ptr;
ptr++;
}
return0;
}
A)HELLO,WORLDB)Hello,World
C)hELLO.WORLDD)hello,world
(16)已知:
intm=10:
在下列定义引用的语句中,正确的是
A)int&x二m:
B)inty=&m:
C)int&z;D)int&t=&m:
(17)下列函数原型声明中错误的是
A)voidFun(intx=0,inty=0);
B)voidFun(intx,inty);
C)voidFun(intx,inty=0);
D)voidFun(intx=0,inty);
(18)已知程疗:
中已经定义了函数test,其原型是inltest(int.int.int);,则下列重载形式中正确的是
A)chartest(int.int,int);
B)doubletest(int.int,double);
C)inttest(int,intjnt=O);
D)floattest(intJnt,float=3.5F);
(19)有以下程序
#include
inti=0;
voidfun()
{{
staticinti=1;
std:
:
coutvvi++vvT;
}
std:
:
cout«i«V;
}
intmain()
{
fun();fun();
return0:
}
程序执行后的输岀结果是
A)1,2,1,2,B)1,2,2,3,C)2,O,3,O,D)1.0,2,0,
(20)已知函数f的原型是:
voidf(int*a.long&b);变量vl、v2的定义是:
intvklongv2;,正确的调用语句是
A)f(vl,&v2);B)f(vl,v2);
C)f(&vl,v2);D)f(&vl,&v2);
(21)有以下类定义
classMyClass
{
public:
MyClass(){cout«1:
}
};
则执行语句MyClassa.b[2],叩[2];后,程序的输岀结果是
A)llB)lllC)11I1D)lllll
(22)关于友元,下列说法错误的是
A)如果类A是类B的友元,那么类B也是类A的友元
B)如果函数fun()彼说明为类A的友元,那么在fun()中可以访问类A的私有成员
C)友元关系不能被继承
D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元
(23)关于动态存储分配,下列说法正确的是
A)new和delete是C++语言中专门用于动态内存分配和释放的函数
B)动态分配的内存空间也可以彼初始化
C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间
D)当动态分配内存失败时,系统会立刻朋溃,因此•定要慎用new
(24)有以下程序
#include
usingnamespacestd:
classMyClass
{
public:
MyClass(intn){number=n;}
〃拷贝构造函数
MyClass(MyClass&other){number=othe匚number;}
^MyClass(){}
private:
intnumber;
};
MyClassfun(MyClassp)
{
MyClasstemp(p);
returntemp;
}
intmain()
{
MyClassobjl(10),obj2(0);
MyClassobj3(obj1);
obj2=fun(obj3);
return0;
}
程序执行时,MyClass类的拷贝构造函数被调用的次数是
A)5B)4C)3D)2
(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的
A)公有成员和私有成员B)私有成员和保护成员
C)公有成员和保护成员D)私有成员、保护成员和公有成员
(26)在C++中用来实现运行时多态性的是
A)重载函数B)析构函数
C)构造函数D)虚函数
(27)•个类可以同时继承多个类,称为多继承。
下列关于多继承和虚基类的衣述中,错谋的是
A)每个派生类的构造函数都要为虚基类构造函数提供实参
B)多继承时有可能出现对基类成员访问的二义性问题
C)使用虚基类可以解决二义性问题并实现运行时的多态性
D)建立最派生类对象时,虚基类的构造函数会首先被调用
(28)在一个类体的下列声明中,正确的纯虚函数声明是
A)virtualvoidvf()=0;B)voidvf(int)=0;
C)virtualintvf(int):
D)virtualvoidvf(int){}
(29)在下面的运算符重载函数的原型中,错误的是
A)Volumeoperator-(double,double);
B)doubleVolume:
:
operator-(double);
C)VolumeVolume:
:
operator・(Vblume);
D)Volumeoperator-(Volume,Volume);
(30)下列是模板声明的开始部分,其中正确的是
A)template
B)template
C)template
D)template classT2> (31)执行语句序列 ofstreamoutfile(MDATA.DATM); if(・.・)cout«HOKM;elsecout«”FAIL”; 后,如果文件打开成功显示“OK”,否则就显示“F厶n。 ”。 由此可知,上而if语句的...处的农达式应是 A)out()或outfileB)out()或Joutfile C)out()或outfileD)out()或! outfile (32)C++流中重载的运算符>>是一个() A)用于输出操作的非成员函数B)用于输入操作的非成员函数 C)用于输出操作的成员函数D)用于输入操作的成员函数 (33)有以下类定义 classPoint{ public: Point(intx=0Jnty=0){_.x=x;_.y=y;} voidMove(intxOff,intyOff) {_x+=xOff: _.y+=yOff: } voidPrint()const {cout«'C«_x«V«_yvvy«endl: } private: int_x,_y; }; 下列语句中会发生编译错误的是 A)Pointpt;pt.Print(); B)constPointpt;pt.Print(); C)Pointpt;pt.Move(l,2); D)constPointpt;pt.Move(l,2); (34)有以下类定义 classMyClass { private: intid; chargender, char♦phone; public: MyClass(): id(O),gender(#).phone(NULL){} MyCIass(intno.charge='#\char*ph=NULL) {id=no;gende=ge: phone=ph: }};下列类对彖定义语句中错误的是 A)MyClassmyObj; B)MyClassmyObj(ll/H,); C)MyClassmyObj(12,'m1); D)MyClassmyObj(12); (35)有以下程序 #include usingnamespacestd: classComplex { public: Complex(doubler=0,doublei=0): re(r),im(i){} doublereal()const{returnre;} doubleimag()const{returnim;} Complexoperator+(Complexc)const {returnComplex(re+c.re,im+c.im);} private: doublere,im: }; intmain() { Complexa=Complex。 ,1)+Complex(5); cout«a.real()««a.imagOvv'i'«endl; return0; } 程序执行后的输出结果是 A)6+6iB)6+IiC)l+6iD)1+li 二、填空题(每空2分,共30分) 请将每-个空的正确答案写在答题卡[1]-[15J序号的横线上,答在试卷上不得分。 注意: 以命令关键字填空的必须拼写完整。 (1)算法的复杂度主要包括时间[1]复杂度和空间复杂度。 (2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的[2]存储结构或物埋结构或物理存储结构<■ (3)若按功能划分,软件测试的方法通常分为白盒测试方法和[3]黑盒或黑箱测试方法。 (4)如果•个I】人可管理多个设备,而•个设备只被•个匚人管理,则实体“匸人”与实体“设备"之间存在[4]-对多的联系。 (5)关系数据库管理系统能实现的专门关系运算包括选择、连接和[5]投影。 (6)设有定义语句: inta=12: 则农达式a*=2+3的运算结果是[6]60。 (7)从实现的角度划分,C++所支持的两种多态性分别是【7]编译时的多态性和运行时的多态性。 (8)将一个函数声明为•个类的友元函数必须使用关键字[8]friendo (9)请按下面注释的捉示,将类B的构造函数定义补充完整。 classA inta; public: A(intaa=O){a=aa;} }; classB: publicA{ intb; Ac; public: 〃用aa初始化基类A,用aa+1初始化类对彖•成员c B(intaa): [9]A(aa).c(aa+1){b=aa+2;} }; (10)下列程序的输出结果是[10]7o #include usingnamespacestd: intmain() { inti=5; int&r=i;r=7; cout«i«endli return0; (11)下列程序的输出结果是[11]042o #include usingnamespacestd: classTest{ public: Test(){cnt++;} ~Test(){ent—;} staticintCount(){returnent;} private: staticintent; }; intTest: : cnt=0; intmain() { cout«Test: : CountO«**; Testtht2; Test*pT3=newTest; Test*pT4=newTest; cout«Test: : CountO«**; deletepT4; deletepT3; cout«Test: : Count()«endl; return0; (12)下ifti是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。 (注: 阶乘的定义是n! =n*(n-l)*...*2*l) unsignedfact(unsignedn) { if(n<=1) return1; return|12]n*fact(n-l); (13)下列程序的输出结果是[13J3.3.14o #include usingnamespacestd: template Tfun(Ta,Tb){return(a<=b)? : b;} intmain() { cout«fun(3,6)«T«fun(3.14E6.28F)«endl: return0; (14)与成员访问农达式p->name等价的衣达式是[I4J(*p).name。 (15)下列程序的输出结果是[1习25o #include usingnamespacestd: classbase{ public: intn; base(intx){n=x;} virtualvoidset(intm){n=m: cout«n«**;} }; classderiveA: publicbase{ public: deriveA(intx): base(x){} voidset(mtm){n+=m;cout«n<<‘‘;} }; classderiveB: publicbase[ public: deriveB(intx): base(x){} voidset(intm){n+二m: cout«n«1 }; intmain() deriveAdl (1);deriveBd2(3);base*pbase; phase=&dl; pbase->set(I); phase=&d2; pbase->set (2); return0; } 2004年9月 全国计算机等级考试二级笔试试卷公共基础知识及C++语言程序设计答案及评分标准 选择题((1135)每小题2分,共70分) (l)c⑵C(3)B⑷A(5)D ⑹B(7)D(8)B(9)C(10)A (H)D (12)D (13)C (14)D (15)A (16)A (I7)D (⑻B (I9)D (20)C (21)B (22)A (23)B (24)B (25)C (26)D (27)C (28)A (29)A (30)C (3DC (32)B (33)D (34)B (35)B 二、填空题(每空2分, 共30分) (1)[IJ时间 (2)[2]存储结构或物理结构或物理存储结构 ⑶[3]黑盒或黑箱 ⑷⑷-对多或1对多或I: M或I: N(其中M、N大小写均可) ⑸[5]投影 (6)(6]60 (7)[7]编译 (8)(8]friend (9)(9]A(aa).c(aa+1)或c(aa+l),A(aa) (10)(10]7 (11)(11]042 (12)(12]n*fact(n-l) (13)(13]3,3.14 (14)(14](*p).name (15)[15J25 2010年3月计算机等级考试二级C++笔试试题 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有•个选项是正确的。 请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)对长度为n的有序链农进行査找,最坏情况下需要的比较次数为n B)对长度为n的有序链衣进行对分查找,最坏情况下需要的比较次数为(n/2) C)对长度为n的有序链衣进行对分查找,最坏情况下需要的比较次数为(log2n) D)对长度为n的有序链衣进行对分查找,最坏情况下需要的比较次数为(nlog2n) (2)算法的时间复杂度是指 A)算法的执行时间 B)算法所处理的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数 (3)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)。 下面属于系统软件的是 A)编辑软件 B)操作系统 C)教务管理系统 D)浏览器 (4)软件(程席)调试的任务是 A)诊断和改正程序中的错误 B)尽可能多地发现程序中的错误 C)发现并改正程序中的所有错误 D)确定程序中错误的性质 (5)数据流程图(DFD图)是 A)软件概要设计的工具 B)软件详细设计的工具 C)结构化方法的需求分析工具 D)面向对象方法的需求分析工具 (6)软件生命周期可分为定义阶段,开发阶段和维护阶段。 详细设计属于 A)定义阶段 B)开发阶段 C)维护阶段 D)上述三个阶段 (7)数据库管理系统中负责数据模式定义的语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言 (8)在学生管理的关系数据库中,存取-个学生信息的数据单位是 A戊件 B)数据库 C)字段 D)记录 (9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的农示,它属于数据库设计的 A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段 (10)有两个关系R和T如下: 则由关系R得到关系t的操作是 A)选择 B)投影 C)交 D)并 (11)下列关于函数的描述中,错误的是 A)函数可以没有返回值 B)函数可以没有参数 C)函数可以是一个类的成员 D)函数不能被定义为模板 (12)若MyClass是-个类名,且有如下语句序列 MyClasscl,*c2; MyClass*c3=newMyClass; MyClass&c4=c1; 上面的语句序列所定义的类对象的个数是 A)1 B)2 C)3 D)4 (13)下列关于继承方式的描述中,错误的是 A)如果不显式地指定继承方式,缺省的继承方式是私有(private) B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员 C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员 D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员 (14)将前缀运算符重载为非成员函数,下列原型中,能正确用于类中说明的是 A)Decr&operator—(int); B)Decroperator-(Decr&,int); C)friendDecr&operator—(Decr&); D)frlendDeeroperator--(Deer&,int); (15)若MyTemp是•个只有•个虚拟类型参数的类模板,且有如下语句目列 MyTempp2; MyTempp3(2]; 编译系统在处理上而的语句序列时,所生成的模板MyTemp的实例的个数是 A)1 B)2 C)3 D)0 (16)在C++中,cin是个 A)类 B)对象 C)模板 D)函数 (17)在下列字符中,不允许作为C++标识符的是 A)b B)B C)_ D)2 (18)下列叙述中,错误的是 A)false是一个逻辑型常量 B)”b"是一个字符型常量 C)365是一个int常量 D)3.1415926是一个double常量 (19)若x和y是程席中的两个整型变量,则下列if语句中正确的是 A)if(x==0)y=l;elsey=2; B)if(x==0)theny=lelsey=2; C)if(x==0)y=lelsey=2; D)ifx==0y=I;elsey=2: (20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是 A)intx[3]={0Q0}; B)intx[]={0}; C)staticintx[3]={0}; D)intx[匸{0,0,0}; (21)关于函数中的v返回类型〉,下列表述中错误的是 A)<返回类型〉中有可能包含关键字int B)v返回类型〉中有可能包含自定义标识符 C)<返回类型〉中有可能包含字符* D)<返回类型〉中可能包含[] (22)雯定义•个引用变量p,使之引用类MyClass的•个对象,正确的定义语句是 A)MyClassp=MyClass; B)MyClassp=newMyClass: C)MyCIass&p=newMyClass; D)MyClassa,&p=a: (23)有如下两个类定义 classXX{ private: doublexl: protected: doublex2; public: doublex3; }; classYY: protectedXX{ private: doubleyl: protected: doubley2; public: doubley3; }; 在类YY中保护成员变量的个数是 A)1 B)2 C)3 D)4 (24)下列关于运算符重载的描述中,错误的是 A)可以通过运算符重载在C++中创建新的运算符 B)赋值运算符只能重载为成员函数 C)运算符函数重载为类的成员函数时,第•操作数是该类对象 D)重载类型转换运算符时不需要声明返回类型 (25)下列关于类模板的描述中,错误的是 A)类模板的成员函数都是模板函数 B)可以为类模板参数设置默认值 C)类模板描述了一组类 D)类模板中只允许有一个类型参数 (26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是 A)setprecision B)setw C)setfill D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是 intfunl(); classTes
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 二级 C+ 答案