大学C++期末考试试卷(含答案).pdf

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

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

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 ar n am e =C+”;c o u r s e (n am e);可判断函数c o u r s e 的调用采用的是A.传值调用 B.带缺省参数值的函数调用C.引用调用 D.传址调用8 .用来说明类中公有成员的关键字是一A.p u b l i c B.p r i v at eC.p r o t e c t e dD.f r i e n d9 .如果一个类的成员函数p r i n t。不修改类的数据成员值,则应将其声明为A.v o i d p r i n t

3、()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);1 0 .下列关于构造函数的论述中,不正确的是.A.构造函数的函数名与类名相同C.构造函数的返回类型缺省为i n t 型B.构造函数可以设置默认参数D.构造函数可以重我1 1 .在程序代码: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 *1 2 .

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

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

6、类C.抽象类只能作为基类,其纯虚函数的实现在派生类中给出D.可以定义一个抽象类的对象2 0.关于运算符重载的不正确的描述是A.运算符重载函数是友元函数 B.体现了程序设计的多态性C.增加新的运算符 D.使运算符能对对象操作二、下面的程序是关于C B o o k类的一个定义,试改正程序中的错误。(共1 0分)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(pr i v a t e:c h a r *p b o o k;pu b l i c:p_ b o o k=n e w c h a r s t r l e n(

7、p_ v a l)+1 C B o o k (c o n s t c h a r *p_ v a l)p_ b o o k =n e w c h a r s t r l e n (p_ v a l);s t r c py (p_ b o o k,p_ v a l);v o i d pr i n t()c o n s t c o u t p_ b o o k p;C B o o k a b o o k(p);p_ b o o k _ o b j =&a b o o k;p_ b o o k _ o b j-pr i n t();三、根据如下所示程序,回答下列问题(共1 0分)#i n c l u

8、 d e c l a s s C J o u r n a lpu b l i c:C J o u r n a l()c o u t J o u r n a l d e f a u l t c o n s t r u c t o rn e n 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 e a d()c o u t R e a d pa pe r”e n d l;C J o u r n a l ()c o u t J o u r n a l d e f a u l t d e s t r u c t o r e n d l;

9、;c l a s s C C o m pu t e r D e s i g n :pu b l i c C J o u r n a l(pu b l i c:C C o m pu t e r D e s i g n ()c o u t “C o m pu t e r D e s i g n d e f a u l t c o n s t r u c t o rv e n 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 C o m pu t e r D e s i g n“e n d l;v o

10、 i d r e a d()c o u t R e a d i n gC o m pu t e r D e s i g n”e n d l;C C o m pu t e r D e s i g n()c o u t C o m pu t e r D e s i g nd e f a u l t d e s t r u c t o r s u b s c r i b e();p j o u r n a l-r e a d();)L当程序运行到处时,写出程序运行的输出结果(3分)2 .当程序结束时,程序会在第1间的基础上增加哪些输出。(4分)3 .若在主函数中定义一个对象C J o u r n a

11、 l j o u r n a l;程序编译时会否出错?为什么?(3分)四、编程题(共4 0分)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 pr i c e)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(1 0分)#i n c l u d e S i n c l u d e u s i n g n a m e s pa c e s t d;c l a s s C C o u r s e(pr i v a t e:l o n g n o;

