历年全国计算机等级考试二级C++真题及答案10年12年.docx

上传人:b****4 文档编号:3686109 上传时间:2022-11-24 格式:DOCX 页数:91 大小:98.25KB
下载 相关 举报
历年全国计算机等级考试二级C++真题及答案10年12年.docx_第1页
第1页 / 共91页
历年全国计算机等级考试二级C++真题及答案10年12年.docx_第2页
第2页 / 共91页
历年全国计算机等级考试二级C++真题及答案10年12年.docx_第3页
第3页 / 共91页
历年全国计算机等级考试二级C++真题及答案10年12年.docx_第4页
第4页 / 共91页
历年全国计算机等级考试二级C++真题及答案10年12年.docx_第5页
第5页 / 共91页
点击查看更多>>
下载资源
资源描述

历年全国计算机等级考试二级C++真题及答案10年12年.docx

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

历年全国计算机等级考试二级C++真题及答案10年12年.docx

历年全国计算机等级考试二级C++真题及答案10年12年

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

2012年9月全国计算机等级考试二级C++笔试试卷

C++语言程序设计

(考试时间90分钟,满分100分)

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

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列链表种,其逻辑结构属于非线性结构的是

A)循环链表B)双向链表C)带链的栈D)二叉链表

(2)设循环队列的存储空间为Q(1:

35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为

A)16B)20C)0或35D)15

(3)下列关于栈的叙述中,正确的是

A)栈顶元素一定是最先入栈的元素B)栈操作遵循先进后出的原则

C)栈底元素一定是最后入栈的元素D)以上三种说法都不对

(4)在关系数据库中,用来表示实体间联系的是

A)二维表B)树状结构C)属性D)网状结构

(5)公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是

A)m:

1联系B)1:

m联系C)1:

1联系D)m:

n联系

(6)有两个关系R和S如下:

R

 

S

A

B

C

 

A

B

C

a

1

2

 

c

3

1

b

2

1

 

 

 

 

c

3

1

 

 

 

 

则由关系R得到关系S的操作是

A)自然连接B)选择C)并D)投影

(7)数据字典(DD)所定义的对象都包含于

A)程序流程图B)数据流图(DFD图)C)方框图D)软件结构图

(8)软件需求规格说明书的作用不包括

A)软件可行性研究的依据B)用户与开发人员对软件要做什么的共同理解

C)软件验收的依据D)软件设计的依据

(9)下面属于黑盒测试方法的是

A)逻辑覆盖B)语句覆盖C)路径覆盖D)边界值分析

(10)下面不属于软件设计阶段任务的是

A)数据库设计B)算法设计

C)软件总体设计D)制定软件确认测试计划

(11)下列关于函数重载的叙述中,错误的是

A)重载函数的参数个数可以不同

B)重载函数的参数类型可以不同

C)重载函数的返回值类型必须不同

D)重载函数的参数个数或参数类型必须有所不同

(12)下列关于类成员对象构造函数调用顺序的叙述中,正确的是

A)与它们在初始化列表中顺序相同

B)与它们在类中声明的顺序相同

C)与析构函数的调用顺序相同

D)顺序不确定

(13)下列关于派生类的叙述中,错误的是

A)派生类至少要有一个基类

B)派生类中包括了从基类继承的成员

C)一个派生类可以作为另一个派生类的基类

D)基类成员被派生类继承以后访问权限保持不变

(14)下列关于运算符重载的叙述中,正确的是

A)通过运算符重载机制可以为C++语言扩充新的运算符

B)运算符重载的作用是使已有的运算符作用于类的对象

C)重载运算符的操作数类型可以全部为基本类型

D)所有运算符都可以重载

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

A)调用模板函数时,有时可以省略模板实参

B)函数模板的每个实例就是一个函数定义

C)类模板的每个实例就是一个类定义

D)类模板的实例是一个类对象

(16)下列关于输入输出流的叙述中,正确的是

A)一个文件流可以与一个数据文件相联系

B)cin是专门从键盘输入数据的输入流类

C)流运算符<<用来从输入流中读取数据

D)宽度设置的效果永久有效

(17)下列选项中可以做C++标识符的是

A)_256B)fat/pigC)deleteD)5char

