分享
 
 
 

C++试题&简要答案:

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

一、单选

1.C 2.D 3.D 4.C 5.B 6.D 7.A 8.C 9.B 10.D

二、多选

1. ABC

2. ACD

3. ABD

4. AC

5. BCD

三、判断对错

1. 对

2. 错 如可有两个成员函数,int f();和 int f() const;

3. 错 是否真正内联,由编译器决定。如函数是递归函数,那么永远不会内联。

4. 对

5. 错 可通过类的静态成员函数创建实例,如单件模式。

6. 对

7. 错 如可通过继承自基类的成员函数访问基类中的x.

8. 错 友员关系不具有传递性。

9. 对

10.对

四、写结果。 目的是考察虚函数的调用,包括普通成员函数中调用其它虚函数和

在构造、析构函数中只会调用虚函数的本地版本。

五、写结果。 是一个使用Handle类进行引用计数的例子。

六、回答问题

1. 重点是基类中的任何Private在派生类中都是不可访问的。

2. 可在A类中定义一个构造函数:A(const B&);

或在B类中定义一个自动转换函数: operator A( ) const;

3. 只有纯虚函数、非静态的成员函数可以是常量成员函数。

(这题有点问题,析构函数可以是纯虚函数,但不能是常量函数)

4. 如类A中有函数 int f(void);和int f(int);为重载(overload) (同名,参数不同)

如类A中有函数 int f(void);,A的派生类B中给int f(void)一个新的实现体,为redefine

如类A中有虚函数 virtual int f(void);,A的派生类B中给virtual int f(void)一个新的实现体,

为override.

5. A(const A& one ).当调用此拷贝构造函数时,需将参数压栈,若不使用&,就需要在

栈内创建一个one的副本,而这需要用拷贝构造函数。这样就会形成递归调用。

使用const,还允许用一个常量对象作为样本,来构造一个新的对象。

6. 计算子表达式的顺序由编译器决定的,虽然参数的压栈顺序在给定的调用方式下式固定的,

但参数表达式的计算顺序也由编译器决定的。不同的编译器或不同的表达式计算的顺序可能

不一致。

七.

1. 添加全局函数

bool operator>(const A& one, const A& two)

{

return one.GetData()>two.GetData();

}

2. 不行。 return (one>two?one:two); 时,不能将常量赋给变量。

3. 需要将ABC三个类的析构函数改为虚的。

八. Card类(不用enum,只用数字也可以)

main函数略

//enum前加上const就可将下面所有的都放入.h中。

const enum SUIT {SPADE=0,HEART,DIAMOND,CLUB};

const enum RANK {TWO=0,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING,ACE};

class Card

{

public:

Card(int id):mID(id),mSuit((id-1)/13),mRank((id-1)%13){}

bool IsSameSuit(const Card& rhs)

{ return ((this==&rhs)?false:mSuit==rhs.mSuit);}

bool IsSameRank(const Card& rhs)

{ return ((this==&rhs)?false:mRank==rhs.mRank); }

bool IsSuit(int suit)

{return mSuit==suit;}

bool IsRank(int rank)

{return mRank==rank;}

private:

static int nBackImg; //背面图案

const int mID;

const int mSuit;

const int mRank;

};

九.

1) class M

{

public:

M(int v1,int v2,int v3,int v4):a1(v1),a2(v2),a3(v3),a4(c4) { }

void Turn( ) { int temp=a2; a2=a3; a3=temp;}

void Trans( ) {

a1=GetNextPrime(a1);

a2=GetNextPrime(a2);

a3=GetNextPrime(a3);

a4=GetNextPrime(a4);

}

private:

int a1,a2,a3,a4;

};

2)(因没有讲授设计模式部分,可以采用变通的方法,例如)

class M

{

public:

M(int v1,int v2,int v3,int v4)

:a1(v1),a2(v2),a3(v3),a4(v4), p2(0),p3(0){ }

M(int v1,int v2,M* pt3,int v4)

:a1(v1),a2(v2),a3(0),a4(v4),p2(0),p3(pt3) { }

M(int v1,M* pt2,int v3,int v4)

:a1(v1),a2(0),a3(v3),a4(v4),p2(pt2),p3(0) { }

M(int v1,M* pt2,M *pt3,int v4)

:a1(v1),a2(0),a3(0),a4(v4),p2(pt2),p3(pt3) { }

void Turn( )

{

int temp=a2; a2=a3; a3=temp;

M* p=p2; p2=p3; p3=p;

if (p2) p2->Turn();

if (p3) p3->Turn();

}

void Trans( ) {

a1=GetNextPrime(a1);

if (p2)

p2->Trans();

else

a2=GetNextPrime(a2);

if (p3)

p3->Trans();

else

a3=GetNextPrime(a3);

a4=GetNextPrime(a4);

}

private:

int a1,a2,a3,a4;

M* p2;

M* p3;

};

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有