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

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

1、国家二级( C+)机试模拟试卷 120及答案与解析 一、选择题 1 关于函数声明格式中的 ,下列叙述错误的是 ( A) 有可能包含关键字 true ( B) 有可能包含自定义标识符 ( C) 有可能包含字符 * ( D) 有可能包含关键字 float 2 下列关于运算符重载的叙述中,错误的是 ( A)不能通过运算符重载在 C+ 中创建新的运算符 ( B)赋值运算符只能重载为成员函数 ( C)运算符函数重载为类的成员函数时,第一操作数是该类对象 ( D)重载类型转换运算符时,应声明返回类型为 void 3 下列运算符中,不能被重载的是 ( A) | ( B) += ( C) . ( D) - 4

2、 下列叙述中正确的足 ( )。 ( A)循环队列是顺序存储结构 ( B)循环队列是链式存储结构 ( C)循环队列是非线性结构 ( D)循环队列的插入运算不会发生溢出现象 5 下列叙述中正确的是 ( )。 ( A)所有数据结构必须有根结点 ( B)所有数据结构必须有终端结点 (即叶子结点 ) ( C)只有一个根结点,且只有一个叶子结点的数据结构一定是线 性结构 ( D)没有根结点或没有叶子结点的数据结构一定是非线性结构 6 下列关于算法的描述中错误的是 ( ) ( A)算法强调动态的执行过程,不同于静态的计算公式 ( B)算法必须能在有限个步骤之后终止 ( C)算法设计必须考虑算法的复杂度 (

3、D)算法的优劣取决于运行算法程序的环境 7 在线性表的顺序存储结构中,其存储空间连续,各个元素所占的字节数 ( )。 ( A)相同,元素的存储顺序与逻辑顺序一致 ( B)相同,但其元素的存储顺序可以与逻辑顺序不一致 ( C)不同,但元素的存储顺序与逻 辑顺序一致 ( D)不同,且其元素的存储顺序可以与逻辑顺序不一致 8 设二叉树如下: 则中序序列为 ( )。 ( A) ABDEGCFH ( B) DBGEAFHC ( C) DGEBHFCA ( D) ABCDEFGH 9 下面不属于软件需求分析阶段工作的是 ( )。 ( A)需求获取 ( B)需求计划 ( C)需求分析 ( D)需求评审 10

4、 下面不属于黑盒测试方法的是 ( )。 ( A)边界值分析法 ( B)基本路径测试 ( C)等价类划分法 ( D)错误推测法 11 在数据库系统中,数 据模型包括概念模型、逻辑模型和 ( )。 ( A)物理模型 ( B)空间模型 ( C)时间模型 ( D)数据模型 12 若实体 A和 B是一对一的联系,实体 B和 c是多对一的联系,财实体 A和 c的联系是 ( )。 ( A)多对一 ( B)一对多 ( C)一对一 ( D)多对多 13 某二叉树中共有 935个结点,其中叶子结点有 435个,则该二叉树中度为 2的结点个数为 ( )。 ( A) 64 ( B) 66 ( C) 436 ( D)

5、434 14 下列描述中,属于面向对象思想主要特征的是 ( )。 ( A)继承性 ( B)灵活性 ( C)可重用性 ( D)健壮性 15 有如下程序段: int i=10; while(1) i+: if(i=30)13reak; if(i 2=0)cout using namespace std; void fun(int&a, _) int c; c=a; a=b; b=c; int main() int x, y; x=1; y=2; fun(x, y); eout using namespaee std; class AA public: AA()eout using namespae

6、e std; class Shape图形类 public: 图形绘制函数 (用显示字母模拟 ) virtual void draw()eonsttoutdraw(); int main() Shape s; Triangle t; plot(&s); plot(&t); s=t: s draw(); return 0; 运 行这个程序的输出是 ( )。 ( A) STT ( B) STS ( C) TSS ( D) TTT 41 有如下的类声明: #include using namespace std; class AA public: virtual void disp()eout usi

7、ng namespace std; class Door int num;门号 bool dosed; true表示门关着 bool locked; true表示门锁着 public: Door(int num) ERROR*found* nm=this-Rum; closed=locked=true; bool isClosed()eonstreturn dosed; 门关着时返回 true,否则返回 false bool isOpened()eonstlreturn!closed; 门开着时返回 true,否则返回 false bool isLoeked()eonstreturn lock

8、ed; 门锁着时返回 true,否则返回 false bool islJnlocked()eonstretllm!locked; 门未锁时返回 true,否则返回 false void open() 开门 eout using namespace std; class Room “房间 ”类 int room_no;房间号 double length;房间长度 (m) double width;房间宽度 (m) public: Room(int the_room_no, double the_length, double the_width):room_no(the_room_no), len

