全国计算机等级考试(二级c++)历年真题及答案

上传人:新** 文档编号:575388047 上传时间:2024-08-18 格式:PDF 页数:29 大小:1.28MB
返回 下载 相关 举报
全国计算机等级考试(二级c++)历年真题及答案_第1页
第1页 / 共29页
全国计算机等级考试(二级c++)历年真题及答案_第2页
第2页 / 共29页
全国计算机等级考试(二级c++)历年真题及答案_第3页
第3页 / 共29页
全国计算机等级考试(二级c++)历年真题及答案_第4页
第4页 / 共29页
全国计算机等级考试(二级c++)历年真题及答案_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《全国计算机等级考试(二级c++)历年真题及答案》由会员分享,可在线阅读,更多相关《全国计算机等级考试(二级c++)历年真题及答案(29页珍藏版)》请在金锄头文库上搜索。

1、(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是公共基础知识及 C+语言程序设计A)内模式B)外模式C)概念模式D)逻(考试时间 90 分钟,满分 100)分)辑模式一、选择题((1)(35)每小题 2 分,共 70 分)(11)关于面向对象的程序设计方法,下列说法正确的是下列各题 A) 、B)、C)、D)四个选项中,只有一个A)“封装性”指的是将不同类型的相关数据组合在一选项是正确的,请将正确选项涂写在答题卡相应位置上,起,作为一个整体进行处理答在试卷上不得分.B)“多态性”指的是对象的状态会根据运行时要求自动(1) 下面叙述正确的是变化A)算法的执行效率与数据的存储结构无关

2、C)基类的私有成员在派生类的对象中不可访问,也不B)算法的空间复杂度是指算法程序中指令(或语句 )占内存空间的条数D)在面向对象的程序设计中,结构化程序设计方法C)算法的有穷性是指算法必须能在执行有限个步骤仍有着重要作用之后终止(12)判断字符型变量 ch 是否为大写英文字母,应使用表D)以上三种描述都不对达式(2)以下数据结构中不属于线性数据结构的是A ) ch=A & ch=ZB ) ch=ZA)队列B)线性表C)二叉树D)C ) A=A ch =Z栈(13)已知下列语句中的 x 和 y 都是 int 型变量, 其中错误(3)在一棵二叉树上第 5 层的结点数最多是的语句A)8B)16C)3

3、2D)15A ) x=y+;B ) x=+y;C ) (x+y)+;D )(4)下面描述中,符合结构化程序设计风格的是+x=y;A)使用顺序、选择和重复(循环)三种基本控制结构(14)执行语句序列表示程序的控制逻辑int n;B)模块只有一个入口,可以有多个出口cin n;C)注重提高程序的执行效率switch(n)D)不使用 goto 语句case 1:(5)下面概念中,不属于面向对象方法的是case 2: cout 1;A)对象B)继承C)类D)case 3:过程调用case 4: cout 2; break;(6)在结构化方法中,用数据流程图(DFD)作为描述工default: cout

4、 C)定义模块算法D)定义需求并建立系统模型using namespace std;(8)数据库系统的核心是int main()A)数据模型C)软件工具B)数据库管理系统D)数据库char a = ”Hello, World”;(9)下列叙述中正确的是char ptr = a;A)数据库系统是一个独立的系统 ,不需要操作系统的while (ptr)支持B)数据库设计是指设计数据库管理系统if (*ptr = a *ptr = z)C)数据库技术的根本目标是要解决数据共享的问题cout char(ptr + A -a);D)数据库系统中,数据的物理结构必须与逻辑结构else cout int i

5、 = 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,(20) 已知函数 f 的原型是:void f (int *a, long &b) ; 变量 v1、v2 的定义是:int v1;long v2; ,正确的调用语句是A) f(v1, v2);B) f(v1, v2);C) f(v1, v2);D)(f v1, &v2) ;(21)有以下类定义class MyClass2pu

6、blic:MyClass()cout1;则执行语句 MyClass a, b2 , p2;后,程序的输出结果是A)11B)111C)1111D)11111(22)关于友元,下列说法错误的是A)如果类 A 是类 B 的友元,那么类 B 也是类 A 的友元B)如果函数fun()被说明为类A 的友元,那么在 fun()中可以访问类 A 的私有成员C)友元关系不能被继承D)如果类 A 是类 B 的友元,那么类 A 的所有成员函数都是类 B 的友元(23)关于动态存储分配,下列说法正确的是A)new 和 delete 是 C+语言中专门用于动态内存分配和释放的函数B)动态分配的内存空间也可以被初始化C)

7、当系统内存不够时 ,会自动回收不再使用的内存单元,因此程序中不必用 delete 释放内存空间D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用 new(24)有以下程序#includeiostreamusing 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;i

8、nt main()MyClass obj1(10), obj2(0);MyClass obj3(obj1);obj2=fun(obj3);return 0;程序执行时,MyClass 类的拷贝构造函数被调用的次数是A)5B)4C)3D)2(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的A)公有成员和私有成员B)私有成员和保护成员C)公有成员和保护成员D)私有成员、保护成员和公有成员(26)在 C+中用来实现运行时多态性的是A)重载函数B)析构函数C)构造函数D)虚函数(27)一个类可以同时继承多个类,称为多继承。下列关于多继承和虚基类的表述中,错误的是A)每个派生类的构造函数

9、都要为虚基类构造函数提供实参B)多继承时有可能出现对基类成员访问的二义性问题C)使用虚基类可以解决二义性问题并实现运行时的多态性D)建立最派生类对象时, 虚基类的构造函数会首先被调用(28)在一个类体的下列声明中, 正确的纯虚函数声明是A) virtual void vf()=0;B) void vf(int)=0;C) virtual int vf (int) ;D) virtual void vf(int) (29)在下面的运算符重载函数的原型中,错误的是A) Volume operator (double, double);B) double Volume::operator- (dou

10、ble);C) Volume Volume: :operator (Volume);D) Volume operator (Volume, Volume);(30)下列是模板声明的开始部分,其中正确的是A) templateB) templateclass T1,T2C) template(31)执行语句序列ofstream outfile(”DATA.DAT );if(。 。 。) cout 是一个()A)用于输出操作的非成员函数B)用于输入操作的非成员函数C)用于输出操作的成员函数D)用于输入操作的成员函数(33)有以下类定义class Point public:Point(int x =

11、 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; pt。Print();C) Point pt; pt。Move(l, 2) ;D) const Point pt; pt。Move(l, 2);(34)有以下类定义class My

12、Classprivate:int id;char gender,char *phone;public:MyClass():id(0),gender(),phone(NULL) MyClass(int no, char ge=, char ph=NULl。) id=no;gende=ge;phone=ph; ;下列类对象定义语句中错误的是A) MyClass myObj;B) MyClass myObj(11, 13301111155”) ;C) MyClass myObj(12, m);D) MyClass myObj(12);(35)有以下程序#include using namespace

13、 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(l, 1) + Complex(5);cout a。real() + a。ima

