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

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

1、国家二级( C+)笔试模拟试卷 182及答案与解析 1 若已知一个栈的入栈序列是 1、 2、 3、 、 n,其输出序列是 p1、 p2、 p3、 、 pn,则 pi为 ( )。 ( A) i ( B) n-i ( C) n-i+1 ( D)不确定 2 以下数据结构中 ,不属于线性数据结构的是 ( )。 ( A)队列 ( B)线性表 ( C)二叉树 ( D)栈 3 在软件开发中 ,下面不属于设计阶段的任务的是 ( )。 ( A)数据结构设计 ( B)定义模块算法 ( C)给出系统模块结构 ( D)定义需 求并建立系统模型 4 在一棵二叉树上 ,第 4层最多有几个结点 ( )。 ( A) 8 (

2、B) 16 ( C) 32 ( D) 15 5 在结构化方法中 ,软件开发阶段用数据流程图 (DFD) 作为描述工具的是 ( )。 ( A)需求分析 ( B)详细设计 ( C)程序编码 ( D)可行性分析 6 下面的描述中 ,不属于面向对象方法的是 ( )。 ( A)多态 ( B)继承 ( C)类 ( D)过程调用 7 任何关系数据库系统都应该支持 ( )。 、实体完整性约束 、参照完整性约束 、用户自定义完整性约束 ( A)仅 ( B)仅 、 ( C) 都是 ( D)都不是 8 下列叙述中 ,正确的选项是 ( )。 ( A)数据库设计是指设计数据库管理系统 ( B)数据库技术的根本目标是要解

3、决数据共享的问题 ( C)数据库是一个独立的系统 ,不需要操作系统的支持 ( D)数据库系统中 ,数据的物理结构必须与逻辑结构一致 9 下列选项中 ,作为是数据库系统的核心的是 ( )。 ( A)数据库 ( B)数据模型 ( C)软件工具 ( D) 数据库管理系统 10 下面的说法中错误的是 ( )。 ( A)公有继承的基类中 public成员在派生类中仍是 public ( B)私有继承的基类中 public成员在派生类中是 private ( C)公有继承的基类中 private成员在派生类中仍是 private ( D)保护继承的基类中 public成员在派生类中是 protected

4、11 函数定义如下 : void fun(int x,inty+; 如果执行代码段 : int a=0,b=1; fun(a,b); 则变量 a和 b的值分别是 ( )。 ( A) 0和 1 ( B) 0和 2 ( C) 1和 1 ( D) 1和 2 12 在进行了任何 C+流的操作后 ,都可以用 C+流的有关成员函数检测流的状态 ;其中 ( )函数名只能用于检测输入操作。 ( A) bad() ( B) good() ( C) fail() ( D) eof() 13 执行下面语句后 ,输出字符 “#“的个数是 ( )。 for(int i=50;i;-i)cout #; ( A) 48 (

5、 B) 49 ( C) 50 ( D) 51 14 以下模板定义 : template class T T fun(T x,T y)return x*x+y*y; 下面对fun的调用中错误的是 ( )。 ( A) fun int (2,6.5) ( B) fun(2,6.5) ( C) fun (2,6) ( D) fun(2,6) 15 类定义如下 : class TestClass public: TestClass ()cout 1; ; 则执行语句 TestClass a,b2 ,*p2;后 ,程序的输出结果是 ( )。 ( A) 11 ( B) 111 ( C) 1111 ( D)

6、11111 16 下面有关纯虚函数的表述中正确的是 ( ) ( A)含有纯虚函数的类不可能是派生类 ( B)纯虚函数是没有给出显现版本 (即无函数体定义 )的虚函数 ( C) 派生类必须实现基类的纯虚函数 ( D)纯虚函数的声明总是以 “=0”结束 17 下面重载乘法运算符的函数原型声明中错误的是 ( ) ( A) TestClass operator *(MyClass,double); ( B) TestClass operator *(double,MyClass); ( C) TestClass operator *(double,double); ( D) TestClass ope

7、rator *(MyClass,MyClass); 18 下面关于 this指针的说法中错误的是 ( )。 ( A) this指针是一种隐含指针 ,存在于每个类的非静态成员函数中 ( B)它是成员函数所属对象的指针 ( C)通过 this.成员变量的形式可以访问类中的数据成员 ( D)成员函数访问类中的数据成员格式可写成 :this-成员变量 19 下面表示引用的方法中正确的是 ( )。已知 :int n=10; ( A) int class Base public: Base()cout “BB“;fun(); void fun ()tout “Brim“; ; class Derived:

8、public Base public: Derived()cout “DD“; void fun ()cout “Dfun“; ; int main()Derived d;return 0; ( A) DD ( B) BBDfunDDDfun ( C) BBBfunDD ( D) DDBBBfun 21 下面关于 C+的特点中描述不正确的是 ( ) ( A) C+是 C语言的超集 ,大多数 C程序在不用修改的情况下就可以在 C+的集成环境中运行或调试 ( B) C+是面向对象的程序设计语言 ( C) C+中没有结构化编程的语句 ( D) C+的执行效率很高 22 有如下程序 : #includ

9、e iostream using namespace std; class TestClass public: TestClass()cout “default constructorn“; TestClass(const TestClass ; TestClass userCode(TestClass b)TestClass c(b);return c; int main() TestClass a,d; cout “calling userCode()a“; d=userCode(a); return 0; 在执行过程中 ,构造函数 TestClass()和 TestClass(const

10、 TestClass ( A) delete q; ( B) delete q0; ( C) deleteq; ( D) delete*q; 26 下面有关内联函数的叙述中 ,正确的是 ( )。 ( A)内联函数体的最后一条语句必须是 return语句 ( B)内联函数必须通过关键字 inline来定义 ( C)内联函 数通过编译器来实现的 ( D)内联函数在调用时发生控制转移 27 有如下程序 : #include iostream #include iomanip using namespace std; class TestClass public; TestClass ()cout A

11、; TestClass(char C)cout c;) TestClass ()cout B; ; int main() TestClass p1,*p2; p2=new TestClass(X); delete p2; return 0; 执行这个程序的结果是 ( )。 ( A) ABX ( B) ABXB ( C) AXBB ( D) AXB 28 下面关于友元的说法中错误的是 ( )。 ( A)友元函数可以访问类中的所有数据成员 ( B)友元函数不可以在类内部定义 ( C)友元类的所有成员函数都是另一个类友元函数 ( D)友 元函数必须声明在 public区 29 虚函数 ( )是可以不

12、同的。 ( A)函数名 ( B)参数个数 ( C)返回类型 ( D)函数体内容 30 有如下程序 ; #include iostream using namespace std; class Base public; Base(inti)x=i; void dispa0cout x ,; private; int x; ; class Derived;public Base public; Derived(int i);Base(i+10) x=i;) void dispb()dispa();cout x end1; private; int x; ; int main() Derived b

13、(2) ; b.dispb(); return 0; 运行的结果是 ( )。 ( A) 2,2 ( B) 12,2 ( C) 12,10 ( D) 10,2 31 下面关于运算符重载的描述中 ,正确的是 ( )。 ( A)一元运算符只能作为成员函数来重载 ( B)运算符重载作为成员函数时 ,如果参数表中无参数 ,重载的是一元运算符 ( C)二元运算符重载为非成员函数时 ,参数表中有一个参数 ( D) C+中可以重载所有的运算符 32 在 “intb3=1,3,8) ,4,5,7,0;“中 ,b22的值是 ( )。 ( A) 0 ( B) 7 ( C) 1 ( D) 8 33 下面的程序输出结果

14、是 ( )。 #include iostream using namespace std; void add() static int x; x+; cout x ; int main() for(int i=0;i 3;i+) add(); return 0; ( A) 111 ( B) 123 ( C) 222 ( D) 333 34 若磁盘上已存全路径 文件名为 c:ctesttest.txt的文件 ,下面语句中不能打开该文件的是 ( )。 ( A) ifstream *pFile=new ifstream(“c:ctesttest.txt“); ( B) ifstream file(“

15、c:ctesttest.txt“); ( C) ifstream file;file.open(“c:ctesttest.txt“); ( D) ifstream file(“c:etesttest.txt“); 35 从程序设计的方法和技术的发展角度来说 ,程序设计主要经历了结构化设计和_的程序设计阶段。 36 关系数据库系统实现的专门关系运算包括选择、连接和 _。 37 在面向对象方法中 ,_描述的是具有相似属性与操作的一组对象。 38 软件测试分为白箱 (盒 )测试和黑箱 (盒 )测试。等价类划分法属于 _测试。 39 数据库管理系统常见的数据模型有层次模型、网状模型和 _3种。 40