9、gth(the_length), width(the_width) int theRoomNo()constretum room_no; 返回房间号 double theLength()constretum length; 返回房间长度 double theWidth()constreturn width; 返回房间宽度 *found* double theArea()const_返回房间面积 (矩形面积 ) ; class Office: public Room “办公室 ”类 char * depart;所属部门 public: Office(int the_room_no, double

10、 the_length, double the_width, const char * the_depart) *found* : _ depart=new charstrlen(the_depart)+1; *found* strcpy(_); Office()deletedepart; const char, * theDepartment()constreturn depart; 返回所属部门 ; int main() *found* Office_; cout #include #include using namespaee std; class doc private: char*

11、sit;文本字符串首地址 int length;文本字 符个数 public: 构造函数,读取文件内容,用于初始化新对象, filename是文件名字符串首地址 doc(char*filename); void reverse();将字符序列反转 doe(); void writeToFile(char *filename); ; doc: doc(char *filename) ifstream myFile(filename); int len=1001, tmp; sit=new charlen; length=0; while(tmp=myFile get()!=EOF) sitlen

12、gth+=tmp; sit1ength= 0; myFile close(); void doc: reverse() 将数组 str中的 length个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个 字符交换 *333* *666* doc: doc() deletestr; void doc: writeToFile(char*filename) ofstream outFile(filename); outFilesit; outFile close(); void main() doc myDoc(“in dat“); myDoc reveme(); myDoc writ

13、eToFile(“out dat“); 国家二级( C+)机试模拟试卷 120答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 本题考查函数返回类型,函数返回类型可以是普通常量型的,可以返回指针以及自定义类型,但是不能包含关键字 true,所以 A选项错误。 2 【正确答案】 A 【试题解析】 本题考查运算符重载,重载不能定义新的运算符,且赋值运算符只能重载为成员 函数,重载类型转换运算符时,声明返回类型不一定是 void,所以D选项错误。 3 【正确答案】 D 【试题解析】 本题考查运算符重载,不能重载的运算符只有 5个: .、 .*、 :、sizeof、 ?: 所以本题选择 C

14、4 【正确答案】 A 【试题解析】 循环队列是队列的一种顺序存储结构,线性结构是 n个数据元素构成的有限序列,除第一个元素外的每一个元素,有且只有一个前件,除最后一个元素外,有且只有一个后件。循环队列是线性结构。当需要插入的数据大于循环队列的存储长度,入队运算会覆盖前面的数据,发生溢 出现象。故 A选项正确。 5 【正确答案】 D 【试题解析】 一个非空的数据结构如果满足以下两伞条件:有且只有一伞根结点;每 个结点最多有一个前件,也最多有一个后件,称为线性结构,在数据结构中习惯称为线性表, D选项正确。图是可能不包含根结点或叶子结点的数据结构, AB选项错误。数据结构中若有中间结点不满足只有一

15、个前件或者后件条件,则不属于线性结构, c选项错误。 6 【正确答案】 D 【试题解析】 算法是指对解题方案的准确而完整的描述,简单地说,就是解决问题的操作步骤。算法不同于数学上 的计算方法,强调实现, A选项叙述正确。算法的有穷性是指,算法中的操作步骤为有限个,且每个步骤都能在有限时间内完成, B选项叙述正确。算法复杂度包括算法的时间复杂度和算法的空间复杂度。算法设计必须考虑执行算法所需要的资源,即时间与空间复杂度,故 C选项叙述正确。算法的优劣取决于算法复杂度,与程序的环境无关,当算法被编程实现之后,程序的运行受到计算机系统运行环境的限制,故正确答案为 D选项。 7 【正确答案】 A 【试

16、题解析】 顺序表具有以下两个基本特征:线性表中所有元素所占的存储空间是连续的;线性表中各数 据元素在存储空间中是按逻辑顺序依次存放的。在顺序表中,每个元素占有相同的存储单元。 A选项正确。 8 【正确答案】 B 【试题解析】 二叉树遍历可以分为 3种:前序遍历 (访问根结点在访问左子树和访问右子树之前 )、中序遍历 (访问根结点在访问左子树和访问右子树两者之间 )、后序遍历 (访问根结点在访问左子树和访问右子树之后 )。本题中前序遍历为ABDEGCFH,中序遍历为 DBGEAFHC,后序遍历为 DGEBHFCA,故 B选项正确。 9 【正确答案】 B 【试题解析】 需求分析阶段的工作可以分为

