历年全国计算机等级考试二级C++真题及答案_第1页
历年全国计算机等级考试二级C++真题及答案_第2页
历年全国计算机等级考试二级C++真题及答案_第3页
历年全国计算机等级考试二级C++真题及答案_第4页
历年全国计算机等级考试二级C++真题及答案_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

目录

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

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

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

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

一、选择题答案10

二、填空题答案11

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

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

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

2012年3月计算机等级考试二级C++笔试真题答案21

一、选择题答案21

二、填空题答案21

2011年9月全国计算机等级考试二级笔试试卷22

一、选择题((1)-(1。)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)...22

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

2011年9月全国计算机等级考试二级笔试C++语言程序设计答案及解析33

一、选择题答案33

二、填空题答案40

2011年3月计算机二级考试C++笔试试题43

一、选择题43

二、填空题50

2011年3月全国计算机二级C++笔试试题答案:53

一、选择题答案53

二、填空题答案53

2010年9月全国计算机二级C++笔试试题:53

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

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

2010年9月计算机等级考试二级C++笔试答案63

2010年3月计算机等级考试二级C++笔试试题64

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

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

2010年3月计算机等级考试二级C++笔试答案73

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

C++语言程序设计

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

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

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

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

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

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

(2)设循环队列的存储空间为Q(l: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:l联系B)l:m联系C)1:1联系D)m:n联系

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

RS

ABCABC

a12c31

b21

c31

则由关系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<iostream>

usingnamespacestd;

intmain(){

chara;

cin»a;

if(a='*')cout«"***"«endl;

elsecout«"###"«endl;

return0;

)

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

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

A)inta(10)B)intn=7,a[n];C)intn;cin»n;inta[n];D)const

intsize=10;inta[size];

(21)假设函数fun已经定义,其原型为"voidfun(intajntb=7,char*p二〃**〃『,下

列函数调用中错误的是

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

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

A)voidprint()const;B)constvoidprint();Ovoidconstprint();

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的成员函数重载,设cl和c2

是类Complex的对象,则表达式cl+c2*cl等价于

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

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

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

A)template<classT>classBuffer{/*...*/};

B)template<typenameT>classBuffer{/*...*/};

C)template<classTl,classT2>classBuffer{/*...*/};

D)template<T>classBuffer{/*...*/};

(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(O),y(O){}

intGetX(){returnx;}

voidSetX(intxx){x==xx;}

inty;

);

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

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

(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<iostream>

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<iostream>

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<iostream>

usingnamespacestd;

classB{

public;

virtualvoidf(){cout«"B";}

voidg(){cout«"B";}

)

classD;publicB{

public;

voidf(){cout«"DH;}

voidg(){coun«"D";}

)

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

intmain(){

Dobj;

h(&obj);

return0;

}

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

A)DDB)BBC)BDD)DB

(33)有如下程序:

#include<iostream>

#include<cstring>

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«z.str}

intmain(){

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

cout«(x+=y)«endl;

return0;

}

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

A)abcB)cdeC)abcdeD)abccde

(34)有如F程序:

#include<iostream>

#include<iomanip>

usingnamespacestd;

intmain(){

cout«setfill(,#,)«setw(4)«"OK,,«123«endl;

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层,则该二义树的深度为II]O

(2)设栈的存储空间为S(l:40),初始状态为bottom=0,top=0,现经过一系列

入栈与出栈运算后,top=20,则当前栈中有【2】个元素。

(3)数据独立性分为逻辑独立性和物理独立性。当总体逻辑结构改变时,其局

部逻辑结构可以不变,从而根据局部逻辑结构编写的应用程序不必修改,称为

[3]o

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

(5)软件按功能通常可以分为应用软件、系统软件和支撑软件(或工具软件),

Unix操作系统属于【5】软件。

(6)若有定义语句“intx=10;”,则表达式“x<=10?20:30”的值为【6】。

(7)下列语句的作用是计算正整数n的各位数字之和,例如:n=123,sum=l+2+3,

请将下列语句补充完整。

do{

sum+=;

n=n/10;

}while(nl=O)

(8)有如下程序:

#include<iostream>

usingnamespacestd;

voidfun(int&x,inty){

y=y+x;

x=y/4;

x++;

}

intmain(){

intx=4,y=5;

fun(x,y);

cout«x+y;

return0;

}

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

(9)有如下程序:

#include<iostream>

usingnamespacestd;

classA{

pubic;

A(){cout«l;}

A(constA&){cout«2;}

-A(){cout«3;}

};

intmain(){

Aobjl;

Aobj2(objl);

return0;

}

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

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

#include<iostream>

usingnamespacestd;

classMyClass{

pubic;

MyClass(intx=)10:value(x){}

voidSetValue(intx){value=x;cout«x;}

private;

intvalue;

);

intmain(){

MyClass*ptr=newMyClass;

【10]〃通过对象指针ptr调用SetValue函数

deleteptr;

return0;

}

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

