jl计算机二级c语言考什么,2014年全国计算机等级二级C++考前押密试卷 1

一、选择题(每小题1分,共40分)

1、假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。

A.3

B.6

C.10

D.20

2、有两个关系R,S如下:435bb2c22e672463557ced2bbe567a99.pngae58ac587b5a0180bb340878b0066cd6.png

由关系R通过运算得到关系s,则所使用的运算为(  )。

A.选择

B.投影

C.插入

D.连接

3、对于循环队列,下列叙述中正确的是( )。

A.队头指针是固定不变的

B.队头指针一定大于队尾指针

C.队头指针一定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

4、下列有关函数重载的叙述中,错误的是(  )。

A.函数重载就是用相同的函数名定义多个函数

B.重载函数的参数列表必须不同

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

D.重载函数的参数可以带有默认值

5、有三个关系R S和T如下.df1a62c8b9371945ae28fe795702310a.png

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

A.自然连接

B.并

C.交

D.差

6、下面关于类和对象的描述中,错误的是( )。

A.类就是C语言中的结构体类型,对象就是C语言中的结构体变量

B.类和对象之间的关系是抽象和具体的关系

C.对象是类的实例,一个对象必须属于一个已知的类

D.类是具有共同行为的若干对象的统一描述体

7、有如下程序:

#inClude using namespaCe std; Class test{

private: int a;

publiC:

