收藏 分销(赏)

面向对象程序设计复习题专科.doc

上传人:快乐****生活 文档编号:3584752 上传时间:2024-07-10 格式:DOC 页数:14 大小:33KB 下载积分:8 金币
下载 相关 举报
面向对象程序设计复习题专科.doc_第1页
第1页 / 共14页
面向对象程序设计复习题专科.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
面向对象程序设计复习题 专科 一、 单项选择题 1. 在类定义之外定义成员函数时, 下列哪些说法是正确的( ) 。 A. 必须在函数名之前加上类名和作用域符 B. 类的成员函数不可重载   C. 类定义中能够不声明该函数   D. 函数名前作用域符课省略 2. 多重继承的构造顺序一般可分为4步, 下面给出这4个步骤: step1: 任何非虚拟基类的构造函数按照它们被继承的顺序构造。 step2: 任何虚拟基类的构造函数按照它们被继承的顺序构造。 step3: 任何成员对象的构造函数按照它们声明的顺序构造。 step4: 类自己的构造函数。 这4个步骤的正确顺序是( ) 。 A. step4、 step3、 step1、 step2 B. step2、 step4、 step3、 step1 C. step2、 step1、 step3、 step4 D. step3、 step4、 step1、 step2 3. 假设MyClass是一个类, 则该类的拷贝构造函数的声明语句为( ) 。 A. MyClass(MyClass p); B. MyClass& (MyClass p); C. MyClass(MyClass& p); D. MyClass(MyClass * p); 4. 重载运算符与原运算符能够不一致的是什么 ( )。 A.优先级 B.操作数个数 C.操作内容 D.结合性 5. 当用户进行鼠标操作时, 释放鼠标左键会发出( ) 消息。 A.WM_lBUTTONDOWN B.WM_lBUTTONUP C.WM_lBUTTONBLOCK D.WM_RBUTTONUP 6. 下面描述中, 表示错误的是( ) 。 A. 公有继承时基类中的public成员在派生类中仍是public的   B. 公有继承是基类中的private成员在派生类中仍是private的   C. 公有继承时基类中的protected成员在派生类中仍是protected的   D. 私有继承时基类中的public成员在派生类中是private的 7. 能够用p.a的形式访问派生类对象p的基类成员a, 其中a是什么成员( ) A. 私有继承的公有成员   B. 公有继承的私有成员   C. 公有继承的保护成员   D. 公有继承的公有成员 8. 考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中, 属于不合法调用的是( ) A. test(5); B. test(5,8); C. test(6,"#"); D. test(0,0, "*"); 9. 如果在基类中将show声明为不带返回值的纯虚函数, 正确的写法是( ) A. virtual show( )=0; B. virtual void show( ); C. virtual void show( )=0; D. void show( )=0 virtual; 10. 在 ( ) 情况下适宜采用 inline 定义内联函数。 A. 函数体含有循环语句 B. 函数体含有递归语句 C. 函数代码少、 频繁调用 D. 函数代码多、 不常调用 11. 在下列叙述中, 不是Windows程序的特点是( ) A.Windows程序经过窗口与用户进行交互。 B.Windows程序是应用事件驱动进行编程。 C.Windows程序是利用消息进行通信。 D.Windows程序是利用过程驱动的程序。 12. 设置虚基类的目的是(   ) 。 A. 简化程序; B. 消除二义性; C. 提高运行效率; D. 减少目标代码; 13. 下列不是控件的是( ) A. 组合框 B. 编辑框 C. 滚动条 D.菜单 14. 如果类A被说明成类B的友元, 则( ) A. 类A的成员即类B的成员 B. 类B的成员即类A的成员 C. 类A的成员函数不得访问类B的成员 D. 类B不一定是类A的友元 15. 不是Windows应用程序的资源的是( ) A. 加速键 B. 位图 C. 菜单 D. 窗口 16. 关于delete运算符的下列描述中, (  ) 是错误的。 A. 它必须用于new返回的指针; B. 使用它删除对象时要调用析构函数; C. 对一个指针能够使用多次该运算符; D. 指针名前只有一对方括号符号, 不论所删除数组的维数。 17. 在下列叙述中, 叙述错误的是( ) A.Windows应用程序与控制台(Console)程序的入口函数不同。 B.在基于MFC编写的程序中, 其类大部分都是由CObject类派生出来 C.WM_LBUTTONDOWN、 WM_RBUTTONUP、 WM_KEYDOWN都是鼠标消息 D.对话框、 图标、 菜单、 光标等在VC中都能够是作为资源来处理 18. 下列哪些是有关构造函数的错误说法 ( ) A.构造函数名与类名一样 B.构造函数在说明类对象时自动执行 C.构造函数无任何函数类型 D.构造函数有且只有一个 19. 下面有关重载函数的说法中正确的是( ) A. 重载函数必须具有不同的返回值类型;   B. 重载函数形参个数必须不同;    C. 重载函数必须有不同的形参列表   D. 重载函数名能够不同; 20. 当单文档应用框架接收到框架窗口的命令时, 它将按如下次序来寻找相应的消息控制函数( ) A. 视、 文档、 SDI主框架、 应用App B. 文档、 应用App、 视、 SDI主框架 C. 视、 文档、 应用App、 SDI主框架 D. SDI主框架、 文档、 视、 应用App 21、 下列关于构造函数的描述中, 错误的是( ) A)构造函数能够设置默认参数;   B)构造函数在定义类对象时自动执行   C)构造函数能够是内联函数;    D)构造函数不能够重载 22、 以下关于友元函数的叙述不正确的是( ) A) 友元函数提供了类之间数据共享的一个途径 B) 一个友元函数能够访问任何类的任何成员 C) 友元函数破坏了数据的封装 D) 友元函数增加了程序设计的灵活性 23、 下面描述中, 表示错误的是( ) A) 公有继承时基类中的public成员在派生类中仍是public的   B) 公有继承时基类中的private成员在派生类中仍是private的   C) 公有继承时基类中的protected成员在派生类中仍是protected的   D) 私有继承时基类中的public成员在派生类中是private的 24、 最初的计算机编程语言是( )。 A)机器语言 B)汇编语言 C)高级语言 D)低级语言 25、 C语言中允许的基本数据类型包括( ) A) 整型、 实型、 逻辑型。 B) 整型、 实型、 字符型。 C) 整型、 字符型。 D) 整型、 实型、 逻辑型、 字符型 26、 结构化程序设计的一种基本方法是( ) A) 筛选法  B) 递归法  C) 归纳法  D) 逐步求精法 27、 C++语言的跳转语句中, 对于break和continue说法正确的是( ) A) continue语句只应用与循环体中   B) break语句只应用与循环体中   C) break是无条件跳转语句, continue不是   D) break和continue的跳转范围不够明确, 容易产生问题 28、 友元的作用是( )。 A)加强类的封装性 B)提高程序的执行效率 C)实现数据的隐藏 D)增加成员函数的种类 29、 如果在基类中将show声明为不带返回值的纯虚函数, 正确的写法是( ) A) virtual show( )=0; B) virtual void show( ); C) virtual void show( )=0; D) void show( )=0 virtual; 30、 C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比, 它在求解问题方法上进行的最大改进是( ) A) 面向过程  B) 面向对象  C) 安全性  D) 复用性 31、 以下程序的输出结果为: #include<iostream.h> void func(int x,int y,int z) {z=x*x+y*y;} void main() { int k=33; func(5,2,k); count<<k; } A)10 B)33 C)29 D)出错 32、 设置虚基类的目的是(   ) 。 A) 简化程序;    B) 消除二义性; C) 提高运行效率;  D) 减少目标代码; 33、 类的析构函数是在( )调用的。 A) 类创立时 B) 创立对象时 C) 删除对象时 D) 不自动调用 34、 假设MyClass是一个类, 则该类的拷贝构造函数的声明语句为( ) A) MyClass(MyClass p); B) MyClass& (MyClass p); C) MyClass(MyClass& p); D) MyClass(MyClass * p); 35、 关于delete运算符的下列描述中, (  ) 是错误的。 A) 它必须用于new返回的指针; B) 使用它删除对象时要调用析构函数; C) 对一个指针能够使用多次该运算符; D) 指针名前只有一对方括号符号, 不论所删除数组的维数。 36、 结构化程序设计所规定的三种基本控制结构是( ) A) 输入、 处理、 输出  B) 树形、 网形、 环形   C) 顺序、 选择、 循环  D) 主程序、 子程序、 函数 37、 在下列的各类函数中, ( ) 不是类的成员函数。 A) 构造函数; B) 析构函数; C) 友元函数; D) 拷贝初始化构造函数 38、 下述对派生类的描述中, ( ) 是错的。 A) 一个派生类能够作为另一个派生类的基类 B) 派生类至少有一个基类 C) 派生类的成员出除了它自己的成员外, 还包含了它的基类的成员。 D) 派生类中继承的基类成员的访问权限到派生类保持不变。 39、 静态成员函数没有( ) 。 A) 返回值 B) this指针 C) 指针参数 D) 返回类型 40、 当执行完下列语句: int hot=100; int &rad=hot; hot+=100; cout<<rad<<endl; 输出结果是(   ) 。 A) 0 B) 100 C) 200 D) 300 二、 名词解释 1. 什么是继承性? 2. 简述文档/视图结构的工作机制 ? 3. 解释”引用”与”指针”的区别? 4. 构造函数和拷贝构造函数的功能分别是什么? 5. static局部变量和普通局部变量有什么区别? 6. 继承性 7.多态性 8.抽象性 9.重载 10.封装性 三、 综合题 1. 写出下列程序的输出结果( ) ( 程序阅读题) #include <iostream.h> class AA { public: AA(int i,int j) {A=i;B=j;cout<<"Constructor\n";} AA(AA &obj) {A=obj.A+1;B=obj.B+2;cout<<"Copy_Constructor\n";} ~AA() {cout<<"Destructor\n";} void print() {cout<<"A="<<A<<",B="<<B<<endl; } private: int A,B; }; void main() { AA a1(2,3); AA a2(a1); a2.print(); AA *pa=new AA(5,6); pa->print(); delete pa; } 2. 阅读下面程序, 写出运行结果( ) ( 程序阅读题) #include <iostream.h> class Sample { int n; static int sum; public: Sample(int x){n=x;} void add(){sum+=n;} void disp(){cout<<"n="<<n<<",sum="<<sum<<endl;} }; int Sample::sum=0; void main() { Sample a(2),b(3),c(5); a.add(); b.add(); c.add(); a.disp(); b.disp(); c.disp(); } 3. 阅读下面程序, 写出运行结果( ) ( 程序阅读题) #include <iostream.h> class A { public: virtual void fun() { cout<<"A::fun()"<<endl; } }; class B: public A { public: void fun(){ cout<<"B::fun()"<<endl; } }; class C: public B { public: void fun() { cout<<"C::fun()"<<endl; } }; void f(A *p) { p->fun(); } void main() { A a, *p; B b; C c; p=&a; f(p); p=&b; f(p); p=&c; f(p); } 4. 阅读下面程序, 写出运行结果( ) ( 程序设计题) #include <iostream.h> class Test {private: int i; static int k; public: Test(); void Display(); }; int Test::k=0; Test::Test() { i=0; k++; } void Test::Display() { cout<<"i="<<i<<",k="<<k<<endl; } void main() { Test a,b; a.Display(); b.Display(); } 5. 阅读下面程序, 写出运行结果( ) ( 程序设计题) #include <iostream.h> void f2(int &x, int &y) { int z = x; x = y; y = z; } void f3(int *x, int *y) { int z = *x; *x = *y; *y = z; } void main() { int x, y; x = 10; y = 26; cout << "x,y=" << x << ", " << y << endl; f2(x, y); cout << "x,y=" << x << ", " << y << endl; f3(&x, &y); cout << "x,y=" << x << ", " << y << endl; x++; y--; f2(y, x); cout << "x,y=" << x << ", " << y << endl; } 6.下列shape类是一个表示形状的抽象类, area( )为求图形面积的函数。请从shape类派生三角形类(triangle)、 矩形类( rectangle) , 请给出两个类中必要的成员变量和成员函数的定义, 其中必须含有具体的求面积函数。( 程序设计题) class shape {    public:    virtual float area( )=0; };
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服