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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C+)机试模拟试卷 86及答案与解析 一、选择题 1 有如下程序段: int i = 0, j = 1; int / r = j; / int *p = / *p = / 其中会产生编译错误的语句是 ( )。 ( A) ( B) ( C) ( D) 2 有如下类定义: class AA int a; Public: AA(int n=0):a(n) ; class BB :public AA public: BB(int n)_ ; 其中横线处的缺失部分是 ( )。 ( A) :a(n) ( B) :AA(n) ( C) a(n); ( D) a=n; 3 下列叙述中正确的是 (

2、)。 ( A)栈是一种先进先出的线性表 ( B)队列是一种后进先出的线性表 ( C)栈与队列都是非线性结构 ( D)以上三种说法都不对 4 下列关于函数参数的叙述中,正确的是 ( A)在函数原型中不必声明形参类型 ( B)在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也被修改 ( C)函数形参的生存期与整个程序的运行期相同 ( D)函数的形参在函数被调用时获得初始值 5 有如下类定义: class Box public: Box(int h,int w,int l):width(w),length(l),height(h) private: int length,width

3、,height; ; Box 类中 3个数据成员的初始化顺序为 ( A) length,height,width ( B) length,width,height ( C) height,width,lenth ( D) width,length,height 6 在关系数据库中,用来表示实体间联系的是 ( A)属性 ( B)二维表 ( C)网状结构 ( D)树状结构 7 运算符重载时必须有所不同的是 ( A)优先级 ( B)结合性 ( C)操作数个数 ( D)操作数类型 8 有如下程序: #include #include using namespace std; class Wheel p

4、ublic: Wheel(string s=“W“):name(s) coutfun(); ( C) Base:fun(); ( D) fun(); 14 有如下程序: #include using namespace std; class AA public: AA(int n) cout using namespace std; class MyClass public: MyClass(int x):val(x) void Print() const cout #include using std:cout; class Point public: friend double dista

