自考C++试题及答案9套合集34Word文件下载.docx

上传人:b****1 文档编号:4446698 上传时间:2023-05-03 格式:DOCX 页数:36 大小:25.26KB
下载 相关 举报
自考C++试题及答案9套合集34Word文件下载.docx_第1页
第1页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第2页
第2页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第3页
第3页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第4页
第4页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第5页
第5页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第6页
第6页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第7页
第7页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第8页
第8页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第9页
第9页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第10页
第10页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第11页
第11页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第12页
第12页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第13页
第13页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第14页
第14页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第15页
第15页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第16页
第16页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第17页
第17页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第18页
第18页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第19页
第19页 / 共36页
自考C++试题及答案9套合集34Word文件下载.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

自考C++试题及答案9套合集34Word文件下载.docx

《自考C++试题及答案9套合集34Word文件下载.docx》由会员分享,可在线阅读,更多相关《自考C++试题及答案9套合集34Word文件下载.docx(36页珍藏版)》请在冰点文库上搜索。

自考C++试题及答案9套合集34Word文件下载.docx

:

app|ios:

binary)的功能是建立流对象f,试图打

开文件并与之连接,并且()

A.若文件存在,将文件写指针定位于文件尾;

若文件不存在,建立一个新文件

B.若文件存在,将其置为空文件;

若文件不存在,打开失败

C.若文件存在,将文件写指针定位于文件首;

D.若文件存在,打开失败;

10.构造函数不具备的特征是()

A.构造函数的函数名与类名相同

B.构造函数可以重载

C.构造函数可以设置默认参数

D.构造函数必须指定类型说明

11.在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限()

A.受限制

B.保持不变

C.受保护

}

D.不受保护

12.假定一个类的构造函数为A(intaa,intbb){a=aa--;

b=a*bb;

},则执行Ax(4,5);

语句后

,和的值分别为()

A.3和15

B.5和4

C.4和20

D.20和5

13.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

14.在类中说明的成员可以使用关键字的是()

A.public

B.extern

C.cpu

D.register

15.C++语言中所有在函数中定义的变量,连同形式参数,都属于()

A.全局变量

B.局部变量

·

C.静态变量

D.函数

16.在私有继承的情况下,基类成员在派生类中的访问权限()

17.使用地址作为实参传给形参,下列说法正确的是()

A.实参是形参的备份

B.实参与形参无联系

&

C.形参是实参的备份

D.实参与形参是同一对象

18.C++的继承性允许派生类继承基类的()

A.部分特性,并允许增加新的特性或重定义基类的特性

B.部分特性,但不允许增加新的特性或重定义基类的特性

C.所有特性,并允许增加新的特性或重定义基类的特性

D.所有特性,但不允许增加新的特性或重定义基类的特性

19.对于int*pa[5];

的描述,正确的是()

A.pa是一个指向数组的指针,所指向的数组是5个int型元素

B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量

C.pa[5]表示某个数组的第5个元素的值

D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针

20.以下基类中的成员函数表示纯虚函数的是()

A.virtualvoidtt()=0

B.voidtt(int)=0

C.virtualvoidtt(int)

D.virtualvoidtt(int){}

二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答

案。

错填、不填均无分。

1.单目运算符作为类成员函数重载时,形参个数为__0_个。

>

2.抽象类中至少要有一个_纯虚__函数。

3.设类A有成员函数voidf(void);

若要定义一个指向类成员函数的指针变量pf来指向f,该

指针变量的声明语句是:

_void(A:

*pf)(void);

__。

4.执行下列程序

doublea=,b=;

cout<

<

setprecision(5)<

a<

"

"

b<

endl;

程序的输出结果是,。

5.vector类中用于删除向量中的所有对象的方法是___。

6.重载的运算符保持其原有的_操作数__、优先级和结合性不变。

7.编译时的多态性通过_重载__函数实现。

