【计算机类职业资格】二级C++-218及答案解析.doc
《【计算机类职业资格】二级C++-218及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-218及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-218 及答案解析(总分:69.00,做题时间:90 分钟)一、选择题(总题数:40,分数:69.00)1.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass(int i=0)cout1; MyClass(const MyClass MyClass retum*this; MyClass()cout4; ; int main() MyClass obj1(1),obj2(2),obj3(obj1); return0; 执行这个程序的输出结果是_。(分数:1.00)A.112444B.1
2、1114444C.121444D.113144442.有以下程序: #includeiostream using namespace std; Class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,samplc s2) this-n=s1.n+s2.n; return(*this); void disp() cout“n”nendl; ; int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0;
3、 程序运行后,输出的结果是 _ 。(分数:2.00)A.n10B.n5C.n20D.n=153.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数4.有以下程序: #includeiostream us
4、ing namespace std; class R public: R(int r1,int r2) R1=r1; R2=r2; void print(); void print()corist; private: int R1,R2; ; void R:print() void R:print()coiist int main() R a(5,4); const R b(20,52); b.print(); return 0; 执行后的输出结果是_。(分数:1.00)A.5,4B.20,52C.0,0D.4,55.下面的函数调用为: fun(x+y,3,min(n-1,y)则 fun 的实
5、参个数是_。(分数:2.50)A.3B.4C.5D.66.软件详细设计的主要任务是确定每个模块的 _ 。(分数:2.00)A.算法和使用的数据结构B.外部接口C.功能D.编程7.以下选项中合法的用户标识符是 _ 。(分数:2.00)A.longB._2TestC.3DmaxD.dat8.若已经声明了函数原型“bool fun(bool a,int b=0);”,则下列重载函数声明中正确的是_。(分数:1.00)A.bool fun(bool a=true,int b=0);B.int fun(bool a,int );C.void fun(double a,int );D.void fun(b
6、ool a,int b=0);9.有如下程序段: int i=0,j=1; int / r=j;/ int*p=/ *p=r;/ 其中会产生编译错误的语句是_。(分数:1.00)A.B.C.D.10.将 E-R 图转换为关系模式时,实体和联系都可以表示为_。(分数:2.50)A.属性B键C.关系D域11.下面不属于需求分析阶段工作的是_。(分数:1.00)A.需求获取B.可行性研究C.需求分析D.撰写软件需求规格说明书12.有如下类定义: class Test public: Test()a=0;c=0;/ int f(int a)constthis-a=a;/ static int g()r
7、eturn a;/ voidh(intb)Test:b=b;/ private: int a; static int b; const int c; ; int Test:b=0; 在标注号码的行中,能被正确编译的是_。(分数:1.00)A.B.C.D.13.下列字符串中,正确的 C+标识符是 _ 。(分数:2.00)A.foo-1B.2bC.newD._25614.Windows 环境下,由 C+源程序文件编译而成的目标文件的扩展名是 _ 。(分数:2.00)A.cppB.exeC.objD.lik15.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是(分数:2.
8、00)A.选择B.连接C.投影D并16.软件设计中划分模块的一个准则是_。(分数:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合17.下列关于栈的叙述正确的是_。(分数:1.00)A.栈顶元素最先被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对18.下列关于类定义的说法中,正确的是_。(分数:2.00)A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义19.生成派生类对象时,派生类构造函数调用基类构造函数的条件是_。(分数:1.00)A.无需任何条件B
9、.基类中显式定义了构造函数C.派生类中显式定义了构造函数D.派生类构造函数明确调用了基类构造函数20.有如下程序: #includeiostream using namespace std; classAA int k; protected: int n; void setK(int k)this-k=k; public: void setN(int n)this-n=n; ; class BB:public AA/*类体略*/; intmain() BB x; x.n=1; /1 x.setN(2); /2 x.k=3; /3 x.setK(4); /4 return 0; 在标注号码的四条
10、语句中正确的是_。(分数:2.00)A.1B.2C.3D.421.有两个关系 R 和 T 如下: (分数:2.50)A.选择B.投影C交D并22.类 MyClass 的定义如下: class MyClass public: MyClass()value=0; SetVariable(int i)value=i; private: int value; ; 则对下列语句序列正确的描述是_。(分数:1.00)A.语句 p=my;是把对象 my 赋值给指针变量 pB.语句 MyClass*p,my;会调用两次类 MyClass 的构造函数C.对语句*P.SetVariable(5)的调用是正确的D.
11、语句 p-SetVariable(5)与语句 my.SetVariable(5)等价23.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值24.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1 else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:1.00)A.条件部分可以是一个 if 语句,例如 if
12、(if(a=0)B.语句部分可以是一个 if 语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while()25.当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 _ 。(分数:1.00)A.ios:inB.ios: outC.ios:in lios:outD.以上都不对26.下列关于输入输出流的叙述中,正确的是_。(分数:2.50)A.一个文件流可以与一个数据文件相联系B.cin 是专门从键盘输入数据的输入流类C.流运算符“”用来从输入流中读取数据D.宽
13、度设置的效果永久有效27.下列不属于 C+关键字的是(分数:2.50)A.defaultB.unsignedC.goD.try28.有如下类定义: class Point int x_,y_; public: Point():x_(0),y_(0) Point(int x,int y=0):x_(x),y_(y) ; 若执行语句 Point a(2),b3,*c4; 则 Point 类的构造函数被调用的次数是_。(分数:2.00)A.2 次B.3 次C.4 次D.5 次29.下列程序的输出结果是_。 #includeiostream using namespace std; int main(
14、) char a=“Hello,Test“; char*p=a; while(*p) coutchar(*p+“A“-“a“); else cout *p; p+; return 0; (分数:1.00)A.hello,testB.Hello,TestC.HELLO,TESTD.hELLO,tEST30.支持数据库各种操作的软件系统叫做 _ 。(分数:2.00)A.数据库管理系统B.文件系统C.数据库系统D.操作系统31.凡是函数中未指定存储类别的局部变量,其隐含的存储类型是 _ 。(分数:2.00)A.autoB.staticC.regiserD.extern32.下列叙述中正确的是(分数:
15、2.00)A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法33.已知将运算符“+”和“*”作为类 Complex 的成员函数重载,设 c1 和 c2 是类 Complex 的对象,则表达式 c1+c2*c1 等价于_。(分数:2.00)A.c1.operator*(c2.operator+(c1)B.c1.operator+(c2.operator*(c1)C.c1.oper
16、ator*(c1.operator+(c2)D.c2.operator+(c1.operator*(c1)34.若在表达式“y/x”中,“/”是作为成员函数重载的运算符,则该表达式还可以表示为_。(分数:2.00)A.Operator/(y)B.operator/(x,y)C.operator/(x)D.operator/(y,x)35.下列关于函数模板的描述中,错误的是(分数:2.00)A.从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准B.对于常规参数所对应的模板实参,任何情况下都不能省略C.虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参D.模板参数表不能为
17、空36.有如下两个类定义: class AA; class BB AA v1,*v2; BB v3; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是_。(分数:2.00)Av1Bv2Cv3Dv437.以下 for 语句中不是死循环的是 _ 。(分数:2.00)A.for(int i=0;i1;+i);B.for(int i=0;+i);C.for(int i=1;i0;+i);D.for(;);38.下列函数参数默认值定义错误的是 _ 。(分数:2.00)A.Fun(int x,int y=0)B.Fun(int x=100)C.Fun(int x=0,int y)D.Fun
18、(int x=f()(假定函数 f()已经定义)39.对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是_。(分数:2.50)A.公有或私有B.私有C.保护或私有D.公有或保护40.有如下程序: #includeiostream using namespace std; class Base public: void fun1()cout“Baseha/n“; virtual void fun2()cout“Base/n“; ; class Derived:public Base public: void fun1()cout“Derived/n“
19、; void fun2()cout“Derived/n“; ; void f(Baseb.fun2(); int main() Derived obj; f(obj); return 0; 执行这个程序的输出结果是_。(分数:2.00)A.BaseBaseB.BaseDerivedC.DerivedBaseD.DerivedDerived二级 C+-218 答案解析(总分:69.00,做题时间:90 分钟)一、选择题(总题数:40,分数:69.00)1.有如下程序: #includeiostream using namespace std; class MyClass public: MyCl
20、ass(int i=0)cout1; MyClass(const MyClass MyClass retum*this; MyClass()cout4; ; int main() MyClass obj1(1),obj2(2),obj3(obj1); return0; 执行这个程序的输出结果是_。(分数:1.00)A.112444 B.11114444C.121444D.11314444解析:解析 本题考查构造函数和复制构造函数以及重载运算符。本题中先后定义了两个对象obj1,obj2,依次输出 11,然后定义了对象 obj3,调用复制构造函数,输出 2,最后执行三次析构函数,输出 444。2
21、.有以下程序: #includeiostream using namespace std; Class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,samplc s2) this-n=s1.n+s2.n; return(*this); void disp() cout“n”nendl; ; int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是 _ 。(分数:2.00)
22、A.n10B.n5C.n20D.n=15 解析:解析 本题考查 this 指针的使用类成员函数 add 中通过 this 指针实现私有数据成员 n 的赋值。3.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译运行这个程序将出现的情况是_。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不
23、确定的数 解析:解析 此题考查的是函数参数的传递。C+语言中,函数在传递参数时,总是将实参的值传递给被调用函数的形参,即传值调用。因此,在函数中对形参所作的任何操作都不会改变实参的值。4.有以下程序: #includeiostream using namespace std; class R public: R(int r1,int r2) R1=r1; R2=r2; void print(); void print()corist; private: int R1,R2; ; void R:print() void R:print()coiist int main() R a(5,4); c
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C218 答案 解析 DOC
