C++期末考试试卷及答案1.pdf

上传人:无*** 文档编号:90863495 上传时间:2023-05-18 格式:PDF 页数:12 大小:1.15MB
返回 下载 相关 举报
C++期末考试试卷及答案1.pdf_第1页
第1页 / 共12页
C++期末考试试卷及答案1.pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

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

1、 C+血向对象程序设计试 卷 1一、单项选择题(每题2 分,共 40分)1.不是属于面向对象程序设计的特性A.抽象性 B.数据相关性C.多态性D.继承性2.将对某一类数据的处理算法应用到另一类数据的处理中,要用到C+的A.类 B.虚函数 C.运算符重载 D.模板3.C+与 C语言最根本的不同之处在于一A.使用了类 B.能够实现变量自动初始化C.支持软件重用 D.支持接口重用4.动态内存分配的主要目的是_A.使程序按动态联编方式运行C.提高程序的运行速度B.正确合理的使用内存D.提高程序的可维护性5.在 C+函数的形参前加c o n s t 关键字,是为了提高函数的A.数据封装性 B.可理解性C

2、.可维护性D.可重用性6 .函数重载的目的是A.实现共享 B.使用方便,提高可读性 C.提高速度D.减少空间7 .从程序片断:c h a r n a m e =C+”;c o u r s e (n a m e);可判断函数c o u r s e 的调用采用的是A.传值调用 B.带缺省参数值的函数调用C.引用调用 D.传址调用8 .用来说明类中公有成员的关键字是A.p u b li c B.p r i v a t eC.p r o t e c t e d D.fr i e n d9 .如果一个类的成员函数p r i n t。不修改类的数据成员值,则应将其声明为A.v o i d p r i n

3、t()c o n s t;C.v o i d c o n s t p r i n t ();B.c o n s t v o i d p r i n t ();D.v o i d p r i n t(c o n s t);10 .下列关于构造函数的论述中,不正确的是A.构造函数的函数名与类名相同C.构造函数的返回类型缺省为i n t 型B.构造函数可以设置默认参数D.构造函数可以重载11.在程序代码:A:A(i n t a,i n t *b)t h i s-x =a;t h i s-y =b;中,t h i s 的类型是A.i n t B.i n t *C.A D.A *12 .内存泄漏是指A.

4、内存中的数据出现丢失 B.试图释放一个已经释放了的动态分配的堆内存C.函数中局部变量所占的栈内存没有及时回收D.动态分配的堆内存在程序退出后始终被占用13 .从程序片断:s t u d e n t z h a n g s a n(张三,2 2);z h a n g s a n.i d (2 005 13 1000”);可判断 i d 是一个A.私有成员数据 B.私有成员函数 C.公有成员数据 D.公有成员函数14 .友元函数A.可以被声明为c o n s t B.没有t h i s 指针C.可以用类名或对象名来调用 D.只能用对象名来调用15 .若一个类的成员函数前用s t a t i c 关

5、键字修饰,则该成员函数A.可以被声明为c o n s t B.没 有 t h i s 指针C.可以访问该类的所有成员 D.只能用对象名来调用16 .C+是用_ _ 实现接口重用的A.内联函数 B.虚函数 C.重载函数 D.模板函数17 .公有继承的派生类对象可以访问其基类的A.公有成员 B.公有成员及受保护成员 C.受保护成员 D.私有成员18 .设置虚基类的目的是A.简化程序 B.使程序按动态联编方式运行 C.提高程序运行效率 D.消除二义性19 .下列关于纯虚函数和抽象类的描述中,不正确的是A.纯虚函数是一个没有具体实现的虚函数B.抽象类是包括纯虚函数的类C.抽象类只能作为基类,其纯虚函数

6、的实现在派生类中给出D.可以定义一个抽象类的对象2 0.关于运算符重载的不正确的描述是A.运算符重载函数是友元函数 B.体现了程序设计的多态性C.增加新的运算符 D.使运算符能对对象操作二、下面的程序是关于C B o o k类的一个定义,试改正程序中的错误。(共10分)#i n c l u d e#i n c l u d e t t i n l c u d e c l a s s C B o o k(p r i v a t e:c h a r *p _ b o o k;p u b l i c:p _ b o o k=n ew c h a r s t r l en(p _ v a l)+l C

