全国2007年1月高等教育自学考试面向对象程序设计试题

合集下载

《面向对象程序设计》课程知识 复习 学习材料 试题与参考答案

《面向对象程序设计》课程知识 复习 学习材料 试题与参考答案

《面向对象程度设计》课程知识复习学习材料试题与参考答案一、单选题1.下列(C)的调用方式是引用调用。

A.形参和实参都是变量B.形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值2.假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的(B)。

A.有参构造函数B.无参构造函数C.复制构造函数D.赋值构造函数3.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a 的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。

A.x.aB.x.a()C.x->GetValue()D.x.GetValue()4.C++编译系统确定调用是具体对象的过程称为关联。

C++有(B)关联。

A.1种B.2种C.3种D.4种5.下面有关重载函数的说法中正确的是(C)。

A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同6.如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为(C)。

A.a.operator==(b)B.b.operator==(a)C.operator==(a,b)D.operator==(b,a)7.下列对继承关系的描述中,(D)是正确的。

A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;C.在私有继承中,基类中只有公有成员对派生类是可见的;D.在私有继承中,基类中的保护成员对派生类的对象是可见的;8.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(A)。

A.int *p=new int[30];B.int *p=new int(30);C.int *p=new [30];D.*p=new int[30];9.在一个类中可以对一个运算符进行(D)重载。

成人教育 《面向对象程序设计》期末考试复习题及参考答案

成人教育 《面向对象程序设计》期末考试复习题及参考答案

面向对象程序设计复习题二一、填空1.程序的三种常见结构是、、,其中结构是程序的默认结构。

2.同名方法给出不同的实现,并通过参数类型或个数进行区分,称为。

3.和“继承”匹配的概念是。

4.由类构建对象的过程称为。

5.抽象类是含有的类。

6.实现软件复用有两种方式,分别为、、。

7.有定义const int *p,p称为。

8.通过继承产生的类称为。

9.virtual关键字在C++中有两个用处,分贝是,和。

10.方法重载和实现了多态性。

11.请给出C++外的另外一种支持面向对象设计语言。

12.类的三个要素是、、。

13.对象释放前执行的函数是。

二、名词解释1、构造函数2、对象3、运算符重载4、析构函数5. 面向对象6. 继承三、简答1.比较类和结构体?2.重载的意义?3.抽象类的作用和意义?4.组合与继承的区别?四、辩析1.任何父类对象都可以被子类对象替代。

2.public修饰符号破坏了数据的开放性。

3.private继承方式不能产生子类。

4.不能实例化的类一定是抽象类。

五、综合回答1.简述多态的实现机制。

2.谈谈多态的意义。

3.面向对象程序设计思想的优点和缺点。

面向对象程序设计复习题二答案一、填空(1)顺序(2)选择(3)循环(4)顺序(5)函数重载(6)抽象(7)实例化(8)纯虚函数(9)继承(10) 组合(9)和(10)不区分顺序(11)常量指针(12)派生类(13)虚函数(14)虚拟继承(13)和(14)不区分顺序(15)覆盖(16)Java或者C#(17)类的标识(18)类的状态(19)类的操作(17)(18)(19)不区分顺序(20)析构函数二、名词解释1、当类实例化时自动调用的成员函数,负责实现对象的初始化2、按照数据类型分配的内存空间,可以实现方法的调用3、将系统定义的运算符操作对象的类型扩展的过程,一般针对自定义类型4、对象空间释放之前自动调用的函数5、是程序设计思想,相对面向过程而言更加强调封装性6、两个类之间的一种关系,其中一个类的某个成员类型是另一个类三、简答1、C++中类和结构体具有同等的功能,唯一区别是类缺省成员属性是private,而结构体缺省为public2、重载的意义在于丰富了动作的多样性,但是并不加重程序员的负担。

C++面向对象程序设计考试试卷(详细讲解)(1)

C++面向对象程序设计考试试卷(详细讲解)(1)

