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

上传人:ideacase155 文档编号:502548 上传时间:2018-11-29 格式:DOC 页数:30 大小:84.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)机试模拟试卷94及答案与解析.doc_第1页
第1页 / 共30页
[计算机类试卷]国家二级(C++)机试模拟试卷94及答案与解析.doc_第2页
第2页 / 共30页
[计算机类试卷]国家二级(C++)机试模拟试卷94及答案与解析.doc_第3页
第3页 / 共30页
[计算机类试卷]国家二级(C++)机试模拟试卷94及答案与解析.doc_第4页
第4页 / 共30页
[计算机类试卷]国家二级(C++)机试模拟试卷94及答案与解析.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、国家二级( C+)机试模拟试卷 94及答案与解析 一、选择题 1 要建立文件流并打开当前目录下的文件 file.dat用于输入,下列语句中错误的是( )。 ( A) ifstreamfin=ifstream.open(“file.dat“); ( B) ifstream*fin=newifstream(“file.dat“); ( C) ifstreamfin;fin.open(“file.dat“); ( D) ifstream*fin=newifstream();fin-open(“file.dat“); 2 有如下程序段: int i = 0, j = 1; nt / r = j; /

2、int *p = / *p = / 其中会产生编译错误的语句是 ( )。 ( A) ( B) ( C) ( D) 3 下列有关继承和派生的叙述中,正确的是 ( )。 ( A)派生类不能访问基类的保护成员 ( B)作为虚基类的类不能被实例化 ( C)派生类应当向基类的构造函数传递参 数 ( D)虚函数必须在派生类中重新实现 4 下列关于栈叙述正确的是 ( )。 ( A)算法就是程序 ( B)设计算法时只需要考虑数据结构的设计 ( C)设计算法时只需要考虑结果的可靠性 ( D)以上三种说法都不对 5 有如下程序段: int i=1; while(1) i+; if(i = 100) break;

3、if(i%2 = 0) cout #include using namespace std; class MyBag public: MyBag(string br,string cr):brand(br),color(cr) +count; MyBag() -count; static int GetCount() return count; private: string brand,color; static int count; ; int MyBag:count=0; int main() MyBag one(“CityLife“,“Gray“),two(“Micky“,“Red“)

4、; _ return 0; 若程序运行时的输出结果为 2,则横线处缺失的语句不可能是 ( A) cout 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 MyBag public: MyBag(string br,string cr):brand(br),color(cr) +count; MyBag() -count; stati

5、c int GetCount() return count; private: string brand,color; static int count; ; int MyBag:count=0; int main() MyBag one(“CityLife“,“Gray“),two(“Micky“,“Red“); _ return 0; 若程序运行时的输出结果为 2,则横线处缺失的语句不可能是 ( A) cout usingnamespacestd; classScore private: intdata; public: Score(intd=0) this-data=d; Score()

6、 voidshow() coutdatadata=value; if(this-check() coutdata=100) returntrue; returnfalse; ; intmain () ERROR*found* Scores=newScore(); ERROR*found* S-data=100; S-show(); return0; 三、简单应用题 42 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,此工程中含有一个源程序文件 proj2 epp,其中定义了 Array类。 在 C+程序中访问数组元素时,如果索引值 (下标 )小于 0或者大于元

7、素 个数减 1,就会产生越界访问错误。 Array是一个带有检查越界访问功能的数组类,其成员列表如下: 公有成员函数功能 GetValue获取指定元素的值 SetValue将指定元素设置为指定值 GetLength获取元素个数 私有成员函数功能 IsOutOfRange检查索引是否越界 私有数据成员功能 _p指向动态分配的整型数组的指针 size存放元素个数 Array类的构造函数会动态分配一个 int类型数组,以存储给定数量的元素。在公有成员函数 GetValue和 SetValue中,首先调用私有成员函数 IsOutOfRange检查用于访问数组元素的索引是否越界,只有当索引值在有效范围内

8、时,才能进行元素访问操作。 请在横线处填写适当的代码,然后删除横线,以实现 Array类的功能。此程序的正确输出结果应为: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 proj2 cpp #include usingnamespacestd; classArray public: Array(intsize)构造函数 *found* 下列语句动态分配一个 int类型数组 _p=_; size=size; Array()delete_p; )析构函数 voidSetValue(in