14、g() i using namespace std;int main()int i = 5;int r = i; r = 7;cout i using namespace std;class Test public:Test() cnt+; Test() cnt; static int Count() return cnt;private:static int cnt;;int Test::cnt = 0;int main()cout Test: :Count0 ;Test tl, t2;Test pT3 = new Test;Test* pT4 = new Test;cout Test::C

15、ount0 ;delete pT4;delete pT3;cout Test:Count() endl;return 0;(12)下面是用来计算 n 的阶乘的递归函数,请将该函数的定义补充完整.(注:阶乘的定义是 n!=n*(n1)*.。 。21)unsigned fact(unsigned n)if ( n= 1)return 1;return 12 ;(13)下列程序的输出结果是13。include using namespace std;templatetytename TT fun(T a, T b) return (a=b)?:b;int main()cout fun(3, 6) ,

16、 fun (3。14F,6.28F) name 等价的表达式是14。(15)下列程序的输出结果是15。include using namespace std;class base public:int n;base(int x) n = x;virtual void set(int m) n = m; cout n ; ;class deriveA:public base public:deriveA(int x):base(x) void set(mt m) n += m; cout n ; ;class deriveB:public base public:deriveB(int x) :

17、base(x) void set(int m) n +=m; cout n set(2);return 0;52004 年 9 月全国计算机等级考试二级笔试试卷公共基础知识及 C+语言程序设计答案及评分标准选择题((1)-(35)每小题 2 分,共 70 分)(1) C(2) C(3) B(4) A(5) D(6) B(7) D(8) B(9) C(10)A(11)D(12)D(13)C(14)D(15)A(16)A(17)D(18)B(19)D(20)C(21)B(22)A(23)B(24)B(25)C(26)D(27)C(28)A(29)A(30)C(31)C(32)B(33)D(34)B

18、(35)B二、填空题(每空 2 分,共 30 分)(1)1 时间(2) 2 存储结构或物理结构或物理存储结构(3)3 黑盒或黑箱(4)4一对多或1 对多或I:M或I:N(其中 M、N 大小写均可)(5)5 投影(6) 6 60(7) 7 编译(8)8 friend(9) 9 A(aa),c(aa+1)或c(aa+1),A(aa)(10)10 7(11) 11 042(12)12nfact(n1)(13)13 3,3。14(14) 14 (p).name(15)15 252010 年 3 月计算机等级考试二级C+笔试试题一、选择题(每小题2 分,共 70 分)下列各题 A) 、B)、C)、D)四

19、个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)对长度为 n 的有序链表进行查找, 最坏情况下需要的比较次数为 nB)对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n log2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系

20、统软件和支撑软件(或工具软件)。下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD 图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制

21、语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系 R 和 T 如下:则由关系 R 得到关系 T 的操作是6A)选择B)投影C)交D)并(11)下列关于函数的描述中,错误的是A)函数可以没有返回值B)函数可以没有参数C)函数可以是一个类的成员D)函数不能被定义为模板(12)若 MyClass 是一个类名,且有如下语句序列MyClass c1,*c2;MyClass c3=n

22、ew MyClass;MyClass &c4=c1;上面的语句序列所定义的类对象的个数是A)1B)2C)3D)4(13)下列关于继承方式的描述中,错误的是A)如果不显式地指定继承方式,缺省的继承方式是私有(private)B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员(14)将前缀运算符“-”重载为非成员函数,下列原型中,能正确用于类中说明的是A)Decr operator -(int);B)Decr operator -( Decr&,int);C

23、)friend Decr operator (Decr&);D)frlend Decr operator-(Decr&,int);(15)若 MyTemp 是一个只有一个虚拟类型参数的类模板,且有如下语句序列MyTempp2;MyTempp32;编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是A)1B)2C)3D)0(16)在 C+中,cin 是个A)类B)对象C)模板D)函数(17)在下列字符中,不允许作为C+标识符的是A)bB)BC)_D)2(18)下列叙述中,错误的是A)false 是一个逻辑型常量B)b是一个字符型常量C)365 是一个 int 常量D)3.141

24、5926 是一个 double 常量(19)若 x 和 y 是程序中的两个整型变量,则下列if 语句中正确的是A)if(x=0) y=1; else y=2;B)if(x=0) then y=1 else y=2;C)if(x=0) y=1 else y=2;D)if x=0 y=1; else y=2;(20)要定义整型数组 x,使之包括初值为 O 的三个元素,下列语句中错误的是A)int x3=0,0,0;B)int x=0;C)static int x3=0;D)int x=0,0,0 ;(21)关于函数中的返回类型 ,下列表述中错误的是A)返回类型中有可能包含关键字intB) 返回类型

25、中有可能包含自定义标识符C)返回类型中有可能包含字符*D)返回类型中可能包含(22) 要定义一个引用变量 p, 使之引用类 MyClass的一个对象,正确的定义语句是A)MyClass p=MyClass;B)MyClass p=new MyClass;C)MyClass &p=new MyClass;D) MyClass a,&p=a;(23)有如下两个类定义class XXprivate:double x1;protected:double x2;public:double x3;;class YY:protected XXprivate:7double y1;protected:doub

26、le y2;public:double y3;;在类 YY 中保护成员变量的个数是A)1B)2C)3D)4(24)下列关于运算符重载的描述中,错误的是A)可以通过运算符重载在C+中创建新的运算符B)赋值运算符只能重载为成员函数C)运算符函数重载为类的成员函数时,第一操作数是该类对象D)重载类型转换运算符时不需要声明返回类型(25)下列关于类模板的描述中,错误的是A)类模板的成员函数都是模板函数B)可以为类模板参数设置默认值C)类模板描述了一组类D)类模板中只允许有一个类型参数(26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是A)setprecisionB)setwC)setfill

27、D)showpoint(27)下列程序段中包含 4 个函数,其中具有隐含 this 指针的是int fun1();class Testpublic:int fun2();friend int fun3();static int fun4();A)fun1B)fun2C)fun3D)fun4(28)有如下程序includeusing namespace std;class Testpublic:Test() Test(const Test t) cout1;;Test fun(Test &u) Test t=u; return t;int main()Test x,y; x=fun(y); re

28、turn 0;运行这个程序的输出结果是A)无输出B)1C)11D)111(29)有如下程序#includeusing namespace std;class Apublic:A(int i=0) :r1(i) void print() coutER1void print () const coutC R1*R1 ; pvoid print (int x)cout P R1*R1*R1 ; private:int r1;;int main() A a1;const A a2(4);a1.print(2);a1。print() ;return 0;运行时的输出结果是A)P8E4B)P8C16C)P

29、0E4D)P0-C16-(30)下列代码声明了 3 个类class Person;class Student:public Person;class Undergraduate:Student ;下列关于这些类之间关系的描述中,错误的是A)类 Person 是类 Undergraduate的基类B)类 Undergraduate 从类 Student 公有继承C)类 Student 是类 Person 的派生类D)类 Undergraduate是类 Person 的派生类(31)有如下程序includeusing namespace std;8Class Basepublic:Base(int

30、 x=0):valB(x) coutBase() coutprivate:int valB;;class Derived:public Basepublic:Derived(int x=0,int y=0):Base(x) ,valD(y)coutVALD; pDerived() coutVALD; pprivate:int valD;;int main() Derived obj12(2,3);retuen 0;运行时的输出结果是A)2332B)2323C)3232D)3223(32)下面是类 Shape 的定义:class Shapepublic:virtual void Draw()=0