C++面向对象程序设计考试试卷(详细讲解)(1)C++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20题,每题1分,共20分)1、下列关于C++标识符的命名不合法的是 C 与C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:()Dint x=2; char w='a'; float y=23.45f; double z=45.6712;则表达式w*x+y-z的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A. 参数的个数可能不同B. 参数的类型可能不同C. 参数的顺序可能不同D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用 D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA. 定义构造函数必须指出类型(构造函数特点是无返回类型)B. 构造函数的名字与该类的类名相同C. 一个类中可定义0至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D. 构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< p="">}int x=20,y=5;int add(int a,int b){int s=a+b;return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA. 常成员包含常数据成员和常成员函数两种B. 常数据成员必须是公有的C. 常数据成员要使用构造函数成员初始化列表进行初始化D. 常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA. 友元函数不是成员函数B. 友元函数只能访问类中私有成员C. 友元函数破坏隐藏性,尽量少用D. 友元函数说明在类体内,使用关键字friend14、如果有int x,*p; float y,*q;则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA. 数组的长度B. 数组第一个元素的值C. 数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用new运算符分配的内存空间的长度必需是常量B.delete运算符可以释放动态的存储空间和静态的存储空间C.由new分配的内存空间是不连续的D.delete运算符只能释放由new分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtual D.public20、在C++中串流类是在头文件strstrea.h中定义的,下列不属于串流类的是) C A.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9题16空,每空1分,共16分)1、函数重载时,编译系统会根据__形参的类型__ 或__形参的个数__ 来区分。

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4

《面向对象程序设计JA V A语言程序设计》期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。

1.下列语句序列执行后,k 的值是( B )。

int m=3, n=6, k=0;while( (m++) < ( -- n) ) ++k;A) 0 B) 1 C) 2 D) 32.设i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。

A) i = i + 2 B) a[0] = 7;C) i++ - --j; D) a(0) = 66;3.Java语言的类间的继承关系是( B )。

A) 多重的B) 单重的C) 线程的D) 不能继承4.设有定义int i = 6 ;,则执行以下语句后,i 的值为( C )。

i += i - 1;A) 10 B) 121 C) 11 D) 1005.下列选项中,用于在定义子类时声明父类名的关键字是( C )。

A)interface B) package C) extends D) class6.若已定义byte[ ] x= {11,22,33,-66} ;其中0≤k≤3,则对x数组元素错误的引用是( C )。

A) x[5-3] B) x[k] C) x[k+5] D) x[0]7.下列语句序列执行后,ch1 的值是( B )。

char ch1='A',ch2='W';if(ch1 + 2 < ch2 ) ++ch1;A) ‘A' B) ‘B' C) ‘C' D) B8.下列语句序列执行后,i 的值是( D )。

int i=8, j=16;if( i-1 > j ) i--; else j--;A) 15 B) 16 C) 7 D) 89.下列语句序列执行后,k 的值是( C )。

面向对象程序的设计复习题与参考答案

面向对象程序的设计复习题与参考答案

⾯向对象程序的设计复习题与参考答案⽹络教育课程考试复习题及参考答案⾯向对象程序设计⼀、填空题:1.创建类的对象时,使⽤运算符___________给对象分配存空间。

2.Java通过来区分重载函数。

3.在⼦类中使⽤保留字_ _可调⽤被⼦类覆盖的⽗类中的⽅法。

4.使⽤保留字可以从⼀个构造⽅法中调⽤同⼀个类的另⼀个构造⽅法。

5.抽象类⽤修饰符定义。

6.类的数据成员的访问权限修饰符⼀般为7.访问权限修饰符按照访问权限的⼤⼩从⼤到⼩分别为、、、。

8.定义类的构造⽅法不能有,其名称与名相同。

9.抽象⽅法是的特征是。

10.Java中的所有异常都是从继承来的。

11.对象引⽤中存储的容是。

12.下列程序段执⾏后,String str1 = new String("Java");String str2 = new String("Java");if (str1.equals(str2)) {System.out.println("They are equal");} else {System.out.println("They are not equal");}输出结果为:。

13.下⾯循环执⾏后的sun值为int count =0, sum = 0;while ( count <10 ) {sum += count;count ++;}14.Java语⾔中关键字_ _表⽰双精度类型。