(18)关键字unsigned不能修饰的类型是

A)charB)intC)floatD)longint

(19)有如下程序:

#include

usingnamespacestd;

intmain(){

chara;

cin>>a;

if(a='*')cout<<"***"<

elsecout<<"###"<

return0;

}

A)***B)###C)***###D)无输出

(20)下列对一维数组a的定义中,语法正确的是

A)inta(10)B)intn=7,a[n];C)intn;cin>>n;inta[n];D)constintsize=10;inta[size];

(21)假设函数fun已经定义,其原型为”voidfun(inta,intb=7,char*p=”**”);”,下列函数调用中错误的是

A)fun(5)B)fun(5,8)C)fun(6,”##”)D)fun(0,0.”==”)

(22)已经函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是

A)voidprint()const;B)constvoidprint();C)voidconstprint();D)voidprint(const);

(23)已知基类Employees只有一个构造函数,其定义如下:

Employee:

:

Employee(intn):

id(n){}

Manager是Employees的派生类,则下列对Manager的构造函数的定义中,正确的是

A)Manager:

:

Manager(intn):

id(n){}

B)Manager:

:

Manager(intn){id=n;}

C)Manager:

:

Manager(intn):

Employee(n){}

D)Manager:

:

Manager(intn){Employee(n);}

(24)已知将运算符“+”和“*”作为类Complete的成员函数重载,设c1和c2是类Complex的对象,则表达式c1+c2*c1等价于

A)c1.operator*(c2.operator+(c1))B)c1.operator+(c2.operator*(c1))

C)c1.operator*(c1.operator+(c2))D)c2.operator+(c1.operator*(c1))

(25)下列类模板的定义中语法格式错误的是

A)templateclassBuffer{/*…*/};

B)templateclassBuffer{/*…*/};

C)templateclassBuffer{/*…*/};

D)templateclassBuffer{/*…*/};

(26)在C++中既可以用于文件输入又可以用于文件输出的流类是

A)fstreamB)ifstreamC)ofstreamD)iostream

(27)有如下类定义:

classMyClass{

intb;chara;doublec;

public:

MyClass():

c(0.0),b(0),a(','){}

};

创建这个类的对象时,数据成员的初始化顺序是

A)a,b,cB)c,b,aC)b,a,cD)c,a,b

(28)有如下类定义

classMyClass{

intx;

public:

MyClass():

x(0),y(0){}

intGetX(){returnx;}

voidSetX(intxx){x==xx;}

inty;

};

已知obj是类MyClass的对象,下列语句中违反类成员访问控制权限的是

A)obj.x;B)obj.y;C)obj.GetX();D)obj.SetX(0);

(29)有如下类定义

classTest{

chara;constcharb;

public:

Test(charc){a=c;b=c;}//第1行

voidf(chara)const{this->a=a;}//第2行

voidg(charb){this->b=b;}//第3行

charh()const{returna;}//第4行

};

编译时没有错误的行是

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

(30)有如下程序:

#include

usingnamespacestd;

classA{

public:

A(){cout<,'A';}

~A(){cout<<'C';}

};

classB:

publicA{

public:

B(){cout<<'G';}

~B(){cout<<'T';}

};

intmain(){

Bobj;

return0;

}

运行这个程序的输出结果是

A)GATCB)AGTCC)GACTD)AGCT

(31)有如下程序:

#include

usingnamespacestd;

classBase{

public;

voidfun(){cout<<'B';}

};

classDerived:

publicBase{

public;

voidfun(){cout<<'D';}

};

intmain(){

Derivedd;

d.fun();

return0;

}

若程序的输出结果是BD,则划线处缺失的部分是

A)fun() B)Base.fun()C)Base:

:

fun()D)Base->fun()

(32)有如下程序:

#include

usingnamespacestd;

classB{

public;

virtualvoidf(){cout<<"B";}

voidg(){cout<<"B";}

}

classD;publicB{

public;

voidf(){cout<<"D";}

voidg(){coun<<"D";}

}

voidh(B*p){p->f();p->g();}

intmain(){

Dobj;

h(&obj);

return0;

}

运行这个程序的输出结果是:

A)DDB)BBC)BDD)DB

(33)有如下程序:

#include

#include

usingnamespacestd;

