最新全国计算机等级考试二级c++题库1(共17套).pdf

上传人:hg158****2095 文档编号:74118351 上传时间:2023-02-24 格式:PDF 页数:15 大小:628.05KB
返回 下载 相关 举报
最新全国计算机等级考试二级c++题库1(共17套).pdf_第1页
第1页 / 共15页
最新全国计算机等级考试二级c++题库1(共17套).pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《最新全国计算机等级考试二级c++题库1(共17套).pdf》由会员分享,可在线阅读,更多相关《最新全国计算机等级考试二级c++题库1(共17套).pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、.1/15 第一套 1、下面叙述正确的是_.A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令或语句的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型与其算法.数据结构和算法是计算机科学的两个重要支柱.它们是一个不可分割的整体.算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度.算法的有穷性是指一个算法必须在执行有限的步骤以后结束.本题答案为 C.2、数据库系统的核心是_.A、数据模型 B、数据库管理系统 C、软件工具 D、数据库

2、数据库管理系统DBMS是数据库系统的核心.DBMS是负责数据库的建立、使用和维护的软件.DBMS建立在操作系统之上,实施对数据库的统一管理和控制.用户使用的各种数据库命令以与应用程序的执行,最终都必须通过DBMS.另外,DBMS还承担着数据库的安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性.本题答案为 B.3、在结构化方法中,用数据流程图DFD作为描述工具的软件开发阶段是_.A、可行性分析 B、需求分析 C、详细设计 D、程序编码 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段.其中需求分析阶段常用的工具是数据流图和数据字典.本题答案为 B.4、在软件开发中

3、,下面任务不属于设计阶段的是_.A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 软件设计一般分为总体设计和详细设计两个阶段,总体设计的任务是确定软件的总体结构,子系统和模块的划分,并确定模块间的接口和评价模块划分质量,以与进行数据分析.详细设计的任务是确定每一模块实现的定义,包括数据结构、算法和接口.本题答案为 D.5、下列叙述中正确的是_.A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 数据库是存储在计算机存储设备中

4、的、结构化的相关数据的集合.数据库中的数据不只是面向某一项特定的.2/15 应用,而是面向多种应用,可以被多个用户、多个应用程序共享,不具有独立的系统.设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型.数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价.本题答案为 C.6、下面描述中,符合结构化程序设计风格的是_.A、使用顺序、选择和重复循环三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口

5、C、注重提高程序的执行效率 D、不使用 goto 语句 基于对结构化程序设计原则、方法以与结构化程序基本构成结构的掌握和了解,在结构化程序设计的具体实施中,要注意把握如下要素:1、使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑;2、选用的控制结构只准许有一个入口和一个出口;3、程序语句组成容易识别的块,每块只有一个入口和一个出口;4、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现;5、语言中所没有的控制结构,应该采用前后一致的方法来模拟;6、严格控制GOTO语句的使用.其意思是指:1用一个非结构化的程序设计语言去实现一个结构化的构造;2若不使用GOTO语句会使功能模

6、糊;3在某种可以改善而不是损害程序可读性的情况下.本题答案为 A.7、下列模式中,能够给出数据库物理存储结构与物理存取方法的是_.A、内模式 B、外模式 C、概念模式 D、逻辑模式 数据库管理系统的三级模式结构由外模式、模式和内模式组成.外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图.模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和.外模式是模式的一部分.内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述.本题答案为 A.8、下面概念中,不属于面向对象方法

7、的是_.A、对象 B、继承 C、类 D、过程调用 面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法.面向对象方法从对象出发,发展出对象,类,消息,继承等概念.本题答案为 D.9、在一棵二叉树上第 5 层的结点数最多是_.A、8.3/15 B、16 C、32 D、15 根据二叉树的性质:二叉树第ii1层上至多有2i-1个结点.得到第5层的结点数最多是16.本题答案为 B.10、以下数据结构中不属于线性数据结构的是_.A、队列 B、线性表 C、二叉树 D、栈 线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式.栈是一种特殊的线性表,这种线性表只

8、能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底.一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素.所以栈又称后进先出表Last In First Out;队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头.在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素.因此队列又称先进先出表First In First Out.本题答案为 C.11、下列程序的输出结果是_.#include using namespace std;int main char a=Hello,Worl

