《2023年杭州电子科技大学C面向对象程序设计_期末考试试题(A)卷.docx》由会员分享,可在线阅读,更多相关《2023年杭州电子科技大学C面向对象程序设计_期末考试试题(A)卷.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、杭州电子科技大学学生考试卷(A)卷考试课 程面向对象程序设计考试日 期202 3 6月日成绩课程 号B100210()教师号任课教师姓名楼永坚考生姓 名学号(8 位)年级05专业05 05 11/2/3座位 号一、判断题(15分)(对的打J,错的打X)1 .友元函数用于允许一个函数访问不相关类的私有部分。2 .构造函数可以被继承。3 .动态绑定的多态性是通过虚函数实现的。4 .在C+中,传引用调用等同于传地址调用。5 .重载函数必须有不同的参数列表。6 .可以用del e t e释放不是用n ew运算符分派的内存。7 .类成员的默认访问模式是p r i vat e。8 .在类T i in e中
2、的析构函数可以声明为:v oid T i me (int);9 . co nst对象必须初始化。10 .在C+中,只能重载已有的运算符。二、选择题(20分).关键字 说明对象或变量初始化后不会被修改。a. st a tic b . pub 1 ic c. co n st d. in 1 i ne.假如调用带有默认参数的函数时缺少一个参数,则 参数就作为这一参数。a.第一个 b.最后一个c.中间一个 d.以上都不是.成员函数可声明为静态的,条件是它不访问 类成员。a .静态 b.常数 c.非静态 d .公共.内联函数执行起来比标准函数。a.更慢 b.更快 c.次数更多d.以上都不是. 默认参数的
3、值由 提供。a. 该函数 b.调用程序 c.上述两者 d.以上都不是.在C+中,混合类型表达式。a.允许存在b .为一错误 c. 从i n t到f 1 oa t d.从fl。al到int.表达式lo n g(in t V ar)也可表达为 。a . i nivar = long; b. i n tVardong) c. (I o ng)intV a r d .以上都不是.静态数据成员的生存期。a.与整个程序相同b.不长于类的生存期c.取决于创建的对象数 d.以上都不是.要让一个类中的所有对象具有共同的数据,请使用。a.常数成员变量 b.私有数据成员c.静态数据成员d.以上都是.设立虚基类的目的
4、是:a.简化程序 b.消除二义性c.提高运营效率d.减少目的代码三、指出下列程序片段中的错误标号,写出对的语句或解释错在何处。(20分)(Dint index=67 5 ;1)*ptr= 5 5 5; P t r是指向整数常量的指针n t p tr=&ano t her; ntptr是常量指针,不能指向别的的变量2) int a r r p :应改为:int * a r r p :del e t e a rrp;应改为:del e t e a r r p;3)r e tu r n bas e data; / / 在 b or d er_an djnen u 中弓|用 base d a t a
5、时产生二义性,应使用虚基类应改为:cl a ss b o r d er:vi r tual p u b lie w i n d ow );c 1 ass menu : vir t ual public wind o w );1)const int *pt r =&ind e x ;(3)i n t * c o nst nlptr=& index;*ptr= 5 5 5;*n t ptr=666; i nt another=8;pt r =& a n other;()ntptr=&another;2)in t arrp; a rrp=new int15; d elete arrp;3)下面程序为
6、什么会编译错误,并改正错误(提出解决办法)。clas s wi n dow(protec t ed:in t basedata;c 1 ass bo r d er: pu b lie w i nd o w( ):class menu: p u blie w i ndow( );c 1 a ss b ord e r a n d_me n u: p ub 1 ic bor d er, p ublic menu (publ i c:in t s h ow () return bas e data;。)4)改正下面程序段中的错误,写出整个对的的程序段temp 1 a t evoid p r i n t
7、(T *a)ou ta,n ; )v o i d m a in()c o n st int x=0;c o uty, n ;int y ;x=5;int* pp=&y;pr i nt(p);re t u r n 0;)四、写出下面程序的执行结果:(15分)I )#include u s i ng n amesp ace st d ;cla s s A f rien d double c ount( A&);pub lie:A (double t , double r):tot a 1 (t) , r a t e (r)(pr i v a t e :double total;doubl e ra
8、t e ;d oub 1 e c o u n t(A& a)(a ,total+= a .rate*a.tot a 1;ret u m a. to t al;)i n t ma i n(v o i d )(3A x (80.0. 5),y(100, 0 . 2);c o u t c ount(x)c o un t (y) n;*coulcounl(x) n;retur n 0;执行结果:2)# i n cludeu si n g namespace s id;clas s Co u n t(p r iva t e:s t atic int coun t er;i nt obj_i d ;pub
9、 I ic:c out Objec t ID is o bj_ i dendl;)in t main(v o id)(Count al ;Count:disp 1 a y _t o tal();Coun t a 2, a3,a 4 ;Coun t :d i s p la y _total();a2. d i spla y ();a4. di s p lay():r e t ur n 0;3) #i n clu d e u s in g names p acc std;c la s s B AS E(ch a r c;pu b lie:BAS E (char n): c (n) virt u a
10、 1 BASE()cou t c;);class DERIVED: public BASE Count ();/ c onstru c to rs i a tic voi d d i sp 1 ay_ t ota 1 (); /sta t ic function vo i d d i s play();-C ount(): /destr u ctor);i n t Cou nt:: co u nt e r: /de f in i t i on o f static data memb e rCou n t:: Count() /co n s t r u ctorcounter+;obj_id
11、= counter;)C o uni::Counl() Z/dc s true lorc o un t e r ;coutObje c t n u mber ob j _id bei n g de str o yed n)vo i d C o unt: : d i splay_tota 1 () / /s t a tic f u nctioncout Number of obje c ts c re a ted i s = Mcounter e n dl; )void Coun t: d i spla y ()chare;public:DE RIVED (charn):BASE n+l), c
12、 (n) 。D ERIVED ()coutc ;);i nt inain(void) derived e X);r e turn 0;)五、程序填空:(10分)#inciud e using n a me s pace std;clas s A。(I)char n a ine 80;public:,A ( (2) ) 。卜cla s s B (4) 叩 u b 1 i c:B (con s i ch a r*n) ( 5 ) v o id PrintName() cout,name:, n ameend ! ;);o v oid m a i n()(aB b 1(L i ngL i );。 b
13、 1 .Prin t Name ():) / /执行结果:。name: Ling L i六、编程题(20分)1.编写程序:定义抽象基类Shape,由它派生出五个派生类:Circ 1 e (圆形)、Square (正方形)、R e c tangle (长方形)、Trapc z oid (梯形)和Triangle (三角形),用虚函数分别计算各种图形 的面积,并求出它们的和。规定用基类指针数组。使它的每一个元素指向一个派生类的对象。注:主函数中定义如下对象C ircle circl e ( 1 2. 6);S q u a r e squa r e (3. 5 );Recta n gle rec t
14、 a n g 1 e ( 4 . 5 ,8.4);T r a pezoid (rape z oid(2. 0,4.5, 3. 2 );Tr i a ngle triangle(4. 5,8. 4 );杭州电子科技大学学生考试卷(A)答案考试课 程面向对象程序设计考试日 期2023 6 月 H成绩课程 号B 1 0021 00教师号任课教师姓名楼永坚考生姓 名学号(8位)年级05专业05 05 1 1/2/3座位 号一、判断题(15分)1) V 2) X 3) J 4)X 5)V 6 ) X 7) J 8 ) X 9) J 10)7二、选择题(20分)1 )c 2) b 3) c 4) b 5)
15、 c 6) a 7)c8) a 9) c 10) b三、指出下列程序片段中的错误,并解释错在何处。(20分)1)*pir=555; ptr是指向整数常量的指针nip t i&anol her; nip t r是常量指针,不能指向别的的变量2)inta r r p;应改为:int *arrp:delel e arr p ; 应改为:d elete a r r p;3) ret u rn b aseda t a; 在 borde rand menu 中弓| 用 ba s e d at a 时产生二义性,应使用虚基类应改为:class borde r : virtua 1 p u bli c win
16、dow();class menu: v i rt u al p ub 1 i c win d ow( );4)整个对的的程序段(参考):#i n elude /加本句temp 1 ate / /力口 lyp e namevoid p r i n t(T * a )#cou t a* n;void main ()( inty=10:/y应先声明后使用,并给初值。c onst in t x =0:couty/ n;x = 5;x为con st,去掉该句in t * p:p =&y;p r int ( p );/ / ret u rn 0: main返回为void ,去掉该句)四、写出下面程序的执行
17、结果:(15分)1)120,120 180lunber of objects created is 1 lunbci* of objects created is 0 4ibject ID is 2ibject ID is 4ibjectnumber4beingdestroyedibjectnumber3beingdestroyedbjectnunbei*2beingdestroyedbjectnumber1beingdestroyed3)XY五、程序填空:(10分)(1) protect ed:sJc public(2)co n st char * n (3) s trcpy(name, n
18、);(4): p u blic A或:pro t ecled A (5): A (n)六、编程题(20分)1. #inc 1 u d e u s in g nam e spa c e s t d ;cla s s Sh a p epubli c:v i rtual d o uble ar e a() cons t =0;:class Circl e : publ i c Shap epublic:Circle( cl ou b Ie r): r adi u s (r) )virtual dou b 1 e area() co n s t r e tu r n 3.14159*r a d i u
19、s*ra d ius;protec t ed:d ou b Ie radius;);class Squa r e:public S hapepublic:S quare(doub 1 e s ):side(s) |vir t ua 1 d o uble ar e a () c o ns t r e tur n side *sid e ;pro t ecte d :dou b 1 e si d e;1;cl a ss Re c t a ngle: pub 1 ic Sh a pcpubli c :Rect a ngle(double w, d ouble h): width(w), h e ig
20、ht (h)v irtu a 1 do u ble area() const return widt h * h ei g ht;p r o tec t e d :do u b Ie wi d th.hei g li t :;c lass T r apez o id:p u blic S hap epubl i c:T r a pezoi d (doubledo u b 1 e b , dou b le h):top(t) bo t tom(t),heig h t (h) )vi r tua 1 d o uble a re a () c o nst r e t u r n 0. 5*(to p
21、+bo t tom)*height; protected:d o ub 1 e t o p, b o t t om, h eight;):class Tr i a ngle:public Sha p epu b lie:T r ian g le (douh 1 e w, double h ) :widt h (w ), h e ight (h) virtua 1 d ouble a r e a() const re turn 0. 5* widt h * h eight; p rot e cte d :d o uble w idth. h ei g ht;);int m a i n ()(Ci
22、 r cl e c i r c le( 1 2. 6 );S q uar e s q uare ( 3 .5);Rec t angle rectangle(4.5.8.4);Tr a pezoid t ra p ezoid(2. 0 , 4. 5, 3. 2);T r ian g 1 e t r iangle (4. 5. 8. 4);S h a pe *pt 5 = &circl e、&squa r e.& r ectangle.&trapezo i d.&triangl e ); dou b 1 e arcas= 0 .0;for(int i =0;iarea( ): couttotol of a I 1 are a s= are a sendl;ret u r n 0;