test(  ){Cout<

test(Const test&_test){ a=test.a:

Cout<

test(  ){Cout<

};

int main(  ){ test A(3); return 0;

}

执行这个程序的输出结果是(  )。

A.3

B.ConstruCtor

destruCtor

C.Copy ConstruCtor

destruCtor

D.3

destruCtor

8、有如下函数模板:

template

T east(U u)i return u;}

其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是(  )。

A.cast(i);

B.cast<>(i);

C.east(i);

D.east(i);

9、下面程序的运行结果是(  )。

#include

void fun(int *a,int *B. {

int x=*a:

*a=*b;*b=X;

cout<

void main() {

int X=1,Y=2; fun(&x,&y);

cout<

}

A.12 12

B.12 21

C.21 12

D.21 21

10、在C++语言中,打开一个文件就是将这个文件与一个( )建立关联。

A.流

B.类

C.结构

D.对象

11、 下列语句中,错误的是( )。

A.const int buffer:256;

B.const int temp;

C.const double*point;

D.const double*rt=new double(5.5);

12、 下列程序的输出结果为( )。

#include

void main()

{

char*a[]={”hell0”,”the”,”world”};

char** pa = a:

pa++;

cout<

}

A.hello

B.the

C.world

D.hellotheworld

13、 关于运算符重载,下列表述中正确的是(  )。

A.C++已有的任何运算符都可以重载

B.运算符函数的返回类型不能声明为基本数据类型

C.在类型转换符函数的定义中不需要声明返回类型

D.可以通过运算符重载来创建C++中原来没有的运算符

14、 可以用P.a的形式访问派生类对象P的基类成员a,其中a是( )。

A.私有继承的公有成员

B.公有继承的私有成员

C.公有继承的保护成员

D.公有继承的公有成员

15、 在下列原型所示的C++函数中,按“传值”方式传递参数的是(  )。

A.void fl(int X);

B.void t2(int*X);

C.void f3(Const int*X);

D.void f4(int&x);

16、 以下关键字不能用来声明类的访问权限的是(  )。

A.public

B.static

C.protected

D.private

17、下面程序的运行结果为( )。

#include class A

{

int hum;

public:

A(int i){nuln=i;}

A(A&A.{num=a.num十+;} void print(){eout(

void main()

A a(1),b(A.; a.print();

A print();

A.11

B.12

C.21

D.22

18、 下面是重载为非成员函数的运算符的函数原型,其中错误的是( )。

A.Fraction operator+(Fraction,Fraction);

B.Fraction operator一(Fraction);

C.Fraction&operator=(Fraction&,Fraction);

D.Fraction&operator+=(Fraction&,Fraction);

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

A.Const int a;

B.Const int a=10;

C.Const int * point=0;

D.Const int * point=new int(10);

20、 下列关于函数的描述中,错误的是( )。

A.函数可以没有返回值

B.函数可以没有参数

C.函数可以是一个类的成员

D.函数不能被定义为模板

21、 下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是( )。

A.cout<

B.eout<

C.cout<

D.cout<

22、 有三个关系R、S和T如下:7d502770c35c7c587b7ddc7ddc4d6e58.png

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

A.自然连接

B.差

C.交

D.并

23、 有如下程序:

#include

using namespace std;

class VAC{

public:

intf()const{return 3;}

int f(){retum 5;}

};

int main()

{

VAC vl;

const VAC v2;

cout<

return 0;

}

执行这个程序的输出结果是( )。

A.53

B.35

C.55

D.33

24、 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(  )。

A.一对一

B.一对多

C.多对一

D.多对多

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

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

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

C.叶子结点数是度为2的结点数的两倍

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

26、 有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)( )。

int a[10]={0,1,2,3,4,5,6,7,8,9},*P=a;

A.a[P-a]

B.*(&a[i])

C.P[i]

D.*(*(a+i))

27、 下列程序的运行结果为( )。

#include

void print(double A.

{

cout<

}

void print(int atint B.

{

cout<

}

void main()

{

print(1.2);

eout<

print(3,4);

}

A.1.2 34

B.2.2 34

C.1.2 43

D.2.2 43

28、 存在定义int a[10],x,* pa;,若pa=&a[0],下列的( )选项和其他3个选项不是等价的。

A.x=*pa;

B.x=*(a+1);

C.x=*(pa+l)

D.x=a[1];

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

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

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

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

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

30、 通常拷贝构造函数的参数是( )。

A.某个对象名

B.某个对象的成员名

C.某个对象的引用名

D.某个对象的指针名

31、如果在表达式++x/y中,“++”是作为友元函数重载的,…/”是作为成员函数重载的,则该表达式还可为( )。

A.(operator++(x)).operator/(Y)

B.(operator++(0)).operator/(Y)

C.operator/((operator++(x,0)),Y)

D.operator/((operator++(0)),Y)

32、 一个函数功能不太复杂但要求被频繁调用,应选用( )。

A.内联函数

B.重载函数

C.递归函数

D.嵌套函数

33、 数据库应用系统中的核心问题是(  )。

A.数据库设计

B.数据库系统设计

C.数据库维护

D.数据库管理员培训

34、 有如下程序: Class Base{ publiC:

int data; };

Class Derivedl:publiC Base{};

Class Derived2:proteCted Base{};

int main(  ) {

Derivedl dl; Derived2 d2; dl.data=0;//①

d2.data=0;//② retum 0;

}

下列关于程序编译结果的描述中,正确的是(  )。

A.①②皆无编译错误

B.①有编译错误,②无编译错误

C.①无编译错误,②有编译错误

D.①②皆有编译错误

35、 下列关于基类和派生类关系的叙述中,正确的是(  )。

A.每个类最多只能有一个直接基类

B.派生类中的成员可以访问基类中的任何成员

C.基类的构造函数必须在派生类的构造函数体中调用

D.派生类除了继承基类的成员,还可以定义新的成员

36、 结构化程序所要求的基本结构不包括( )。

A.顺序结构

B.GOT0跳转

C.选择(分支)结构

D.重复(循环)结构

37、将E—R图转换为关系模式时,实体和联系都可以表示为(  )。

A.属性

B.键

C.关系

D.域

38、 下面是一个模板声明的开始部分:

templatedouble…由此可知( )。

A.这可能是一个函数模板的声明

B.这可能是一个类模板的声明

C.这既可能是一个函数模板的声明,也可能是一个类模板的声明

D.这肯定是一个错误的模板声明

39、有如下程序:

#include

using namespace std;

class AA{

int k;

protected:

int n;

void setK(int k){this一>k=k;}

public:

void setN(int n){this一>n=n;}

};

class BB:public AA{/*类体略*/};

int main()

}

BB X;

A n=1;//1

B setN(2);//2

C k=3;//3

D setK(4);//4

return 0;

}

在标注号码的四条语句中正确的是( )。

A.1

B.2

C.3

D.4

40、 有如下头文件:

int fl();

static int f2();

class MA{

public:

int f3();

static int f4();

};

在所描述的函数中,具有隐含的this指针的是( )。

A.fl

B.f2

C.f3

D.f4

二、基本操作题(18分)

41、

请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,该工程中包含程序文件main.epp,其中有类Door(“门”)和主函数main的定义。程序中位于每个“//ERROR****found ****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:

打开503号门…门是锁着的,打不开。

打开503号门的锁…锁开了。

打开503号门…门打开了。

打开503号门…门是开着的,无须再开门。

锁上503号门…先关门...门锁上了。

注意:只修改每个“//ERROR***********found **********”下的那一行,不要改动程序中的其他内容。

#include

using namespace std;

class Door{

int Bum;//门号

bool closed;//true表示门关着

bool locked://true表示门锁着

public:

Door(int nHm){

//ERROR***********found***********

nun=this一>ann:

closed=locked=true:

}

bool isClosed()const{rehlrn closed;}

//门关着时返回true,否则返回false

bool isOpened()const{return!closed;}

//门开着时返回true,否则返回false

b001 isLocked()const{retum locked;}

//门锁着时返回true,否则返回false

bool isUnlocked()const{return!locked;}

//门未锁时返回true,否则返回false

void open(){ //开门

cout<

//ERROR***********found***********

if(closed)

cout<

else if(10cked)

cout<

else{

closed=false;

eout<

}

}

void close(){//关门

cout<

if(closed)

cout<

else{

closed=true;

cout<

}

}

//ERROR************found************

void lock()const{//锁门

cout<

if(locked)

cout<

else{

if(!closed){

cout<

closed=true;

}

locked=true:

cout<

}

}

wild unlock(){//开锁

cout<

if(!locked)

cout<

else{

locked=false;

cout<

}

};

int main(){

Door door(503);

door.open();

door.unlock();

door.open();

door.open();

floor.10ck();

return 0;

}

三、简单应用题(24分)

42、

请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件 main.cpp,其中有类CPolygon(“多边形”)、CRectangle(“矩形”)、CTriangle(“三角形”)的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序的正确输出结果应为: 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。 #include

{tout<

int area(void){return(width *height);}

class CTriangle:public CPolygon{

int length;//三角形一边长 int height;//该边上的高

public:

CTriangle(int l,int h):length(1),height(h){}

//*********found*********

int area(void){return(——)/2;}

};

int main(){

CRectangle rect(4,5); CTriangle trgl(4,5);

//*********found********* ______ *ppolyl,* ppoly2; ppolyl=&rect;

ppoly2=&trgl;

ppolyl->printarea(); ppoly2->printarea(); retun 0;

四、综合应用题(18分)

43、请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。s0rt成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为: .

排序前:7,1,3,11,6,9,12,10,8,4,5,2 排序后:l,2,3,4,5,6,7,8,9,10,11,12

要求:

补充编制的内容写在“//********33********”与“//********666********”两行之问。不得修

改程序的其他部分。

注意:程序最后将结果输出到文件。ut.dat中。输出函数writeToFile已经编译为。obj文件,并且在本程序

调用。

//DataList.h

#inClude using namespaCe std; Class DataList{//数据表类

int len;

double*d: publiC:

DataList(int len,double data[]=NULL);。DataList(){delete[]d;}

int length(Constt retum len;}//数据表长度(即数据元素的个数) double getElement(int i)Const{return d[i];}

void sort();//数据表排序

void show()Const;//显示数据表}.

void writeToFile(Char*,Const DataList&).//main.Cpp

#inClude”DataList.h”

DataList::DataList(int len,double data[]):len(1en){ d=new double[1en];

for(int i_0;i

d[i]=(data==NULL?0.0:data[i]);

}

void DataList::sort(){//数据表排序//********333********

//********666********}

void DataList::show()Const{//显示数据表

for(int i=0;i

int main(){

double S[]={7,1,3,11,6,9,12,10,8,4,5,2}; DataList list(12,S);

Cout<

list.sort();

Cout<

writeToFile(””,list); return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值