全国计算机二级C++考题真题.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《全国计算机二级C++考题真题.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C++考题真题.docx(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2006年9月考试真题(第24次)1 .从工程管理角度,软件设计般分为两步完成,它们是.A、概要设计与详细设计 B、过程控制C、软件结构设计与数据设计D、程序设计与数据设计从工程管理角度看,软件设计分为两步完成:概要设计与详细设计。概要设计(又称结构设计)将软件需求转化为软件体 系结构、确定系统级接口、全局数据结构或数据库模式;详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算 法和数据结构的细节. 故本题答案为A。2 .数据席技术的根本目标是解决数据的.。A、存储问题B、共享问题 C、安全问题 D、保护问题由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库
2、与网络的结合扩大了数据关系的应用 范围。数据的共享本身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。因 此,数据库设计的根本目标是耍解决数据共享问题。故本题答案为B。3 .在数据库系统中,用户所见数据模式为.A、概念模式 B、外模式 C、内模式 D,物理模式数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式又称为子模式,或用户模式,是指数据库用户所看 到的数据结构,是用户看到的数据视图。模式又称为逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所 见到的数据视图的总和.外模式是模式的一部分。内模式又称为存储模式或物理模式,
3、是指数据在数据库系统内的存储介质上的 表示,即对数据的物理结构和存取方式的描述。 故本题答案为B。4 .在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为.A、 63 B、 64 C, 6 D、 7在进行顺序查找过程中,如果线性表中的第1个元素就是被查找元素,则只需做次比较就查找成功,查找效率最高;但 如果被查找的元素是线性表中的最后一个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所 有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线性衣进行顺序查找,在最坏情况下需要比较n次。故本题答案为B。5 .对下列二叉树进行中序遍历的结果是.A、
4、ACBDFEG B、 ACBDFGE C、 ABDCGEF D、 FCADBEG二叉树的中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。故本题答案为A。6 .下列选项中不属于软件生命周期开发阶段任务的是.A、软件测试 B、概要设计C、软件维护 D、详细设计软件生命周期分为软件定义、软件开发及软件维护。其中软件开发阶段的任务中软件设计阶段可分解成概要设计阶段和详 细设计阶段;软件维护不属于软件开发阶段。故本题答案为C.7 .下列叙述中正确的是.A、一个算法的空间复杂度大
5、,则其时间复杂度也必定大B、一个算法的空间复杂度大,则其时间复杂度必定小C、一个算法的时间复杂度大,则其空间复杂度必定小D、上述三种说法都不对算法的复杂度主要包括时间复杂度和空间复杂度:算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度:算法 的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数,为了能够比较客观地反映出一个算 法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实 现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。 故本题答案为D。 8.下列
6、选项中不符合良好程序设计风格的是.A、源程序要文档化B、数据说明的次序要规范化C、避免滥用goto语句D,模块设计要保证高耦合、高内聚良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护,因此,程序设计风格对保证程序的质量很重要。主 要应注意和考虑下述一些因素:1、源程序耍文档化;2、数据说明的次序要规范化;3、语句的结构应该简单直接,不应该为提高 效率而把语句复杂化,避免滥用got。语句。模块设计要保证低耦合、高内聚.故本题答案为D。9 .设有如下三个关系表从图中可以看出,关系T是关系R和关系S的简单扩充,而扩充的符号为X,所以答案为T=RXS。故本题答案为C。10 .数据库设计的四
7、个阶段是:需求分析、概念设计、逻辑设计和 。A、编码设计B、测试阶段 C、运行阶段 D、物理设计数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和 维护阶段。故本题答案为九11 .下列运算符不能重载为友元函数的是.A、 = () - B、 + - + C, = 以及所有的 类型转换运算符只能作为成员函数重我,不能重载为友元函数。故本题答案为A。12 .语句ofstream f (SALARY. DAT, ios_base: :app);的功能是建立流对象f,并试图打开文件SALARY. DAT与f关联,而且.A、若文件存在,将其置为空
8、文件;若文件不存在,打开失败B、若文件存在,将文件指针定位于文件尾:若文件不存在,建立一个新文件C、若文件存在,将文件指针定位于文件首;若文件不存在,打开失败D、若文件存在,打开失败;若文件不存在,建立一个新文件 本题考查的是文件流的输出。ofstream f (SALARY. DAT*, ios base:app);是以ios_base:app方式打开文件,若文件存在,将文件指针定位于文件尾;若文件不存在,建立个新文件。故本题答案为B。13 .有如下程序#includeusing namespace std;class A public: virtual void funclO coutMA
9、lM;void func20 coutMA2M;;class B:public A public:void funclO coutHBr,; void func2() (coutHB2H;);int mainO A*p=new B;p-funcl0 ;p-func2(); return 0;运行此程序,屏幕上将显示输出 OA、 B1B2 B、 A1A2 C、 B1A2 D、 A1B2本题考查的是派生类。派生类B由基类A公有继承而来。调用p-funcl();后,执行派生类B的函数void funclO:调用p-func2();后,执行基类的函 数void func2(),因为虚拟函数是根据对象的
10、实际类型调用,非虚拟函数是根据指针类型调用。故通过指针p调用func2时将直接 调用基类中的void func2()o故本题答案为C。14 . if语句的语法格式可描述为:格式1: if(条件)语句)或格式2: if(条件)语句lelse语句2关于上面的语法格式,下列表述中错误的是 OA、条件部分可以是一个if语句,例如if(if(a=0)B、语句部分可以是一个if语句,例如if()if(,) C、如果在条件前加上逻辑非运算符!并交换语句1和语句2的位置,语句功能不变D、语句部分可以是一个循环语句,例如if()while()本题考查的是if语句.if为关键字,条件)通常是一个表达式:if子句和
11、else子句可以是任何类型的语句,当然也可以是ifelse语句本身和while 语句。ifelse语句的基本执行过程是:首先计算条件的值,如果此值不为0 (真”),则执行语句1,然后忽略语句2,而去 执行if语句之后的下一条语句:如果此值为0 (假”),则执行语句2,然后忽略语句1,然后继续执行if语句之后的下一条语 句。故本题答案为限15 .下列语句中,错误的是.A、 const int buffer=256; B、 const double *point;C、 int const buffer=256;D、 double *const point;本题考查的是符号常量定义。const in
12、t buff er=256; 声明常量 buff erconst double *point;声明常量指针*point, *point不可变,但point的值可以改变int const buff er=256; 声明常量 buff erdouble *const point;声明的point是常量,*point可变,但point的值不可以改变,point不是外部的,必须在声明初始化常量对象。可改为:double aa = 123. 45;double *const point = &aa;故本题答案为D。16 .关于运算符重载,下列表述中正确的是 oA、C+已有的任何运算符都可以重载B、运算符
13、函数的返回类型不能声明为基本数据类型C、在类型转换符函数的定义中不需要声明返回类型D、可以通过运算符重载来创建C+中原来没有的运算符 本题考查的是运算符重载。运算符重载是针对C+中原有的运算符进行的,不可能通过重载创造出新的运算符,故选项D错误。除了.、.*、-*、:、?:这5个运算符外,其它运算符都可以而载,故选项A错误。运算符函数的返回类型可以声明为基本数据类型,故选项B错误。在重载 类型转换符时,由于运算符本身已经表示出返回值类型,因此不需要返回值类型的声明。故本题答案为C。17 .关于在调用模板函数时模板实参的使用,下列叙述正确的是.A、对于虚拟类型参数所对应的模板实参,如果能从模板函
14、数的实参中获得相同的信息,则都可以省略B、对于虚拟类型参数所对应的模板实参,如果他们是参数表中的最后的若干参数,则都可以省略C、时于虚拟类型参数所对应的模板实参,若能够省略则必须省略D、对于常规参数所对应的模板实参,任何情况下都不能省略本题考查的是函数模板中模板实参的省略。对了虚拟类型参数所对应的模板实参,如果从模板函数的实参表中获得的信息已经能够判定其中部分或全部虚拟类型参数, 而且它们又正好是参数表中最后的若干参数,则模板实参表中的那几个参数可以省略。反之,对于某个模板实参,如果从模板函 数的实参表中无法获得相同的信息,就不能省略:或者虽然能够获得同样的信息,但在它后面还有不能省略的实参,
15、则其自身还 是不能省略,故选项A和B错误。对于虚拟类型参数所对应的模板实参,若能够省略可以省略,也可以不省略,故选项C错误。常规 参数的信息无法从模板函数的实参表中获得,因此在调用时必须显式的说明。故本题答案为D。18 .若有下面的函数调用:fun(a+b, 3, max (n-1, b)则fun的实参个数是. A、3 B、4 C、5 D、6 本题考查的是函数的调用。在C+中,形参列表是由逗号分开的,分别说明函数的各个参数。在fun。函数中它包括3个形参,a+b, 3和max(nT,b);当 调用一个函数时,实参与形参一对一地匹配,所以实参个数也是3个。 故木题答案为A。19 .下列有关内联函
16、数的叙述中,正确的是.A、内联函数在调用时发生控制转移B、内联函数必须通过关键字inline来定义C、内联函数是通过编译器来实现的D、内联函数函数体的最后一条语句必须是retuim语句 本题考查的是内联函数。在C+中使用inline关键字来定义内联函数。inline关键字放在函数定义中函数类型之前。不过编译器会将在类的说明部分定 义的任何函数都认定为内联函数,即使它们没有inline说明。个内联函数可以有,也可以没有retun语句。内联函数在程序执 行时并不产生实际函数调用,而是在函数调用处将函数代码展开执行。内联函数是通过编译器来实现的。故本题答案为C。20 .在公有继承的情况下,允许派生类
17、直接访问的基类成员包括A、公有成员 B、公有成员和保护成员C、公有成员、保护成员和私有成员D、保护成员本题考查的是派生类。派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。此时派生类对基类中各成员的访问能 力与继承方式无关,但继承方式将影响基类成员在派生类中的访问控制属性。故本题答案为B。21 .有如下程序:#include using namespace std;class Objstatic int i;public:Obj() i+;Obj()i一;static int getVal()return i;);int Obj:i=0;void f () (Obj
18、ob2;coutob2. getVal ();)int main() Obj obi;f ();0bj*ob3=new Obj; coutob3-getVal ();delete ob3;coutgetVal();后,将i的值输出,输出值为2:调用delete ob3后将执行Obj的析构函数Obj (),执行后,i的值将减1, Obj:getVal()为类的一个静态成员函数,其作用是返回私有静态成员变量i的值1。故本题答案为D。22 .下列有关继承和派生的叙述中,正确的是.A、如果一个派生类私有继承其基类,则该派生类中的成员不能访问基类的保护成员B、派生类的成员函数可以访问基类的所有成员C、基
19、类对象可以赋值给派生类对象D、如果派生类没有实现基类的一个纯虚函数,则该派生类是个抽象类 本题考查的是拷贝构造函数。拷贝构造函数通常在以卜.3种情况卜.会被调用:(1)用类的一个已知的对象去初始化该类的另一个正在创建的对象。(2)采用传值调用方式时,对象作为函数实参传递给函数形参。(3)对象作为函数返回值。故本题答案为B。23 .下列情况中,不会调用拷贝构造函数的是.A、用一个对象去初始化同一类的另一个新对象时B、将类的一个对象赋值给该类的另一个对象时C、函数的形参是类的对象,调用函数进行形参和实参结合时D、函数的返回值是类的对象,函数执行返回调用时 本题考查的是拷贝构造函数。拷贝构造函数通常
20、在以下3种情况下会被调用:(1)用类的个已知的对象去初始化该类的另个正在创建的对象。(2)采用传值调用方式时,对象作为函数实参传递给函数形参.(3)对象作为函数返回值。故本题答案为B。24 .有如下程序#include#inc1udeusing namespace std;int main() coutsetprecision(3)fixedsetfi 11 (*)setw(8); cout12. 34534. 567;return 0;)若程序的输出是: *12. 345*34. 567 则程序中下划线处遗漏的操作符是。 A、setprecision B、fixed C、setfillC *
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 C+ 考题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内