17、4个方面 :需求获取、需求分析、编写需求规格说明书和需求评审,而需求计划不属于需求分析阶段的工作,故正确答案为 B选项。 10 【正确答案】 B 【试题解析】 常用的黑盒测试方法和技术有:等价类划分法、边界值分析法、错误推测法和因果图等。基本路径测试属于白盒测试,故正确答案为 B选项。 11 【正确答案】 A 【试题解析】 数据模型按照不同的应用层次分为 3种类型:概念数据模型、逻辑数据模型、物理数据模型,故 A选项正确。 12 【正确答案】 A 【试题解析】 一般来说,实体集之间必须通 过联系来建立联接关系,分为三类:一对一联系 (1: 1)、一对多联系 (1: m)、多对多联系 (m: n

18、)。 A与 B是 1: 1联系, B与 C是 m: 1联系,则 A与 C是 m: 1联系,即多对一,故 A选项正确。 13 【正确答案】 D 【试题解析】 在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。叶子结点有 435个,则度为 2的结点为 434, D选项正确。 14 【正确答案】 A 【试题解析】 面向对象思想的主要特 征有:封装、继承和多态。答案选 A。 15 【正确答案】 C 【试题解析】 程序首先定义一个整型变量 i并初始化为 10, while循环条件为 l,始终为真

19、,所以只有执行 break语句才能结束循环。在 while循环中, i自增运算语句在循环开始,所以 while语句第一次循环, i值自增为 11,最后一次循环开始时, i值为 29;另外输出语句中若 i为偶数则输出 “*”,综上 while循环中在 i自增1后取值为: 12, 14, 16, 18, 20, 22, 24, 26, 28时,输出 “*”;答案为 C。 16 【正确答案】 D 【试题解析】 C+的标识符由字母、数字和下划线组成, A、 B、 C错误,答案为 D。 17 【正确答案】 B 【试题解析】 字符型常量是用单引号括起来的一个字符。 B选项中 “n”是字符串常量,答案为 B

20、。 18 【正确答案】 A 【试题解析】 选项 B中, y=1语句后面少了分号 “; ”;选项 c中, then不是关键字,不符合 if语法;选项 D中,条件部分 x!=0必须用圆括号括起来;只有选项 A正确,整型变量 x在条件中转化为逻辑变量,非 0情况下都转化为 1;答案为 A。 19 【正确答案】 D 【试题解析】 该题是隐式类型转换。首先 2 3会按照 int型来计算,结果自然是0,由于赋值运算符左操作数对象是 double型,所以需要将 int型结果转换为double型 0 0,答案为 D。 20 【正确答案】 D 【试题解析】 函数声明由函数返回类型、函数名和形参列表组成,形参列表

21、中必须包含形参类型,不必对形参命名。答案为 D。 21 【正确答案】 D 【试题解析】 出现在相同作用域中的两个函数,如果具有相同的名字而形参表不同,称为重载函数。选项 A中,仅当形参是引用或指针时,形参是否为 const对重载才有影响,这里 const对重载没有影响,另外函数不能仅仅基于不同的返回类型实现重载, A错误;选项 B中,当调用函数 fun(x)只带有一个实参时,两个函数都匹配,该调用具有二义性, B错误;选项 C中形参列表只有默认参数不同,默认参数并不改变形参个数, C错误;选项 D正确,形参列表中参数个数不同;答案为 D。 22 【正确答案】 C 【试题解析】 流运算符 “”不

22、能重载为类的成员函数,因为一旦该操作符重载为类的成员函数,那么左操作数将只能是该类类型的对象,这样的用法与正常 IO使用方式相反。为 了支持正常用法,左操作数必须为 ostream类型。但是,标准库中的类是不能人为添加成员的,答案为 C。 23 【正确答案】 C 【试题解析】 友元函数不是类的成员函数,所以友元函数的调用不需要使用类对象;另外运算符重载不改变运算符的优先级,所以表达式 c2*c1+先执行 c1+;为了区分运算符的前缀和后缀形式,规定后缀式运算符函数接受一个额外的 int型形参,使用时可以提供 0作为形参的实参,所以 c1+相当于叩 erator+(c1, 0),c2*c1+相当

