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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C)机试模拟试卷 124及答案与解析 一、选择题 1 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)无序线性表 ( B)线性链表 ( C)二叉链表 ( D)顺序存储的有序表 2 下列叙述中,不属于设计准则的是 ( )。 ( A)提高模块独立性 ( B)使模块的作用域在该模块的控制域中 ( C)设计成多入口、多出口模块 ( D)设计功能可预测的模块 3 下列队列的描述中,正确的是 ( )。 ( A)队列属于非线性表 ( B)队列在队尾删除数据 ( C)队列按 “先进后出 ”进行数据操作 ( D)队列按 “先进先出 ”进行数据操作 4 对下列二叉树进行前序遍历的结果为 (

2、)。 ( A) ABCDEFGH ( B) ABDGEHCF ( C) GDBEHACF ( D) GDHEBFCA 5 对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ( )。 ( A)冒泡排序为 n(n 1) 2 ( B)简单插入排序为 n ( C)希尔排序为 n ( D)快速排序为 n 2 6 为了使模块尽可能独立,要求 ( )。 ( A)内聚程度要尽量高,耦合程度要 尽量强 ( B)内聚程度要尽量高,耦合程度要尽量弱 ( C)内聚程度要尽量低,耦合程度要尽量弱 ( D)内聚程度要尽量低,耦合程度要尽量强 7 下列选项中不属于软件生命周期开发阶段任务的是 (

3、 )。 ( A)软件测试 ( B)概要设计 ( C)软件维护 ( D)详细设计 8 数据独立性是数据库技术的重要特点之一。所谓数据独立性是指 ( )。 ( A)数据与程序独立存放 ( B)不同的数据被存放在不同的文件中 ( C)不同的数据只能被对应的应用程序所使用 ( D)以上三种说法都不对 9 在 学校中, “班级 ”与 “学生 ”两个实体集之间的联系属于 ( )关系。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 10 软件调试的目的是 ( )。 ( A)发现错误 ( B)改善软件的性能 ( C)改正错误 ( D)验证软件的正确性 11 在公有派生时,派生类中定义的成员函

4、数只能访问原基类的 ( )。 ( A)私有成员、保护成员和公有成员 ( B)保护成员和私有成员 ( C)公有成员和保护成员 ( D)公有成员和私有成员 12 有如下定义: int b10 1, 2, 3, 4, 5, 6, 7, 8, 9, 10*q b; 则数值为 8的表达式是 ( )。 ( A) *q 8 ( B) *(q 7) ( C) *q 8 ( D) q 7 13 下面的符号中可以用作 C标识符的是 ( )。 ( A) 3test ( B) fcc other ( C) else ( D) radius 14 下列程序执行后,输出的结果是 ( )。 int x 5, y 0; wh