#include<iostream>

usingnamespacestd;

classBase{

intm;

pubic;

Base(intk):m(k){}

intgetM()const{returnm;}

}

classDerived:publicBase{

intn;

public;

Derived(intk):[11]/n(k){}

intgetN()const{returnn;}

)

intmain(){

Deriveddl(3),d2(4);

cout«dl.getM()«dl.getN«d2.getM()«D2.getN();

return0;

}

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

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

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

载的。

(14)有如下程序:

#include<iostream>

usingnamespacestd;

template<typenameT>

TAdd(Tvl,Tv2){returnvl+v2;}

intmain(){

cout«Add(2,3)«7«Add(2,3,3.5);

return0;

}

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

(15)有如下程序:

#include<iostream>

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«(x«'z«¥«')';}

}

classLine{

Pointpl,p2;

public;

Line(Pointppi,Pointpp2):pl(ppl),p2(pp2){}

PointLeftMost()const{

if(pl.getX()<=P2.getX())returnpl;

returnp2;

}

}

intmain(){

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

line.LeftMost().show();

return0;

}

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

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-l)

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)循环队列是一种逻辑结

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

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

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

线性表

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

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

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

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

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

外模式

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

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

候选关键字

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

个或多个候选关键字

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

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

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

D)软件测试

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

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

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

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

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

D)程序内部结构

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

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

图)

(11)若一个函数的原型为"int*Xfunl(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::binaryIiosbase::out

C)ios_base::out

D)ios_base::binaryiosbase::app

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

A)链接B)运行

C)编辑D)编译

(18)若有定义"intx=4,y=5;",则表达式"y>x++?x—:y++”的值为

A)3B)4

C)5D)6

(19)有如下程序:

#include<iostream>

usingnamespacestd;

intmain(){

inti,s=0;

for(i=l;s<20;i+=2)s+=i*i;

cout<<i«endl:

return0;

)

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

A)3B)5

C)79)9

(20)若字符指针p所指向的字符串为"abcdefg”,在执行语句

char*ap=newchar[strlen(p)+l];

之后,ap指向的字符数组的元素个数为

A)9B)8

C)7D)6

(21)有如下程序:

#include<iostream>

usingnamespacestd;

voidfl(int&x){x++;}

voidf2(intx){++x;}

intmainO{

intx=10,y=12;

fl(x);

f2(y);

cout<<x+y<<endl:

return0;

)

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

A)22B)23

C)24D)25

(22)有如下程序:

#include<iostream>

usingnamespacestd;

classXA{

inta;

public:

staticintb;

XA(intaa):a(an){b++;}

intgetA0{returna;}

);

intXA::b=0;

intmain(){

XAdl(4),d2(5);

cout<<dl.getA()+d2.getA()+XA::b+dl.b<<endl;

return0;

)

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

A)9B)ll

013D)15

(23)有如下程序:

#include<iostream>

usingnamespacestd;

classXX{

intx;

public:

XX(intxx=0):x(xx){}

intgetX(){returnx;}

};

classYY:publicXX{

inty;

public:

YY(intxx,intyy):x(xx),y(yy){}

intgetV(){returngetX()+y;}

);

intmainO{

YYc(3,4);

cout<<c.getV()+c.getX()«endl;

return0;

}

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

A)3B)4