23、于 c2 operator*(opemtor+(c1, 0);答案为 C。 24 【正确答案】 A 【试题解析】 横线处填写的语句,是重载前缀自增运算符 +的函数声明,为了与内置类型一致,前缀自增运算符应该返回自增对象的引用,选项 C、 D错误;自增运算符是一元运算符,即操作数是类对象,所以参数列表为空,选项 B错误;答案为 A。 25 【正确答案】 C 【试题解析】 main函数中定义两个整型变量 x=1, y=2,由输出 x, y的结果为21,可知函数 fun的功能是交换两个实参的值,由于函数 fun中未使用指针类型的变量,所以若想通过函数 fun交 换实参的值,形参类型必然为引用类型,横

24、线处语句为 int&b,答案为 C。 26 【正确答案】 B 【试题解析】 复制构造函数用于以下情况:根据另一个同类型的对象显式或隐式初始化一个对象;复制一个对象,将它作为实参传给一个函数;从函数返回时复制一个对象;初始化顺序容器中的元素;根据元素初始化列表初始化数组元素。选项 B中调用赋值运算符,而不是复制构造函数,答案为 B。 27 【正确答案】 B 【试题解析】 C+中,静态成员是类的组成部分,不是任何对象的组成部分,因此静态成员函数没有 this指针,类的非 const成员函数包括静态成员函数,所以选项 A、 C错误;答案选 B或 D。 28 【正确答案】 C 【试题解析】 C+中,不

25、能在类中直接初始化 const数据成员,因为在类没有被初始化时,成员是不存在的,所以 const数据成员必须在构造函数初始化列表中初始化,语句 1、 4正确,语句 2错误;另外类的 static数据成员不能在类定义中初始化,也不能通过类的构造函数进行初始化,而必须在类定义体的外部定义,语句 3错误;答案为 C。 29 【正确答案】 C 【试题解析】 类的非静态成员函数 都隐含 this指针,静态成员是类的组成部分,不是任何对象的组成部分,因此静态成员函数没有 this指针,选项 D错误;友元函数不属于成员函数,没有 this指针,选项 A、 B错误;答案为 C。 30 【正确答案】 C 【试题

26、解析】 C+中,只有当一个类没有定义构造函数时,编译器才会自动生成一个默认构造函数,一个类哪怕只定义了一个构造函数,编译器也不会再生成默认构造函数;答案为 C。 31 【正确答案】 D 【试题解析】 派生类对基类成员的访问权限由基类成员的访问标识和类派生列表中的访问标识共同决定 的,类 D公有继承类 B,所以类 B中成员函数 funl对类 D不可见;成员函数 fun2为类 D的 protected成员;成员函数 fun3为类 D的 public成员;综上所述 funl, fun2, fun4对类 D对象 obj均不可见, fun3对 obj可见,答案为 D。 32 【正确答案】 D 【试题解析

27、】 派生类对象的撤销顺序与构造顺序相反:首先运行派生类析构函数,然后按继承层次依次向上调用各基类析构函数,这样做是为了每次析构函数销毁的都是完整的对象,选项 D错误,答案为 D。 33 【正确答案】 A 【试题解析 】 C+中,实现运行时多态性必须满足两个条件: 1、被调用的成员函数为虚函数; 2、调用必须通过基类类型的引用或指针。选项 B、 C、 D正确;多态性是虚函数在运行时期绑定,而重载的函数是在编译期绑定,重载主要是为了 C+的代码复用,与多态性没有关系;答案为 A。 34 【正确答案】 C 【试题解析】 只有当类定义体完成之后才能定义类,题目中四个声明语句位置,Fin类未定义完整,属

28、于不完全类型,此时数据成员只能是指向该类类型的指针或引用,而不能是该类的对象;语句 3会产生编译错误;答案为 c。 35 【正确 答案】 B 【试题解析】 C+中,触发多态性必须满足两个条件: 1、被调用函数为虚函数; 2、必须通过基类类型的引用或指针调用函数,选项 A、 C正确;非多态调用虚函数只能通过类对象调用,类对象调用虚函数使用成员访问运算符 “ ”进行,选项 D正确;一旦函数在基类中被声明为虚函数,那它在后续的派生类中都是虚函数,可以不使用 virtual关键字,派生类无法改变该函数是虚函数这一事实;选项 B错误;答案为 B。 36 【正确答案】 B 【试题解析】 C+中,派生类构造

29、函数都是先调用基类构造函数,再根据声明次序定义数据成员,所以 Derired构造函数的初始化列表中,最后初始化 q;另外对于多继承,派生类的构造函数初始化列表中,基类构造函数是按照基类在派生类的派生列表中出现的次序调用的;由于 Derived类的派生列表中, Base2存前,所以应该先调用 Base2的构造函数;这样 Derived类中初始化顺序为:基类 Base2、基类 Basel、数据成员 q;所以数据成员 m、 n、 q的初始化顺序为: n、 m、 q,答案为 B。 37 【正确答案】 A 【试题解析】 C+中,常数据成员必须在构造函数的初始化列表中完成初始化 ,答案为 A。 38 【正确答案】 C

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

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

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