5、ile( x) y; cout using namespace std; class Base protected: Base()cout using namespace std; intmain() cout fill(*); cout width(6); cout fill(#); cout void main() int n3=10, 20, 30, 40, 50, 60; int(*p)3; p n; cout using narnespace std; int main() int*p, *q, r 10; q ri; p &q; tout using namespace std;

6、class TestClass static int i; public: TestClass()i; TestClass()i-; static intgetVal()return i; ; int TestClass i 0; void f()TestClass obj2; coutgetVal(); delete obj3; cout using namespace std; class TestClass int n: public: TestClass(int k): n(k) int get()return n; int get()constreturn n 1; ; int ma

7、in() TestClass p(5); const TestClass q(6); cout using namespace std; int main() int x 3: if(x 5) cout using namespace std; void swap(int x, int Y) Int temp x; x y; y temp; cout using narnespace std; classA public: A()cout class TestClass 1 public: TestClass1() ; *error* private: virtual TestClass 1(

8、) using namespace std; coutm_i i; void print() cout #include #includc using namcspace std; void WriteFile(char*s) void fun(char*s) void ClearFile() ofstream out1; out1 open(“modi2 txt“); out1 close(); int main() ClearFile(); char s1024; cort using namespace std; class TestClass1 public: voidprint()

9、cout是由逗号分开的,分别说明函数的各个参数。在 fun()函数中它包括三个形参: x y, 3和 min(n 1, y);当调用一个函数时,实参与形参一对一匹配,所以实参个数也是 3个。 18 【正确答案】 A 【试题解析】 虚函数是非 static类型的成员函数,基类中可以利用 Virtual关键字来声明虚函数,派生类中定义相同原型函数时可不必加 virtual说明,直接重写基类中的函数。在派生类中的虚函数必须与基类中的虚函数具有相同的参数个数与类型。 19 【正确答 案】 C 【试题解析】 派生类 Derived由基类 Base公有派生,在派生类构造函数声明时系统会自动调用基类的缺省构

10、造函数。调用 Derivedd(Derived),;后,执行类Derived构造函数的 Derived(char c),系统自动调用基类的缺省构造函数 Base(),输出字母 Base:再执行派生类的构造函数 Derived(char c),输出字母 Derived。 20 【正确答案】 A 【试题解析】 C在流操作中,利用 cout对象的、 width属性设置输出字符的宽度,用 fill函数来设置需要填充的字符。题目程序中,首先设置填充字符为 *,输出宽度为 6,但在输出前又设置了填充字符为 #,所以在输出时,其填充字符为#,由于 888不足 6个字符,所以在前面以三个 “#”来填充。 21

11、 【正确答案】 C 【试题解析】 因为 aa后减,所以 a 4 b的值与 a、 bb相关, b 4*5 20,与aa没有任何关系。 22 【正确答案】 A 【试题解析】 extem用于声明外部变量的, register声明寄存器类型变量,无 cpu类型。它们都不能声明类成员。 public声明为公有访问权限。 23 【正确答案】 B 【试题解析】 类的定义,如果有自身类对象,会使其循环定义,选项 B错误。在类中具有自身类的指针,可以实现链表的操作,当然也可以使用对象的引用,类中可以有另一个类的对象,即成员对象。 24 【正确答案】 D 【试题解析】 地址作为实参,表示实参与形参代表同一个对象。

12、如果实参是数值,形参也是普通变量,此时形参是实参的备份。 25 【正确答案】 B 【试题解析】 如果数组元素都是相同类型的指针,则称这个数组为指针数组。指针数组一般用于处理二维数组。声明的格式为 : 。 p表示指向数组 n的行指针,初始化 “(*p)3 n; ”,地址的等价形式: pi、 pi、 *(p i)都表示数组第 i 1行的第 1个元素的首地址。 *(p i) j、 pij、 &pij都表示数组第 i 1行、第 j 1列元素的地址。值的等价形式: *(*(pi)j)、 *(pi j)、 pij都表示数组第 i 1、第 j 1列元素的值。所以本题中分别访问数组元素 p00, p01, p

13、02。 26 【正确答案】 C 【试题 解析】 p为一个二级指针,其存放的是指针变量 q的地址,而 q存放的又是 r的地址。故式子 *p相当于对 r的引用。所以最后输出的结果为 11。 27 【正确答案】 C 【试题解析】 类模板本身在编译时是不会产生代码的,只有在其实例化以后才产生代码。定义一个对象时,不能省略其实参。 28 【正确答案】 A 【试题解析】 C中,若没有类的显式声明构造函数则系统会为其提供一个默认的构造函数,若提供了构造函数则会将系统提供的默认的构造函数覆盖。调用构造函数时,实参必须与形参匹配。但是如果声明一个对象 指针时,不是定义一个对象,不调用对象的构造函数。 29 【正

14、确答案】 B 【试题解析】 在 C中,字符串以 O作为字符串结束的标志,所以个数为m 1。 30 【正确答案】 B 【试题解析】 由于 i是类 TestClass的静态成员,该成员被类的所有实例共享。当定义 obj1时,系统自动调用构造函数 TestClass(), i的值将加 1;调用函数 f()时,在定义 obj2时系统会自动调用构造函数 TestClass(), i的值将再加 1;调用obj2 getVal();后,将 i的值输出,输出值为 2;当调用函数 f()即将结束时,系统自动调用析构函数 TestClauss(), i的值将减 1;当定义 obj3时,系统自动调用构造函数 Tcs

15、tClass(), i的值将加 1,调用 coutgeVal();后,将 i的值输出,输出值为 2;调用 delete obj3后将执行 TestClass的析构函数TestClass(),执行后, i的值将减 1, TestClass getVal()为类的一个静态成员函数,其作用是返回私有静态成员变量 i的值 1。 31 【正确答案】 C 【试题解析】 继承方式有 公有继承、私有继承和保护继承 3种,缺省的继承方式是私有继承。派生类从基类继承所有的成员,但是对于基类的私有成员派生类是不可直接访问的。 32 【正确答案】 B 【试题解析】 C中对常对象的成员函数调用,将自动调用其常成员函数,

16、程序中调用原型为 “int get()const; “的函数,对于非常对象将调用原型为 “int get();“的函数。因为首先用 5对对象 p进行了初始化,所以执行 p get()时直接返回5,而对于常对象则以 6对 q进行初始化,在调用 q get()时,将调用原型为 “int getq()const; “的函数,该函数将返回 n 1,第二个输出应为 7,所以本题答案为57。 33 【正确答案】 C 【试题解析】 C中拥有纯虚函数的类称为抽象类。抽象类不能用来定义对象。如果一个抽象类的派生类没有重定义来自基类的某个纯虚函数,则该函数在派生类中仍是纯虚函数,该类仍为抽象类。 34 【正确答案

17、】 C 【试题解析】 if(条件 )语句 1 else语句 2,语句的执行过程是:首先判断条件是否为真 (不为 0),为真则执行语句 1,否则执行语句 2。题目中的条件是 x 5,意思是把 5赋予变量 x, 它将 x置 5且返回一个真值。 35 【正确答案】 D 【试题解析】 C中的拷贝构造函数是用一个已知的对象初始化一个正在创建的同类对象。拷贝构造函数的一般格式如下: );其中 const可以省略。 36 【正确答案】 B 【试题解析】 指针是一种用来存放其他变量地址的数据类型,它的声明形式为: (类型 )*(变量名 ),可以在声明的时候对其进行初始化。由于其存放的是内存单元的地址,所以大小

