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

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

1、国家二级 C+机试(选择题)模拟试卷 4及答案与解析 一、选择题 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 下列叙述中正确的是 ( )。 ( A)一个逻辑数据结构只能有一种存储结构 ( B)逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 ( D)一个逻辑数据结构可以有多种存储结构,且各种存储结 构影响数据处理的效率 3 下列关于类、对象、属性和方法的叙述中,错误的是 ( )。 ( A)类是对一类

2、具有相同的属性和方法对象的描述 ( B)属性用于描述对象的状态 ( C)方法用于表示对象的行为 ( D)基于同一个类产生的两个对象不可以分别设置自己的属性值 4 在软件开发中,需求分析阶段产生的主要文档是 ( )。 ( A)数据字典 ( B)详细设计说明书 ( C)数据流图说明书 ( D)软件需求规格说明书 5 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 ( )。 ( A)编码设 计 ( B)测试阶段 ( C)运行阶段 ( D)物理设计 6 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 ( )。 ( A)并 ( B)交 ( C)投影 ( D)除 7 下列叙述中,正

3、确的是 ( )。 ( A)软件交付使用后还需要进行维护 ( B)软件一旦交付使用就不需要再进行维护 ( C)软件交付使用后其生命周期就结束 ( D)软件维护是指修复程序中被破坏的指令 8 设一棵满二叉树共有 15个结点,则在该满二叉树中的叶子结点数为 ( )。 ( A) 17 ( B) 8 ( C) 9 ( D) 10 9 设 R是一个 2元关系,有 3个元组, S是一个 3元关系,有 3个元组。如T=RxS,则 T的元组的个数为 ( )。 ( A) 6 ( B) 8 ( C) 9 ( D) 12 10 下列选项中,不属于数据库管理的是 ( )。 ( A)数据库的建立 ( B)数据库的调整 (

4、 C)数据库的监控 ( D)数据库的校对 11 在下列横线处应添加的语句是 ( )。 class Basepublic: void fun()cout class A int ij; public: int geti() retum i; ; class B: public A intk: public: void make() k=i*j; ; 则上述定义中非法的表达式是 ( )。 ( A) k=i*j; ( B) intk; ( C) return i: ( D) void make(); 14 在下面的类定义中,错误的语句是 ( )。 class Sample public: Sampl

5、e(int val); -Sample(); private: int a=2 5: Sample(); | ; ( A) ( B) ( C) ( D) 15 假定 MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为 ( )。 ( A) MyClass&(MyClass x); ( B) MyClass(MyClass x) ( C) MyClass(MyClass&x); ( D) MyClass(MyClass, *x) 16 下面对静态数据成员的描述中,正确的是 ( )。 ( A)静态数据成员是类的所有对象共享的数据 ( B)类的每个对象都有 自己的静态数据成员 ( C)类的

6、不同对象有不同的静态数据成员值 ( D)静态数据成员不能通过类的对象调用 17 关于运算符重载,下列表述中正确的是 ( )。 ( A) C+已有的任何运算符都可以重载 ( B)运算符函数的返回类型不能声明为基本数据类型 ( C)在类型转换符函数的定义中不需要声明返回类型 ( D)可以通过运算符重载来创建 C+中原来没有的运算符 18 不能作为函数重载的判断依据的是 ( )。 ( A) const ( B)返回类型 ( C)参数个数 ( D)参数类型 19 有 如下类的定义。横线处的语句是 ( )。 class MyClass public: MyClass(int a=0, int b=0)

7、X=a: Y=b: void Changeoconst X一 =10: Y+=10: private: int X, Y; ; ( A) static ( B) const ( C) mutable ( D)不需要填入内容 20 有如下函数模板定义: template T1 sum(T1 a1) retum(a1+a2+a3); 则以下调用中正确的是 ( )。 ( A) sum(5); ( B) sum(5); ( C) sum(5); ( D) sum(5); 21 关于 new运算符的下列描述中,错误的是 ( )。 ( A)它可以用来动态创建对象和对象数组 ( B) 使用它创建的对象或对象