31、;;下列关于 Shape 类的描述中,正确的是A)类 Shape 是虚基类B)类 Shape 是抽象类C)类 Shape 中的 Draw 函数声明有误D)语句“Shape s;”能够建立 Shape 的一个对象 s(33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是A)MyClock operator + (MyClock,long);B)MyClock operator + (MyClock,MyClock);C)MyClock operator + (long,long);D)MyClock operator + (long,MyClock);(34) 打开文件时可单独或组合使

32、用下列文件打开模式ios_base: :app ios_base:binaryios_base: :in ios_base::out若要以二进制读方式打开一个文件 ,需使用的文件打开模式为A)B)C)D)(35)有如下程序:includeusing namespace std;Class Bpublic:B(int xx) :x(xx) +cout; x+=10;virtual void show() constcoutCOUNT _ XENDL; pprotected:static int count;private:int x;class D:public Bpublic:D(int xx

33、, int yy):B(xx), y (yy)+count;y+=100; virtual void show() constcoutCOUNT _Y ENDL;private:int y; ;int B::count=0;int main()B *ptr=new D(10,20);ptr-show();delete ptr;return 0;运行时的输出结果是A)1_120B)2_120C)1_20D)2_20二、填空题(每空 2 分,共 30 分)请将每一个空的正确答案写在答题卡【l】【15】序号的横线上,答在试卷上不得分。(1) 一个队列的初始状态为空。 现将元素 A,B,C, D,E,

34、F,5,4,3,2,1 依次入队,然后再依次退队,则元素退队的顺序为 【1】 .(2)设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 【2】 个元素。9(3)设二叉树如下:对该二叉树进行后序遍历的结果为 【3】 。(4)软件是 【4】 、数据和文档的集合。(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号, 则关系模式选课可定义为: 选课 (学号,【5】 ,成绩)。(6)若 x 和 y

35、是两个整形变量,在执行了语句序列x=5; y=6; y+=x-;后,x+y 的值为 【6】 。(7)在执行语句序列int i=0; do i+; while(i*i10);时,do 后面的循环体语句i+被执行的次数为【7】 .(8)有如下的函数定义:int Xfun(int a, int n)int x=a;for(int pa=a+1; paif(pax) x=*pa;return x;若执行了语句int x5=23,46,78,55,16 ;后,通过表达式 Xfun(x,5)调用该函数, 则得到的返回值为 【8】 。(9)有如下的函数定义:int Xfun(int x)int y=x;in

36、t x=10; y+=x;return x+y;通过表达式 Xfun(5)调用该函数,则得到的返回值为 【9】 。(10)假定 Xcs 是一个类,该类中一个成员函数的原型为“Xcs abc();,则在类外定义时对应的函数头为【10】 。(11)请将下面的类 Date 的定义补充完整,使得由语句Date FirstDay;定义的对象 FirstDay 的值为 2010 年 1 月 1 日。class Datepublic:Date( 【11】 ):year(y),month(m),day(d) private:int year,month,day; /依次表示年、月、日 ;(12)请将下面的程序

37、补充完整,使得程序输出“飘是张娜的书。#includeusing namespace std;class Bookpublic:Book(char *str) strcpy(title,str); 【12】 void PrintInfo() coutTITLEENDL; pprotected:char title50;;class MyBook:public Bookpublic:MyBook(char *s1,char *s2=张娜”) :【13】 strcpy(owner,s2);virtual void PrintInfo() cout TITLE是OWNER”的书”ENDL priva

38、te:char owner10 ;;int main()Book prt=new MyBook(”飘”)prtPrintInfo();return 0;(13)在有理数类 Rational 中重载插入运算符,以便按 a/q 形式输出。请将 运算符函数的定义补充完整。class Rationalpublic:Rational(int aa, int qq):a(aa) ,q(qq) friend【14】operator (ostream &out, Rational x)return (out X。A p ?private:int a,q;;(14) 下面的函数定义是某函数模板能够生成的函数实例

39、int square(int n) return nn;double square(double n) return nn;由此可知,该函数模板的定义是 【15】 。102007 年 4 月计算机等级考试 C+考试及答案一、选择题(每小题 2 分,共 70 分)下列各题 A) 、B) 、C) 、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是 。A)算法的效率只与问题的规模有关, 而与数据的存储结构无关.B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的。D)算法的时间复杂度与空间复杂度

40、一定相关.(2)在结构化程序设计中,模块划分的原则是 。A) 各模块应包括尽量多的功能B) 各模块的规模应尽量大C)各模块之间的联系应尽量紧密D) 模块内具有高内聚度,模块间具有低耦合度(3)下列叙述中正确的是 .A)软件测试的主要目的是发现程序中的错误.B)软件测试的主要目的是确定程序中错误的位置。C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)软件测试是证明软件没有错误(4) 下面选项中不属于面向对象程序设计特征的是 。A)继承性 B)多态性 C)类比性 D)封装性(5) 下列对列的叙述正确的是 。A) 队列属于非线性表B) 队列按”先进后出”的原则组织数据C)队列

41、在队尾删除数据D) 队列按“先进先出”原则组织数据(6)对下列二叉树A)DYBEAFCZX B)YDEBFZXCA C)ABDYECFXZ D)ABCDEFXYZ(7)某二叉树中有 n 个度为 2 的结点则该二叉树中的叶子结点数为A)n+1 B )n1 C)2n D)n/2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 .A)井 B)交 C)投影 D)笛卡儿乘积(9) 在 ER 图中, 用来表示实体之间是联系的图形是 。A) 矩形 B)椭圆形 C)菱形 D)平行四边形(10)下列叙述中错误的是 。A) 在数据库系统中,数据的物理结构必须与逻辑结构一致.B)数据库技术的根本

42、目标是要解决数据的共享问题C)数据库设计是指在已有数据库管理系统的基础上建立数据库D)数据库系统需要操作系统的支持(11)为了取代 C 中带参数的宏,在 C+中使用A)重载函数 B)内联函数 C)递归函数 D)友元函数(12)下列关于类定义的说法中,正确的是A)类定义中包括数据成员和函数成员的声明B)类成员的缺省访问权限是保护的C) 数据成员必须被声明为私有的D)成员函数只能在类体外进行定义(13)下列关于派生类构造函数和析构函数的说法中 ,错误的是A)派生类的构造函数会隐含调用基类的构造函数B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数C)在建立派生类对象时,先调用基类的构造函数