12、c h a r *p n a m e;f l o a t c r e d i t;pu 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 e d 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 O d e l e t e p n a m e;v o i d pr i n t()c o n s t;);C C o u r s e:C C o u r s e (l o n g n o _

13、v a l,c h a r p_ v a l,f l o a t c r e d i t _ v a l)(n o=n o _ v a l;p n a m e=n e w c h a r s t r l e n(p v a l)+1 ;s t r c py (p n a m e,p_ v a l);c r e d i t=c r e d 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=r _ c o u r s e.n o;p_ n a m e=n e w c h a

14、r s t r l e n(r _ c o u r s e.p_ n a m e)+1 ;s t r c py (p_ n a m e,r _ c o u r s e.p_ n a m e);c r e d i t=r _ c o u r s e.c r e d i t;)v o i d C C o u r s e:pr i n t()c o n s t(c o u t /zC o u r s e n u m b e rz,n o e n d l;c o u t ,zC o u r s e n a m e,p_ n a m e e n d l;c o u t ,zC o u r s e c r

15、 e d i tz,c r e d i t =)两个运算符重载函数。CG o o d s 类对象大小的比较是根据其商品价格(p r i c e)的值的大小来实现的。(与 第 2问相同的不用再重复)(1 0 分)4.以CG o o d s类为基类,派生出服装类CCl o t h e s和食品类CF o o d两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(c h ar *p _br an d)和表示用途的成员函数(v o i d u s e d F o r O可分别输出一条表示服装和食品用途的信息)。写 出CCl o t h e s类和CF o o d类的完整定义(包括构造、析构和

16、u s e d F o r O成员函数的实现)。(1 0分)五、附加题(共 30分。注意:确保基本题成绩能达到75分以上,再尝试做附加题!)1 .在基本题第四题的基础上,在CG o o d s类增加总商品数(l o n g t o t al g o o d s)和商品总价格(d o u bl e t o t al p r i c e)两个数据成员,以及相应的获取这两个数据成员值的成员函数g e t T o t al G o o d s。和g e t T o t al P r i c e O。(注意说明数据成员和成员函数的存储类型,以便能够用类名来调用g e t T o t al G o o d

17、 s O和g e t T o t al P r i c e ()这两个函数)。为了能够采用动态联编的方式调用派生类的u s e d F o r O成员函数,应该在CG o o d s类及其派生类CCl o t h e s和CF o o d类中作何改动?(1 5分)2 .编写一个实现两个数交换的函数模板s wap,然后使用该函数模板再编写一个对具有n个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。(1 5分)一、单项选择题1-5.B DAB C 6-1 0.B DAAC1 1-1 5.CADB B 1 6-2 0.CADDA(每小题答对2分,不答0分,答错0分)二、#i n c

18、l u d e 改为#i n c l u d e p bo o k=n e w c h ar s t r l e n (p _v al)改为 p _bo o k=n e w c h ar s t r l e n (p _v al)+1 CB o o k abo o k;改为 CB o o k abo o k(p);p _bo o k_o bj=abo o k 改为 p _bo o k_o bj=&abo o k;p _bo o k_o bj.p r i n t ()改为 p _bo o k_o bj-p r i n t ();(该对得2分,未改或改错得。分,正确之处该成错误倒扣1 分)三、1.

19、J o u r n al d e f au l t c o n s t r u c t o r Co mp u t e r De s i g n d e f au l t c o n s t r u c t o rS u bs c r i bi n g Co mp u t e r De s i g n Re ad i n g Co mp u t e r De s i g n(全部答对得3 分,答错或漏答一条输出扣1 分)2.S u bs c r i bi n g Co mp u t e r De s i g n Re ad i n g p ap e r Co mp u t e r De s i