C)7D)10

(24)在类中重载赋值运算符时,应将其声明为类的

A)静态函数B)友元函数

C)成员函数D)构造函数

(25)若有函数模板mySwap和一些变量定义如下:

template<classT>

voidmySwap(TX,TY);

doubledl,d2;intil,i2;

下列对mySwap的调用中,错误的是

A)mySwap(il,i2)

B)mySwap(dl,d2)

C)mySwap(il,dl)

D)mySwap<int>(i2,d2)

(26)在C++中,打开一个文件时与该文件建立联系的是

A)流对象B)模板

C)函数D)类

(27)已知类IMS中两个成员函数的声明为〃voidlisten()const;〃与"void

speak();,z,

另有两个对象的定义为〃IMSobjl;〃与〃constIMSobj2;〃,则下列语句中,产生编

译错误

的是

A)objl.listenO;

B)objl.speak();

C)obj2.listenO;

D)obj2.speak();

(28)有如下程序:

#include<iostream>

usingnamespacestd;

classMonkey{

public:

Monkey0{cout<<,;}

Monkey(charn){cout«n;}

^Monkey(){cout<<,;}

);

intmain(){

Monkeypl,*p2;

p2=newMonkey('X');

deletep2;

return0;

)

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

A)MYXB)MYMY

C)MXYD)MXYY

(29)有如下程序:

#include<iostream>

usingnamespacestd;

classBoat;

classCar{

public:

Car(inti):weight(i){}

friendintTotal(constCar&c,constBoat&b);〃①

private:

intweight;

);

classBoat{

public:

Boat(inti):weight(i){}

friendintTotal(constCar&c,constBoat&b);

private:

intweight;

);

intTotal(constCar&c,constBoat&b){〃②

returnc.weight+b.weight;

}

intmain(){

Carc(10);

Boatb(8);

cout<<,,Thetotalweightis,,<<Total(c,b)«endl;〃③

return0;

)

下列关于程序的描述中,正确的是

A)程序编译正确

B)程序编译时语句①出错

C)程序编译时语句②出错

D)程序编译时语句③出错

(30)有如下程序:

#include<iostream>

usingnamespacestd;

classMedia{

public:

voidName();

voidShow();

protected:

intpage;

};

classBook:privateMedia{

public:

voidPrint0{cout«page<<endl;}

voidShowO{Media::Show();}〃①

);

intmain(){

BookBible;

Bible.Name();〃②

Bible.Print();〃③

Bible.Show();〃④

return0;

)

编译时有错误的是

A)语句①B)语句②

C)语句③D)语句④

(31)有如下程序:

#include<iostream>

usingnamespacestd;

classBase{

public:

virtualvoidShow。{cout<X'B';}

};

classDerived:publicBase{

public:

voidShow。{cout<<'D';}

);

intmainO{

Base*pl二newDerived;

Derived*p2=newDerived;

pl->Show();

p2->Show();

deletepl;

deletep2;

return0;

}

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

A)BBB)BD

C)DBD)DD

(32)有如下类定义:

classAnimal{

public:

virtualvoidName()=0;

};

classKoala:publicAnimal{

public:

voidName(){/*函数体略*/}

);

关于上述类定义,下列描述中错误的是

A)类Koala是类Animal的派生类

B)类Koala中的Name函数是一个虚函数

C)类Animal中的Name函数是一个纯虚函数

D)语句〃Animala;〃能够建立类Animal的一个对象a

(33)已知类MyClock中未显式定义构造函数,并重载了加法运算符,使得下面

的语句

序列能够正确执行:

MyClockcl,c2;

//

c2=cl+10;

由此可知,为类MyClock重载的〃+〃运算符函数的声明是

A)friendMyClockoperator+(MyClock,int);

B)friendMyClockoperator+(MyClock,MyClock);

C)friendMyClockoperator+(int,MyClock);

D)MyClockoperator+(MyClock);

(34)下列控制对齐方式的操作符中,错误的是

A)internalB)center

C)leftD)right

(35)有如下程序:

#include<iostream>

usingnamespacestd;