43、,再调用派生类的构造函数D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数(14)通过运算符重载,可以改变运算符原有的A)操作数类型 B)操作数个数 C)优先级 D)结合性(15)有如下函数模板:template class T T souare(T x) (retumx x ;)基中 T 是A)函数形参 B)函数实参 C)模板形参 D)模板实参(16)使用输入输出操作符setw,可以控制A)输出精度 B)输出宽度 C)对齐方式 D)填充字符(17)下列字符串中,不可以用作C+标识符的是A)y_2006 B)_TEST_H C)Retum D)switch(18)字面常量 4

44、2、4.2、42L 的数据类型分别是A)long、double int B)long、float、intC)int、double、long D)int、float、long(19)执行下列语句段后,输出字符“*”的个数是for(int i =50;I1; i )cout”A)48 B)49 C)50 D)51(20)有如下程序段inti =0, j=1;intr=i ; / r =j; /intp=&i ; /p=r ; /基中会产生编译错误的语句是A) B) C) D) (21)有如下函数定义:void func (int a,intb) a+; b+;若执行代码段:intx=0 ,y=11

45、1func(x,y) ;则变量 x 和 y 值分别是A)0 和 1 B)1 和 1 C)0 和 2 D)1 和 2(22)有如下程序:includeiostreamusing namespace std;class Apublicstatic int a;void init() a=1;A(int a=2) init();a+;;int A: ;a=0A obj;Int main()coutobj。a;retum0;运行时输出的结果是A)0 B)1 C)2 D)3(23)下列有关继承和派生的叙述中,正确的是A) 派生类不能访问基类的保护成员B)作为虚基类的类不能被实例化C)派生类应当向基类的构

46、造函数传递参数D)虚函数必须在派生类中重新实现(24)下列运算符中,不能被重载的是A)& B) != C). D)+(25)下列函数模板的定义中,合法的是A) template typename TTabs(T x)return x 0 x: x;B)template class Tabs(Tx) retumx0 x;x; C)template Tclass T.abs(T x) retum x0 x;x;D)template T abs(T x)returm x0 -x;x;(26)在语句 cin data;中,cin 是A)C+的关键字 B)类名C)对象名 D)函数名(27)有如下程序:#

47、includeiostreamusing namespace std;class test private:int a;public:test()cout”constructor”endl; test(int a)cout a endl;test(const test_test)a=_testa;cout”copy constructor”endl;test()cout”destructor”endl;int main()test A(3)return0;运行时输出的结果是A)3B)constructordestruclorC)copy constructorD)3dstructor dest

48、ruclor(28)若有如下类声明class My Class public:MyClass() cout1; ;执行下列语句MyClass a,b2 ,*P2;以后,程序的输出结果是A)11 B)111 C)1111 D11111(29)有如下程序:#includeusing namespace std;class point public:static int number;public:point()number+;point()number;imt point::number=0;void main()pointptr;printA,B;point*ptr_point=new poin

49、t3;ptr=ptr_point;pointC;cout point: :numberusing namespace std;class Baseint a,b;public:Bace(int x ,int y) a=x; b=y;Void show() couta, bendl;clsaa Derived:public Base int c ,d;public:Derived (int x, int y,int z,int m) :Base (x,y) c=z; d=m; Void show() coutc ,dshow();Return 0;运行时输出的结果是A)10,20 B)30,40

50、 C)20,30 D)50,50(31)有如下程序:includeiostreamusing namespace std;class Apublic;A(int i ) x= i ; Void sispa()coutx ,;Private:int x ; ;class B;publicApublic;12B(int i) :A(i +10) x =i ;voud dispb() dispa();coutx,endl;Private:Int x;;int main()B b(2) ;b.dispb()retum 0:运行时输出的结果是A)10,2 B)12,10 C)12,2 D)2,2(32)

51、虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时, ,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序:includeiostreamusing namespace std;class Basepublic:virtual void f()cout”f0+”;void g() cout”g0+; ;class Derived:public Basepublic:void f() cout”f+”; void g() coutf(); pg();return 0:运行时输出的结果是A)f+g+ B)f0+g+ C)f+g0+ D)f

52、0+g0+(33)下面程序中对一维坐标点类 Point 进行运算符重载#includeusing namespace std;class point public:13point (int vaI) x=val;point& operator+()x+;retum*this;print operator+(int) point old=this,+ (this) ;retumold;int GetX() const retum x; private:int x; ;int main()point a(10) ;cout(+a).GetX();coutusing namespace std;in

