1、二级 C+笔试-317 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.在 10S 中提供格式控制标志位中,转换为十六进制形式的标志位是( )。(分数:2.00)A.hexB.octC.decD.left2.对于多重继承,下面说法中正确的是( )。(分数:2.00)A.一个派生类只有一个基类B.一个基类只能产生一个派生类C.一个派生类可有多个基类D.一个基类必须产生多个派生类3.下述静态数据成员的特性中,( )是错误的(分数:2.00)A.静态成员前要加 static 修饰符B.静态成员可以在类的内部初始化C.静态成员不可以在类的内部初始化
2、D.静态成员不属于某个类对象。4.可以通过下面哪些函数实现类的多态性( )。(分数:2.00)A.友元函数B.虚函数C.嵌套函数D.递归函数5.如在类中有如下函数定义Void fun(int a,int b,int c=0);则下列调用中,正确的是( )。(分数:2.00)A.fun(1)B.fun(1,1)C.fun()D.fun(2,2,3,4)6.软件开发的结构化生命周期方法将软件生命周期划分成( )。(分数:2.00)A.定义、开发、运行维护B.设计阶段、编程阶段、测试阶段C.总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计7.要求加快执行速度,而且函数完成的功能不太复杂时
3、,应使用( )。(分数:2.00)A.虚函数B.重载函数C.内联函数D.嵌套函数8.在设计程序时,应采纳的原则之一是( )。(分数:2.00)A.不限制 goto 语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解9.下列不是派生类对基类的继承方式的是( )。(分数:2.00)A.publicB.staticC.publicD.protected10.n 个顶点的强连通图的边数至少有( )。(分数:2.00)A.n-1B.n(n-1)C.nD.n+111.程序设计语言的基本成分是数据成分、运算成分、控制成分和( )。(分数:2.00)A.对象成分B.变量成分C.语句成分
4、D.传输成分12.下列叙述中正确的是( )。(分数:2.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构13.下列不属于软件工程三要素的是( )。(分数:2.00)A.工具B.过程C.方法D.环境14.下面 C+带有默认参数函数的叙述,正确的是( )。(分数:2.00)A.不允许设置函数的默认值B.函数的默认值只能有一个C.函数的默认值应该先设置右边然后再设置左边D.函数的默认值应该先设置左边然后再设置右边15.下面四个关键字中,说明友元函数的是( )。(分数:2.00)A.friendB.virtualC.publicD.base16.下面关于友
5、元的叙述正确的是( )。(分数:2.00)A.友元可以提高程序的执行效率B.友元加强了类的继承性C.友元加强了类的多态性D.友元提高了程序的封装性17.下面关于析构函数的叙述错误的是( )。(分数:2.00)A.析构函数可以完成一些系统清理工作B.析构函数可以由类对象自动调用C.析构函数可以有返回值D.析构函数是一种特殊的函数18.为了提高测试的效率,应该( )。(分数:2.00)A.随机选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.集中对付那些错误群集的程序19.“:”符号的功能是( )。(分数:2.00)A.标识某个成员是属于哪个对象的B.标识对某
6、个成员的引用C.标识某个成员属于哪个类的D.无意义20.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的( )。(分数:2.00)A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法21.下面哪些函数采用动态联编( )?(分数:2.00)A.重载函数B.嵌套函数C.虚函数D.递归函数22.C+中“”是一个( )符号(分数:2.00)A.用于输出的非成员函数B.用于输出操作的成员函数C.用于输入的非成员函数D.用于输入操作的成员函数23.下列有关析构函数的调用顺序是( )。(分数:2.00)A.先执行基类的构造函数,然后执行派生类的析构函数B.先执行
7、派生类的构造函数,然后执行基类的构造函数C.析构函数在派生类与基类中同时执行。D.只执行派生类的构造函数,不执行基类的构造函数24.树是结点的集合,它的根结点数目是( )。(分数:2.00)A.有且只有 1B.1 或多于 1C.0 或 1D.至少 225.下述关于成员函数的描述,正确的是( )。(分数:2.00)A.成员函数一定是内联函数B.成员函数不可以重载C.成员函数不可以有默认值D.成员函数可以是静态的26.在传值调用中,要求( )。(分数:2.00)A.形参和实参类型任意,个数相等B.形参和实参类型一致,个数相等C.形参和实参类型一致,个数不等D.形参和实参类型任意,个数任意。27.在
8、一个被调用函数中,关于 return 语句使用描述,( )是正确的。(分数:2.00)A.函数返回值的类型是在定义函数时确定,在函数调用时是可能改变的B.函数返回值的类型就是返回值表达式的值C.函数返回值的类型决定了返回值表达式的类型D.函数返回值的类型可以与返回值表达式的类型不一致28.下列说法错误的是( )。(分数:2.00)A.方法是对象的一部分B.在调用方法时,对象名是不可缺少的C.方法是一种特殊的过程和函数D.方法的调用格式和对象属性的使用格式相同29.设 x 是一个类名,下列的形参( )是引用调用(分数:2.00)A.X 中,ptr 应是( )。(分数:2.00)A.指向常量的指针
9、B.指针常量C.指针常数D.常指针35.形如 A:A(A 中,ptr 应该是 【7】 。(分数:2.00)填空项 1:_43.在 C+中,派生类有三种继承方式,它们分别是公有继承、私有继承和 【8】 。(分数:2.00)填空项 1:_44.在创建对象时系统自动调用的函数是 【9】 。(分数:2.00)填空项 1:_45.下面程序输出的结果是 【10】 。#include iostreamusing namespace std;class A public:virtual void show() cout“A!“;class B: public A public:void show() cout
10、 “B!“;class C: public Bpublic:void show()cout “C!“;void show_info(A void main() A ia; B ib; C ic; show_info(i a);show_info(i b); show_info(i c); (分数:2.00)填空项 1:_46.下面程序输出的结果是 【11】 。#include iostreamusing namespacc std;class A public:void show()tout“A!“;class B: public Apublic:virtual void show()cout
11、“B!“;class C: public Bpublic:virtual void show()cout“C!“;void show_info(A *i)i-show();void main()A ia;B ib;C ic;show_info( show_info(show_info((分数:2.00)填空项 1:_47.当需要函数返回多个值时,函数的参数应采用指针或 【12】 。(分数:2.00)填空项 1:_48.C+编译时的多态性体现在 【13】 ,运行时的多态性体现在 【14】 。(分数:4.00)填空项 1:_49.C+类对象销毁时,自动执行的函数是 【15】 。(分数:2.00)填
12、空项 1:_二级 C+笔试-317 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.在 10S 中提供格式控制标志位中,转换为十六进制形式的标志位是( )。(分数:2.00)A.hex B.octC.decD.left解析:解析 hex 是十六进制的标志。2.对于多重继承,下面说法中正确的是( )。(分数:2.00)A.一个派生类只有一个基类B.一个基类只能产生一个派生类C.一个派生类可有多个基类 D.一个基类必须产生多个派生类解析:解析 C+支持多重继承。3.下述静态数据成员的特性中,( )是错误的(分数:2.00)A.静态成员前要加 st
13、atic 修饰符B.静态成员可以在类的内部初始化 C.静态成员不可以在类的内部初始化D.静态成员不属于某个类对象。解析:解析 静态成员不可以在类的内部初始化。4.可以通过下面哪些函数实现类的多态性( )。(分数:2.00)A.友元函数B.虚函数 C.嵌套函数D.递归函数解析:解析 虚函数是多态性的体现。5.如在类中有如下函数定义Void fun(int a,int b,int c=0);则下列调用中,正确的是( )。(分数:2.00)A.fun(1)B.fun(1,1) C.fun()D.fun(2,2,3,4)解析:解析 fun 函数中第三个参数有默认值,故只需给出前两个参数即可。6.软件开
14、发的结构化生命周期方法将软件生命周期划分成( )。(分数:2.00)A.定义、开发、运行维护 B.设计阶段、编程阶段、测试阶段C.总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计解析:解析 软件开发的结构化生命周期方法将软件生命周期划分成定义、开发和运行维护。7.要求加快执行速度,而且函数完成的功能不太复杂时,应使用( )。(分数:2.00)A.虚函数B.重载函数C.内联函数 D.嵌套函数解析:解析 在某些情况下,内联函数可以提高程序的效率。8.在设计程序时,应采纳的原则之一是( )。(分数:2.00)A.不限制 goto 语句的使用B.减少或取消注解行C.程序越短越好D.程序结构
15、应有助于读者理解 解析:解析 在设计程序时,应采纳的原则之一是程序结构应有助于读者理解。9.下列不是派生类对基类的继承方式的是( )。(分数:2.00)A.publicB.static C.publicD.protected解析:解析 其余的三种是继承方式。10.n 个顶点的强连通图的边数至少有( )。(分数:2.00)A.n-1B.n(n-1)C.n D.n+1解析:解析 n 个顶点的强连通图至少有 n 条边。11.程序设计语言的基本成分是数据成分、运算成分、控制成分和( )。(分数:2.00)A.对象成分B.变量成分C.语句成分D.传输成分 解析:解析 程序设计语言的基本成分是数据成分、运
16、算成分、控制成分和传输成分。12.下列叙述中正确的是( )。(分数:2.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析 线性表、栈、队列、线性链表都是线性结构。13.下列不属于软件工程三要素的是( )。(分数:2.00)A.工具B.过程C.方法D.环境 解析:解析 软件工程三要素是工具、过程、方法。14.下面 C+带有默认参数函数的叙述,正确的是( )。(分数:2.00)A.不允许设置函数的默认值B.函数的默认值只能有一个C.函数的默认值应该先设置右边然后再设置左边 D.函数的默认值应该先设置左边然后再设置右边解析:解析 函数的默认值
17、应该先设置右边然后再设置左边。15.下面四个关键字中,说明友元函数的是( )。(分数:2.00)A.friend B.virtualC.publicD.base解析:解析 firend 是友元成员的关键字。16.下面关于友元的叙述正确的是( )。(分数:2.00)A.友元可以提高程序的执行效率 B.友元加强了类的继承性C.友元加强了类的多态性D.友元提高了程序的封装性解析:解析 友元提高了程序的效率,但破坏了程序的封装性。17.下面关于析构函数的叙述错误的是( )。(分数:2.00)A.析构函数可以完成一些系统清理工作B.析构函数可以由类对象自动调用C.析构函数可以有返回值 D.析构函数是一种
18、特殊的函数解析:解析 与构造函数一样,析构函数没有返回值。18.为了提高测试的效率,应该( )。(分数:2.00)A.随机选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.集中对付那些错误群集的程序 解析:解析 为了提高测试的效率,应该集中对付那些错误群集的程序。19.“:”符号的功能是( )。(分数:2.00)A.标识某个成员是属于哪个对象的B.标识对某个成员的引用C.标识某个成员属于哪个类的 D.无意义解析:解析 “:”是类作用域符。20.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的( )。(分数:2.00)A.抽象和信息隐蔽
19、B.局部化和封装化C.内聚性和耦合性 D.激活机制和控制方法解析:解析 衡量模块独立性的度量标准则是模块的内聚性和耦合性。21.下面哪些函数采用动态联编( )?(分数:2.00)A.重载函数B.嵌套函数C.虚函数 D.递归函数解析:解析 虚函数采用动态联编的方式。22.C+中“”是一个( )符号(分数:2.00)A.用于输出的非成员函数B.用于输出操作的成员函数 C.用于输入的非成员函数D.用于输入操作的成员函数解析:解析 符号是一个重载的用于输出的成员函数。23.下列有关析构函数的调用顺序是( )。(分数:2.00)A.先执行基类的构造函数,然后执行派生类的析构函数B.先执行派生类的构造函数
20、,然后执行基类的构造函数 C.析构函数在派生类与基类中同时执行。D.只执行派生类的构造函数,不执行基类的构造函数解析:解析 先执行派生类的构造函数,然后执行基类的构造函数。24.树是结点的集合,它的根结点数目是( )。(分数:2.00)A.有且只有 1 B.1 或多于 1C.0 或 1D.至少 2解析:解析 树是结点的集合,它的根结点数目是有且只有一个结点。25.下述关于成员函数的描述,正确的是( )。(分数:2.00)A.成员函数一定是内联函数B.成员函数不可以重载C.成员函数不可以有默认值D.成员函数可以是静态的 解析:解析 成员函数可以是静态的。26.在传值调用中,要求( )。(分数:2
21、.00)A.形参和实参类型任意,个数相等B.形参和实参类型一致,个数相等 C.形参和实参类型一致,个数不等D.形参和实参类型任意,个数任意。解析:解析 在传值调用中,形参和实参类型一致,个数相等。27.在一个被调用函数中,关于 return 语句使用描述,( )是正确的。(分数:2.00)A.函数返回值的类型是在定义函数时确定,在函数调用时是可能改变的B.函数返回值的类型就是返回值表达式的值C.函数返回值的类型决定了返回值表达式的类型 D.函数返回值的类型可以与返回值表达式的类型不一致解析:解析 函数返回值的类型决定了返回值表达式的类型。28.下列说法错误的是( )。(分数:2.00)A.方法
22、是对象的一部分B.在调用方法时,对象名是不可缺少的 C.方法是一种特殊的过程和函数D.方法的调用格式和对象属性的使用格式相同解析:解析 在调用方法时,对象名可以缺少。29.设 x 是一个类名,下列的形参( )是引用调用(分数:2.00)A.X 中,ptr 应是( )。(分数:2.00)A.指向常量的指针B.指针常量C.指针常数D.常指针 解析:解析 此处是常指针格式。35.形如 A:A(A 中,ptr 应该是 【7】 。(分数:2.00)填空项 1:_ (正确答案:指向常量的指针)解析:解析 见常量指针的定义。43.在 C+中,派生类有三种继承方式,它们分别是公有继承、私有继承和 【8】 。(
23、分数:2.00)填空项 1:_ (正确答案:保护继承)解析:解析 共有三种继承方式。44.在创建对象时系统自动调用的函数是 【9】 。(分数:2.00)填空项 1:_ (正确答案:构造函数)解析:解析 构造函数在创建对象时系统自动调用。45.下面程序输出的结果是 【10】 。#include iostreamusing namespace std;class A public:virtual void show() cout“A!“;class B: public A public:void show() cout “B!“;class C: public Bpublic:void show(
24、)cout “C!“;void show_info(A void main() A ia; B ib; C ic; show_info(i a);show_info(i b); show_info(i c); (分数:2.00)填空项 1:_ (正确答案:A! A! A!)解析:解析 由于基类中没有声明虚函数,故调用的全部是基类的函数。46.下面程序输出的结果是 【11】 。#include iostreamusing namespacc std;class A public:void show()tout“A!“;class B: public Apublic:virtual void sh
25、ow()cout“B!“;class C: public Bpublic:virtual void show()cout“C!“;void show_info(A *i)i-show();void main()A ia;B ib;C ic;show_info( show_info(show_info((分数:2.00)填空项 1:_ (正确答案:A! B! C!)解析:解析 由于基类中声明了虚函数,故基类的引用可以调用不同类的虚函数。47.当需要函数返回多个值时,函数的参数应采用指针或 【12】 。(分数:2.00)填空项 1:_ (正确答案:引用)解析:解析 引用的作用之一是可以返回多个参数,因为引用和指针可以返回多个参数。48.C+编译时的多态性体现在 【13】 ,运行时的多态性体现在 【14】 。(分数:4.00)填空项 1:_ (正确答案:重载 虚函数)解析:解析 C+编译时的多态性体现在重载,运行时的多态性体现在虚函数。49.C+类对象销毁时,自动执行的函数是 【15】 。(分数:2.00)填空项 1:_ (正确答案:析构函数)解析:解析 C+类对象销毁时,自动执行的函数是析构函数。