好文档 - 专业文书写作范文服务资料分享网站

历年计算机二级c++真题及答案

天下 分享 时间: 加入收藏 我要投稿 点赞

(4)软件(程序)调试的任务是 A)诊断和改正程序中的错误 B)尽可能多地发现程序中的错误 C)发现并改正程序中的所有错误 D)确定程序中错误的性质 (5)数据流程图(DFD图)是 A)软件概要设计的工具 B)软件详细设计的工具

C)结构化方法的需求分析工具 D)面向对象方法的需求分析工具 (6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于 A)定义阶段 B)开发阶段 C)维护阶段

D)上述三个阶段

(7)数据库管理系统中负责数据模式定义的语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言

(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是 A)文件 B)数据库 C)字段 D)记录

(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的 A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段

(10)有两个关系R和T如下:

则由关系R得到关系T的操作是 A)选择 B)投影 C)交

6

D)并

(11)下列关于函数的描述中,错误的是 A)函数可以没有返回值 B)函数可以没有参数

C)函数可以是一个类的成员 D)函数不能被定义为模板

(12)若MyClass是一个类名,且有如下语句序列 MyClass c1,*c2;

MyClass *c3=new MyClass; MyClass &c4=c1;

上面的语句序列所定义的类对象的个数是 A)1 B)2 C)3 D)4

(13)下列关于继承方式的描述中,错误的是

A)如果不显式地指定继承方式,缺省的继承方式是私有(private)

B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员

C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员

D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员

(14)将前缀运算符―--‖重载为非成员函数,下列原型中,能正确用于类中说明的是 A)Decr& operator --(int);

B)Decr operator --( Decr&,int); C)friend Decr& operator --(Decr&); D)frlend Decr operator --(Decr&,int);

(15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTempp2; MyTempp3[2];

编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是 A)1 B)2 C)3 D)0

(16)在C++中,cin是个 A)类 B)对象 C)模板 D)函数

(17)在下列字符中,不允许作为C++标识符的是

A)b B)B C)_ D)2

(18)下列叙述中,错误的是 A)false是一个逻辑型常量 B)\是一个字符型常量 C)365是一个int常量

D)3.1415926是一个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 x[3]={0,0,0}; B)int x[]={0};

C)static int x[3]={0}; D)int x[]={0,0,0};

(21)关于函数中的<返回类型>,下列表述中错误的是 A)<返回类型>中有可能包含关键字int B)<返回类型>中有可能包含自定义标识符 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 XX{ private: double x1; protected: double x2; public: double x3; };

class YY:protected XX{ private: double y1; protected: double y2;

7

public: double y3; };

在类YY中保护成员变量的个数是 A)1 B)2 C)3 D)4

(24)下列关于运算符重载的描述中,错误的是 A)可以通过运算符重载在C++中创建新的运算符 B)赋值运算符只能重载为成员函数

C)运算符函数重载为类的成员函数时,第一操作数是该类对象

D)重载类型转换运算符时不需要声明返回类型 (25)下列关于类模板的描述中,错误的是 A)类模板的成员函数都是模板函数 B)可以为类模板参数设置默认值 C)类模板描述了一组类

D)类模板中只允许有一个类型参数

(26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是 A)setprecision B)setw C)setfill

D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是 int fun1(); class Test{ public: int fun2();

friend int fun3(); static int fun4(); };

A)fun1 B)fun2 C)fun3 D)fun4

(28)有如下程序 #include

using namespace std; class Test{ public: Test(){ }

Test(const Test &t) {cout<<1;} };

Test fun(Test &u) {Test t=u; return t;}

int main(){Test x,y; x=fun(y); return 0;} 运行这个程序的输出结果是 A)无输出 B)1 C)11 D)111

(29)有如下程序 #include

using namespace std; class A{ public:

A(int i=0):r1(i) { }

void print() {cout<<'E’<

void print() const {cout<<'C'< void print(int x) {cout <<'P'< private: int r1; };

int main() { A a1;

const A a2(4); a1.print(2); a1.print(); return 0; }

运行时的输出结果是 A)P8-E4 B)P8-C16- C)P0-E4- D)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)有如下程序 #include

