一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 在三角形类tri实现两个函数,功能是输入三个顶点坐标判断是否构成等边三角形  #include ﹤iostream.h﹥

    #include ﹤math.h﹥

    class point { point

    private: float x, y;

    public: f(float a, float b){x=a; y=b;}

    f( ){x=0; y=0;}

    Void set(float a, float b){x=a; y=b;}

    float getx( ){return x;}

    noat gety( ){return y;}

    };

    class tri{

    point x, y, z;

    float s1, s2, s3;

    public....settri(....); //用于输入三个顶点坐标

    ....test(....); //用于判断是否构成等边三角形  };

    请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)

  2. #include ﹤iostream.h﹥

    class A

    {

    public:

    A( );

    void Show( );

    ~A( );

    private:

    static int c;

    };

    int A:: c=O;

    A:: A( )

    {

    cout﹤﹤"constructor."﹤﹤endl;

    c +=10;

    }

    void A:: Show( )

    {

    cout﹤﹤"c="﹤﹤c﹤﹤endl;

    }

    A:: ~A( )

    {

    cout﹤﹤"destrucator."﹤﹤endl;

    }

    void main( )

    {

    A a, b;

    a.Show( );

    b.Show( );

    }

  3. #lnclude ﹤iostream.h﹥

    void func( );

    void main( )

    {

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

    {

    func( );

    }

    }

    void func( )

    {

    int x=0;

    x++;

    static int y=0;

    y++;

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

    }

  4. 求两个浮点数之差的cha函数的原型声明、调用方法。

    #include ﹤iostream﹥

    using namespace std;

    void main( )

    {

    float a, b;

    _________; //函数cha的原型声明

    a=12.5;

    b=6.5;

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

    cout﹤﹤c﹤﹤endl;

    }

    float cha(float x,float y)

    {

    float w;

    w=x-y;

    return w;

    }

  5. 下面程序的运行结果如下:

    This is line1

    This is line2

    This is line3

    将下列程序补充完整,答案写在答题纸上。源程序如下:

    #include ﹤iostream﹥

    #include _________

    using namespace std;

    void main( )

    {

    fstream fin, fout;

    fout.open("my.txt", ios:: out);

    if(!fout.is_open( ))

    return;

    for(int i=0; i﹤3; i=i+1)

    fout﹤﹤"This is line"﹤﹤i+1﹤﹤endl;

    fout.close( );

    fin.open("my.txt", ios:: in);

    if(! fin.is_open( ))

    return;

    char str[100];

    while(_________)

    {

    fin.getline(str,100);

    cout﹤﹤str﹤﹤endl;

    }

    fin.close( );

    }

  6. #include ﹤iostream﹥

    #include ﹤fstream﹥

    using namespace std;

    class complex

    {

    public:

    int real:

    int imag;

    complex(int r=0, int i=0)

    {

    real=r;

    imag=i;

    }

    };

    complex operator+(_________,complex&b)

    {

    int r=a.real+b.real;

    int i=a.imag+b.imag;

    return _________;

    }

    void main( )

    {

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

    z=x+y;

    cout﹤﹤z.real﹤﹤"+"﹤﹤z.imag﹤﹤"i"﹤﹤endl;

    }

  7. #include ﹤iostream﹥

    using namespace std;

    class base

    {

    private: int x;

    public: base(int a){x=a;}

    int get( ){return x:}

    void showbase( ) {cout﹤﹤"x="﹤﹤x﹤﹤endl; }

    };

    class Derived: public base

    {private: int y;

    public: Derived(int a, int b): base(a) {y=b; }

    void showderived( )

    {cout﹤﹤"x="﹤﹤get( )﹤﹤",y="﹤﹤y﹤﹤endl; }

    };

    void main( )

    {

    base b(3);

    Derived d(6, 7);

    b.showbase( );

    d.showderived( );

    _________;

    b.showbase( );

    _________;

    b1.showbase( );

    base * pb=&b1;

    pb-﹥showbase( );

    d.showderived( );

    b.showbase( );

    }

    输出结果如下:  x=3  x=6,y=7  x=6  x=6  x=6  x=6,y=7  x=6

  8. 完成下面类中的成员函数的定义。

    class point

    {

    private:

    int m, n;

    public:

    point(int, int);

    point(point&);

    };

    point:: point(int a, int b)

    {

    m=a;

    _________=b;

    }

    point::point( _________ )

    {

    m=t.m;

    n=t.n;

    }

  9. #include ﹤iostream.h﹥

    class test1{

    private: int x;

    public: test1( ){x=2;}

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

    void get(){cout﹤﹤x﹤﹤endl;}

    };

    class test2{

    private: int x;

    public: test2( ){x=3;}

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

    void get( ){cout﹤﹤x﹤﹤endl;}

    };

    class test: public test1, public test2. {

    private: int x;

    public: void set(int a){x=a;}

    void gettest( ){cout﹤﹤x﹤﹤endl;}

    };

    main( ) {

    test a; a.get( );

    }

  10. #include ﹤iostream.h﹥

    class f{

    private: float x,y;

    float get( ){return x+y;}

    public:f1(float a,float b){x=a;y=b;}

    };

    main( ) {

    f a;

    a.f1(1, 3.8);

    cout﹤﹤a.get( )﹤﹤endl;

    }

  11. #include ﹤iostream.h﹥

    class f {

    private: T x, y;

    public: f1(T a, T b){x=a; y=b;}

    T max( ){return(x﹥y)? x: y;}

    };

    main( ) {

    f a;

    a.f1(1.5,3.8);

    cout﹤﹤a.max( )﹤﹤endl;

    }

  12. #include ﹤iostream.h﹥

    class point {

    private: float x,y;

    public: point(float a, float b){x=a; y=b; }

    f( ){x=0; y=0; }

    void getx( ){cout﹤﹤x﹤﹤endl;}

    void gety( ){cout﹤﹤y﹤﹤endl;}

    };

    main( ) {

    point a (3.5);

    a.getx( );

    }

  13. 写出声明一个复数对象num的语句,并使对象被初始化为单精度2.2+1.3i,此声明语句是_________。

  14. #include ﹤iostream.h﹥

    main( ){

    int x=5, y=6;

    const int *p=&x;

    * p=y;

    cout﹤﹤*p﹤﹤endl;

    }

  15. C++类成员的访问权限有_________、公有和保护三种。

  16. vector类中用于返回向量中第一个对象的方法是_________。

  17. C++语言中动态分配内存的关键字是_________。

  18. 在C++语言中,利用向量类模板定义一个具有20个int类型且初值为1的向量C,实现此操作的语句是_________。

  19. 执行下列代码:int a=123,b=321; cout﹤﹤setw(3)﹤﹤a﹤﹤b﹤﹤endl; 程序输出结果是:_________。

  20. 将指向对象的指针作为函数参数,形参是对象指针,实参是对象的_________。

  21. UML中对象之间的静态关系是通过对象属性之间的连接反映的,称之为_________。

  22. 声明一个常成员函数Fun,返回类型为char,第一个参数类型为int,第二个参数类型为double,则该函数的声明原型是_________。

  23. C++语言中的整数常量有四种:十进制常量、长整型常量、八进制常量和_________。

  24. C++类中的_________函数在对象的生存期结束时被自动调用。

  25. 对象作为函数参数,就是将实参对象的_________传递给形参对象,这种传递是单向的。

  26. 执行下列代码:double pi=3.1415926; cout﹤﹤setprecision(5)﹤﹤pi; 程序的输出结果是_________。

  27. 建立一个对象时,对象的状态是不确定的。为了使对象的状态确定,必须对其进行正确的_________。

  28. 要关闭一个输出流对象myFile,所用的C++语句是_________。

  29. 基类的公有成员在通过公有派生得到的子类中访问权限是_________。

  30. 拷贝构造函数使用_________作为参数初始化创建中的对象。

  31. 默认参数是在_________中说明的,默认参数可以多于一个。

  32. 通过C++语言中的_________机制,可以从现存类中构建其子类。

  33. C++程序的编译是以_________为单位进行的。

  34. 下列默认参数的声明不正确的是(  )

    • A.int max(int a, int b, int c, int d=0);
    • B.int max(int a, int b, int c=0, int d=0);
    • C.int max(int a=0, int b, int c=0, int d=0);
    • D.int max(int a, int b=0, int c=0, int d=0);
  35. 一个函数功能不太复杂,但要求频繁使用,则该函数适合作为(  )

    • A.内联函数
    • B.重载函数
    • C.递归函数
    • D.嵌套函数
  36. 对于友元描述正确的是(  )

    • A.友元是本类的成员函数
    • B.友元不是本类的成员函数
    • C.友元不是函数
    • D.以上皆不正确
  37. 下列描述错误的是(  )

    • A.在没创建对象前,静态成员不存在
    • B.静态成员是类的成员,不是对象成员
    • C.静态成员不能是虚函数
    • D.静态成员函数不能直接访问非静态成员
  38. 假定有char * P="Hello";,要输出这个字符串的地址值的正确写法是(  )

    • A.cout﹤﹤ *P
    • B.cout﹤﹤P
    • C.cout﹤﹤&P
    • D.cout﹤﹤(void *)P
  39. 对C++中主函数描述正确的是(  )

    • A.名称为main,可为多个
    • B.名称不限,可为多个
    • C.名称为main,必须有且只能有一个
    • D.名称不限,必须有且只能有一个
  40. C++程序文件扩展名为(  )

    • A..cpp
    • B..h
    • C..lib
    • D..obj
  41. 下列表达式,能将P声明为常量指针的是(  )

    • A.const int * P;
    • B.int *const P;
    • C.const int * const P;
    • D.int * P;
  42. 如P是一指针类型表达式,则下列表达式中不是左值表达式的是(  )

    • A.P
    • B.*P
    • C.&P
    • D.P+1
  43. 使用下列流格式控制符能输出一个换行符的是(  )

    • A.dec
    • B.oct
    • C.hex
    • D.endl
  44. 下列运算符不能重载的是(  )

    • A.!
    • B.sizeof
    • C.new
    • D.delete
  45. 声明一个没有初始化参数的对象,需调用(  )

    • A.指定参数构造函数
    • B.拷贝构造函数
    • C.初始化函数
    • D.默认构造函数
  46. 关于对象的性质,下列描述错误的是:(  )

    • A.同一类对象间可相互赋值
    • B.可以使用对象数组
    • C.对象不可以用作函数参数
    • D.一个对象可以用作另一个类的成员
  47. 设函数int& index(int * a, int i)返回数组a中下标为i的元素,如存在整型数组int Array[ ]={1,2,3},在执行index(Array, 2)++后,Array中各元素值为(  )

    • A.{0, 1, 2}
    • B.{1, 1, 2}
    • C.{1, 2, 4}
    • D.{0, 2, 3}
  48. 设存在数组a,其长度为Len,则下列哪项泛型算法用于在a中寻找值Value的位置(  )

    • A.reverse(a, a+Len, Value);
    • B.sort(a, a+Len, Value);
    • C.find(a, a+Len, Value);
    • D.copy(a, a+Len, Value);
  49. 类构造函数定义的位置是(  )

    • A.类体内或体外
    • B.只是在类体内
    • C.只在类体外
    • D.在类的成员函数中
  50. 面向对象中的“对象”是指(  )

    • A.行为抽象
    • B.数据抽象
    • C.行为抽象和数据抽象的统一
    • D.行为抽象和数据抽象的对立
  51. 在类外定义成员函数时,::运算符两侧分别连接(  )

    • A.返回值类型 函数名
    • B.返回值类型 类名
    • C.函数名 类名
    • D.类名 函数名
  52. 下列关于类的权限描述错误的是(  )

    • A.类本身的成员函数可以访问自身的任何成员
    • B.类的对象只能访问公有成员
    • C.普通函数可以不通过对象直接访问类的公有成员
    • D.一个类可以包含另一个类的对象作为成员
  53. 只能在自身类和子类成员函数中被访问,无法通过对象在类外访问的成员属于(  )

    • A.private
    • B.protected
    • C.public
    • D.publish