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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C+)机试模拟试卷 81及答案与解析 一、选择题 1 有如下类定义: class Foo public: Foo(int v) : value(v) / Foo() / private: Foo() / int value = 0; / ; 其中存在语法错误的行是 ( )。 ( A) ( B) ( C) ( D) 2 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 ( )。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 3 对 C+编译器区分重载函数无任何意义的信息是 ( )。 ( A)参数类型 ( B)参数个数 ( C)返回值类型 ( D)常成员函数关键字

2、 const 4 有如下程序: #include using namespace std; class VAC public: int f() const return 3; int f() return 5; ; int main() VAC v1; const VAC v2; cout #include using namespace std; class Animal public: virtual string GetType() const return “Animal“; virtual string GetVoice() const return “Voice“; ; class

3、 Dog:public Animal public: string GetType() const return “Dog“; string GetVoice() const return “Woof“; ; class Cat:public Animal public: string GetType() const return “Cat“; string GetVoice() const return “Miaow“; ; void Type(Animal a) cout T square(T x) return x * x; 其中的参数 T是 ( A)函数形参 ( B)函数实参 ( C)

4、模板实参 ( D)模板形参 14 有如下程序段: int i=2;int j=3; int main() i=j=9; cout using namespace std; class MyClass public: MyClass() coutTfun(Tx)returnx; ( B) templateTfun(Tx,intn)returnx*n; ( C) templateTfun(T*p)return*p; ( D) templateTclassATn; 24 已知数组 arr 的定义如下: int arr5 = 1,2,3,4,5; 下列语句中输出结果不是 3的是 ( A) cout T

5、 square(T x) return x * x; 其中的 T是 ( A)函数形参 ( B)函数实参 ( C)模板形参 ( D)模板实参 29 若 x和 y是程序中的两个整型变量,则下列 if语句中合法的是 ( A) if(x)y=1;elsey=2; ( B) if(0)y=1elsey=2; ( C) if(x!=0)theny=1elsey=2; ( D) ifx!=0y=1;elsey=2; 30 在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是 ( A)圆括号 ( B)中括号 ( C)尖括号 ( D)花括号 31 下列选项中,正确的 C+标识符是 ( A) a3

6、( B) a-3 ( C) a3 ( D) a_3 32 下列有关类继承的表述中,错误的是 ( A)派生类可以继承多个基类 ( B)派生类构造函数要负责调用基类的构造函数 ( C)虚基类可以解决由多继承产生的二义性问题 ( D)虚基类可以解决由多继承产生的二义性问题 33 下列叙述中正确的是 ( )。 ( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 34 关于运算符重载,下列表述中正确的是

7、( )。 ( A) C+已有的任何运算符都可以重载 ( B)运算符函数的返回类型不能声明为基本数据类型 ( C)在类型转换符函数的定义中不需要声明返回类型 ( D)可以通过运算符重载来创建 C+中原来没有的运算符 35 下列关于 C+预定义流对象的叙述中,正确的是 ( )。 ( A) cin是 C+预定义的标准输入流对象 ( B) cin是 C+预定义的标准输入流类 ( C) cout是 C+预定义的标准输入流对象 ( D) cout是 C+预定义的标准输入流类 36 下列关于赋值运算符 =重载的叙述中,正确的是 ( A)赋值运算符只能作为类的成员函数重载 ( B)默认的赋值运算符实现了 “深

8、层复制 “功能 ( C)重载的赋值运算符函数有两个本类对象作为形参 ( D)如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符 37 有如下程序: #include using namespace std; class Point public: Point(int xx=0,int yy=0):x(xx),y(yy) void SetX(int xx) x=xx; void SetY(int yy) y=yy; private: int x,y; ; class Circle:public Point public: Circle(int r):radius(r) int GetRad

9、ius() return radius; private: void SetRadius(int r) radius=r; int radius; ; int main() Circle c1(5); c1.SetX(1); / c1.SetY(2); / c1.SetRadius(10); / cout using namesapce std; int return r; int main() int a=1,3,5,7; cout usingnamespacestd; classMyClass public: MyClass(intlen) array=newintlen; arraySi

10、ze=len; for(inti=0; i #include usingnamespacestd; classBasel public: *found*下列语句需要声明纯虚函数 Show _; ; classBase2 protected: char*p; Base2(constchar*s) _p=newcharstrlen(s)+1; *found*下列语句将形参指向的字符串常量复制到该类的字符数组中 _; Base2()delete_P; ; *found*Derived类 公有继承 Basel,私有继承 Base2类 classDerived: _ public: *found*以下构

11、造函数 调用 Base2类构造函数 Derived(constchar*s): _ voidShow() coutShow(); deletepb; return0; 四、综合应用题 43 请使用 VC6或使用【答题】菜单打开考生目录 proj3下的工程文件 proj3,此工程中包含一个源程序文件 proj3 cpp,其中定义了用于表示日期的类 Date、表示人员的类 Person和表示职员的类 Staff;程 序应当显示: 张小丽 123456789012345 但程序中有缺失部分,请按照以下提示,把缺失部分补充完整: (1)在 “ *1*found*”的下方是构造函数的定义中的一个语句,它

12、用参数提供的身份证号 id_card_no对数据成员 idcardno进行初始化。 (2)在 “ *2*found*”的下方是构造函数定义的一个组成部分,其作用是利用参数表中的前几个参数对基类 Person进行初始化。 (3)在 “ *3*found*”的下方定义了一个 Staff对 象,其中: 身份证号: 123456789012345 姓名:张三 出生日期: 1979年 5月 10日 性别:女 工作部门:人事部 工资: 1234 56元 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动 “*found*”。填写的内容必须在一条语句中完成,否则评分将产生错误。 pr

13、oj3 cpp #include usingnamespacestd; classDate public: intyear; intmonth; intday; Date(): year(0), month(0), day 0) Date(inty, intm, intd): year(y), month(m), day(d) ; classPerson charidcardno16;身份证号 charname20;姓名 Datebirthdate;出生日期 boolismale;性别: true为男, false为女 public: Person(constchar*pid, constch

14、ar*pname, Datepdate, boolpmale); constchar*getIDCardNO()const returnidcardno; constchar*getName()constreturnname; voidrename(constchar*newname); DategetBirthDate()constreturnbirthdate; boolisMale()constreturnismale; ; classStaff: publicPerson chardepartment20;工作部门 doublesalary;工资 public: Staff(const

15、char*idcardno, constchar*p_name, Datebirth_date, booliSmale, constchar*dept, doublesal); constchar*getDepartment()const returndepartment; voidsetDepartment(constchar*d); doublegetSalary()constreturn salary; voidsetSalary(doubleS)fsalary=s; ; Person: Person(constchar*idcard_no, constchar*p_name, Date

16、birth_date,boolismale) : birthdate(birthdate), ismale(is male) *1*found* _; strcpy(name, p_name); voidPerson: rename(constchar*new _name)strcpy(name, new_name); Staff: Stafffconstchar*idcard no, constchar*p_name, Datebirth_ date, boolismale, *2*found* constchar*dept, doublesal): _ setDepartment(dept

17、); setSalary(sal); voidStaff: setDepartment(const char*dept) strcpy(department, dept); intmain() *3*found* _; Zhangsan rename(“张小丽 “); cout virtual ()=0; ; 所以 B选项正确。 8 【正确答案】 A 【试题解析】 结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。 9 【正确答案】 A 【试题解析】 本题考查在类中重载流运算 符 var;。其中, var代表一个变量, “”称为提取运算符,该语句的含义是,将用户输入的数据保存

