《面向对象程序设计》复习题2

发布时间:2023-12-04 20:12:16浏览次数:15
[试题分类]:面向对象程序设计1. 下列选项中,不属于 C++程序开发步骤的是A. 编译B. 编辑C. 链接D. 解释答案:D2. 下列关于引用的叙述中,错误的是A. 创建引用时必须为其分配存储空间B. 创建引用时必须立即对其进行初始化C. 对引用的操作就是对其代表的数据对象的操作D. 引用必须与一块合法的存储空间相关联答案:A3. 设变量 x 和 y 为整型变量,若有函数调用为“fun(x,&y)”,则下列选项中,能够作为函数 fun 原型声明的是A. void fun(int &a,int &b);B. void fun(int &a,int *b);C. void fun(int *a,int &b);D. void fun(int *a,int *b);答案:B4. 下列选项中,不是重载函数调用时的选择依据的是1 A. 参数个数B. 参数类型C. 函数名称D. 函数返回类型答案:D5. {若有如下 Fruit 类定义: class Fruit\{ char name[20]; public: void Print(); private: double price; \};则下列描述中,正确的是}A. 类中有 1 个公有数据成员B. 类中有 1 个私有数据成员C. 类中有 2 个私有数据成员D. 数据成员 name 的访问权限未知答案:C6. 下列关于静态成员的叙述中,正确的是A. 静态成员不属于对象,是类的共享成员B. 静态数据成员要由构造函数初始化C. 静态成员函数只能通过类激活2 D. 非静态成员函数不能操作静态数据成员答案:A7. 下列关于友元的叙述中,错误的是A. 友元破坏了类的封装性B. 友元提高了程序的运行效率C. 友元可以在类外声明和定义D. 友元能够访问类中的私有成员答案:C8. {下列函数中,具有隐含的 this 指针的是void fun1(); //①class MyClass\{public:friend void fun2(); //②static int fun3(); //③int fun1(); //④\};}A. ①B. ②C. ③D. ④答案:D9. {有如下类定义:class Point\{public: Point(int xx=0,int yy=0):x(xx),y(yy) \{ \}private: int x,y;3 \};class Circle:public Point\{public: Circle(int r):radius(r) \{ \}private: int radius;\};派生类 Circle 中数据成员的个数为}A. 1B. 2C. 3D. 5答案:C10. 下列运算符中,可以重载的是A. .*B. ?:C. ++D. ::答案:C11. C++流中重载的运算符<<是一个A. 用于输出操作的成员函数B. 用于输入操作的成员函数C. 用于输出操作的非成员函数D. 用于输入操作的非成员函数答案:C12. 已知一个函数的原型是“double fun(double x);”,若要以 4.25 为实参调用该函数,应使用表达式     。4 答案:fun(4.25)13. 将一个函数声明为一个类的友元函数必须使用关键字     。答案:friend14. 类中的      成员由类的所有对象共享。答案:静态15. {请在划线处填写正确内容,使类 Test 的复制构造函数的声明完整。class Test \{public: Test(const obj);\};}答案:Test&16. 常用的三种类继承方式为     、     和     。答案:公有或 public | 私有或 private | 保护或 protected(三个答案顺序可变)17. {下列程序运行后的输出结果是    。#include<iostream>using namespace std;class MyClass \{ public: MyClass(int x=0) \{ cout<<x; \}~MyClass() \{ cout<<0; \}\};int main() \{MyClass arr[3]=\{MyClass(1),MyClass(2)\};return 0;\}}5 答案:12000018. 运算符函数的函数名是由运算符前加关键字    构成的。答案:operator题型:填空题19. {请写出下列程序的输出结果。#include <iostream>using namespace std;class Base\{public:Base(int x=0) : vB(x) \{ cout<<"Base"<<vB<<endl; \}~Base() \{ cout<<"~Base"<<endl; \}protected:int vB;\};class Derived : public Base \{public:Derived(int x=0,int y=0,int z=0) : Base(x), obj(y), vD(z) \{ cout<<"Derived"<<vB<<vD<<endl; \}~Derived() \{ cout<<"~Derived"<<endl; \}private:Base obj;int vD;\};int main()\{Derived d(9,3,1);return 0;\}}答案:Base9Base3Derived91~Derived~Base~Base6 20. {请写出下列程序的输出结果。#include <iostream>using namespace std;class Base \{public:virtual void f() \{ cout<<"fB"<<endl; \}void g() \{ cout<<"gB"<<endl; \}\};class Derived : public Base \{public:virtual void f() \{ cout<<"fD"<<endl; \}void g() \{ cout<<"gD"<<endl; \}\};int main() \{Derived d;Base *p=&d;cout<<"Section 1: "; p->f();cout<<"Section 2: "; p->g();return 0;\}}答案:Section 1: fDSection 2: gB7
文档格式: docx,价格: 5下载文档
返回顶部