一起答

自考C++程序设计2015年4月试题及答案解析

  • 卷面总分:100分
  • 浏览次数:0
  • 测试费用:免费
  • 答案解析:是
  • 练习次数:14次
  • 作答时间:150分钟
试卷简介

自考C++程序设计2015年4月试题及答案解析,该试卷为自考C++程序设计历年真题试卷,包含答案及详细解析。

  • 单项选择题
  • 填空题
  • 改错题
  • 完成程序题
  • 程序分析题
  • 程序设计题
部分试题预览
  1. 声明复数类,Complex,该类中有两个私有变量real,image分别表示一个复数的实部和虚部。为Complex类添加适当的构造函数。并使用友元函数add实现复数加法。

    #include ﹤iostream﹥

    using namespace std;

    class Complex

    {

    private:

    double real, image;

    public:

    voidsetRI( double a, double b)

    {

    real=a;

    image=b;

    }

    doublegetReal( )

    {

    return real;

    }

    doublegetImage( )

    {

    return image;

    }

    void print( ) {

    if( image ﹥0)

    cot﹤﹤"复数:"﹤﹤real﹤﹤"+"﹤﹤ image﹤﹤"i"﹤﹤endl;

    if( image ﹤0)

    cout ﹤﹤"复数: "﹤﹤ real ﹤﹤"-"﹤﹤ image ﹤﹤"i"﹤﹤endl;

    }

    friend Complex add( Complex, Complex); //声明友元函数

    };

    void main( )

    {

    Complex c1(19, 0.864), c2, c3;

    c2.setRI(90,125.012);

    c3=ad(c1,c2);

    cout﹤﹤"复数一:"; c1.pint( );

    cout﹤﹤"复数二:"; c2. print( );

    cout﹤﹤"相加后:"; c3.pint( );

    }

  2. 写出程序运行结果

    #include ﹤iostream.h﹥

    int func(int a)

    {

    int b=0;

    static int c =4;

    b++; c--;

    return(a+b+c);

     }

    void main( )

    {

    int a =2;

    for( int j=0; j ﹤2; j++)

    cout ﹤﹤ func(a +j)﹤﹤" ";

    }

  3. 请完成一下程序,使其输出结果为:  x=5,y=27  X=10,y=27

    #include ﹤iostream﹥

    using namespace std;

    class Sample

    { private:

    int x;

    static int y;

    _____①_____:

    Sample( int a);

    void print( );

    };

    Sample:: Sample(int a)

    {  x=a;  y++;  }

    void Sample:: print( )

    {

    cout﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤ endl;

    }

    _____②_____

    void main( )

    {

    Sample s1(5);

    Sample s2(10)

    s1. print( );

    s2. print( );

    }

  4. 写出程序运行结果

    #include "stdafx. h"

    #include ﹤iostream﹥

    using namespace std;

    class B;class A

    { public:

    A(int i) { a=i; }

    friend int F(A &f1, B &f2);

    private:

    int a;

    };

    class B

    { public:

    B(int i) { b=i; }

    friend int F(A &f1, B &f2);

    private:

    int b;

    };

    int F(a &f1, B &f2)

    { return(f1. a+f2. b)*(f1. a-f2.b); }

    void main( )

    {

    A n1(10);

    B n2(8)

    cout﹤﹤F(n1, n2)﹤﹤endl;

     }

  5. 在下列程序的空格处填上适当的字句,使输出为:0,2,10。

    #include "stdafx. h"

    #include ﹤iostream﹥

    #include "math. h"

    using namespace std;

    class Magic

    { double x;

    public:

    Magic( double d=0. 00): x(fabs(d))  { }

    Magic operator+( _____①_____ )

    {

    return Magic(sqrt(x*x+c.x*c.x));

    }

    _____②_____﹤﹤(ostream & stream, Magic &c)

    { stream ﹤﹤c. x;  return stream;  }

    };

    void main( )

    {

    Magic ma;

    cout﹤﹤ma﹤﹤","﹤﹤ Magic(2)﹤﹤","﹤﹤ma+Magic(-6)+Magic(-8)﹤﹤endl;

    }

  6. 下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。

    #include "stdafx. h"

    #include ﹤iostream﹥

    #include "math. h"

    _____①_____

    _____②_____

    void main( )

    {

    double rad;

    cout ﹤﹤"rad=";

    cin﹥﹥rad;

    double l=2.0*pi*rad;

    double s= pi*rad*rad;

    cout ﹤﹤"\n The long is: "﹤﹤l﹤﹤endl;

    cout ﹤﹤"The area is: "﹤﹤s﹤﹤endl;

    }

  7. 在下面程序横线处填上适当字句,以使该程序执行结果为:  50 4 34 21 10  6.1 7.1 8.1 9.1 10.1 11.1

    #include ﹤iostream﹥

    using namespace std;

    template ﹤class T﹥

    void f( _____①_____ )

    { _____②_____

    for(int i=0; i﹤n/2; i++)

    t=a[i], a[i]=a[n-1-i], a[n-1-i]=t;

    }

    void main( )

    { int a[5]={10,21,34,4,50};

    double d[6]={11.1,10.1,9.1,8.1,7.1,6.1};

    f(a,5); f(d,6);

    for(int i=0; i﹤5; i++)

    cout ﹤﹤ a[i]﹤﹤" ";

    cout ﹤﹤ endl;

    for(int i=0; i﹤6; i++)

    cout﹤﹤d[i]﹤﹤" ";

    cout﹤﹤ endl;

    }

  8. 在下面程序的底藏线处填上适当的字句,使该程序执行结果为40,x为静态成员。

    include ﹤iostream.h﹥

    class Test

    { public:

    _____①_____;

    Test (int i=0)

    { x=i+x; }

    int Getnum( )

    { returm Test:: x+10; }

    };

    _____②_____;

    void main( )

    {

    Test test;

    cout﹤﹤test. Getmum( )﹤﹤ endl;

    }

  9. #include "stdafx.h"

    #include ﹤iostream﹥

    using namespace std;

    class A

    {

     int i;

    public:

    virtual void fun( )=0;

    A( int a)

    { i=a;}

    };

    class B: public A

    {

     int j;

    public:

    void fun( )

    {

    cout﹤﹤"B:: fun( )\n";

    }

    B(int m, int n=0): A(m),j(n) { }

    };

    void main ( )

    {

     A *pa;

    B b(7);

    pa=&b;

    }

  10. #include ﹤iostream. h﹥

    #include ﹤string. h﹥

    class Base

    { public:

    Base( char *s="\0") { strcpy ( name, s); }

    void show( );

    protected:

    char name[20];

    };

    Base b;

    void show( )

    { cout ﹤﹤"name: "﹤﹤b. name ﹤ endl; }

    void main( )

    {

    Base d2("hello");

    show( );

    }