一起答

自考C++程序设计模拟试题及答案(一)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 已有复数类 Complex和主函数main(),编写一个类Root来实现求解一元二次方程的程序。

    #include

    #include

    #include

    class Complex

    {public:

    Complex(){}

    void setC( double i,double j)

    {real=i; image=j;}

    void show();

    protected:

    double real, image;

    };

    void Complex::show()

    {cout<<"("<

    void main()

    {double a,b,c;

    cout<<"\n请输入一元二次方程的系数a,b,c:";

    cin >>a>>b>>c;

    Root root(a,b,c);

    root.solve();

    }

  2. 运行程序,写出程序执行的结果。

    #include

    class Test

    {private:

    static int val;

    int a;

    public:

    static int func();

    static void sfunc(Test &r);

    };

    int Test::val =20;

    int Test::func()

    {val--;

    return val;

    }

    void Test::sfunc(Test &r)

    {r.a=25;

    cout<<"Result3="<

    }

    void main()

    {cout<<"Result1="<

    Test a;

    cout<<"Result2 ="<

    Test::sfunc(a);

    }

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

    #include

    using namespace std;

    void main()

    {int num=0,i=8;

    do

    {i--;

    num++;

    }while(--i);

    cout<

    }

  4. 采用冒泡法对数组a中的整数由小到大进行排序。

    #include

    void sort( int b[],int n)

    {int i,j =0,t;

    for(i=1;i

    {for(j=0;___________;j++)

    {if(b[j]>b[j+1])

    {t=b[j];___________;b[j+1]=t;}

    }

    }

    }

    void main()

    {int a[]={3,2,7,1,19,6,2,8};

    int i;

    for(i=0;i<8;i++)

    cout<

    cout<

    sort(a,);

    for(i=0;i<8;i++)

    cout<

    cout<

    }

  5. class point{

    private:

    int x,y;

    public:

    point(int,int);

    point(point&);

    };

    point::point(int a,int b)

    };

    x=a;

    ________=b;

    }

    point::point(________)

    {

    x=z.x;

    y=z.y:

    }

    void main(){

    point p1(2,3);

    point p2(p1);

    }

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

    #include

    class A

    {private:

    int val;

    public:

    A(int i)

    {val=i;}

    int();

    };

    A::operator int()

    {_________}

    class B:public A

    {public:

    B(int i):A(i){}

    };

    void main()

    {B n(100)

    int i=n;

    cout<

    }

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

    #include

    #include

    class Arr

    {protected:

    float*p;

    int n;//数组大小(元素个数)

    public:

    Arr(int sz=10)

    {n=sz

    p=new float[n];

    ~Arr(void)

    {__________}

    int Getn(void)const

    {

    return n;

    }

    float& operator[](int i)

    {__________}

    void Print();

    };

    void Arr::Print()

    {int i

    for(i=0;iGetn();i++)

    {if(i%10==0)

    cout<

    cout<

    }

    cout<

    }

    void main()

    {Arr a(20);

    for(int=0;i

    a[i]=i*2

    a.Print()

    }

  8. 在下面程序的横线处填上适当内容,使程序执行结果为:" hello, andylin"

    #include

    #include

    using namespace std;

    class mystring

    {public:

    Char*pdata;

    mystring( int len)

    {pdata= new char[len+1];}

    ~mystring()

    {delete pdata;}

    void show(){cout<

    };

    void fun( mystring* * array, int len)

    {mystring ld=*array;

    memepy(*array, old, len);

    }

    void main()

    {mystring str(20);

    Mystring*pstr=&str;

    mystring**ppstr=&pstr;

    strepy(str.pdata,"hello, andylin");

    fun(ppstr,20);

    ____________

  9. #include

    class f{

    private:

    float x,y;

    public:

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

    float max(){return(x

    };

    void main(){

    fa(1.5,3.5);

    cout<

    }

  10. #include

    void main()

    {int n;

    cin>>n;

    Cin.get();

    char s[n];

    Cin.getline(s,n);

    cout<

    delete s;

    }

  11. #include

    #include

    #include

    using namespace std;

    class A

    {public:

    A(const char*na){strepy(name,na);}

    private:

    char name[80];

    };

    class B:public A

    {public:

    B(const char*nm):A(nm){}

    void show();

    };

    void B::show()

    {cout<<"name:"<

    };

    void main()

    {B b1("B");

    b1.show();

    }

  12. class ABC

    {int a;

    public:

    ABC(int aa)a(aa){}

    };

  13. #include

    class shape

    { public:

    virtual int area( return();}

    };

    class rectangle: public shape

    {public:

    int a, b;

    void setLength (int x, int y){a=x;b=y;}

    int area() return a*b;}

    };

    void main()

    {rectangle r;

    r.setLength(3,5);

    shape s1, *s2 =r;

    cout<

    s2=s1;

    cout<

    }

  14. 若将一个二元运算符重载为类的成员函数,其形参个数应该是_________个。

  15. _______类是从iostream类公有派生的,提供从文件中提取数据或把数据写入到文件的各种操作。

  16. 静态成员函数是________的成员,不是对象的成员。

  17. 执行下列代码stringstr("HelloC++");stringnewstr=str.substr(5,3);后,newstr的内容为_________。

  18. 在保护派生中,基类权限为publie的成员在派生类中为__________。

  19. 析构函数名是在类名前加上_______符号,用来释放对象所占的内存空间。

  20. 用来派生新类的类称为_______,而派生出的新类称为它的子类或派生类。

  21. 在结构体中定义的函数称为_______。

  22. 基类的公有成员在派生类中的访问权限由_________决定。

  23. 赋值兼容规则是指在公有派生情况下,基类对象_______(能、不能)使用派生类对象。

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

  25. 将指向对象的引用作为函数的形参,形参是对象的引用,实参是__________。

  26. C++语言支持_______,实际上就是变量的别名。

  27. 通过C++语言中的类的_________,可以扩充和完善已有类以适应新的需求。

  28. 由const修饰的对象称为________。

  29. 若要访问指针变量p所指向的数据,应使用表达式________。

  30. 在C++流类库中,根基类为________。

  31. 在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由i所指向,应使用语句_________。

  32. 每个对象都是所属类的一个_________。

  33. 设要把一个文件输出流对象outfile与文件”d:\text.txt”相关联,设置以二进制形式打开。所用的C++语句是_______。

  34. 以下叙述错误的是()

    • A.基类的保护成员在公有派生类中仍然是保护成员
    • B.基类的保护成员在派生类中仍然是保护成员
    • C.基类的保护成员在私有派生类中是私有成员
    • D.基类的保护成员在私有派生类中能够被访问
  35. 重载赋值操作符时,应声明函数为()

    • A.友元函数
    • B.虚函数
    • C.成员函数
    • D.静态函数
  36. 类A中存在静态数据成员x,设a和b是类A的两个对象,在执行a.x=10之后,b.x的值为()

    • A.未初始化
    • B.等于a.x
    • C.等于0
    • D.随机
  37. 下述静态成员的特性中,错误的是()

    • A.静态成员函数不能利用this指针
    • B.静态数据成员要在类体外进行初始化
    • C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符
    • D.静态数据成员不是所有对象所共有的
  38. 派生类继承了基类的()

    • A.所有成员
    • B.部分成员
    • C.数据成员
    • D.成员函数
  39. 下列数组的定义中,错误的是()

    • A.char ca1[]={c","m","n"};
    • B.char ca2[6]="name";
    • C.char ca3[4]="your";
    • D.int array[]=1,2,3,4;
  40. 下列关于复制构造函数的说法中错误的是()

    • A.复制构造函数是一种特殊的构造函数,函数名与类名相同
    • B.若自定义派生类的复制构造函数,那么也必须自定义基类的复制构造函数
    • C.复制构造函数只能有一个参数
    • D.复制构造函数不允许在函数体中使用return语句
  41. 下面列出的基类中的哪部分能被派生类自动继承

    • A.基类中的默认构造函数()
    • B.基类中的虚析构函数
    • C.基类中的复制构造函数
    • D.基类中的常成员函数
  42. 在main函数中可以用p.a的形式访问派生类对象p的基类成员a,其中a是()

    • A.私有继承的公有成员
    • B.公有继承的私有成员
    • C.公有继承的保护成员
    • D.公有继承的公有成员
  43. 下列表达式中不可能作为左值(赋值运算符左侧)的是()

    • A.a=b
    • B.*p
    • C.f(a,b)
    • D.&a
  44. 下述静态数据成员的特征中,错误的是()

    • A.说明静态数据成员时前边要加修饰符static
    • B.静态数据成员要在类体外进行初始化
    • C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符
    • D.静态数据成员不是所有对象所共用的
  45. 声明函数模板的关键字是()

    • A.inline
    • B.template
    • C.const
    • D.short
  46. 在C++中,数据封装要解决的问题是()

    • A.实现规范化
    • B.防止书写错误
    • C.防止非法访问
    • D.实现类型转换
  47. 下列给字符数组进行初始化中,正确的是()

    • A.char s1[]="\n";
    • B.char s2[3]="xyz";
    • C.char s3[][3]={"a","x","y"};
    • D.char s4[2,4]={"xyz","mnp"};
  48. C++源文件的扩展名为()

    • A..cpp
    • B..c
    • C..txt
    • D..exe
  49. 下面关于引用的描述正确的是()

    • A.引用是被引用变量的复制
    • B.被引用变量是引用的别名
    • C.引用是被引用变量的别名
    • D.被引用变量是引用的复制
  50. 多态性是指()

    • A.不同的对象调用不同名称的函数
    • B.不同的对象调用相同名称的函数
    • C.一个对象调用不同名称的函数
    • D.一个对象调用不同名称的对象
  51. 关于C++主函数的描述,正确的是()

    • A.有且只能有一个,名称不限
    • B.可以有多个,名称不限
    • C.有且只能有一个,名称为main
    • D.可以有多个,名称为main
  52. 如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为()

    • A.x.operator++().operator *(y)
    • B.operator *(x.operator++(0),y)
    • C.y.operator * operator ++(x,0))
    • D.operator*(operator ++(x,0),y)
  53. 假定一个类的构造函数为“A(int i,int j)x=i,y=i*j;}”,则执行“A a(4,5);”语句后,a.x和a.y的值分别为()

    • A.4和5
    • B.5和4
    • C.4和20
    • D.20和5