[计算机类试卷]国家二级C++机试(选择题)模拟试卷108及答案与解析.doc

上传人:周芸 文档编号:499063 上传时间:2018-11-30 格式:DOC 页数:19 大小:53.50KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(选择题)模拟试卷108及答案与解析.doc_第1页
第1页 / 共19页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷108及答案与解析.doc_第2页
第2页 / 共19页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷108及答案与解析.doc_第3页
第3页 / 共19页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷108及答案与解析.doc_第4页
第4页 / 共19页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷108及答案与解析.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、国家二级 C机试(选择题)模拟试卷 108及答案与解析 一、选择题 1 有如下程序: #include using namespace std; class test private: int a; public: test0cout “constructor“ end1; test(int a)cout a end1; test(const test&test) a test a; cout ,copy constructor“ end1; test()Cout “destructor“ end1; ) ; int main() test A(3); return 0; 运行时输出的结果是

2、( )。 ( A) 3 ( B) constructor destructor ( C) copy constructor destructor ( D) 3 destructor 2 对于一个类定义,下列叙述中错误的是 ( )。 ( A)如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数 ( B)如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数 ( C)如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数 ( D)如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数 3 有如下程序: #include using namespace std;

3、class Part public: Part(int x 0): va1(x)cout using namespace std; class Base public: Base(int x 0)cout using namespace std; class ONE int c; public: ONE(): c(0)cout using namespace std; class Test public: Test() Test(const Test&t)cout using namespace std; class XA int a; public: static hat b: Xa(int

4、 aa): a(aa)b; XA() int get()return a; ; int XA b 0; int main() XA d1(2), d2(3); cout using namespace std; class MyClass public: MyClass () cout执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序 执行自身的构造函数。本题中,首先会构造基类 Base,调用 Base类的构造函数,输出 0;然后还定义了一个 Base类 的对象,再次调用 Base类的默认构造函数输出 0;最后构造自身,因主函数中传入了构造参数 1,所以输出 1。故最后输出结果是

5、: 001。 【知识模块】 类和对象 5 【正确答案】 A 【试题解析】 此题考查的是构造函数的概念。构造函数的名字必须与类名相同;构造函数不指定返回值类型;构造函数可以重载;在创建对象时,系统会自动调用构造函数。 【知识模块】 类和对象 6 【正确答案】 C 【试题解析】 如果一个类中定义了一个缺省的构造函数,则使用该函数,如果一个类中没有定义任何构造函数,编 译器将生成一个不带参数的共有缺省构造函致。 【知识模块】 类和对象 7 【正确答案】 B 【试题解析】 在 main函数中,定义了 Samplet teep12的一个包含两个对象的数组,还定义了一个 *pTemp2,是包含两个指向类对

6、象的指针的数组,故定义的指针当 main函数结束后是不会调用析构函数的,只有包含两个对象的数组 temp2会调用析构函数,因此只输出两个 *。 【知识模块】 类和对象 8 【正确答案】 A 【试题解析】 当创建 MyClass类对象 obj1(1)和 obj2(2)时候,调用类构造函数会输出两个 1,然后创建类对象 obj3(obj(1)时,会调用拷贝类构造函数,输出一个2,然后当 main函数结束时候,调用三个对象的析构函数会输出三个 4。 【知识模块】 类和对象 9 【正确答案】 B 【试题解析】 在这个程序中在建立对象 d1(5)时,调用构造函数 XCF(int aa0): a(aa)c

7、oatGeta()的功能是输出 8;语句 delete pd;调用析构函数 XCF(),输出 8;当退出程序时,分别释放对象 d2、 d1,输出 55。 【知识模块】 类和对象 10 【正确答案】 C 【试题解析】 由类 TWO的定义可知,其成员为类 ONE的两个对象 one1和one2。所以在主函数中构建类 TWO的对象 t(4)时,先后调用类 ONE的构造函数ONE(): c(0)cout1; 和 ONE(in n): c(n)cout2; )输出 12,然后再调用类TWO的构造函数 TWO(int m): one2(m)cout3; ),输出 3。 【知识模块】 类和对象 11 【正确答

8、案】 D 【试题解析】 在 C中,声明一个类对象时,编译程序需要调用类的构造函数为对象分配存储空间,进行必须的初始化。在本题的这条语句中,声明了一个Sample类型的包含 2个数组元素的数组 a2,一个指向类 Sample对象的指针 P,所以 Sample类的构造函数共调用了 3次。 【知识模块】 类 和对象 12 【正确答案】 C 【试题解析】 类 Toy中包含一个字符数组 name和一个静态整型变量 count。在程序中首先给类 Toy的成员 count的赋初始值 0,然后在主函数中,定义了三个。Toy对象 t1、 t2、 t3,并分别对它们的 nallle字段赋值,在赋值的同时变量 co

