C++期末考试试卷及答案_第1页
C++期末考试试卷及答案_第2页
C++期末考试试卷及答案_第3页
C++期末考试试卷及答案_第4页
C++期末考试试卷及答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、 数据封装性b. 可理解性 c. 可维护性 d. 可重用性6 函数重载的目的是_ _. 实现共享使用方便 , 提高可读性 c. 提高速度 d. 减少空间. 从程序片断: char nme = c+;course(n m ) ;可判断函数course 的调用采用的是 _ . 传值调用 带缺省参数值的函数调用 c引用调用 传址调用8. 用来说明类中公有成员的关键字是_ a. pubi b. pr vat . pr tected d. frin. 如果一个类的成员函数rin ( )不修改类的数据成员值,则应将其声明为 a. vo d p in () c n ; b. c nst void prnt(

3、 ) ; c. voionst p i t () ;. v id prin ( onst); 1. 下列关于构造函数的论述中, 不正确的是 _ _ a 构造函数的函数名与类名相同 b 构造函数可以设置默认参数 c 构造函数的返回类型缺省为int型d 构造函数可以重载11. 在程序代码 :a::a(int , it *b) this-x = ; is y b ; 中,t is 的类型是 _ _ a. nt b. i t * c. a 12. 内存泄漏是指_ - - 内存中的数据出现丢失 b.试图释放一个已经释放了的动态分配的堆内存. 函数中局部变量所占的栈内存没有及时回收. 动态分配的堆内存在程

4、序退出后始终被占用1. 从程序片断: st de t zhagan( 张三 , m ,2 ); zhan . d(20 31); 可判断 i 是一个 _ _ a. 私有成员数据私有成员函数c. 公有成员数据 d. 公有成员函数4. 友元函数 _ _ a. 可以被声明为cns b. 没有 his 指针. 可以用类名或对象名来调用d只能用对象名来调用1. 若一个类的成员函数前用sat c 关键字修饰,则该成员函数_ a. 可以被声明为cnst b. 没有 thi 指针c. 可以访问该类的所有成员. 只能用对象名来调用c+ 是用 _ _实现接口重用的a. 内联函数 b 虚函数. 重载函数 d. 模板

5、函数17. 公有继承的派生类对象可以访问其基类的_ a. 公有成员 b. 公有成员及受保护成员 c 受保护成员 d 私有成员 . 设置虚基类的目的是_ _ a. 简化程序. 使程序按动态联编方式运行. 提高程序运行效率 d. 消除二义性9. 下列关于纯虚函数和抽象类的描述中, 不正确的是_ . 纯虚函数是一个没有具体实现的虚函数b抽象类是包括纯虚函数的类 c. 抽象类只能作为基类, 其纯虚函数的实现在派生类中给出d可以定义一个抽象类的对象20. 关于运算符重载的不正确的描述是_ _ a. 运算符重载函数是友元函数 b. 体现了程序设计的多态性 c. 增加新的运算符 d. 使运算符能对对象操作二

6、、下面的程序是关于cbook类的一个定义 , 试改正程序中的错误。 (共分) #inc ude iostr am h #inclu e ah inl ude class cbook r vate: char *pbo ; ublic: _bok=new ch rstrle(p_ al)+ - - c ook(co t a *p_val) p_ k = ew chrst e(p_val); srcpy (p_bok, p_val) ; void print() const cout _bo ndl; cbo k() dl te p ook; ; voi mi ()har o ktit 60; c

7、ok p_bookoj; cou p; boo boo(p); p bokobj = &a oo; p_bo _bj-pri t( ); 三、根据如下所示程序,回答下列问题( 共 1分) ncl de otrea .h class cjoura pbl c: ourn()cout “jou l defa l con truct” en l; virtu void bscribe() ;void rea( ) cout “ re d paper ” nl ;cjurnal() co t “ oral de ult dsr o” ndl; ; class compu e es gn : u

8、bl cjournal p i : coput r esgn () out “ coput dsi ndefa lt construor” edl; tual void bcibe() cout “su c bing comp ter eign ” edl ; void read() cut “ readig com uer desg” endl; comp te design() c t “ mpu er desgn default de tctor ” read( ) ; . 当程序运行到处时,写出程序运行的输出结果 ( 分) - - 2. 当程序结束时,程序会在第问的基础上增加哪些输出。

9、(4 分) 若在主函数中定义一个对象cjunl jurnal; 程序编译时会否出错?为什么?( 3 分) 四、编程题 ( 共 40分)1 定义一个商品类 cgoods, 其中包含商品号 ( ng no)、 商品名 (cha pname)、商品价格 ( oube i e)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(10 分) #nclude #in ue tring.h usng namespa td ;cla ccourse pri ate :? long o; ? char p_nme; fl a cre it; publ c:? ccrse(long