classMyString{

public;

charstr[80];

MyString(constchar*s){strcpy(str,s);}

MyString&operator+=(MyStringa){

strcat(str,a.str);

return*this;

}

};

ostream&operator<<(ostream&s,constMyString&z){returns<

intmain(){

MyStringx("abc"),y("cde");

cout<<(x+=y)<

return0;

}

运行这个程序的输出结果是

A)abcB)cdeC)abcdeD)abccde

(34)有如下程序:

#include

#include

usingnamespacestd;

intmain(){

cout<

return0;

}

A)##OK123B)##OK#123C)OK##123D) OK##123#

(35)有如下语句序列:

ifstreaminfile("DATA.DAT");

if(infile.good())cout<<"A";

else{

cout<<"B";

ofstreamoutfile("DATA.DAT");

if(outfile.fail())cout<<"C";elsecout<<"D";

}

若执行这个语句序列显示的是BD,则说明文件DATA.DAT

A)以读方式打开成功

B)以读方式打开失败,但以写方式打开成功

C)以读方式打开失败,以写方式打开也失败

D)以读方式打开成功,以写方式打开也成功

 

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

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

注意:

以命令关键字填空的必须拼写完整

(1)一棵二叉树共有47个结点,其中有23个度为2的结点,假设根结点在底1层,则该二叉树的深度为【1】。

(2)设栈的存储空间为S(1:

40),初始状态为bottom=0,top=0,现经过一系列入栈与出栈运算后,top=20,则当前栈中有【2】个元素。

(3)数据独立性分为逻辑独立性和物理独立性。

当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序不必修改,称为【3】。

(4)关系数据库中能实现的专门关系运算包括【4】、连接和投影。

(5)软件按功能通常可以分为应用软件、系统软件和支撑软件(或工具软件),Unix操作系统属于【5】软件。

(6)若有定义语句“intx=10;”,则表达式“x<=10?

20:

30”的值为【6】。

(7)下列语句的作用是计算正整数n的各位数字之和,例如:

n=123,sum=1+2+3,请将下列语句补充完整。

do{

sum+=;

n=n/10;

}while(n1=0)

(8)有如下程序:

#include

usingnamespacestd;

voidfun(int&x,inty){

y=y+x;

x=y/4;

x++;

}

intmain(){

intx=4,y=5;

fun(x,y);

cout<

return0;

}

运行这个程序的输出结果是【8】。

(9)有如下程序:

#include

usingnamespacestd;

classA{

pubic;

A(){cout<<1;}

A(constA&){cout<<2;}

-A(){cout<<3;}

};

intmain(){

Aobj1;

Aobj2(obj1);

return0;

}

运行这个程序的输出结果是【9】。

(10)若下列程序的输出结果是20,请将横线处缺失部分补充完整。

#include

usingnamespacestd;

classMyClass{

pubic;

MyClass(intx=)10:

value(x){}

voidSetValue(intx){value=x;cout<

private;

intvalue;

};

intmain(){

MyClass*ptr=newMyClass;

【10】//通过对象指针ptr调用SetValue函数

deleteptr;

return0;

}

(11)有下列程序的输出结果是2334,请将横线处缺失部分补充完整。

#include

usingnamespacestd;

classBase{

intm;

pubic;

Base(intk):

m(k){}

intgetM()const{returnm;}

}

classDerived:

publicBase{

intn;

public;

Derived(intk):

【11】,n(k){}

intgetN()const{returnn;}

}

intmain(){

Derivedd1(3),d2(4);

cout<

return0;

}

(12)在C++中,编译时的多态性是通过模板或函数【12】实现的。

(13)有些运算符既可以作为成员函数重载,也可以作为非成员函数重载。

若在一个重载的运算符函数的定义中成功地使用了this指针,说明它是作为【13】重载的。

(14)有如下程序:

#include

usingnamespacestd;

template

TAdd(Tv1,Tv2){returnv1+v2;}

intmain(){

cout<

return0;

}

运行这个程序的输出结果是【14】。

(15)有如下程序:

#include

usingnamespacestd;

classPoint{

doublex,y;

public;

Point(doublexx=0.0,doubleyy=0.0):

x(xx),y(yy){}

doublegetX()const{returnx;}

doublegetY()const{returny;}

voidshow()const{cout<<'('<

}

classLine{

Pointp1,p2;

public;

Line(Pointpp1,Pointpp2):

p1(pp1),p2(pp2){}

PointLeftMost()const{

if(p1.getX()<=P2.getX())returnp1;

returnp2;

}

}

intmain(){

Lineline(Point(3.1,5.2),Point(8.2,4.4));

line.LeftMost().show();

return0;

}

运行这个程序的输出结果是【15】。

 2012年9月全国计算机等级考试二级笔试C++答案

一、选择题答案

1-5)DCBAB

6-10)BBADD

