homework 发表于 2020-5-22 15:52:50

100面向对象程序设计_题库_201903_A 更新北理工20春答案

[试题分类]:面向对象程序设计下列选项中,不是面向对象系统包含的要素的是
A. 类
B. 对象
C. 继承
D. 函数
答案:D
题型:单选题
知识点:1.1.2面向对象的有关概念
难度:1下列选项中不能作为C++标识符的是
A. first_time
B. 2b
C. Class
D. hello
答案:B
题型:单选题
知识点:1.3 C++语言的词法及词法规则
难度:1{
执行下列语句序列后的输出结果是:
              int count=10 , &ref=count;
      count+=100;   cout<<ref;
}
A. 10
B. 100
C. 110
D. 未知
答案:
题型:单选题
知识点:2.5.4 引用
难度:2在C++中,可以取代C中带参数的宏的是
A. 重载函数
B. 内联函数
C. 递归函数
D. 友元函数
答案:B
题型:单选题
知识点:4.4 内联函数
难度:1下列函数参数默认值设置错误的是
A. Fun(int x=0,int y=0)
B. Fun(int x=0,int y)
C. Fun(int x,int y=0)
D. Fun(int x,int y)
答案:B
题型:单选题
知识点:4.3.2 设置函数参数的默认值
难度:1已知函数原型为“int test(int,int,int); ”,则下列重载形式中正确的是
A. char test(int,int,int);
B. double test(int,int,double);
C. int test(int,int,int=0);
D. float test(int,int,int);
答案:
题型:单选题
知识点:4.5 函数重载
难度:2下列关于类定义的描述叙述中,正确的是
A. 类定义中包括数据成员和成员函数的声明
B. 类成员的默认访问权限是保护的
C. 数据成员必须声明为私有的
D. 成员函数只能在类体外定义
答案:A
题型:单选题
知识点:5.1 类的定义
难度:1下列选项中,可以作为类A构造函数声明的是
A. void A(int);
B. int A();
C. A(int) const;
D. A(int);
答案:D
题型:单选题
知识点:5.3.1 构造函数与析构函数
难度:2{
下列划线处应填入的内容是
        class MyClass \{
        public:
                MyClass() \{ count++; \}
        private:
                static int count;
        \};
                       count=10;
        }
A. int
B. static int       
C. static MyClass::int
D. int MyClass::
答案:D
题型:单选题
知识点:5.5 静态成员
难度:2下列关于常类型的叙述中,正确的是
A. 通过常对象可以调用一般成员函数
B. 常对象中的成员函数都是常成员函数
C. 可以通过成员函数修改常对象的状态
D. 必须使用成员初始化列表显式初始化常数据成员
答案:D
题型:单选题
知识点:6.3 常类型
难度:2派生类的成员函数不能访问基类中的
A. 保护成员和私有成员
B. 公有成员
C. 私有成员
D. 保护成员
答案:
题型:单选题
知识点:7.1.3 基类成员在派生类中的访问权限
难度:1下列关于继承和派生的叙述中,正确的是
A. 派生类不能访问基类的保护成员
B. 不能定义虚基类对象
C. 派生类要向基类的构造函数传递参数
D. 多继承时不会产生二义性
答案:C
题型:单选题
知识点:7 继承性和派生类
难度:3如果'-'作为类成员函数重载,在使用显式函数调用时,表达式x-y可表示为
A. x.operator-(y)
B. operator-(x,y)
C. y.operator-(x)
D. operator-(y,x)
答案:A
题型:单选题
知识点:8.2 运算符重载
难度:2{
若有如下类定义:
        class Shape \{
        public:
                virtual void Draw()=0;
        \};
则下列关于Shape类的叙述中,正确的是
}
A. 类Shape是虚基类
B. 类Shape是抽象类
C. 类Shape中的Draw函数声明有误
D. “Shape s;”能建立Shape的对象s
答案:
题型:单选题
知识点:8.5 纯虚函数与抽象类
难度:2C++中重载的运算符>>是
A. 用于输入操作的成员函数
B. 用于输入操作的非成员函数
C. 用于输出操作的成员函数
D. 用于输出操作的非成员函数
答案:B
题型:单选题
知识点:9.2.1 使用预定义的提取符
难度:1已知一个函数的原型是“int fun(int x);”,若要以5为实参调用该函数,应使用表达式     。
答案:fun(5)
题型:填空题
知识点:4.2 函数的调用
难度:1非成员函数应声明为类的     函数才能访问这个类的私有成员。
答案:友元
题型:填空题
知识点:5.6 友元
难度:1{
        请在划线处填写正确内容,使类MyClass的复制构造函数的声明完整。
        class MyClass \{
        public:
                MyClass(const                     obj);
        \};
}
答案:MyClass&
题型:填空题
知识点:5.3.3 复制构造函数
难度:2类成员的访问权限分为  ?  、  ?  和  ?  三类。
答案:?
题型:填空题
知识点:5.1 类的定义
难度:1{
下列程序运行后输出12,请将划线处的语句补充完整。
        #include <iostream>
        using namespace std;
class MyClass \{
        public:
                void Print() const \{ cout<<12; \}
        \};
int main() \{
                MyClass* p = new MyClass();
            Print();
                delete p;
                return 0;
\}
}
答案:p->或(*p).
题型:填空题
知识点:5.2 对象的定义
                6.4.2 堆对象
