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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C+)机试模拟试卷 85及答案与解析 一、选择题 1 有如下函数模板: template T cast(U u) return u; 其功能是将 U类型数据转换为 T类型数据。已知 i为 int型变量,下列对模板函数cast的调用中正确的是 ( )。 ( A) cast(i); ( B) cast1; -i) cout using namespace std; class Base public: void fun1() cout using namespace std; class Base public: Base() cout1;i-=2)coutgetPI();和 cout

2、getPI();和 coutgetPI(); ( D) cout using namespace std; void fun(int x=y/4; x+; int main() int x=4,y=5; fun(x,y); cout using namespace std; class AA public: AA(int n) cout using namespace std; class Sample friend long fun(Sample s); public: Sample(long a) x = a; private: long x; ; long fun(Sample s) i

3、f (s.x usingnamespacestd; classHome “住宅 “类 char*addresS;地址 char*owner;业主姓名 public: EFRROR*found* Home(constchar*ad=NULL, constchar*ow) EFRROR*found* if(ad=NULL) address=NULL; else address=newcharstrlen (ad)+1; strcpy(address, ad); if(OW=NULL) owner=NULL; else owner=newcharstrlen(ow)+1; strcpy(owner,

4、 ow); Home()t if(address)deleteaddress; ERFOR*found* if(owner)deleteowner; constchar*getAdress()const returnaddress, constchar*getOwner()constreturnowner; ; intmain() Homemyhome(“南 21条 12号 “, “李四 “); cout #include usingnamespacestd; classPerson public: charname20; intage; char*address, public: Perso

5、n(char*_name, int_age, char*_add=NULL);构造函数 voidinfo_display();人员信息显示 Person();析构函数 ; voidwriteToFile(constchar*path =“); proj3 cpp #include #include #include“proj3 h“ usingnamespacestd; Person: Person(char*_name, int_age, char*_add): age(_age) 把字符串 name复制到数组 name中 使 address指向一个动态空间,把字符串 _ add复制到该数组

6、中。 *333* *666* voidPerson: info_display() coutinfo_display(); deletep2; writeToFile(“); 国家 二级( C+)机试模拟试卷 85答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 本题考查函数模板的基本运用,属于基础知识。函数模板实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型代表,这个通用函数就是函数模板。函数模板可以设定默认参数,这样在调用模板函数时就可以省略实参,函数模板的实例就是一个函数的定义。所以本题答案为D。 2 【正确答案】 B 【试题解析】 本题考查 for循

7、环语句, -i表示用之前先减 1,那么这个 for循环语句只有 50到 2时才会输出 “*“,所以总共输出 49次。 3 【正确答案】 D 【试题解析】 本题考查保护继承中派生类对基类的访问属性,在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有,所以本题答案为 D。 4 【正确答案】 D 【试题解析】 本题考查控制输出格式, A、 B、 C选项都会输出 “12345“,只有 D选项输出 “12345“,所以本题答案为 D。 5 【正确答案】 A 【试题解析】 本题考查二维字符数组, a0=“AAA“中 a0表示一个地址,不能将字符串直接赋值 给指针,所以

8、A选项错误。 6 【正确答案】 A 【试题解析】 本题考查派生类的构造函数,其一般形式为:派生类构造函数名(总参数表列) :基类构造函数名(参数表列)所以只有选项正确。 7 【正确答案】 D 【试题解析】 队列的修改是依先进先出的原则进行的, D正确。 8 【正确答案】 B 【试题解析】 函数 f1调用 f2,如果 f2定义在 f1之后,那么必须将 f2的函数原型声明放在 f1之前,如果 f2定义在 f1之前,那么不需要 f2函数原型声明。所以B 选项正确。 9 【正确答案】 D 【试题解析】 当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给

9、函数,所以 正确使用 this指针。而 为静态成员,没有 this 指针,答案为 D选项。 10 【正确答案】 D 【试题解析】 软件具有以下特点:软件是一种逻辑实体,具有抽象性;软件没有明显的制作过程;软件在使用期间不存在磨损、老化问题;对硬件和环境具有依赖性;软件复杂性高,成本昂贵;软件开发涉及诸多的社会因素,如知识产权等。故选项 D正确。 11 【正确答案】 C 【试题解 析】 流运算符 “不能重载为类的成员函数,因为一旦该操作符重载为类的成员函数,那么左操作数将只能是该类类型的对象,这样的用法与正常 I/O使用方式相反。为了支持正常用法,左操作数必须为 ostream类型。但是,标准库

10、中的类是不能人为添加成员的,答案为 C。 12 【正确答案】 C 【试题解析】 定义类模板时,模板形参表同样使用尖括号括起来,答案为 C。 13 【正确答案】 A 【试题解析】 结构化程序的三种基本控制结构:顺序、选择和重复,故 A选项正确。 14 【正确答案】 C 【 试题解析】 函数 huiwen 通过递归地比较字符串 s的首尾字符是否相等,来判断字符串 s是否是回文串,所以字符串 “radar“需要判断 “radar“的首尾字符、“ada“的首尾字符、 “d“的首尾字符,函数 huiwen 需要被调用 3次,答案为 C。 15 【正确答案】 B 【试题解析】 在某基类中声明为 virtu

11、al 并在一个或多个派生类中被重新定义的成员函数,本题中定义了一个派生类对象 obj,执行 f函数后,将派生类对象 obj转化为基类对象,由于 fun1不是虚函数,所以输出基类的 fun1;而 fun2是虚函数, 所以输出派生类的 fun2,所以本题答案为 B。 16 【正确答案】 D 【试题解析】 在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为 0的结点(即叶子结点)总是比度为 2的结点多一个。叶子结点有 435个,则度为 2的结点为 434, D选项正确。 17 【正确答案】 B 【试题解析】 派生类构造函数在构造派生类过程中,首先

12、初始化基类,然后根据声明次序初始化派生类的成员,最后执行函数体;析构函数在程序结束时负责撤销自己的成员,首先运行派生类析构 函数,然后按继承层次依次向上调用各基类析构函数;在 main 函数中,创建 Derived 类对象 obj,此时调用 Derived的构造函数,构造函数在进入函数体之前,又调用基类 Base的构造函数构造基类,由于Derived中没有数据成员,所以构造完基类,执行函数体,输出为: “BD“;撤销obj对象时,首先执行 Derived的析构函数,然后调用基类的析构函数,输出为“db“;答案为 B。 18 【正确答案】 C 【试题解析】 在树结构中,一个结点所拥有的后件个数称

13、为该结点的度,所有结点中最大的度称为树的度。对 任何一棵二叉树,度为 0的结点(即叶子结点)总是比度为 2的结点多一个。二叉树共有 845个结点,度为 0的结点有 45个,度为1的结点数为 n1,度为 2的结点数为 n2,则 845=45+n1+n2,且 45=n2+1,则n1=756, C选项正确。 19 【正确答案】 B 【试题解析】 首先赋值运算符只能重载为成员函数,以便编译器可以知道是否需要合成一个,选项 A、 D错误;另外赋值运算符是二元运算符,左操作数是调用该赋值运算符的类对象,所以赋值运算符的重载函数的形参只需要右操作数,选项 C中有两个形参,错误;答案为 B。 20 【正确答案

14、】 A 【试题解析】 程序中的 typename都可以替换为 class,但程序中的 class 不可以全部替换为 typename。在模板类型形参中除了 typename和 class 以外,也可以用常规类型来声明参数的类型,所以 C、 D选项错误。 21 【正确答案】 B 【试题解析】 本题考查 for循环语句,题目中每执行完循环体后, i都会减 2,那么只有 50到 2之间的偶数才能输出 “*“,所以总共输出 25次。 22 【正确答案】 D 【试题解析】 本题考查静态成员函数。静态成 员函数由于没有 this指针,所以不能访问本类中的非静态成员。引用静态成员函数有 2种方式,一种是直接

15、使用类来引用,即 Constants:getPI();另一种是使用对象来引用,即constants.getPI( )。所以本题答案为 D。 23 【正确答案】 D 【试题解析】 需求分析阶段的工作有:需求获取;需求分析;编写需求规格说明书;需求评审,所以选择 D)。 24 【正确答案】 C 【试题解析】 本题考查类的定义,类定义中不能包含自己本身的对象 ,否则会引起像无限递归的问题,结果就 是内存被消耗殆尽。所以 C选项错误。 25 【正确答案】 D 【试题解析】 本题考查模板的相关知识,一个类模板可以有多个类型参数。所以D选项错误。 26 【正确答案】 D 【试题解析】 本题考查除号 /,当

16、除号两边都是整数时,得出的结果为整数, 2/3等于 0,所以结果为 0, D选项正确。 27 【正确答案】 D 【试题解析】 当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,所以 正确使用 this指针。而 为静态成员,没有 this 指针,答案为 D选项。 28 【正确答案】 A 【试题解析】 数据模型通常由数据结构、数据操作及数据约束部分组成。故 A选项正确。 29 【正确答案】 D 【试题解析】 C+中,静态成员是类的组成部分,不是任何对象的组成部分,因此静态成员函数没有 this 指针,类的非 const成员函数包括静态成员函数

17、,所以选项 A、 C错误;答案选 B 或 D。 30 【正确答案】 B 【试题解析】 二叉树遍历可以分为 3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在 访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。本题中前序序列为 ABCD,中序序列为 DCBA,可知 D为根结点, ABC为左侧结点, C为 D左子结点, A为 B子结点,故后序序列为 DCBA,故 B选项正确。 31 【正确答案】 C 【试题解析】 函数 fun 两个形参 x, y都是引用类型,函数功能是通过形参的引用类型修改实参值,首先修改 y值为 x、 y之和;然

18、后将修改后的 y值除以 4,结果赋给 x,再将 x自增 1; main 函数中定义 x=4, y=5,通过 fun函数的调用,修改 y的值为 4+5=9, x的值为 9/4+1=3,最终输出结果为 3,9,答案为 C。 32 【正确答案】 D 【试题解析】 构造函数初始化列表仅指定用于初始化成员的值,并不指定这些初始化执行的次序;初始化执行的次序是根据类定义中成员的声明顺序完成的,初始化列表结束后,再执行函数体;程序创建 CC 对象 c,调用 CC的构造函数,由于在类 CC中, AA类对象 a首先声明,所以先调用 AA类的构造函数,完成成员a的初始化,输出 “1“,再调用 BB类的构造函数,完

19、成成员 b的初始化,输出“2“,最后执行 CC构造函数的函数体,输出 “3“;答案为 D。 33 【正确答案】 D 【试题解析】 本题考查 C+标识符的命名规则,其规则有如下几点: 所有标识符必须由字母、数字或下画线组成,且必须由字母或下画线开头; 所有标识符不能使用 C+已有的关键字; 大、小写字母表示不同意义,即代表不同的标识符。选项 C中虽然 return是关键字,但因首字母大、小写不同,也可用于标识符,但不建议使用。故答案为 D。 34 【正确答案】 C 【试题解析】 本题考查默认构造函数,当 i=0、 1时, fun(Sample(i)为 1;当 i=2时, fun(Sample(i

20、)为 2;当 i=3时, fun(Sample(i)为 6;当 i=4 时, fun(Sample(i)为 24;当 i=5时, fun(Sample(i)为 120。所以总和为 154。 35 【正确答案】 C 【试题解析】 因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。 36 【正确答案】 A 【试题解析】 本题考查虚函数,在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数成为虚函数,虚函数不得是静态成员函数,但可以是友元函 数。 37 【正确答案】 A 【试题解析】 软件按功能可以分为:应用软件、系统软件、支撑软件

21、。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B)、 C)、 D)都是系统软件,只有 A)是应用软件。 38 【正确答案】 B 【试题解析】 本题考查对象的定义,定义一个类对象就需要占用空间,其中c1、 c3 都占用了空间, c2、 c4 为指针只占一个指针空间,所以 B选项正确。 39 【正确答案】 A 【试题解析】 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限 制使用 goto语句,所以选择 A)。 40 【正确答案】 D 【试题解析】 函数 calc()声明的形参表后面有关键字 const,说明该函数是常成员函数,常成员函数改变了隐含的 this

22、 形参的类型,使得 this 是指向 const对象的指针,因而该函数只能读取数据成员的值,不能修改数据成员,所以 D选项错误,答案为 D。 二、基本操作题 41 【正确答案】 (1)Home(constchar*ad=NULI, constchar*ow=NULL)或Home(constchar*ad, constchar*ow) (2)if(ad=NULL) (3)if(owner)deleteowner; 【试题解析】 (1)主要考查考生对构造函数默认参数的掌握,如果有一个形参具有默认实参,那么它后面所有的形参都必须有默认实参。 Home构造函数中 ad 具有默认实参,所以 ow也必须有

23、默认实参。 (2)主要考查考生对赋值操作符和相等操作符区别的掌握,在 if语句的判断条件中,使用赋值操作符时,表达式值始终为 true,这里需要修改为相等操作符。 (3)主要考查考生对动态分配的掌握,在 Home 构造函数中,使用 newchar对owner动态分配内存,那么在析构函数中,必须对应使用 deleteowner释放内存。 三、简单应用题 42 【正确答案】 (1)x1(root1), x2(root2), num_of_roots(2) (2)num_of_roots (3)a(x.a), b(x.b), c(x.c) (4)return Root() 【试题解析】 (1)主要考

24、查考生对构造函数的掌握 ,应使用成员列表初始化。 (2)主要考查考生对 switch 语句的掌握 ,使用 num_of_roots 判断根的信息 。 (3)主要考查考生对构造函数的掌握 ,应使用成员列表初始化。 (4)主要考查考生对成员函数的掌握 ,结合数学知识可知 ,当 delta0.0时 ,方程式无解。 四、综合应用题 43 【正确答案】 strcpy(name,_name); address = new charstrlen(_add) + 1; strcpy(address,_add); 【试题解析】 主要考查考生对构造函数的掌握 ,根据题目要求 ,首先使用 strcpy()函数把字符串 _name复制到数组 name中 ,然后使用 new语句分配一个动态空间 ,使address 指向空间首地址 ,最后把字符串 _add复制到该数组中。

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