计算机等级考试二级C++真题.docx

上传人:b****5 文档编号:8463920 上传时间:2023-01-31 格式:DOCX 页数:13 大小:19.61KB
下载 相关 举报
计算机等级考试二级C++真题.docx_第1页
第1页 / 共13页
计算机等级考试二级C++真题.docx_第2页
第2页 / 共13页
计算机等级考试二级C++真题.docx_第3页
第3页 / 共13页
计算机等级考试二级C++真题.docx_第4页
第4页 / 共13页
计算机等级考试二级C++真题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

计算机等级考试二级C++真题.docx

《计算机等级考试二级C++真题.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C++真题.docx(13页珍藏版)》请在冰豆网上搜索。

计算机等级考试二级C++真题.docx

计算机等级考试二级C++真题

2008年

9月全国计算机等级考试笔试试卷

二级公共基础知识和二级

C++语言程序设计

(考试时间

90分钟,满分

100分)

一、选择题(每小题2分,共

70分)

(1)一个栈的初始状态为空。

现将元素

1、2、3、4、5、A、B、C、D、E依次入栈,然后

再依次出栈,则元素出栈的顺序是()。

A)123456ABCDEB)EDCBA54321

C)ABCDE12345D)54321EDCBA

(2)下列叙述中正确的是()。

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

D)循环队列中元素的个数是由队头指针和队尾指针共同决定

(3)在长度为

n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。

A)O(n)B)O(n2)

C)O(log2n)D)O(nlog2n)

(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如下:

RST

AB

m1

n2

BC

13

35

ABC

m13

由关系

R和

S通过运算得到关系

T,则所使用的运算为()。

A)笛卡尔积B)交C)并D)自然连接

(11)在下列原型所示的

C++函数中,按“传值”方式传递参数的是()。

A)voidf1(intx);B)voidf2(int*x);

C)voidf3(constint*x);D)voidf4(int&x);

(12)在

C++中,编译系统自动为一个类生成缺省构造函数的条件是()。

A)该类没有定义任何有参构造函数

B)该类没有定义任何无参构造函数

C)该类没有定义任何构造函数

D)该类没有定义任何成员函数

(13)在一个派生类的成员函数中,试图调用其基类的成员函数“

voidf();”,但无法通过编

译。

这说明()。

A)f()是基类的私有成员B)f()是基类的保护成员

C)派生类的继承方式为私有D)派生类的继承方式为保护

(14)下列关于运算符重载的叙述中,错误的是()。

A)有的运算符可以作为非成员函数重载

B)所有的运算符都可以通过重载而被赋予新的含义

C)不得为重载的运算符函数的参数设置默认值

D)有的运算符只能作为成员函数重载

(15)下列关于模板的叙述中,错误的是()。

A)调用模版函数时,在一定条件下可以省略模板实参

B)可以用

int、double这样的类型修饰符来声明模版参数

C)模板声明中的关键字

class都可以用关键字

typename替代

D)模板的形参表中可以有多个参数

(16)要利用

C++流进行文件操作,必须在程序中包含的头文件是()。

A)iostreamB)fstreamC)strstreamD)iomanip

(17)下列字符串中不能作为

C++标识符使用的是()。

A)WHILEB)userC)_lvarD)9stars

(18)下列语句中错误的是()。

A)constinta;B)constinta=10;

C)constint*point=0;D)constint*point=newint(10);

(19)有如下程序:

#include

usingnamespacestd;

intmain(){

intsum;

for(inti=0;i<6;i+=3){

sum=i;

for(intj=i;j<6;j++)sum+=j;

}

cout<

return0;

}

运行时的输出结果是()。

A)3B)10C)12D)15

(20)下列语句中,正确的是()。

A)char*myString="Hello-World!

";

B)charmyString="Hello-World!

";

C)charmyString[11]="Hello-World!

";

D)charmyString[12]="Hello-World!

";

(21)若已经声明了函数原型

“voidfun(inta,doubleb=0.0);”,则下列重载函数声明中正确

的是()。

A)voidfun(inta=90,doubleb=0.0);B)intfun(inta,doubleB);

C)voidfun(doublea,intB);D)boolfun(inta,doubleb=0.0);

(22)有如下程序:

#include

usingnamespacestd;

classSample{

public:

Sample(){}

~Sample(){cout<<'*';}

};

intmain(){

Sampletemp[2],*pTemp[2];

return0;

}

执行这个程序输出星号(*)的个数为()。

A)1B)2C)3D)4

(23)下列选项中,与实现运行时多态性无关的是()。

A)重载函数B)虚函数C)指针D)引用

(24)下列运算符函数中,肯定不属于类

Value的成员函数的是()。

A)Valueoperator+(Value);B)Valueoperator-(Value,Value);

C)Valueoperator*(int);D)Valueoperator/(Value);

(25)下列模板声明中,有语法错误的是()。

A)templateTfun(Tx){returnx;}

B)templateTfun(Tx,intn){returnx*n;}

C)templateTfun(T*p){return*p;}

D)templateTclassA{Tn;};

(26)在语句“

cout<<'A';”中,cout是()。

A)类名B)对象名

C)函数名D)C++的关键字

(27)有如下程序:

#include

usingnamespacestd;

classMyClass{

public:

MyClass(inti=0){cout<<1;}

MyClass(constMyClass&x){cout<<2;}

MyClass&operator=(constMyClass&x){cout<<3;return*this;}

~MyClass(){cout<<4;}

};

