10高等教育程序设计

上传人:枫** 文档编号:490025713 上传时间:2023-07-11 格式:DOC 页数:10 大小:98.50KB
返回 下载 相关 举报
10高等教育程序设计_第1页
第1页 / 共10页
10高等教育程序设计_第2页
第2页 / 共10页
10高等教育程序设计_第3页
第3页 / 共10页
10高等教育程序设计_第4页
第4页 / 共10页
10高等教育程序设计_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《10高等教育程序设计》由会员分享,可在线阅读,更多相关《10高等教育程序设计(10页珍藏版)》请在金锄头文库上搜索。

1、文档来源为 :从网络收集整理 .word 版本可编辑 . 欢迎下载支持全国 2007年 10月高等教育自学考试面向对象程序设计试题课程代码: 02328一、单项选择题 (本大题共 10 小题,每小题 2 分,共 20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括 号内。错选、多选或未选均无分。1.以下说法中正确的是 ( )A.C+ 程序总是从第一个定义的函数开始执行B. C+程序总是从main函数开始执行C. C+函数必须有返回值,否则不能使用函数D. C+程序中有调用关系的所有函数必须放在同一个程序文件中2. 以下关于函数模板叙述正确的是()A. 函数模板

2、也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型3. 在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是()A. 作为友元函数重载的1 兀运算符B.作为成员函数重载的1 兀运算符C.作为友兀函数重载的2 兀运算符D. 作为成员函数重载的2 兀运算符4.构造函数不具备的特征是()A. 构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D. 构造函数必须指定类型说明5在C+中,封装是借助什么达到的 ()A.结构B.数组C.类D屈数6.在哪种情况下适宜

3、采用A. 函数体含有循环语句C函数代码少、频繁调用inline 定义内联函数? ()B.函数体含有递归语句D函数代码多、不常调用7. 在关键字 public 后面定义的成员为类的 ()A.私有成员B.公用成员C.保护成员D.任何成员8. 以下哪个基类中的成员函数表示纯虚函数? ()A.virtual void tt()=0C.virtual void tt(int)B.void tt(int) = 0D.virtual void tt(int)9假定AA是一个类,“AA* abc()const; ”是该类中一个成员函数的原型,若该函数返回 值,当用x.abc()调用该成员函数后,x的值()th

4、isA. 已经被改变C. 不变B可能被改变D.受到函数调用的影响10.C+ 对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是 (A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C .规定函数说明符必须用原型D.引进了类和对象的概念二、填空题 (本大题共 10 小题,每小题 2分,共 20 分) 请在每小题的空格中填上正确答案。错填、不填均无分。11. 如果一个派生类只有一个唯一的基类,则这样的继承关系称为 。12. C+ 支持两种多态性: 时的多态性和运行时的多态性。13. 若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以的方式直接继承它。14.

5、 所有模板都以 template 关键字和一个 表开头。15. 若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的语句。16. 类型转换函数没有返回值类型,而且参数表为 。17. C+ 提供的预处理命令有嵌入指令,条件编译指令和 。18. 对象将其大部分实现细节隐藏起来,这种机制称为 。19. 定义类动态对象数组时,其元素只能靠自动调用该类的 来进行初始化。20 .在函数体之前加 关键字可以防止覆盖函数改变数据成员的值。三、改错题(本大题共2小题,每小题 6 分,共 12分)21. 下面是分数类fract的定义及测试主程序,在类定义及其友元函数定义中1到6行中有三处错误,更正错

6、误后程序应显示 41/28,请指出错误所在行的行号并给出改正意见。class fractint den;/ 分子int num;/ 分母public/1行fract(int d=0,int n=1):den(d),num(n)/2行friend fract &operator+=(fract,fract&);/3行void show() coutden / num;/4行;/5行friend fract &operator+=(fract f1,fract f 2)/6行/7行f1.den=f1.den*f 2.num+f1.num*f 2.den;/8行f1.num*=f 2.num;/9行

7、return f1;/10 行void main()fract fr(3,4);fr+=fract(5,7);fr.show();错误行的行号为 、和。分别改正为 、和。22. 下面程序段第 13-17 行中存在着三条语句错误,请指出错误语句的行号并说明原因。 class A /1 行int a;/2行public:/3行A(int aa=0):a(aa)/4行;/5行class B /6 行int a,b;/7 行const int c;/8 行A d;/9 行public:/10 行B():c(0) a=b=0;/11 行B(int aa, int bb):d(aa+bb) /12 行a=

8、aa; b=bb; c=aa-bb;/13 行/14 行/15 行B a,b(1,2);/16 行B x=a,y(b),z(1,2,3);/17 行错误行的行号为 、 和 。错误原因分别为 、 和 。四、程序填空题(本大题共 3 小题,每小题 6 分,共 18分)请按提示要求完成以下程序段的填空。23. 在下面一段类定义中,Derived 类是由直接基类 Base 1 和 Base 2 所派生的, Derived 类包含有两个间接基类BaseBase,在初始化函数In it中,需要把x1和x2的值分别赋给属于基类Basel的x成员和属于基类Base2的x成员。class BaseBase pr

9、otected:int x;public:BaseBase() x = 1;class Base1: public BaseBase public:Base1();class Base2: public BaseBase public:Base2();class Derived: (1)public:Derived() void Init(int x1, int x2) (2); (3);void output() coutBase1:xBase2:xendl;(1) (2) (3)24. #include#includeclass A int *a; int n; int MaxLen;pu

10、blic:A(): a(0), n(0), MaxLen(0) A(int *aa, int nn, int MM) n=nn;MaxLen=MM; if(nMaxLen) exit(1); a=new int MaxLen ;(4); /以 i 为循环变量把 aa 数组中每个元素值/传送给 a 数组的对应元素中A();int GetValue(int i) return a i ; / 函数体返回 a i的值;(5)/ 析构函数的类外定义void main()int b 10 =1,2,3,4,5,6,7,8,9,10;A r(b,10,10);int i,s=0;(6); / 以 i 为循

11、环变量,把 r 对象的 a 数据成员中的 /每个元素值依次累加到s 中couts=sendl;(4) (5) (6)(2)下标25. 下面是一维数组类ARRAY 的定义, ARRAY 与普通一维数组区别是:(1)用()而不是进行下标访问,从 1 而不是从 0 开始, (3)要对下标是否越界进行检查。class ARRAYint *v; / 指向存放数组数据的空间int s;数组大小public:ARRAY(int a , int n); ARRAY()delete v;int size() return s;int& operator()(int n);(7) operator()(int n

12、) / () 的运算符函数定义if(8) cerr 下标越界! ; exit(1);/exit 函数的功能是退出程序运行return (9);(7) (8) (9)五、程序分析题(本大题共 6 小题,每小题 5 分,共 30分)阅读以下程序,写出其运行结果。26. #includeclass testprivate:static int val;int a;public:static int func();static void sfunc(test &r);int test:val=10;int test:func()val-;return val;void test:sfunc(test

13、&r)r.a=15;cout result3= r.a;void main()cout resultl= test:func()endl; test a;cout result2= A.func()endl; test:sfunc(a);27. # includeclass positionpublic:int x,y;void init(int initx,int inity);int getxvalue();int getyalue();void position:init (int initx,int inity)x=initx;y=inity;int position:getxvalue()return x;int position:getyalue()return y;void printout(position & rl)coutrl. getxvalue()

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号