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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(选择题)模拟试卷 124及答案与解析 一、选择题 1 在结构化方法中,用数据流程图 (DFD)作为描述工具的软件开发阶段是 ( )。 ( A)逻辑设计 ( B)需求分析 ( C)详细设计 ( D)物理设计 2 对序线性表 (23, 29, 34, 55, 60, 70, 78)用二分法查找值为 60的元素时,需要比较次数为 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 3 下列描述中,正确的是 ( )。 ( A)线性链表是线性表的链式存 储结构 ( B)栈与队列是非线性结构 ( C)双向链表是非线性结构 ( D)只有根结点的二叉树是线性结构 4 开发大型

2、软件时,产生困难的根本原因是 ( )。 ( A)大型系统的复杂性 ( B)人员知识不足 ( C)客观世界千变万化 ( D)时间紧、任务重 5 两个或两个以上的模块之间关联的紧密程度称为 ( )。 ( A)耦合度 ( B)内聚度 ( C)复杂度 ( D)连接度 6 下列关于线性表的叙述中,不正确的是 ( )。 ( A)线性表可以是空表 ( B)线性表是一 种线性结构 ( C)线性表的所有结点有且仅有一个前件和后件 ( D)线性表是由 n个元素组成的一个有限序列 7 设有如下关系表: 则下列操作正确的是( )。 ( A) T=R S ( B) T=RS ( C) T=RS ( D) T=R S 8

3、 以下描述中,不是线性表顺序存储结构特征的是 ( )。 ( A)可随机访问 ( B)需要连续的存储空间 ( C)不便于插入和删除 ( D)逻辑相邻的数据物理位置上不相邻 9 在三级模式之间引入两层映像,其主要功能之一是 ( )。 ( A) 使数据与程序具有较高的独立性 ( B)使系统具有较高的通道能力 ( C)保持数据与程序的一致性 ( D)提高存储空间的利用率 10 下列方法中,属于白盒法设计测试用例的方法的是 ( )。 ( A)错误推测 ( B)因果图 ( C)基本路径测试 ( D)边界值分析 11 关于虚函数,以下说法正确的是 ( )。 ( A)若在重定义虚函数时使用了 virtual,

