试题及答案.docx

上传人:b****7 文档编号:9629334 上传时间:2023-02-05 格式:DOCX 页数:11 大小:33.66KB
下载 相关 举报
试题及答案.docx_第1页
第1页 / 共11页
试题及答案.docx_第2页
第2页 / 共11页
试题及答案.docx_第3页
第3页 / 共11页
试题及答案.docx_第4页
第4页 / 共11页
试题及答案.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

试题及答案.docx

《试题及答案.docx》由会员分享,可在线阅读,更多相关《试题及答案.docx(11页珍藏版)》请在冰豆网上搜索。

试题及答案.docx

试题及答案

全国2010年10月高等教育自学考试

C++程序设计试题

课程代码:

04737

一、单项选择题(本大题共20小题,每小题1分,共20分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.C++中注释“∥”的有效范围是()

A.从“∥”开始到行尾

B.从“∥”开始到下一个“∥”

C.“∥”及其后一个字符

D.从“∥”开始到程序尾

2.假定MyClass为一个类,则该类的复制构造函数的声明语句为()

A.MyClass&(MyClassx);

B.MyClass(MyClassx);

C.MyClass(MyClass&x);

D.MyClass(MyClass*x);

3.下列选项不是C++关键字的是()

A.typedef

B.void

C.bool

D.inc

4.用于标识十进制常量的前缀或后缀是()

A.无前后缀

B.后缀L或l

C.前缀0

D.前缀0x

5.设intx=56;intr=x;若cout<<&x;显示0012FF7A,则cout<<&r;输出值为()

A.56

B.00l2FF7A

C.0012FF7B

D.未知

6.使用下列哪个流格式控制符可设置转换基数为八进制()

A.dec

B.oct

C.hex

D.endl

7.C++中是否允许在类结构中定义函数()

A.不允许

B.允许

C.仅允许定义构造函数

D.只不允许定义构造函数

8.设函数voidsubone(int&)将形参减1,如有整型变量intk=10,则执行subone(k);后,k的值为()

A.9

B.10

C.11

D.未知

9.对函数intmax(inta,intb=0,intc=0,intd=0,inte=0);下列调用方式正确的是()

A.intm=max(10,11,12,13,14);

B.intm=max(10,,12,13,14);

C.intm=max(10,1l,,13,14);

D.intm=max(10,11,12,,14);

10.类MyClass的定义如下:

classMyClass

{

public:

MyClass(){}

MyClass(inti){value=newint(i);}

int*value;

};

若要对value赋值,则下面语句正确的是()

A.MyClassmy;my.value=10;

B.MyClassmy;*my.value=10;

C.MyClassmy;my.*value=10;

D.MyClassmy(10);

11.包含哪种语句的函数不能声明为内联函数()

A.变量定义

B.if……else

C.位操作

D.switch

12.声明函数模板的关键字是()

A.inline

B.template

C.const

D.short

13.对于类中的成员,使用public修饰,表明该成员的访问权限是()

A.公有的

B.私有的

C.保护的

D.不可见的

14.一个类中是否可以允许一个无参数构造函数和一个全部都是默认参数的构造函数共存()

A.不允许

B.允许

C.无法确定

D.视构造函数的函数,可确定

15.析构函数的参数个数为()

A.0个

B.1个

C.至少1个

D.多于1个

16.非静态成员函数都会有一个隐含指针,它是()

A.self指针

B.this指针

C.current指针

D.one指针

17.下列访问公有静态成员的方式,错误的是()

A.类名:

静态成员名

B.对象名.静态成员名

C.对象指针->静态成员名

D.对象指针.静态成员名

18.声明友元使用下列哪个关键字()

A.class

B.const

C.friend

D.virtual

19.派生类继承了基类的()

A.所有成员

B.部分成员

C.数据成员

D.成员函数

20.基类private成员,通过public派生,其在派生类中为()

A.private

B.protected

C.public

D.不可访问

二、填空题(本大题共20小题,每小题1分,共20分)

请在每小题的空格中填上正确答案。

错填、不填均无分。

21.执行下列代码

doublepi=3.141592;

cout<

(1)<

程序的输出结果是____3_____。

22.要使用STL库提供的对数组进行升幂排序算法,在源程序中需要包含的头文件是__algorithm_______。

23.C++语言中动态回收内存的关键字是_delete或delete[]________。

24.执行下列代码

intb=100;

cout<<”Oct:

”<

程序的输出结果是___oct:

144______。

25.C++语言中用于定义一个类的关键字是__class_______。

26.为了使用C++语言标准程序库提供的string类,在程序中必须使用的文件包含命令是_#include_______。

27.在程序中执行int*a=newint之后,若a为空指针,则表明___内存分配失败或申请内存失败______。

28.C++函数中传递对象地址值是使用_对象指针________作为参数。

29.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的_地址值________。

30.C++函数有库函数(标准函数)和___自定义函数______两类。

31.C++中通过__构造函数_______对类的对象进行初始化。

32.UML中实例连接反映对象之间的静态关系,消息连接描述对象之间的_动态________关系。

33.若将一个对象说明为常对象,则通过该对象只能调用它的__常(或const)_______成员函数,不能调用其它成员函数。

34.静态成员函数是__类_______的成员,不是对象的成员。

35.私有继承时,在派生类中基类的protected权限变为__private_______。

36.若使用一个表达式的含义能解释为访问多个基类中的成员,则这种对基类成员的访问就是不确定的,称这种访问具有___二义性______。

37.如果在类模板的定义中有一个静态数据成员,则在程序运行中会产生__一个或多个_______静态变量。

38.vector类中用于获取向量可以容纳最多对象的个数的方法是__max_size()_______。

39.C++用于运算符重载的关键字是_operator________。

40.含有__纯虚函数_________的类称为抽象类,它只能作为基类来使用。

三、改错题(本大题共5小题,每小题4分,共20分)

下面的每题中有一处错误,请用下横线标出错误所在行并给出修改意见

41.#include

classtestl{

private:

intx;

public:

testl(){x=2;}

voidset(inta){x=a;}

voidget(){cout<

};

classtest2{

private:

intx;

public:

test2(){x=3;}

voidset(inta){x=a;}

voidget(){cout<

};

classtest:

publictestl,publictest2{

private:

intx;

public:

voidset(inta){x=a;}

voidgettest(){cout<

};

voidmain(){

testa;a.get();//二义性,需要指出类名

}

42.#include

classtest{

private:

intx,y;

public:

voidtestl(inta,intb){x=a;y=b;}

intmax();

};

inttest:

max(){if(x>y)returnx;elsereturny;}//inttest:

max()

voidmain(){

testa;

a.testl(1,3);

cout<

}

43.#include

voidmain(){

intx=5;

constint*constp=&x;

*p=88;//指向常量的常量指针不能赋值

cout<<*p<

}

44.#include

classpoint

{

private:

floatx,y;

public:

f(floata,floatb){x=a;y=b;}

f(){x=O;y=O;}

voidgetx(){cout<

voidgety(){cout<

}//;

classpointl

}

private:

floatx,y;

public:

f(floata,floatb){x=a;y=b;}

f(){x=l;y=l;}

voidgetx(){cout<

voidgety(){cout<

};

main()I

pointa;

a.f();

a.getx();a.gety();

}

45.#include

//没有加头文件string

voidmain(){

stringstrl("wearehere");

cout<

}来源:

考试大-自考站

四、完成程序题(本大题共5小题,每题4分,共20分)

46.在下面程序的下划线处填上正确的数据类型,保证程序具有如下输出结果:

0

17

17,17,17

源程序如下:

#include

usingnamespacestd;

classbase

{

public:

_staticint_____________num;

base(){}

};

intbase:

:

hum=0;

voidmain()

{

cout<

:

num<

_____int____________*p=&base:

:

num;

*p=17;

cout<

:

num<

basea,b;

cout<<*p<<","<

47.在下面横线处填上正确的内容,完成类的定义。

classBase

{

intx;

staticconstintb;

public:

Base(int,int);

constint&a;

};

____constintbase:

:

__________b=15;

Base:

:

Base(inti,intj):

_x(i),a(j)或a(j),x(i)__________{}

48.完成下面程序中的show函数的定义,使其运行结果如下:

Inbase

Inderived

程序清单如下:

#include

usingnamespacestd;

classbase

{

pubhc:

virtualvoidprint()

{

cout<<"Inbase"<

}

};

classderived:

publicbase

{

public:

voidprint(){cout<<"Inderived"<

};

voidshow(base*pb,void(base:

:

*pf)())

{

___(pb->*pbf)();______

}

voidmain()

{

baseb;

derivedd;

show(&b,base:

:

print);

show(&d,base:

:

print);

}

49.在下面程序的下划线处填上正确的语句。

#include

usingnamespacestd;

template

Tf(T&a,T&b,intn)

{

for(inti=0;i

a[i]=a[i]+b[i];

returna;

}

voidmain()

{

Inta[5]={1,2,3,4,5};

intb[5]={100,200,3,4,51,*p;

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

p=_f(a,b,2)________//调用函数f

for(;p

cout<<_*p________<

}

50.下列程序将x,y,z按从小到大的顺序排列并将结果返回给实参,在横线处填入正确的内容。

template

voidorder(_T&x,T&y__T&z______)

{

__Ta_______;

if(x>y){a=x;x=y;y=a;}

if(y>z){a=y;y=z;z=a;}

if(x>y){a=x;x=y;y=a;}

}

五、程序分析题(本大题共2小题,每小题5分,共10分)

51.给出下面程序的输出结果

#include

usingnamespacestd;

template

TF(Tx)

{

returnx>5;

}

voidmain()

{

inta=15;

cout<

doubleb=-5.8976;

cout<

cout<

}

 

1(2分)

0(2分)

0(1分)

52.给出下面程序的输出结果

#include

usingnamespacestd;

classA

{

private:

intX,Y;

public:

A(intmyx,intmyy){X=myx;Y=myy;}

voidshow(){cout<<"X="<

};

classB:

publicA

{

private:

intH,W;

public:

B(intmyx,intmyy,intmyh,intmyw):

A(myx,myy)[H=myh;W=myw;}

voidshow(){cout<<"H="<

};

voidmain()

{

Bd(1,2,3,4);

d.show();

}

H=3(3分),W=4(2分)

六、程序设计题(本大题共1小题,共10分)

53.定义队列类模板queue(先进先出),队列的大小由使用者确定。

要求该类模板对外提供如下二种基本操作:

(1)insert(入队列)

(2)front(出队列),用数组来实现

#include

usingnamespacestd;

template

classqueue{

Tx[size];

intcurrent,front,rear;

public:

queue(){current=0;front=0;rear=0;}

....insert(....);

....front(....);

};

请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)

 

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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