18、一般都是 4个字节。 37 【正确答案】 B 【试题解析】 C中的四个预定义流对象: cout, cin, cerr, clog。 38 【正确答案】 B 【试题解析】 C中默认的参数传递是值传递,也就是将实参的副本传递给被调用函数的形参,被调用的函数中对形参的任何改动都不会影响实参。 39 【正确答案】 B 【试题解析】 在每一个 C程序中必须有且只有一个主函数,每个程序的执行都是从主函数的开始。 40 【正确答案】 A 【试题解析】 C程序中的执行子类,首先执行基类的构造函数,然后执行数据成员类的构造函数,最后 执行子类本身的构造函数,所以输出结果为 ABC。 二、基本操作题 41 【正确

19、答案】 (1)删除 “private: ”语句 (2)TestClass2(int i) (3)std cout A si Z) /如果是大写字符,转换为小写字符 si si-A a; /si A a等于字符 si 32 Else if(si a si z) /如果是小写字符,转换为大写字符 si si a A; /si a A等于字符 si 32 WriteFile(s) 【试题解析】 审题分析: (1)本题要求实现两个函数的功能,其中 WriteFile(char*s)实现把字符串输入到文件中; fun(char*s)函数实现大写字母转换成小写字母,把其中的小写字母转换成大写字母。其中大小

20、写字母之间的 ASCII码 差为 32。 (2)从已给部分源程序的 main主函数开始入手,首先实现 WriteFile函数,然后再实现 fun函数,并在其中调用 WriteFile函数。 解题思路: (1)在 WriteFile(char*s)函数中,利用标准流 ofstream实现字符串写入文件modi2 txt。 (2)在 fun函数中,利用 for循环逐个判断字符是大写还是小写。 (3)如果是大写,那么加上 32实现大写转换为小写。否则,就减去 32,实现小写到大写的转换。最后调用前面实现的 WriteFile函数,将字符串写入文件。 四、综合应用题 43 【正确答案】 (1)将 “c

21、lass TestClass2”补充完整为: class TestClass2: public TestClass1 (2)将 “void print()”补充完整为: virtual void print() (3)将 “p obji3; ”修改为: p &obj3; (4)将 “p print(); ”修改为: p print() 【试题解析】 审题分析: 本题的功能是通过 print虚函数将字符串输出。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类和成员函数实现各种输出操作。 解题

22、思路: (1)题目 1要求 “类 TestClass2公共继承于 TestClassl”。从已有的类产生一个新的子类,成为类的派生。声明派生类的一般形式为: class派生类名: 继承方式 基类名。根据题目中的要求以及派生类的一般形式,第 1个标识下添加语句 “class TestClass2: public TestClass1”。 (2)题目 2要求 “print函数为虚函数 ”。在 C中,用 virtual声明的函数为虚函数,因此第 2个标识下的语句修改为 “virtualvoid vtint()”。 (3)题目 3要求 “使得 p指定对象 obj3”。 p为指针变量, obj3为类的对象,将一个指针变量指向另一个变量,只要把被指向的变量的地址赋给指针变量即可。取对象 obj3地址的语句为 &0bj3,所以这里补全 “p &obii3; ”。 (4)题目 4要求 “利用 p调用 print()函数 ”。 C中用 ” ”运算符实现成员访问, 因此调用 print()函数,应将第 4个标识下修改为 “p print(); ”。

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