[

8.基类的公有成员在派生类中的访问权限由_继承方式__决定。

9.假设类X的对象x是类Y的成员对象,则“YObj”语句执行时,先调用类_X__的构造函数。

10.下列程序段的输出结果是___。

11.下列程序段的输出结果是___。

12.C++中ostream的直接基类_ios__。

13.intn=0;

while(n=1)n++;

while循环执行次数是_无限次__。

14.C++中有两种继承:

单继承和_多重继承__。

15.在C++中,利用向量类模板定义一个具有10个int的向量A,其元素均被置为1,实现此操作

的语句是___。

16.vector类中向向量尾部插入一个对象的方法是___。

17.C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取引用___方式。

18.若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_声明__语句。

19.在C++中有两种参数传递方式:

传值和_引用__。

20.将指向对象的引用作为函数的形参,形参是对象的引用,实参是_对象名__。

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

1.classABC

{inta;

public:

%

ABC(intaa)a(aa){}ABC(intaa):

a(aa){};

};

2.#include<

classAton

{intX,Y;

protected:

intzx,zy;

voidinit(inti,intj){zx=i;

zy=j;

Aton(inti,intj,intn=0,intm=0)

{X=i,Y=j,zx=m,zy=n;

添加inlineintX(){returnX};

voidmain()

{AtonA(25,20,3,5);

(5,9);

()<

3.#include<

classBas

{public:

~Bas(){cout<

Basconstruct"

virtualvoidf()=0;

classDev:

publicBas

~Dev(){cout<

virtualvoidf(){cout<

Dev:

f"

{Bas*a=newBas();

Bas*a;

Devp;

a=&

p;

a->

f();

 

4.以下程序实现交换a,b变量的值,请用下横线标出错误所在行并给出修改意见。

#include<

voidswap(int&

a,int&

b)

{a=a+b;

b=a-b;

a=a-b;

{inta=19,b=15;

#

a="

b="

swap(&

a,&

b);

swap(a,b);

5.#include<

{inti(3),j(8);

int*constp=&

i;

int*p=&

*p<

p=&

j;

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

1.在下面程序横线处填上适当内容,使程序执行结果为:

hello,andylin"

iostream>

\

usingnamespacestd;

classmystring

char*pdata;

mystring(intlen)

{pdata=newchar[len+1];

~mystring()

{deletepdata;

.

voidshow(){cout<

pdata<

voidfun(mystring**array,intlen)

{mystring*old=*array;

_*array=newmystring(len)______;

memcpy(*array,old,len);

{mystringstr(20);

mystring*pstr=&

str;

mystring**ppstr=&

pstr;

strcpy,"

hello,andylin"

);

fun(ppstr,20);

();

_______

2.在下面程序横线处填上适当字句,完成类的定义。

classline;

classbox

{private:

intcolor;

intupx,upy;

intlowx,lowy;

friendintsame_color(linel,boxb);

voidset_color(intc){color=c;

voiddefine_box(intx1,inty1,intx2,inty2)

{upx=x1;

upy=y1;

lowx=x2;

lowy=y2;

`

classline

intstartx,starty;

intendx,endy;

friendintsame_color(linel,boxb);

voidset_color(intc){color=c;

voiddefine_line(intx1,inty1,intx2,inty2)

{startx=x1;

starty=y1;

endx=x2;

endy=y2;

intsame_color(linel,boxb)

{if==return1;

return0;

3.下面程序用来求直角三角形斜边长度。

classPoint

{private:

doublex,y;

friendLine;

__________

Point(doublei=0,doublej=0)

{x=i;

y=j;

Point(Point&

p)

{x=;

y=;

classLine

Pointp1,p2;

Line(Point&

xp1,Point&

xp2):

p1(xp1),p2(xp2)________{}

doubleGetLength();

doubleLine:

GetLength()

{doubledx=dy=sqrt(dx*dx+dy*dy);

-

{Pointp1,p2(6,8);

LineL1(p1,p2);

4.在下面程序的底画线处填上适当的字句,使该程序执行结果为40。

classTest

!

{public:

staticintx______;

Test(inti=0)

{x=i+x;

intGetnum()

{returnTest:

x+7;

intTest:

x=33_______;

{Testtest;

5.在下列程序的空格处填上适当的字句,使输出为:

0,2,10。

classMagic

{doublex;

Magic(doubled=:

x(fabs(d))

{}

Magicoperator+(Magic&

c______)

{

returnMagic(sqrt(x*x+*);

friendostream&

operator<

(ostream&

stream,Magic&

c)

{stream<

returnstream;

{Magicma;

ma<

Magic

(2)<

ma+Magic(-6)+

Magic(-8)<

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

1.运行程序,写出程序执行的结果。

^

{inta,b,c;

charch;

cin>

a>

ch>

b>

c;

5

2.给出下面程序输出结果。

classA

A()

{cout<

Ascons."

virtual~A()

Asdes."

virtualvoidf()

Asf()."

voidg()

{f();

classB:

publicA

B()

Bscons."

~B()

Bsdes."

classC:

publicB

C()

Cscons."

~C()

Csdes."

voidf()

Csf()."

{A*a=newC;

g();

deletea;

Ascons.

Asf().

Bscons.

Cscons.

Csf().

Csdes.

Bsdes.

Asdes.

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

1.已知交通工具类定义如下。

要求:

(1)实现这个类;

(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有

属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数

),print(打印车轮数,重量和载人数)。

classvehicle

{protected:

intwheels;

当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中()

A.都是虚函数

B.只有被重新说明时才是虚函数

C.只有被重新说明为virtual时才是虚函数

D.都不是虚函数

]

3.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为()

A.1

B.2

C.4

D.5

4.设有函数模板

template<

classQ>

QSum(Qx,Qy)

{return(x)+(y);

则下列语句中对该函数模板错误的使用是()

A.Sum(10,2);

B.Sum,;

C.Sum,;

D.Sum(“AB”,”CD”);

5.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针

'

,则p->

A:

func()将()

A.调用类A中的函数func()

B.调用类B中的函数func()

C.根据p所指的对象类型而确定调用类A中或类B中的函数func()

D.既调用类A中函数,也调用类B中的函数

6.在面向对象的程序设计中,首先在问题域中识别出若干个()

A.函数

B.类

C.文件

D.过程

7.已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明()

A.f1和f2都是静态函数

B.f1不是静态函数,f2是静态函数

C.f1是静态函数,f2不是静态函数

D.f1和f2都不是静态函数

8.下列有关模板和继承的叙述正确的是()

A.模板和继承都可以派生出一个类系

B.从类系的成员看,模板类系的成员比继承类系的成员较为稳定

C.从动态性能看,继承类系比模板类系具有更多的动态特性

D.相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系

|

9.有关C++编译指令,以下叙述正确的是()

A.C++每行可以写多条编译指令

B.#include指令中的文件名可含有路径信息

C.C++的编译指令可以以#或C++中不管#if后的常量表达式是否为真,该部分都需要编译

10.在C++中不返回任何类型的函数应该说明为()

B.char

C.void

D.double

11.若Sample类中的一个成员函数说明如下:

voidset(Sample&

a),则Sample&

a的含义是()

A.指向类Sample的名为a的指针

B.a是类Sample的对象引用,用来作函数Set()的形参

C.将a的地址赋给变量Set

D.变量Sample与a按位与的结果作为函数Set的参数

12.下列关于静态数据成员的描述中正确的是()

A.静态数据成员是类的所有对象所共有的

B.静态数据成员要在构造函数内初始化

C.类的每个对象有自己的静态数据成员

D.静态数据成员不能通过类的对象调用

13.在编译指令中,宏定义使用哪个指令()

A.#if

B.#include

C.#define

D.#error

14.类的析构函数是对一个对象进行以下哪种操作时自动调用的是()

A.建立

B.撤销

C.赋值

D.引用

15.关于new运算符的下列描述中,错误的是()

A.它可以用来动态创建对象和对象数组

B.使用它创建的对象或对象数组可以使用运算符delete删除

C.使用它创建对象时要调用构造函数

D.使用它创建对象数组时必须指定初始值

16.如果类A被说明成类B的友元,则()

A.类B不一定是类A的友元

B.类B的成员即类A的成员

C.类A的成员即类B的成员

D.类A的成员函数不得访问类B的成员

17.假定一个类的构造函数为A(intaa,intbb){a=aa++;

b=a*++bb;

},则执行Ax(4,5);

语句

后,和的值分别为()

A.4和5

B.4和20

C.4和24

18.下列运算符中,在C++语言中不能重载的是()

A.*

B.>

=

C.:

D./

19.C++语言建立类族是通过()

A.类的嵌套

B.类的继承

C.虚函数

D.抽象类

20.在C++语言中,数据封装要解决的问题是()

A.数据的规范化

B.便于数据转换

C.避免数据丢失

D.防止不同模块之间数据的非法访问

二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案

1.若要使用string类,需要引入的头文件是。

2.在函数前面用_inline__保留字修饰时,则表示该函数表为内联函数。

3.向量操作方法中___方法返回向量中的第一个对象。

4.C++派生类使用两种基本的面向对象技术:

第一种称为性质约束,即对基类的性质加以限制

第二种称为_性质扩展__,即增加派生类的性质。

5.重载的运算符保持其原有的_操作数__、优先级和结合性不变。

6.编译时的多态性通过_重载__函数实现。

7.预处理语句有三种,分别是宏定义、文件包含和_条件编译__。

8.构造函数、析构函数和友元函数中,不是该类成员的是_友元函数__。

9.控制格式输入输出的操作中,函数_setw(int)__是设置域宽的。

要求给出函数名和参数类型)。

10.派生类的成员一般分为两部分,一部分是_从基类继承的成员__,另一部分是自己定义的新成员。

11.C++中ostream的直接基类_ios__。

12.vector的___方法返回向量中的最后一个对象。

13.执行下列代码

inti=230;

cout<

i="

hex<

i<

程序的输出结果为_i=E6__。

14.在C++中有两种参数传递方式即值传

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2