ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:21.84KB ,
资源ID:18162770      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18162770.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C试题及答案Word文档下载推荐.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C试题及答案Word文档下载推荐.docx

1、C. 只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象。D. 类A和类B中的同名虚函数的返回值类型必须完全一致。6. 下列哪种函数可以是虚的:A. 自定义的构造函数 B. 拷贝构造函数 C. 静态成员函数 D. 析构函数 7. 类A有一个实例化的常量对象a,那么下面的说法中不正确的是:A. 类A中的非静态数据成员一定都是常量成员。B. 通过a可以直接调用类A的常量成员函数。C. a不能直接作为左值表达式使用。D. a可以是静态常量对象。8. 在不考虑强制类型转换的情况下,关于类中常量成员函数的下列说法不正确的是:A. 常量成员函数中不能修改本类中的非静态数据成员

2、。B. 常量成员函数中可以调用本类中的任何静态成员函数。C. 常量成员函数的返回值只能是void或常量。D. 若常量成员函数中调用虚函数f,那么函数f在本类中也一定是一个常量成员函数。9. 类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么:A. 类C的继承方式只能采用public继承。 B. 可改用单继承的方式实现类C的同样功能。C. 类A和类B至少有一个是抽象类。 D. 类A和类B至少有一个是虚基类。10. 下列哪种用法不能体现类A和类B之间的组合关系:A. 类A中声明数据成员B b;B. 类A中声明数据成员B* b;C. 类A中声明数据成员const B& b;D

3、. 类A中声明成员函数 B func( B& obj);二、(共10分,每题2分,多选、少选、错选都不得分)多项选择 1. 下面关于指针变量和引用变量的说法正确的是:A. 指针变量存放的是内存地址,并且可以置为0。B. 定义引用变量时,必须同时指明具体被引用的对象或变量。C. 使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址。D. 类中的数据成员可以是指针变量,但不能是引用变量。2. 类A中有唯一的一个公有成员函数f,对于类A的一个对象a,执行语句 a.f(100);成功,那么f 的函数原型可以为:A. A& f( int, int=50); B.void f(int&

4、) const; C.const A * f(const int ); D. A f( const int&3. 关于类中重载赋值运算符的正确说法是:A. 由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值。B. 在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值。C. 只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作。D. 通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作。4. 在类的静态成员函数的实现体中,可以访问或调用:A. 本类中的静态数据成员 B. 本类中非静态的常量数据成员 C. 本类中其它的静

5、态成员函数 D. 本类中非静态的成员函数 5. 关于异常和C+提供的异常处理机制正确的说法是:A. 若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现。B. 使用dynamic_cast操作符可能会产生异常。C. 异常可以用catch进行捕获处理。D. 异常可以是对象,也可以是普通整数。三、(共20分,每题2分)判断正误,对于你认为错误的论述,说明原因或举出反例。1. 函数体内声明的静态变量,至多只会被初始化一次。2. 对于同一个类中的两个非静态成员函数,它们的函数的名称、参数类型、参数个数、参数顺序以及返回值的类型不能完全相同。3. inline函数表示编译器一定会将函数体

6、直接插入到调用此函数的地方,这样可以加快程序的运行速度。4. 每个cpp文件是单独编译的,但一个程序中多个cpp文件的编译顺序是不固定的。5. 将类A所有构造函数的可访问性都限制为私有的,那么在main函数中不可能得到类A的实例对象。6. 名字空间是可以多层嵌套的;对于类A中的函数成员和数据成员,它们都属于类名A代表的一层名字空间。7. 若在类Base和派生类Derived中,分别声明一个同名的整型成员变量int x; ,那么通过Derived类的实例对象,不可能输出基类Base中的变量x的值。8. 若类A是类B的友员类,且类B是类C的友员类,那么类A也是类C的友员类。9. 虽然抽象类的析构函

7、数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体。10. 构造函数的初始化列表中的内容,不会影响构造对象中成员数据的初始化顺序。四、(5分)写出下面程序的运行结果 #include class A public:A(int v1)(v1) f( ); virtual A( ) f( );virtual void f( ) +count; x+=10;Show( ); virtual void Show ( ) const coutcount=count x=xendl;protected:static int count;private:int x;class B

8、:public A B(int v1,int v2):A(v1),y(v2) f( );virtual B( ) f( );y+=50; Show ( ); y=yf( );delete p;return 0;五、(5分)写出下面程序的运行结果 friend class B;A(int val=0):data(val),use(1) int use, data;class B B(int val=0):pa(new A(val) B( ) if(-pa-use=0) delete pa;B(const B& rhs) +rhs-use;pa=rhs.pa;B& operator=(const

9、B& rhs);A* operator-( ) const return pa;void Display( ) const coutdata use=use+rhs-return *this;int main() B b1(1),b2(b1),b3(3);b1.Display();b2.Display();b3.Display();b3=b1;六、(共20分)回答下列各题 1. 说明类中的public、 protected和 private成员函数分别在public、protected和private继承方式下在派生类中的可访问性。(4分) 2. 若类A和类B没有继承关系,对于函数void f

10、unc(A&) ,请至少用两种不同方法说明如何才能传递一个非常量的B类对象给func函数。3. 在声明类中的构造函数、析构函数、纯虚函数、静态成员函数、非静态的成员函数以及全局函数作为类的友元函数时,哪些可以是常量成员函数?(3分) 4. 举例说明重载(overload) 、重定义(redefine) 和重写(override)的含义。5. 通常类A的拷贝构造函数的原型写为A(const A&);,请问为什么参数一定要使用引用形式?使用const修饰符除了可以防止修改传递给构造函数的实参外,还有什么作用?6. 程序员规范中要求不要写出类似(+i)+(i+) 或 f(+i,i+)这样的代码,请说

11、明原因。七、(共8分)阅读下面部分程序代码,完成3个问题。 A(int v1)(v1) virtual int GetData( ) const return x; int x; B(int v1,int v2):A(v1),y(v2) virtual int GetData( ) const return y; int y;class C:public B C(int v1,int v2,int v3):B(v1,v2),z(v3) virtual int GetData( ) const return z; int z;const A& max2(const A& one,const A&

12、 two) return (onetwo?one:two);void main() B b(1,2); C c(100,10,1);coutmax2(b,c).GetData( )max2(b,5).GetData( )(const A& one, const A&return one.GetData()two.GetData();2. 不行。 return (one 时,不能将常量赋给变量。3. 需要将ABC三个类的析构函数改为虚的。八. Card类(不用enum,只用数字也可以) main函数略 /enum前加上const就可将下面所有的都放入.h中。const enum SUIT SPA

13、DE=0,HEART,DIAMOND,CLUB;const enum RANK TWO=0,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING,ACE;class Card Card(int id):mID(id),mSuit(id-1)/13),mRank(id-1)%13) bool IsSameSuit(const Card& return (this=&rhs)?false:mSuit=rhs.mSuit);bool IsSameRank(const Card&mRank=rhs.mRank);bool IsSuit(int

14、 suit) return mSuit=suit;bool IsRank(int rank) return mRank=rank;static int nBackImg; /背面图案 const int mID;const int mSuit;const int mRank;九. 1) class M 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=GetNextPrim

15、e(a2);a3=GetNextPrime(a3);a4=GetNextPrime(a4);int a1,a2,a3,a4;2)(因没有讲授设计模式部分,可以采用变通的方法,例如) class M 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;M* p=p2; p2=p3; p3=p;if (p2) p2-Turn();if (p3) p3-if (p2) p2-Trans();else if (p3) p3-M* p2;M* p3;

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

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