难度:2{
下列程序运行后的输出结果是    。
        #include<iostream>
        using namespace std;
class MyClass \{
        public:
                MyClass(int x) \{ cout<<x; \}
                ~MyClass() \{ cout<<0; \}
        \};
        int main() \{
                MyClass arr[]=\{MyClass(1),MyClass(2),MyClass(3)\};
                return 0;
        \}
}
答案:
题型:填空题
知识点:5.3 对象的初始化
                6.2.1 对象数组
                6.4.2 堆对象
难度:2如果类的子对象不提供成员初始化值,则调用该对象的    。
答案:默认构造函数
题型:填空题
知识点:6.4.1 子对象
难度:1用来派生新类的类称为 ?  ,而派生出的新类称为  ?  。
答案:基类或父类 | 派生类或子类
题型:填空题
知识点:7.1 基类和派生类
难度:1{
请按照下列注释语句的提示补充完整类B的构造函数的定义。
class A \{
public:
        A(int aa=0) : a(aa) \{ \}
private:
        int a;
\};
class B : public A \{
public:
        //用aa初始化基类A,用aa+1初始化成员对象c
        B(int aa) :       ,       , b(aa+2) \{ \}
private:
        int b;
        A c;
\};
      }
答案:
题型:填空题
知识点:7.2.1 派生类的构造函数和析构函数
难度:2为了解决由____________产生的二义性问题,在C++中引入了虚基类。
答案:多继承
题型:填空题
知识点:7.3.3 多继承的二义性问题
难度:1改错题
{
下列程序中有三个错误,请指出错误所在行号并改正错误(注意不要修改主函数),使程序输出结果为:
The point is (0,1)
The point is (3,5)
源文件清单如下:
Line1:                #include <iostream>
Line2:                using namespace std;
Line3:                class Point \{
Line4:                public:
Line5:                        Point(int xx=0, int yy) : x(xx), y(yy) \{ \}
Line6:                        void Move(int xOff, int yOff) const \{
Line7:                                x+=xOff; y+=yOff;
Line8:                        \}
Line9:                        void Print() const
Line10:                                \{ cout<<"The point is ("<<x<<','<<y<<')'<<endl; \}
Line11:                private:
Line12:                        int x,y=0;
Line13:                \};
Line14:                int main() \{
Line15:                        Point p1,p2(2,1);
Line16:                        p1.Print();
Line17:                        p2.Move(1,4);
Line18:                        p2.Print();
Line19:                        return 0;
Line20:                \}
}
答案:
题型:改错题
知识点:5.3 对象的初始化
5.4.3 设置参数的默认值
难度:2
答案:Line6 :void Move(int xOff, int yOff) {
题型:改错题
知识点:6.3.3 常成员函数
难度:2
答案:Line12:int x,y;
题型:改错题
知识点:5.1 类的定义
难度:1{
请写出下列程序的输出结果。
#include <iostream>
using namespace std;
class MyClass \{
public:
        MyClass(int x):val(x)         \{ cout<<val<<endl; \}
        ~MyClass()                                 \{ cout<<'~'<<val<<endl; \}
        int Add()                                 \{ val=2*val; return val; \}
        int Add(int x)                         \{ val=val+x; return val; \}
        void Print() const                 \{ cout<<val<<endl; \}
private:
        int val;
\};
int main() \{
        MyClass obj1(10),obj2(30);
        obj1.Add();
        obj2.Add(10);
        obj1.Print();
        obj2.Print();
        return 0;
\}
}
答案:题型:阅读程序题
知识点:5.3 对象的初始化
5.4 成员函数的特性
6.3.3 常成员函数
难度:2{
请写出下列程序的输出结果。
#include <iostream>
using namespace std;
class Base1 \{
public:
        Base1()                         \{ cout<<"Base1"<<endl; \}
        ~Base1()               \{ cout<<"~Base1"<<endl; \}
\};
class Base2 \{
public:
        Base2()                         \{ cout<<"Base2"<<endl; \}
        ~Base2()               \{ cout<<"~Base2"<<endl; \}
\};
class Derived : public Base2, public Base1 \{
public:
        Derived()                 \{ cout<<"Derived "<<endl; \}
        ~Derived()               \{ cout<<"~Derived"<<endl; \}
private:
        Base1 b1;
        Base2 b2;
\};
int main() \{
        Derived d;
        return 0;
\}
}
答案:
Base2
Base1
Base1
Base2
Derived
~Derived
~Base2
~Base1
~Base1
~Base2
题型:阅读程序题
知识点:7.3.2 多继承的构造函数和析构函数
难度:2{
请写出下列程序的输出结果。                                                                                       
#include <iostream>
using namespace std;
class Base \{
public:
        virtual void Show()                                 \{ cout<<"Base"<<endl; \}
\};
class Derived : public Base \{
public:
        virtual void Show ()                                \{ cout<<"Derived"<<endl; \}
\};
void Print(Base& obj)                                 \{ obj.Show(); \}
int main() \{
        Base b;
Derived d;
        cout<<"Section 1: ";                Print(b);
        cout<<"Section 2: ";                Print(d);       
return 0;
\}
}
答案:
题型:阅读程序题
知识点:8.3.2 动态联编
8.4 虚函数
难度:2
转载注明无忧答案网
页: [1]
查看完整版本: 100面向对象程序设计_题库_201903_A 更新北理工20春答案