欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C++笔试317及答案解析.doc

    • 资源ID:1324730       资源大小:89KB        全文页数:15页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C++笔试317及答案解析.doc

    1、二级 C+笔试 317 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.将下列程序写成三目运算表达式是( )。 if(xy)min=x; else min=y;(分数:2.00)A.min=(x?x:yB.min=(x?x:yC.min=(xx:yD.min=(x?x,y2.下列函数的功能是判断字符串 str 是否对称,对称则返回 true,否则返回 false。请在横线处填上适当内容,实现该函数。 Boo1 fun(char*str) int i=0,j=0; while(strjj+; for(j-;iji+,j-); retur

    2、n i _ j; (分数:2.00)A.B.|C. class TestClass public: TestClass(int n)number=n; _/拷贝构造函数 TestClass() private: int number; ;TestClass fun(TestClass p) TestClass temp(P); return temp; int main() TestClsss obj1(10),obj2(0); TestClass obj3(obj1); obj2=fun(obj3); return 0; (分数:2.00)A.TestClass(TestClass B.Te

    3、stClass(TestClass othenumber=othenumber;C.TestClass(TestClass D.TestClass(5.下列对派生类的表述中,错误的是( )。(分数:2.00)A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的缺省继承方式是 privateD.派生类只继承了基类的公有成员和保护成员6.有如下程序: #includeiostream using namespace std; class A public: A()cout“A“; A()cout“A“; ; class B:public A A*p; public: B()

    4、cout“B“;p=new A; B()cout“B“;delete p; ; int main() B obj; return 0; 执行这个程序的输出结果是( )。(分数:2.00)A.BAAABAB.ABABAAC.BAABA-AD.ABAABA7.若类 A 和类 B 的定义如下: #includemalloc.h class A int i,j; public: int geti() return i; ; class B:public A int k; public: void make() k=i*j; ; 则上述定义中非法的表达式是( )。(分数:2.00)A.k=i*jB.in

    5、t k;C.return i;D.void make();8.下列有关内联函数的叙述中,正确的是( )。(分数:2.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数是通过编译器来实现的D.内联函数函数体的最后一条语句必须是 return 语句9.有下列二叉树,对此二叉树前序遍历的结果为( )。 (分数:2.00)A.XZCYABB.XYZABCC.XYABCZD.XYAZBC10.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为( )。(分数:2.00)A.operator+(operator*(y,)B.operator+

    6、(operator*(y,)C.operator+(x*(y,)D.x+(operator*(y,)11.类 MyClass 的定义如下: class MyClass public: MyClass()value=0; SetVariable(int i)value=i; private: int value; ; 则对下列语句序列正确的描述是( )。 MyClass*P, my;p=(分数:2.00)A.语句 p= 是把对象 my 赋值给指针变量 PB.语句 MyClass*p, my; 会调用两次类 MyClass 的构造函数C.对语句* SetVariable(5)的调用是正确的D.语句

    7、 p-SetVariable(5)与语句 mSetVariable(5)等价12.有如下类声明; class SAMPLE int n; public: SAMPLE(int i=0):n(i) void setValue(int n0); ;下列关于 setValue 成员函数的实现中,正确的是( )。(分数:2.00)A.SAMPLE:setValue(int n0)n=n0;)B.void SAMPLE:setValue(int n0)n=n0;C.void setValue(int n0)n=n0;D.(int n0)n=n0;13.如果一个模板声明列出了多个参数,则每个参数之间必须使

    8、用逗号隔开,每个参数都必须使用( )关键字来修饰。(分数:2.00)A.constB.staticC.voidD.class14.关于模板,下列说法不正确的是( )。(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数15.类 MyClass 的定义如下,若要对 value 赋值,则下面语句正确的是( )。 class MyClass public: MyClass() MyClass(int i)value=new int(i); int*value; ;(分数:2.00)A.MyClas

    9、s my;mvalue=10;B.MyClass my;*mvalue=10;C.MyClass my;m*value=10;D.MyClass my(10);16.有如下程序: #includeiostream using namespace std; Class Con char ID; public: Con():ID(A)cout1; Con(char ID) :ID(ID) cout2; Con(Con char get1D()constreturn ID; ; void show(Con c)coutc.get1D(); int main() Con c1; show(c1); C

    10、on c2(B); show(c2); return 0; 执行上面程序的输出是( )。(分数:2.00)A.13A23AB.23A13BC.13A23BD.13B23A17.算法的空间复杂度是指( )。(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间18.下列情况中,不会调用拷贝构造函数的是( )。(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时19.下列选项中,是软

    11、件调试技术的是( )。(分数:2.00)A.错误推断B.集成测试C.回溯法D.边界值分析20.定义如下枚举类型:enumMonday,Tuesday,Wednesday,Thursday,Friday=2;表达式 Wednesday= =Friday 的值是( )。(分数:2.00)A.falseB.trueC.2D.异常21.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性22.下列叙述中正确的是( )。(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的

    12、C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述三种说法都不对23.下列打开文件的表达式中,错误的是( )。(分数:2.00)A.ofstream ofile;ofilopen(“C:/vc/Labtxt“,ios:binar;B.fstream iofile;iofilopen(“abtxt“,ios:at;C.ifstream ifile(“C:/vc/abtxt“);D.couopen(“C:/vc/abtxt“,ios:binar;24.下列关于成员函数特征的描述中,错误的是( )。(分数:2.00)A.成员函数一定是内联函数B.成员函数可以重载C.成员函数可以设

    13、置参数的默认值D.成员函数可以是静态的25.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序26.已知递归函数 fun 的定义如下: int fun(int n) if(n=1)return 1;/递归结束情况 else return n*fun(n-2);/递归 则函数调用语句 fun(5)的返回值是( )。(分数:2.00)A.5B.12C.15D.3027.有如下程序: #includeiostream using namespace std; long fun(int n) if(n2) return(fun(n-1)+fun(n-2);

    14、else return 2; int main() coutfun(3)end1; return 0; 则该程序的输出结果应该是( )。(分数:2.00)A.2B.3C.4D.528.C+语言本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的I/O 类。I/O 操作分别由两个类 istream 和( )提供。(分数:2.00)A.fstreamB.iostreamC.ostreamD.cin29.按照“先进先出”组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树30.数据库 DB、数据库系统 DBS、数据库

    15、管理系统 DBMS 之间的关系是( )。(分数:2.00)A.DB 包括 DBS 和 DBMSB.DBMS 包括 DB 和 DBSC.DBS 包括 DB 和 DBMSD.没有任何关系31.下列叙述中正确的是( )。(分数:2.00)A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的32.非成员函数只有在声明为( ),才能访问这个类的所有 private 成员。(分数:2.00)A

    16、.内联函数B.纯虚函数C.重载函数D.友元函数33.结构化分析方法是面向( )的自顶向下、逐步求精进行需求分析的方法。(分数:2.00)A.对象B.数据结构C.数据流D.目标34.下列程序的输出结果是( )。 #includeiostream using namespace std; templatetypename T T fun(T a,T b)return(ab)?a:b; void main() coutfun(3,6),fun(3.14F,6.28F)end1; (分数:2.00)A.6,3.14B.3,6.28C.3,3.14D.6,6.2835.在 C+程序中,如果要求通过函数来

    17、实现一种简单的功能,并且要求尽可能加快程序执行速度,则应该选用( )。(分数:2.00)A.内联函数B.重载函数C.递归调用D.嵌套调用二、B填空题/B(总题数:15,分数:30.00)36.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为 1。(分数:2.00)填空项 1:_37.在关系模型中,二维表的行称为 1。(分数:2.00)填空项 1:_38.数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中, 1 是用户的数据视图,也就是用户所见到的数据模式。(分数:2.00)填空项 1:_39.排序是计算

    18、机程序设计中的一种重要操作,常见的排序方法有插入排序、 1 和选择排序。(分数:2.00)填空项 1:_40.栈的三种基本运算是入栈、退栈和 1。(分数:2.00)填空项 1:_41.纯虚函数的声明总是以 1 结束。(分数:2.00)填空项 1:_42.下列程序的输出结果为 Objectid=O Obiectid=1 请将程序补充完整。 #includeiostream using namespace std; class Point public: Point(int xx=0,int yy=0)X=xx;Y=yy;countP+; Point()countP-; int GetX()ret

    19、urn X; int GetY()return Y; static void GetC()cout“Object id=“countPend1; private: int X,Y; static int countP; ; _/静态数据成员的初始化 int main() Point:GetC(); Point A(4,5); A.GetC(); return 0; (分数:2.00)填空项 1:_43.下列程序的输出结果是_。 #includeiostream using namespace std; Class Test public: Test()cnt+; Test()cnt-; sta

    20、tic int Count()return cnt; private: static int cnt; ; int Test:cnt=0; int main() coutTest:Count()“; Test t1,t2; Test*pT3=new Test; Test*pT4=new Test; coutTest:Count()“; delete pT4; delete pT3; coutTest:Count()end1; return 0; (分数:2.00)填空项 1:_44.执行这个程序的输出结果是( ); #includeiostream using namespace std; c

    21、lass TestClass1 public: void fun1()cout“TestClass1/n“; virtual void fun2()cout“TestClass1/n“; ;class TestClass2:public TestClass1 public: void fun1()cout“TestClass2/n“; void fun2()cout“TestClass2/n“; ; void f(TestClass1b.fun2(); int main() TestClass2 obj; f(obj); return 0; (分数:2.00)填空项 1:_45.表达式 c3=

    22、c1.operator+(c2)或 c3=operator+(c1,c2)还可以表示为 1。(分数:2.00)填空项 1:_46.插入排序算法的主要思想:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。Insert 类的成员函数 sort()实现了插入排序算法,请填空。 class Insert public: Insert(int *b0,int n0):b(b0),n(n0);/参数 b0 是某数组首地址,n 是数组元素个数 void sort() /此函数假设已排序序列初始化状态只包含 b0,未排序序列初始为 b1.bn-1 for(int i=1;in;+i) int t

    23、=bi; int j; for(_;j0;-j) if(tbj-1) break; bj=bj-1; bj=t; (分数:2.00)填空项 1:_47.程序中有如下语句: for(int i=0;i5;i+)cout*(p+i)“,“; 能够依次输出 int 型一维数组 DATA 的前 5 个元素。由此可知,变量 p 的定义及初始化语句是_。(分数:2.00)填空项 1:_48.已知递归函数 f 的定义如下: int f(int n) if(n1)return 1; /递归结束情况 else return n*f(n-2);/递归) 则函数调用语句 f(5)的返回值是_。(分数:2.00)填空

    24、项 1:_49.有如下定义: class MA int value; public: MA(int n=0):value(n) ; MA*ta,tb; 其中 MA 类的对象名标识符是_。(分数:2.00)填空项 1:_50.有如下程序: #includeiostream using namespace std; class A public: A()cout“A“; A()cout“A“; ; class B A a; public: B()cout“B“; B()cout“B“; ; int main() B b; return 0; 程序的输出结果是_。(分数:2.00)填空项 1:_二级

    25、 C+笔试 317 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.将下列程序写成三目运算表达式是( )。 if(xy)min=x; else min=y;(分数:2.00)A.min=(x?x:yB.min=(x?x:y C.min=(xx:yD.min=(x?x,y解析:解析 题目中给出的程序是求 x,y 中的小值。即如果 x 小于 y,那么 min=x,否则 min=y。条件运算符为“?:”,(xy)?x:y 是当 x 小于 y 时取 x,否则取 y。2.下列函数的功能是判断字符串 str 是否对称,对称则返回 true,否则返回

    26、 false。请在横线处填上适当内容,实现该函数。 Boo1 fun(char*str) int i=0,j=0; while(strjj+; for(j-;iji+,j-); return i _ j; (分数:2.00)A. B.|C. class TestClass public: TestClass(int n)number=n; _/拷贝构造函数 TestClass() private: int number; ;TestClass fun(TestClass p) TestClass temp(P); return temp; int main() TestClsss obj1(1

    27、0),obj2(0); TestClass obj3(obj1); obj2=fun(obj3); return 0; (分数:2.00)A.TestClass(TestClass B.TestClass(TestClass othenumber=othenumber;C.TestClass(TestClass D.TestClass(解析:解析 拷贝构造函数中的赋值构造函数也是构造函数,但它只有一个参数,这个参数是本类的对象,即 other,所以赋值操作将本类的参数 other,number 赋值给 number;而且采用对象的引用的形式,也就是 class A public: A()cou

    28、t“A“; A()cout“A“; ; class B:public A A*p; public: B()cout“B“;p=new A; B()cout“B“;delete p; ; int main() B obj; return 0; 执行这个程序的输出结果是( )。(分数:2.00)A.BAAABAB.ABABAA C.BAABA-AD.ABAABA解析:解析 此题考查的是类的构造函数和析构函数派生类构造函数的执行顺序;首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容因此本题中,首先调用基类

    29、构造函数输出 A,然后调用子对象的构造函数输出 B, p=new A 再调用类 A 的构造函数输出 A;析构函数的调用顺序和构造函数的调用顺序相反。7.若类 A 和类 B 的定义如下: #includemalloc.h class A int i,j; public: int geti() return i; ; class B:public A int k; public: void make() k=i*j; ; 则上述定义中非法的表达式是( )。(分数:2.00)A.k=i*j B.int k;C.return i;D.void make();解析:解析 因为派生类不能是基类的私有成员

    30、i 和 j(默认情况下,成员的属性为私有),所以表达式k=i*j 是非法的。其余的访问权限都是许可的。8.下列有关内联函数的叙述中,正确的是( )。(分数:2.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数是通过编译器来实现的 D.内联函数函数体的最后一条语句必须是 return 语句解析:解析 此题考查的是内联函数的概念在调用时,内联函数会像宏函数一样地层开,将调用表达式用内联函数体来替换,所以它没有一般函数的参数压栈和退栈操作,所以选项 A) 错误;即使没有使用inline 说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选

    31、项 B) 错误:内联函数只是比普通函数有更高的执行效率。对于类型为 void 的函数,它不需要返回任何函数值,所以在函数体中既可以使用 return 语句,也可以不使用,选项 D) 错误。9.有下列二叉树,对此二叉树前序遍历的结果为( )。 (分数:2.00)A.XZCYABB.XYZABCC.XYABCZD.XYAZBC 解析:解析 对二叉树的前序遍历是指先访问根结点,然后访问左于树,最后访问右子树,并且在访问左、右子树时,先访问根结点,再依次访问其左、右于树。10.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为( )。(分数:2.00)A.operator+(oper

    32、ator*(y,)B.operator+(operator*(y,) C.operator+(x*(y,)D.x+(operator*(y,)解析:解析 在定义了重载运算符后的函数后,函数 operator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用 friend 对该函数进行声明,此函数就称为本类的友元函数。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“*”被改写为“operator*”。“+”为成员函数重载,x.operator+。所以 x+y*z 被改写为“x.operator+(operator*(y,z)”。11.类 MyClass 的

    33、定义如下: class MyClass public: MyClass()value=0; SetVariable(int i)value=i; private: int value; ; 则对下列语句序列正确的描述是( )。 MyClass*P, my;p=(分数:2.00)A.语句 p= 是把对象 my 赋值给指针变量 PB.语句 MyClass*p, my; 会调用两次类 MyClass 的构造函数C.对语句* SetVariable(5)的调用是正确的D.语句 p-SetVariable(5)与语句 mSetVariable(5)等价 解析:解析 选项 A) ,语句 p= public

    34、: SAMPLE(int i=0):n(i) void setValue(int n0); ;下列关于 setValue 成员函数的实现中,正确的是( )。(分数:2.00)A.SAMPLE:setValue(int n0)n=n0;)B.void SAMPLE:setValue(int n0)n=n0; C.void setValue(int n0)n=n0;D.(int n0)n=n0;解析:解析 此题考查了成员函数的定义格式。在类外部对成员函数定义时的一般格式为:返回类型类名:成员函数名(参数表)函数体。13.如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须

    35、使用( )关键字来修饰。(分数:2.00)A.constB.staticC.voidD.class 解析:解析 如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用 class 关键字来修饰。14.关于模板,下列说法不正确的是( )。(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数 C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数解析:解析 类模板不是一个实实在在的类,本身在编译中不会生成任何代码;用类模板定义一个对象时,不能省略实参;类模板的成员函数都是模板函敷。C+中可以为类模板的参数设置默认值,所以

    36、选项B) 错误。15.类 MyClass 的定义如下,若要对 value 赋值,则下面语句正确的是( )。 class MyClass public: MyClass() MyClass(int i)value=new int(i); int*value; ;(分数:2.00)A.MyClass my;mvalue=10;B.MyClass my;*mvalue=10;C.MyClass my;m*value=10;D.MyClass my(10); 解析:解析 因题目中定义的指针 value 是指向变量 i 的,所以直接利用语句 MyClass(int i)value=new int (i)

    37、;对 Value 进行赋值即可。16.有如下程序: #includeiostream using namespace std; Class Con char ID; public: Con():ID(A)cout1; Con(char ID) :ID(ID) cout2; Con(Con char get1D()constreturn ID; ; void show(Con c)coutc.get1D(); int main() Con c1; show(c1); Con c2(B); show(c2); return 0; 执行上面程序的输出是( )。(分数:2.00)A.13A23AB.2

    38、3A13BC.13A23B D.13B23A解析:解析 Con c1 定义 c1 对象,调用 Con 的无参数构造函数,输出 1,ID 值变为 A,执行 show(c1)时会调用拷贝构造函数,将 c1 对象的值拷贝给 show()函数的形参,此时输出 3,然后在 show()中输出 c1 的 ID 值 A,Con c2(B)定义 c2 对象,调用 Con(char ID) 构造函数,输出 2,c2 的 ID 值为B,show(c2)执行时先调用拷贝构造函数输出 3,然后输出 B因此程序输出结果为“13A23B”。17.算法的空间复杂度是指( )。(分数:2.00)A.算法程序的长度B.算法程序

    39、中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间 解析:解析 一个算法的空间复杂度一般是指执行这个算法所需的存储空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。18.下列情况中,不会调用拷贝构造函数的是( )。(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时 C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时解析:解析 拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类

    40、对象,它的一般格式:类名:类名 (const 类名表达式 Wednesday= =Friday 的值是( )。(分数:2.00)A.falseB.true C.2D.异常解析:解析 enum枚举类型名枚举元素表;其中关键词 enum”表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素表由枚举元素或枚举常量组成本题中的枚举类型中的数据值Wednesday 为 2,而 Friday 的值赋值为 2,所以判断 Wednesday 等于 Friday 的表达式值为真,即 true。21.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程

    41、序的易读性 解析:解析 程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。22.下列叙述中正确的是( )。(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 D.上述三种说法都不对解析:解析 面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。23.下列打开文件的表达式中,错误的是( )。(分数:2.

    42、00)A.ofstream ofile;ofilopen(“C:/vc/Labtxt“,ios:binar;B.fstream iofile;iofilopen(“abtxt“,ios:at;C.ifstream ifile(“C:/vc/abtxt“);D.couopen(“C:/vc/abtxt“,ios:binar; 解析:解析 选项 D) 中,cout 是标准输出流对象,所以不能用于打开文件。其他选项叙述均正确。24.下列关于成员函数特征的描述中,错误的是( )。(分数:2.00)A.成员函数一定是内联函数 B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的解

    43、析:解析 选项 A) ,因为成员函数可以在类体内定义,也可以在类体外定义,所以成员函数不一定能是内联函数;成员函数可以重载,可以设置参数的默认值,成员函数可以是静态的,所以其他选项叙述均正确。25.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序 解析:解析 所谓的交换排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡律序和快速排序。冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。26.已知递归函数 fun 的定义如下: int fun(int n) if(n=1)return 1;/递归结束情况 e

    44、lse return n*fun(n-2);/递归 则函数调用语句 fun(5)的返回值是( )。(分数:2.00)A.5B.12C.15 D.30解析:解析 递归函数 fun 被定义为含有参数 int n 返回整型其中 fun 函数递归调用本身,当 n=1 时,fun 返回 1,如果大于 1 那么执行 n*fun(n-2)。所以,当 n 等于 5 时,执行 5*fun(3);当 n 等于 3 时继续调用 fun,3*fun(1),即 fun(5)=5*(3*fun(1),答案为 15。27.有如下程序: #includeiostream using namespace std; long f

    45、un(int n) if(n2) return(fun(n-1)+fun(n-2); else return 2; int main() coutfun(3)end1; return 0; 则该程序的输出结果应该是( )。(分数:2.00)A.2B.3C.4 D.5解析:解析 主函数中调用 fun(3),在 fun 内部当 n2 时,递归调用 fun(n-1)+fun(n-2),否则返回2。所以当 n=3 时,调用 fun(2)+fun(1),即返回 2+2,等于 4。28.C+语言本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的I/O

    46、 类。I/O 操作分别由两个类 istream 和( )提供。(分数:2.00)A.fstreamB.iostreamC.ostream D.cin解析:解析 此题考查的是 C+标准库 iostream 提供的基本 I/O 类。 istream 提供了向流中插入数据的有关操作;ostream 提供了从流中提取数据的操作。29.按照“先进先出”组织数据的数据结构是( )。(分数:2.00)A.队列 B.栈C.双向链表D.二叉树解析:解析 队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”,先插入的元素先被删除,是按“先进先出”的原则组织数据的。30.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是( )。(分数:2.00)A.DB 包括 DBS 和 DBMSB.DBMS 包括 DB 和 DBSC.DBS 包括 DB 和 DBMS D.没有任何关系解析:解析 数据库系统(DBS)由数据库(DBS)、数据库管理系统(DBMS)、数据库管理员,硬件平台和软件平台 5 个部分组


    注意事项

    本文(【计算机类职业资格】二级C++笔试317及答案解析.doc)为本站会员(progressking105)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开