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

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

1、国家二级( C+)笔试模拟试卷 188及答案与解析 1 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是 ( A) 123456ABCDE ( B) EDCBA54321 ( C) ABCDEl2345 ( D) 54321EDCBA 2 下列叙述中正确的是 ( A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 ( B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 ( C)在循环队列中,只需要队尾指针就能反映队列中元素 的动态变化情况 ( D)循环队列中元素的个数是由队头指针和队尾指

2、针共同决定的 3 下列叙述中正确的是 ( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 4 数据流图中带有箭头的线段表示的是 ( A)控制流 ( B)事件驱动 ( C)模块调用 ( D)数据流 5 在软件开发中,需求分析阶段可以 使用的工具是 ( A) N-S图 ( B) DFD图 ( C) PAD图 ( D)程序流程图 6 在面向对象方法中,不属于 “对象 ”基本特点的是 ( A)一致性 (

3、 B)分类性 ( C)多态性 ( D) 标识唯一性 7 一问宿舍可住多个学生,则实体宿舍和学生之间的联系是 ( A)一对一 ( B) 一对多 ( C)多对一 ( D)多对多 8 在数据管理技术发展的 3个阶段中,数据共享最好的是 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D) 3个阶段相同 9 在下列原型所 示的 C+函数中,按 “传值 ”方式传递参数的是 ( A) void f1(int x); ( B) void f2(int*x); ( C) void f3(const int*x); ( D) void f4(int x); 10 在 C+中,编译系统自动

4、为一个类生成默认构造函数的条件是 ( A)该类没有定义任何有参构造函数 ( B)该类没有定义任何无参构造函数 ( C)该类没有定义任何构造函数 ( D)该类没有定义任何成员函数 11 在一个派生类的成员函数中,试图调用其基类的成员函数 “void f( ); ”,但无法通过编译,这说明 ( A) f( )是基类的私有成员 ( B) f( )是基类的保护成员 ( C)派生类的继承方式为私有 ( D)派生类的继承方式为保护 12 下列关于运算符重载的叙述中,错误的是 ( A)有的运算符可以作为非成员函数重载 ( B)所有的运算符都可以通过重载而被赋予新的含义 ( C)不得为重载的运算符函数的参数设

5、置默认值 ( D)有的运算符只能作为成员函数重载 13 下列关于模板的叙述中,错误的是 ( A)调用模板函数时,在一定条件下可以省略模板实参 ( B)可以用 int、 double这样的类型修饰符来声明模板参数 ( C)模板声明中的关键字 class都可以用关键字 typename替代 ( D)模板的形参表中可以有多个参数 14 要利用 C+流进行文件操作,必须在程序中包含的头文件是 ( A) iostream ( B) fstream ( C) strstream ( D) iomanip 15 下列字符串中不能作为 C+标识符使用的是 ( A) WHILE ( B) user ( C) _

6、lvar ( D) 9stars 16 下列语句中错误的是 ( A) const int a; ( B) const int a=10; ( C) const int*point=0; ( D) const int*point=new int(10); 17 如下程序的输出结果是 #include iostream using namespace std: int main( ) int sum: for(inti=O; i 6; i+=3) sunl=i: for(intj=i; j 6;j+)suitL+=j; cout sum endl: retuIn 0: ( A) 3 ( B) 10

7、 ( C) 12 ( D) 15 18 下列语句中正确的是 ( A) char*myString=“Hello-World!“; ( B) char myString=“Hello-World!“; ( C) char myString11=”Hello-World!”; ( D) char nlyString12=“Hello-World!“; 19 若已经声明了函数原型 “void fun(int a, double b=0.0); ”,则下列重载函数声明中正确的是 ( A) void fun(int a=90, double b=0.0); ( B) int fun(int a, dou

8、ble B) ; ( C) void fun(double a, intB) ; ( D) bool fun(int a, double b=0.0); 20 执行如下程序,输出星号 (*)的个数为 #include iostream using namespaee std; class Sample public: Sample( ) Sample( )cout *; ; int main( ) Sample temp2, *pTemp2; return 0; ( A) 1 ( B) 2 ( C) 3 ( D) 4 21 下列选项中,与实现运行时多态性无关的是 ( A)重载函数 ( B)虚函

9、数 ( C)指针 ( D)引用 22 下列运算符函数中,肯定不属于类 Value的成员函数的是 ( A) Value operator+(Value); ( B) Value operator-(Value, Value); ( C) Value operator*(int); ( D) Value operator/(Value); 23 下列模板声明中有语法错误的是 ( A) template typename T T fun(T x)return x; ( B) template typename T T fun(T x, int n)return x术 n; ( C) template

10、 class T T fun(T*P)return*P; ( D) template 24 在语句 “eout A; ”中, eout是 ( A)类名 ( B)对象名 ( C)函数名 ( D) C+的关键字 25 如下程序的输出结果是 #include iostream using namespace std; class MyClass public: MyClass(int i=0)cout 1; MyClass(const MyClassx)cout 2; ; int main( ) MyClass objl(1), obj2(2), ohj3(objl); return 0; ( A)

11、 112 ( B) 111 ( C) 121 ( D) 113 26 有如下程序: #include iostreanl using namespace std; class MyClass public: MyClass(int x): val(x) void Set(int x)val=x; void Print( )eonsteout “val=“ val t; private: int val; ; int main( ) eonst MyClass objl(10); MyClass obj2(20); objl.Print(); /语句 1 obj2.Print( ); /语句 2

12、 objl.Set(20); /语句 3 obj2.Set(30); /语句 4 return 0; 其主函数中错误的语句是 ( A)语句 1 ( B)语句 2 ( C)语句 3 ( D)语句 4 27 在类声明中,紧跟在 “public: ”后声明的成员的访问权限是 ( A)私有 ( B)公有 ( C)保护 ( D)默认 28 对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是 ( A)公有或私有 ( B)私有 ( C)保护或私有 ( D)公有或保护 29 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为 ( A)私有继承 (

13、 B)非私有继承 ( C)保护继承 ( D)公有继承 30 建立一个有成员对象的派生类对象时,各构造函数体的执行次序为 ( A)派生类、成员对象类、基类 ( B)成员对象类、基类、派生类 ( C)基类、成员对象类、派生类 ( D)基类、派生类、成员对象类 31 如果表达式 a =b中的 “ =”是作为非成员函数重载的运算符,则可以等效地表示为 ( A) a operator =(B) ( B) b operatotr =(A) ( C) operator =(a, B) ( D) operator =(b, A) 32 当使用 ofstream流类定义 一个流对象并打开一个磁盘文件时,文件的默

14、认打开方式为 ( A) ios base:in ( B) ios_base:binary ( C) ios_base:inIios_base:out ( D) ios_base:out 33 在一个抽象类中,一定包含 ( A)虚函数 ( B)纯虚函数 ( C)模板函数 ( D)重载函数 34 关系代数是关系操作语言的一种传统表示方式,它以集合代数为基础,它的运算对象和运算结果均为 _。 35 在数据的存储结构中,不仅需要存储各数据元素的信 息,还要存放各元素之间_的信息。 36 软件是程序、数据和 _的集合。 37 对于长度为 n的有序线性表,在最坏情况下,二分法查找只需比较 _次。 38 测

15、试分为白箱法和黑箱法, _又称为逻辑覆盖测试。 39 重载的流运算符函数应该被定义为类的 _函数。 40 分析以下程序的执行结果 _。 #include iostream.h class Sample int x,y; public: Sample()x=y=0; Sample(int a,int b)x=a;y=b;) Sample() if(x=y) cout “x=y“ end1; else cout “x!=y“ end1; void disp() cout “x=“ x “,y=“ y end1; ; void main() Sample s1(2,3); s1.disp(); 41

16、 有以下程序: #include iostream using namespace std; class MyClass public: static int s; MyClass(); void SetValue(int val); ; int MyClass:s=0; MyClass:MyClass() S+; void MyClass:SetValue(int val) s=val; int main() MyClass my3,*p; p=my; for(int k=0;k 3;k+) p- SetValue(k+1); p+; cout MyClass:s end1; return

17、0; 运行后的输出结果是 _。 42 若有: int i=1000; int *p= void*q; q=p; 其中 , q=p的含义是 _。 43 阅读下面程序: #include iostream.h void fun(int n) int x(5); static int y(10); if(n 0) +x; +y; cout x “,“ y end1; void main() int m(1); fun(m); 则该程序的输出结果是 _。 44 在下 面横线上填上适当的语句,完成程序。 #include iostream using namespace std; class TestC

18、lass int x; public: TestClass(int i)x=i; TestClass() ; class TestClass1:public TestClass public; _/完成类 TestClassl构造函数的定义 ; int main() TestClass1 0bj(); return 0; 45 下列程序的输出结果是 _。 #include iostream.h #include string.h using namespace std; void fun(const char*s,char int main() char str=“ABCDE“; char c

19、h=str1; fun(str,ch); cout ch; return 0; 46 下列程序的输出结果为: Object id=0 Object id=1 请将程序补充完整。 #include iostream using namespace std; class Point public: Point(int xx=0,int yy=0)X=xx;Y=yy;countP+; Point()countP-; int GetX()return X; int GetY()return Y; static void GetC()cout “0bject id=“ countP end1; priv

20、ate: int X,Y; static int countP; ; _/静态数据成员的初始化 int main() Point:GetC(); Point A(4,5); A.GetC(); return 0; 47 有如下类声明: class MyClass int i; private: int j; protected: int k; public:int m,n; ; 其中,私有成员的数量为 _。 国家二级( C+)笔试模拟试卷 188答案与解析 1 【正确答案】 B 2 【正确答案】 C 【试题解析】 循环队列是线性表的一种,所以选项 A错误 。循环队列的入队和出队需要由队尾指针和

21、队头指针完成,所以选项 B和 c错误。 3 【正确答案】 A 【试题解析】 顺序存储方式是把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现,其优点是占用的存储空间最少,所以选项 D错误。顺序存储结构可以存储如二叉树这样的非线性结构,所以选项 B错误。链式存储结构也可以存储线性表,所以选项 C错误。 4 【正确答案】 D 5 【正确答案】 B 【试题解析】 数据流图简称 DFD,它采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。所以 DFD图可以用于需求分析阶段。

22、 6 【正确答案】 A 【试题解析】 对象是面向对象方法中最基本的概念,它的基本特点有标识唯一性、分类性、多态性、封装性和模块独立性。故本题答案为 A。 7 【正确答案】 B 8 【正确答案】 C 【试题解析】 人工管理阶段是在计算机出现的初期,主要用于科学计算,没有大容量的存储设备。处理方式只能是批处理,数据不共享,不同程序问不能交换数据。 文件系统阶段把有关的数据组织成一种文件,这种数据文件可以脱离程序而独立存在,由一个专门的文件管理系统实施统一管理;但是,数据文件仍高度依赖于其对应的程序,不能被多个程序所通用。数据库系统阶段对所有的数据实行统一规划管理,形成了一个数据中心,构成了一个数据

23、仓库;数据库中的数据能够满足所有用户的不同要求,供不同用户共享;数据共享性显著增强。 9 【正确答案】 A 10 【正确答案】 C 11 【正确答案】 C 12 【正确答案】 B 【试题解析】 进行运算符重载时,不得给重载函数参数赋默 认值。运算符重载是针对新数据类型的需要对原有运算符进行适当的改造,而不是创建新的运算符,也不能给运算符赋予新的含义。有的运算符只能重载为成员函数如: =、 ( )、 、 -。 13 【正确答案】 C 【试题解析】 在有 typename的地方可以用 class来代替,但是在有 class的地方不一定能用 typename代替,如: Templae class类型

24、参数 class类名 后面的那个 class是不能用 typename代替的。 14 【正确答案】 D 【试题解析】 头文件 iomapip用于输入 /输出的格式控制,头文件 iostrearn包含了对输入 /输出流进行操作所需的基本信息。 15 【正确答案】 D 【试题解析】 在 C+中,变量标识符必须以大小写字母或下划线开始,由数字或者字母以及下画线等组成的一个字符串,其中 C+关键字不能作为标识符,不能包含 -、 +、 -、 *、 /等运算符号。 C+变量区分大小写,不能以数字开头。 16 【正确答案】 A 17 【正确答案】 D 【试题解析】 每次在外循环 i中, sum都被程序赋初值

25、,因此,只有最后一次循环的 sum起作用。最后一次循环 i=3, sum=3,内循环 j=3, 4, 5,所以sum=3+3+4+5=15。 18 【正确答案】 A 【试题解析】 选项 C、 D的数组下标超界;对于选项 B,不能将字符串赋值给字符,可以将一个字符串赋值给字符指针,指针指向字符数组的首地址。 19 【正确答案】 C 20 【正确答案】 B 【试题解析】 类在创建对象时调用构造函数,在撤销对象时调用析构函数,而在定义类指针时则不调用构造函数和析构函数。 sampie temp2定义了一个 2个元素的对象数组,因此调用 两次析构函数,打印 2个 *。 21 【正确答案】 A 【试题解

26、析】 动态联编是指在程序运行时才将源程序经过编译连接成为可执行文件的过程。动态联编所支持的多态性被称为运行时多态性,简称为动态多态性。所有的编译都是在运行时完成的,只有重载函数不是,重载函数属于静态联编。 22 【正确答案】 B 23 【正确答案】 C 24 【正确答案】 B 25 【正确答案】 A 【试题解析】 MyClass objl(1), ohj2(2), obj3(objl);创建 objl和 obj2对象时调用 第一个构造函数,打印 1,创建 obj3对象时调用第二个构造函数,打印 2。 26 【正确答案】 C 27 【正确答案】 B 28 【正确答案】 D 29 【正确答案】 A

27、 30 【正确答案】 C 【试题解析】 在生成派生类对象时,如果派生类中含有对象成员,则先执行基类的构造函数,然后执行对象成员的构造函数,最后执行派生类的构造函数。析构函数的调用顺序与构造函数的顺序则相反。 31 【正确答案】 A 32 【正确答案】 D 33 【正确答案】 B 34 【正确答案】 关 系 【试题解析】 关系代数是关系操纵语言的一种传统表示方式,它以集合代数为基础发展起来的,但它的运算对象和运算结果均是关系,这些新关系仍可以使用同样的代数运算进一步操作。关系代数也是一种抽象的查询语言,它通过对关系的运算来表达查询和修改处理的需求。 35 【正确答案】 前后件关系 【试题解析】

28、在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,前后件之间的关系是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。 36 【正确答案】 相关文档 37 【正确答案】 log2n 【试题解析】 二分法查找,也称拆半查找,是一种高效的查找方法。能使用二分法查找的线性表必须满足两个条件:用顺序存储结构;线性表是有序表。对于长度为 n的有序线性表,在最坏情况下,二分法查找只需比较 log2n次 38 【正确答案】 白箱法 【试题解析】 白箱测试是根据程序内部逻辑结构的分析来选取测试用例。由于测试用例对程序的逻辑覆盖程序决定

29、了测试的完全性的程度,因此白箱测试也称为逻辑覆盖测试。 39 【正确答案】 友元 40 【正确答案】 x=2, y=3 x!=y 41 【正确答案】 3 42 【正确答案】 把整型指针 p赋值给通用指针 q 43 【正确答案】 6,11 44 【正确答案】 TestClass1(int i):TestClass(i) 【试题解析】 程序中的 TestClassl为 TestClass的派生类,派生类构造函数的一般形式为:派生类构造函数名 (总参数类表 ):基类构造函数名 (参数列表 )派生类中新增数据成员初始化语句 。派生类 TestClass1的基类函数名为 TestClass,参数为int i,并且派生类中没有新增的数据成员。所以派生类 TestClass1的构造函数为:TestClass1(int i):TestClass(i)。 45 【正确答案】 C 46 【正确答案】 int Point:countP=0; 47 【正确答案】 2

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

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

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