53、t main()char str100,p;coutstr;p=str;for(int i =0;*p!=”0”;p+, i +);cout i using namespace std:class Samplefriend long fun (Sample s) ;public:Sample (long a )x=a; Private:long x;long fun (Sample s)if(s。x2)retum 1;retum s.x*fun(Sample(s.xa) );int main()int sum=0for(int i =0; i 6; i +) sum+=fun(Sample(

54、i ) ;) cout sum;retum 0;运行时输出的结果是A)120 B)16 C)154 D)34二、填空题(每空 2 分,共 30 分)请将每一个空的正确答案写在答题卡【 1】【15】序号的横线上,答在试卷上不得分.(1)在深度为 7 的满二叉树中,度为 2 的结点个数为【1】 .(2)软件测试分为白箱(盒 )测试和黑箱(盒)测试 ,等价类划分法属于 【2】 测试。(3)在数据库系统中,实现各种数据管理体制功能的核心软件称为 【3】 。(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发和维护阶段.编码和测试属于 【4】 阶段。(5)在结构化分析使用的数据流图(DFD)中,利用

55、 【5】对其中的图形元素进行确切解释。(6)C+中只有两个逻辑常量:true 和 【6】 。(7)若要访问指针变量 p 所指向的数据,应使用表达式【7】 。(8)已知一个函数的原型是:int fn(double x) ;若要以 5。 27 为实参调用该函数, 应使用表达式【8】 。(9)有如下定义:class MAint value;public:MA(int n=0) :valut(n) ;MAta,tb;其中 MA 类的对象名标识符是 【9】 .(10) 如下类定义中包含了构造函数和拷贝数的原型声明请在横线处写正确的内容, 使拷贝构造函数的声明完整.Class my Class14Priv

56、ate:Int data:Public:MyClass(int value); /构造函数MyClass(const 【10】 another Object); /拷贝构造函数(11)用来派生新类的称为 【11】 ,而派生出的新类称为它的子类或派生类。(12)有如下程序:includeiostreamusing namespace std;clsaa CApublic:CADcoutA; ;class CB ;private CApublic;CB() coutB; ;int main()coutB ;int main() CA a;CB b;retum0;这个程序的输出结果是 【12】 。(

57、13)若将一个二元运算符重载为类的成员函数, 其形参个数应该是 【13】 个。(14)有如下程序:#includeiostreamusing namespace std;class DAint k;public:DA(int x=1): k (x) DA() coutk ; ;int main() DA d=DA(3) ,DA(3) ,DA(3);DA p=new DA2;deletep;return0;这个程序的输出结果是 【14】 。(15) C+语言中的多态性分为编译时的多态性和【15】时的多态性。2007 年 4 月计算机等级考试 C+考试答案选择题:15BDACD6-10CABCA1

58、115BADAC1620BCDBA21-25CCCCA26-30CDBDA30-35CBBBC填空:1、632、黑盒3、DBMS4、开发5、数据字典6、false7、 *P8、fn(5.27)9、tb10、myclass 11、基类12、AAB13、1 个14、1133315、运行2007年9全国计算机等级考试二级笔试试卷C+语言程序设计(考试时间 90 分钟,满分 100 分)一、选择题(每小题 2 分,共 70 分)下列个体 A、B、C、D 四个选项重,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分.(1)软件是指A 程序B 程序和文档C 算法加数据结构D 程序

59、、 数据与相关文档的完整集合(2)软件调试的目的是A 发现错误B 改正错误C 改善软件的性能D 验证软件的正确性(3)在面对对象方法中,实现信息隐蔽是依靠A 对象的继承B 对象的多态C 对象的封装D 对象15的分类(4)下列叙述重,不符合良好程序设计风格要求是A 程序的效率第一,清晰第二B 程序的可读性好C 程序中要有必要的注释D 输入数据前要有提示信息(5)下列叙述中正确的是A 程序执行的效率与数据的存储结构密切相关B 程序执行的效率只取决于程序的控制结构C 程序执行的效率之取决于所处理的数据量D 以上三种说法都不对(6)下列叙述中正确的是A 数据的输入结构与存储结构必定是对应的B 计算机存

60、储空间是向量式的存储结构, 因此,数据的存储结构一定是线性结构C 程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D 以上三种说法都不对(8)一棵二叉树中共有 70 个叶子结点于 80 个度为 1的结点,则该二叉树重的总结点数为A 219B 221C 229D 221(9)下列叙述重正确的是A 数据库系统是一个独立的系统,它需要操作系统的支持B 数据库技术的根本目标是要解决数据的共享问题C 数据库管理系统是数据库系统D 以上说法都不正确(10)下列叙述中正确的是A 为了建立一个关系,首先是要构造数据的逻辑关系B 表示关系的二维表中各各组的每一个分量还可以分成若干数据项C

61、一个关系的属性名称为关系模式D 一个关系可以包括多个二维表(11)在函数中,可以用 auto,extem,register,和 static这四个关键字中的一个来说明变量的存储类型 ,如果不说明存储类型,则默认的存储类型是A autoB extemC registerD static(12)对于一个类定义,下列叙述中错误的是A 如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B 如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C 如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D 如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数(13)

62、如果派生类以 public 方式继承基类,则原基类的protected 成员和 public 成员在派生类中的访问类型分别是A public 和 publicBpublic 和 protectedC protected 和 publicDprotected 和 protected(14) 下列运算符函数中肯定不属于类FunNumber 的成员函数的是A int operator(FunNumber)B FunNumber operator-()C FunNumber operator(int)D int operator (FunNumber)(15)C+中的模板包括A 对象模板和函数模板B

63、对象模板和类模板C 函数模板和类模板D变量模板和对象模板(16) 如果调用 C+流进行输入输出, 下面的叙述中正确的是A 只能借助于流对象进行输入输出B 只能进行格式化输入输出C 只能借助于 cin 和 cout 进行输入输出D 只能使用运算符 和 进行输入输出(17)下列富豪中不属于C+关键字的是A friendB namespaceCcontinueD byte(18)下列各组的量申明中,含义相同的一组是A unsigned long int 和 longB signedshort int 和 shortB unsigned short 和 shortD shortint 和 int(19

64、) 必须用一对打括号括起来的程序段是A switch 语句中的 case 标号语句B if 语句的分支C 循环语句的循环体D 函数的函数体(20)语句的 intp=&k 定义于指针 P,于这个语句等效的语句序列是A int*p;p=kB int*p;p=kC intp;*p=&kD int*p;*p=k16(21)关于函数重载,下列叙述中错误的是A 重载函数的函数名必须相同B 重载函数必须在函数个数或类型上有所不同C 重载函数的返回值类型必须相同D 重载函数的函数体可以有所不同(22)有如下头文件Int f1();Static int f2();Class MAPublicInt f3();S

65、tatic int f4() ; ;在所描述的函数中,具有隐含的 this 指针的是A f1B f2C f3D f4(23)派生类的成员函数不能访问基类的A 共有成员和保护成员B 共有成员C 私有成员D 保护成员(24)下列关于运算符重载的描述中,正确的是A 运算符重载为成员函数时, 若参数表中五参数,重载的是一元运算符B 一元运算符只能作为成员函数重载C 二元运算符重载为非成员函数时 ,参数表中有一个参数D C+中可以重载所有的运算符(25)下列关于类模板的模板参数的叙述中,错误的是A 模板参数可以作为数据成员的类型B 模板参数可以作为成员函数的返回类型C 模板参数可以作为成员函数的参数类型

66、D 模板函数不能作为成员函数的局部变量的类型(26)已知一程序运行后执行的第一个输出操作是Cout setw(10)setfill() 1234则此操作的输出结构是A 1234B *1234C *1234D 1234*(27)有如下程序#include Using namespace std;Class myclassPublic:MyClass() +count;MyClass()-count;Static int getcount() return count;PrivateStatic int count; ;Int MyClass::count=0;Int main()Myclass

67、obj;Cout obj,getCount();MyClassptr=new MyClass;CoutMyClass::getcount();Delete ptr;CoutUsing namespace std;Class partPublic;Part(int x=():val(x) cout,val;part() cout val;Private;Int val;Class wholePublic;Whole(int x,int y,int z=0):p2(x),p1(y) ,val(z)coutUsing namespace std;Class basePublic:Base(int x

68、=0) coutx; ;Class derived : public basePublic:Derivedrin(x=y) cout x; Priblic:Base val;;Int main()Derived d(!);Return();程序的输出结果是A 0B 1C 01D 001(31)若有如下类定义:Classs B Void fun() Protected;Double varl;Public:Void fun2();Class D:public BProtected;Void fun3() ;已知obj是类D的对象,下列语句中不违反成员访问控制的权限的是A obj。 fun1 ()

69、;B obj。 var1;C obj。fun2() ;D obj。fun3();(32)有如下程序:includeiostreamUsing namespace sid;Class basePublic;Void output() cout1; Virtual void print() coutprint();Delete ptr;Return();程序的输出结果是A 1BB 1DC 2BD 2D下列是重载乘法运算的函数原型声明,其中错误的是A myclass operator*(double,double);B myclass operator(double,myclass) ;C mycl

70、ass operator*(myclass,double) ;D myclass operator*( myclass , myclass);(35) 有如下程序:#include Using namespace std:Class BPublic:Virtual void show()cout”b”;Class D:public B Public:Void show() coutshow();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

71、);Return();程序的输出结果是A DBDB BBDC DBBDDBD二、填空题(每空 2 分,共三十分)(1).请将每一个空的正确答案写在答题卡【1】【15】序号的横线上,答在试卷上不得分。(2)。软件需求规格说明书应具有完整性、无歧视性、正确性、 可验证性、 可修改性等特征, 最重要的是_.(3) .在两种基本测试方法中_测试的原则之一是保证所测模板中每一个独立路径至少要执行一次。(4)。 线性表的存储结构主要分为顺序存储结构和链式储18存结构.队列中是一种特殊的线性表。 循环队列是队列的_存储结构.(5).对下列二叉树进行中序遍历的结果为_.(6) 。在 E-R 图中,矩形属于_在

72、有定义语句:int a=3,b=2,c=1;则表达式 ab?a:b 的值是_(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;s2;return s则在某程序中第二次执行函数用语句 f() ;时,函数 f的返回值是_.(9)已知如下程序得输出结果时 23,请将划线处缺失得部分补充完整。#includeiostreamUsing namespace std;Class myclassPublic:Void p

73、rint() coutcoutUsing namespace std;Class A Public:_cout”aa”;;Class B :public APublic:B()cout”bb”; ;Int main ()Bp=new B;Delete p;Return();(15)请将下列栈类 stack 补充完整Class stackPrivate;Int plist100;/int 数组,用于存放栈的元素Int top;/栈顶元素(数组下标)Public:Stack():top(0) Void push(sons int &item);/新元素 item压入栈Int pop(void) ;

74、/将栈顶元素弹出栈;Void stack:pbsh(const int item)If (top =99)/如果栈满,程序结束Exit(1);Top+;/栈顶指针增1_【15】_;Int stack:pop() If (top0)/如果栈空,程序结束Exit(1) ;Return plishtop-;参考答案1-10:DBCAACCABB1120:ABDDCADBDA2130:CCCADBACDC3135:CDAAD1。无歧性2.逻辑覆盖3.链式4.ACBDFHGPE5.实体6.27。68。4199。 (p)10。ABBA11.void Base::fun()12.virtual displa

75、y()=0;14.-A()15。pListtop=item2008 年 9 月计算机等级考试二级 C+笔试试题一、选择题(每小题 2 分,共 70 分)(1)一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是( ) 。A)123456ABCDEB)EDCBA54321C)ABCDE12345D)54321EDCBA(2)下列叙述中正确的是( ) 。A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化