9、d;char*ptr=a;while if=a&*ptr coutchar;else coutn;switch case 1:case 2:cout1;case 3:case 4:cout2;break;default:cout3;时,若键盘输入 1,则屏幕显示_.A、1 B、2 C、3 D、12 switch语句又称为开关语句,它也是一种选择语句.switch语句的功能是根据给定表达式的不同取值来决定从多个语句序列中的哪一个开始执行.break语句又称为跳出语句.break语句只能用在switch语句和循环语句中.在switch语句中,break用来使执行流程跳出switch语句,而继续执行

10、switch后面的语句.在循环语句中,break用来使执行流程无条件地跳出本层循环.本题答案为 D.14、有以下类定义 class Point public:Point_x=x;_y=y;void Move _x+=xOff;_y+=yOff;void Print const cout_x,_yendl;private:int _x,_y;下列语句中会发生编译错误的是_.A、Point pt;pt.Print;B、const Point pt;pt.Print C、Point pt;pt.Move;D、const Point pt;pt.Move;本题主要考查了const关键字的使用.可以在类

11、型或类名前加上const来声明一个在运行时不可改变的对象.5/15 或变量.如果声明了一个常量对象,则其内部成员均不可改变,在编译时会检查其对应类的成员变量是否为左值,如果是,则会出现错误.对于B而言,由于在对象pt中的print方法中没有发现存在左值成员变量,故在编译时不会出错.本题答案为 D.15、有以下类定义 class MyClass private:int id;char gender;char*phone;public:MyClass:id,gender,phone MyClass id=no;gender=ge;phone=ph;下列类对象定义语句中错误的是_.A、MyClass

12、 myObj;B、C、MyClass myObj;D、MyClass myObj;对于A,由于在创建MyClass的实例myObj时,没有参数,所以其调用了第一个构造函数.对于B,由于有两个参数,故其调用了第二个构造函数,第二个构造函数有两个缺省参数,在调用时,实参会按从左到右的顺序依次传给形参,所以第二个参数会传递给形参ge,而在原型中ge为字符型,实参为指向字符的指针,故在编译时会出现错误.C与D都能够正确的实现参数的传递.本题答案为 B.16、下列函数原型声明中错误的是_.A、void Fun;B、void Fun;C、void Fun;D、void Fun;在C+中,可以为参数指定默认

13、值,在函数调用时没有指定与形参相对应的实参时就自动使用默认值.默认参数可以简化复杂函数的调用.默认参数通常在函数名第一次出现在程序中的时候,如在函数原型中,指定默认参数值.指定默认参数的方式从语法上看与变量初始化相似.例如:void myfunc;如果一个函数中有多个参数,则默认参数应从右至左逐个定义.本题答案为 D.17、关于面向对象的程序设计方法,下列说法正确的是_.A、封装性指的是将不同类型的相关数据组合在一起,作为一个整体进行处理 B、多态性指的是对象的状态会根据运行时要求自动变化 C、基类的私有成员在派生类的对象中不可访问,也不占内存空间 D、在面向对象的程序设计中,结构化程序设计方

14、法仍有着重要作用 封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部;多态性是.6/15 指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为;基类的私有成员对派生类来说是不可访问的,因此在派生类中直接引用基类的私有变量成员是不允许的,可以通过基类的公用成员函数来引用基类的私有变量成员;C+是一种优秀的高级程序设计语言,它是以C语言为基础而逐渐发展起来的.C+语言既保留了传统的结构化程序设计方法,又对流行的面向对象程序设计方法提供了完整的支持.本题答案为 D.18、下列是模板声明的开始部分,其中正确的是_.A、template B、templat

15、e C、template D、template 本题主要考查了模板的定义,在C+中可以在定义类时不指定具体的数据类型,而在编译时进行前期绑定,对于多参数的模板,在参数间用,隔开,如果模板参数为一个类,在模板参数前面必须加上class关键字.本题答案为 C.19、有以下程序#include int i=0;void fun static int i=1;std:couti+,;std:couti,;int main fun;fun;return 0;程序执行后的输出结果是_.A、1,2,1,2,B、1,2,2,3,C、2,0,3,0,D、1,0,2,0,本题主要考查了static型的变量,在C+

16、中可以为函数或类指定static型的变量,如果将一个变量指定为static型,则该变量在内存中仅有一个副本,同时在函数或类执行完成后空间不会被释放,以前的值将会被保留.同时还考查了C+中变量作用域的问题,在C+中如果要将一个变量限定在指定的X围内,可以将该作用域用包含起来,同时可在函数的外部指定全局变量,该变量的作用X围是从当前位置开始到程序结束.对于static int i=1;中的i,初始值为1,在调用std:couti+,后,将输出1,然后自加1,对于第二句std:couti,该i所代表的应该是全局变量i,故输出0,.在第二次执行fun时,由于第一i为static型变量,其值是保留的,故

