作业答案 发表于 2017-11-5 10:13:12

地大17秋《面向对象程序设计(新)》在线作业12题目

地大《面向对象程序设计(新)》在线作业一
一、单选题:
1.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为()          (满分:4)
    A.ABoperator+(AB& a , AB& b)
    B.ABoperator+(AB& a)    C.operator+(ABa)
    D.AB& operator+( )
2.在下列关键字中,不能用来表示继承方式的是()          (满分:4)
    A.private
    B.static
    C.public
    D.protected
3.以下结构类型可用来构造链表的是()          (满分:4)
    A.struct aa{ int a;int * b;};
    B.struct bb{ int a;bb * b;};
    C.struct cc{ int * a;cc b;};
    D.struct dd{ int * a;aa b;};
4.下列有关函数重载的叙述中,错误的是()          (满分:4)
    A.函数重载就是用相同的函数名定义多个函数
    B.重载函数的参数列表必须不同
    C.重载函数的返回值类型必须不同
    D.重载函数的参数可以带有默认值
5.考虑函数原型void test(int a,int b=7,char=\\\*\\\),下面的函数调用中,属于不合法调用的是()          (满分:4)
    A.test(5);
    B.test(5,8);
    C.test(6,\\\#\\\)
    D.test(0,0.\\\*\\\);
6.下面关于new?和delete操作符的说法,哪个是不正确的()          (满分:4)
    A.使用new操作符,可以动态分配全局堆中的内存资源
    B.若p的类型已由A*强制转换为void?*,那么执行语句delete?p;时,类A的析构函数不会被调用
    C.实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中
    D.执行语句A?*?p=new?A;时,类A的构造函数只会被调用1次
7.下列程序的输出结果为()#include\\nvoid main()\\n{\\n   char,a[]={”hello\\\,”the\\\,”world”};\\n   char**pa=a:\\n   pa++;\\n   cout<<*pa<       \\n}          (满分:4)
    A.hello
    B.the
    C.world
    D.hellotheworld
8.有如下程序:   \\n  #include   \\n  class BASE{   \\n    char c;   \\n  public:   \\n    BASE(char n):c(n){}   \\n    virtual~BASE(){cout<<C;}   \\n  };   \\n  class DERIVED:public BASE{   \\n    char c;   \\n  public:   \\n    DERIVED(char n):BASE(n+1),c(n){}   \\n    ~DERIVED(){cout          (满分:4)
    A.XY
    B.YX
    C.X
    D.Y
9.下面对静态数据成员的描述中,正确的是()          (满分:4)
    A.静态数据成员可以在类体内进行初始化
    B.静态数据成员不可以被类的对象调用
    C.静态数据成员不能受private控制符的作用
    D.静态数据成员可以直接用类名调用
10.下列程序的执行结果为()。\\n      #include\\n      void main()\\n      {\\n      int a=3,b=0;\\n      int*p=&a:\\n      b=+a++;\\n      cout<<*P<<”,”<<endl      \\n       }          (满分:4)
    A.3,4
    B.4,3
    C.3,4
    D.4,4
11.下面对于友元函数描述正确的是()          (满分:4)
    A.友元函数的实现必须在类的内部定义
    B.友元函数是类的成员函数
    C.友元函数破坏了类的封装性和隐藏性
    D.友元函数不能访问类的私有成员
12.由C++目标文件连接而成的可执行文件的缺省扩展名为          (满分:4)
    A.cpp
    B.exe
    C.obj
    D.Lik
13.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()          (满分:4)
    A.main
    B.MAIN
    C.name
    D.Function
14.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()          (满分:4)
    A.派生类的对象可以赋给基类的对象
    B.派生类的对象可以初始化基类的引用
    C.派生类的对象可以直接访问基类中的成员
    D.派生类的对象的地址可以赋给指向基类的指针
15.下列有关运算符重载的叙述中,正确的是()          (满分:4)
    A.运算符重载是多态性的一种表现
    B.C++中可以通过运算符重载创造新的运算符
    C.C++中所有运算符都可以作为非成员函数重载
    D.重载运算符时可以改变基结合性
二、多选题:
16.关于异常和C++提供的异常处理机制正确的说法是()          (满分:4)
    A.若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现
    B.使用dynamic_cast操作符可能会产生异常
    C.异常可以用catch进行捕获处理
    D.异常可以是对象,也可以是普通整数
17.类A中有唯一的一个公有成员函数f,对于类A的一个对象a,执行语句 a.f(100);成功,那么f 的函数原型可以为          (满分:4)
    A.A& f( int, int=50);
    B.void f(int&) const;
    C.const A * f(const int );
    D.A f( const int&) const;
18.赋值运算符重载函数与拷贝构造函数的区别是什么()          (满分:4)
    A.都是拷贝一个类的对象给另一个同类型的类的对象
    B.拷贝构造函数是用已存在的对象的各成员的当前值来创建一个相同的新对象
    C.赋值运算符重载函数要把一个已存在对象的各成员的当前值赋给另一个已存在的同类对象
19.关于公共静态数据成员,下面说法正确的是()          (满分:4)
    A.在main函数之前创建
    B.跟某个具体对象无关
    C.可以用类名和成员名直接访问
    D.需要在类体外初始化
20.模板定义中的类型参数可以用作()          (满分:4)
    A.局部变量类型
    B.函数参数类型
    C.函数返回值类型
    D.数据成员类型
三、判断题:
21.面向对象程序设计通过继承和重载两种机制实现多态          (满分:4)
    A.错误
    B.正确
22.构造函数和析构函数都可以重载          (满分:4)
    A.错误
    B.正确
23.抽象类不可以继承,只能派生          (满分:4)
    A.错误
    B.正确
24.设int * p;则可以定义表达式 --++p          (满分:4)
    A.错误
    B.正确
25.虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体          (满分:4)
    A.错误
    B.正确
地大《面向对象程序设计(新)》在线作业二

一、单选题:
1.有如下类声明:class Base{protected;int amount;public;Base(int n=0): amount(n){}int getAmount()const { retum amount; }};class Derived: public Base {protected;int value;public;Derived(int m, int n): value(m). Base(n){}Int getData()const{ return value+amount; }};已知          (满分:4)
    A.x.value+ x.getAmount()
    B.x.getData()-x.gctAmount()
    C.x.getData()-x.amount
    D.x.value+x.amount
2.下列程序的输出结果为()#include\\nvoid main()\\n{\\n   char,a[]={”hello\\\,”the\\\,”world”};\\n   char**pa=a:\\n   pa++;\\n   cout<<*pa<       \\n}          (满分:4)
    A.hello
    B.the
    C.world
    D.hellotheworld
3.下面程序错误的语句是()\\n  ①#include\\n  ②void main()\\n  ③{\\n  ④int*p=new int;\\n  ⑤p=9;\\n  ⑥cout <<*p<  ⑦delete[]p\\n    ⑧}          (满分:4)
    A.④
    B.⑤
    C.⑥
    D.⑦
4.假定AB为一个类,则该类的拷贝构造函数的声明语句为          (满分:4)
    A.AB?&(AB??x)
    B.AB(AB??x)
    C.AB(AB??&)
    D.AB(AB?*?x)
5.下列程序的运行结果为()。#include\\nvoid print(double a)\\n{\\n   cout<<++a;\\n}\\nvoid print(int a,int b)\\n{\\n   cout<<b<<a   \\n}\\nvoid main()\\n{\\n   print(1.2);\\n   cout<<” ”;\\n   print(3,4);\\n}          (满分:4)
    A.1.2?34
    B.2.2?34
    C.1.2?43
    D.2.2?43
6.执行语句 char ch[] = \\\Hello\\\; char * p = &ch; cout << p; 结果是输出()          (满分:4)
    A.一个地址
    B.H
    C.Hello
    D.乱码
7.已知Value 是一个类,Value 是Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()          (满分:4)
    A.Value operator+(Value v, int i);
    B.Value operator+(Value v=value, int i);
    C.Value operator+(Value vint i=0);
    D.Value operator+(Value v=value, int i=0);
8.有如下程序:   \\n  #include   \\n  class BASE{   \\n    char c;   \\n  public:   \\n    BASE(char n):c(n){}   \\n    virtual~BASE(){cout<<C;}   \\n  };   \\n  class DERIVED:public BASE{   \\n    char c;   \\n  public:   \\n    DERIVED(char n):BASE(n+1),c(n){}   \\n    ~DERIVED(){cout          (满分:4)
    A.XY
    B.YX
    C.X
    D.Y
9.下列哪种函数可以是虚的()          (满分:4)
    A.自定义的构造函数
    B.拷贝构造函数
    C.静态成员函数
    D.析构函数
10.在下列关键字中,不能用来表示继承方式的是()          (满分:4)
    A.private
    B.static
    C.public
    D.protected
11.有如下类定义:\\nclass Point{\\nprivate;\\nstatic int how_many;\\n};\\n____ how_many=0;\\n要初始化Point 类的静态成员how_many,下划线处应填入的内容是()          (满分:4)
    A.ing
    B.static int
    C.int Point::
    D.static int Point::
12.设int x;,则经过(    )后,语句*px=0;可将x值置为0          (满分:4)
    A.int * px;
    B.int const * px=&x;
    C.int * const px=&x;
    D.const int * px=&x;
13.考虑函数原型void test(int a,int b=7,char=\\\*\\\),下面的函数调用中,属于不合法调用的是()          (满分:4)
    A.test(5);
    B.test(5,8);
    C.test(6,\\\#\\\)
    D.test(0,0.\\\*\\\);
14.下面程序的运行结果为()。\\n      #include\\n      class A\\n      {\\n public:\\n         A(){cout<<”1”;}\\n         ~A(){cout<<”2”;}\\n      }\\n      class B:public A\\n      {\\n      public:\\n         B(){cout<<”3”;}\\n         ~B(){cout<<”4”;}\\n      }\\n      void main()          (满分:4)
    A.1234
    B.1324
    C.1342
    D.3142
15.决定C++语言中函数的返回值类型的是          (满分:4)
    A.return语句中的表达式类型
    B.调用该函数时系统随机产生的类型
    C.调用该函数时的主调用函数类型
    D.在定义该函数时所指定的数据类型
二、多选题:
16.赋值运算符重载函数与拷贝构造函数的区别是什么()          (满分:4)
    A.都是拷贝一个类的对象给另一个同类型的类的对象
    B.拷贝构造函数是用已存在的对象的各成员的当前值来创建一个相同的新对象
    C.赋值运算符重载函数要把一个已存在对象的各成员的当前值赋给另一个已存在的同类对象
17.关于公共静态数据成员,下面说法正确的是()          (满分:4)
    A.在main函数之前创建
    B.跟某个具体对象无关
    C.可以用类名和成员名直接访问
    D.需要在类体外初始化
18.关于异常和C++提供的异常处理机制正确的说法是()          (满分:4)
    A.若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现
    B.使用dynamic_cast操作符可能会产生异常
    C.异常可以用catch进行捕获处理
    D.异常可以是对象,也可以是普通整数
19.关于类中重载赋值运算符的正确说法是()          (满分:4)
    A.由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值
    B.在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值
    C.只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作
    D.通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作
20.关于构造函数说法正确的是()          (满分:4)
    A.函数名只能是类名
    B.返回类型可以是任意的
    C.参数个数和类型可以是任意的
    D.在对象创建时自动调用
三、判断题:
21.C++程序的执行只能从main()函数开始,并在main()中结束          (满分:4)
    A.错误
    B.正确
22.设int fp(char a,int b=0,double c=100.0);,则可以定义重载函数 int fp(char,int);          (满分:4)
    A.错误
    B.正确
23.多态的实现分为两类:编译时的多态和运行时的多态          (满分:4)
    A.错误
    B.正确
24.内联inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。          (满分:4)
    A.错误
    B.正确
25.重载函数在编译时时静态联编,而虚函数在运行时是动态联编          (满分:4)
    A.错误
    B.正确

页: [1]
查看完整版本: 地大17秋《面向对象程序设计(新)》在线作业12题目