76、情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定(3) 在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是().A)O(n)B)O(n2)C)O(log2n)D)O(nlog2n)(4)下列叙述中正确的是() 。A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是() 。A)控制流C)模块调用B)事件驱动D)数据流(6)在软件开发中,需求分析阶段可以使用

77、的工具是 () .A)N-S 图B)DFD 图(数据流图)C)PAD 图D)程序流程图(7)在面向对象方法中,不属于 “对象”基本特点的是() 。A)一致性B)分类性C)多态性D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。A)一对一B)一对多C)多对一D)多对多C)strstreamD)iomanip(17)下列字符串中不能作为 C+标识符使用的是() 。(9)在数据管理技术发展的三个阶段中,数据共享最好A)WHILEB)userC)_lvarD)9stars的是().(18)下列语句中错误的是() 。A)人工管理阶段B) 文件系统阶段A)const int a;

78、C)数据库系统阶段D) 二个阶段相同B)const int a=10;(10)有三个关系 R、S 和 T 如下:C)const int*point=0;RSTD)const int*point=new int(10);ABBCABC(19)有如下程序:m113m13includeiostreamn235using namespace std;由关系 R 和 S 通过运算得到关系 T, 则所使用的运算int main()为().int sum;A)笛卡尔积B)交for(int i=0; i6; i+=3)C)并D)自然连接sum=i;(11)在下列原型所示的 C+函数中,按“传值方式传for(i

79、nt j = i; j6; j+)sum+=j;递参数的是() 。A)void f1(int x);B)void f2(intx) ;coutsumend1;C)void f3(const int*x); D)void f4(int&x);return 0;(12)在 C+中, 编译系统自动为一个类生成缺省构造函数的条件是()。运行时的输出结果是()。A)该类没有定义任何有参构造函数A)3 B)10C)12D)15B)该类没有定义任何无参构造函数(20)下列语句中,正确的是().C)该类没有定义任何构造函数A)charmyString=”Hello-World!”;D)该类没有定义任何成员函数

80、B)char myString=HelloWorld!”;(13)在一个派生类的成员函数中,试图调用其基类的C)char myString11=HelloWorld!;成员函数“void f();”,但无法通过编译。这说明() 。D)char myString12=”HelloWorld!;A)f()是基类的私有成员(21)若已经声明了函数原型“void fun(int a,C)派生类的继承方式为私有b=0.0);”,则下列重载函数声明中正确的是().B)f()是基类的保护成员A)void fun(int a=90, double b=0。0);D)派生类的继承方式为保护B)int fun(i

81、nt a, double B);(14)下列关于运算符重载的叙述中,错误的是() 。C)void fun(double a, int B) ;A)有的运算符可以作为非成员函数重载D)bool fun(int a, double b = 0。0) ;B)所有的运算符都可以通过重载而被赋予新的含义(22)有如下程序:C)不得为重载的运算符函数的参数设置默认值includeiostreamD)有的运算符只能作为成员函数重载using namespace std;(15)下列关于模板的叙述中,错误的是().class SampleA)调用模版函数时,在一定条件下可以省略模板实参public:B)可以用

82、 int、double 这样的类型修饰符来声明模版参Sample()数Sample() cout;C)模板声明中的关键字class 都可以用关键字;typename 替代int main()D)模板的形参表中可以有多个参数Sample temp2, pTemp2 ;(16)要利用 C+流进行文件操作, 必须在程序中包含return 0;的头文件是() 。A)iostreamB)fstream执行这个程序输出星号()的个数为()。20doubleA)1B)2C)3D)4(23)下列选项中,与实现运行时多态性无关的是()。A)重载函数B)虚函数C)指针D)引用(24)下列运算符函数中, 肯定不属于

83、类 Value 的成员函数的是().A)Value operator+(Value);B)Value operator(Value, Value);C)Value operator(int);D)Value operator/(Value);(25)下列模板声明中,有语法错误的是(D)。A)templatetypename TT fun(T x)return x;B) templatetypename T T fun (T x, int n)return xn; C)templateclass TT fun(T p)return *p;D)templateT classAT n;;(26)在语

84、句“cout A;中,cout 是()。A)类名B)对象名C)函数名D)C+的关键字(27)有如下程序:#includeusing namespace std;class MyClasspublic:MyClass(int i=0) cout1;MyClass(const MyClassx)cout2;MyClass& operator=(const MyClass&x)cout3; return*this;MyClass()cout 4;int main()MyClass obj1(1),obj2(2),obj3(obj1);return 0:运行时的输出结果是()。A)112444B)11

85、114444C)121444D)11314444(28)有如下程序:includeusing namespace std;class MyClasspublic:MyClass(int x):val(x)void Set(int x) val=x; void Print()constcoutval=” val=”是作为非成员函数重载的运算符,则可以等效地表示为()。A)a.operator=(b) B)b.operatotr=(a)C)operator=(a,b)D)operator=(b,a)(34)当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为()

