[计算机类试卷]2005年9月国家二级(C++)笔试真题试卷及答案与解析.doc

上传人:李朗 文档编号:492496 上传时间:2018-11-30 格式:DOC 页数:22 大小:68KB
下载 相关 举报
[计算机类试卷]2005年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第1页
第1页 / 共22页
[计算机类试卷]2005年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第2页
第2页 / 共22页
[计算机类试卷]2005年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第3页
第3页 / 共22页
[计算机类试卷]2005年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第4页
第4页 / 共22页
[计算机类试卷]2005年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、2005 年 9月国家二级( C+)笔试真题试卷及答案与解析 1 下列叙述中正确的是 ( A)程序设计就是编制程序 ( B)程序的测试必须由程序员自己去完成 ( C)程序经调试改错后还应进行再测试 ( D)程序经调试改错后不必进行再测试 2 下列数据结构中,能用二分法进行查找的是 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性链表 3 下列关于栈的描述正确的是 ( A)在栈中只能插入元素而不能删除元素 ( B)在栈中只能删除元素而不能插入元素 ( C)栈是特殊的线 性表,只能在一端插入或删除元素 ( D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元

2、素 4 下列叙述中正确的是 ( A)一个逻辑数据结构只能有一种存储结构 ( B)数据的逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 ( D)一个逻辑数据结构可有多种存储结构,且各种存储结构影响数据处理的效率 5 下列描述中正确的是 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C) 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D)软件工程只是解决软件开发中的技术问题 6 在软件设计中,不属于过程设计工具的是 ( A) PDL(过程设计语言 ) (

3、B) PAD图 ( C) N-S图 ( D) DFD图 7 下列叙述中正确的是 ( A)软件交付使用后还需要进行维护 ( B)软件一旦交付使用就不需要再进行维护 ( C)软件交付使用后其生命周期就结束 ( D)软件维护是指修复程序中被破坏的指令 8 数据库设计的根本目标是要解决 ( A)数据共享问题 ( B)数据安全问题 ( C)大量数据存储问题 ( D)简化数据维护 9 设有如下关系表:则下列操作中正确的是 ( A) T=RS ( B) T=R S ( C) T=RS ( D) T=R/S 10 数据库系统的核心是 ( A)数据模型 ( B)数据库管理系统 ( C)数据库 ( D)数据库管理

4、员 11 下列关于 C+函数的叙述中,正确的是 ( A)每个函数至少要具有一个参数 ( B)每个函数都必须返回一个值 ( C)函数在被调用之前必须先声明 ( D)函数不能自己调用自己 12 下列关于类和对象的叙述中,错误的 是 ( A)一个类只能有一个对象 ( B)对象是类的具体实例 ( C)类是对某一类对象的抽象 ( D)类和对象的关系是一种数据类型与变量的关系 13 在 C+中,用于实现运行时多态性的是 ( A)内联函数 ( B)重载函数 ( C)模板函数 ( D)虚函数 14 下列关于运算符重载的叙述中,正确的是 ( A)通过运算符重载,可以定义新的运算符 ( B)有的运算符只能作为成员

5、函数重载 ( C)若重载运算符 +,则相应的运算符函数名是 + ( D)重载一个二元运算符时,必须声明两个形参 15 下列关于模 板的叙述中,错误的是 ( A)模板声明中的第一个符号总是关键字 templale ( B)在模板声明中用 括起来的部分是模板的形参表 ( C)类模板不能有数据成员 ( D)在一定条件下函数模板的实参可以省略 16 对于语句 cout endl x;中的各个组成部分,下列叙述中错误的是 ( A) “cout”是一个输出流对象 ( B) “endl“的作用是输出回车换行 ( C) “x”是一个变量 ( D) “ ”称作提取运算符 17 下列字符串中,正确的 C+标识符是

6、 ( A) foo-1 ( B) 2b ( C) new ( D) -256 18 已知枚举类型定义语句为: enum TokenNAMB,NUMBER,PLUS=5,MINUS, PRINT=10; 则下列叙述中错误的是 ( A)枚举常量 NAME的值为 1 ( B)枚举常量 NUMBER的值为 1 ( C)枚举常量 MINUS的值为 6 ( D)枚举常量 PRINT的值为 10 19 执行语句序列 iht i=0; while(i 25)i+=3;cout i; 输出结果是 ( A) 24 ( B) 25 ( C) 27 ( D) 28 20 要定义一个具有 5个元素的一维数组 vect,

7、并使其各元素的初值依次是 30, 50,-88, 0和 0,则下列定义语句中错误的是 ( A) int vect =30,50,-88; ( B) int veer =30,50,-88,0,0; ( C) int vect5=30,50,-88; ( D) int vect5=30,50,-88,0,0; 21 有如下程序: #include iostream void fun(intx=y;y=t; int main() int a2=23,42; fun(a1, a0; std:cout a0 “,“ a1 std:ndl; return 0; 执行后的输出结果是 ( A) 42, 42