20、 g n d e f au l t d e s t r u c t o rJ o u r n al d e f au l t d e s t r u c t o r(全部答对得4 分,答错或漏答一条输出扣1 分)3.会出错,因为(J o u r n al 中包含有纯虚函数,故(J o u r n al 是抽象类,不能定义抽象类对象。(答对编译会出错得1 分,答对原因得2分。)四、1.t t i n c l u d e#i n c l u d e u s i n g n ame s p ac e s t d;c l as s CCo u r s e(p r i v at e:l o n g n

21、o;c h ar *p _n ame;f l o at c r e d i t;p u bl i c:CCo u r s e(l o n g n o _v al,c h ar *p _v al,f l o at c r e d i t _v al);CCo u r s e(c o n s t CCo u r s e&r _c o u r s e);C C ou rse()delet e p _n a me;v oid p rin t()con st;);C C ou rse:C C ou rse(lon g n o v a l,ch a r*p v a l,floa t credit v a

22、l)(n o=n o_v a l;p n a me=n ew ch a rst rlen(p _v a l)+l;st rcp y(p _n a me,p _v a l);credit =credit v a l;)C C ou rse:C C ou rse(con st C C ou rse&r_cou rse)(n o=r_cou rse.n o;p _n a me=n ew ch a rst rlen(r_cou rse.p _n a me)+l;st rcp y(p n a me,r cou rse.p _n a me);credit =r_cou rse.credit;)v oid

23、C C ou rse:p rin t()con stcou t C ou rse n u mb er:n o en dl;cou t C ou rse n a me:p _n a me en dl;cou t C ou rse credit:credit en dl;(数据成员定义正确得2分,部分正确得1 分,不正确得0分每个成员函数定义正确得2分,每个成员函数有小错误扣1 分,完全不正确不得分)2.在 cla ss C C ou rse定义中增加一条:p riv a t e:st a t ic in t t ot a l_cou rse;(答对得1 分,未加st a t ic得 0分)在类外

24、部增加一条:in t C C ou rse:t ot a l_cou rse=0;(答对得1 分,答错或漏答得0分)在 C C ou rse类的构造函数中增加一条:t ot a l_cou rse+;(答对得 1 分)在 C C ou rse类的拷贝构造函数中增加一条:t ot a l_cou rse+;(答对得 1 分)在 C C ou rse类的析构函数中增加条:t ot a l_cou rse一;(答对得 1 分)在 cla ss C C ou rse定义中增加一条:p u b lic:st a t ic get T ot a lC ou rseO ret u rn t ot a l c

25、ou rse;(答对得2分,未加st a t ic得 1 分)在 cla ss C C ou rse定义中增加条:frien d ch a r*get C ou rseN a me(con st C C ou rse&r_cou rse);(答对得1 分,未加frien d得 0分)在类外部定义:ch a r*get C ou rseN a me(con st C C ou rse&r_cou rse)(ret u rn r_cou rse.p _n a me;(答对得 2 分)3.在 cla ss C C ou rse定义中增力 一条:p u b lic:b ool op era t or

26、(con st C C ou rse&r_cou rse);(答对得2分)在类外部定义:b ool C C ou rse:op era t or (con st C C ou rse&r_cou rse)(if(credit =(con st C C ou rse&r_cou rse);(答对得 2 分)在类外部定义:b ool C C ou rse:op era t or =(con st C C ou rse&r_cou rse)(if(credit =r_cou rse.credit)ret u rn t ru e;elseret u rn fa lse;)(答对得3分)4.cla ss

27、 C H L P :p u b lic C C ou rse(p riv a t e:ch a r*p op en b y;p u b lic:C H L P(lon g n o v a l,ch a r*p _v a l,floa t credit v a l,ch a r*p _op en):C C ou rse(n o v a l,p _v a l,credit _v a l)(p _op en b y=n ew ch a rst rlen (p _op en)+l;st rcp y(p op en b y,p op en);)、C H L P()delet e p _op en b y

28、;v oid st u dyF or()cou t ”S t u dy for st ru ct u red p rogra mmin g en dl;);(答对得5 分,其中构造函数3分,析构函数1 分,st u dyF or()函数1 分)cla ss C O O P :p u b lic C C ou rse(p riv a t e:ch a r*p _op en b y;p u b lic:C O O P (lon g n o v a l,ch a r*p v a l,floa t credit v a l,ch a r*p _op en):C C ou rse(n o v a l,p

29、 _v a l,credit _v a l)(p _op en b y=n ew ch a rst rlen(p _op en)+l;st rcp y(p _op en b y,p _op en);)C O O P()delet e p op en b y;v oid st u dyF or()cou t ”S t u dy for ob ject orien t ed p rogra mmin g en dl;);(答对得5 分,其中构造函数3分,析构函数1 分,st u dyF or()函数1 分)五、1.在 cla ss C C ou rse定义中增加一条:p u b lic:v irt

30、 u a l v oid st u dyF or()cou t st u dy for degreen,z;(答对得2分)增加:#in clu de 主函数可定义为:v oid ma in()(ch a r ch oice,in st ru ct or1 0;floa t credit;lon g id;C C ou rse*p _cou rse;cou t S elect cou rse:n;cou t “1.for H igh L ev el L a n gu a ge P rogra mmin gn/Z;cou t “2.for O b ject O rien t ed P rogra

31、mmin gnz/;cin ch oice;cou t ,E n t er cou rse n u mb er:;cin id;cou t E n t er credit:;cin credit;cou t st u dyF or();delet e p cou rse;)(答对得1 3分)2.t t in clu de u sin g n a mesp a ce st d;t emp la t e v oid swa p (T&a,T&b)(T t emp;t emp =a;a =b;b =t emp;)t emp la t e v oid b u b b leS ort(T a,in t

32、n)(in t i,j;in st ru ct or);in st ru ct or);for(i=l;i n;i+)for(j=0;j a j+l)swa p(a j,a j+l);)t emp la t e v oid p rin t(T 1 a,in t n)(for(in t i=0;i n;i+)cou t a icou t en dl;)v oid ma in()(in t a =2,3,1,6,4 3,2 2 ;dou b le b =2.3,3.2,1.6,-6.0,4.3,2.2);p rin t (a,6);b u b b leS ort(a,6);p rin t (a,6);p rin t (b,6);b u b b leS ort(b,6);p rin t(b,6);(答对得1 5分)

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

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

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

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