86、。A)ios base::inB)ios_base:binaryC)ios_base: :inios_base::outD)ios_base::out(35)在一个抽象类中,一定包含有()。A)虚函数B)纯虚函数C)模板函数D)重载函数二、填空题(每空 2 分,共 30 分)(1)对下列二叉树进行中序遍历的结果_DBXEAYFZC_.A(2)按照软件测试的一般步骤,集成测试应在_ _测试之后进行.(3)软件工程三要素包括方法、 工具和过程, 其中,_ _支持软件开发的各个环节的控制和管理。(4)数据库设计包括概念设计、_ _和物理设计.(5)在二维表中,元组的_不能再分成更小的数据项。(6)当

87、使用关键字_作为函数返回类型时,该函数不返回任何值.(7) 已知数组 a 中有 n 个元素, 下列语句将数组 a 中从下标 x1 开始的 k 个元素移动到从下标 x2 开始的k 个元素中,其中 0=x1x2n,x2+kn,请将下列语句补充完整。for (int i = x1+k1; i=x1; i)a_=ai;(8)有如下程序:#includeiostreamusing namespace std;int fun1(int x) return+x;int fun2(int x) return+x;int main()int x=1,y=2;y=fun 1(fun2(x) ) ;coutx ,u

88、sing namespace std;class pumpkinpublic:pumpkin()+count;pumpkin()count;static void total_count()coutcount”pumpkin(s)”endl;private:static int count;int pumpkin: :count=0;int main()pumpkin pl10;pumpkin::total_count();return 0;这个程序的输出结果是_。22(10)有如下递归函数:int Fun(int n)if(n=1) return 1;_else return nFun(n1

89、);_请补充完整,使得函数 Fun 能够正确计算形参 n 的阶乘。(11)请在下列程序中的空格处填写正确的语句:class Samplepublic:Sample()Sample()void SetData(int data) /将 Sample 类成员变量 data 设置成形参的值_ _ /注意形参与成员同名private: int data; ;(12)有如下类定义, 请将 Sample 类的拷贝构造函数补充完整。class Samplepublic:Sample()Sample() if(p) delete p;)Sample (const Sample& s) _ _void SetD

90、ata(int data) p=new int(data);private:intp;;(13)重载加法运算符“+”,其函数名是_ _.(14)有如下程序:includeiostreamusing namespace std;class Wages /“工资类double base; /基本工资double bonus; /奖金double tax; /税金public:Wages(double CBase, double CBonus,double CTax):base(CBase), bonus(CBonus),tax(CTax)double getPay()const; /返回应付工资额

91、Wages operator+(Wages w)const; /重载加法;double Wages::getPay()constreturn base+bonus-tax;Wages Wages : :operator+(Wages w)const return Wages(base+w.base, bonus+w。bonus,tax+w.tax);int main()Wages wl(2000,500,100) ,w2(5000,1000,300) ;cout(wl+w2) 。getPay() using namespace std;class Petchar name10;public:P

92、et(char*name)strcpy(this-name, name) ;const char*getName()const return name; virtual void call()const=0;class Dog: public Petpublic:Dog(charname):Pet(name) void call()constcout汪汪叫;;class Cat:public Petpublic:Cat(charname):Pet(name)void call()constcout ”喵喵叫;int main()Pet*pet1=new Dog(哈克”),pet2=new Ca

93、t(”吉米);coutpet1-getName();pet1call();coutgetName() ;pet2call();coutend1;return 0;程序的输出结果是_哈克汪汪叫_吉米喵喵叫_2008 年 9 月二级 C+笔试试卷参考答案一、选择题(1)B) (2)D) (3)C)(4)A) (5)D)(6)B)(7)A)(8)B)(9)C)(10)D(11)A) (12)A) (13)C)(14)B)(15)D(16) B)(17) B) (18) D) (19) A)(20) D (21)C)(22)C) (23)A) (24)D)(25)C) (26)B) (27)C)(28

94、)B) (29)A) (30)D(31)A) (32)C)(33)A)(34)B)(35)C)二、填空题(1)DBXEAYFZC(2)单元(3)过程(4)逻辑设计(5)分量(6)void(7)X2+k-1(8)2,3(9)10pumpkin(s)(10)else return nFun(n-1) ;(11)Sample::data(12)p=new int; *p=s.p;(13)operator +(14)81002009 年 9 月全国计算机二级笔试C+一、选择题(110,2140 每题 2 分,1120 每题 1 分)(1)下列数据结构中,属于非线性结构的是A)循环队列B)带链队列C)二

95、叉树D)带链栈(2)下列数据结构中,能够按照“先进后出”原则存取数据的是A)循环队列B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指A)算法在执行过程中所需要的计算机存储空间23B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合(6)下列选项中不属于结构化程序设计原则的是A)可封装B)自

96、顶向下C)模块化D)逐步求精(7)软件详细设计产生的图如下:该图是A)NS 图B)PAD图C)程序流程图D)ER 图(8)数据库管理系统是A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统(9)在 ER 图中,用来表示实体联系的图形是A)椭圆形B)矩形C)菱形D)三角形(10)有三个关系 R,S,和 T 如下:RA B C a 1 2 b 2 1 c 3 1S A B C d 3 2T A B C A 1 2 B 2 1 C 3 1 D 3 2其中关系 T 由关系 R 和 S 通过某种操作得到, 该操作为A)选择B)投影C)交D)并(11)已知函数 FA调用 F

97、B,若要把这两个函数定义在同一个文件中,则A)FA必须定义在 FB 之前B)FB 必须定义在 FA之前C)若 FA定义在 FB 之后,则 FA的原型必须出现在 FB 的定义之前D)若 FB 定义在 FA之后,则 FB 的原型必须出现在 FA的定义之前(12)有如下两个类定义class AA;class BBAA v1,*v2;BB v3;int *v4; ;其中有一个成员变量的定义是错误的,这个变量是A)v1B)v2C)v3D)v4(13)有如下类定义:class XXint xdata;public:XX(int n=0) : xdata (n) ;class YY : public XXi

98、nt ydata;public:24YY(int m=0, int n=0) : XX(m) , ydata(n) ;YY 类的对象包含的数据成员的个数是A)1B)2C)3D)4(14)下列有关运算符函数的描述中,错误的是A)运算符函数的名称总是以operator 为前缀B)运算符函数的参数可以是对象C)运算符函数只能定义为类的成员函数D)在表达式中使用重载的运算符相当于调用运算符重载函数(15)下列关于模板形参的描述中,错误的是A)模板形参表必须在关键字template 之后B)模板形参表必须用括弧( )括起来C)可以用 class 修饰模板形参D)可以用 typename 修饰模板形参(1

99、6)在下列枚举符号中,用来表示 “相对于当前位置”文件定位方式的是A)ios_base::curB)ios_base::begC)ios_base::outD)ios_base:end(17)下列字符串可以用作C+标识符的是A)2009varB)gotoC)test - 2009D)_123(18)下列枚举类型的定义中,包含枚举值3 的是A) enum testRED,YELLOW,BLUE,BLACK;B ) enum test RED ,YELLOW=4, BLUE,BLACK ;C)enumtestRED=1 ,YELLOW,BLUE,BLACK;D)enum test RED, YEL

