一起答

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

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

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

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

    #include ﹤iostream﹥

    using namespace std;

    class Complex

    {

    private:

    double real, image;

    public:

    void setRI( double a, double b)

    {

    real=a;image=b;

    }

    double getReal( )

    {

    return real;

    }

    double getImage( )

    {

    return image;

    }

    void print( )

     {

    if( image ﹥0)

    cout﹤﹤"复数:"﹤reall﹤﹤"+"﹤﹤ 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=add(c1, c2)cout﹤﹤"复数一:";

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

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

     c3.pint( );

    }

  2. #include ﹤iostream. h﹥

    class Based

    {public:

    Based( )

    {cout﹤﹤" Based构造函数\n"; fun( ); }

    virtual void fun( )

    {cout﹤﹤" Based::fun( )函数\n"; }

    };

    class Derived: publicBase

    {public:

    Derived( )

    {cout﹤﹤" Derived构造函数\n"; fun( ); }

    void fun( )

     { cout﹤﹤"Derived::fun( )函数\n"; }

    };

    void main( )

    {Derived d;}

  3. 下面是一个输入半径,输出其面积和周长的C++程序,在横线处填上正确的语句。(圆周率为3.14159)#include "stdafx. h"

    #include ﹤iostream﹥

    #include "math. h"

    using namespace std;

    _________ //宏定义void main( )

    {

    double rad;

    cout ﹤﹤ "rad =";cin ﹥﹥ rad;

    double l=2.0*pi *rad;_________;

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

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

    }

  4. #include ﹤iostream. h﹥

    class example

    {

    int a;public:example(int b=5)

    { a=b++; }

    void print( )

    { a=a+1; cout﹤﹤a﹤﹤" "; }

    void print( )

    const

    { cout ﹤﹤a﹤﹤ endl; }

    };

    void main( )

    { example x;const example y(2);x. print( );y. print( );}

  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));

    }

    _________&operator ﹤﹤(ostream & stream, Magic &c)

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

    };

    void main( )

    {

    Magic ma;

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

    }

  6. 在下面程序的横线处填上适当的字句,使该程序执行结果为40。

    #include ﹤iostream.h﹥

    class Test

    {

    public:_________;

    Test (int i=0)

    { x=i+x; }

    int Geytnum( )

    { return Test:: x +10; }

    };

    _________;

    void main( )

    {

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

    }

  7. 在下面程序的横线处填上适当字句,完成类的定义。

    class line;

    class box

    {

    private:

    int color;

    int upx, upy;

    int lowx, lowy;

    pubnic:

    _________void set_color (int c )

    {

     color =c;

    }void define_box(int x1, int y1, int x2, int y2)

    { upx=x1; upy =y1; lowx =x2; lowy =y2; }

    };

    class line

    {

    private:

    int color;

    int startx, starty;

    int endx, endy;

    public:

    friend int same_color(line l, box b)

    void set_color (int c) { color =c; }

    void define_line(_________)

    { startx =x1; starty =y1; endx =x2; endy =y2; }

    };

    int same_color (line l, box b)

    {

     if (l. color==b. color) return l;

    retum 0;

    }

  8. 1 #include ﹤iostream﹥

    2 using namespace std;

    3 int main( )

    4 { inta=10, b=18, c=77;

    5 const int *p = c;

    6 cout ﹤﹤*p﹤﹤ endl;

    7 return 0;

    8 }

  9. 下面程序中用来求数组和。请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:s=150。

    #include ﹤iostream.h﹥

    class Arr

    {

    int *a, n;

    public:

    Arr( ):a(0),n(0) { }Arr( int *aa, int nn)

    {

    n=nn;a= new int[n];

    for(int i=0; i﹤nn; i ++)*(a+i)=*(aa+i);

    }

    ~Arr( )

    {delete a; }

    _________;

    {

    return *(a+i);

    }

    };

    void main( )

    {

    int b[5]={10,20,30,40,50};

    Arr a1(b, 5)int i=0, s=0;

    _________s+=a1. GetValue(i);

    cout﹤﹤"s="﹤﹤s﹤﹤endl;

    }

  10. 1 #include ﹤iostream﹥

    2 using namespace std;

    3 int main( ){

    4 const int num =20;

    5 int scores[num];

    6 for(int i=1; i﹤=num; i ++)

    7 scores[i]=i;

    8 return 0; }