15.保留字_ _⽤于导⼊包中的类到程序中,供程序中使⽤。

16.Java语⾔中继承是⽤保留字表⽰。

17.⾯向对象程序设计中,类是指。

18.对象包含和。

19.若有类定义:class B extends A{…}则类B是类A的_ 。

20.Java语⾔中, 通常把可能发⽣异常的⽅法调⽤语句放到try块中,并⽤紧跟其后的_ 块来捕获和处理异常。

21.多态是指。

全国2007年1月高等教育自学考试

全国2007年1月高等教育自学考试

全国2007年1月高等教育自学考试计算机网络管理试题课程代码:02379一、单项选择题(本大题共20小题,每小题2分,共40分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.监视器向代理发出请求,询问它所需要的信息值,代理响应监视器的请求,从它所保存的管理信息库中取出请求的值,返回给监视器。

这种通信机制叫做()A.轮询B.事件报告C.请求D.响应2.网络系统、元素或应用对用户可利用的时间的百分比称为()A.响应时间B.可用性C.吞吐率D.正确性3.在计算机网络中,信息资源只能由被授予权限的用户修改。

这种安全需求称为()A.保密性 B.数据完整性C.可用性D.一致性4.线路的数据传输率为2400b/s,如果输入一条含200个字符的命令,则输入命令的延迟时间是()A.0.333s B.41.7msC.0.667sD.83.4ms5.“2006年8月1日,当地时间21点57分43.5秒”用GeneralizedTime类型可表示为()A.060801215743.5B.060801215743.5ZC.20060801215743.5D.20060801215743.5Z6.TCP/IP协议栈中网络访问层对应OSI/RM中的()A.物理层 B.数据链路层C.物理层和数据链路层D.网络层7.MIB-2的结构中,Internet下面包括由IAB批准的所有管理对象的结点是()A.directory(1) B.mgmt(2)C.experimental(3) D.private(4)8.由代理发给管理站,不需要...应答的报文是()A.GetRequest报文 B.GetNextRequest报文C.SetRequest报文D.Trap报文9.RFC1155定义的未知数据类型是()A.Counter B.TimeTicksC.Gauge D.Opaque10.SNMPv1所提供的安全措施是()A.团体名认证 B.提供数据加密功能C.基于用户的安全模型D.用时间戳对报文排序11.Windows 2003 Server的活动目录所命名方式是()A.文件命名B.数字命名C.用户自定义D.DNS12.在SNMPv2中,包含的对象与管理对象的控制有关的组是()A.系统组B.MIB对象组C.接口组D.SNMP组13.为以最小的交换次数检索大量的管理信息,或者说管理站要求尽可能大的响应报文,SNMPv2增加的PDU是()A.GetRequestPDU B.InformRequestPDUC.GetBulkRequestPDU D.GetNextRequestPDU14.在TCP网络中,用来确定通信目标的联通性及传输延时的管理工具是()A.ping B.routeC.netstat D.winipcfg15.实现捕获组时,RMON MIB必须实现的是()A.事件组B.过滤组C.历史组D.主机组16.为了提高效率,希望监视器每次只返回那些上次查询以来改变了的值,RMON2在MIB的定义中,使用()A.外部对象索引 B.时间过滤器索引C.协议目录表D.监视器的标准配置法17.在Windows Server 2003环境中,仅用于分发电子邮件且没有启用安全性的组类型是()A.安全组B.全局组C.通信组D.本地组18.下面属于端系统之间协议的是()A.TCPB.IPC.ARPD.PPP19.关于RMON的增量警报方式,如果上升门限是20,按双重采样规则,每5秒观察一次,有:时间(秒)0 5 10 15 20观察的值0 12 20 30 33则产生报警事件的时间是()A.5B.10C.15D.2020.在SNMPc中,用于那些不支持SNMP,但是可以通过Ping探测是否响应的设备的访问模式是()A.无 B.ICMPC.SNMPv1D.SNMPv2c二、填空题(本大题共10小题,每小题1分,共10分)请在每小题的空格中填上正确答案。

自考软件工程试题及答案

自考软件工程试题及答案

全国2007年1月自学考试软件工程试题(含答案)课程代码:02333一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

l.以下哪一项不.是软件产品所具有的特性( C )A.软件是逻辑产品B.软件产品不会用坏,不存在磨损、消耗问题C.随着技术的提高,软件开发的费用不断降低D.软件产品的成本主要体现在软件的开发与研制上2.“确定软件系统必须做什么”是哪个阶段的任务( B )A.可行性分析和项目开发计划B.需求分析C.概要设计D.详细设计3.以下哪一项不.是软件测试时需要的信息( B )A.软件配置B.软件结构C.测试工具D.测试配置4.结构化分析方法的分析策略是( B )A.自底向上的抽象B.自顶向下的分解C.用DFD建模D.用DD描述数据需求5.一组语句在程序中多处出现,为了节省存储,将这些语句组成一个新的模块,该模块的内聚性为( C )A.功能内聚B.顺序内聚C.偶然内聚D.逻辑内聚6.系统流程图是描绘以下哪一项的工具( C )A.软件结构B.逻辑系统C.物理系统D.软件功能7.数据库的设计一般要进行三个方面的设计:概念设计、逻辑设计和物理设计,其中逻辑设计对应于系统开发的什么部分( C )A.可行性分析B.需求分析C.概要设计D.详细设计8.以下哪种语言可用于描述模块算法设计和处理细节( B )A.UML语言B.过程设计语言C.FORTRAN语言D.Pascal语言9.软件维护是软件生命周期中的固有阶段,一般认为,以下哪种软件维护在整个维护活动中所占的比例最小( C )P198A.校正性维护B.适应性维护C.预防性维护D.完善性维护10.软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试( D )A.结构合理性B.软件外部功能C.程序正确性D.程序内部逻辑11.使用Jackson方法可以得到( D )A.程序流程图B.具体的语言程序C.模块结构图及模块的功能说明书D.分层数据流图12.以下哪种测试的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合( B )A.集成测试B.确认测试C.单元测试D.系统测试l3.与编程风格有关的因素不.包括( B )A.源程序文档化B.语句构造C.输入输出D.模块间耦合性14.对于构造原型的建议,下面说法错误..的是( D )A. 暂不考虑速度、空间等性能效率方面的要求。

面向对象程序设计模拟试题

面向对象程序设计模拟试题

计算机技术与软件水平考试面对对象程序设计试题(6)一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

每小题2 分,共40 分)1.C++ 对C 语言作了许多改进,即从面对过程变成为面对对象的主要缘由是( )A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必需用原型D. 引进了类和对象的概念2. 下列符号不能组成标识符的是( )A. 连接符B. 下划线C. 大小写字母D. 数字字符3. 类型修饰符unsigned 不能修饰( )A. charB. intC. long intD. float4. 在int a=3,int *p=&a ;中,*p 的值是( )A. 变量a 的地址值B. 无意义C. 变量p 的地址值D.35. 下列关于指针的操作中,错误的是( )A. 两个同类型的指针可以进行比较运算B. 可以用一个空指针赋给某个指针C. 一个指针可以加上两个整数之差D. 两个同类型的指针可以相加6. 重载函数在调用时选择的依据中,错误的是( )A. 函数的参数B. 参数的类型C. 函数的名字D. 函数的类型7. 一个函数功能不太困难,但要求被频繁调用,选用( )A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数8. 下列不是描述类的成员函数的是( )A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数9. 构造函数不具备的特征的是( )A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必需指定类型说明10. 通常,拷贝构造函数的参数是( )A. 某个对象名B. 某个对象的成员名C. 某个对象的引用名D. 某个对象的指针名11. 继承机制的作用是( )A. 信息隐藏B. 数据封装C. 定义新类D. 数据抽象12. 类的析构函数的作用是( )A. 一般成员函数B. 类的初始化C. 对象的初始化D. 删除对象创建的全部对象13. 类的析构函数是在( ) 调用的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全国2007年1月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.一个函数功能不太复杂,但要求被频繁调用,选用()A.内联函数B.重载函数C.递归函数D.嵌套函数2.C++的继承性允许派生类继承基类的()A.部分特性,并允许增加新的特性或重定义基类的特性B.部分特性,但不允许增加新的特性或重定义基类的特性C.所有特性,并允许增加新的特性或重定义基类的特性D.所有特性,但不允许增加新的特性或重定义基类的特性3.在C++中,封装是借助什么达到的?()A.结构B.类C.数组D.函数4.建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为()A.自己所属类、对象成员所属类、基类的构造函数B.对象成员所属类、基类、自己所属类的构造函数C.基类、对象成员所属类、自己所属类的构造函数D.基类、自己所属类、对象成员所属类的构造函数5.类的析构函数是对一个对象进行以下哪种操作时自动调用的?()A.建立B.撤消C.赋值D.引用6.下列不是..描述类的成员函数的是()A.构造函数B.析构函数C.友元函数D.拷贝构造函数7.所有在函数中定义的变量,连同形式参数,都属于()A.全局变量B.局部变量C.静态变量D.寄存器变量8.假定AB为一个类,则执行AB x;语句时将自动调用该类的()A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值构造函数9.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()A.x.a B.x.a()C.x->a D.x->a()10.对于任一个类,用户所能定义的构造函数的个数至多为()A.0 B.1C.2 D.任意个二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。