8、数组可以通过运算符 delete删除 ( C)使用它创建对象时要调用构造函数 ( D)使用它创建对象数组时必须指定初始值 22 派生类的构造函数的成员初始化列中,不能包含 ( )。 ( A)基类的构造函数 ( B)派生类中予对象的初始化 ( C)基类的子对象初始化 ( D)派生类中一般数据成员的初始化 23 派生类的对象对它的基类成员中 ( )是可以访问的。 ( A)公有继承的公有成员 ( B)公有继承的私有成员 ( C)公有继承的保护成员 ( D)私有继承的公有成员 24 C+类体系中,不能被派生类继承的有 ( )。 ( A)构造函数 ( B)虚函数 ( C)静态成员函数 ( D)赋值操作函

9、数 25 下列程序的输出结果是 ( )。 $include void ff(int x), if(double x); void main() float a(88 18); ff(a); charb(a); ff(b); void ff(int X) cout using namespace std; void add(int x, int y, int*z) *z=y+x; int main() int a,b, c; add(8, 4, &a); add(6, a, &b); add(a, b, &c); cout using namespace std; class TestClass

10、 public: TestClass()cout using namespace std; class TestClass public: TestClass(int r1 int r2) R1=r1; R2=r2; void print(); void printOconst; private: int R1, 1t2; ; void TestClass: print() cout using namespace std; class TestClass public: TestClass()cout using namespace std; class TestClass public:

11、void funOcoutfun(); 34 下面关于虚函数的描述中正确的是 ( )。 ( A)虚函数是一个静态成员函数 ( B)虚函数是一个非成员函数 ( C)虚函数既可以在函数说明时定义,也可以在函数实现时定义 ( D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 35 有如下程序: #include using namespace std; class TestClass l public: virtual void fun()coutfun(); return 0: 执行上面程序的输出是 ( )。 ( A) 1122 ( B) 2112 ( C) 2213 ( D) 22

12、23 36 有如下程序: #include using namespace std; long fun(int n) if(n2) retum(fun(n-1)+fun(n-2); else return 2; int main() cout using namespace std; template T fun(T a,T b)return(a=b)?a: b; ) void main() cout*、:、 ?:这五个运算符之外,其他运算符都可以重载;在类型转换符函数的定义中不需要声明返回类型;运算符函数的返回值类型可以声明为基本数据类型。 18 【正确答案】 B 【试题解析】 所谓函数重载

13、是指同一函数名可以对 应多个函数实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。但函数的返回类型不能作为判断重载的依据。 19 【正确答案】 C 【试题解析】 C+中 const关键字用来表示一个常量,同时 const也用来修饰函数。这两个概念需要明确: const所修饰的函数只能是类的成员函数,因为 const所修饰的函数中,要由编译器负责保护类的成员变量不被修改。而相对的,mutable则是用来修饰类的成员变量,让该变量在 const所修饰的成员函数中可以被修改。而且 const修饰的函数只能是类的成 员函数, mutable修饰的变量只能是类的成员变量。 20 【

14、正确答案】 A 【试题解析】 本题考查的函数模板的使用,有时不能根据用户传进来的参数决定所有模板函数的值类型,如函数的返回值,还有用户希望自己指定参数类型,这时就需要显式地指出参数模板的类型,显示指定模板的类型格式为:返回值类型函数模板 (参数表 )。 21 【正确答案】 D 【试题解析】 用 new创建对象是不用显式调用构造函数的,它自己会自动调用。 22 【正确答案】 C 【试题解析】 派生类的构 造函数会调用基类的构造函数。对于基类子对象的初始化会在基类的构造函数中进行。派生类会为基类提供参数,当基类的构造函数收到参数时会将参数传递给相应的基类子对象。 23 【正确答案】 A 【试题解析

15、】 只要是派生类,都可以丛基类中继承,除非把基类的构造函数定义为私有的,这样派生类无法构造。 24 【正确答案】 A 【试题解析】 不能被继承的有构造函数、拷贝构造函数、赋值函数、析构函数。 25 【正确答案】 A 【试题解析】 本题主要考查函数调用时从实参到形参的类型一致性。相 同类型或小类型的实参可以传给大类型的形参,但是不允许大类型的实参传给小类型的形参。 26 【正确答案】 D 【试题解析】 this指针是成员函数所属对象的指针,它指向类对象的地址;它隐含于每个类的非静态成员函数中; this指针只能在类的成员函数中使用,它指向该成员函数被调用的对象;静态成员函数没有 this指针,因

16、为类中只有一个静态成员函数实例,使用 this指针无意义。 27 【正确答案】 B 【试题解析】 由主函数 main入手,调用 add函数,其中第三个参数为引用,即传值为地址。当 add函数中第三个参数改变时,主函数中这个值也会改变。那么第一个 add调用后 a=12,所以第二个调用中 a=12。调用后 b=18。那么第三个调用后 c=30。 28 【正确答案】 A 【试题解析】 由主函数入手,定义了类 TestClass的对象 a和 d,当类对象进入其作用域时调用构造函数,构造函数在建立对象时由系统自动执行,而且只执行一次。因为定义了两个对象,所以构造函数 TestClass()被调用的次数

17、是 2。“d=userCode(a); ”语句 d中调用成员为 a的 userCode()成员函数,所以是 3次。 29 【正确答案】 B 【试题解析】 常对象只能调用其中的 const成员函数,即 “const TestClass b(20,52); ”只能调用 “void print()const; ”。常对象保证所有数据成员的数值不被修改,所以这里是 20, 52。 30 【正确答案】 C 【试题解析】 静态数据成员是一种特殊的数据成员。静态数据成员不属于某一个对象,在为对象所分配的空间中不包括静态数据成员所占的空间。所有对象共享这些静态数据成员,都可以引用它。 31 【正确答案】 B

18、【试题解析】 公有继承中,基类的公有成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。所以 B是错误的,即选择 B)。 32 【正确答案】 A 【试题解析】 TestClass是 TestClassl的基类。由主函数 main入手,定义TestClassl的对象 d,调用基类 TestClass构造函数输出 BB,调用基类成员函数fun输出 Bf,然后调用派生类的构造函数,输出 DD。 33 【正确答案】 C 【试题解析】 程序中的 TestClassl为 TestClass的派生类, TestClassl公 有继承TestClass,所以可以调用其中的公有成员 fun函数,如