16、若要访问指针变量 q所指向的数据 ,应使用表达式 _。 41 若 有定义语句 :int x=3,y=2,z=1;则表达式 x y?x:y的值是 _。 42 非成员函数必须声明为类的 _才能访问这个类的 private成员。 43 执行下列语句后 ,输出的结果为 _。 void run() static int x=3; x+; cout x “ “; int main() for(int i=0;i 2;i+) fun(); return D; 44 有如下程序 : #include iostream using namespace std; class A public: A()cout “

17、A“; ; class B:private A public: B()cout B; ; int main() Aa; B b; return 0; 这个程序的输出结果是 _。 45 执行下列语 句段后程序的输出结果是 _。 int x=1,2,3,4,5; int q=x; cout*(+q) end1; 46 C+中多态性分为编译时的多态性和运行时的多态性 ,其中运行时的多态性时通过 _实现的。 47 执行下列语句后 ,输出结果为 _。 int a=0,b=2,c=3; switch(a) case 0:switch(b) case 1:cout *;break; case 2:tout

18、%;break; case 1:switch(C) case 1:cout $;break; case 2:cout *;break; default:tout #; 48 对于枚举类型的定义语句 enum WeekSun,Tue=3,Fri,Sat=6,Mon;其中 枚举常量Mon的值为 _。 49 执行下列程序段以后程序的输出是 _。 void add(int int main() int y=3; add(y); cout y end1; 国家二级( C+)笔试模拟试卷 182答案与解析 1 【正确答案】 C 【试题解析】 栈是一种特殊的线性表,只能在固定的一端进行插入和删除操作。栈的运

19、算是一种后进先出的操作原则。本题中,入栈下列与输出下列 的倒置是对应的,即输出序列的 pl对应入栈序列的 n,输出序列的 p2对应入栈序列的 n-1,由此可推出, pi对应入栈序列的 n-i+1。 2 【正确答案】 C 【试题解析】 栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,因此栈又称后进先出表或先进后出表;队列可看作是插入在一端进行,删除在另一端进行的线性表,因此队列又称先进先出表或后进后出表。二叉树不属于线性结构。 3 【正确答案】 D 【试题解析】 软件设计一般分为总体设计和详细设计两个阶段,总体设计的任务是确定软件的总体 结构,子系统和模块的划分,并确定模块间

20、的接口和评价模块划分质量,以及进行数据分析。详细设计的任务是确定每一模块实现的定义,包括数据结构、算法和接口。定义需求并建立系统模型是需求阶段的任务。 4 【正确答案】 A 5 【正确答案】 A 6 【正确答案】 D 7 【正确答案】 B 【试题解析】 关系模型允许定义三类数据约束: 实体完整性约束 (Entity IntegrityConstraInt) 该约束要求关系的主键中属性值不能为空值,这是数据库完整性的最基本要求。 参照完整性约束 (ReferenceIntegrityConstraint) 该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关

21、联关系中实际存在的元组,要么就为空值。 用户定义的完整性约束 (UserdefinedIntegrityConstraint) 用户定义的完整性就是针对某一具体关系数据库的约束条件它反映某一具体应用所涉及的数据必须满足的语义要求 任何关系数据库系统都应该支持实体完整性和参照完整性。 8 【正确答案】 B 【试 题解析】 计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代

22、价。 9 【正确答案】 D 10 【正确答案】 C 11 【正确答案】 B 【试题解析】 本题中定义了一个 fun函数,当调用 fun(a, b);函数时,形参 x和 y被初始化为实参 a和 b的引用,参数 x为非引用类型 ,参数 y为引用类型,在执行该函数时,对形参 x的改变不会影响到实参,形参 y的改变将会影响到实参,因此调用 fun函数后,形参变量 x=1, y=2,实参变量 a=0, b=2。 12 【正确答案】 D 【试题解析】 下列成员函数用来判别文件流的当前状态: bad():进行了非法操作返回 true,否则返回 false。 good():刚进行的操作成功则返回 true,否

23、则返回 false: fail():与 good()相反; eof():进行输入操作时,若达到文件尾则返回 true,否则返回 false。 13 【正确答案】 B 14 【正确答案】 B 15 【正确答案】 B 【试题解析】 类定义如下 : class TestClass public: TestClass ()cout1; ; 则执行语句 TestClass a,b2 ,*p2;后 ,程序的输出结果是 ( )。 16 【正确答案】 D 【试题解析】 C+中的某些情况下基类无法确定一个虚函数的具体操作方法或内容,只能靠派生类来提供各个具体的实现版本。 基类中必须靠派生类提供重定义的虚函数叫做