7、B o o k (c o n s t c h a r *p v a l)p b o o k =n ew c h a r s t r l en (p v a l);s t r c p y (p b o o k,p v a l);v o i d p r i n t ()c o n s t c o u t p _ b o o k en d l;“C B o o k()d el et e p _ b o o k;);v o i d m a i n()c h a r b o o k _ t i t l e 6 0;C B o o k *p _ b o o k _ o b j;c o u t p r i

8、n t ();)三、根据如下所示程序,回答下列问题(共10分)#i n c l u d e c l a s s C J o u r n a lp u b l i c:C J o u r n a l ()c o u t ”J o u r n a l d ef a u l t c o n s t r u c t o r,en d l;v i r t u a l v o i d s u b s c r i b e()=0;v o i d r ea d()c o u t aR ea d p a p erv en d l;r C J o u r n a l()c o u t aJ o u r n a l

9、 d ef a u l t d es t r u c t o rw en d l;);c l a s s C C o m p u t er D es i g n :p u b l i c C J o u r n a l(p u b l i c:C C o m p u t er D es i g n ()c o u t “C o m p u t er D es i g n d ef a u l t c o n s t r u c t o r,en d l;v i r t u a l v o i d s u b s c r i b e()c o u t ”S u b s c r i b i n g

10、 C o m p u t er D es i g n“en d l;v o i d r ea d()c o u t uR ea d i n g C o m p u t er D es i g n”en d l;C C o m p u t er D es i g n()c o u t ”C o m p u t er D es i g n d ef a u l t d es t r u c t o rn s u b s c r i b e();p _ j o u r n a l-r ea d();)1.当程序运行到处时,写出程序运行的输出结果(3 分)2 .当程序结束时,程序会在第1 问的基础上增

11、加哪些输出。(4分)3 .若在主函数中定义一个对象C J o u r n a l j o u i r n a l;程序编译时会否出错?为什么?(3 分)四、编程题(共 40分)1.定义一个商品类C G o o d s,其中包含商品号(l o n g n o)、商品名(c h a r *p _ n a m e)、商品价格(d o u b l e p r i c e)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(10分)#i n c l u d e S i n c l u d e u s i n g n a m es p a c e s t d;c l a s

12、 s C C o u r s e(p r i v a t e:l o n g n o;c h a r *p _ n a m e;f l o a t c r ed i t;p u b l i c:C C o u r s e(l o n g n o _ v a l,c h a r p _ v a l,f l o a t c r ed i t _ v a l);C C o u r s e(c o n s t C C o u r s e&r _ c o u r s e);C C o u r s e()d el et e p n a m e;v o i d p r i n t()c o n s t;);

