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

上传人:visitstep340 文档编号:1323993 上传时间:2019-10-17 格式:DOC 页数:21 大小:81KB
下载 相关 举报
【计算机类职业资格】二级C++-173及答案解析.doc_第1页
第1页 / 共21页
【计算机类职业资格】二级C++-173及答案解析.doc_第2页
第2页 / 共21页
【计算机类职业资格】二级C++-173及答案解析.doc_第3页
第3页 / 共21页
【计算机类职业资格】二级C++-173及答案解析.doc_第4页
第4页 / 共21页
【计算机类职业资格】二级C++-173及答案解析.doc_第5页
第5页 / 共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 图中用矩

24、形表示实体集,在矩形内写上该实体集的名字。9.有两个关系 R 和 T 如下: (分数:2.50)A.选择B交C.投影 D并解析:解析 投影是从表中选出指定的属性值组成新表,是单目运算,由此可知本题答案为 C。10.对图书进行编目时,图书有如下属性:ISBN 书号,书名,作者,出版社,出版日期。能作为关键字的是_。(分数:2.50)A.ISBN 书号 B.书名C.作者,出版社D.出版社,出版日期解析:解析 在有些应用系统中,常常采用增加如“序号”这类数据作为关键字以区分各条记录。11.下列关于函数的说法中,正确的是_。(分数:2.50)A.C+允许在函数体中定义其他函数B.所有的内联函数都要用

25、inline 说明C.仅函数返回类型不同的同名函数不能作为重载函数使用 D.有默认值的参数应从左至右逐个定义解析:解析 本题考查的是 C+函数的相关知识。需要注意的是,C+不允许函数定义嵌套,即在一个函数体内不能包含有其他函数的定义,故选项 A 错误。在 C+中使用 inline 关键字来定义内联函数,inline 关键字放在函数定义中函数类型之前,不过,编译器会将在类的说明部分定义的任何函数都认定为内联函数,即使它们没有用 inline 说明,故选项 B 错误。如果一个函数中有多个参数,则默认参数应从右至左逐个定义,故选项 D 错误。C 中如果函数只是函数类型不同,而其他完全相同(参数个数及

26、类型),则不能作为重载函数来使用,故选择 C。12.下列关于构造函数的说法中,正确的是_。(分数:2.50)A.构造函数不能重载B.构造函数的返回值为 voidC.构造函数中可以使用 this 指针 D.用户必须为定义的类提供构造函数解析:解析 本题考查的是构造函数的相关知识。构造函数是类成员函数,它除了具有一般成员函数的特性之外,还具有一些特殊的性质:(1)构造函数的名字必须与类名相同;故选项 A 错误;(2)构造函数不指定返回类型,它隐含有返回值,由系统内部使用;故选项 B 错误;(3)构造函数可以有一个或多个参数,因此构造函数可以重载;(4)在创建对象时,系统会自动调用构造函数,故选项

27、D 错误。故选择 C。13.下列不属于 C+规定的类继承方式是_。(分数:2.50)A.protective B.privateC.protectedD.public解析:解析 本题考查的是类继承方式的相关知识。类的继承方式包括 3 中:公有继承(public)、私有继承(privatc)和保护继承(protected),所以题中 B、C、D 都属于,只有 A 不属于,故选择 A。14.下列关于运算符重载的说法,错误的是_。(分数:2.50)A.New 和 delete 运算符可以重载B.重载运算符不能改变其原有的操作数个数C.三元运算符“?:”不能重载D.所有运算符既可以作为类的成员函数重载

28、,又可以作为非成员函数重载 解析:解析 本题考查的是运算符重载的相关知识。除了 new 和 delete 这两个较为特殊的运算符外,任何运算符在作为成员函数重载时不得重载为静态成员函数,故选项 A 正确。重载的运算符保持其原有的操作个数不变,故选项 B 正确。除了.、.*、-*、:、?:运算符外,其他运算符都可以重载,故选项 C 正确。=、()、-以及所有的类型转换运算符只能作为成员函数重载,故选项 D 错误,选择 D。15.下列关于函数模板的说法,正确的是_。(分数:2.50)A.在定义模板参数时关键字 typename 和 class 可以互换 B.函数模板的形参表中只能有虚拟类型参数C.

