北理工23春面向对象程序设计非答案

[复制链接]
查看: 241|回复: 0

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72280
发表于 2023-4-4 09:40:23 | 显示全部楼层 |阅读模式

答案来源:www.ybaotk.com[试题分类]:面向对象程序设计


1.        下列选项中,不是面向对象系统包含的要素的是


A. 类


B. 对象


C. 继承


D. 函数


答案:D


题型:单选题


知识点:1.1.2  面向对象的有关概念


难度:1


2.        下列选项中不能作为C++标识符的是


A. first_time


B. 2b


C. Class


D. hello


答案:B


题型:单选题


知识点:1.3 C++语言的词法及词法规则


难度:1


3.        {


执行下列语句序列后的输出结果是:


                int count=10 , &ref=count;


      count+=100;   cout<<ref;


}


A. 10


B. 100


C. 110


D. 未知


答案:


题型:单选题


知识点:2.5.4 引用


难度:2


4.        在C++中,可以取代C中带参数的宏的是


A. 重载函数


B. 内联函数


C. 递归函数


D. 友元函数


答案:B


题型:单选题


知识点:4.4 内联函数


难度:1


5.        下列函数参数默认值设置错误的是


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


6.        已知函数原型为“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


7.        下列关于类定义的描述叙述中,正确的是


A. 类定义中包括数据成员和成员函数的声明


B. 类成员的默认访问权限是保护的


C. 数据成员必须声明为私有的


D. 成员函数只能在类体外定义


答案:A


题型:单选题


知识点:5.1 类的定义


难度:1


8.        下列选项中,可以作为类A构造函数声明的是


A. void A(int);


B. int A();


C. A(int) const;


D. A(int);


答案:D


题型:单选题


知识点:5.3.1 构造函数与析构函数


难度:2


9.        {


下列划线处应填入的内容是


        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


10.        下列关于常类型的叙述中,正确的是


A. 通过常对象可以调用一般成员函数


B. 常对象中的成员函数都是常成员函数


C. 可以通过成员函数修改常对象的状态


D. 必须使用成员初始化列表显式初始化常数据成员


答案:D


题型:单选题


知识点:6.3 常类型


难度:2


11.        派生类的成员函数不能访问基类中的


A. 保护成员和私有成员


B. 公有成员


C. 私有成员


D. 保护成员


答案:


题型:单选题


知识点:7.1.3 基类成员在派生类中的访问权限


难度:1


12.        下列关于继承和派生的叙述中,正确的是


A. 派生类不能访问基类的保护成员


B. 不能定义虚基类对象


C. 派生类要向基类的构造函数传递参数


D. 多继承时不会产生二义性


答案:C


题型:单选题


知识点:7 继承性和派生类


难度:3


13.        如果'-'作为类成员函数重载,在使用显式函数调用时,表达式x-y可表示为


A. x.operator-(y)


B. operator-(x,y)


C. y.operator-(x)


D. operator-(y,x)


答案:A


题型:单选题


知识点:8.2 运算符重载


难度:2


14.        {


若有如下类定义:


        class Shape \{


        public:


                virtual void Draw()=0;


        \};


则下列关于Shape类的叙述中,正确的是


}


A. 类Shape是虚基类


B. 类Shape是抽象类


C. 类Shape中的Draw函数声明有误


D. “Shape s;”能建立Shape的对象s


答案:


题型:单选题


知识点:8.5 纯虚函数与抽象类


难度:2


15.        C++中重载的运算符>>是


A. 用于输入操作的成员函数


B. 用于输入操作的非成员函数


C. 用于输出操作的成员函数


D. 用于输出操作的非成员函数


答案:B


题型:单选题


知识点:9.2.1 使用预定义的提取符


难度:1


16.        已知一个函数的原型是“int fun(int x);”,若要以5为实参调用该函数,应使用表达式     。


答案:fun(5)


题型:填空题


知识点:4.2 函数的调用


难度:1


17.        非成员函数应声明为类的     函数才能访问这个类的私有成员。


答案:友元


题型:填空题


知识点:5.6 友元


难度:1


18.        {


        请在划线处填写正确内容,使类MyClass的复制构造函数的声明完整。


        class MyClass \{


        public:


                MyClass(const                       obj);


        \};


}


答案:MyClass&


题型:填空题


知识点:5.3.3 复制构造函数


难度:2


19.        类成员的访问权限分为    、    和    三类。


答案:


题型:填空题


知识点:5.1 类的定义


难度:1


20.        {


下列程序运行后输出12,请将划线处的语句补充完整。


       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x





上一篇:北理工23春劳动与社会保障法题库非答案
下一篇:北理工23春民航乘务实务非答案
回复

使用道具 举报

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72280
 楼主| 发表于 2023-4-4 09:40:23 | 显示全部楼层
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


21.        {


下列程序运行后的输出结果是    。


       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72280
 楼主| 发表于 2023-4-4 09:40:23 | 显示全部楼层
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


22.        如果类的子对象不提供成员初始化值,则调用该对象的    。


答案:默认构造函数


题型:填空题


知识点:6.4.1 子对象


难度:1


23.        用来派生新类的类称为   ,而派生出的新类称为    。


答案:基类或父类 | 派生类或子类


题型:填空题


知识点:7.1 基类和派生类


难度:1


24.        {


请按照下列注释语句的提示补充完整类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


25.        为了解决由____________产生的二义性问题,在C++中引入了虚基类。


答案:多继承


题型:填空题


知识点:7.3.3 多继承的二义性问题


难度:1


26.        改错题


{


下列程序中有三个错误,请指出错误所在行号并改正错误(注意不要修改主函数),使程序输出结果为:


The point is (0,1)


The point is (3,5)


源文件清单如下:


Line1:               

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72280
 楼主| 发表于 2023-4-4 09:40:23 | 显示全部楼层
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


27.        {


请写出下列程序的输出结果。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72280
 楼主| 发表于 2023-4-4 09:40:23 | 显示全部楼层
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


28.        {


请写出下列程序的输出结果。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72280
 楼主| 发表于 2023-4-4 09:40:23 | 显示全部楼层
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


29.        {


请写出下列程序的输出结果。                                                                                       


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2万

主题

3万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
72280
 楼主| 发表于 2023-4-4 09:40:23 | 显示全部楼层
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







答案来源:www.ybaotk.com

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩课程推荐
|网站地图|网站地图