一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 已知交通工具类定义如下。

    要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数), print(打印车轮数,重量和载人数)。

    class vehicle

    {protected:

    int wheels;//车轮数

    float weight;//重量

    public:

    void init(int wheels,float weight);

    int get_wheels();

    float get_weight();

    void print();

    };

    void vehicle::init(int wheels,float weight)

    {this->wheels=wheels

    this->weight=weight

    cout<

    }

    int vehicle::get_wheels()

    {return wheels;}

    float vehicle::get_weight()

    {return weight;}

    void vehicle:: print()

    {cout<<"车轮数:"<

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

    #include

    static int=3;

    void fun();

    void main()

    {for(int i=1;i

    fun();

    cout<

    }

    void fun()

    {static int a=a;

    cout<(a+=2)<<‘’;

    }

  3. #include

    class Base

    {public:

    Base(int x,int y)

    {a=x;b=y;}

    virtual void Show(){cout<<"Base:"<

    private:

    int a,b;

    };

    class Derived:public Base

    {public

    Derived(int x,int y,int z):Base(x,y),c(z){}

    void Show(){Base::show();cout<<"Derived:"<

    private:

    int c;

    };

    void main()

    {Base b(10,20);

    Base *ref=&b

    Derived d(30,60,90);

    ref->Show()

    cout<

    ref=&d;

    ref->show();

    }

  4. 先为数组a输满数据,再为x输入一个数据,数组a中找出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出"Not found!"标志。

    #include

    void main()

    {int i,x,a[10],m;

    cout<<"输入数组中的10个数据:”;

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

    cin>>a[i];

    cout<

    cin>>x

    cout<

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

    if(_________){m=i;break;}

    if(_________)

    cout<

    else

    cout<<"Not found! \n"<

    }

  5. 下面程序用于输出三角形的面积,请在下横线处填上正确的语句。

    #include

    #include

    void area()

    {double a,b,c;

    cout<<"Input a b c:";

    ____________

    if(a+b>c&&a+c>b&&c+b>a)

    {double 1=(a+b+c)/2;

    ____________

    cout<"The area is:"<

    }

    else

    cout<<"Error"<

    }

    void main()

    {area();}

  6. #include

    class A

    {public:

    void f(int i)cout<

    void g(){cout<<"g\n";}

    };

    classB:________

    {public:

    void h(){cout<<"h\n";}

    };

    void main()

    {B b;

    B.f(6);

    ________.h();

    }

  7. 下面程序实现将大写字母转换成小写字母的功能。

    #include

    void main()

    {char a;

    ____________

    cin>>a;

    if(____________)

    a=a+i;

    cout<

    }

  8. #include

    class T

    {protected:

    int p;

    public:

    T(int m){p=m;}

    };

    void main()

    {T a(10);

    cout<

    }

  9. 为使下面程序输出结果为:

    1*0=0

    3*4=12

    请在横线处填上适当的语句,以使程序完整。

    #include

    class A

    {private:

    int R1, R2;

    public:

    A(int r1=5, int r2=0){__________}

    void show();

    };

    void A::show()

    {__________}

    void main()

    {A a(1);

    A b(3,4);

    a.show();

    b.show();

    }

  10. #include

    class A

    {private:

    int x,y;

    public:

    void f1 (int i=0,int j=0){x=i;y=j;}

    void print(){cout<

    void f1 (int i=0){x=i,y=0;}

    };

    void main()

    {A a;

    a.f1(5);

    a.print();

    }

  11. 以下程序实现交换a,b变量的值,请用下横线标出错误所在行并给出修改意见。

    #include iostream.h>

    void swap(int &a,int &b)

    {a=a+b;

    b=a-b;

    a=a-b;

    }

    void main()

    {int a=19,b=15;

    cout<<"a="<

    swap(&a,&b);

    cout<<"a="<

    }

  12. #include

    class Point

    {protected:

    int x,y;

    public:

    Point(int i,int j){x=i,y=j;}

    void Showxy(){cout<<"x="<

    ~Point(){cout<<"DeletePoint"<

    };

    void main()

    {Point a;}

  13. C++中的输入输出是以字节_________的形式实现的。

  14. #include

    class A

    {int a,b;

    const int c;

    public:

    A():c(0),a(0),b(0){}

    A(int aa, int bb):c(aa+bb)

    {a=aa;b=bb;}

    void show()

    {cout<<"Const c:"<

    cout<<"a,b:"<

    }

    };

    void main()

    {A a,b(1,2);

    A*x=&a;

    x.show();

    b.show();

    }

  15. 在继承机制下,当对象消亡时,编译系统执行析构函数的顺序是_______。

  16. C++重载“=”运算符的函数名是________。

  17. 定义__________函数时,应在参数个数或参数类型上有所不同。

  18. 假定用户为类A定义了一个构造函数“A(int i=0):x(i){}”,则与该语句等_________。

  19. 假定用户没有给一个名字为 Sample的类定义构造函数,则系统为其隐含定义的构造函数为________。

  20. 执行下列程序double=3.1415926,b=3.14;cout<

  21. 返回向量中的第1个对象的成员函数是_______。

  22. 在C++的类声明中,用public关键字声明的类成员的访问权限是_________。

  23. 下列程序段的输出结果是_______。cout.setf(ios::showpos);cout<<509.3<

  24. 对虚函数的调用有两种方式:多态调用和________。

  25. 类模板中声明的类称为_______。

  26. 在C++中,利用向量类模板定义一个具有10个int的向量A,其元素均被置为1,实现此操作的语句是__________。

  27. 假定用户没有给一个名为AB的类定义构造函数,则系统自动给出的缺省构造函数定义为________。

  28. 在派生类中,对类对象成员、基类成员和非类对象成员的初始化顺序是________。

  29. 如果一个引用不是用作函数参数或返回值,则在说明该引用时必须对它进行__________。

  30. 在C++中要创建一个文件输入流对象fn,同时该对象打开文件“Test.txt”用于输入,则正确的声明语句是__________。

  31. 如果表达式- -x中的“- -”是重载的类成员函数运算符,采用运算符函数调用格式时,该表达式应表示为________。

  32. 在派生类中实现基类成员的初始化,需要由派生类的构造函数调用________来完成。

  33. 采用私有派生方式,基类的public成员在派生类中是_________成员。

  34. 函数模板templatevoid A(T,T)可实例化为以下哪种形式()

    • A.void A(double,int);
    • B.void A(char,float);
    • C.void A(double,double);
    • D.void A(float,int)
  35. 如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()

    • A.a.operator++(1)
    • B.operator++(a)
    • C.operator++(a,1)
    • D.a.operator++()
  36. 设int&max(int&,int&)返回两参数中较大者,如有两整型变量int a=5;int b=10;在执行max(a,b)++后,a,b的值分别为()

    • A.5,10
    • B.6,10
    • C.5,11
    • D.6,11
  37. 关于虚函数的描述中,正确的是()

    • A.虚函数是一个静态成员函数
    • B.虚函数是一个非成员函数
    • C.虚函数既可以在函数说明时定义,也可以在函数实现时定义
    • D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
  38. 在重载一个运算符函数时,其参数表中没有任何参数,这说明该运算符是()

    • A.一元非成员运算符
    • B.一元成员运算符
    • C.二元非成员运算符
    • D.二元成员运算符
  39. 下列关于向量的描述中,不正确的是()

    • A.向量是类模板,具有成员函数,但它不可以使用构造类型
    • B.向量可以改变赋值目标的大小
    • C.erase(iterator it)方法是删除it所指向的容器对象
    • D.size()方法指返回当前向量中已经存放的对象的个数
  40. 在C++类体系中,不能被派生类继承的有()

    • A.常成员函数
    • B.静态成员函数
    • C.虚函数
    • D.析构函数
  41. 在C++中,编写一个内联函数Fun,使用int型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是()

    • A.int Fun(int x){return x*x;}
    • B.int inline Fun(int x){return x*x;}
    • C.inline int Fun(int x){return x*x;}
    • D.int Fun(int x){inline return x*x;}
  42. 类的私有成员可在何处访问()

    • A.通过子类的对象访问
    • B.本类及子类的成员函数中
    • C.通过该类对象访问
    • D.本类的成员函数中
  43. 用于包含C++标准库iostream的预处理指令是()

    • A.#define
    • B.#include
    • C.#define"iostream"
    • D.#include"iostream"
  44. 关于new运算符的描述中,错误的是()

    • A.它可以用来动态创建对象和对象数组
    • B.使用它创建的对象或对象数组可以使用运算符delete删除
    • C.使用它创建对象时要调用构造函数
    • D.使用它创建对象数组时必须指定初始值
  45. 下列关于静态数据成员的描述中正确的是()

    • A.静态数据成员是类的所有对象所共有的
    • B.静态数据成员要在构造函数内初始化
    • C.类的每个对象都有自己的静态数据成员
    • D.静态数据成员不能通过类的对象调用
  46. 对于int*pa[5];的描述,正确的是()

    • A.pa是一个指向数组的指针,所指向的数组是5个int型元素
    • B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量
    • C.pa[5]表示某个数组的第5个元素的值
    • D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针
  47. 下列对模板的声明中正确的是()

    • A.template
    • B.template
    • C.template
    • D.template
  48. 实现两个相同类型数加法的函数模板的声明是()

    • A.add(T x,T y)
    • B.T add(x,y)
    • C.T add(T x,y)
    • D.T add(T x,T y)
  49. 在继承中,派生类拥有的基类个数为()

    • A.0个
    • B.1个
    • C.多个
    • D.至少1个
  50. 如果类A被说明成类B的友元,则

    • A.类B不一定是类A的友元
    • B.类B的成员即类A的成员
    • C.类的成员即类B的成员
    • D.类A的成员函数不得访问类B的成员
  51. 用于标识十进制常量的前缀或后缀是()

    • A.无前后缀
    • B.后缀L或1
    • C.前缀0
    • D.前缀0x
  52. 关于类模板,下列表述中不正确的是()

    • A.类模板中声明的类称为模板类
    • B.类模板只能有虚拟类型参数
    • C.类模板本身在编译中不会生成任何代码
    • D.类模板的成员函数都是模板函数
  53. 包含哪种语句的函数不能声明为内联函数()

    • A.变量定义
    • B.if......else
    • C.位操作
    • D.switch