29、调用函数模板时,模板实参永远不能省略D.在函数模板的声明中,只能使用 1 个虚拟类型参数解析:解析 本题考查的是函数模板的相关知识。在声明模板参数时,关键字 typename 与 class 可以互换,是等价的,故选项 A 正确。在函数模板形参表中也可以有其他类型参数,不仅仅是虚拟类型参数,也可以有实际类型参数,故选项 B 错误。在对模板函数的调用可以只使用函数实参,而省略了模板实参,但模板实参的省略并不是必然的,而是有条件的,故选项 C 错误。函数模板的模板形参表中可以有多个参数,故选项 D 错误。综上所述,选择 A。16.下列不属于 C+预定义的流对象的是_。(分数:2.50)A.cfli

30、e B.cinC.coutD.clog解析:解析 本题考查的是 C+预定义流对象的相关知识。C+流有 4 个预定义流对象,它们的名称及与之联系的 I/O 设备如下: cin 标准输入 cout 标准输出 cerr 标准出错信息输出 clog 带缓冲的标准出错信息输出 本题中只有 A 不是,故选择 A。17.下列不属于 C+关键字的是_。(分数:2.50)A.defaultB.unsignedC.go D.try解析:解析 本题考查的是 C+关键字的相关知识。C+的关键字也称保留字,它是由 C+语言本身预先定义好的一类单词。常用到的关键字有auto、break、case、char、break、d

31、efault、else、int、long、unsigned、try 等,其中选项 C 不属于C+的关键字,故选择 C。18.若变量 a 的定义为“int a=8;”,则下列逻辑表达式中其值为 false 的是_。(分数:2.50)A.a do i*=i; cout“#“; if(i1000)break; while(1); 运行这个程序段时,输出字符“#“的个数是_。(分数:2.50)A.3B.4 C.5D.6解析:解析 本题考查的是程序执行的相关知识。i*=i 等价于 i=i*i,第一次循环,i=4 时,输出第一个“#“,此时 i 不大于 1000,循环继续,第二次循环,i=16 时,输出第

32、二个“#“,此时不大于 1000,循环继续,第三次循环,i=256 时,输出第三个“#“,此时不大于 1000,循环继续,第四次循环,i=65536 时,输出第四个“#“,此时 i 大于 1000,循环停止,跳出循环,故输出四个“#“,选择 B。20.有如下程序段: int *a=new int2; a0=0; a1=1; int *b= cout*b; 运行这个程序段将输出_。(分数:2.50)A.整数 1B.a0的地址C.a1的地址D.整数 0 解析:解析 本题考查的是程序执行相关知识。int*a=new int2的意思是从堆里申请一个 int 空间,里面存的值为 2,并将 a 指针指向那

