C程序设计基础课后答案第五章.doc
- 格式:doc
- 大小:95.00 KB
- 文档页数:34
5.1 阅读下列程序,写出执行结果
1.#include < iostream.h >
struct data
{ int n ;
float score ;
} ;
void main()
{ data a[3] = { 1001,87,1002,72,1003,90 } , *p = a ;
cout << (p++)->n << endl ;
cout << (p++)->n << endl ;
cout << p->n++ << endl ;
cout << (*p).n++ << endl ;
}
2.#include < iostream.h >
struct employee
{ char name[ 20 ] ;
char sex ;
} ;
void fun( employee *p )
{ if( (*p).sex == 'm' )
cout << (*p).name << endl ;
}
void main()
{ employee emp[5] = { "Liming", 'm', "Wangxiaoping", 'f', "Luwei", 'm' } ;
int i ;
for( i=0; i<3; i++ )
fun( emp+i ) ;
}
3. #include < iostream.h >
struct node
{ char * s ;
node * q ;
} ;
void main()
{ node a[ ] = { { "Mary", a+1 }, { "Jack", a+2 }, { "Jim", a } } ;
node *p = a ;
cout << p->s << endl ;
cout << p->q->s << endl ;
cout << p->q->q->s << endl ;
cout << p->q->q->q->s << endl ;
}
4.#include < iostream.h >
class A
{ public :
int f1();
int f2();
void setx( int m ) { x = m ; cout << x << endl; }
void sety( int n ) { y = n ; cout << y << endl; }
int getx() { return x ; }
int gety() { return y ; }
private :
int x, y ;
};
int A::f1() { return x + y ; }
int A::f2() { return x - y ; }
void main()
{ A a ;
a.setx( 10 ) ; a.sety( 5 ) ;
cout << a.getx() << '\t' << a.gety() << endl ;
cout << a.f1() << '\t' << a.f2() << endl ;
}
5. #include < iostream.h >
class T
{ public :
T( int x, int y )
{ a = x ; b = y ;
cout << "调用构造函数1." << endl ;
cout << a << '\t' << b << endl ;
}
T( T &d )
{ cout << "调用构造函数2." << endl ;
cout << d.a << '\t' << d.b << endl ;
}
~T() { cout << "调用析构函数."<<endl; }
int add( int x, int y = 10 ) { return x + y ; } private :
int a, b ;
};
void main()
{ T d1( 4, 8 ) ;
T d2( d1 ) ;
cout << d2.add( 10 ) << endl ;
}
6. #include < iostream.h >
class T
{ public:
T(int x){ a=x; b+=x;};
static void display(T c)
{ cout<<"a="<<c.a<<'\t'<<"b="<<c.b<<endl; }
private:
int a;
static int b;
} ;
int T::b=5;
void main()
{ T A(3),B(5);
T::display(A);
T::display(B);
}
7. #include < iostream.h >
#include < math.h >
class point
{ public :
point( float x, float y )
{ a = x; b = y;? cout << "点( " << a << ", " << b << " )" ; } friend double d( point &A , point &B )
{ return sqrt((A.a-B.a) * (A.a-B.a) + (A.b-B.b) * (A.b-B.b)) ; } private:
double a, b ;
};
void main()
{ point p1( 2, 3 ) ;
cout << " 到 " ;
point p2( 4, 5 ) ;
cout << "的距离是:" << d( p1,p2 ) << endl ;
}
8. #include < iostream.h >
class A
{ public :
A() { a = 5 ; }
void printa() { cout << "A:a = " << a << endl ; } private :
int a ;
friend class B ;
} ;
class B
{ public:
void display1( A t )
{ t.a ++ ; cout << "display1:a = " << t.a << endl ; } ;
void display2( A t )
{ t.a -- ; cout << "display2:a = " << t.a << endl ; } ;
};
void main()
{ A obj1 ;。