c++期终考试2部分答案Word下载.docx

上传人:b****3 文档编号:13809067 上传时间:2022-10-13 格式:DOCX 页数:17 大小:21.44KB
下载 相关 举报
c++期终考试2部分答案Word下载.docx_第1页
第1页 / 共17页
c++期终考试2部分答案Word下载.docx_第2页
第2页 / 共17页
c++期终考试2部分答案Word下载.docx_第3页
第3页 / 共17页
c++期终考试2部分答案Word下载.docx_第4页
第4页 / 共17页
c++期终考试2部分答案Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

c++期终考试2部分答案Word下载.docx

《c++期终考试2部分答案Word下载.docx》由会员分享,可在线阅读,更多相关《c++期终考试2部分答案Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

c++期终考试2部分答案Word下载.docx

题序

总评

计分

试题一、选择题(每题1分,共20分)

1.所谓数据封装就是将一组数据和与这组数据有关的操作组装在一起,形成一个实体,这个实体定义成()。

A

A.类B.对象C.函数体D.数据块

2.假定A是一个类,则执行“A*p=newA[10];

”语句时共调用该类构造函数的次数是()。

D

A.1B.2C.11D.10

3.已知定义了类Person,则Person类的复制构造函数声明应定义正确的是()。

B

A.voidPerson(Person&

p);

B.Person(constPerson&

C.PersonPerson(Person&

p)D.Person(Personp);

4.下列不能作为类的成员的是()。

A.自身类对象的指针B.自身类对象C.自身类对象的引用D.另一个类的对象

5.下述静态数据成员的特征中,()是错误的。

A.说明静态数据成员时前边要加修饰符static

B.静态数据成员在类内进行初始化

C.引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符

D.静态数据成员是所有对象共用的

6.已知类A是类B的友元,类B是类C的友元,则()。

A.类A一定是类C的友元

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

C.类C的成员函数可以访问类B的对象的任何成员

D.类A的成员函数可以访问类B的对象的任何成员

7.对于常成员函数,下面描述正确的选项是()。

C

A.类的成员函数可以操作常对象B.类的成员函数不能操作常对象

C.只有常成员函数可以操作常对象D.在常成员函数中,常对象可以被更新

8.有如下类定义:

classMyBASE{

intk;

public:

voidset(intn){k=n;

}

intget()const{returnk;

};

classMyDERIVED:

protectedMyBASE{

protected;

intj;

voidset(intm,intn){MyBASE:

:

set(m);

j=n;

intget()const{returnMyBASE:

get()+j;

则类MyDERIVED中保护成员个数是()。

A.4B.3C.2D.1

9.有下列代码:

1classFred;

2classBarney{

3Fredx;

4Fred*p;

5};

6classFred{

7Barneyy;

8};

有错误的地方是()。

A.第1行:

classFred;

B.第3行:

Fredx;

C.第4行:

Fred*p;

D.第7行:

Barneyy;

10.需要一种逻辑功能一样的函数,而编制这些函数的程序文本完全一样,区别只是数据类型不同。

对于这种函数,下面不能用来实现这一功能的选项是()。

D

A.宏函数B.为各种类型都重载这一函数

C.模板D.友元函数

11.为正确执行以下程序,则函数定义正确的是()。

B

#include<

iostream.h>

voidmain()

{print(2,3.4);

A.template<

classT>

voidprint(Targ1,Targ2)

{

cout<

<

"

arg1:

<

arg1<

endl;

arg2:

arg2<

}

B.template<

classT1,classT2>

voidprint(T1arg1,T2arg2)

C.voidprint(intarg1,intarg2)

}

D.template<

classT>

voidprint(Targ1,intarg2)

12.以下基类哪个表示抽象类()。

C

A.classMyClass{virtualvoidvf(int);

B.classMyClass{voidvf(int)=0;

C.classMyClass{virtualvoidvf()=0;

D.classMyClass{virtualvoidvf(int){}};

13.下面关于虚函数和函数重载的叙述不正确的是()。

A

A.虚函数不是类的成员函数

B.虚函数实现了C++的多态性

C.函数重载允许非成员函数,而虚函数则不行

D.函数重载的调用根据参数的个数、序列来确定,而虚函数依据对象确定

14.如果表达式++i*k时中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为()。

A)operator*(i.operator++(),k)B)operator*(operator++(i),k)

C)i.operator++().operator*(k)D)k.operator*(operator++(i))

15.下列关于虚函数的说法,错误的是()。

A.需要通过基类的对象、指针或者引用来调用虚函数

B.派生类中的虚函数必须与基类中的虚函数同名,但参数的个数可以不一样

C.一个函数如果被定义成虚函数,经历多次派生后,其虚特性将不会保持

D.设置虚函数的目的是消除二义性

16.有如下程序:

#include<

iostream>

usingnamespacestd;

classBase{

private:

voidfun1()const{cout<

”fun1”;

protected:

voidfun2()const{cout<

”fun2”;

voidfun3()const{cout<

”fun3”;

classDerived:

protectedBase{

public:

voidfun4()const{cout<

”fun4”;

intmain(){

Derivedobj;

obj.fun1();

//①

obj.fun2();

//②

obj.fun3();

//③

obj.fun4();

//④

其中没有语法错误的语句是()。

A.①B.②C.③D.④

17.有如下类定义:

classAA{

inta;

intgetRef()const{return&

a;

}//①

intgetValue()const{returna;

}//②

voidset(intn)const{a=n;

}//③

friendvoidshow(AAaa)const{cout<

}//④

其中的四个函数定义中正确的是()。

B

A.①B.②C.③D.④

18.下面程序使用new与delete命令,下面是对这段程序的叙述,其中正确的是()。

intmain()

{

long*p,i;

p=newlong;

if(!

p){cout<

”Allocationerror\n”;

return1;

*p=1000;

i=(long)p;

cout<

”Hereisintegeratp:

”<

*p<

”\n”;

”Hereisi:

“<

i<

deletep;

return0;

A.有错误,编译不能通过

B.正确,执行结果为:

10001000

C.正确,但执行结果的第二个数值不定

D.正确,执行结果的各个数值均不为1000

19.要求打开文件test.dat,可读出数据,正确的语句是()D

A.ifstreammyFile(“test.dat”,ios:

in);

B.fstreammyFile(“test.dat”,ios:

C.ifstreammyFile;

myFile.open(“test.dat”,ios:

D.以上都正确

20.read函数的功能是从输入流中读取()。

D

A.一个字符B.当前字符C.一行字符D.指定若干字节

试题二、程序填空题(每空1分,共20分)。

1.【程序说明】以下程序能实现求a2+b2+c2。

其中a、b、c的值由对象的初始化值提供。

该程序使用静态成员实现。

运行结果:

Number=5

Number=10

Number=15

Result=350

classmyclass{

myclass(intx);

voidgetnumber();

staticvoidResult();

(1);

//定义静态数据成员sum

myclass:

myclass(intx){

a=x;

(2);

voidmyclass:

getnumber(){

cout<

"

Number="

a<

endl;

Result(){

Result="

sum<

(3);

intmain()

{

myclas

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

当前位置:首页 > 人文社科 > 法律资料

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

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