18、到 var中。 (3)考查语句的初始化,我们来看 MyClass 类的构造函数: MyClass(intlen) array=newintlen;给数组动 态分配空间,大小为 len arraysize=len;赋值 for(inti=0; iarraySize; i+) arrayi=i+1;循环给数组赋 值,从 1到 10 请注意:形参 len 没有定义默认值,因此要想使 array动态数组里依次存放 1, 2,3, 4, 5, 6, 7, 8, 9, 10,就是要给 len 赋值为 10。 三、简单应用题 42 【正确答案】 (1)virtualvoidShow()=0 (2)strcp

19、y(_p, s) (3)publicBase1, privateBase2 (4)Base2(s) 【试题解析】 (1)主要考查的是纯虚函数的定义。题目要求声明纯虚函数 Show,因此首先看 Basel类的派生类 Derived类中 Show 函数的定义: voidShow() cout一 pend1; 这时就可以得出答案了,只要在 void 前加上 virtual,在 ()后加上 =0;,再把函数体去掉就可以了,即 virtualvoidShow()=0;。特别注意纯虚函数和虚函数的区别,虚函数不能添加 =0。 (2)主要考查的 是字符串赋值语句,题目要求将形参指向的字符串常量复制到该类的字

20、符数组中。即把 s复制给 _p,直接使用语句 strcpy(_p, s);就可以了, strcpy为系统提供的字符串复制函数。 (3)主要考查的是派生类的声明。题目要求 Derived类公有继承 Basel,私有继承Base2类。公有继承使用 public,保护继承使用 protected,私有继承使用private。如果一个类同时继承多个基类时,各个基类之间用 “, ”分开。 (4)主要考查的是派生类的构造函数,定义派生类的构造函数时要使用成员列表对基类初始化。 基 类一: Base1类,没有构造函数,不需要使用参数。 基类二: Base2类,有构造函数: Base2(constchar*s

21、),因此需要成员列表:Derived(constchar*s): Base2(s)。 四、综合应用题 43 【正确答案】 (1) strcpy(idcardno,id_card_no) (2) Person(id_card_no,p_name,birth_date,is_male) (3) Staff Zhangsan(“123456789012345“,“张三 “,Date(1979,5,10),false,“人事部 “,1234.56) 【试题解析】 (1)主要考查考生对 strcpy 函数的掌握 ,复制字符串要使用 strcpy函数 ,其格式为 :strcpy(字符串 1,字符串 2);。 (2)主要考查考生对构造函数的掌握 ,派生类的构造函数要使用成员列表初始化先调用基类的构造函数。 (3)主要考查考生对构造函数的掌握 ,由题目要求可知要针对象初始化为 :Zhangsan(“123456789012345“,“张三 “,Date(1979,5,10),false,“人事部“,1234.56);。

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