8、 ( B) 23, 23 ( C) 23, 42 ( D) 42, 23 22 有如下类声明: class Foo int bar; ; 则 Foo类的成员bar是 ( A) 公有数据成员 ( B)公有成员函数 ( C)私有数据成员 ( D)私有成员函数 23 有如下类声明: class MyBASE int k; public: void set(iht n)k=n; int get()coastreturn k; ; class MyDERIVED:pnoted My BASE protected: int j; public: void set(int m, int n)MyBASE:s

9、et(m);j=n; int get()constreturn MyBASE:get()+j; ; 则类 MyDERIVED中保护的数据成员和成员函数的个数是 ( A) 4 ( B) 3 ( C) 2 ( D) 1 24 己知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是 ( A)这是运算符 -的重载运算符函数 ( B)这个函数所重载的运算符是一个一元运算 符 ( C)这是一个成员函数 ( D)这个函数不改变类的任何数据成员的值 25 有如下函数模板定义: template class t T func(Tx,T

10、y)return x*x+y*y; 在下列对 func的调用中,错误的是 ( A) func(3,5); ( B) func(3.0,5.5); ( C) func(3,5.5); ( D) func int (3,5.5) 26 有如下程序: #include iostream using namespace std; int main() cout.fill(*) cout.width(6); cout.fill(#) cout 123 endl; return 0; 执行后的输出结果是 ( A) #123 ( B) 123# ( C) *123 ( D) 123* 27 在下列函数原型中

11、,可以作为类 AA构造函数的是 ( A) void AA(int); ( B) int AA(); ( C) AA(int)const; ( D) AA(int); 28 下列关于 this指针的叙述中,正确的是 ( A)任何与类相关的函数都有 this指针 ( B)类的成员函数都有 this指针 ( C)类的友元函数都有 this指针 ( D)类的非静态成员函数才有 this指针 29 有如下程序: #include iostream using namespace std; class Test public: Test()n+=2; Test()n-=3; static int getN

12、um()return n; private: static int n; ; int Tesl:n=1 int main() Test*p=new Test; delete p; cout “n=“ Tes:tgetNum() endl; return 0; 执行后的输出结果是 ( A) n=0 ( B) n=1 ( C) n=2 ( D) n=3 30 有如下程序: #include iostream using namespace std; class A public: A()cout“A“; ; class B public:B()cout “B“;); class C:public

13、A B b; public: C()cout “C“; ; int main()Cobj;retum 0; 执行后的输出结果是 ( A) CBA ( B) BAC ( C) ACB ( D) ABC 31 有如下类声明: class XA int x; public: XA(int n)x=n; ; class XB:public XA int y; public: XB(int a,int b); ; 在构造函数 XB的下列定义中,正确的是 ( A) XB:XB(int a,int b):x(a),y(b) ( B) XB:XB(int a,int b):XA(a),y(b) ( C) XB

14、:XB(int a,int b):x(a),XB(b) ( D) XB:XB(int a,int b):XA(a),XB(b) 32 有如下程序: #include iostream using namespace std; class BASE public: BASE()cout “BASE“; ; class DERIVED:public BASE public: DERIVED()cout “DERIVED“; ; int main()DERIVEDx;retum 0; 执行后的输出结果是 ( A) BASE ( B) DERIVED ( C) BASEDERIVED ( D) DER

15、IVEDBASE 33 在表达式 x+y*z中, +是作为成员函数重载的运算符, *是作为非成员的函数重载的运算符。下列 叙述中正确的是 ( A) operator+有两个参数, operator*有两个参数 ( B) operator+有两个参数, operator*有一个参数 ( C) operator+有一个参数, operator*有两个参数 ( D) operator+有一个参数, operator*有一个参数 34 下面关于 C+流的叙述中,正确的是 ( A) cin是一个输入流对象 ( B)可以用 ifstream定义一个输出流对象 ( C)执行语句序列 char*y=“PQMN

16、“; cout y;将输出字符串 “PQMN“的地址 ( D)执行语句序列 char x80;cin.getline(x,80);时,若键入 Happy new year 则 x中的字符串是 “Happy“ 35 有如下程序: #include iostream using namespace std; class AA int n; public: AA(int k);n(k) intget()return n; int get()constreturn n+1; ; int main() AA a(5); const AA b(6); cout a.get() b.get(); retur

17、n 0; 执行后的输出结果是 ( A) 55 ( B) 57 ( C) 75 ( D) 77 36 数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【 】。 37 算法复杂度主要包括时间复杂度和【 】复杂度。 38 在进行模块测试时,要为每个被测试的模块另外设计两块:驱动和承接模块 (桩模块 )。其中【 】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 39 一棵二叉树第六层 (根结点为第一层 )的结点数最多为【 】个。 40 数据结构分为逻辑结构和存储结构,循环队列属于工【 】结构。 41 执行语句序列 int x=10, co