intmain(){

MyClassobj1

(1),obj2

(2),obj3(obj1);

return0:

}

运行时的输出结果是()。

A)112444B)11114444C)121444D)11314444

(28)有如下程序:

#include

usingnamespacestd;

classMyClass{

public:

MyClass(intx):

val(x){}

voidSet(intx){val=x;}

voidPrint()const{cout<<"val="<

private:

intval;

};

intmain(){

constMyClassobj1(10);

MyClassobj2(20);

obj1.Print();//语句

1

obj2.Print();//语句

2

obj1.Set(20);//语句

3

obj2.Set(30);//语句

4

return0;

}

其主函数中错误的语句是()。

A)语句

1B)语句

2C)语句

3D)语句

4

(29)在类声明中,紧跟在“

public:

”后声明的成员的访问权限是()。

A)私有B)公有C)保护D)默认

(30)对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明

该基类成员的访问权限是()。

A)公有或私有B)私有C)保护或私有D)公有或保护

(31)定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为()。

A)私有继承B)非私有继承C)保护继承D)公有继承

(32)建立一个有成员对象的派生类对象时,各构造函数体的执行次序为()。

A)派生类、成员对象类、基类

B)成员对象类、基类、派生类

C)基类、成员对象类、派生类

D)基类、派生类、成员对象类

(33)如果表达式

a>=b中的“

>=”是作为非成员函数重载的运算符,则可以等效地表示为

()。

A)a.operator>=(b)B)b.operatotr>=(a)

C)operator>=(a,b)D)operator>=(b,a)

(34)当使用

ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为

()。

A)iosbase:

:

inB)ios_base:

:

binary

C)ios_base:

:

in|ios_base:

:

outD)ios_base:

:

out

(35)在一个抽象类中,一定包含有()。

A)虚函数B)纯虚函数C)模板函数D)重载函数

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

30分)

(1)对下列二叉树进行中序遍历的结果

___________。

A

BC

DEF

XYZ

(2)按照软件测试的一般步骤,集成测试应在

___________测试之后进行。

(3)软件工程三要素包括方法、工具和过程,其中,

___________支持软件开发的各个环节

的控制和管理。

(4)数据库设计包括概念设计、

___________和物理设计。

(5)在二维表中,元组的

___________不能再分成更小的数据项。

(6)当使用关键字

___________作为函数返回类型时,该函数不返回任何值。

(7)已知数组

a中有

n个元素,下列语句将数组

a中从下标

xl开始的

k个元素移动到从下

x2开始的

k个元素中,其中

0<=xl

For(inti=xl+k-1;i>=xl;i--)

a[___________]=a[i];

(8)有如下程序:

#include

usingnamespacestd;

intfun1(intx){return++x;}

intfun2(int&x){return++x;}

intmain(){

intx=1,y=2;

y=fun1(fun2(x));

cout<

return0:

}

程序的输出结果是___________。

(9)有如下程序:

#include

usingnamespacestd;

classpumpkin{

public:

pumpkin(){++count;}

~pumpkin(){--count;}

staticvoidtotal_count(){

cout<

}

private:

staticintcount;

};

intpumpkin:

:

count=0;

intmain(){

pumpkinpl[10];

pumpkin:

:

total_count();

return0;

}

这个程序的输出结果是___________。

(10)有如下递归函数:

intFun(intn){

if(n<=1)return1;

}

请补充完整,使得函数

Fun能够正确计算形参

n的阶乘。

(11)请在下列程序中的空格处填写正确的语句:

classSample{

public:

Sample(){}

~Sample(){}

voidSetData(intdata){//将

Sample类成员变量

data设置成形参的值

}

private:

intdata;

};

(12)有如下类定义,请将

Sample类的拷贝构造函数补充完整。

classSample{

public:

Sample(){)

~Sample(){if(p)deletep;)

Sample(constSample&s){

}

voidSetData(intdata){p=newint(data);}

private:

int*p;

};

(13)重载加法运算符“

+”,其函数名是___________。

(14)有如下程序:

#include

usingnamespacestd;

classWages{//“工资”类

doublebase;//基本工资

doublebonus;//奖金

doubletax;//税金

public:

Wages(doubleCBase,doubleCBonus,doubleCTax):

base(CBase),bonus(CBonus),tax(CTax){}

doublegetPay()const;//返回应付工资额

Wagesoperator+(Wagesw)const;//重载加法

};

doubleWages:

:

getPay()const{returnbase+bonus-tax;}

WagesWages:

:

operator+(Wagesw)const{

returnWages(base+w.base,bonus+w.bonus,tax+w.tax);

}

intmain(){

Wageswl(2000,500,100),w2(5000,1000,300);

cout<<(wl+w2).getPay0<

retun0;

}

程序的输出结果是___________

(15)有如下程序:

#include

usingnamespacestd;

classPet{

charname[10];

public:

Pet(char*name){strcpy(this->name,name);}

constchar*getName()const{returnname;}

virtualvoidcall()const=0;

};

classDog:

publicPet{

public:

Dog(char*name):

Pet(name){}

voidcall()const{cout<<"汪汪叫";}

};

classCat:

publicPet{

public:

Cat(char*name):

Pet(name){}

voidcall()const{cout<<"喵喵叫";}

};

intmain(){

Pet*pet1=newDog("哈克"),*pet2=newCat("吉米");

cout<getName();pet1->call();cout<

cout<getName();pet2->call();cout<

return0;

}

程序的输出结果是___________。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1