9、tindex, intvalue)设置指定元素的值 if(IsOutOfRange(index) ceEE usingnamespacestd; classVaiArray int*v; intsize; pubiic: VaiArray(constint*p, intn): size(n) v=newintsize; for(inti=0; i“括起来,这个表被称为类模板的模板参数表。类模板是类的抽象,类是类模板的实例。类模板使类中的一些数据成员和成员函数的参数或返回值可以取任意的数据类型。所以 B 选项正确。 16 【正确答案】 A 【试题解析】 面向对象思想的主要特征有:封装、继承和多态

10、。答案选 A。 17 【正确答案】 C 【试题解析】 公有继承中,派生类不改变基类的成员访问权限 (private成员除外 ),即基类的 public成员在派生类中是 public成员,基类的 protected 成员在派生类中是 protected 成员;另 外友元函数可以访问类的 private成员、 protected 成员和 public成员,所以 f 函数中 d 可以访问的数据成员有: n、 p、 k; m对派生类不可见;答案为 C。 18 【正确答案】 D 【试题解析】 需求分析阶段的工作可以分为个方面:需求获取、需求分析、编写需求规格说明书和需求评审,包括确定软件系统的功能, D

11、选项正确。 A、 B、C选项均为开发阶段工作。 19 【正确答案】 D 【试题解析】 题目需要声明类型转换运算符 int,类型转换运算符是一种特殊的类成员函数,它定义将类类型值转变为其他 类型值的转换,其中转换函数必须是成员函数,不能指定返回类型,并且形参列表必须为空,所以 int类型转换运算符的声明为: operatorint();选项 A、 B、 C错误;答案为 D。 20 【正确答案】 A 【试题解析】 streamoff定义于 iostream.h 中,定义有偏移量 offset所能取得的最大值, seek_dir表示移动的基准位置,是一个有以下值的枚举: ios:beg:(文件开头)

12、、 ios:cur:(文件当前位置)、 ios:end:(文件结尾)。 21 【正确答案】 B 【试 题解析】 重载运算符的规则如下: C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载; C+不能重载的运算符只有 5个; 重载不能改变运算符运算对象的个数; 重载不能改变运算符的优先级和结合性; 重载运算符的函数不能有默认的参数; 重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C+的标准类型。所以答案为 B。 22 【正确答案】 A 【试题解析】 本题考查常对象及常成员函数及构造函数,常对象只能调用常成员函数,所以本题中,对象

13、v1为 普通对象,执行 v1.f()后,会执行默认构造函数,输出 5,对象 v2为常对象,执行 v2.f()后,会执行常构造函数,输出 3。 23 【正确答案】 B 【试题解析】 黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选择 B)。 24 【正确答案】 D 【试题解析】 本题考查默认构造函数,题中定义了二维对象数组以及一个指针对象,那么构造函数就执行 3次,答案为 D。 25 【正确答案】 B 【试题解析】 本题考查 setw,表示控制输入输出宽度。 B

14、选项正确。 26 【正确答案】 B 【试题解析】 函数 f1调用 f2,如果 f2定义在 f1之后,那么必须将 f2的函数原型声明放在 f1之前,如果 f2定义在 f1之前,那么不需要 f2函数原型声明。所以B 选项正确。 27 【正确答案】 B 【试题解析】 本题考查静态数据成员和静态成员函数,静态成员函数只能使用本类中的静态数据成员,且静态成员函数不归属任何一个对象,而是属于类,题目中要求输出 2,那么就要将 count输出,题目中定义了两个对象,都对 count进行了 +,所以调用静态成员函数直接使用类名, B 选项正确。 28 【正确答案】 A 【试题解析】 一般来说,实体集之间必须通

15、过联系来建立联接关系,分为三类:一对一联系( 1:1)、一对多联系( 1:m)、多对多联系( m:n)。实体运动队和队员的关系为 1:m联系,故 A选项正确。 29 【正确答案】 C 【试题解析】 C+中,不能在类中直接初始化 const数据成员,因为在类没有被初始化时,成员是不存在的,所以 const数据成员必须在构造函数初始化列表 中初始化,语句 1、 4正确,语句 2错误;另外类的 static数据成员不能在类定义中初始化,也不能通过类的构造函数进行初始化,而必须在类定义体的外部定义,语句 3错误;答案为 C。 30 【正确答案】 C 【试题解析】 软件设计常用的工具有:图形工具:程序流

16、程图、 N-S 图、 PAD图、 HIPO;表格工具:判定表;语言工具: PDL(伪码)。另外,在结构化设计方法中,常用的结构设计工具是结构图,故选择 C选项。 31 【正确答案】 B 【试题解析】 由调用函数 6.7-y可知, double类型在运算符 “-“的左边,应该作为运算符函数 “-“的第一形参,选项 A、 C错误;由于运算符 “-“函数并不改变操作数的状态,所以形参应该声明为 const对象的引用,或者按值传递,参数按引用类型传递可能会改变操作数的状态,选项 D错误;答案为 B。 32 【正确答案】 D 【试题解析】 模板形参可以由 class 或 typename声明,选项 D错

17、误,答案为D。 33 【正确答案】 B 【试题解析】 一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联 函数体来替换,即类似于宏。 34 【正确答案】 C 【试题解析】 本题考查公用继承和保护继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。本题中 Derived1公用继承 Base,所以 编译正确, Derived2保护继承 Base,所以 编译不正确。 35 【正确答

18、案】 C 【试题解析】 数据库系统的三级模式是概念模式、外模式和内模式。概念 模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择 C)。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。 36 【正确答案】 D 【试题解析】 本题考查继承与派生,派生类中的成员访问基类中的成员由派生方式决定,一个类可以有多个直接基类,如果基类中定义了缺省构造函数或根本没有定义任何一个构造函数(此时,由编译器自动生成缺省构造函数)时,在派生类构造函数的定义中可以省略对基类构造函数的调 用,即省略 “(

19、)“。本题答案为 D。 37 【正确答案】 B 【试题解析】 1966年 Boehm和 Jacopini 证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。 38 【正确答案】 A 【试题解析】 本题考查运算符重载,重载不能改变运算符运算对象的个数;不能改变运算符的优先级别;不能改变运算符的结合性;重载运算符的函数不能有默认值,否则就改变了运算符参数的个数;不能定义新的运算符,某些运算符不能重载。所以 A选项错误 。 39 【正确答案】 B 【试题解析】 A)错误,可行性分析阶段产生可行性分析报告。 C)错误,概要设计说明书是总体设计阶段产生