18、ut X - r endl; 输出结果为【 】。 42 下列程序的输出结果为 Object id=0 Obiect id=1 请将程序补充完整。 #include iostream using namespace std; class Point public: Point(int xx=O,int yy=O)X=xx;Y=yy;countP+; Point()countp-; int GetX()(return X;) int GetY(Xremm Y;) static void GetC()cout “Objcetid=“ countp endl; private: int X,Y; st

19、atic int countP; : 【 】。 /静态数据成员的初始化 int main() Point:GetC(); Point A(4,5); A.GetC() return 0; 43 非成员函数应声明为类的【 】函数才能访问这个类的 private成员。 44 派生类中的 成员不能直接访问基类中的【 】成员。 45 下列程序的输出结果为 2,请将程序补充完整。 #include iostream using namespace std; class Basc public: 【 】 void fun()cout 1; ; class Dcrived:public Base publi

20、c: void fun()cout 2; ; int main() Base*p=new Derived; p- fun(); delete p; return 0; 46 请将下列类定义补充完整。 class Basepublic:void fun()cout “Base:fun“ end;; class Derived:public Base public: void fun() 【 】 /显式调用基类的 fun函 数 cout “Derived:fun“ endl; ; 47 多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但 运算符只能作为类的【 】函数重载。 48 下

21、面是一个栈类的模板,其中 push函数将元素 i压入栈顶, pop函数弹出栈顶元素。栈初始为空, top值为 0,栈顶元素在 stacktop-1中,在下面横线处填上适当的语句,完成栈类模板的定义。 template class t class Tstack enumsize=1000; T stacksize int top; public: Tsack():top(0) void push(const T T pop() if(top=O)exit(1); /栈空时终止运行 retum【 】 ; ; 49 下列函数的功能是判断字符串 str是否对称,对称则返回 true,否则返回 fals

22、e。请在横线处填上适当内容,实现该函数。 bool fun(char*str) int i=o,i=0; while(strj)【 】 ; for(j-;i ji+,j-); return i【 】 j; 2005 年 9月国家二级( C+)笔试真题 试卷答案与解析 1 【正确答案】 C 【试题解析】 程序设计并不等于编程,编程只是程序设计中的一小步。测试是程序执行的过程,目的在于发现错误,一般不由开发者测试自己的程序,测试发现错误后,可以立即进行调试并改正错误,经调试改错后还应进行再测试。 2 【正确答案】 A 【试题解析】 二分查找只适用于顺序存储的有序表。 3 【正确答案】 C 【试题解

23、析】 栈是特殊的线性表,在栈顶端既可以插入元素,又可以删除元素:在栈底端不允许插入元素,也不能删除元素。 4 【正确答案】 C 【试题解析】 数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构:而采用不同的存储结构,其数据处理的效率是不同的。 5 【正确答案】 C 【试题解析】 软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法,由于软件开发中面临着纷繁复杂的问题,所以强调用工程化的原则去处理。 6 【正确答案】 D 【试题解析】 DFD(数据流图 )是常用的结构化分析工具; NS, PAD, PDL是常见的过程设计工具,其中 N

24、S, PAD属于图形工具, PDL 属于语言工具。 7 【正确答案】 A 【试题解析】 软件生命周期分为软件定义、软件开发及软件运行维护 3个阶段。维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段。 8 【正确答案】 A 【试题解析】 数据库技术的根本目标是要解决数据共享的问题,选项 A)的说法是正确的。 9 【正确答案】 B 【试题解析】 T 是 R S的结果,关系 T由属于关系 R的或者属于关系 S的元组组成。 10 【正确答案】 B 【试题解析】 数据库系统的核心是数据库管理系统 (DBMS)。 11 【正确答案】 C 【试题解析】 从函数的形式看,函数分两类:

25、无参函数:有参函数。当调用无参函数时,主调函数并不将数据传送给被调用函数,且可以带回或不带回函数值。当调用有参函数时,在主调函数和被调用函数之间有参数传递。在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。 C+允许函数的递归调用。 12 【正确答案】 A 【试题解析】 类可以理解为一种特殊的数据类型,与 int等基本数据类型一样,可以声明多个对象。 13 【正确答案】 D 【试题解析】 C+的多态性有两种:函数重载和虚函数。虚函数只有在运行时才能被确定,称为运行时多态。 14 【正确答案】 B 【试题解析】 一般运算符重载可以采用成员函数方式或友元方式。但成员运算符