17、输出2,对于第二个i则输出0,.本题答案为 D.20、有以下程序#include using namespace std;.7/15 class MyClass public:MyClassnumber=n;/拷贝构造函数 MyClassnumber=other.number;MyClass private:int number;MyClass fun MyClass temp;return temp;int main MyClass obj1,obj2;MyClass obj3;obj2=fun;return 0;程序执行时,MyClass 类的拷贝构造函数被调用的次数是_.A、5 B、4

18、C、3 D、2 obj1将执行一次构造函数,obj2也将执行一次构造函数;obj3将以obj1作为参数执行一次构造函数;fun中的temp也将执行一次构造函数,而fun本身是按值传递参数的,形参在fun函数内也要分配独立的空间,故也要执行一次构造函数,对于其返回结果也是MyClass类型的,同样需要执行一次构造函数,故一共要执行4次.本题答案为 B.21、已知:int m=10;在下列定义引用的语句中,正确的是_.A、int&x=m;B、int y=&m;C、int&z;D、int&t=&m;本题主要考查了对引用与地址&的理解,引用实际上就是别名,它与被引用变量拥有同一个地址空间,对于选项A而

19、言,其操作实际上就是为m赋于一个别名x,因此选项A是对的.对于选项B,&m表示m的地址,而y是一个整型变量,在C+中不能从地址值隐式转换为整型值,故选项B是错的.对于选项C,引用必须要用被引用的对象,即引用必须要初始化;选项D中t是一个整型引用,而其被引用的对象却是m的地址,存在着与选项B类似的错误,因此选项D也是错的.本题答案为 A.8/15 22、在下面的运算符重载函数的原型中,错误的是_.A、Volume operator-;B、double Volume:operator-;C、Volume Volume:operator-;D、Volume operator-;本题主要考查了运算符的

20、重载.对于运算符的重载,通常有两种形式.1、操作结果 operator 运算符 2、操作结果类:operator 运算符 对于上述选项中,B、C为第二种类型,A、D为第一种类型,在第一种类型中,两个操作数必须至少有一个自定义类,对选项A而言,其两个操作数均为double型数据,因此选项A是错误的运算符重载.本题答案为 A.23、执行语句序列 ofstream outfile;ifcoutOK;else coutFAIL;后,如果文件打开成功显示OK,否则就显示FAIL.由此可知,上面 if 语句的处的表达式应是_.A、outfile.fail 或 outfile B、outfile.good

21、或!outfile C、outfile.good 或 outfile D、outfile.fail 或!outfile 在采用ofstream类打开文件时,在创建其实例时,可在构造函数中输入要打开的文件名,如果打开成功,则返回一个ofstream类的实例,否则创建实例失败,返回0,同时可通过good或fail方法来判断文件是否已打开,如果正常打开则fail方法返回0,good方法返回非零,否则fail返回非零,good返回0.本题答案为 C.24、在一个类体的下列声明中,正确的纯虚函数声明是_.A、virtual void vf=0;B、void vf=0;C、virtual int vf;D

22、、virtual void vf 本题考查了纯虚函数的定义,在C+中要定义一个函数为虚函数,可在函数定义前加上virtual关键字,如果要定义一个函数为纯虚函数,只要在函数原型后加上=0就可以了.对于纯虚函数,必须要在其派生类中实现,因此对于一个拥有纯虚函数的类,实质上就是一个抽象类.对于这种类,不能为其创建实例.本题答案为 A.25、有以下类定义 class MyClass public:MyClasscout1;则执行语句 MyClass a,b2,*p2;后,程序的输出结果是_.A、11 B、111 C、1111 D、11111 class MyClass定义了一个类,其中MyClass

23、cout1;为其的构造函数,当程序创建类MyClass的实.9/15 例时,该函数将会被调用,在执行MyClass a,b2,*p2;时,一共创建了3个这样的实例,故一共执行构造函数3次,对于变量p,则是声明了一个指针数组,该数组中的元素是指向类MyClass实例的指针,本身并没有创建类的实例.本题答案为 B.26、有以下程序#include using namespace std;class Complex public:Complex:re,im double real const return re;double imag const return im;Complex operator

24、+const return Complex;private:double re,im;int main Complex a=Complex+Complex;couta.real+a.imagiendl;return 0;程序执行后的输出结果是_.A、6+6i B、6+1i C、1+6i D、1+1i 本题定义了一个复数类,并在该类上重载了+运算符.在main函数中,定义了一个复数类a,其值为两个复数1+i与5的和.在复数类中,定义了real与imag方法,分别用来取出复数的实部与虚部.本题答案为 B.27、已知程序中已经定义了函数 test,其原型是 int test;,则下列重载形式中正确的

25、是_.A、char test;B、double test;C、int test;D、float test;在对函数进行重载时,不允许为其指定缺省参数,故C、D是错的,同时,对于重载的函数原型间不允许有类型完全相同的参数列表,故A是错的,对于返回类型,在重载时没有特别的要求.本题答案为 B.28、C+流中重载的运算符是一个_.A、用于输出操作的非成员函数 B、用于输入操作的非成员函数.10/15 C、用于输出操作的成员函数 D、用于输入操作的成员函数 C+流的输入运算符和输出运算符或声明为友元函数.本题答案为 B.29、已知函数 f 的原型是:void f;,变量 v1、v2 的定义是:int

26、v1;long v2;,正确的调用语句是_.A、f;B、f;C、f;D、f;对于函数f而言,其第一个参数为整型指针,第二个参数为一引用实际上就是按地址传递参数,该引用是一长整型的引用.对于选项A、B,实参变量 v1为整型,而所要传递的对应的形参变量a是指针型,它接受的是地址,若将实参变量v1改为&v1,那么这一传递就是正确的;对于选项A、D,&v2为一地址,传递给整型引用,也将导致出错.本题答案为 C.30、在公有派生的情况下,派生类中定义的成员函数只能访问原基类的_.A、公有成员和私有成员 B、私有成员和保护成员 C、公有成员和保护成员 D、私有成员、保护成员和公有成员 在一个派生类中,其成

27、员由两部分构成:一部分是从基类继承得到的,另一部分是自己定义的新成员,所有这些成员仍然分为公有、私有和保护三种访问属性.其中,从基类继承下来的全部成员构成派生类的基类部分,这部分的私有成员是派生类不能直接访问的,公有成员和保护成员则是派生类可以直接访问的,但是它们在派生类中的访问属性将随着派生类对基类的继承方式而改变.本题答案为 C.31、一个类可以同时继承多个类,称为多继承.下列关于多继承和虚基类的表述中,错误的是_.A、每个派生类的构造函数都要为虚基类构造函数提供实参 B、多继承时有可能出现对基类成员访问的二义性问题 C、使用虚基类可以解决二义性问题并实现运行时的多态性 D、建立最远派生类

28、对象时,虚基类的构造函数会首先被调用 虚基类的构造函数将在其派生类创建实例时被执行,在执行时,派生类必须为虚基类的构造函数提供实参.在多重继承中,如果通过两条以上的路径对同一基类实行继承,这样,在派生类中将有多个基类的副本,从而产生二义性.在采用虚基类时,其成员将仅存唯一的副本,这样就可以解决二义性问题,但不能够实现运行时多态,可通过抽象类或虚拟函数来实现,虚基类的构造函数将会首先被执行.本题答案为 C.32、在 C+中用来实现运行时多态性的是_.A、重载函数 B、析构函数 C、构造函数 D、虚函数 构造函数是类在创建实例时自动执行的函数,它不能实现运行时多态;析构函数是类在销毁其实例时创建的

29、,也不能实现运行时多态,重载函数能够使相同的的功能具有统一的接口,但可以有不同的参数.虚函数可以用来动态地根据当前实例所属的类调用相应的函数,实现运行时多态性.11/15 本题答案为 D.33、关于友元,下列说法错误的是_.A、如果类A是类B的友元,那么类B也是类A的友元 B、如果函数fun被说明为类A的友元,那么在fun中可以访问类A的私有成员 C、友元关系不能被继承 D、如果类 A 是类 B 的友元,那么类 A 的所有成员函数都是类 B 的友元 本题主要考查了友元的概念,在C+中,有些对象或函数需要访问另一些对象的内部成员,这样我们可以用friend关键字来为对应的类指定友元函数或友元类,

30、这种关系不是相互的.如果声明一个类A为另一个类B的友元类,则类A中的所有成元函数均可访问类B中的私有成员.友元关系不会被继承.本题答案为 A.34、判断字符型变量ch 是否为大写英文字母,应使用表达式_.A、ch=A&ch=Z B、ch=Z C、A=ch=A&ch=Z C+语言提供了三种逻辑运算符,它们是:!逻辑非、&逻辑与、|逻辑或.其中!为单目运算符,&和|为双目运算符.本题的选项中符合题意的是D.本题答案为 D.35、已知下列语句中的x 和 y 都是 int 型变量,其中错误的语句是_.A、x=y+;B、x=+y;C、+;D、+x=y;对于+、-这样的运算,其操作数必须为一变量,因为x+

31、y是表达式故答案C是错误的.本题答案为 C.36、数据的逻辑结构在计算机存储空间中的存放形式称为数据的_.标准答案为:模式或逻辑模式或概念模式 模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图.例如数据记录由哪些数据项构成,数据项的名字、类型、取值X围等.外模式是模式的子集,所以也称子模式或用户模式,是数据库用户能够看见的和使用的、局部的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示.内模式也称物理模式或存储模式.一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据库内部的表示方法.例如,记录的存储方式是顺序存储、索引按照什么

32、方式组织;数据是否压缩存储,是否加密等.37、关系数据库管理系统能实现的专门关系运算包括选择、连接和_.标准答案为:投影 专门的关系运算主要包括对单个关系进行垂直分解投影操作或水平分解选择操作和对多个关系的结合连接操作等.38、如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体工人与实体设备之间存在_联系.标准答案为:一对多或 1 对多或一对 n 或 1:N 或 1:n 或 1:n 或 1:N 或一对 m 或 1:M 或 1:m 或 1:m 或 1:N 实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联.两个实体间的联系可以归结为三种类型:一对一联系表现为某一实体与另一实

33、体一一对应相关联;一对多联系表现为某一实体与相关多个.12/15 实体相关联;多对多联系表现为多个实体与相关多个实体相关联.39、算法的复杂度主要包括_复杂度和空间复杂度.标准答案为:时间 一个程序在计算机上运行时所耗费的时间由下列因素所决定:程序运行时所需输入的数据总量,对源程序进行编译所需时间,计算机执行每条指令所需时间,程序中的指令重复执行的次数.前一条取决于实现算法的计算机软、硬件系统,习惯上常常把语句重复执行的次数作为算法运行时间的相对量度,称做算法的时间复杂度.算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度.40、若按功能划分,软件测试的方法通常分为白盒测试方法和_测试方

34、法.标准答案为:黑盒 软件测试的方法有三种:动态测试、静态测试和正确性证明.设计测试实例的方法一般有两类:黑盒测试方法和白盒测试方法.在使用黑盒法设计测试实例时,测试人员将程序看成一个黑盒,也就是说,他不关心程序内部是如何实现的,而只是检查程序是否符合它的功能说明,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的;如用白盒法,则需要了解程序内部的结构,此时的测试用例是根据程序的内部逻辑来设计的,如果想用白盒法发现程序中所有的错误,则至少必须使程序中每种可能的路径都执行一次.实际上这是不可能的,即使测遍所有的路径,仍不一定能保证符合相应的功能要求.41、设有定义语句:int a=12

35、;,则表达式 a*=2+3 的运算结果是_.标准答案为:60 根据运算的优先级和结合性,可以将表达式的计算顺序规则总结为以下3 条:1优先计算带有括号的子表达式.2在没有括号的部分,依照运算优先级,由高到低进行计算.3具有相同优先级的运算符,按照结合性规定,依次进行计算.本题中*=的结合性是右结合,所以表达式 a*=2+3 相当于 a=a*,所以a=60.42、下列程序的输出结果是_.#include using namespace std;class Test public:Testcnt+;Testcnt-;static int Countreturn cnt;private:static

36、 int cnt;int Test:cnt=0;int main coutTest:Count;Test t1,t2;Test*pT3=new Test;Test*pT4=new Test;coutTest:Count;delete pT4;delete pT3;coutTest:Countendl;return 0;.13/15 标准答案为:0 4 2 本题主要考查了类的静态成员的概念.在C+中可以用static关键字为类指定静态成员.静态成员为类的所有实例所共享.对于类中的静态函数,可以通过类名:函数名的方法来调用,并且该函数只能访问类中的静态数据.对于静态 int 型数据,在编译时将会被