错填、不填均无分。

11.对象的四大基本特性是多态性、继承性、______和封装性。

12.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为______。

13.C++程序的源文件扩展名为______。

14.所有模版都是以______关键字和一个形参表开头的。

15.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是______定义的头文件。

16.一个const对象只能访问______成员函数。

17.C++是通过引用运算符______来定义一个引用的。

18.若y是x的引用,则对y的操作就是对______的操作。

19.执行______操作将释放由p所指向的动态分配的数据空间。

20.C++的流库预定义了4个流,它们是cin、cout、______和clog。

三、改错题(本大题共2小题,每小题6分,共12分)21.假定下面程序将分数a和b相加,其和赋值给c并输出,要求输出结果为“13/18”,其主函数5到8行之间存在着三行语句错误,请指出错误行的行号并改正。

#include<iostream.h>class Franction{ //定义分数类int nume; //定义分子int deno; //定义分母public://把*this化简为最简分数,具体定义在另外文件中实现void FranSimp();//返回两个分数*this和x之和,具体定义在另外文件中实现Franction FranAdd(const Franction& x);//置分数的分子和分母分别0和1void InitFranction() {nume=0; deno=1;}//置分数的分子和分母分别n和dvoid InitFranction(int n,int d) {nume=n; deno=d;}//输出一个分数void FranOutput() {cout<<nume<<′/′<<deno<<endl;}};void main() //1行{ //2行Franction a,b,c; //3行a.InitFranction(7,18); //4行b.InitFranction(1); //5行c.InitFranction(); //6行c=FranAdd(a,b); //7行cout<<c.nume<<′/′<<c.deno<<endl; //8行} //9行错误行的行号为______、______和______。

