收藏 分销(赏)

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

上传人:精*** 文档编号:2488460 上传时间:2024-05-30 格式:DOC 页数:27 大小:93.54KB
下载 相关 举报
全国计算机等级考试二级c++题库1(共17套).doc_第1页
第1页 / 共27页
全国计算机等级考试二级c++题库1(共17套).doc_第2页
第2页 / 共27页
全国计算机等级考试二级c++题库1(共17套).doc_第3页
第3页 / 共27页
全国计算机等级考试二级c++题库1(共17套).doc_第4页
第4页 / 共27页
全国计算机等级考试二级c++题库1(共17套).doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

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

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

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

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

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

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

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

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

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

10、h语句中,break用来使执行流程跳出switch语句,而继续执行switch后面的语句。在循环语句中,break用来使执行流程无条件地跳出本层循环。本题答案为D。14、有以下类定义class Pointpublic: Point(int x=0,int y=0)_x=x;_y=y; void Move(int xOff,int yOff) _x+=xOff;_y+=yOff; void Print() const cout(_x,_y)endl; private: int _x,_y;下列语句中会发生编译错误的是_。A、Point pt;pt.Print();B、const Point pt

11、;pt.Print()C、Point pt;pt.Move(1,2);D、const Point pt;pt.Move(1,2); 本题主要考查了const关键字的使用。可以在类型或类名前加上const来声明一个在运行时不可改变的对象或变量。如果声明了一个常量对象,则其内部成员均不可改变,在编译时会检查其对应类的成员变量是否为左值,如果是,则会出现错误。对于B而言,由于在对象pt中的print方法中没有发现存在左值成员变量,故在编译时不会出错。本题答案为D。15、有以下类定义class MyClassprivate:int id;char gender;char *phone;public:M

12、yClass():id(0),gender(# ),phone(NULL)MyClass(int no,char ge=# ,char *ph=NULL)id=no;gender=ge;phone=ph;下列类对象定义语句中错误的是_。A、MyClass myObj;B、MyClass myObj(11,13301111155);C、MyClass myObj(12,m);D、MyClass myObj(12); 对于A,由于在创建MyClass的实例myObj时,没有参数,所以其调用了第一个构造函数。对于B,由于有两个参数,故其调用了第二个构造函数,第二个构造函数有两个缺省参数,在调用时,实

13、参会按从左到右的顺序依次传给形参,所以第二个参数”13301111155”会传递给形参ge,而在原型中ge为字符型,实参为指向字符的指针,故在编译时会出现错误。C与D都能够正确的实现参数的传递。本题答案为B。16、下列函数原型声明中错误的是_。A、void Fun(int x=0,int y=0);B、void Fun(int x,int y);C、void Fun(int x,int y=0);D、void Fun(int x=0,int y); 在C+中,可以为参数指定默认值,在函数调用时没有指定与形参相对应的实参时就自动使用默认值。默认参数可以简化复杂函数的调用。 默认参数通常在函数名第

14、一次出现在程序中的时候,如在函数原型中,指定默认参数值。指定默认参数的方式从语法上看与变量初始化相似。例如:void myfunc(int x=0,int y=1); 如果一个函数中有多个参数,则默认参数应从右至左逐个定义。本题答案为D。17、关于面向对象的程序设计方法,下列说法正确的是_。A、封装性指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B、多态性指的是对象的状态会根据运行时要求自动变化C、基类的私有成员在派生类的对象中不可访问,也不占内存空间D、在面向对象的程序设计中,结构化程序设计方法仍有着重要作用 封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据

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

16、数据类型,而在编译时进行前期绑定,对于多参数的模板,在参数间用“,”隔开,如果模板参数为一个类,在模板参数前面必须加上class关键字。本题答案为C。19、有以下程序#includeint 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+中可以为函数或类指定static型的变量,如果将一个变量指定为static型,则该变量在内

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

18、sing namespace std;class MyClasspublic:MyClass(int n)number=n;/ 拷贝构造函数MyClass(MyClass& other)number=other.number;MyClass() private: int number;MyClass fun(MyClass p) MyClass temp(p); return temp;int main() MyClass obj1(10),obj2(0); MyClass obj3(obj1); obj2=fun(obj3); return 0;程序执行时,MyClass类的拷贝构造函数被调

19、用的次数是_。A、5B、4C、3D、2 obj1(10)将执行一次构造函数,obj2(0)也将执行一次构造函数; obj3(obj1)将以obj1作为参数执行一次构造函数; fun(obj3)中的temp(p)也将执行一次构造函数,而fun本身是按值传递参数的,形参在fun函数内也要分配独立的空间,故也要执行一次构造函数,对于其返回结果也是MyClass类型的,同样需要执行一次构造函数,故一共要执行4次。本题答案为B。21、已知:int m=10;在下列定义引用的语句中,正确的是_。A、int &x=m;B、int y=&m;C、int &z;D、int &t=&m; 本题主要考查了对引用及地

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

21、);C、Volume Volume:operator-(Volume);D、Volume operator-(Volume,Volume); 本题主要考查了运算符的重载。对于运算符的重载,通常有两种形式。1、操作结果 operator 运算符(操作数1,操作数2)2、操作结果 类:operator 运算符(操作数) 对于上述选项中,B、C为第二种类型,A、D为第一种类型,在第一种类型中,两个操作数必须至少有一个自定义类,对选项A而言,其两个操作数均为double型数据,因此选项A是错误的运算符重载。本题答案为A。23、执行语句序列ofstream outfile(DATA.DAT);if()c

22、outOK;else coutFAIL;后,如果文件打开成功显示OK,否则就显示FAIL。由此可知,上面if语句的处的表达式应是_。A、outfile.fail() 或 outfileB、outfile.good() 或 !outfileC、outfile.good() 或 outfileD、outfile.fail() 或 !outfile 在采用ofstream类打开文件时,在创建其实例时,可在构造函数中输入要打开的文件名,如果打开成功,则返回一个ofstream类的实例,否则创建实例失败,返回0,同时可通过good()或fail()方法来判断文件是否已打开,如果正常打开则fail()方法

23、返回0,good()方法返回非零,否则fail()返回非零,good()返回0。本题答案为C。24、在一个类体的下列声明中,正确的纯虚函数声明是_。A、virtual void vf()=0;B、void vf(int)=0;C、virtual int vf(int);D、virtual void vf(int) 本题考查了纯虚函数的定义,在C+中要定义一个函数为虚函数,可在函数定义前加上virtual关键字,如果要定义一个函数为纯虚函数,只要在函数原型后加上“=0”就可以了。对于纯虚函数,必须要在其派生类中实现,因此对于一个拥有纯虚函数的类,实质上就是一个抽象类。对于这种类,不能为其创建实例

24、。本题答案为A。25、有以下类定义class MyClasspublic:MyClass()cout1;则执行语句MyClass a,b2,*p2;后,程序的输出结果是_。A、11B、111C、1111D、11111 class MyClass定义了一个类,其中MyClass()cout1;为其的构造函数,当程序创建类MyClass的实例时,该函数将会被调用,在执行“MyClass a,b2,*p2;”时,一共创建了3个这样的实例,故一共执行构造函数3次,对于变量p,则是声明了一个指针数组,该数组中的元素是指向类MyClass实例的指针,本身并没有创建类的实例。本题答案为B。26、有以下程序#

25、includeusing namespace std;class Complexpublic:Complex(double r=0,double i=0):re(r),im(i)double real() const return re; double imag() const return im; Complex operator+(Complex c)const return Complex(re+c.re,im+c.im); private:double re,im;int main()Complex a=Complex(1,1)+Complex(5);couta.real()+a.im

26、ag()i是一个_。A、用于输出操作的非成员函数B、用于输入操作的非成员函数C、用于输出操作的成员函数D、用于输入操作的成员函数 C+流的输入运算符和输出运算符或=A&ch=ZB、ch=ZC、A=ch=A&ch=Z C+语言提供了三种逻辑运算符,它们是:!(逻辑非)、&(逻辑与)、|(逻辑或)。其中!为单目运算符,&和|为双目运算符。本题的选项中符合题意的是D。本题答案为D。35、已知下列语句中的x和y都是int型变量,其中错误的语句是_。A、x=y+;B、x=+y;C、(x+y)+;D、+x=y; 对于+、-这样的运算,其操作数必须为一变量,因为x+y是表达式故答案C是错误的。本题答案为C。

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

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

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

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

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

32、 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:Count()endl;return 0;标准答案为:0 4 2本题主要考查了类的静态成员的概念。在C+中可以用static关键字为类指定静态成员。静态成员为类的所有实例所共享。对于类中的静态函数,可以通过类名:函数名的方法来调用,并且该函数只能访问类中的静态数据。对于静态int型数据,在编译时将会被初始化为0,

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

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

35、义及使用。在C+中为了能够实现代码的重用,提供了模板机制。在本题中,定义了一个模板函数,其参数a,b及返回结果均为T类型。分析fun函数的可知,其功能是返回a,b中数值较小的数。在main函数中第一次调用fun时,实际上是调用了int fun(int a,int b)这个函数,故返回3,第二次调用时,实质上是调用了函数float fun(float a,float b),返回值为一个浮点型数据3.14。45、将一个函数声明为一个类的友元函数必须使用关键字_。标准答案为:friend友元函数不是当前类的成员函数,而是独立于当前类的外部函数(包括普通函数和其他类的成员函数),但它可以访问该类的所有对象的成员,包括私有成员、保护成员和公有成员。友元函数要在类定义时声明,声明时要在其函数名前加上关键字friend。该声明可以放在公有部分,也可以放在私有部分。友元函数的定义既可以在类内部进行,也可以在类外部进行。46、请按下面注释的提示,将类B的构造函数定义补充完整。请按下面注释的提示,将类B的构造函数定义补充完整。 class A int a; public: A(int aa=0)a=aa; ; class B:publ

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服