|
离线考核& p; M: n3 {; G" Z
《C++程序设计(高起专)》 9 N- @; s; Y7 t+ o Z6 V
2 U3 s# x8 T! J& U
更多资料下载:谋学网(www.mouxue.com)100分
" \0 @# a- K1 y一、更多资料下载:谋学网(www.mouxue.com)(更多资料下载:谋学网(www.mouxue.com)10分,共40分。)2 r$ k- g, E' g0 u4 O* C
1.什么是类?什么是对象?对象与类的关系是什么?
. o' @, K+ {2 j; C/ `2.什么是多态性?请举例说明。7 A+ B) y: V. f+ H
3.虚函数是否一定要有virtual关键字?什么叫纯虚函数和抽象类?多态调用需要满足怎样的条件?
2 f! c) ~! V; c2 f6 j4.简述结构化的程序设计、面向对象的程序设计的基本思想。
+ X3 S% V# [3 o5 g8 h- V二、程序分析题(更多资料下载:谋学网(www.mouxue.com)10分,共40分。)
) [; j3 f- A6 t. ]1. 指出下列程序中的1处错误,并说明为什么。
+ t9 j' z( X) ?& t: I- }: u4 fclass Location {
& H$ v3 J# } J& U# f' ^4 J int X,Y=20;1 \5 U0 N* m& q# J, V: L
protected:# |+ l ]! H: M
int zeroX,zeroY;
& a# d" n( {% j6 D4 _; ?- V h9 u int SetZero(int ZeroX,int ZeroY);
) S9 s1 q, w/ N7 |" h( Oprivate:
8 a; }3 S6 y5 ^5 Y3 ~$ u3 b" ?+ O int length,height;
) D* ^7 s d m* d& S1 r% `public:! }: a: i% r7 m/ l5 O4 v' F
void init(int initX,int initY);. y" F, C# O) Q& z5 P9 J
int GetX( );( ~ L) v2 T. V. r
int GetY( );3 o: |& ]. e8 y4 b0 N% C
}; [) C% a3 q+ [6 {& |. r! S. p& Y- E
答:
6 u9 ?2 O: F: P- u( J$ M% o- q* W! o. F: n
2.指出下列程序中的1处错误,并说明为什么。2 M& K. u5 x W% Q
#include<iostream.h> K6 C1 |( H: N! B, e8 I
#include<stdlib.h> d! W% R" M1 m' z
class CTest{ c0 V" c$ i* T3 L3 m$ i3 C
public:
2 N9 U* u0 m6 m6 W# B const int y2;3 \) y. O. t3 U% P4 p
CTest(int i1, int i2,int i3):y1(i1),y2(i2)
5 h ?) R9 |* {, `0 D0 ? { x=i3; }
7 }, w& N/ \. ?$ x1 m1 d int show() const{cout<<"y1="<<y1<<"\ny2="<<y2<<"\nx="<<x<<endl;}, `3 |. T; k! h- S% f' I# T
//…0 G9 ^ T6 M5 D8 ]" Y2 x' X! D6 K v
private:
4 ]/ S4 [) V0 J. B4 { int x;5 @* V3 Z+ n& Y& g0 s ~* V
const int y1;
9 K& J7 T2 ]4 G* @) t) ~ };9 c4 d3 h/ }) H
void main()
2 I7 B; [% B6 t0 j1 [0 E {0 S' {: Z v8 p; U9 N
CTest c(1,2,3);
4 g6 h0 ~0 B% U+ J n D0 i; R& g c.show();
" u1 G. h2 D# E f4 [ c.y2 = -2;
/ y' a. I, D: O7 @. E* V! e c.show();, N5 l$ w7 C; p1 M! C
}9 l+ g: J4 q& N4 g+ o R
答: + N$ V7 N- |& f9 C
! `: S3 l1 t# R, i& j3.写出下面程序的输出结果。
- n7 @ O" X4 r3 V% \ #include <iostream.h>7 X0 F. {2 N3 U, w, `* K, T
class B
6 Q1 f [: k P, Z; P. i% ~8 M8 g- r { int b;
, U2 S) X" U0 v- l0 G o8 f public:
% m6 i# s" P+ x: U B(int i) {b=i;}0 B2 \$ j4 H w' ]/ _, W+ D
virtual void virfun() {cout<< "B::b: "<<b<<" , ";}
0 J# v' t/ ?8 n2 C, J/ R: a };8 C( c8 C4 a4 Z8 ]
class D: public B% n6 [$ l& K2 f/ V
{ public:/ W6 E1 ^2 ^5 w% d# m8 l9 v. V
D(int i,int j): B(i) {d=j;}6 _9 W! i9 |: ~. l
void virfun() {B::virfun(); cout<<"D::d: "<<d<<endl;}! s9 o. Q- m3 K- \0 T7 B
private: int d;
2 y8 r% S0 H" U5 e! t9 d };' E; v' p5 E5 X8 L0 `& C
void fun(B *objp) { objp->virfun(); }9 _3 v" |2 T0 D, \
void main() { D *pd=new D(3,5) ; fun(pd);}
( Q7 A6 G7 @6 x. ?2 n8 h8 f 答:
+ e4 D/ U. H& i% O4 z8 C
0 |/ \: F9 B; X2 V5 F! b4. 写出下面程序的运行结果。
8 h$ P K5 U& ]#include<iostream.h>
" Y, K& P" ^' iclass example3 Q. T9 J. q6 {+ p
{
( p# ]" `! A6 Z D$ r- Bpublic:* x# i* J2 p8 Y c8 |
example(int n)
9 b/ r$ O, ?0 P8 P) ? {
) z9 \* Z1 B+ r7 a; g' Y- z0 g5 g i=n;# w8 \3 P1 N3 G. z
cout<<"Constructing\n";4 Q' E* P1 k: I8 Y6 f
} ?3 B* x0 E# h
~example()# Y S- |) h' h8 ]) p
{ cout<<"Destructing\n"; }6 w7 c4 F. \1 ]
int get_i()" C3 E ]: `: n9 ~/ p2 L
{ return i; }; r+ b: v. z& Q1 `
private :# |, D- k# @ W. ^9 q9 N4 V
int i;. P* M8 L& ?9 u4 z F
};
8 u6 `$ y; p7 s1 @0 ~6 yint sqr_it(example o)) F/ m' x7 T8 U- }
{ return o.get_i()*o.get_i(); }( i8 \$ S4 P& R7 T" j, k3 G
main ()
- v. H B9 z- `; ^+ d2 v+ g% H- `{9 f3 G% I) h0 O% ]5 ^- m1 o
example x(10);8 F/ }* }( u. ?' q+ M
cout<<x.get_i()<<endl;. t$ F* g, ~- v* p! L
cout<<sqr_it(x)<<endl;4 p9 N; S# r/ ?) w% R6 f
return 0;' p2 E4 t$ f+ K3 r
}* a8 W, M f) \( `! A
答:( o! J$ ~. b4 i% X$ A O
# R1 U6 ?* z5 N1 h4 O6 Y+ Q5 \
三、完成程序题(更多资料下载:谋学网(www.mouxue.com)10分,共20分。)
9 @8 x( x7 ~8 u# ]# {5 H7 P w5 q* a1 O( e0 @" Z$ ]" x
1.请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为5。 ~8 Z4 x( \+ Y$ {# V7 x. a& d
#include<iostream.h>; ] T0 j- a; a
class Integer
- `9 m" Q! a4 { {
# g* G0 h1 |0 a6 r int x;
, [' c! T `1 @2 n public: d% `1 i7 p, b3 R, _ Y1 E4 @9 W
Integer(int a=0){x=a;}
% ?* p' ]2 i* v void display( ){cout<<x<<endl;}* Z p. }9 E6 p5 {# f( m
① ;: ^9 _4 d2 M" _
};3 M; U$ @. S5 a$ B& g+ }1 n
Integer Max(Integer a,Integer b)# J1 y+ V' x) Z1 @ O
{
. m, i8 o( V" A* L* O7 K$ l if(② )% Q" A$ V3 p, {) a" J5 D
return a;
5 O3 M6 k5 m0 J return b;
, F8 l! \" u, n8 i g* n8 g" |' S( h }5 R! l7 t& l4 L* O4 Y
void main( )
5 p1 T# g0 b# a0 A V {
# L- E4 h& ? p: Z. p Integer a(3),b(5),c;. P+ E5 b* r; X8 I: m& e
c=Max(a,b);
# ]0 I$ g4 R' |- v* w c.display( );
4 f ~# C9 J0 o/ M4 _ }9 W( f9 F- @5 F: y
1 V$ d, S4 Y- @/ K2. 设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。 / {1 \3 t+ e7 m
/ y0 e2 D' g4 } |
|