using namespace std; Class Base{ public:

Base(int x=0):valB(x) {cout<

~Base() {cout< private: int valB; };

class Derived:public Base{ public: Derived(int x=0,int y=0):Base(x),valD(y){cout< ~Derived() {cout< private: int valD; };

int main(){

Derived obj12(2,3); retuen 0; }

运行时的输出结果是 A)2332 B)2323 C)3232 D)3223

(32)下面是类Shape的定义: class Shape{ public:

virtual void Draw()=0; };

下列关于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)打开文件时可单独或组合使用下列文件打开模式

①ios_base::app ②ios_base::binary ③ios_base::in ④ios_base::out

若要以二进制读方式打开一个文件,需使用的文件打开模式为 A)①③ B)①④ C)②③

8

D)②④

(35)有如下程序: #include

using namespace std; Class B{ public:

B(int xx):x(xx) {++cout; x+=10;} virtual void show() const

{cout< protected:

static int count; private: int x; };

class D:public B{ public:

D(int xx,int yy):B(xx),y(yy) {++count; y+=100;} virtual void show() const

{cout< private: int y; };

int B::count=0; int main(){

B *ptr=new D(10,20); ptr->show(); delete ptr; return 0; }

运行时的输出结果是 A)1_120 B)2_120 C)1_20 D)2_20

二、填空题(每空2分,共30分)

请将每一个空的正确答案写在答题卡【l】~【15】序号的横线上,答在试卷上不得分。

(1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为 【1】 。

(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有 【2】 个元素。 (3)设二叉树如下:

对该二叉树进行后序遍历的结果为 【3】 。 (4)软件是 【4】 、数据和文档的集合。

(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 【5】 ,成绩)。

(6)若x和y是两个整形变量,在执行了语句序列 x=5; y=6; y+=x--;

后,x+y的值为 【6】 。 (7)在执行语句序列

int i=0; do i++; while(i*i<10);

时,do后面的循环体语句i++被执行的次数为 【7】 。

(8)有如下的函数定义: int Xfun(int *a, int n){ int x=*a;

for(int *pa=a+1; pa<> if(*pa>x) x=*pa; return x; }

若执行了语句

int x[5]={23,46,78,55,16};

后,通过表达式Xfun(x,5)调用该函数,则得到的返回值为 【8】 。

(9)有如下的函数定义: int Xfun(int x){ int y=x;

{int x=10; y+=x;} return x+y; }

通过表达式Xfun(5)调用该函数,则得到的返回值为 【9】 。

(10)假定Xcs是一个类,该类中一个成员函数的原型为―Xcs *abc();‖,则在类外定义时对应的函数头为 【10】 。

9

(11)请将下面的类Date的定义补充完整,使得由语句

Date FirstDay;

定义的对象FirstDay的值为2010年1月1日。 class Date{ public:

Date( 【11】 ):year(y),month(m),day(d){ } private:

int year,month,day; //依次表示年、月、日 };

(12)请将下面的程序补充完整,使得程序输出―飘是张娜的书‖。 #include

using namespace std; class Book{ public:

Book(char *str) {strcpy(title,str);} 【12】 void PrintInfo() {cout< protected: char title[50]; };

class MyBook:public Book{ public:

MyBook(char *s1,char *s2=\张娜\【13】 {strcpy(owner,s2);}

virtual void PrintInfo() {cout<

char owner[10]; };

int main(){

Book *prt=new MyBook(\飘\ prt->PrintInfo(); return 0; }

(13)在有理数类Rational中重载插入运算符<<,以便按a/q形式输出。请将<<运算符函数的定义补充完整。 class Rational{ public:

Rational(int aa, int qq):a(aa),q(qq){ } friend 【14】 operator<<(ostream &out, Rational &x) {

return (out< }

private: int a,q;

10

};

(14)下面的函数定义是某函数模板能够生成的函数实例

int square(int n) {return n*n;}

double square(double n) {return n*n;}

由此可知,该函数模板的定义是 【15】 。

2007年4月计算机等级考试C++考试及答案 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(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)DYBEAFCZX B)YDEBFZXCA C)ABDYECFXZ D)ABCDEFXYZ

(7)某二叉树中有n个度为2的结点则该二叉树中的叶子结点数为

A)n+1 B )n-1 C)2n D)n/2

(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 。

历年计算机二级c++真题及答案

(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义
推荐度:
点击下载文档文档为doc格式
00lcj11x4w7g2499hhv6
领取福利

微信扫码领取福利

微信扫码分享