分别改正为______、______和______。

22.下面是一个类的定义,在5到12行之间有3行存在语法错误,请指出错误行的行号并改正。

class CE { //1行private: //2行int a,b; //3行int getmin() {return (a<b?a:b);} //4行public //5行int c; //6行void SetValue(int x1,int x2,int x3) { //7行a=x1;b=x2;c=x3; //8行}; //9行int GetMin(); //10行}; //11行int GetMin(){ //12行int d=getmin(); //13行return(d<c? d:c); //14行} //15行错误行的行号为______、______和______。

分别改正为______、______和______。

四、程序填空题(本大题共3小题,每小题6分,共18分)请按提示要求完成以下程序段的填空。

23.class A {int a,b;public:____(1)____ //定义构造函数,使参数aa和bb的默认值为0,//在函数体中用aa初始化a,用bb初始化b};main(){A *p1,*p2;____(2)____; //调用无参构造函数生成由p1指向的动态对象____(3)____; //调用带参构造函数生成由p2指向的动态对象,//使a和b成员分别被初始化为4和5}(1) (2) (3)24.一种类定义如下:#include<iostream.h>#include<string.h>class Books{private:char bk_name[20]; //书的名称int price; //书的价格static int totalprice; //同类书总价格public:Books(char*str,int p){ //构造函数strcpy(bk_name,str); //strcpy函数将str字符串的内容拷贝到bk_nameprice=p;totalprice+=price;}~Books(){totalprice-=price;}char*GetN(){____(4)____;}//返回书名称int GetP(){return price;}____(5)____GetTotal_Price(){ //定义静态成员函数____(6)____; //返回总价格}};(4) (5) (6)25.已知一个类的定义如下:#include<iostream.h>class AA {int a[10];int n;public:void SetA(int aa[],int nn); //用数组aa初始化数据成员a,//用nn初始化数据成员nint MaxA(); //从数组a中前n个元素中查找最大值void SortA(); //采用选择排序的方法对数组a中前n个元素//进行从小到大排序void InsertA(); //采用插入排序的方法对数组a中前n个元素进行从小到大排序void PrintA(); //依次输出数组a中的前n个元素};voidAA::SortA(){int i,j;for(i=0; ____(7)____;i++){int x=a[i],k=i;for(j=i+1; j<n;j++)if(a[j]<x){x=a[j];k=____(8)____;}a[k]=a[i];a[i]=____(9)____;}}(7) (8) (9)五、程序分析题(本大题共6小题,每小题5分,共30分)阅读以下程序,写出其运行结果。

26.#include<iostream.h>const int N=6;void fun();void main(){for(int i=1;i<N;i++)fun();}void fun(){static int a=2;cout<<(a+=3)<<′′;}27.#include<iostream.h>#include<iomanip.h>class fun{friend ostream& operator<<(ostream&,fun);}ff;ostream& operator<<(ostream& os,fun f){os.setf(ios::left);return os;}void main(){cout<<setfill(′*′)<<setw(10)<<12345<<endl;cout<<ff<<setw(10)<<54321<<endl;}28.#include<iostream.h>class a{public:virtual void func(){cout<<"func in class a"<<endl;} };class b{public:virtual void func(){cout<<"func in class b"<<endl;} };class c:public a,public b{public:void func(){cout<<"func in class c"<<endl;} };void main(){c c;a &pa=c;b &pb=c;pa.func();pb.func();}29.#include<iostream.h>class testa{public:testa(){a1=0;}testa(int i){a1=i;}void printout(){cout<<a1;}private:int a1;};class testb:public testa{public:testb(){b1=0;};testb(int i,int j,int k);void printout();private:int b1;testa aa;};testb::testb(int i,int j,int k):testa(i),aa(j){b1=k;} void testb::printout(){testa::printout();cout<<endl;}void main(){testb tt[2];tt[0]=testb(9,3,5);tt[1]=testb(8,4,7);for(int i=0;i<2;i++)tt[i].printout();}30.#include<iostream.h>void main(){for(int i=-1;i<4;i++)cout<<(i ? ′0′:′*′);}31.#include<iostream.h>class Date{int Year,Month,Day;public:void SetDate(int y,int m,int d){Year=y;Month=m;Day=d;}void PrintDate(){cout<<Year<<"/"<<Month<<"/"<<Day<<endl;}Date(){SetDate(2000,1,1);}Date(int y,int m,int d){SetDate(y,m,d);}};class Time{int Houre,Minutes,Seconds;public:void SetTime(int h,int m,int s){Houre=h;Minutes=m;Seconds=s;}void PrintTime(){cout<<Houre<<":"<<Minutes<<":"<<Seconds<<endl;}Time(){SetTime(0,0,0);}Time(int h,int m,int s){SetTime(h,m,s);}};class Date_Time:public Date,public Time{public:Date_Time():Date(),Time(){};Date_Time(int y,int mo,int d,int h,int mi,int s):Date(y,mo,d),Time(h,mi,s){}void PrintDate_Time(){PrintDate();PrintTime();}};void main(){Date_Time dt_a,dt_b(2002,10,1,6,0,0);dt_a.PrintDate_Time();dt_b.SetTime(23,59,59);dt_b.PrintDate_Time();dt_a.SetDate(2002,12,31);dt_a.PrintDate_Time();}。

相关文档
最新文档