100、LOW=6, BLUE,BLACK;(19)有如下程序段:int i=1;while (1) i+;25if(i = 10) break;if(i%2 = 0) cout ;执行这个程序段输出字符*的个数是A)10B)3C)4D)5(20)已知数组 arr 的定义如下:int arr5 = 1,2,3,4,5;下列语句中输出结果不是2 的是A)cout arr+1 endl;B)cout *(arr+1) endl;C)cout arr1 endl;D)cout arr class A;下列声明中,与上述声明不等价的是A)template class A;B)template class T1

101、,typename T2 class A;C)template typename T1,class T2 class A;D)template typename T1,T2 class A;(26)下列关于 C+流的描述中,错误的是A)coutA表达式可输出字符 AB)eof()函数可以检测是否到达文件尾C)对磁盘文件进行流操作时,必须包含头文件fstreamD)以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件27)有如下程序:#include using namespace std;class Toypublic:Toy(char* _n) strcpy (name

102、, _n) ; count+; Toy() count-; char GetName() return name; static int getCount() return count; private:char name10;static int count; ;int Toy::count=0;int mail()Toy t1 (“Snoopy) , t2 (“Mickey”), t3 (“Barbie”);coutt1.getCount()endl;return 0;运行时的输出结果是A)1B)2C)3D)运行时出错26(28)有如下程序includeiostreamusing name

103、space std;class A public:A(int i):rl(i) void print( ) cout e r1 ; void print( ) const coutC r1r1-;private:int rl;int main()A al(2);const A a2(4);al.print();a2。print() ;return 0;运行时的输出结果是A)运行时出错B)E2C16-C)C4-C16D)E2-E4-29)有如下程序:#includeiostreamusing namespace std;class Namechar name20;public:Name()str

104、cpy(name,”);cout?;Name(char *fname) )strcpy(name,fname);cout?;;int main()Name names3=Name(“张三”) ,Name(“李四”) ;Return 0;运行此程序输出符号?的个数是A)0B)1C)2D)3(30)有如下程序:includeiostreamusing namespace std;public:AA() cout1; ;class BB: public AAint k;public:BB() :k(0) cout 2; BB(int n):k(n) cout3;int main()BB b(4),

105、c;return 0;运行时的输出结果是A)1312D)132C)32(31)有如下程序:includeiostreamusing namespace std;class C1public:C1() cout 1; ;Class C2: public c1public:c2() cout2; ;int main()C2 cb2;C1 *cb1;return 0;运行时的输出结果是A)121B)21C)211(32)有如下程序includeusing namespace std;class Publication /出版物类char name30;public:Publication(char

106、name=”未知名称”)strcpy(this-name,name);const char * getName()const return name; virtual const char getType ()const return 未知类型”; ;class Book: public Publication /书类public:Book(char *name): Publication(name)virtual const char getType()const return ”书”;void showPublication( Publication &p) cout p.getType(

107、)”:”p。getName()Using namespace std;int main()int s=123, 234 ;coutrightsetfill() setw(6);for(int i=0; i2; i+) cout siendl; D)12return 0;运行时的输出结果是A) 123B)123C) *123D)*123234234*234234*(35)有如下类定义class A 27char *a;public:A() :a(0)A(char *aa) /把 aa 所指字符串拷贝到 a 所指向的存储空间a=;strcpy(a,aa);strcpy(a,aa);A() dele

108、te a; ;横线处应填写的表达式是A)nes charstrlen(aa)+1B)charstrlen(aa)+1C)charstrlen(aa)D)newcharsizeof(aa)1二、填空题(每空 2 分,共 30 分) (1)某二叉树有 5 个度为 2 的结点以及 3 个度为 1 的结点,则该二叉树中共有 【1】 个结点。 (1)某二叉树有 5 个度为 2 的结点以及 3 个度为 1 的结点,则该二叉树中共有 【1】 个结点。 (2)程序流程图中的菱形框表示的是 【2】 。(3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中 【3】 阶段产生“软件需求规格说明书”.(4

109、)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程 的联系为 【4】 。(5)人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是 【5】 。(6) 若表达式 (x+(y-z) * (m/n)) +3 中的变量均为 double型,则表达式值的类型为 【6】 。(7)有如下循环语句:For(int i=50; i20; i-=2) couti,;运行时循环体的执行次数是 【7】 .(8)利用表达式 ai可以访问 int 型数组 a 中下标为 i的元素。在执行了语句 int *p=a;后,利用指针 p 也可访问该元素,相应的表达式是

110、 【8】 。(9)下面是一个递归函数,其功能是使数组中的元素反序排列。请将函数补充完整.void reverse(int *a, int size)if(size2) return;int k=a0;a0=asize1 ;asize-1=k;reverse(a+1, 【9】 );28(10)类 Sample 的构造函数将形参data 赋值给数据成员data。请将类定义补充完整。class Samplepublic:Sample(int data=0);Private:Int data;;Sample::Sample(int data)【10】(11)有如下类定义:class Samplepub

111、lic:Sample();Sample();Private:Static int date;;将静态数据成员 data 初始化为 0 的语句是 【11】 。(12)“图形”类 Shape 中定义了纯虚函数 CalArea() ,“三角形”类 Triangle继承了类 Shape, 请将 Triangle类中的 CalArea 函数补充完整.class Shapepublic:virtual int CalArea()=0;class Triangle: public Shapepublic:Triangleint s, int h: side(s),height(h) 【12】 return

112、side*height/2 ; private:int side;int height;;(13)有如下程序:include using namespace std;class GrandChildpublic:GrandChild() strcpy (name,”Unknown”); const char * getName()const return name; virtual char * getAddress()const=0;private:char name20 ; ;class GrandSon : public GrandChildpublic:GrandSonchar *na

113、me Char * getAddress() const return Shanghai; ;public:void put (T v) val=v; 【15】 get()/返回数据成员 val 的值,返回类型不加转换 return val; private:T val;;2009年9月全国计算机等级考试二级C+笔试参考答案int main()选择题GrandChild *gs=new GrandSon(Feifei”);(1)C (2)B (3)D (4)A (5)Bcoutgs-getName()住在gsgetAddress()(3)需求分析include string(4)多对多usin

114、g namespace std;(5)身份证号class Word(6)doublepublic:(7)15Word(string s) : str(s) (8)(p+i)string getStr() return str; (9)size1【14】 const return (strw。str); (10)this-data=data;friend ostream operator (ostream output,const(11)int Sample:data = 0;Word w)(12)int CalArea(size,height) output w。str; return output; (13)Unknown 住在 Shanghaiprivate:(14)bool operator (Word w)string str;(15)T;Int main()Word w1(Happy) ,w2(”Welcome);CoutAfter sorting: ;if(w1w2) coutw1 w2;else coutw2 w1;return 0;(15)请将下列模板类Data 补充完整.template class Data2911)D(20)D25)D30)A(35)A(

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号