33、个 int 空间。 b+; ( *c)+; 且有如下程序段: int a=1, b=2, c=3; foo(a, b, coutabc; 运行这个程序段的输出是_。(分数:2.50)A.134 B.123C.234D.编译错误解析:解析 本题考查的是运算符的计算方法。首先给 a、b、c 赋值,然后调用 foo 函数,执行 a+后,a 的值不变,b 的值增加 1,c 的值也增加 1,所以输出为 134,故选择 A。22.已知类 MyClass 的定义如下: #includediostream using namespace std; class MyClass private: static i

34、nt 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.编译时语句均无错解析:解析 本题考查的是静态变量的相关知识。处的 const_data 不是静态变量,不能在静态函数中引用或输出,所以有错,而

35、是静态变量,可以引用或输出,所以正确。故选择 A。23.已知类 Base 和类 Derived 的定义如下: class Base int 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=i解析:解析 本题考查的是构

36、造函数的定义。构造函数的定义一般为:类名(形参):成员名(表达式)(),根据该公式,可以判断出选择 B。24.已知类 CC 以成员函数方式重载了二元运算符*,c1 和 c2 是 CC 类的两个对象,则下列对该运算符的调用中错误的是_。(分数:2.50)A.c1 * c2;B.c1.operator*(c2);C.operator*(c1, c2); D.c2.operator*(c1);解析:解析 本题考查的是运算符函数与运算符重载的基本知识。运算符函数的函数名由运算符前加关键字 operator 构成,在声明运算符或调用运算符时都可以用这个名称,因此,可以用两种不同的方法调用运算符函数。例如

37、,假定已经作为某个类的成员函数重载了二元运算符+,且 c1、c2 都是该类的对象,则 c1.operator+(c2)与 c1+c2 含义相同。如果+作为该类的非成员函数重载,则 operator+(c1, c2)与c1+c2 含义相同。综上,选择答案 C。25.已知类模板 Test 定义如下: templatetypename T1, typename T2 Class Test public: void foo(T2 t); ; 则以下针对 foo 函数的类外定义中语法正确的是_。(分数:2.50)A.templatetypename T1, typename T2void Test:fo

38、oT2(T2 t)B.templatetypename T1, typename T2void Test:fooT1, T2(T2 t)C.templatetypename T1, typename T2void TestT2:foo(T2 t)D.templatetypename T1, typename T2void TestT1, T2:foo(T2 t) 解析:解析 本题考查的是类外部定义的成员函数额相关知识。声明一个函数模板的格式是: template模板形参表函数声明 类外部定义的成员函数的一般格式是: 返回类型类名:成员函数名(参数表) 函数体 根据公式,可以判断应该选择 D。2

39、6.有如下输出语句: coutsetw(5)fixedsetprecision(3)3.1415926; 此语句的输出结果是_。(分数:2.50)A.3.141B.3.142 C.3.1415D.3.1416解析:解析 本题考查的是输入/输出的格式控制的相关知识。setw(5)是设置输入/输出的宽度,即为5,fixed 是浮点数按定点格式输出,setprecision(3)是设置浮点数的精度,即有效位为 3 或小数位数为3,根据以上结论,故选择 B。27.已知类 MyClass 的定义如下: class Myclass private: int num; public: Myclass(int

40、 d): num(d) MyClass(const MyClass 且有如下程序段: MyClass c(5); MyClass* p1; p1= print(*p1); print(c); 运行这个程序段的过程中,对类 MyClass 的复制构造函数的调用次数是_。(分数:2.50)A.4B.3C.2 D.1解析:解析 本题考查的是复制构造函数的相关知识。p1= public: void print(int num) cout+num; cout+this-num; ; int Test:num=0; 且有如下程序段: int main() Test t1, t2; t1.print(0);

41、 t2.print(1); return 0; 运行这个程序段的输出是_。(分数:2.50)A.1234B.1233C.1122 D.1223解析:解析 本题考查的是程序的执行相关知识。t1.print(0)表示给 num 赋值为 0,输出+num,即为输出 1,this 是对象指针,指向的是程序的对象的地址,然后调用成员函数,因为初始地址为 0,所以执行 cout+this-num 输出的也是 1,同理,t2.print(1)是将 num 赋值为 1,执行 cout+num 和cout+this-num 输出都为 2,所以最后输出为 1122,选择 C。29.已知类 CC 和函数 test

42、的定义如下: 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.1200 B.11200C.1020D.1120解析:解析 本题考查的是程序执行的相关知识。首先执行一次 CC(),首位输出 1,末尾输出 0,再在第二位输出一个 2,最后返回 0,输出即为 1200,故选择 A。30.已知类 AA 和 BB 的定义如下: class AA public:

43、 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.0231 解析:解析 本题考查的是程序执行的相关知识。本题中,首先执行 class AA,首位输出 0,末尾输出1;再执行 class BB,在第二位输出 2,倒数第二位输出 3,最后输出结果为 0231,故选择 D。31.已知类 Base、Middle 和 D

44、erived 的定义如下: class Base public: virtual void foo()cout“a“; ; class Middle:public Base 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.cc D.ab解析:解析 本题考查的是程序执行的相

45、关知识。p1=这个函数,所以两次输出的内容都是 c,所以选择 C。32.类 Base 及其派生类 Derived 的定义如下: class Base private: int a; public: int b; friend class Derived; ; class Derived:public Base public: void foo() a=0;/ b=0;/ ; 则下列说法正确的是_。(分数:2.50)A.编译时语句有错B.编译时语句有错C.编译时语句和均有错D.编译时语句和均无错 解析:解析 本题考查的是派生类的相关知识。派生类继承了父类的所有属性又因为 Derived 派生类属

46、于公有 public 继承,所以父类里的变量都可以在于类里使用,所以选择 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: return 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.data0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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