19、果要显示调用它,那么使用域符号 “: ”,这样就实现了对函数的显示调用,即选择 C)。 34 【正确答案】 D 【试题解析】 在基类中用 virtual声明成员函数为虚函数,所以 AB错误。在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同。 35 【正确答案】 C 【试题解析】 主函数中定义 TestClassl的对象 aa, *p对象指针, TestClass2的对象 bb以及 TestClass3的对象 cc。 p指向 cc, TestClass3为 TestClass2的派生类,构造函数输出 2。 TestClass3中 fun函数中为 TestC

20、lass2中的 fun,调用TestClass2的构造函数,输出 2。 “p-fun(); ”, TestClass2继承于 TestClassl中的fun,所以输出 1。然后输出 TestClass3中的 “cout2时递归调用 fun(n-1)+fun(n-2), 否则返回 2。所以当 n=3时,调用 fun(2)+fun(1),即返回 2+2,等于4。 37 【正确答案】 D 【试题解析】 “?: ”为条件运算符, (a=b)?a: b是当 a大于 b时取 a,否则取b。所以第一个 fun(3, 6)调用中, 6大于 3,所以输出 6,同理第二个fun(3 14F,6 28F)调用中输出 6 28。 38 【正确答案】 D 【试题解析】 此题考查的是数组和指针的概念。题目中 data10共有 10个元素,分别是 data0、 data1、 data2、 data3d ata9,首元素是 data0,所以选项 D)错误;其他选项均正确。 39 【正确答案】 C 【试题解析】 此题考查的是类的定义。在定义类的成员变量时,如果没有使用关键字,所有成员默认定义为 private私有权限。 40 【正确答案】 B 【试题解析】 此题考查的是内联函数。 C+语言引入内联函数的原因是用它来取代 C语言的预处理宏函数。

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

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

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