B FunNumber operator-() C FunNumber operator-(int) D int operator – (FunNumber)
(8)一棵二叉树中共有70个叶子结点于80个度为1(15)C++中的模板包括
的结点,则该二叉树重的总结点数为
A 219 B 221 C 229 A 对象模板和函数模板 B 对D 221 象模板和类模板 (9)下列叙述重正确的是 C 函数模板和类模板 D A 数据库系统是一个独立的系统,它需要操作变量模板和对象模板 系统的支持 (16)如果调用C++流进行输入输出,下面的叙述中正确 B 数据库技术的根本目标是要解决数据的共享的是 问题 A 只能借助于流对象进行输入输出 C 数据库管理系统是数据库系统 B 只能进行格式化输入输出 D 以上说法都不正确 C 只能借助于cin和cout进行输入输出 (10)下列叙述中正确的是 D 只能使用运算符 》和《 进行输入输出 A 为了建立一个关系,首先是要构造数据的逻(17)下列富豪中不属于C++关键字的是
A friend B namespace C 辑关系
continue D byte B 表示关系的二维表中各各组的每一个分量还
可以分成若干数据项 (18)下列各组的量申明中,含义相同的一组是 C 一个关系的属性名称为关系模式 A unsigned long int 和 long B signed D 一个关系可以包括多个二维表 short int 和 short (11)在函数中,可以用auto,extem,register,和static这 B unsigned short 和 short D short 四个关键字中的一个来说明变量的存储类型,如果不说int 和int 明存储类型,则默认的存储类型是 (19) 必须用一对打括号括起来的程序段是 A auto B extem C register A switch 语句中的case标号语句 D static B if 语句的分支 (12)对于一个类定义,下列叙述中错误的是 C 循环语句的循环体 A 如果没有定义拷贝构造函数,编译器将生成 D 函数的函数体 一个拷贝构造函数 (20)语句的int*p=&k定义于指针P,于这个语句等效 B 如果没有定义缺省的构造函数,编译器将一的语句序列是
A int*p;p=&k B int*p;p=k 定生成一个缺省的构造函数
C int*p;*p=&k D int*p;*p=k C 如果没有定义构造函数,编译器将生成一个
缺省的构造函数和一个拷贝构造函数 (21)关于函数重载,下列叙述中错误的是 D 如果已经定义了构造函数和拷贝构造函数, A 重载函数的函数名必须相同 编译器不会生成任何构造函数 B 重载函数必须在函数个数或类型上有所不同 (13)如果派生类以public方式继承基类,则原基类的 C 重载函数的返回值类型必须相同 protected成员和public成员在派生类中的访问类型分别 D 重载函数的函数体可以有所不同 是 (22)有如下头文件
Int f1(); A public和 public B
Static int f2(); public和protected
Class MA{ C protected 和 public D
Public protected 和 protected
Int f3(); (14)下列运算符函数中肯定不属于类FunNumber的成
Static int f4(); 员函数的是
A int operator-(FunNumber) };
16
在所描述的函数中,具有隐含的this指针的是
A f1 B f2 C f3 D f4
(23)派生类的成员函数不能访问基类的
A 共有成员和保护成员 B 共有成员 C 私有成员 D 保护成员 (24)下列关于运算符重载的描述中,正确的是 A 运算符重载为成员函数时,若参数表中五参数,重载的是一元运算符
B 一元运算符只能作为成员函数重载
C 二元运算符重载为非成员函数时,参数表中有一个参数 程序的输出结果是
D C++中可以重载所有的运算符
A val=10 const:val=20 (25)下列关于类模板的模板参数的叙述中,错误的是
B const:val=10 const:val=20 A 模板参数可以作为数据成员的类型
C const:val=10 val=20 B 模板参数可以作为成员函数的返回类型
D val=10 val=20 C 模板参数可以作为成员函数的参数类型 (29)有如下程序
D 模板函数不能作为成员函数的局部变量的类型
#include
Using namespace std; Cout< 则此操作的输出结构是 Public; A 1234 B ******1234 Part(int x=(\\):val(x){cout,,val;} C **********1234 D 1234****** -part(){cout< (27)有如下程序 Private; #include 程序的输出结果是 Class base{ A 121 B 232 C 221 D 122 Public: 17 y,int Base(int x=0){cout< Class derived : public base{ Public: Derivedrin(x=y){cout< Base val; }; Int main(){ Derived d(!); Return(); } 程序的输出结果是 A 0 B 1 C 01 D 001 (31)若有如下类定义: Classs B { Void fun(){} Protected; Double varl; Public: Void fun2(){} }; Class D:public B{ Protected; Void fun3(){} }; 已知obj是类D的对象,下列语句中不违反成员访问控制的权限的是 A obj.fun1(); B obj.var1; C obj.fun2(); D obj.fun3(); (32)有如下程序: #include Void output(){cout<<1;} Virtual void print() {cout< Class derived:public base{ Public: Void output(){cout<<2;} Void print(){cout<<’D’;} }; Int main() Base * passnew derived; Ptr->output(); 18 Ptr->print(); Delete ptr; Return(); } 程序的输出结果是 A 1B B 1D C 2B D 2D 下列是重载乘法运算的函数原型声明,其中错误的是 A myclass operator*(double,double); B myclass operator*(double,myclass); C myclass operator*(myclass,double); D myclass operator*( myclass , myclass); (35) 有如下程序: #include Virtual void show(){cout<<‖b‖;} }; Class D:public B { Public: Void show(){cout< Void fun1(B*ptr){ptr->show();} Void fun2(B &ref){ref.show();} Void fun3(B b){b.show();} Int main(){ B b,*p=new D; D d; Fun1(p); Fun2(b); Fun3(d); Return(); } 程序的输出结果是 A DBD B BBD C DBB D DBD 二、填空题(每空2分,共三十分) (1).请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。 (2).软件需求规格说明书应具有完整性、无歧视性、正确性、可验证性、可修改性等特征,最重要的是_______. (3).在两种基本测试方法中_______测试的原则之一是保证所测模板中每一个独立路径至少要执行一次。 (4).线性表的存储结构主要分为顺序存储结构和链式储存结构。队列中是一种特殊的线性表。循环队列是队列的_____存储结构。 (5).对下列二叉树进行中序遍历的结果为______. (6).在E-R图中,矩形属于______ 在有定义语句:int a=3,b=2,c=1;则表达式a (7).执行下列语句后,变量sum的值是____. Int sum =0; For (int j=I;j<=I;j++) For (int j=I;j<=I;j++) Sum++; (8).已知有函数f的定义如下: Int f(){ Static int -6; s-2; return s } 则在某程序中第二次执行函数用语句f();时,函数f的返回值是_____. (9)已知如下程序得输出结果时23,请将划线处缺失得部分补充完整。 #include Void print() cout{cout<<23;} } Int main(){ Myclass*p=new myclass(); ______print(); Return(); Class sample{ Public: Sample(){} _________ } (14)请将如下程序补充完整,使得输出结果为bbaa #include _____{cout<<‖aa‖;} }; Class B :public A{ Public: ~B(){cout<<‖bb‖;} }; Int main (){ B*p=new B; Delete p; Return(); } (15)请将下列栈类stack补充完整 Class stack{ Private; Int plist[100]; //int 数组,用于存放栈的元素 Int top; //栈顶元素(数组下标) Public: Stack():top(0){} Void push(sons int &item); //新元素item压入栈 Int pop(void); //将栈顶元素弹出栈 }; Void stack::pbsh(const int &item){ If (top ==99) //如果栈满,程序结束 Exit(1); Top++; //栈顶指针增1 ___【15】____; } 19 Int stack::pop(){ If (top<0) //如果栈空,程序结束 Exit(1); Return plish[top--]; } 参考答案 1-10:DBCAACCABB 11-20:ABDDCADBDA 21-30:CCCADBACDC 31-35:CDAAD 1.无歧性 2.逻辑覆盖 3.链式 4.ACBDFHGPE 5.实体 6.2 7.6 8.4 9.(*p) 10.ABBA 11.void Base::fun() 12.virtual display()==0; 14.-A() 15.pList[top]=item 2008年9月计算机等级考试 二级C++笔试试题 一、选择题(每小题2分,共70分) (1)一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是(B)。 A)123456ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA (2)下列叙述中正确的是(D)。 A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D)循环队列中元素的个数是由队头指针和队尾指针共同决定 20 (3)在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是(C)。 A)O(n) B)O(n2) C)O(log2n) D)O(nlog2n) (4)下列叙述中正确的是(A)。 A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间 (5)数据流图中带有箭头的线段表示的是(D)。 A)控制流 C)模块调用 B)事件驱动 D)数据流 (6)在软件开发中,需求分析阶段可以使用的工具是(B)。 A)N-S 图 B)DFD 图(数据流图) C)PAD 图 D)程序流程图 (7)在面向对象方法中,不属于―对象‖基本特点的是(A)。 A)一致性 B)分类性 C)多态性 D)标识唯一性 (8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(B)。 A)一对一 B)一对多 C)多对一 D)多对多 (9)在数据管理技术发展的三个阶段中,数据共享最好的是(C)。 A)人工管理阶段 B) 文件系统阶段 C)数据库系统阶段 D) 二个阶段相同 (10)有三个关系 R、S 和 T 如下: R S T A B B C A B C m 1 1 3 m 1 3 n 2 3 5 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为(D)。 A)笛卡尔积 B)交 C)并 D)自然连接 (11)在下列原型所示的 C++函数中,按―传值‖方式传递参数的是(A)。 A)void f1(int x); B)void f2(int*x); C)void f3(const int*x); D)void f4(int&x); (12)在 C++中,编译系统自动为一个类生成缺省构造