20、的文档。 D)错误,集成测试计划是在概要设计阶段编写的文档。 B)正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。 40 【正确答案】 A 【试题解析】 一旦函数在基类中声明为虚函数,它就一直是虚函数,派生类无法改变该函数为虚函数这一事实,所以派生类从基类中继承来的虚函数,不加virtual 修饰,也是虚函数,选项 A正确;普通成员函数在派生类中也可以重 新定义,重新定义后的成员函数会屏蔽对基类同名函数的直接访问,选项 B 错误;多态调用只能是通过基类对象的指针或引用调用虚函数来实现,基类对象调用虚函数不是多态调用,选项 C错误;构造函数不能声明为虚函数,因为构造函数是在对象完

21、全构造之前运行的,在构造函数运行时,对象的动态类型还不完整,选项D错误;答案为 A。 二、基本操作题 41 【正确答案】 (1)if(this-data=100) (2)Score*s=newScore(); (3)S-setData(100); 【试题解析】 (1)主要考查 考生对赋值运算符与相等运算符的掌握,在 if判断条件中,赋值运算符始终为真,这里需要比较是否相等,使用相等运算符。 (2)主要考查考生对动态分配的掌握,由下面语句 s通过箭头访问运算符访问成员函数可以判断, s属于指针, new运算符返回的是指针,所以修改为 Score*s=new Score() (3)主要考查考生对类

22、成员访问权限的掌握,不能通过 S 指针直接访问私有变量data,修改为通过成员函数 setData来修改 data值。 三、简单应用题 42 【正确答案】 (1)new int size (2)_pindex = value (3)return _pindex (4)index _size 【试题解析】 (1)主要考查考生对动态分配的掌握 ,题目要求分配一个 int类型数组 ,数组长度为 size,应使用 new语句分配空间 ,因此为 new intsize。 (2)主要考查考生对成员函数的掌握 ,先看函数功能 :设置指定元素的值。 index为指定的下标 ,value为指定的值 ,因此使用语

23、句 : _pindex = value;。 (3)主要考查考生对成员函数的掌握 ,函数功能为获取指定 元素的值 ,index为要求返回的元素的下标 ,直接使用 return语句返回数组元素即可。 (4)主要考查考生对 if语句的掌握 ,函数功能是检查索引是否越界 ,当 index size时 ,index 越界 ,返回 true。 四、综合应用题 43 【正确答案】 for (int i = 0; i size-1; i+) int temp = vi; vi = vi+1; vi+1 = temp; 【试题解析】 程序要将数组 v中 的 size个整数依次移动到它的前一个单元 ,其中第一个整数移到原来最后元素所在单元。 for循环语句用于遍历整个数组 ,每循环一次便将当前元素与后一个元素互换 ,因此循环变量的取值范围是 0 size-2,最后一个元素不需遍历。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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