13、C C o u r s e:C C o u r s e(l o n g n o _ v a l,c h a r p _ v a l,f l o a t c r ed i t _ v a l)(n o=n o _ v a l;p _ n a m e=n ew c h a r s t r l en(p _ v a l)+l ;s t r c p y(p _ n a m e,p _ v a l);c r ed i t=c r ed i t _ v a l;)C C o u r s e:C C o u r s e(c o n s t C C o u r s e&r _ c o u r s e)(n o

14、=r _ c o u r s e.n o;p _ n a m e=n ew c h a r s t r l en(r _ c o u r s e.p _ n a m e)+1;s t r c p y(p _ n a m e,r _ c o u r s e.p _ n a m e);c r ed i t=r _ c o u r s e.c r ed i t;)v o i d C C o u r s e:p r i n t ()c o n s t(c o u t,/C o u r s e n u m b er/,n o en d l;c o u t,zC o u r s e n a m ez/p

15、_ n a m e en d l;c o u t z zC o u r s e c r ed i t,/c r ed i t en d l;2 .为C G o o d s类增加一个商品总数(i nt co u nt)数据成员,并增加一个成员函数g e t C o u nt()获取co u nt的值,编写一个友元函数g e t Nam e O获取商品名称p _nam e。做如上修改后,重新实现C G o o d s类(与第1问相同的不用再重复)。(1 0分)3 .为C G o o d s类定义小于运算符(=)两个运算符重载函数。C G o o d s类对象大小的比较是根据其商品价格(p r i

16、ce)的值的大小来实现的。(与第2间相同的不用再重复)(1 0分)4.以C G o o d s类为基类,派生出服装类C C lo t h e s和食品类C F o o d两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(ch ar *p _b r and)和表示用途的成员函数(v o i d u s e d F o r ()-可分别输出一条表示服装和食品用途的信息)。写出C C lo t h e s类和C F o o d类的完整定义(包括构造、析构和u s e d F o r ()成员函数的实现)。(1 0 分)五、附 加 题(共 3 0 分。注 意:确保基本题成绩能达到 7 5

17、分以上,再尝试做附加题!)1.在基本题第四题的基础上,在C G o o d s 类增加总商品数(lo ng t o t al_g o o d s)和商品总价格(d o u b let o t al p r i ce)两个数据成员,以及相应的获取这两个数据成员值的成员函数g e lT o t alG o o d s。和g e t T o t alP r i ce O o(注意说明数据成员和成员函数的存储类型,以便能够用类名来调用g e t T o t alG o o d s ()和 g e t T o t alP r i ce O这两个函数)。为了能够采用动态联编的方式调用派生类的u s e d

18、 F o r ()成员函数,应该在C G o o d s 类及其派生类C C lo t h e s 和 C F o o d 类中作何改动?(1 5分)2.编写一个实现两个数交换的函数模板s w ap,然后使用该函数模板再编写一个对具有n 个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。(1 5分)试卷参考答案一、单项选择题1-5.BDA BC 6-1 0.BDA A C1 1-1 5.C A DBB 1 6-2 0.C A DDA(每小题答对2 分,不答0 分,答错。分)#i nclu d e 改为#i nclu d e p b o o k=ne w ch ar s t r l

19、e n(p v al)改为 p b o o k=ne w ch ar s t r le n(p v al)+lC Bo o k ab o o k;改为 C Bo o k ab o o k(p);p b o o k o b j =ab o o k 改为 p b o o k o b j =&ab o o k;p _b o o k_o b j.p r i nt ()改为 p _b o o k_o b j-p r i nt ();(该对得2分,未改或改错得0分,正确之处该成错误倒扣1 分)1.J o u r nal d e f au lt co ns t r u ct o r d e f au lt

20、co ns t r u ct o rS u b s cr i b i ng (全部答对得3 分,答错或漏答一条输出扣1 分)2.Subscribing Reading paper default destructorJournal default destructor(全部答对得4 分,答错或漏答一条输出扣1 分)3 .会出错,因为(Journal中包含有纯虚函数,故 CJournal是抽象类,不能定义抽象类对象。(答对编译会出错得1 分,答对原因得2 分。)四、1 .t t i nclu d e#i nclu d e u s i ng nam e s p ace s t d;clas s C

21、 C o u r s e(p r i v at e:l ong no;char *p _ name;fl oat cr ed it;p ub l ic:C C our se(l ong no val,char *p val,fl oat cr ed it val);C C our se(const C C our se&r _ cour se);C C our se()d el ete p name;void p r int0 const;);C C our se:C C our se(l ong no val,char *p val,fl oat cr ed it val)no=no_ va

22、l;p _ name=new char str l en(p _ val)+l ;str cp y (p name,p val);cr ed it=cr ed it_ val;)C C our se:C C our se(const C C our se&r cour se)(no=r cour se.no;p _ name=new char str l en(r _ cour se.p _ name)+l ;str cp y(p _ name,r _ cour se.p _ name);cr ed it=r _ cour se.cr ed it;)void C C our se:p r in

23、t()constcout C our se numb er:no end l;cout ”C our se name:p _ name end l;cout z/C our se cr ed it:cr ed it end l;)(数据成员定义正确得2分,部分正确得1 分,不正确得。分每个成员函数定义正确得2分,每个成员函数有小错误扣1 分,完全不正确不得分)2 .在 cl ass C C our se定义中增加一 条:p r ivate:static int total _ cour se;(答对得1分,未 力 口 s ta tic 得 0 分)在类外部增加一条:int CCourse:to

