1、二级 C+笔试 34 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下面不是派生类对基类的继承方式的是( )。(分数:2.00)A.privateB.publicC.staticD.protected2.以下关于 C+语言类的说法中正确的是( )。(分数:2.00)A.C+语言的默认访问权限是 privateB.C+语言中的类定义,用户一定要自己定义一个构造函数用于实例化类C.C+语言中的成员函数的实现部分一定要写在类定义外D.C+语言中的类不能够嵌套定义3.已知一个类 Sample,( )是定义指向类 Sample 成员函数的指针
2、,假设类有三个公有成员:voidfl(int),void f2(int)和 int a。(分数:2.00)A.Sample*pB.Int Samale:*pc= char c,d; Cinabcd;(分数:2.00)A.10,20空格A,B回车B.10空格20空格A空格B回车C.10空格20,A,B回车D.10,20,A,B回车18.若已知 char str20;,有语句 cinstr; 当输入为: This is a program 所得的结果是 str=( )。(分数:2.00)A.This is a programB.ThisC.This isD.This is a19.下列关于纯虚函数
3、与抽象类的描述中,错误的是( )。(分数:2.00)A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C.一个基类中说明具有纯虚函数,该基类的派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出20.类模板的使用实际上是将类模板实例化成一个具体的( )。(分数:2.00)A.类B.对象C.函数D.模板类21.磁盘文件操作中,打开磁盘文件的访问方式常量中,( )是以追加方式打开文件的。(分数:2.00)A.inB.outC.appD.ate22.若有以下变量和函数说明: #includeiostream.h charCh=*; void s
4、ub (int x,int y,char ch,double*Z) switch(ch) case+:*Z=x+y;break: case-:*Z=x-y;break: case*:*Z=x*y; break: case/:*Z=X/y;break; 以下合法的函数调用语句是( )。(分数:2.00)A.sub(10,20,Ch,;B.sub(1.2+3,2*2,+, class derrvel: public base public: void who() cout“derivel class“end1; ; class derive2:public base public: void wh
5、o()cout“derive2class“end1; ; void main() base obj1,*P; derivel obj2; derive2 obj3; p= (分数:2.00)填空项 1:_43.有如下的类模板定义: templatetypename TYPE class MyClass TYPE n; public: MyClass(TYPE k); ; 其中构造函数 MyClass 用的值初始化数据成员 n。因此在模板类体外,构造函数MyClass 应定义_。(分数:2.00)填空项 1:_44.以下程序的执行结果是_。 #includeiostream.h #include
6、iomanip.h void main() cout.fil(*): cout.width(10); coutsetiosflags(ios:hex)160endl; cout.width(8); cout160endl; cout.width(4): cout160endl; (分数:2.00)填空项 1:_45.如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是 1。(分数:2.00)填空项 1:_46.流操作子 1 可跳过输入流中的前导空白字符。(分数:2.00)填空项 1:_47.以下程序的执行结果是_。 #includeiostream.h #includefstrea
7、m.h #includestdlib.h void main() char ch: fstream file: fileopen(“abcdat“,ios:out1ios:inlios:binary); if(! file) cout“abc.dat文件不能打开”endl: abort(); file“12 34 56”endl: file.seekg(o,ios:beg):while(!fileeof() streampos here=filetellg(); fileget(ch): if(ch=) couthere“: coutendl: (分数:2.00)填空项 1:_48. 1 是
8、C+语言程序的人口。(分数:2.00)填空项 1:_49.C+语言中的基本符号可以分为_、_、_三类。(分数:2.00)填空项 1:_50.静态联编所支持的多态性称为_多态性,动态联编所支持的多态性则称为_多态性,动态多态性由_来支持。(分数:2.00)填空项 1:_二级 C+笔试 34 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下面不是派生类对基类的继承方式的是( )。(分数:2.00)A.privateB.publicC.static D.protected解析:2.以下关于 C+语言类的说法中正确的是( )。(分数:2.00
9、)A.C+语言的默认访问权限是 private B.C+语言中的类定义,用户一定要自己定义一个构造函数用于实例化类C.C+语言中的成员函数的实现部分一定要写在类定义外D.C+语言中的类不能够嵌套定义解析:3.已知一个类 Sample,( )是定义指向类 Sample 成员函数的指针,假设类有三个公有成员:voidfl(int),void f2(int)和 int a。(分数:2.00)A.Sample*pB.Int Samale:*pc= char c,d; Cinabcd;(分数:2.00)A.10,20空格A,B回车B.10空格20空格A空格B回车 C.10空格20,A,B回车D.10,2
10、0,A,B回车解析:18.若已知 char str20;,有语句 cinstr; 当输入为: This is a program 所得的结果是 str=( )。(分数:2.00)A.This is a programB.This C.This isD.This is a解析:19.下列关于纯虚函数与抽象类的描述中,错误的是( )。(分数:2.00)A.纯虚函数是一种特殊的虚函数,它没有具体的实现 B.抽象类是指具有纯虚函数的类C.一个基类中说明具有纯虚函数,该基类的派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出解析:20.类模板的使用实际上是将类模板实例化成一
11、个具体的( )。(分数:2.00)A.类B.对象 C.函数D.模板类解析:21.磁盘文件操作中,打开磁盘文件的访问方式常量中,( )是以追加方式打开文件的。(分数:2.00)A.inB.outC.app D.ate解析:22.若有以下变量和函数说明: #includeiostream.h charCh=*; void sub (int x,int y,char ch,double*Z) switch(ch) case+:*Z=x+y;break: case-:*Z=x-y;break: case*:*Z=x*y; break: case/:*Z=X/y;break; 以下合法的函数调用语句是(
12、 )。(分数:2.00)A.sub(10,20,Ch,;B.sub(1.2+3,2*2,+, class derrvel: public base public: void who() cout“derivel class“end1; ; class derive2:public base public: void who()cout“derive2class“end1; ; void main() base obj1,*P; derivel obj2; derive2 obj3; p= (分数:2.00)填空项 1:_ (正确答案:*(str+i)或 stri)解析:43.有如下的类模板定义
13、: templatetypename TYPE class MyClass TYPE n; public: MyClass(TYPE k); ; 其中构造函数 MyClass 用的值初始化数据成员 n。因此在模板类体外,构造函数MyClass 应定义_。(分数:2.00)填空项 1:_ (正确答案:templatetypename TYPE)解析:TyClassTYPE:MyClass(TYPE k):n(k)44.以下程序的执行结果是_。 #includeiostream.h #includeiomanip.h void main() cout.fil(*): cout.width(10);
14、 coutsetiosflags(ios:hex)160endl; cout.width(8); cout160endl; cout.width(4): cout160endl; (分数:2.00)填空项 1:_ (正确答案:*a0)解析:*a0 *a045.如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是 1。(分数:2.00)填空项 1:_ (正确答案:类的成员对象)解析:46.流操作子 1 可跳过输入流中的前导空白字符。(分数:2.00)填空项 1:_ (正确答案:ws)解析:47.以下程序的执行结果是_。 #includeiostream.h #includefstre
15、am.h #includestdlib.h void main() char ch: fstream file: fileopen(“abcdat“,ios:out1ios:inlios:binary); if(! file) cout“abc.dat文件不能打开”endl: abort(); file“12 34 56”endl: file.seekg(o,ios:beg):while(!fileeof() streampos here=filetellg(); fileget(ch): if(ch=) couthere“: coutendl: (分数:2.00)填空项 1:_ (正确答案:25)解析:48. 1 是 C+语言程序的人口。(分数:2.00)填空项 1:_ (正确答案:main-|_|-函数)解析:49.C+语言中的基本符号可以分为_、_、_三类。(分数:2.00)填空项 1:_ (正确答案:字母 数字 特殊符号)解析:50.静态联编所支持的多态性称为_多态性,动态联编所支持的多态性则称为_多态性,动态多态性由_来支持。(分数:2.00)填空项 1:_ (正确答案:编译时的 动行时的 虚函数)解析: