全国计算机等级考试无纸化真考题库试卷(5)二级C++(考试时问120分钟,满分100分)一、选择题(每小题1分。
共40分)(1)下列叙述中正确的是( )。
A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性(2)下列叙述中正确的是( )。
A)栈是一种先进先出的线性表B)队列是一种后进先出的线性表C)栈与队列都是非线性结构D)以上三种说法都不对(3)软件测试的目的是( )。
A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误(4)在软件开发中,需求分析阶段产生的主要文档是( )。
A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书(5)软件生命周期是指( )。
A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(6)面向对象方法中,继承是指( )。
A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制(7)层次型、网状型和关系型数据库划分原则是( )。
A)己录长度B)文件的大小C)联系的复杂程度D)数据之间的联系方式(8)一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。
A)一对一B)一对多C)多对多D)多对一(9)数据库设计中反映用户对数据要求的模式是( )。
A)内模式B)概念模式C)外模式D)设计模式(10)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是( )。
A)自然连接B)差C)交D)并(11)下列符号中能够作为C++标识符的是( )。
A)CoflstB)2aC)_shapeD).Count(12)已知枚举类型声明语句为:enum COl,OR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};则下列说法中错误的是( )。
A)枚举常量YELLOW的值为1B)枚举常量RED的值为6C)枚举常量BLACK的值为10D)枚举常量WHITE的值为1(13)执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1;i一=2) tout<<’*’:A)24B)25C)26D)50(14)有如下定义:int a[5]={1,3,5,7,9},* P=a;下列表达式中不能得到数值5的是( )。
A)a[2]B)a[3]C)*(P+2)D)+P+4(15)下列语句中错误的是( )。
A)Const int a;B)Const int a=10;C)Const int * point=0;D)Const int * point=new int(10);(16)已知函数FA调用函数FB,若要把这两个函数定义在同一个文件中,则( )。
A)FA必须定义在FB之前B)FB必须定义在FA之前C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前(17)下列关于运算符函数的描述中,错误的是( )。
A)运算符函数的名称总是以operator为前缀B)运算符函数的参数可以是对象D)在表达式中使用重载的运算符相当予调用运算符重载函数(18)为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。
A)内联函数B)重载函数C)递归函数D)函数模板(19)若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。
A)Data+(Data);B)Data operator+(Data);C)Data+operator(Data);D)operator+(Data,Data);(20)已知函数f的原型是void f(int*a,long&b);,变量vl、v2的定义是:int vl;lon9:v2;下列调用语句中正确的是( )。
A)f(vl,&v2);B)f(vl,v2);C)f(&vl,&v2);D)f(&vl,v2);(21)已知Value是一个类,value是Value的一个对象。
下列以非成员函数形式重载的运算符函数原型中,正确的是( )。
A)Value operator+(Value v,int i);B)Value operator+(Value v=value,int i);C)Value operator+(Value v,inl:i=0):D)Value operator+(Value v=vallle,int i=0);(22)下列关于运算符重载的描述中,正确的是( )。
A)运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符B)一元运算符只能作为成员函数重载c)二元运算符重载为非成员函数时,参数表中有一个参数D)c++中可以重载所有的运算符(23)下列有关类成员的叙述中,正确的是( )。
A)友元函数是类的成员函数B)类成员的默认访问权限是私有的c)类成员函数必须声明为公有的D)类的静态数据成员不能是常成员(24)有如下类定义:class Point{private:static int how_many;};___________how_many=0;要初始化Point类的静态成员how_many,下画线处应填入的内容是( )。
A)intB)static intC)int Point::D)static int Point::(25)有如下头文件:int fl();static int f2();class MA{public:int f3();static int f4();};在所描述的函数中,具有隐含的this指针的是( )。
A)flB)f2C)f3D)f4(26)下列有关类继承的叙述中,错误的是( )。
A)继承可以实现软件复用B)虚基类可以解决由多继承产生的二义性问题c)派生类构造函数要负责调用基类的构造函数D)派生类没有继承基类的私有成员(27)在下列关键字中,不能用来表示继承方式的是( )。
A)privateB)staticC)publicD)protected(28)有如下两个类定义:class XX{private:double xl;protected:double x2;public:double x3;};class YY:protected XX{private:double yl;protected:double y2;public:double y3;在类YY中保护成员变量的个数是( )。
A)1B)2C)3D)4(29)有如下类定义:class MyClass{int value;public:MyClass(int n):value(n){}int getValue()const{retum value;}};则类MyClass的构造函数的个数是( )。
A)1个B)2个c)3个D)4个(30)有如下类和对象的定义:class Constants{public:static double getPI(){return 3.1416;}};Constants constants:下列各组语句中,能输出3.1416的是( )。
A)cout<<constants一>getPI();和cout<<Constants::getPI();B)cout<<constants.getPI();和cout<<Constants.getPI();C)cout<<constants一>getPI();和cout<<Constants一>getPI();D)cout<<constants.getPI();和cout<<Constants::getPI();(31)有如下程序:#include<iostream>using namespace std;class VAC{public:intf()const{return 3;}int f(){retum 5;}};int main(){VAC vl;const VAC v2;cout<<vl.f()<<v2.f();return 0;}执行这个程序的输出结果是( )。
A) 53B)35C)55D)33(32)有如下程序:#include<iostream>using namespace std;class MyClass{public:MyClass(int i=0){cout<<1;}MyClass(const MyClass&x){cout<<2;}MyClass&operator=(const MyClass&x){cout<<3;retum$this;} ~MyClass()}cout<<4;}};int main(){MyClass objl(1),obj2(2),obj3(objl);retum 0;{执行这个程序的输出结果是( )。
A)112444B)11114444C)121444D)11314444(33)有如下类声明:class Base{protected:int amount;public:Base(int n=0):amount(n){}int getAmount()const{retum amount;}};class Derived:public Base{protected:int value;public:Derived(int m,int n):value(m),Base(n){}int getData()const{return value+amount;}}:已知x是一个Derived对象,则下列表达式中正确的是( )。
A)x.value+X.getAmount()B)x.getData()一x.getAmount()C)x.getData()一x.amountD)x.value+X.amount(34)有如下程序:#include<iostream>using namespace std;class AA{int k;protected:int n;void setK(int k){this一>k=k;}public:void setN(int n){this一>n=n;}};class BB:public AA{/*类体略*/};int main()}BB X;X.n=1;//1X.setN(2);//2X.k=3;//3X.setK(4);//4return 0;}在标注号码的四条语句中正确的是( )。