classMountain{

intheight;

public:

Mountain(inth=0):height(h){}

virtualchar*GetName()const

{return〃山〃;}

intGetHeight()const{returnheight;}

};

classLushan:publicMountain{

public:

Lushan(intd):Mountain(d){}

char*GetName()const

{return〃庐山〃;}

);

intmain(){

Mountain*p=newLushan(1000);

cout<<p->GetName()<<〃海拔〃<<p->GetHeight()<<〃米〃;

return0;

)

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

A)庐山海拔1000米

B)庐山海拔。米

C)山海拔1000米

D)山海拔0米

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

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

上不

得分。

(1)在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动

表中的元

素个数为_____1-

(2)设循环队列的存储空间为Q(l:30),初始状态为front=rear=30o现经过

一系列

入队与退队运算后,front=16,rear=15,则循环队列中有__2一个元素。

(3)数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是

—3—o

(4)在将E-R图转换到关系模式时,实体和联系都可以表示成—4—o

(5)常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性

等概念

属于___5___o

(6)如果a为int型变量,b为double型变量,则表达式a+b的值的类型为

—6—o

(7)break语句可用于循环语句和—7—语句中。

(8)如果P是指向一个动态数组空间的指针变量,则释放该数组空间的语句

是___8____0

(9)如果一个函数在其函数体内直接或间接地调用自己,则该函数称为

__9___函数。

710)调用时不必提供参数的构造函数称为—10—构造函数。

(11)有如下程序:

#include<iostream>

usingnamespacestd;

classMachine{

staticintnum;

public:

Machine(){num++;}

staticvoidshowNumO

{cout«num;}

);

intMachine::num=0;

intmainO{

Machinea[10],b;

Machine::showNum();

return0;

)

运行这个程序的输出结果是—【11]—O

(12)类Base、Component和Derived的定义如下,请将横线处缺失部分补充完

整。

classBase{

doubledata;

public:

Base(doubled):data(d){}

);

classComponent{

intdata;

public:

Component(intd):data(d){}

};

classDerived:publicBase{

Componentcom;

charcharacter;

public:

Derived(doublea,intb,charc):

〃使用参数a初始化基类成员,使用参数b初始化成员对象com

___[12]___,character(c){}

);

(13)形状类Shape中包含一个纯虚函数draw,它无形参和返回值,则draw函

数在

Shape类中的原型声明是—[13]—o

(14)正方形类的定义如下,请将横线处缺失部分补充完整。

classSquare{

private:

doublewidth;

public:

Square(doublew):width(w){}

〃重载大于运算符用于比较两个正方形的大小,函数结果类型为

bool类型

___[14]___(Square&s);

);

(15)有如下程序,请将横线处缺失部分补充完整。

#include<iostream>

usingnamespacestd;

template<classT>

classDataset{

T*data;

intsize;

public:

Dataset(T*arr,intlength):size(length){

data=newT[length];

for(inti=0;i<length;i++)

dataEi]=arr[i];

}

);

intmainO{

intarr[]={2,4,6,8,10);

〃利用数组arr初始化类模板Dataset的对象set

—[15]—

return0;

)

2012年3月计算机等级考试二级C++笔试真题答案

参考答案:

一、选择题答案

ADABADADDABACDAACCDB

DBBBABBADADBCCDADCAC

二、填空题答案

n29数据操作语言关系面向对象方法a=1,b=223

k<=n074rgb572*a[i]cabtest

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

c语言程序设计

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

一、选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,

共70分)

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

卡相应位置上答在试卷上不得分。

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

A)算法就是程序B)设计算法时只需要考虑数据结

构的设计

C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对

(2)下列关于线性链表的叙述中,正确的是()。

A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C)进行插入与删除时,不需要移动表中的元素

D)以上三种说法都不对

(3)下列关于二叉树的叙述中,正确的是()。

A)叶子结点总是比度为2的结点少一个

B)叶子结点总是比度为2的结点多一个

c)叶子结点数是度为2的结点数的两倍

D)度为2的结点数是度为1的结点数的两倍

(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的

是()。

A)学生成绩管理系统

B)C语言编译程序

C)UNIX操作系统

D)数据库管理系统