37、初始化为 0,故在 main 函数中第一句将会输出0;在Test t1,t2;语句中将创建类的两个实例,一共调用了两次构造函数,故类的静态数据 cnt 将会执行两次自加运算,变为 2,main 中接下来的两条语句通过 new 方法也创建了该类的两个实例,此时 cnt 变为 4,故第二次执行输出时将输出4;接下来执行了两条 delete 语句,将销毁 pT4,pT3 所对应的实例,这将执行两次析构函数,故 cnt 的值将变为 2,最后的一条输出语句将输出2后面有回车.43、下列程序的输出结果是_.#include using namespace std;int main int i=5;int&

38、r=i;r=7;coutiendl;return 0;标准答案为:7 本题主要考查了引用的概念,引用实质上是为变量取一个别名,因为系统不会为引用变量所代表的数据对象再次分配空间.本题中引用变量 r 与它所代表的数据对象 i 共用一个存储空间,所以所有对 r 的操作就是对 i 的操作,故本题在执行 r=7 后,i 的值也就是 7.44、下列程序的输出结果是_.#include using namespace std;template T fun returna?a:b;int main coutfun,funendl;return 0;标准答案为:3,3.14 本题主要考查了模板的定义与使用.在

39、 C+中为了能够实现代码的重用,提供了模板机制.在本题中,定义了一个模板函数,其参数a,b与返回结果均为T 类型.分析fun函数的可知,其功能是返回a,b中数值较小的数.在 main 函数中第一次调用 fun 时,实际上是调用了 int fun这个函数,故返回 3,第二次调用时,实质上是调用了函数 float fun,返回值为一个浮点型数据3.14.45、将一个函数声明为一个类的友元函数必须使用关键字_.标准答案为:friend 友元函数不是当前类的成员函数,而是独立于当前类的外部函数 包括普通函数和其他类的成员函数,但它可以访问该类的所有对象的成员,包括私有成员、保护成员和公有成员.友元函数

40、要在类定义时声明,声明时要在其函数名前加上关键字 friend.该声明可以放在公有部分,也可以放在私有部分.友元函数的定义既可以在类内部进行,也可以在类外部进行.14/15 46、请按下面注释的提示,将类B的构造函数定义补充完整.请按下面注释的提示,将类B的构造函数定义补充完整.class A int a;public:Aa=aa;class B:public A int b;A c;public:/用aa初始化基类A,用aa+1初始化类对象成员c B:_ b=aa+2;标准答案为:A,c 或 c,A 本题主要考查了类对基类与成员类的初始化.在类的构造函数中,要对类的基类与成员类进行初始化,可

41、在构造函数后面加上初始化列表,函数与初始化列表间用冒号隔开,列表间各项用逗号隔开.要对基类进行初始化,可用形如:类名初始化参数的方式,要对内部对象初始化,可用形如:对象名初始化参数的方式.47、下列程序的输出结果是_.#include using namespace std;class base public:int n;base n=x;virtual void set n=m;coutn;class deriveA:public base public:deriveA:base void set n+=m;coutn;class deriveB:public base public:der

42、iveB:base void set n+=m;coutn;int main deriveA d1;deriveB d2;base*pbase;.15/15 pbase=&d1;pbase-set;pbase=&d2;pbase-set;return 0;标准答案为:2 5 本题主要考查了 C+中的虚拟函数与多态机制.在 C+中可以用虚拟函数来实现运行时多态.本题中首先创建了两个对象 d1、d2,其对应的类分别是 deriveA 与 deriveB.在创建 d1,d2 时,构造函数分别为它们设置了属性 n 的值为 1,3.pbase 为一个指向基类的指针,在将 d1,d2 的地址赋值给 pba

43、se 后,调用 pbase 的指针成员将自动根据其所属的子类调用相应的成员函数,故本题输出应为2 5.48、与成员访问表达式p-name 等价的表达式是_.标准答案为:.name p-name 实际上是批指针 p 所指结构的成员 name,因此我们可以用*p 来指定 p 所指的内容,其成员可用.操作符实现,故为.name,注意到.的优先级要高于*,故对*p 要加上括号.49、从实现的角度划分,C+所支持的两种多态性分别是_时的多态性和运行时的多态性.标准答案为:编译 在 C+语言中,多态性可分为两类:编译时的多态性和运行时的多态性.编译时的多态性是通过函数重载和模板体现的.运行时的多态性是通过虚函数体现的.50、下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整.注:阶乘的定义是n!=n*2*1 unsigned fact ifn return 1;return _;标准答案为:n*fact 或 fact*n 注意到阶乘的定义,当 n1 时,n!=n*!,符合递归的定义,因此,本题答案为n*fact.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