5、nce(const Point Point(int xx=0,int yy=0): x(xx), y(yy) private: int x, y; ; double distance(const Point int main() Point p0,p1(3,4); cout using namespace std; class AA char c; public: AA():c(X) AA(char ch):c(ch) AA(AA class Pair int m,n; public: Pair(int j,int k):m(j),n(k) int get() return m; int ge

6、t() const return m+n; ; int main() Pair a(3,5); const Pair b(3,5); coutdata;“中, cin是 ( A) C+的关键字 ( B)类名 ( C)对象名 ( D)函数名 39 下面是重载为非成员函数的运算符函数原型,其中错误的是 ( A) MyClassoperator*(MyClass); ( B) MyClassoperator+(MyClass,int); ( C) MyClass ( D) MyClass 40 有如下头文件: int f1(); static int f2(); class MA public: i

7、nt f3(); static int f4(); ; 在所描述的函数中,具有隐含的 this指针的是 ( )。 ( A) f1 ( B) f2 ( C) f3 ( D) f4 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 pmj1下的工程 proj1。此工程中包含源程序文件 main cpp,其中有类 TVSet(“电视机 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后 的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 规格: 29英寸,电源:开,频道: 5,音量: 18 规格: 29英寸,电源:关,频道:一 1,音量:一

8、1 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #include usingnamespacestd; classTVSet “电视机 ”类 constintsize; intchannel;频道 intvolume;音量 boolon;电源开关: true表示开, false表示关 public: TVSet(intsize): size(size), channel(0), on(false) ERROR*found* intgetSize()constreturnSize; 返回电视机规格 boolisOn()constreturnon; )

9、返回电源开关状态 返回当前音量,关机情况下返回一 1 intgetVolume、 ()const returnisOn()?volume:一 1; ) 返回当前频道,关机情况下返 回一 1 intgetChannel()const returnisOn()?channel:一 1; ) voidturnOnOff()on=!on; 将电源在 “开 ”和 “关 ”之间转换 voidsetChannelTo(intchan) 设置频道 (关机情况下无效 ) if(isOn() chan: 0 chan=0 vol“不能重载为成员函数,选项 B 错误;成员访问操作符 “.“、成员指针访问操作符 “.

10、*“、域操作符 “:“、 sizeof和条件操作符 “?:“是不能重载的,选项 C错误;除了函数调用操作符 “()“外,重载操作符时使用默认参数是非法的,选项 D错误;重载操作符不能改变操作符的优先级别,选项 A正确;答案为 A。 11 【正确答案】 D 【试题解析】 对象数组,就是数组元素是类对象,不管对象数组在哪里定义,如果没有显式的调用构造函数初始化,编译器将使用类的默认构造函数初始化对象元素,这里程序中显式的使用构造函数 Pa(intn)初始化各个元素,所以被调用的构造函数只有 Pa(intn),没有调用默认构造函数和复制构造函数,答 案为 C。 12 【正确答案】 C 【试题解析】

11、扇入指的是调用一个给定模块的模块个数。题干系统中,第 2层模块扇入均为 1,第 3层中功能模块 3.1扇入为 2,其余为 1,故最大扇入为 2, C选项正确。 13 【正确答案】 C 【试题解析】 基类 Base和派生类 Derived 中使用同一名字的成员函数 fun,所以在派生类 Derived 的作用域中,派生类 Derived中的 fun函数会屏蔽基类 Base中的 fun 函数,即 Base的 fun 函数对 Derived 不可见,这是因为编译器在查找名字fun时,首先在 Derived中找到,这样编译器就不再继续查找,所以若想在Derived中调用 Base的 fun 函数,必须

12、显式的说明 fun 函数属于 Base,这里使用作用域运算符访问被屏蔽的 fun,调用语句为: Base:fun();答案为 C。 14 【正确答案】 D 【试题解析】 构造函数初始化列表仅指定用于初始化成员的值,并不指定这些初始化执行的次序;初始化执行的次序是根据类定义中成员的声明顺序完成的,初始化列表结束后,再执行函数体;程序创建 CC 对象 c,调用 CC的构造函数,由于在类 CC中, AA类对象 a首先声明,所以先 调用 AA类的构造函数,完成成员a的初始化,输出 “1“,再调用 BB类的构造函数,完成成员 b的初始化,输出“2“,最后执行 CC构造函数的函数体,输出 “3“;答案为

13、D。 15 【正确答案】 D 【试题解析】 C+中使用 new 表达式动态创建对象, new 表达式返回指向新创建对象的指针, D选项将 new 返回的指针赋给整型 const变量,语法错误,答案选D。 16 【正确答案】 C 【试题解析】 类的非静态成员函数都隐含 this 指针,静态成员是类的组成部分,不是任何对象的组成部分,因此静态成员函数没有 this指针,选项 D错误;友元函数不属于成员函数,没有 this指针,选项 A、 B 错误;答案为 C。 17 【正确答案】 C 【试题解析】 软件设计常用的工具有:图形工具:程序流程图、 N-S 图、 PAD图、 HIPO;表格工具:判定表;

14、语言工具: PDL(伪码)。另外,在结构化设计方法中,常用的结构设计工具是结构图,故选择 C选项。 18 【正确答案】 C 【试题解析】 只有类定义或者声明在当前定义类前面出现过,数据成员才能被指定为该类类型,类 AA已经完成定义, v1, v2 正确;类不能具有自身类型的数据成员,只要类名出现就可以认为该类已经声明,类的数据成员就可以是指向自身类型的指针或引用,类 BB在声明之后,定义之前是一个不完全类型,其数据成员只能是指向 BB类型的指针或引用, v4正确, v3错误;答案为 C。 19 【正确答案】 D 【试题解析】 模板形参可以由 class 或 typename声明,选项 D错误,

15、答案为D。 20 【正确答案】 D 【试题解析】 本题考查 C+关键字,属于基本常识,显然 D选项不正确。 21 【正确答案】 C 【试题解析】 本题考查常对象、常成员函数及构造函 数。常对象只能调用常成员函数,普通对象调用普通成员函数。所以本题中 obj1为常对象,执行 obj1.print()后,会执行常构造函数,输出 const: val=10;而 obj2为普通对象,执行obj2.print()时,会执行默认构造函数,输出 val=20。故答案为 C。 22 【正确答案】 A 【试题解析】 数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。 23 【正确答案】 B

16、 【试题解析】 本题考查默认构造函数,如果用户定义的类中没有显式的定义任何构造函数,编译 器就会自动为该类型生成默认构造函数,建立一个对象时,系统会自动执行默认构造函数。 24 【正确答案】 A 【试题解析】 本题考查字符输入的流成员函数 getline,函数原型为: 25 【正确答案】 A 【试题解析】 本题考查运算符重载,重载不能改变运算符运算对象的个数;不能改变运算符的优先级别;不能改变运算符的结合性;重载运算符的函数不能有默认值,否则就改变了运算符参数的个数;不能定义新的运算符,某些运算符不能重载。所以 A选项错误。 26 【正确答案】 D 【试题解析】 本题考 查构造函数的应用,题目

17、中定义对象 p0时,执行默认构造函数,得出 x和 y都为 0,定义对象 p1(3,4),得到 x和 y分别是 3,4,执行distance(p1,p0)后得出 5 27 【正确答案】 B 【试题解析】 栈是按 “先进后出 “的原则组织数据的,数据的插入和删除都在栈顶进行操作。 28 【正确答案】 D 【试题解析】 内联函数的函数定义必须出现在内联函数第一次被调用之前;内联函数可以避免函数频繁调用时的开销,提高程序运行效率;在类定义体内部定义的成员函数,编译器都将其视为内联函数; A、 B、 C正确;内联函数也可以有参数, D错误,答案为 D。 29 【正确答案】 B 【试题解析】 iomani

18、p 是 I/O 流控制头文件; strstream是输入输出字符串流头文件; cstdlib是常用函数库,提供一些函数和符号常量;选项 A、 C、 D错误;fstream是输入输出文件流头文件,答案为 B。 30 【正确答案】 C 【试题解析】 横线处填写的语句,是重载后缀自增运算符 +的函数声明,为了与内置类型一致,后缀自增运算符应该返回旧值,即尚未自增的值,并且应该作为值返回,而不是返回引用,选项 A、 B错 误;另外为了区分运算符的前缀和后缀形式,后缀运算符重载函数需要接受一个额外的 int型形参,选项 D错误;答案为C。 31 【正确答案】 C 【试题解析】 main 函数中,调用 f

19、1函数,创建局部对象 AA(Y),此时形参 a就是 AA(Y)对象,输出 a.value(),即 “Y“, f1 函数执行完之后,需要销毁 AA(Y)对象,调用 AA类的析构函数 AA(),输出 “3“;接着程序调用 f2函数, f2函数创建局部对象的引用 a并初始化指向 AA(),此时引用 a所指对象的成员 c值为“X“,输出为 “X“, f2函数 执行完之后,需要销毁 a所指对象 AA(),调用 AA类的析构函数 AA(),输出 “3“,程序结束;运行结果为: “Y3X3“,答案为 C。 32 【正确答案】 A 【试题解析】 本题考查 if语句, if语句的条件部分不能嵌套 if 语句,所

20、以 A选项错误; B选项就是 if语句嵌套; C选项其实就是将判断条件颠倒,然后执行语句也颠倒,所以效果一样; D选项也正确。 33 【正确答案】 B 【试题解析】 本题考查常对象、常成员函数及构造函数。常对象只能调用常成员函数,所以本题中,对象 a为普通对象,执行 a.get()后,会执行默认构造函数,输出 3;对象 b 为常对象,执行 b.get()后,会执行常构造函数,输出 8。 34 【正确答案】 C 【试题解析】 在 E R图中实体集用矩形,属性用椭圆,联系用菱形。 35 【正确答案】 C 【试题解析】 只有类的非静态成员函数才隐含 this 指针,其作用域是类内部,当类的非静态成员

21、函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,而不必一定写上 this。所以本题答案为 C。 36 【正确答案】 A 【试题解析】 根据二叉树的 性质 3:在任意一棵二叉树中,度为 0的叶子结点总是比度为 2的结点多一个,所以本题中度为 2的结点是 5 1 4个,所以度为 1的结点的个数是 25 5 4 16个。 37 【正确答案】 D 【试题解析】 本题考查运算符重载,重载不能定义新的运算符,且赋值运算符只能重载为成员函数,重载类型转换运算符时,声明返回类型不一定是 void,所以D选项错误。 38 【正确答案】 C 【试题解析】 本题考查提取运算符 ,

22、 cin为对象名,所以 C选项正确。 39 【正确答案】 D 【试题解析】 本题考查 赋值运算符重载,赋值运算符只能作为类的成员函数重载,所以 D选项错误。 40 【正确答案】 C 【试题解析】 只有类的非静态成员函数才隐含 this 指针,其作用域是类内部,当类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,而不必一定写上 this。所以本题答案为 C。 二、基本操作题 41 【正确答案】 (1) volume = 18; (2)channel = chan; (3)void setVolumeTo(int vol) 【试题解析】 (1)主要考

23、查考生对构造函数的掌握 ,有题目要求输出音量为 18,因此使用构造函数将 volume初始为 18。 (2)主要考查考生对成员函数的掌握 ,满足 if 条件的要设置频道 ,即 clannel=chan。 (3)主要考查考生对 const函数的掌握 ,函数体内存在语句 volume=vol,使变量的值发生改变 ,因此不能用 const定义函数。 三、简单应用题 42 【正确答案】 (1)const Point& p (2)distanceTo(p2) (3)Point(down_right.x, upper_left.y) (4)width() * height() 【试题解析】 (1)主要考查

24、考生对成员函数的掌握 ,根据函数体可知形参应为 const Point& p。 (2)主要考查考生对成员函数的掌握 ,求线段的距离直接调用函数 distanceTo 即可。 (3)主要考查考生对成员函数的掌握 ,函数功能求矩形水平边长度 ,这里程序直接构造Line类型并调用 length 函数。 (4)主要考查考生对成员函数的掌握 ,矩形面积为高乘宽 ,因此 ,调用函数 height和width取得高和宽。 四、综 合应用题 43 【正确答案】 for(inti=1; i0) 当 j大于零时,做相乘操作,即完戍该项的乘方动作 x_value*=x; j-; value+=coefi*x_value; 把 i项的乘方结果乘以该项系数后加进 value中 【试题解析】 题目要求成员 函数 getValue计算多项式的值,多项式中 x的值由参数指定,多项式的值 value为各次项的累加和。由类的定义可知数组 coef 中存储的是各次项的系数,这里使用 for循环来完成题目要求,当次项为 0时,value=coef0。当次项为 1时, value=coef1*x+coef0。依次类推直到 x的最高次数。

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