ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:60.50KB ,
资源ID:497858      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-497858.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C++机试(选择题)模拟试卷4及答案与解析.doc)为本站会员(Iclinic170)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

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