(5)某系统总体结构图如下图所示:

该系统总体结构图的深度是()。

A)7

B)6

C)3

D)2

(6)程序调试的任务是()。

A)设计测试用例B)验证程序的正确性

C)发现程序中的错误D)诊断和改正程序中的错误

(7)下列关于数据库设计的叙述中,正确的是()。

A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典

C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字

(8)数据库系统的三级模式不包括()。

A)概念模式B)内模式C)外模式D)数据模式

(9)有三个关系R、S利T如下:

RST

HABC

ratzltnsc31

LbJ□JEJ

L±JL±JL±JLD

则由关系R和s得到关系T的操作是()。

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

(10)下列选项中属于面向对象设计方法主要特征的是()。

A)继承B)自顶向下C)模块化D)逐步求精

(11)以下叙述中错误的是()。

A)C语言编写的函数源程序,其文件名后缀可以是.C

B)C语言编写的函数都可以作为一个独立的源程序文件

C)C语言编写的每个函数都可以进行独立的编译并执行

D)一个C语言程序只能有一个主函数

(12)以下选项中关于程序模块化的叙述错误的是()。

A)把程序分成若干相对独立的模块,可便于编码和调试

B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

c)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

D)可采用自项向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

(13)以下选项中关于c语言常量的叙述错误的是()。

A)所谓常量,是指在程序运行过程中,其值不能被改变的量

B)常量分为整型常量、实型常量、字符常量和字符串常量

c)常量可分为数值型常量和非数值型常量

D)经常被使用的变量可以定义成常量

(14)若有定义语句:inta=10;doubleb=3.14;,则表达式,A'+a+b值的类型是().

A)charB)intC)doubleD)float

(15)若有定义语句:intx=12,3=8,z;,在其后执行语句z=0.9+x/y;,则Z的值为()。

A)l.9B)lC)2D)2.4

(16)若有定义:inta,b;,通过语句scanf("%d;%d”,&a,&b);,能把整数3赋给变量a,5

赋给变量b的输入数据是()。

A)35B)3,5C)3;5D)35

(17)若有定义语句:intkl=10,k2=20;,执行表达式(kl=kl>k2)&&(k2=k2>kl)后,kl和k2

的值分别为()。

A)0和1B)0和20C)10和1D)10和20

(18)有以下程序

#include

main()

{inta=l,b=0;

if(-a)b++;

elseif(a=0)b+=2:

elseb+=3:

printf("%d\n",b);

)

程序运行后的输出结果是()o

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

(19)下列条件语句中,输出结果与其他语句不同的是()o

A)if(a)printf("%d\-n",x);elseprintf(H%d\nH,y);

B)if(a―O)printf(,,%d\n",y);elseprintf(n%d\n",x);

C)if(a!=O)p由tf(”%d\n",x);elseprintf("%d\nn,y);

D)if(a=O)printf(u%d\nH,x);elseprintf("%d\n",y);

(20)有以下程序

#include

main()

{inta=7;

while(a-);

printf(',%d\nn,a);

)

程序运行后的输出结果是()o

A)-lB)0C)1D)7

(21)以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为

97)

A)printf(u%c\nM,才-32);B)printf(H%d\n",'A');

c)printf(H%c\n",65);D)print-f(M%c\nn,'B'-l);

(22)有以下程序(注:字符a的ASCH码值为97)

#include

main()

{char*s={,,abeH);

do

{printf(''%d'',+s%10);++s;)

while(+s);

)

程序运行后的输出结果是()。

A)abcB)789Q7890D)979899

(23)若有定义语句:doublea,+p=&a;以下叙述中错误的是()。

A)定义语句中的*号是一个间址运算符

B)定义语句中的*号只是一个说明符

C)定义语句中的P只能存放double类型变量的地址

D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量P

(24)有以下程序

#include

doublef(doublex);

main()

{doublea_0;inti;

for(i=0;i<30;i+=10)a+-f((double)i);

printf("%5.Of\n",a);

)

doublef(doublex)

(returnX+x+1;)

程序运行后的输出结果是()。

A)503B)401C)500D)1404

(25)若有定义语句

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论