26、(.),指向成员的指针,作用域运算符 (:),条件运算符 (?:)只能采用成员函数方式;重载运算符 (+),对应的运算符函数名是 operator+();重载一个二元运算符时,只需声明一个形参,左操作数毋须用参数输入,而是通过隐含的 this 指针传入。 15 【正确答案】 C 【试题解析】 C+中 有两类模板:类模板和函数模板。类模板中可以有数据成员,所以选项 C)错误。 16 【正确答案】 D 【试题解析】 ( )表示插入运算符; ( )表示提取运算符。 17 【正确答案】 D 【试题解析】 标识符只能由大小写字母,下划线和数字组成,只允许字母或下划线开头,不允许使用系统的关键字作为标识符

27、。 18 【正确答案】 A 【试题解析】 第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量缺省时,在前一枚举常量值的基准上依次增 1。 19 【正确答 案】 C 【试题解析】 i 为 3的倍数,当 i=24时, i 25,执行 while的循环体 i+=3,则i=27,不满足 i 25的条件,结束循环。 20 【正确答案】 A 【试题解析】 该定义的数组只有 3个元素。 21 【正确答案】 B 【试题解析】 x为引用,双向的;而 y为值传递,单向的。 22 【正确答案】 C 【试题解析】 默认属性为 private。 23 【正确答案】 B 【试题解析】 pr

28、otected 派生: pnvate-不可见; protected- private;public-protected。 24 【正确答案】 B 【试题解析】 重载的运算符是二元的。 25 【正确答案】 C 【试题解析】 模板类型参数歧义。 26 【正确答案】 A 【试题解析】 cout函数的 fill()方法用来填充不足宽度: width()用来指定输出宽度。 27 【正确答案】 D 【试题解析】 构造函数不能标以返回类型,即使 void也不行。它的返回值类型是隐含的,是指向类本身的指针。 28 【正确答案】 D 【试题解析】 类的静 态成员函数不能含有 this 指针,因为 this 指针

29、是一个指向对象的指针。 29 【正确答案】 A 【试题解析】 本题考查构造函数和析构函数的调用。类的静态成员和成员函数是类属,不依赖于对象实例存在。 30 【正确答案】 D 【试题解析】 本题考查基类构造函数,数据成员构造函数的调用次序。系统首先要通过派生类的构造函数调用基类的构造函数,对基类成员初始化:然后对派生类中新增的成员初始化。 31 【正确答案】 B 【试题解析】 派生类的构造首先要调用基类的构造函数,对基类成员初始化; 然后对派生类中新增的成员初始化。格式为:派生类名 (构造函数形参表 ):基类构造函数 (形参表 )。 32 【正确答案】 D 【试题解析】 本题考查基类析构函数和派

30、生类析构函数的调用次序。 33 【正确答案】 C 【试题解析】 本题考查运算符重载。运算符可重载为成员函数,也可重载为友元函数。当重载为成元函数时,运算符重载函数的形参个数要比运算符操作数的个数少一个,当重载为友元函数时,其参数个数应与操作数个数相同。 34 【正确答案】 A 【试题解析】 选项 C)应该输出字符串 “PQMN”,选项 D)x中的字符串是 “Happy new year”。 35 【正确答案】 B 【试题解析】 本题考查 const对象。一个 const对象只允许被声明为 const的方法函数引用。 36 【正确答案】 数据库系统 【试题解析】 数据管理技术的发展过程分为人工管

31、理,文件系统以及数据库系统三个阶段,数据独立性最高的阶段是数据库系统。 37 【正确答案】 空间 【试题解析】 算法的复杂度主要包括时间复杂度和空间复杂度。 38 【正确答案】 驱动模块 【试题解析】 驱动模块的 作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 39 【正确答案】 32 【试题解析】 对于深度为 6的二叉树来说,第 6层的结点数最多为 26-1=32。 40 【正确答案】 存储 【试题解析】 循环队列是队列的一种顺序存储结构。 41 【正确答案】 10月 10日 【试题解析】 考察对引用的定义的理解。 42 【正确答案】 int Point:countP=0

32、; 【试题解析】 对静态数据成员除要进行引用性说明外,还应在文件作用域内的某个地方进行定义性声明 。初始化静态成员前要用类名指定作用域。在类定义之外定义静态成员函数时,不使用 static。 43 【正确答案】 友元 【试题解析】 友元函数引入的目的。 44 【正确答案】 私有 【试题解析】 类的 3种可见性关键字: public, protected, private 对访问权限的控制。 45 【正确答案】 virtual 【试题解析】 利用虚函数实现多态。 46 【正确答案】 Base:fun(); 【试题解析】 类层次中的访问规则。 47 【正确答案】 成员 【试题解析】 运算符重载。 48 【正确答案】 stack-top 【试题解析】 + -运算符;注意栈顶元素在 stacktop-1中。 49 【正确答案】 i+ = 【试题解析】 从字符串两端依次比较各字符是否相等, for循环结束后,当 i =j表明字符串对称,否则不对称。

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

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

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