全国计算机等级考试无纸化真考题库试卷(2)二级C++(考试时间l20分钟,满分100分)一、选择题(每小题1分。
共40分)(1)一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
A)12345ABCDEB)EDCBA54321C)ABCDEl2345D)5432lEDCBA(2)下列叙述中正确的是()。
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
A)O(n)B)O(n2)C)O(1092n)C)0(n1092n)(4)下列叙述中正确的是()。
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构c)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是()。
A)控制流B)事件驱动C)模块调用D)数据流(6)在软件开发中,需求分析阶段可以使用的工具是()。
A)N—s图B)DFD图C)PAD图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)下列语句中,错误的是()。
A)const int buffer=256;B) const double*point;C)int const buffer=256;D)double*eonst point:(12)if语句的语法格式可描述为:格式l:if(<条件>)<语句>或格式2:if(<条件>)<语句l>else<语句2>关于上面的语法格式,下列表述中错误的是()。
A)<条件>部分可以是一个if语句,例如if(if(a==0)…)…B)<语句>部分可以是一个if语句,例如if(…)if(…)…c)如果在<条件>前加上逻辑非运算符!并交换<语句l>和<语句2>的位置,语句功能不变D)<语句>部分可以是一个循环语句,例如if(…)while(…)…(13)有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},* P=a;则数值为9的表达式是( )。
A)*P+9B)木(P+8)C)*P+=9D)P+8(14)有如下程序段:int i=0,J=1;int&r=i;//①r=j;//②int*P=&i;//⑧*P=&r;//④其中会产生编译错误的语句是()。
A)④B)③C)②D)①(15)下列字符串中。
不可以用做c++标识符的是()。
A)y_2006B)_EST_HC)ReturnD)switch(16)为了取代c中带参数的宏,在c++中使用()。
A)重载函数B)内联函数C)递归函数D)友元函数(17)通过运算符重载,可以改变运算符原有的()。
A)操作数类型B)操作数个数C)优先级D)结合性(18)在函数中,可以用aut0、extem、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是()。
A)autoB)externC)registerD)static(19)下列运算符函数中肯定不属于类FunNumber的成员函数的是()。
A)int operator一(FunNumber);B)FunNumber operator一();C)FunNumber operator一(int);D)int operator一(FunNumber,FunNumber);(20)若有下面的函数调用:fun(fl+b,3,max(n一1,b))则fun的实参个数是()。
A)3B)4C)5D)6(21)关于运算符重载,下列表述中正确的是()。
A)c++已有的任何运算符都可以重载B)运算符函数的返回类型不能声明为基本数据类型C)在类型转换符函数的定义中不需要声明返回类型D)可以通过运算符重载来创建c++中原来没有的运算符(22)有如下程序:#nclude<iostream>using namespace std;int main(){void function(double val);double val;function(val);cout<<val;return 0;}void function(double val)} val=3;}编译运行这个程序将出现的情况是()。
A)编译出错,无法运行B)输出:3c)输出:3.0D)输出一个不确定的数(23)下列情况中,不会调用拷贝构造函数的是()。
A)用一个对象去初始化同一类的另一个新对象时B)将类的一个对象赋值给该类的另一个对象时c)函数的形参是类的对象,调用函数进行形参和实参结合时D)函数的返回值是类的对象,函数执行返回调用时(24)以下关键字不能用来声明类的访问权限的是()。
A)publicB)staticC)protectedD)private(25)由于常对象不能被更新,因此()。
A)通过常对象只能调用它的常成员函数B)通过常对象只能调用静态成员函数C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数(26)下列有关继承和派生的叙述中,正确的是()。
A)如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员B)派生类的成员函数可以访问基类的所有成员C)基类对象可以赋值给派生类对象D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类(27)在公有继承的情况下,允许派生类直接访问的基类成员包括()。
A)公有成员B)公有成员和保护成员C)公有成员、保护成员和私有成员D)保护成员(28)有如下程序:#include<iostream>using namespace std;classBase{public:void fun(){__________________cout<<”Base::fun”<<endl;}};class Derived:public Base{public:voidfun(){cout<<”Derived::fun”<<endl:}};int main(){Derived d;d.fun();return 0;}已知其执行后的输出结果为:Base::funDerived::fun则程序中下画线处应填人的语句是()。
A)Base.fun();B)Base::fun();C)Base—>fun();D)fun();(29)有如下程序:#include<iostream>using namespace std;class MyClass{public:MyClass(){cout<<’A’;}MyClass(char C){cout<<C;}~MyClass(){cout<<’B’;}};int main(){MyClass pl,+p2;p2=new MyClass(’X’);delete p2;return 0;}执行这个程序的输出结果是()。
A)ABXB)ABXBC)AXBD)AXBB(30)有如下程序:#include<iostream>using namespace std;int i=1;class Fun{public:static int i;int value(){return i—l;}int value()const{return i+1;}};int Fun::i=2;int main(){int i=3;Fun funl;const Fun fun2:__________________return 0;}若程序的输出结果是:123则程序中下画线处遗漏的语句是()。
A)cout<<funl.value()<<Fun::i<<fun2.value();B)tout<<Fun::i<<funl.value()<<fun2.value();C)cout<<funl.value()<<fuIl2.value()<<Fun::i:D)eout<<fun2.value()<<Fun::i<<funl.value();(31)有如下程序:#include<iostream>using namespace std;class Obj{static int i;public:Obj(){i++;}一Obj(){i一一;}static int getVal(){return i;}};int Obj::i=0:void f(){Obj ob2;cout<<ob2.getVal();}int main(){Obj obl;f();Obj}ob3=new Obj;cout<<ob3一>getVal();delete ob3;cout<<Obj::9etVal();return 0;}执行这个程序的输出结果是()。
A)232B)231C)222D)221(32)有如下程序:#include<iostream>using namespace std;class Pair{int m,n;public:Pair(int j,int k):m(j),n(k){} int get(){return m;}int get()const{return m+n;}};int main(){Pair a(3,5);const Pair b(3,5);tout<<a.get()’<<b.get();return U:}执行这个程序的输出结果是()。