【计算机类职业资格】二级C++-173及答案解析.doc
《【计算机类职业资格】二级C++-173及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-173及答案解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-173 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列数据结构中,属于非线性结构的是_。(分数:2.50)A.双向链表B.循环链表C.二叉链表D.循环队列2.在下列链表中,能够从任意一个结点出发直接访问到所有结点的是_。(分数:2.50)A.单链表B.循环链表C.双向链表D.二叉链表3.下列与栈结构有关联的是_。(分数:2.50)A.数组的定义域使用B.操作系统的进程调度C.函数的递归调用D.选择结构的执行4.下面对软件特点描述不正确的是_。(分数:2.50)A.软件是一种逻辑实体,具有抽象性B.软件开发、运行对计算机系
2、统具有依赖性C.软件开发涉及软件知识产权、法律及心理等社会因素D.软件运行存在磨损和老化问题5.下面属于黑盒测试方法的是_。(分数:2.50)A.基本路径测试B.等价类划分C.判定覆盖测试D.语句覆盖测试6.下面不属于软件设计阶段任务的是_。(分数:2.50)A.软件的功能确定B.软件的总体结构设计C.软件的数据设计D.软件的过程设计7.数据库管理系统是_。(分数:2.50)A.操作系统的一部分B.系统软件C.一种编译系统D.一种通信软件系统8.在 E-R 图中,表示实体的图元是_。(分数:2.50)A.矩形B.椭圆C.菱形D圆9.有两个关系 R 和 T 如下: (分数:2.50)A.选择B交
3、C.投影D并10.对图书进行编目时,图书有如下属性:ISBN 书号,书名,作者,出版社,出版日期。能作为关键字的是_。(分数:2.50)A.ISBN 书号B.书名C.作者,出版社D.出版社,出版日期11.下列关于函数的说法中,正确的是_。(分数:2.50)A.C+允许在函数体中定义其他函数B.所有的内联函数都要用 inline 说明C.仅函数返回类型不同的同名函数不能作为重载函数使用D.有默认值的参数应从左至右逐个定义12.下列关于构造函数的说法中,正确的是_。(分数:2.50)A.构造函数不能重载B.构造函数的返回值为 voidC.构造函数中可以使用 this 指针D.用户必须为定义的类提供
4、构造函数13.下列不属于 C+规定的类继承方式是_。(分数:2.50)A.protectiveB.privateC.protectedD.public14.下列关于运算符重载的说法,错误的是_。(分数:2.50)A.New 和 delete 运算符可以重载B.重载运算符不能改变其原有的操作数个数C.三元运算符“?:”不能重载D.所有运算符既可以作为类的成员函数重载,又可以作为非成员函数重载15.下列关于函数模板的说法,正确的是_。(分数:2.50)A.在定义模板参数时关键字 typename 和 class 可以互换B.函数模板的形参表中只能有虚拟类型参数C.调用函数模板时,模板实参永远不能省
5、略D.在函数模板的声明中,只能使用 1 个虚拟类型参数16.下列不属于 C+预定义的流对象的是_。(分数:2.50)A.cflieB.cinC.coutD.clog17.下列不属于 C+关键字的是_。(分数:2.50)A.defaultB.unsignedC.goD.try18.若变量 a 的定义为“int a=8;”,则下列逻辑表达式中其值为 false 的是_。(分数:2.50)A.a do i*=i; cout“#“; if(i1000)break; while(1); 运行这个程序段时,输出字符“#“的个数是_。(分数:2.50)A.3B.4C.5D.620.有如下程序段: int *
6、a=new int2; a0=0; a1=1; int *b= cout*b; 运行这个程序段将输出_。(分数:2.50)A.整数 1B.a0的地址C.a1的地址D.整数 021.已知函数 foo 定义如下: void foo(int a, int b+; ( *c)+; 且有如下程序段: int a=1, b=2, c=3; foo(a, b, coutabc; 运行这个程序段的输出是_。(分数:2.50)A.134B.123C.234D.编译错误22.已知类 MyClass 的定义如下: #includediostream using namespace std; class MyClas
7、s private: static int static_data; const int const_data; public: MyClass(int d): const_data(d) static void fool() coutconst_data; / void foo2()const coutstatic_data; / ; int MyClass:static_data=0; 下列说法中正确的是_。(分数:2.50)A.编译时语句有错B.编译时语句有错C.编译时语句均有错D.编译时语句均无错23.已知类 Base 和类 Derived 的定义如下: class Base int
8、n; public; Base(int d); n(d) ; class Derived: public Base public: _ ; 其中横线处应为类 Derived 的构造函数的定义。 在下列构造函数的定义中正确的是_。(分数:2.50)A.Derived(int i)Base(i); B.Derived(int i): Base(i); C.Derived(int i)n=i; D.Derived(int i): n=i24.已知类 CC 以成员函数方式重载了二元运算符*,c1 和 c2 是 CC 类的两个对象,则下列对该运算符的调用中错误的是_。(分数:2.50)A.c1 * c2
9、;B.c1.operator*(c2);C.operator*(c1, c2);D.c2.operator*(c1);25.已知类模板 Test 定义如下: templatetypename T1, typename T2 Class Test public: void foo(T2 t); ; 则以下针对 foo 函数的类外定义中语法正确的是_。(分数:2.50)A.templatetypename T1, typename T2void Test:fooT2(T2 t)B.templatetypename T1, typename T2void Test:fooT1, T2(T2 t)C.
10、templatetypename T1, typename T2void TestT2:foo(T2 t)D.templatetypename T1, typename T2void TestT1, T2:foo(T2 t)26.有如下输出语句: coutsetw(5)fixedsetprecision(3)3.1415926; 此语句的输出结果是_。(分数:2.50)A.3.141B.3.142C.3.1415D.3.141627.已知类 MyClass 的定义如下: class Myclass private: int num; public: Myclass(int d): num(d)
11、 MyClass(const MyClass 且有如下程序段: MyClass c(5); MyClass* p1; p1= print(*p1); print(c); 运行这个程序段的过程中,对类 MyClass 的复制构造函数的调用次数是_。(分数:2.50)A.4B.3C.2D.128.已知类 Test 的定义如下: class Test private: static int num; public: void print(int num) cout+num; cout+this-num; ; int Test:num=0; 且有如下程序段: int main() Test t1, t
12、2; t1.print(0); t2.print(1); return 0; 运行这个程序段的输出是_。(分数:2.50)A.1234B.1233C.1122D.122329.已知类 CC 和函数 test 的定义如下: class CC public: CC()cout“1“; CC()cout“0“; ; void test(CC c)cout“2“; 且有如下 main 函数: int main() CC c; test(c); return 0; 运行这个 main 函数的输出是_。(分数:2.50)A.1200B.11200C.1020D.112030.已知类 AA 和 BB 的定义
13、如下: class AA public: AA()cout“0“; AA()cout“1“; ; class BB:public BB public: BB()cout“2“; BB()cout“3“; ; 且有如下主函数定义: int main() BB b; return 0; 运行这个 main 函数的输出是_。(分数:2.50)A.0123B.0213C.2013D.023131.已知类 Base、Middle 和 Derived 的定义如下: class Base public: virtual void foo()cout“a“; ; class Middle:public Bas
14、e public: void foo()cout“b“; ; class Derived:public Middle public: void foo()cout“c“; ; 且有如下程序段: Base* p1; Middle* p2; Derived d; p1= p1-foo(); p2= p2-foo(); 运行这个程序段的输出是_。(分数:2.50)A.aaB.bbC.ccD.ab32.类 Base 及其派生类 Derived 的定义如下: class Base private: int a; public: int b; friend class Derived; ; class D
15、erived:public Base public: void foo() a=0;/ b=0;/ ; 则下列说法正确的是_。(分数:2.50)A.编译时语句有错B.编译时语句有错C.编译时语句和均有错D.编译时语句和均无错33.已知类 Time 的定义如下: class Time/时间类 private: int hour, minute, second; /时、分、秒 public: Time(int h, int m, int s): hour(h), minute(m), second(s) _ switch(index) case 0: return hour; case 1: re
16、turn minute; default: return second; ; 其中横线处应为下标访问运算符的重载函数的函数头,横线处应填入的代码是_。(分数:2.50)A.int Array(int n=0) int start; if(n=1)start=n-1; else start=n; data0=start; data1=start+1; ; 且有如下程序段: Array art(2); coutarr.data0arr.data1; 则执行这个程序段的输出是_。(分数:2.50)A.23B.32C.12D.2136.下列符号中能够作为 C+标识符的是_。(分数:2.50)A.con
17、stB.2aC.-shapeD.-count37.有如下定义: int a5=1, 3, 5, 7, 9, *p=a;下列表达式中不能得到数值 5 的是_。(分数:2.50)A.a2B.a3C.*(p+2)D.*p+438.下列有关抽象类和纯虚函数的叙述中,错误的是_。(分数:2.50)A.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体39.下列语句分别是不同程序中的第一个输入/输出语句,若去掉其中的“left”,输出效果将发生变化的是_。(分数:2.50)A.coutleftsetfill
18、(“*“)357;B.coutleftsetw(5)357;C.coutleftsetw(5)“ABCDE“;D.coutleft“ABCDE“;40.有如下程序: #includeiostream using namespace std; class GA public; virtual int f()return 1; ; class GB:public GA public; virtual int f()return 2;) ; void show(GA g)coutg.f(); void display(GA int main() GA a:show(a); display(a); G
19、B b:show(b); display(b); Return 0; 运行时的输出结果是_。(分数:2.50)A.1111B.1211C.1112D.1212二级 C+-173 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列数据结构中,属于非线性结构的是_。(分数:2.50)A.双向链表B.循环链表C.二叉链表 D.循环队列解析:解析 对于线性结构,除了首结点和尾结点外,每一个结点只有一个前驱结点和一个后继结点。线性表、栈、队列都是线性结构,循环链表和双向链表是线性表的链式存储结构;二叉链表是二叉树的存储结构,而二叉树是非线性结构,因
20、为二叉树有些结点有两个后继结点,不符合线性结构的定义。2.在下列链表中,能够从任意一个结点出发直接访问到所有结点的是_。(分数:2.50)A.单链表B.循环链表 C.双向链表D.二叉链表解析:解析 由于线性单链表的每个结点只有一个指针域,由这个指针只能找到其后件结点,但不能找到其前件结点。也就是说,只能顺着之后向链尾方向进行扫描,因此必须从头指针开始,才能访问到所有的结点。循环链表的最后一个结点的指针域指向表头结点,所有结点的指针构成了一个环状链,只要指出表中任何一个结点的位置就可以从它出发访问到表中其他所有的结点。双向链表中的每个结点设置有两个指针,一个指向其前件,另一个指向其后件,这样从任
21、意一个结点开始,既可以向前查找,也可以向后查找,在结点的访问过程中一、般从当前结点向链尾方向扫描,如果没有找到,则从链尾向头结点方向扫描,这样部分结点就要被遍历两次,因此不符合题意。二叉链表是二叉树的一种链式存储结构,每个结点有两个指针域,分别指向左右子结点,可见,二叉链表只能由根结点向叶子结点的方向遍历。3.下列与栈结构有关联的是_。(分数:2.50)A.数组的定义域使用B.操作系统的进程调度C.函数的递归调用 D.选择结构的执行解析:解析 归调用就是在当前的函数中调用当前的函数并传给相应的参数,这是一个动作,这一动作是层层进行的,直到满足一般情况的时候,才停止递归调用,开始从最后一个递归调
22、用返回。函数的调用原则和数据结构栈的实现是相一致。也说明函数调用是通过栈实现的。4.下面对软件特点描述不正确的是_。(分数:2.50)A.软件是一种逻辑实体,具有抽象性B.软件开发、运行对计算机系统具有依赖性C.软件开发涉及软件知识产权、法律及心理等社会因素D.软件运行存在磨损和老化问题 解析:解析 软件与硬件不同,它在运行、使用期间不存在磨损、老化问题。5.下面属于黑盒测试方法的是_。(分数:2.50)A.基本路径测试B.等价类划分 C.判定覆盖测试D.语句覆盖测试解析:解析 等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。6.下
23、面不属于软件设计阶段任务的是_。(分数:2.50)A.软件的功能确定 B.软件的总体结构设计C.软件的数据设计D.软件的过程设计解析:解析 软件设计包括软件结构设计、数据设计、接口设计、过程设计。7.数据库管理系统是_。(分数:2.50)A.操作系统的一部分B.系统软件 C.一种编译系统D.一种通信软件系统解析:解析 系统软件主要包括如下几个方而: (1)操作系统软件,这是软件的核心。 (2)各种语言的解释程序和编译程序。 (3)各种服务性程序。 (4)各种数据库管理系统。8.在 E-R 图中,表示实体的图元是_。(分数:2.50)A.矩形 B.椭圆C.菱形D圆解析:解析 在 E-R 图中用矩
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C173 答案 解析 DOC
