2008自考c 试题(附答案) 下载本文

{

complex x(1,2),y(3,4),z;

z=x+y;

cout<

}

49.程序的输出结果如下:

1,9

50,30

请根据输出数据在下面程序中的下划线处填写正确的语句。

源程序如下:

#include

using namespace std;

class base {

private:

int m;

public:

base( ){ };

base(int a):m(a){}

int get( ){return m;}

void set(int a){m=a;}

};

void main() {

base*ptr=new base[2];

ptr- >set(30);

ptr= _________;

ptr- >set(50);

base a[2]={1,9};

cout<

cout<get( )<<″,″;

ptr=ptr-1;

cout<<________<

delete[ ]ptr; }

50.在下面横线处填上求两个浮点数之差的cha函数的原型声明、调用方法。

#include

using namespace std;

void main( ) {

float a,b;

________//函数cha的原型声明

a=12.5;

b=6.5;

float c=_________; //调用函数cha

cout<

float cha(float x,float y) {

float w;

w=x-y;

return w; }

五、程序分析题(本大题共4小题,每小题5分,共20分)

51.给出下面程序的输出结果。

#include

template

class Sample {

T n;

public:

Sample(T i){n=i;}

int operator==(Sample &);

};

template

int Sample::operator==(Sample&s)

{

if(n==s.n)

return 1;

else

return 0;

}

void main( ) {

Samplesl(2),s2(3); .

cout<<″s1与s2的数据成员″<<(sl==s2 ?″相等″:″不相等″)<

Samples3(2.5),s4(2.5);

cout<<″s3与s4的数据成员″<<(s3==s4 ? ″相等″:″不相等″)<

}

52.给出下面程序的输出结果。

#include

using namespace std;

template

T max(T ml,T m2)

{return(m1>m2)?ml:m2:}

void main( ) {

cout<

cout<

}

53.给出下面程序的输出结果

#include

using namespace std;

class A {

public:

int x;

A( ) { }

A(int a){x=a;}

int get(int a){return x+a;} }

void main( ) {

A a(8);

int(A::*p)(int);

p=A::get;

cout<<(a.*p)(5)<

A*pi=&a;

cout<<(pi- >*P)(7)<

54.给出下面程序的输出结果。

include

#include

using namespace std;

class Book {