11-15)CBDBC       

16-20)AAABD       

21-25)CACBD       

26-30)ABACB      

31-35)CDDAC

二、填空题答案

1、6

2、21

3、物理独立性

4、选择

5、系统

6、 20  

7、 n%10      

8、 8

9、1233     

10、 ptr->setvalue(20);

11、base(k-1)   

12、重载

13、成员函数       

14、5,5.8   

15、(3.1,5.2)

   }

2012年3月全国计算机等级考试二级笔试试卷

 VisualC++程序设计

 (考试时间90分钟,满分100分)

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

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是

A)循环队列是队列的一种链式存储结构B)循环队列是一种逻辑结构

C)循环队列是队列的一种顺序存储结构D)循环队列是非线性结构

 

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

A)栈是一种先进先出的线性表B)队列是一种后进先出的线性表

C)栈与队列都是非线性结构D)以上三种说法都不对

 

(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为

A)4B)16C)10D)6

 

(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是

A)逻辑模式B)概念模式C)内模式D)外模式

 

(5)在满足实体完整性约束的条件下

A)一个关系中可以没有候选关键字

B)一个关系中只能有一个候选关键字

C)一个关系中必须有多个候选关键字

D)一个关系中应该有一个或多个候选关键字

 

(6)有三个关系R、S和T如下:

 

R

 

 

 

s

 

 

 

t

 

A

B

C

 

A

B

C

 

A

B

C

a

1

2

 

a

1

2

 

b

2

1

b

2

1

 

d

2

1

 

c

3

1

c

3

1

 

 

 

 

 

 

 

 

则由关系R和S得到关系T的操作是

A)并B)差C)交D)自然连接

 

(7)软件生命周期的活动中不包括

A)软件维护B)需求分析C)市场调研D)软件测试

 

(8)下面不属于需求分析阶段任务的是

A)确定软件系统的性能需求B)确定软件系统的功能需求

C)制定软件集成测试计划D)需求规格说明书评审

 

(9)在黑盒测试方法中,设计测试用例的主要根据是

A)程序外部功能B)程序数据结构C)程序流程图D)程序内部结构

 

(10)在软件设计中不使用的工具是

A)系统结构图B)程序流程图C)PAD图D)数据流图(DFD图)

 

(11)若一个函数的原型为"int*Xfun1(intx,int&y,charz);",则该函数的返回值类型为

A)int*B)int

C)int&D)char

(12)若AA为一个类,a为该类的私有整型数据成员,getA()为该类的一个非静态公有成员函数,功能是返回a的值。

如果x为该类的一个对象,要在类外访问x对象中a的值,正确的访问格式为

A)AA.getA()B)x.getA()

C)x.aD)AA:

:

a

(13)当派生类继承一个基类时,默认的继承方式为

A)publicB)protected

C)privateD)不确定

(14)若需要为XV类重载乘法运算符,运算结果为XV类型,在将其声明为类的成员函数时,下列原型声明正确的是

A)XVoperator*(XV,XV);

B)XV*(XV);

C)operator*(XV);

D)XVoperator*(XV);

(15)在定义函数模板或类模板时,开头的保留字是

A)typenameB)template

C)classD)typedef

(16)若需要向一个二进制文件尾部添加数据,则该文件的打开方式为

A)ios_base:

:

app

B)ios_base:

:

binary|ios_base:

:

out

C)ios_base:

:

out

D)ios_base:

:

binary|ios_base:

:

app

(17)在开发一个c++程序的整个过程中,第3个步骤为

A)链接B)运行

C)编辑D)编译

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

当前位置:首页 > 求职职场 > 简历

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

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