24、tal_course=0;(答对得1分,答错或漏答得0 分)在 CCourse类的构造函数中增加一条:total_course+;(答对得1分)在 CCourse类的拷贝构造函数中增加条:total_course+;(答对得1 分)在 CCourse类的析构函数中增加一条:total_course一 一;(答对得1分)在 class CCourse定义中增加一条:public:static getTotalCourseO return total course;(答对得2 分,未加s ta tic 得 1 分)在 class CCourse定义中增加一条:friend char*getCour

25、seName(const CCourse&r_course);(答对得1 分,未 加 frien d 得。分)在类外部定义:char*getCourseName(const CCourse&r_course)(return r_course.p_name;)(答对得2 分)3.在 class CCourse定义中增加一条:public:bool operator(const CCourse&r course);(答对得2 分)在类外部定义:bool CCourse:operator(const CCourse&r_course)(if(credit=(const CCourse&r_cours

26、e);(答对得2 分)在类外部定义:bool CCourse:operator=(const CCourse&r course)(if(credit=r course,credit)return true;elsereturn false;)(答对得3 分)4.class CHLP:public CCourse(private:char*p_openby;public:CHLP(long no_val,char*p_val,float credit_val,char*p_open):CCourse(no_val,credit_val)(p_openby=new charstrlen(p_ope

27、n)+l;strcpy(p_openby,p_open);)CHLP()delete p_openby;void studyFor()cout Study for structured programming”endl;P_val,);(答对得5分,其中构造函数3分,析构函数1分,stud y F or O函 数1分)cl ass C O O P:p ub l ic C C our se(p r ivate:char *p _ op enb y;p ub l ic:C O O P(l ong no val,char *p val,fl oat cr ed it,val,char *p op e

28、n):C C our se(no val,p val,cr ed it_ val)p _ op enb y =new char str l en(p _ op en)+l ;str cp y(p op enb y,p op en);)C O O P()d el ete p op enb y;void stud y F or O cout S tud y for ob ject or iented p r ogr amming end l;);(答对得5分,其中构造函数3分,析构函数1分,stud y F or O函数1分)五、1.在cl ass C C our se定义中增加一条:p ub l

29、 ic:vir tual void stud y F or()cout ”stud y for d egr ee n,z;(答对得2分)增加:#incl ud e 主函数可定义为:void main()(char choice,instr uctor 1 0 ;fl oat cr ed it;l ong id;C C our se*p _ cour se;cout ”S el ect cour se:nz,;cout 1.forH igh L evel L anguage Pr ogr amming nz,cout 2.forO b ject O r iented Pr ogr amming

30、n,z;cin choice;cout ”E ntercour se numb er:;cin id;cout ”E ntercr ed it:;cin cr ed it;cout ”E nter instr uctor name:;cin instr uctor;switch(choice)(case 1 :p _ cour se=new C H L P(id,高级语言程序设计 ,cr ed it,b r eak;case 2:p cour se=new C O O P(id,面向对象程序设计 ,cr ed it,b r eak;d efaul t:exit(0);)p _ cour se-

31、stud y F or ();d el ete p _ cour se;)(答对得1 3 分)2.#incl ud e using namesp ace std;temp l ate void swap(T&a,T&b)(T temp;temp =a;a=b;b =temp;)temp l ate void b ub b l eS or t(T a口,int n)(int i,j;for (i=l;i n;i+)for (j=0;j a j+l )swap(a j,a j+l );temp l ate void p r int(T 1 a ,int n)instr uctor);instr uctor);for (int i=0;i n;i+)cout a i ;cout end l;void main()(int a =2,3,1,6,4 3,2 2 ;d oub l e b =2.3,3.2,1.6,-6.0,4.3,2.2);p r int(a,6);b ub b l eS or t(a,6);p r int(a,6);p r int(b,6);b ub b l eS or t(b,6);p r int(b,6);(答对得1 5分)

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

当前位置:首页 > 教育专区 > 教案示例

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

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