24、纯虚函数。为了将一个虚函数声明为一个纯虚函数,需要在结束符号前加上 =0;若派生没有重定义纯虚函数,这个函数仍然是纯虚函数。 17 【正确答案】 C 18 【正确答案】 C 19 【正确答案】 A 20 【正确答案】 C 【试题解析】 C+中创建一个类的实例时,如果该类存在基类,将首先执行基类的构造函数,然后执行该类本身的构造函数。本题中首先执行类 Base的构造函数,所以将先输出 “BB”,然后调用基类成员函数 fun(),输出 “Bfun”,最后调用 子类 Derived的构造函数输出 “DD”。 21 【正确答案】 C 22 【正确答案】 C 【试题解析】 在主函数中定义了两个 Test

25、Class类型的变量 a,d,因此执行两次构造函数 TestClass()。接下来执行 d=userCode(a);在执行该函数时,由于userCode采用了传值方式来传递参数,所以要调用一次 TestClass(const TestClass 语句又调用了一次拷贝构造函数,由于函数 userCode返回的不 是引用,而是一个 TestClass变量,所以还需要执行一次拷贝构造函数,所以一共要执行两次普通构造函数 (非拷贝构造函数 )与三次拷贝构造函数。 23 【正确答案】 D 【试题解析】 如果一个成员函数没有声明为常成员函数,即使没有改变对象本身的成员值,也不能被常对象调用,所以 A) 不

26、正确。常对象除了口 J以调用静态成员函数外,还可以调用常成员函数,所以 B) 不正确。常对象中可以有非常成员函数,所以 C)也不正确。常对象只能调用对象的常成员函数,而不调用普通成员函数,故 D) 选项正确, 24 【正确答 案】 B 25 【正确答案】 C 26 【正确答案】 C 【试题解析】 C+中的内联函数可以有,也可以没有 return语句。使用 inline关键字来定义内联函数,放在函数定义中函数类型之前。内联函数在程序执行时并不产生实际函数调用,而是在函数调用处将函数代码展开执行。内联函数是通过编译器来实现的。在类中直接定义的函数默认为内联函数。 27 【正确答案】 C 【试题解析

27、】 在定义对象 p1时由系统自动调用构造函数 TestClass(),输出字母A;用 new创建单个对象 TestClass(X)时,要根据参数调用相应的构造函数TestClass(char C),输出字母 X;在执行 delete时,系统会自动调用析构函数TestClass(),输出字母 B,当对象的生存周期即将结束时系统会自动调用析构函数 TestClass(),输出字母 B。 28 【正确答案】 D 【试题解析】 友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。类可以利用 friend将一般函数、其他类成员函数或者其他类声明为友元。友元的声明可以放在类

28、的任何一个区域。但是友元的实现不可以在类内部。 29 【正确答案】 D 30 【正确答案】 B 【试题解析】 “Derived b(2) ;以整数 2实例化变量 b,在执行 Derived的构造函数时,以 i+10即 12去调用类 Derived的父类的构造函数,将 Base:x初始化为12,然后将 Derived:x赋值为 2。在执行 b.dispb()时,先调用父类中的 dispa,输出 Base:x,即 12,再输出 Derived:x,即 2,所以运行结果为 “12, 2”。 31 【正确答案】 B 【试题解析】 一元运算符可以 作为全局函数重载,所以选项 A) 错误。二元运算符重载为

29、非成员函数时,参数表中有两个参数,所以选项 C)也错误。 C+中有些运算符不能被重载,如域运算符 (:),条件运算符 (?:)等,具体哪些运算符不能被重载与编译器有关,所以选项 D) 错误。 32 【正确答案】 B 33 【正确答案】 B 34 【正确答案】 D 35 【正确答案】 面向对象 36 【正确答案】 投影 37 【正确答案】 类 38 【正确答案】 黑箱 (盒 )测试 39 【正确答案】 关系模型 40 【正确答案】 *q 41 【正确答案】 2 42 【正确答案】 友元函数 【试题解析】 C+的友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间数据共享的机制。一个类可以利用 friend将一般函数、其他类成员函数或者其他类声明为友元。友元的声明可以放在类的任何一个区域。定义须在类外声明在公有私有部分均可。 43 【正确答案】 4,5 44 【正确答案】 AAB 45 【正确答案】 2 46 【正确答案】 虚函数 47 【正确答案】 %# 48 【正确答案】 7 49 【正确答案】 4

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

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

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