




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计期末复习题一、单项选题1.设x和y均为bool量,则x & y为真的条件是 。a. 它们均为真b. 其中一个为真c. 它们均为假d. 其中一个为假2. 在下面循环语句中循环体执行的次数为( )。 int i0,s0; whiles20 i+; s+i; a. 4 b. 5c. 6 d. 73. 假定p是具有int*类型的指针变量,则给p赋值的正确语句为( )。 a. pnew int;b. pnew int*; c. pnew int*; d. pnew int10;4. 以下关于函数模板叙述正确的是( )。 a. 函数模板也是一个具体类型的函数 b. 函数模板的类型参数与函数的参数是同一个概念 c. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 d. 用函数模板定义的函数没有类型5. 在多文件结构的程序中,通常把类的声明单独存放于( )中。 a. 主文件b. 实现文件c. 库文件d. 头文件6. 假定有定义“int b10; int *pb;”,则不正确的赋值语句为( )。 a. pbb; b. pb&b0; c. pbnew int; d. pbb5; 7. 假定一个类的构造函数为“aint aa1, int bb0 aaa; bbb;”,则执行“a x0;”语句后,x.a和x.b的值分别为 。a. 0和0 b. 0和1 c. 1和0 d. 1和18. 假定aa为一个类,a为该类私有的数据成员,getvalue为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( )。 a. x.a b. x.ac. x-getvalued. x.getvalue9. c+的继承性允许派生类继承基类的()。 a. 部分特性,并允许增加新的特性或重定义基类的特性 b. 部分特性,但不允许增加新的特性或重定义基类的特性 c. 所有特性,并允许增加新的特性或重定义基类的特性 d. 所有特性,但不允许增加新的特性或重定义基类的特性10. 假定ab为一个类,则执行“ab x;”语句时将自动调用该类的 。 a. 带参构造函数b. 无参构造函数 c. 拷贝构造函数d. 赋值重载函数11. 定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。a. int *pnew int30; b. int *pnew int30; c. int *pnew 30; d. *pnew int30; 12. 假定有“struct bookchar title40; float price; book *booknew book;”,则正确的语句为()。a. strcpybook-title,”wang tao”; b. strcpybook.title,”wang tao”; c. strcpy*book.title,”wang tao”; d. strcpy*book-title,”wang tao”; 13. 假定有定义“int b10; int *pb;”,则不正确的赋值语句为( )。a. pbb; b. pb&b0; c. pbnew int; d. pbb5; 14. 假定指针变量p定义为“int *pnew int100;”,要释放p所指向的动态内存,应使用语句( )。 a. delete p; b. delete *p; c. delete &p; d. delete p; 15. 软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。a. 可维护性 b. 可复用性 c. 兼容性 d. 正确性 16. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。a. inb. inline c. inlined. inliner 17. 在关键字public后面定义的成员为类的()成员。a. 私有b. 公用c. 保护d. 任何 18. 假定aa为一个类,a为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a的格式为()。a. x.ab. x.ac. x-ad. x-a 19. 假定aa为一个类,int a为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。a. int aa:ab. int aa:a c. aa:a d. aa:int a 20. 在多文件结构的程序中,通常把类的定义单独存放于()中。a. 主文件b. 实现文件c. 库文件d. 头文件 二、填空题1. 假定x5,y6,则执行表达式y+x-计算后,x和y的值分别为_和_。2. 执行char *pnew chara操作后,p所指向的数据对象的值为_。3. 变量v定义为“double v23.4;”,要使指针pv指向v,则定义pv的语句为_。4. 若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上_和两个冒号分隔符。5. 假定用户只为类ab定义了一个构造函数abint aa, int bb0 aaa; bbb;,则定义该类的对象时,其实参表中至少带有_个实参。 6.假定用户没有给一个名为ab的类定义析构函数,则系统为其定义的析构函数为_。7. 一个二维字符数组a1020能够存储_个字符串,每个字符串的长度至多为_。8. 重载一个函数的条件是:该函数必须在参数的个数或参数对应的_上与其它同名函数不相同。9. 一个指针类型的对象占用内存的_个字节的存储空间。 10. 假定一个数据对象为int*类型,则指向该对象的指针类型为_。 11.假定p所指对象的值为25,p+1所指对象的值为42,则*+p的值为_。 12.假定p所指对象的值为25,p+1所指对象的值为42,则执行*p+或*p+运算后,p所指对象的值为_。 13. 一个数组的数组名实际上是指向该数组_元素的指针,并且在任何时候都不允许_它。 14. 重载一个函数的条件是:该函数必须在参数的_或参数对应的_上与其它同名函数不相同。 15. 指针变量pv和pc定义为“void *pv ”hello, word!”; char *pc;”,要将pv值赋给pc,则正确的赋值语句是pc_pv。 16. 若p指向x,则_与x的表示是等价的。 17. 假定p为指向二维数组int d46的指针,则p的类型为_。 18. 若y是x的引用,则对y的操作就是对_的操作。 19. 执行char *pnew chara操作后,p所指向的数据对象的值为_。 20. 执行_操作将释放由p所指向的动态分配的数据空间。三、程序填充题,根据题意在横线上填写合适的内容。2、已知一维数组类array的定义如下,array与普通一维数组区别是:其重载的运算符 要对下标是否越界进行检查。class arrayint *v; /指向存放数组数据的空间int s; /数组大小public:arrayint a, int n; arraydelete v; int size return s;int& operatorint n; ;_1_ operatorint n / 的运算符成员函数定义ifn0 | _2_ cerr下标越界!; exit1; return _3_;12 33.类a的定义 class a char *a; public: a anull; achar *aa a_(1)_ charstrlenaa+1; strcpya,aa; _(2)_ /定义析构函数,删除a所指向的动态存储空间;1 2 4. 已知一个类的定义如下:#includeclass aa int a10;int n;public:void setaint aa, int nn; /用数组aa初始化数据成员a, /用nn初始化数据成员nint a; /从数组a中前n个元素中查找最大值 void sorta; /采用选择排序的方法对数组a中前n个元素 /进行从小到大排序 void inserta;/采用插入排序的方法对数组a中前n个元素进行从小到大排序void printa; /依次输出数组a中的前n个元素; 该类中a函数的实现如下,请在标号位置补充适当的内容。int _1_ int xa0;forint i1; in; i+ ifaix _2_;_3_;1 2 3四、理解问答题,写出程序运行结果或程序(或函数)所能实现的功能。 1. #includevoid main int i,s0; fori2;i30;i+2 s+i*i; coutssendl; 函数功能: 2. #include double f1int n double sign1,s1;forint i2;in; i+ s+sign/i*i; sign*-1;return s; void main int a;cina;coutf1aendl; 函数功能:3.#include class a int a,b; public:a ab0;aint aa, int bb aaa; bbb;int sum return a+b;int* mult int *pnew inta*b; return p; ; void main a x4,5, *p; pnew a2,3;coutx.sum *x.multendl;coutp-sum *p-multendl; 运行结果:4. #includevoid main int a1076,83,54,62,40,75,90,92,77,84; int b460,70,90,101; int c40; forint i0;i10;i+ int j0;whileaibj j+;cj+; fori0;i4;i+ coutci ; coutendl;运行结果:五、编程题 根据下面类中拷贝构造函数的原型写出它的类外定义。 class array int *a;/指向动态分配的整型数组空间int n; /记录数组长度public: arrayint aa, int nn; /构造函数,利用aa数组长度nn初始化n, /利用aa数组初始化a所指向的数组空间 arrayarray& aa;/拷贝构造函数 ;参考答案一、单选题 1. a 2. c3. b4. c 5. d 6. d7. a8. d 9. c 10. b11. a 12. a13. d14. a15. b16. b17. b 18. b19. a 20. d二、填空题1. 4112. a3. double *pv&v; 4. 类名 5. 16. ab 7.10 19 8类型 9. 410. int*11. 12 32. 4213. 第一个、 修改 14. 个数或数目 类型15. char *16. *p 17. int*6 18. x 19. a 20. delete p三、程序填充题,根据题意在横线上填写合适的内容。 1. 1 itemp 2 break 2. 1 int&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开创未来发言稿
- 企业忠诚度培训大纲
- 时间位移的课件
- 二零二五年度夫妻共同财产清算与分配专项合同
- 2025版废旧金属买卖与环保设备租赁合同样本
- 二零二五年度专业房地产代理服务合同规范
- 2025版杭州商铺租赁合同-包含装修补贴条款
- 二零二五版特色小吃店独家代理购销合作协议范本
- 二零二五年度房地产信托担保合同
- 2025版房屋出租合同免责条款及租后服务
- 糖尿病运动疗法讲座医学课件
- 《体育科研方法》课件
- 2023年汽车装调工考试真题模拟汇编(共772题)
- 员工自我评价表
- 第2章 工业机器人的运动学基础《工业机器人》教学课件
- 多发性硬化症诊治护理
- 意识形态安全面临的挑战及对策
- 直播电商行业:直播电商供应链研究报告
- 《语文核心素养三年规划》课件
- 涉诈风险账户审查表
- 广东技工学校申报设立审批表
评论
0/150
提交评论