9、unt的值加 1,所以最后变量 count的值等于 3。 【知识模块】 类和对象 13 【正确答案】 D 【试题解析】 类 Name有两个构造函数,在默认构造函数中,给字符数组 name赋空值,并输出一个 ?;在带有字符指针 的构造函数中,把字符指针 fname所指的字符串赋给字符数组 name,并输出一个 ?。所以在主函数中,定义了 Name的三个对象, name0、 name1、 name2,在创建这三个对象时,会调用构造带参数的函数对前两个对象赋值,调用默认的构造函数把 name2的值赋为空值。这时会输出三个 “?”符号。 【知识模块】 类和对象 14 【正确答案】 C 【试题解析】 在

10、类 Test中定义拷贝构造函数 Test(const Test&t),其函数体为输出 1,在主函数 main中,当执行语句 x fun(y),调用拷贝函数用对象 y的值构造对象 u,输出 1,在执行函数 tim()的 return语句时,调用拷贝函数构造匿名对象,输出 1。 【知识模块】 类和对象 15 【正确答案】 C 【试题解析】 语句 MyClass a4, *p5不仅定义了 4个 MyClass对象,分别为a0, a1, a2, a3,而且定义了 5个指向 MyClass对象的指针变量,分别为*p0, *p1, *p2, *p3, *p4,所以共调用 MyClass的构造函数 4次。

11、【知识模块】 类和对象 16 【正确答案】 B 【试题解析】 在这个程序的主函数中定义了 3个 CD类的实例对象 a,d0, d1和一个指向 CD类对象的指针变量 b,所以当程序结束时,执行 CD的析构函数输出字符 C三次。 【知识模块】 类和对象 17 【正确答案】 C 【试题解析】 执行 XA类的实例变量 d1(2)时,成员函数 d1 get()的返回值等于2, XA b的值等于 1,执行 XA类的实例变量 d2(3)时,成员函数 d1 get()的返回值等于 3, XA b的值等于 2,所以输出结果为 2 3 2 7。 【 知识模块】 类和对象 18 【正确答案】 A 【试题解析】 一般

12、情况下,析构函数在对象的生存周期即将结束的时候由系统自动调用。在调用完成之后,对象也就消失了,相应的内存空间也被释放。析构函数没有参数,因此析构函数不能重载,一个类中只能定义一个析构函数。 【知识模块】 类和对象 19 【正确答案】 B 【试题解析】 构造函数具有下面 4个特殊的性质:构造函数的名字必须与类名相同;构造函数不指定返回类型,它隐含有返回值,由系统内部使用;构造函数可以有一个或多个参数,因此构造函数可以重载; 在创建对象时。系统会自动调用构造函数。 【知识模块】 类和对象 20 【正确答案】 A 【试题解析】 语句 “PAT(*ad)3”定义了含有 3个元素的指向类 PAT。类型的

13、指针数组 ad。 【知识模块】 类和对象 21 【正确答案】 C 【试题解析】 程序在执行时,先创建类对象 a。输出 *,再创建类对象 b,输出撑,然后再依次调用类对象 b和 a的析构函数,输出两个 【知识模块】 类和对象 22 【正确答案】 D 【试题解析】 在类 Monkey中定义了默认的构造函数和带 参数的构造函数,所以在主函数中,定义 Monkey的对象 p1时,调用默认的构造函数,输出 M;定义Monkey的对象 p2时,调用带参数的构造函数,输出 X;在执行 “delete p2; ”语句时,调用析构函数,输出 Y,在退出程序时,调用析构函数输出 Y。 【知识模块】 类和对象 23

14、 【正确答案】 B 【试题解析】 类成员对象构造函数的调用是按照在类中定义的顺序进行的,而不是按照构造函数说明后的冒号顺序进行构造的。 【知识模块】 类和对象 24 【正确答案】 D 【试题解析】 在类 MyString中,定义了带参数的构造函数 MyString(const char*s),其作用是把 s指向的字符串拷贝到字符组 s仃中。在类中还对运算进行重载定义,其作用是把字符串 str和 a相连接并赋给 str,所以在主函数中执行 x y时,结果为 ahccde。 【知识模块】 类和对象 25 【正确答案】 D 【试题解析】 此题考查的是 this指针的使用。类的每一个成员函数都有一个隐

15、含的常量指针,即 this指针。类的静态成员函数不能含有 this指针,因为 this指针是一个指向本对象的指针。 【知识模块】 类和对象 26 【正确答案】 C 【试题解析】 此题考查的是 this指针。 this指针是一个隐含的指针,它隐含于每个类的非静态成员函数中,它明确地表示出了成员函数当前操作的数据所属的对象。题目中,只有 f3()满足 “类的非静态成员函数 ”的要求,故应选 C选项。 【知识模块】 类和对象 27 【正确答案】 B 【试题解析】 this指针是成员函数所属对象的指针,它指向类对象的地址。成员函数通过这个指针知道自己属于哪一个对象。 this指针是一个隐含的指针,它隐含于每个类的非静 态成员函数中,它明确的地表示出了成员函数当前操作的数据所属的对象。 【知识模块】 类和对象

