C++期末考试试题.doc

上传人:豆**** 文档编号:29962563 上传时间:2022-08-02 格式:DOC 页数:4 大小:33KB
返回 下载 相关 举报
C++期末考试试题.doc_第1页
第1页 / 共4页
C++期末考试试题.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《C++期末考试试题.doc》由会员分享,可在线阅读,更多相关《C++期末考试试题.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、 单项选择题(12题,每题5分)1. 已定义了一个类A并有语句 A* pa=new A(5); 那么以下说法正确的是:DA. 该语句会创建A类的一个对象,并将此对象的地址赋给指针pa;B. 该语句会创建A类的5个对象,且它们的地址是连续的;C. 当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放;D. 类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数;2. 定义类A的非静态成员函数A& f(A& one)时,需有语句return exp;则exp不能是:DA.类A中类型为A的静态数据成员 B. f中用语句 A a = one; 定义的量aC. one D. *t

2、his3. 在一个类中,下列哪些成员可以是多个?DA. 无参构造函数 B. 析构函数C. 原型相同的非静态成员函数 D. 静态成员函数4. 对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是:DA. 公有或私有 B. 私有 C. 保护或私有 D. 公有或保护5. 在下列关键字中,不能用来表示继承方式的是:BA. private B. static C. public D. protected6. 下列有关运算符重载的叙述中,正确的是:AA. 运算符重载是多态的一种表现B. C+中可以通过运算符重载创造新的运算符C. C+中所有运算符都可以作为非成员

3、函数重载D. 重载运算符时可以改变其结合性A7. 下列关于类定义的说法中,正确的是:A. 类定义中包括数据成员与函数成员的声明B. 类成员的缺省访问权限是保护的C. 数据成员必须被声明为私有的D. 成员函数只能在类体外进行定义8. 建立一个有成员对象的派生类对象时,各构造函数体的执行顺序为:CA. 派生类 成员对象类 基类 B. 成员对象类 基类 派生类C. 基类 成员对象类 派生类 D. 基类 派生类 成员对象类9. C+中解决命名冲突的机制是:AA. 虚基类 B. 虚函数 C. 函数重载 D. 名字空间10. 任意一个类,析构函数的个数最多是:BA. 不限个数 B. 1 C. 2 D. 3

4、11. 在类定义中,为说明成员的访问权限,private, protected, public 可以出现次数为:AA. 次数没有具体限定 B. 每种至多一次C. public 至少一次 D. 每种至少一次12. 下面关于访问类A的私有数据成员的说法,错误的是:CA.类A的友元函数可以访问类A的私有成员。 B.类A的友元类中的非静态成员函数可以访问类A的私有成员。C.类A的嵌套类中的非静态成员函数可以访问类A的私有成员。D.类A中的非静态成员函数可以访问类A的私有成员。 二、 写出下面程序的运行结果(2题,每题10分)1. #include class A public: A( ) cout A

5、:A( ) endl;virtual A( ) cout A:A( )endl;virtual void g( ) cout A:g( )endl;void h( ) cout A:h( )endl;virtual void f( ) g( ); h( ); ;class B:public Apublic: B( ) cout B:B( ) endl; virtual B( ) cout B:B( )endl;virtual void g( ) cout B:g( )endl; void h( ) cout B:h( )endl; virtual void k( ) f( ); g( ); h

6、( ); ;void main( ) B b;b.k( );2. #include class A public:A( ) cout1endl; virtual A( ) cout2endl;virtual int Add(int n) return 0; ;class B : public A public:B(int n):num(n) virtual B( ) virtual int Add(int n) num+=n; return num;private:int num;class C : public Apublic:C(A& obj,int n) : a(obj), num(n)

7、 cout3endl; virtual C( ) cout4endl; virtual int Add(int n) return a.Add(n+num); private:A& a;int num;Int main ( ) B b(100);C c1(b,1), c2(c1,2);coutc2.Add(50)endl;return0;三、 编程题(20分)已知某程序中类MyString是自定义的一个用来描述字符串的类,它在main函数中使用情况如下:void main( ) MyString s1(Hello );MyString s2(World!); cout s1.getString

8、() s2.getString( ) endl; MyString s3(s1); cout s3.getString( ) endl; s3 = s1 + s2; cout s3.getString( ) endl; 程序执行时,输出结果如下:Hello World!HelloHello World!根据以下已知条件,完成对MyString类的定义和实现。(1) 可以使用iostream.h中定义的类及相关内容。(2) 可以使用string.h中定义的如下函数:int strlen(const char* ); 用于计算标准表示的字符串长度;char* strcpy( char *strDe

9、stination, const char *strSource );用于将strSource串拷贝给strDestination。返回的是strDestination串,一般不用。char* strcat( char *strDestination, const char *strSource );用于将strScource串接于strDestination串后。返回的是strDestination串, 一般不用。本题目要求:根据上述已知条件,不借用其它标准函数库或类库,遵循上面程序输出结果,完成MyString类的定义和实现。4 题现和的题 分 ,出程循库或准它不条已上要用用一 的返串 接

10、 于; , * ( *用用, 是返 给 于) *度度的示计 ; ( 数下如 用容关类定中 用现和的类 成条已 下果出行; ( ; . ) ( )! ) ( 下如用函 它的字描一义是 中分00 0 ) ,()0 ) ; ( ( ) ) , () & : ; ) ) ( ; ) ; ) ) )( )( ; ) ; ( (: ( ) ; : ; )( ; ; (: : 分 每 果序程。私问访员成中类员员私访数员态类的 成有问可员态中友类。有问可元 . 的,说成私类于一至 一至 一至 限有数:现可 问访明, 数个:多数数,个空字 载函 函 基 制冲名象象成派基 类象员类 派类对成了 个 基员并 为序体数 数构的式个函造式个定类 放自将的象和,用出 针指的址们且个类创句 ;针赋的象,个类创语 的正下 ) *句各对生静象成个员定行体 能员.的(为声必 据 护 限问时缺类 声语成函 据数定 :确中 的义性;结改 时运 不 重函:为都运 中 新载符运中中 义 语 数静 中 .现一哪态符成 .可:正,多的重 构 数 :的 承表能 中关保或公 . 私保 函 私 原私:相限访成非基,成成类问以数 其若的义 公 函成

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