10、 no_l, har p_val,float redit_ al ); ? ccourse(const c se &r_cou e); ? ccours ()delete p_name; ? void pr nt( )cons;; ose:corse(l n no_val,ch r p al,fl creditval) ? ? no=no_al; ?pnam =new chars rlen (p_val)+1; ? strcp (p_nae,p_val ); ? ? reit=c edit val; ? ourse: urse(con cours &r_c urs ) ? ?

11、? no=rcour.no; ? pnae= w arstr n(r curs . _name)+1; ? strcpy(p m ,r_ ore.p_ e); - - credit=r_use.cr dit; vi ccouse:prin () con ? cout couse number noenl; ? ot o s n name endl; ? cout coure cre t cri ndl ;? 2. 为 cg o类增加一个商品总数(i t cou t )数据成员,并增加一个成员函数getcnt() 获取 count 的值, 编写一个友元函数getname()获取商品名称 _nam

12、e 。做如上修改后 , 重新实现 cgoods 类(与第 1 问相同的不用再重复 ) 。 (10 分) . 为 oods 类定义小于运算符 ( 改为 #include pin ( ) ;( 该对得分 , 未改或改错得0 分, 正确之处该成错误倒扣1 分) 三、. jornal defal c nsru o defau t construt subs r bing readng ( 全部答对得分,答错或漏答一条输出扣1 分). sbscribing adi g paper fault desruc or j rna ef t d sru tor ( 全部答对得4 分, 答错或漏答一条输出扣分)

13、3会出错 , 因为 c unal 中包含有纯虚函数, 故 cjourn l 是抽象类,不能定义抽象类对象。- - ( 答对编译会出错得1 分,答对原因得2 分。 )?四、1. #in lud in lude tring.h us g namespce std ; clss c orse rivate: lo g no ; char *p_ me; fl at credit;ublic: ccourse(lng o_va,har *p_va , fl t redi _va); c ouse(c nst cc urse & _ours ); ccou s() d l e p_n e; id

14、 prin( ) const; ; cours:ccourse( ong o_val, char *_val, f ot c dit_val)no o_val; pn me = w char trlen(pva)+1; strcp(p_n me, _al); c edit = cr dit val; ccou se::ccour e(cost c ou e r_co se) o _cous.n ; p_name = new hastrlen( r_c usep_ame )+1; strcp (p nam ,_course. am ) ; credit = rcourse.crdit; void

15、 curse:pr () nst cout course numbe: o en ; cout course name: _nme endl ;out co rse cred: cre it end ; (数据成员定义正确得2 分,部分正确得1 分, 不正确得分每个成员函数定义正确得2 分,每个成员函数有小错误扣分,完全不正确不得分) - - 在 clas cou e 定义中增加一条: priva:st ti int ota cu e; ( 答对得分,未加static得 0 分) 在类外部增加一条: nt couse:ttal c use = 0; ( 答对得分,答错或漏答得0 分)在 cou

16、 e类的构造函数中增加一条: total_course+; (答对得 1 分)在 c ou se 类的拷贝构造函数中增加一条: otal c rs +; (答对得 1 分 ) 在 c ou se 类的析构函数中增加一条:t al_co rse- ; ( 答对得分)在 cl ss c s定义中增加一条: pub ic: tatic ettota c urs ( ) turn tt l_course; ( 答对得 2 分 ,未加 st tic得分 ) 在 class ccou s定义中增加一条: ie d cha *getcours ame(const c ourse &r_cou se)

17、 ;(答对得 1 分,未加fri得分) 在类外部定义: chgtcursenae( const ccourse &r_c rse) rt rn curse.p_nam ; - - (答对得 2 分) 3. 在 cas ccour e 定义中增加一条:pu i : ol op ator (con t c o se r_ ourse ) ;(答对得 2 分 ) 在类外部定义: boo c ours :o erator (c st our e &r co se) i (cred t =(onst cc urse &r cous) ; ( 答对得 2 分) 在类外部定义 : b

18、ool ccourse: p tor =(cost cco rse &r_course) (c edit r_ orse. dt) return tue; lse r urn als ; (答对得 3 分 ) 4clas chlp : pu lic ccourse private: c ar _opeby; blic: chlp(lon no vl, char p_val, float cr t_va , char p_open) : course(n _v, p v , crdit va) - - p_oeny = new ch st len (popen) 1; tr py(p_o

19、p nb, p_o en); chlp() elete p_openb; vid stdyfor() cout tud f r tr ctured pogr m in en l; ; ( 答对得分,其中构造函数分,析构函数分,studyfo ( ) 函数 1 分) class coo : pblic ccoure pri ae: char *p_ nby; i : cop(lo g o_al , c r *p_ al, loat crdi _val, har _open) : ccoure(no_ , p_val, redit_vl) p openby = new har srl n(p oen)+1 ;srcpy( _openy, open); oop() del t po eby; vi s udyfor() cut study fobject orint d pr gramming e dl; ; (答对得分 ,其中构造函数3 分, 析构函数1 分, udyfor() 函数 1 分)五、1. 在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论