展开阅读全文
相关资源
猜你喜欢
  • AECMA PREN 2760-1986 Aerospace Series Steel FE-PL78 1760 Less Than or Equal to Rm Less Than or Equal to 2000 MPa Bar De Less Than or Equal to 75 mm Issue P 1《航空和航天系列钢FE-PL78 1760MP.pdf AECMA PREN 2760-1986 Aerospace Series Steel FE-PL78 1760 Less Than or Equal to Rm Less Than or Equal to 2000 MPa Bar De Less Than or Equal to 75 mm Issue P 1《航空和航天系列钢FE-PL78 1760MP.pdf
  • AECMA PREN 2761-1986 Aerospace Series Steel FE-PL78 1760 Less Than or Equal to Rm Less Than or Equal to 2000 MPa Forging De Less Than or Equal to 75 mm Issue P 1《航空和航天系列钢FE-PL78 17.pdf AECMA PREN 2761-1986 Aerospace Series Steel FE-PL78 1760 Less Than or Equal to Rm Less Than or Equal to 2000 MPa Forging De Less Than or Equal to 75 mm Issue P 1《航空和航天系列钢FE-PL78 17.pdf
  • AECMA PREN 2762-1986 Aerospace Series Steel FE-PL80 1900 Less Than or Equal to Rm Less Than or Equal to 2100 MPa Bar De Less Than or Equal to 75 mm Issue P 1《航空和航天系列钢FE-PL80 1760MP.pdf AECMA PREN 2762-1986 Aerospace Series Steel FE-PL80 1900 Less Than or Equal to Rm Less Than or Equal to 2100 MPa Bar De Less Than or Equal to 75 mm Issue P 1《航空和航天系列钢FE-PL80 1760MP.pdf
  • AECMA PREN 2763-1998 Aerospace Series Steel FE-PL1504 (33CrMoV12) Air Melted Hardened and Tempered Bar for Machining De Less Than or Equal to 80 mm 1 200 MPa Less Than or Equal to .pdf AECMA PREN 2763-1998 Aerospace Series Steel FE-PL1504 (33CrMoV12) Air Melted Hardened and Tempered Bar for Machining De Less Than or Equal to 80 mm 1 200 MPa Less Than or Equal to .pdf
  • AECMA PREN 2764-1998 Aerospace Series Steel FE-PL1504 (33CrMoV12) Air Melted Hardened and Tempered Forgings De Less Than or Equal to 80 mm 1 200 MPa Less Than or Equal to Rm Less T.pdf AECMA PREN 2764-1998 Aerospace Series Steel FE-PL1504 (33CrMoV12) Air Melted Hardened and Tempered Forgings De Less Than or Equal to 80 mm 1 200 MPa Less Than or Equal to Rm Less T.pdf
  • AECMA PREN 2767-1988 Aerospace Series Steel FE-PL79 Carburized Hardened and Tempered 1180 Less Than or Equal to Rm Less Than or Equal to 1550 MPa Bar for Machining De Less Than or .pdf AECMA PREN 2767-1988 Aerospace Series Steel FE-PL79 Carburized Hardened and Tempered 1180 Less Than or Equal to Rm Less Than or Equal to 1550 MPa Bar for Machining De Less Than or .pdf
  • AECMA PREN 2768-1988 Aerospace Series Steel FE-PL79 Carburized Hardened and Tempered 1180 Less Than or Equal to Rm Less Than or Equal to 1550 MPa Forgings De Less Than or Equal to .pdf AECMA PREN 2768-1988 Aerospace Series Steel FE-PL79 Carburized Hardened and Tempered 1180 Less Than or Equal to Rm Less Than or Equal to 1550 MPa Forgings De Less Than or Equal to .pdf
  • AECMA PREN 2769-1988 Aerospace Series Steel FE-PL53S Hardened and Tempered 1030 Less Than or Equal to Rm Less Than or Equal to 1180 MPa Forgings De Less Than or Equal to 70 mm Issu.pdf AECMA PREN 2769-1988 Aerospace Series Steel FE-PL53S Hardened and Tempered 1030 Less Than or Equal to Rm Less Than or Equal to 1180 MPa Forgings De Less Than or Equal to 70 mm Issu.pdf
  • AECMA PREN 2770-1988 Aerospace Series Steel FE-PL53S Hardened and Tempered 1050 Less Than or Equal to Rm Less Than or Equal to 1220 MPa Sheet and Plate 0 5 Less Than or Equal to a .pdf AECMA PREN 2770-1988 Aerospace Series Steel FE-PL53S Hardened and Tempered 1050 Less Than or Equal to Rm Less Than or Equal to 1220 MPa Sheet and Plate 0 5 Less Than or Equal to a .pdf
  • 相关搜索

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

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