4、则该重定义函数还是虚函数 ( B)虚函数不能声明为友元 ( C)子类必须重定义父类的虚函数 ( D)虚函数不能是 stoic的 12 下列关于纯虚函数与抽象类的描述中,错误的是 ( )。 ( A)纯虚函数是一种特殊的虚函数,它没有具体的实现 ( B)抽象类是指具有纯虚函数的类 ( C)一个基类中说明具有纯虚函数,该基类的派生类一定不再是抽象类 ( D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出 13 将 x+y*z中的 “+”用成员函数重载, “*”用友元函数重载应写为 ( )。 ( A) operator+(operator*(y, z) ( B) x operator+(ope

5、rator*(y, z) ( C) x operator+(x*(y, z) ( D) x+(operator*(y, z) 14 以下程序的执行结果是 ( )。 #include #include void fun(int n) if(n!=0) fun(n-1); for(int i=1; i using namespace std; class TestClass public: TestClass(int n)number=n; 拷贝构造函数 TestClass() private: intnumber; ; TestClass fun(TestClass p) TestClass t

6、emp(p); retum temp; int main() TestClass obj1(10), obj2(0); TestClass obj3(obj1); obj2=fun(obj3); return 0: ( A) TestClass(TestClass other)number=other number; ( B) TestClass TestClass other)number=other number; ( C) TestClass(TestClass other)number; ( D) TestClass( other)number=other number; 16 执行完

7、下列代码段之后: bool x=true, y=false, z=false; x=x yz; y=xy z; z=!(x!=y)(y=z); 则 x=false, y=false, z=( )。 ( A) true ( B) false ( C)不确定 ( D)异常 17 如果表达式 -x y中的 “-”和 “ ”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为 ( )。 ( A) operator (x operato-(), y); ( B) operator (operator-(x), y); ( C) x operator-() operator (y); (

8、 D) y operator (operator-(x); 18 将以下程序写成三目运算表达式是 ( )。 if(xy)?x: y ( B) min=(x和作用域运算符 ( D)静态数据成员不是所有对象所共用的 25 以下程序的执行结果是 ( )。 #include int a8=1, 2, 3, 4, 5, 6, 7; void fun(int*pa, int n); void main() int in=8; fun(a, m); coutak)_; return(k); ( A) k=i ( B) k=j ( C) i=j ( D) i=n 27 在 C+程序中,如果要求通过函数来实现一

9、种简单的功能,并且要 求尽可能加快程序执行速度,则应该选用 ( )。 ( A)内联函数 ( B)重载函数 ( C)递归调用 ( D)嵌套调用 28 有如下类声明: class MyBASE int k; public: void set(int n)k=n; ) int get()constretum k; ; class MyDERIVED: protected MyBASE protected: intj; public: void set(int m, int n)MyBASE: set(m); j=n; int getoconstreturn MyBASE: get()+j; ; 则类

10、 MyDERIVED中保护的数据成员和成员函数的个数是 ( )。 ( A) 4 ( B) 3 ( C) 2 ( D) 1 29 下列关于继承的描述中,错误的是 ( )。 ( A)析构函数不能被继承 ( B)派生类是基类的组合 ( C)派生类的成员除了它自己的成员外,还包含 了它的基类的成员 ( D)派生类中继承的基类成员的访问权限到派生类保持不变 30 类的析构函数的作用是 ( )。 ( A)一般成员函数 ( B)类的初始化 ( C)对象的初始化 ( D)释放由对象所占用的资源 31 如果表达式 y母 x+中, “*”是作为成员函数重载的运算符, “+”是作为友元函数重载的运算符,采用运算符函

11、数调用格式,该表达式还可表示为 ( )。 ( A) x operator+(0) operator*(y) ( B) operator*(x operator+(0), y) ( C) y operator*(operator+(x, 0) ( D) operator*(operator+(x, 0), y) 32 #include using namespace std; class XX protected: intk: public: XX(int n=5): k(n); XX() cout T cast(U u)returnu; 其功能是将 U类型数据转换为 T类型数据。已知 i为 i

12、nt型变量,下列对模板函数 cast的调用中正确的是 ( )。 ( A) cast(i); ( B) castx; if(x+5) coutSetVariable(5)与语句 my SetVariable(5)等价 38 下列关于虚函数的描述中,正确的是 ( )。 ( A)虚函数是一个 static类型的成员函数 ( B)虚函数是一个非成员函数 ( C)基类中采用 virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual说明 ( D)派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型 39 有如下程序: #include void fun(int x,

13、 int y)int t=x; x=y; y=t; int main() int a2=23, 42); fun(a1, a0); std: cout using namespace std; class A public: static int a; void init()a=1; A(int a=2)init(); a+; ; int A: a=0: A obj; int main() cout);其中:关键词 enum表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素表由枚举元素或枚举常量组成。其中 enumMofiday, Tuesday, wednesdav, Thrusday

14、, Friday=2的值由 0开始,即 0, 1, 2, 3。 D中的本题中的枚举类型中的数据值 Wedrlesdav为2,而 Friday的值赋值为 2,所以判断 Wedrlesdav等于 Fridav的表达式值为真,即 true。即选择 A)。 20 【正确答 案】 D 【试题解析】 如果函数实参是数组名,形参也应为数组名,函数 swap中形参进行了交换,实际上也是实参进行了交换。而且数组名代表数组首元素的地址,并不代表数组的全部元素。所以, swap(b, 2)是数组 b第一个元素与第二个元素进行交换,即 b0与 b1,根据题干,知道答案为 2, 1。 21 【正确答案】 D 【试题解析

15、】 循环条件 i=j=4;是个赋值语句,使得 i, i的值非 0,所以是死循环。 22 【正确答案】 A 【试题解析】 在 switch语句中 default的位置不是固定 在最后的位置,同时default也是可以省略。 23 【正确答案】 C 【试题解析】 可见性是函数内部,存在整个程序中,第二次调用值不变。 24 【正确答案】 D 【试题解析】 静态数据成员是在类装载的时候就分配了内存空间,而类的成员变量是在生成对象时分配内存空间。所以只要类装载了,就可以用类名访问静态数据成员。事实上,该类的所有对象都只保存类静态数据成员的引用,它们都指向同一块内存区域。 25 【正确答案】 D 【试题解

16、析】 void fun(int*pa, int n1函数 定义的功能就是把数组的每个元素的值加到元素 pa7中,也就是数组的元素之和放在 a7中存储,所以结果 28。 26 【正确答案】 A 【试题解析】 函数 fun中首先定义整型变量 k用来存放返回最大值的下标,并将其首先指向第一个元素,即 k=j。然后在 for循环中依次将当前元素 ai与标识为最大值的元素进行比较,如果当前元素大于这个标识元素,那么将最大值标识为当前元素,即 k=i。 27 【正确答案】 A 【试题解析】 此题考查的是内联函数的相关知识点。 C+引入内联函数是用它来代替 C语言中 的预处理宏函数,内联函数在调用时,是将表

17、达式用内联函数体来替换,这样会加快程序的执行速度。 28 【正确答案】 B 【试题解析】 因为在保护继承的情况下,基类中的公有成员 void set(int n)和 int get()const在派生类中是保护成员,再加上派生类自身的保护成员 i,一共是三个保护成员。 29 【正确答案】 D 【试题解析】 派生类中继承的基类成员的访问权限到派生类会发生变化,例如:私有继承时,派生类不能访问基类的成员,所以选项 D)错误,其他选项均正确。 30 【正确答 案】 D 【试题解析】 类的在撤销对象时,系统会自动调用类的析构函数,析构函数用来释放由对象所占用的资源。 31 【正确答案】 C 【试题解析

18、】 运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即 y operator*(z)或者 operator*(y, z);另一种是通过运算符构成表达式,即 y*z。因为 “+”运算符既可以作为前缀运算符,又可以作为后缀运算符,所以重载这个运算符时,重载后缀 “+”时必须多一个虚拟参数: int。 32 【正确答案】 A 【试题解析】 类 YY公有派生于类 XX,派生类对象可以替代基类对象向基类对象的引用进行赋值初始化, XX p=*new YY语句定义了 XX对象 p引用,并用YY对象初始化, p并不是 YY对象的别名,是 XX基类对象的别名,故先调用基类 XX的构造函数将 k初

19、始化为 5, p f()首先输出 k一 3即 2,然后调用 XX:f()输出 k+3即 8, delete p删除 p,调用 XX的析构函数输出 “XX”。 33 【正确答案】 D 【试题解析】 选项 D)是将 double类型的数据转化成 int类型的数据,正确。 34 【正确答案】 D 【 试题解析】 此题首先读入数值 4赋给变量 x,因为 x+5不成立,因为 “+”后缀,之后 x的值变为 5,执行语句 cout5成立,所以执行语句 cout成员函数 (形参表 )或者对象名成语函数名 (形参表 ),故选项 C)错误,选项 D)正确。 38 【正确答案】 C 【试题解析】 此题考查虚函数的概

20、念。在成员函数声明的前面加上 virtual修饰,即把该函数声明为虚函数。虚函数只能是类中的一个成员函数,但不能是静态成员函数,所以选项 A)和 B)错误;在派生类中重新定义虚函数时必须有相同的函数类 型,包括函数的返回类型、函数名、参数个数、参数类型的顺序必须相同。故选项 D)错误。 39 【正确答案】 B 【试题解析】 此题考查的是函数的调用以及参数值的传递。函数 fun中的第一个参数是引用传值方式,是双向的;第二个参数是按值传递,是单向的。 40 【正确答案】 B 【试题解析】 此题实际考查的是变量作用域的屏蔽效应。在 C+中,当标识符的作用域发生重叠时,在一个函数中声明的标识符可以屏蔽函数外声明的标识符或全局标识符。声明类 A的全局对象时,构造函数首先调用 int函数,但由于静态成员变 量 a被构造函数内部的形参 a所屏蔽所以 a+改变的是形参 a的值,对静态成员变量 a没有影响。

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