《面向对象程序设计》复习(2)
更新时间:2023-10-20 01:27:01 阅读量: 综合文库 文档下载
《面向对象程序设计》课程复习
〇、成绩构成
1、平时成绩:15分(考勤+作业) 2、实验成绩:25分(实验+课程设计) 3、考试成绩:60分 一、考试题型 选择题 30分 填空题 判断题 简答
20分 15分 5分 20分 10分
程序分析 程序编写
二、选择题
1. C++代码源文件的扩展名应为 ( B )
A. c B. cpp C.obj D.exe
2. 函数声明为:char fun(int a); float fun(char *p); int fun(int &b); 则以下函数调用语句正确的是 ( C )
A. fun(5) B. int b; fun(&b); C. char *p; fun(p); D. int a; fun(a)
3. 标准输入流对象cin无法读取( C )
A. 数值 B. 字符串 C. 空白字符 D. 字符
4. 不是C++关键字的是( C )
A. mutable B. class C. Friend D. virtual
5. 通过( A )方法可以在现有类基础上定义新类。
A. 继承 B. 引用 C. 包含 D.封装
6. 成员函数亦可声明为静态的,但是它不能直接访问类的( D )数据成员 A. 私有 B. 静态 C. 常量 D. 非静态
7. 若类B的定义中私有数据成员i为常数据成员,则( D )
A. 数据成员i不能被一般的成员函数所访问
B. 数据成员i的初始化可以在构造函数的函数体中实现//不能再函数体中,只能通过参数初始化表
C. 数据成员i可以被常成员函数访问和赋值 D. 以上均不对
8. 在编译时,将所调用的函数代码嵌入到主调函数中,这种嵌入到主调函数中的函数不能称为( D )
A. 内置函数 B. 内联函数 C. 内嵌函数 D. 嵌套函数
9. 存储以下数据,占用存储字节最多的是( D )
A. NULL B. '0' C. \ D. 0.0
10. 面向对象的程序是( D )两者的组合
A. 算法和数据结构 B. 对象和函数 C. 函数和算法 D. 对象和消息
11. 如果调用带有默认参数的函数时缺少一个参数,则( C )参数就作为这一参数 A. 第1个 B. 中间1个 C. 最后一个 D. 系统随机选择
12. 假定A为一个类,则执行 A a, b[2], *p=&a, c(*p);语句后,程序将要结束时,共调用该类析构函数的次数应为( C )
A. 2 B. 3 C. 4 D. 5
13. 已有定义:char * p=\;则下面语句正确的是( D )
A. *p=\ B. p[0]=\ C. p[2]='C'; D. char c=p[1];
14. 已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明( B )
A. f1和f2都是静态函数 B. f1是静态函数,f2不是静态函数 C. f1不是静态函数,f2是静态函数 D. f1和f2都不是静态函数
15. 下列关于函数模板与类模板的描述中,不正确的是( D )
A. 函数模板的实例化是由编译程序在处理函数调用时自动完成 B. 类模板的实例化必须由程序员在程序中显式的指定 C. 函数模板与类模板均可以显式调用
D. 定义函数模板时可以使用多个类型参数,而类模板不可以
16. 对于语句 cout>>a;,下列描述中不正确的是( C )
A. “cout”是一个输出流对象 B. 该语句错误使用了运算符 C. “>>”称作插入运算符(提取) D. 该语句需要头文件iostream
17. 下面运算符中,不能被重载的运算符是( C )
A. <= B. - C. ?: D. []
18. 以下不属于面向对象的程序设计语言的是( D )
A. C# B. C++ C. Java D. C
19. 下列关于C++中运算符重载的描述中,错误的是( C )
A. 运算符重载是对已有的运算符赋予多重含义
B. 重载的运算符,其运算对象可以是自定义的数据类型
C. 编译系统对重载运算符的选择,遵循函数模板(重载)的选择原则 D. 运算符的重载实质上是函数的重载
20. 假定p所指对象的值为5,p+1所指对象的值为8,则执行“(*p)++;”语句后,p
所指对象的值为( A )
A. 6 B. 9 C. 5 D. 8
21. 运算符重载时不需要保持的性质是( B )
A. 操作数个数 B. 操作数类型 C. 优先级 D. 结合性
22. 已有定义:char *str=\;则下面语句正确的是( C )
A. str[0]=\ B. str[1]='b'; C. char c=str[0]; D. *str=\
23. 已知:int k=6;则下列语句中能正确表示引用的是( B )
A. int x=k; B. int &x=k; C. int &x=6; D. int &x=&k;
24. 下列虚基类的声明中,正确的是( A )
A. class B:virtual public A B. class virtual B:public A C. virtual class B:public A D. class B:public A virtual
25. 已有定义virtual int area( )=0;下面关于该函数的解释中正确的是( A ) A. 该函数是纯虚函数 B. 该函数返回值为0 C. 该函数通常在派生函数中声明 D. 该函数的入口地址为0
26. 作为类的成员函数重载一个运算符时,如果参数表为空,通常情况下,说明该运算符有( B )个操作数
A. 0 B. 1 C. 2 D. 3
二、填空题
27. 重载函数在 参数个数 或 参数类型 上不同,但函数名称相同。
28. 若要把变量s定义为短整型变量k的引用,则所使用的定义语为 short &s = k; 。 29. 已有定义const int a=5; 则要定义一个常指针指向该变量a的语句是: cons tint *p = &a
30. 常对象中的数据成员必须通过__常成员_函数才可以访问。 31. 对象将其大部分实现细节隐藏起来,这种机制称为 封装 。 32. C++中,专门用于定义重载运算符的关键字是 operator 。
33. 用于存贮当前被调用的成员函数所在对象的起始地址的指针是_this__。
34. 如果希望类的成员为该类所有对象所共享,可以使用关键字_public___来修饰。 35. 在C++中,由继承而产生的新类,它的对象对同一个消息会作出不同的响应,这种
特性被称为 多态性 。
36. 已有类A的定义,其中有成员函数int get_a(){return a;}则定义一个指针指向该函数
的写法为 int (*p)(); p = get_a; 。
37. 已有定义const int a=5; 则要定义一个常指针指向该变量a的语句是: cons tint *p = &a
38. class w{ static char a; char y[2]; int x;
double fun(int a){x=a; return 0;} };
则sizeof(w)的值为 8 。
39. 从系统实现角度看,C++中的动态多态性是通过 虚函数 来实现的。 40. 语句 cout< 41. 在C++中,用户管理文件的I/O 操作需要头文件 43. 在类的定义中,通常用 构造 函数为对象分配内存空间,并可对类的数据成员进 行初始化。 44. 在C++中,继承间接共同基类时只保留一份成员的方法是 虚基类 。 45. 现有如下定义:int x='B'+2;char y= x>='9'?'C': 'S'; 则y是 ' C '。 46. 假设类X的对象x是类Y的成员对象,则“Y Obj;”语句执行时,先调用类_X__ 的构造函数,再调用类_Y_的构造函数;而在程序结束析构时,先调用类__Y_的析构函数,再调用类_X__的析构函数。 47. 对象的概念中,有静态和动态两种特征,其中静态特征称为 属性 ,可由数据表 示,而动态特征称为行为,可由 函数 表示。 48. 继承关系可以是public、 protected 和private。 三、判断题 49. 常数据成员只能通过构造函数的初始化表初始化。 //正确 50. 类所占空间为数据成员和成员函数所占空间之和。 //错误,成员函数不在之内 51. char *str=\;执行str[0]='s';语句后,字符串变为\。 //错误,不可修改 52. 类的析构函数在删除对象时调用,并可以重载。 //错误,析构函数不可重载 53. 构造函数不能声明为虚函数,而析构函数可以声明为虚函数。 //正确 54. 用来存放对象地址的指针变量,可称为指向对象的指针。 //错误,是存放对象起始地址 55. 字符串\的长度是3,因此占用了3个字节的内存空间。 //错误,长度为3,有结束符’\\0’ 56. 多重继承出现的二义性可以用作用域限定的方法消除。 //正确 57. <<运算符可以被重载,且可以提升优先级。 //错误,运算符重载要保持其优先级 58. 无论何种继承形式,派生类均不能直接访问基类的私有成员。 //正确 59. C++中,定义类的关键字是public。 //错误,class 60. 抽象类定义的目的是用它作为基类去建立派生类。 //正确 61. 常对象中的数据成员就是常数据成员。 //错误,不要误认为常对象中的成员函数都是常成员函数,常对象只保证其所有数据成员的值不被修改。 62. 对象基本特点有耦合性、多态性、继承性和封装性。 //错误,没有耦合性 63. 构造函数有返回值,而析构函数没有返回值。 //错误,都无返回值 64. 类定义的公用数据成员x,在类外可以直接赋值,如x=5; //错误,必须要有作用域限定 65. 若想输出时,数据靠右,并指定字段宽度为6,可用控制符setw(6)。 //正确,头文件为iomanip 66. 不出现类名,也可以直接定义对象。 //正确 四、简答题 67. C++语言中,构造一个派生类需要做哪些工作? 1) 从基类接收成员 2) 调整从基类接收的成员 3) 在声明派生类时增加的成员 68. 什么是纯虚函数,什么情况下用到纯虚函数? 纯虚函数是在声明虚函数时被“初始化”为0的函数。 在基类中声名某一成员函数,并不是基类本身的要求,而是考虑到派生类的需要,在基类中预留了一个函数名,具体功能留给派生类根据需要去定义时,这时就用到纯虚函数 69. 什么叫虚基类,它的主要作用是什么? 当在多条继承路径上有一个公共的基类,在这些路径中的某几条汇合处,这个公共的基类就会产生多个实例(或多个副本),若只想保存这个基类的一个实例,可以将这个公共基类说明为虚基类。 主要作用: 当基类通过多条派生路径被一个派生类继承时,该派生类只继承该基类一次,也就是说,基类成员只保留一次。 70. 如果重载运算符要满足交换律,有哪些方法实现?
正在阅读:
《面向对象程序设计》复习(2)10-20
年报原始登记表03-08
读10-04
工程项目设计概况 - 图文04-04
当前我国土地管理中存在的问题与对策分析10-03
GBZ19579—2004卓越绩效评价准则实施指南06-03
《编译原理》期末考试复习题10-05
中国周边安全形势与对策04-11
最新统计学原理计算分析题教学题目答案 11.11 - 图文03-14
我的中国梦口号12-12
- 二年级下册音乐测试题
- 浙江财经大学中微题库答案
- 小升初常考古诗填空练习(80首古诗 含答案)
- 全国导基 第十章 中国旅游诗词、楹联、游记鉴赏 练习题 及答案
- 华师大版七年级科学(生物)下册5.1《种群和群落》导学案(含答
- 人教版七年级语文上册练习:《我的老师》课时训练(附答案)-精
- NOIP2015浙江省复赛普及组成绩
- 长虹公司的应收账款管理
- 快递行业同业竞争对手调查报告
- “十三五”重点项目-牦牛骨髓粉项目节能评估报告(节能专篇)
- 钢结构生产制造部各岗位职责及任职要求
- 对H企业应收账款管理与核算现状的调查报告
- 中国化学会第24届全国高中学生化学竞赛(省级赛区)试题、标准答
- 本科成本会计
- “众包”创新模式在我国潜在的风险的探讨
- 语文基础全套复习资料(有他足够了
- 中外合作出版合同(1)
- STM32-GPIO及EXTI初始化详解
- 2018年中国控制技术市场现状调研与发展前景分析报告目录
- 大学物理试题第四章 冲量和动量
- 程序设计
- 复习
- 面向
- 对象
- QAD仓库操作流程要点 - 图文
- 小学数学五年级《长方体和正方体》练习题
- 上海版新牛津英语5B教案M1U3
- 潭州音乐学院音乐制作编曲软件选择 - 图文
- 体育舞蹈概述
- 新农村建设问题的调查报告
- 2014年湛江二模语文试题及答案
- 汝阳县柏树乡农特产调查
- 文言趣读入门 第一单元
- 中国镀锌C型钢行业运营态势及未来五年产业投资评估报告
- 2015-2016学年高二生物人教版必修3课时作业第2章第9课时 免疫调节
- 掩耳盗铃教案
- 债券久期、免疫方法与凸性
- 《管理会计(第二版)》(潘飞)习题答案
- 东营市驾考中心C1科目二心得 - 图文
- 广东省深圳市2015届高三上学期第一次五校联考文综 - 图文
- 河南省中小学教师职工作政策解读
- 智慧厕所整体解决方案 - 图文
- 足球比赛策划书(修改版)
- java实验报告 - 计算器 - 记事本 - 井字游戏