【计算机类职业资格】二级C++-236及答案解析.doc
《【计算机类职业资格】二级C++-236及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-236及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-236 及答案解析(总分:66.00,做题时间:90 分钟)一、选择题(总题数:36,分数:66.00)1.下列关于纯虚函数与抽象类的描述中,错误的是_。(分数:1.00)A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C.一个基类声明了纯虚函数,该基类的派生类一定不是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出2.如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。 #includeiostream using namespace std; class Base
2、 int a,b; public: Base(int x,int y)a=x;b=y; void show()couta“,“bendl; ; class Derived:public Base int c,d; public: Derived(int x,int y,int z,int m):Base(x,y)c=z;d=w; void show()coutc“,“dendl; ; int main() Base B1(50,50),*pb; Derived D1(10,20,30,40); pb= class Point int x,y; public: Point (int x1=0,i
3、nt y1=0):x(x1),y(y1) int get()return x+y; ; class Circle Point center; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),radius(r) int get()return center.get()+radius; ; int main() Circle c(3,4,5); coutc.get()endl; return 0; 运行时的输出结果是_。(分数:2.50)A.5B.7C.9D.124.若目前 D 盘根目录下并不存在 test.txt 文件,
4、则下列打开文件方式不会自动创建 test.txt 文件的是_。(分数:2.50)A.ifstream fin; fin.open(“d:/test.txt“,los_base:in);B.fstream fio; fio.open(“d:/test.txt“,los_base:out);C.ofstream four; fout.open(“d:/test.txt“,ios_base:out);D.ofstream fout; four.open(“d:/test.txt“,los_base:app);5.若要对 Data 类中重载的加法运算符成员函数进行声明,下列选项中正确的是_。(分数:2
5、.50)A.Data+(Data);B.Data operator+(Data);C.Data+operator(Data);D.opcrator+(Data, Data);6.语句序列“char*p=“teacher“; p+=2; coutp+2“/t“*(p+2);”的输出结果是_。(分数:2.00)A.acher aB.cher cC.her hD.h her7.有如下程序: #includeiostream using namespace std; class Base public: Base()cout“B“; Base()cout“b“; ; class Derived:pub
6、lic Base public: Derived()cout“D“; Derived()cout“d“; ; int main() Derived obj; return 0; 运行这个程序的输出是_。(分数:2.50)A.BDbdB.BDdbC.DBbdD.DBdb8.有如下程序: #includeiostream using namespace std; class Base int x; public: Base(int n=0): x(n) coutn; int getX()const return x; ; class Derived: public Base int y; publ
7、ic: Derived(int m, int n): y(m), Base(n) coutm; Derived(int m): y(m) coutm; ; int main() Derived d1(3), d2(5, 7); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.375B.357C.0375D.03579.计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if (n=0)return 1; else if(n=1) return 2; else return fib(n=1)+fib(n=2); 若执行函数调用表达式 fib(2),函数
8、 fib 被调用的次数是 _ 。(分数:2.00)A.1B.2C.3D.410.有如下程序: #include iostream using namespace std; class BASE public: BASE()cout“BASE“; ; class DERIVED: public BASE public: DERIVED() cout“DERIVED“; int main() DERIVED x; return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE11.有如下程序: #includeio
9、stream #includestring using namespace std; class MyString public: char str80; MyString(const char*s)strepy(str s); MyString return*this; ; ostream int main() MyString x(“abc“), y(“cde“); cout(x+=y)endl; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.abcB.cdeC.abcdeD.abccde12.下列关于模板的说法正确的是_。(分数:1.00)A.模板的实参在任何时候
10、都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的成员函数全部都是模板函数13.下列语句分别是不同程序中的第一个输入/输出语句,若去掉其中的“left”,输出效果将发生变化的是_。(分数:2.50)A.coutleftsetfill(“*“)357;B.coutleftsetw(5)357;C.coutleftsetw(5)“ABCDE“;D.coutleft“ABCDE“;14.以下程序的输出结果是 _ 。 min() int i=0,a=0; while(i20) for(;) if(i%10)=0)break; else i-; i+=11;a+=
11、i; coutaendl; (分数:2.00)A.21B.32C.33D.1115.下列函数模板的定义中,合法的是_。(分数:1.00)A.template typename T T abs(T x) return x0? -x:x;B.template class T T abs(T x) return x0? -x:x;C.template T class T abs(T x)return x0? -x:x;D.template T abs(T x)return x0? -x:x;16.下列关于 C+函数的说明中,正确的是_。(分数:1.00)A.内联函数就是定义在另一个函数体内部的函数B
12、.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式17.下列数据结构中,能够按照“先进后出”原则存取数据的是_。(分数:1.00)A.循环队列B栈C.队列D.二叉树18.下列有关构造函数的描述错误的是 _ 。(分数:2.00)A.构造函数在说明类变量时自动执行B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数可以对静态数据成员进行初始化19.下列关于运算符重载的叙述中,错误的是_。(分数:1.00)A.有的运算符可以作为非成员函数重载B.所有的运算符都可以通过重载而被赋
13、予新的含义C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载20.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是 _ 。(分数:2.00)A.不合法的运算符B.一元运算符C.无操作数的运算符D.二元运算符21.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.通过运算符重载机制可以为 C+语言扩充新的运算符B.运算符重载的作用是使已有的运算符作用于类的对象C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以重载22.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是_。(分数:2.00)A.fstreamB.i
14、streamC.cstdlibD.iomanip23.下面程序的输出结果是 _ 。 #includeiostream #includestring using namespace std; void main() charp110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); charstr50=“xyz“; strcpy(str+2,strcat(p1,p2); coutstr; (分数:2.00)A.xyabcABCB.yzabcABCC.xyzabcABCD.zabcABC24.有如下程序: #includeiostream using namesp
15、ace std; class Point public: static int number; public: Point() number+; Point() number -; ; int Point:number=0; int main() Point *ptr; Point A, B; Point *ptr_point=new Point3; ptr=ptr_point; Point C; coutPoint:numberendl; deleteptr; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.3B.4C.6D.725.若要向一个文件的末尾添加数据,则需使
16、用的打开方式是(分数:2.50)A.ios_base:inB.ios_base:outC.ios_base:appD.ios_base:trunc26.在下列程序的横线处填上适当的内容,使程序执行后的输出结果为 ABCD_。 #includeiostream using namespace std; class A public:A()cout“A“; ; class B:_ public:B()cout“B“; ; classC: virtua1 pubtic A public:C()cout“C“; ; class D:public B,public D public:D()cout“D“
17、; ; void main() D obj;(分数:1.00)A.public AB.private AC.protected AD.virtual public A27.有以下程序: #includeiostream. h void fun(int a, int b, int c) a=456, b=567, c=678; void main() int x=10, y=20, z=30; fun(x, y, z); coutx“,“y“,“zendl; 输出结果是_。(分数:1.00)A.30,20,10B.10,20,30C.456,567,678D.678,567,45628.下面关于
18、运算符重载的描述错误的是_。(分数:2.50)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符函数的调用必须使用关键字 operatorD.在 C+语言中不可通过运算符重载创造出新的运算符29.通常的拷贝初始化构造函数的参数是 _ 。(分数:1.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名30.在软件开发中,需求分析阶段可以使用的工具是_。(分数:2.50)A.N-S 图B.DFD 图C.PAD 图D.程序流程图31.对于 switch(c) 中的变量 c 不能定义为的类型是 _
19、 。(分数:1.00)A.unsignedB.intC.charD.float32.下列关于 C+流的描述中,错误的是 _ ,(分数:2.50)A.cout“A“表达式中输出字符 AB.eof 函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件 fstreamD.以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件33.数据库管理系统是_。(分数:2.50)A.操作系统的一部分B.系统软件C.一种编译系统D.一种通信软件系统34.有下列程序: #include stdio.h void f(int*p,int*q); void main() int m=
20、1,n=2,*r=m; f(r,n);printf(“%d,%d“,m,n); void f(int*p,int*q) p=p+1;*q=*q+1;) 程序运行后的输出结果是_。(分数:2.50)A.1,3B.2,3C.1,4D.1,235.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:1.00)A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA36.下列关于文件流的描述中,正确的是_。(分数:2.50)A.文件流只能完成针对磁盘文件的输入/输出B.建立一个文件流对象
21、时,必须同时打开一个文件C.若输入流要打开的文件不存在,将建立一个新文件D.若输出流要打开的文件不存在,将建立一个新文件二级 C+-236 答案解析(总分:66.00,做题时间:90 分钟)一、选择题(总题数:36,分数:66.00)1.下列关于纯虚函数与抽象类的描述中,错误的是_。(分数:1.00)A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具有纯虚函数的类C.一个基类声明了纯虚函数,该基类的派生类一定不是抽象类 D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出解析:解析 纯虚函数是在声明虚函数时被“初始化”为 0 的虚函数。不定义对象而只作为一种基本类型作为继承
22、的类,称为抽象类。凡是包含纯虚函数的类都是抽象类。抽象类的作用是作为一个类族的共同基类。2.如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。 #includeiostream using namespace std; class Base int a,b; public: Base(int x,int y)a=x;b=y; void show()couta“,“bendl; ; class Derived:public Base int c,d; public: Derived(int x,int y,int z,int
23、 m):Base(x,y)c=z;d=w; void show()coutc“,“dendl; ; int main() Base B1(50,50),*pb; Derived D1(10,20,30,40); pb= class Point int x,y; public: Point (int x1=0,int y1=0):x(x1),y(y1) int get()return x+y; ; class Circle Point center; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),radius(r) i
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C236 答案 解析 DOC
