资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
1面向对象程序设计面向对象程序设计课程作业课程作业作业作业 1 1: 是非题是非题1. 头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。( )2. 程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程 序修改所带来的编译工作量。 ( ) 填空题填空题下面是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算 该数组各元素的和,并输出结果。函数 sum 计算数组元素之和。填充程序中不完整的部 分。 _ int sum(int ,int);void main() int ia5 = 2,3,6,8,10;sumOfArray = sum(ia,5); cout extern int x;void f(int);void main()int i=5;f(i);cout ?3. 在函数 main()中是否可以直接调用函数 g()?为什么?4. 如果把文件 file1.cpp 中的两个函数定义的位置换一下,程序是否正确?为什 么? 5. 文件 file1.cpp 和 file2.cpp 中的变量 i 的作用域分别是怎样的?在程序 中直接标出两个变量各自的作用域。 编程题编程题写一个函数,完成在链表末尾增加一个节点的操作。函数的原型为:写一个函数,完成在链表末尾增加一个节点的操作。函数的原型为: NodeNode * * AddNode(NodeAddNode(Node * * newData); 其中,链表节点的定义如下:其中,链表节点的定义如下: structstruct NodeNode intint data;data;/存放数据存放数据 NodeNode * * next;next;/指向链表中的下一个节点指向链表中的下一个节点 ; 函数参数:函数参数:函数的第一个参数 head 指向链表的第一个节点,如果链表为空, 则 head 的值为 NULL。第二个参数 newData 为要插入的新节点中存放的数据。函数返回值:函数返回值:当成功地插入新的节点时,函数返回指向新节点的指针,否则, 如果不能申请到内存空间,则返回 NULL。NodeNode * * AddNode(NodeAddNode(Node *3void main()int a6=2,4,8,6,9,14;int x1=_B_; /调用 f1 函数求出 a 中前 4 各元素之和。int x2=f1(a,6);cout void func(float * para) float * pFloat;pFloat = para;cout _A_; int f2(int* a, int n)_ B_; for(i=1;ivalarray是一个整型的数组类。该类的使用和一是一个整型的数组类。该类的使用和一 般的数组非常类似,可以通过般的数组非常类似,可以通过 运算符来访问数组中的每个元素。运算符来访问数组中的每个元素。 C+的标准模板库中还有一个模板函数 abs(),其函数原型为:templatevalarray abs(const valarray 该函数的作用是将作为参数的数组 x 的每个元素的值取绝对值,并返回得到的新的数组。 如原来的数组为: 4 -1 -3 0 -34 将这个数组作为参数传递给函数 abs 后,函数返回的数组就变成: 4 1 3 0 34 要求:阅读下列程序,回答后面的问题。/*/5#include #include /该头文件中定义了模板类 valarray 和模板函数 abs() #define ARRAY_SIZE 10 typedef valarray INTVALARRAY; void main() INTVALARRAY val_array(ARRAY_SIZE);/定义一长度为 ARRAY_SIZE 的数组对象 /赋初始值for (int i = 0; i 的实例 (B)该语句说明了一个函数原型,函数的名字为 val_array,参数为 ARRAY_SIZE,函数的返回值类型为 INTVALARRAY (C)板类 valarray 一定有一个只带一个参数的构造函数 (D)模板类 valarray 一定有一个只带两个参数的构造函数 (E)ARRAY_SIZE 将作为参数传递给 val_array 的构造函数,初始化 val_array 对象6问题问题 3 3:(本小题共 12 分)下面是模板函数 abs()的实现。这个实现中有错误,指 出错误并写出正确的实现。注意:函数头是正确的,不要改变,所有的错误出现在函数 体中。template valarray abs(const valarray i valarray abs(const valarray*str); 函数参数:str 指向所要处理的字符串;7函数返回值:如果 str 不空,则返回具有最大 ASCII 码的字符,否则返回空 字符 0x0 或0。charchar MaxCharacter(charMaxCharacter(char *str)*str) 作业 4: 是非题是非题1. 函数重载既要求两函数参数对应的类型不同又要求参数个数不同。2. 在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数, 才能具有多态的特征。编程题编程题一、定义一个日期类定义一个日期类DateDate,该类对象存放一个日期,可以提供的操作有:,该类对象存放一个日期,可以提供的操作有: intint GetYear (); ;/取年份 intint GetMonth (); ;/取月份 intint GetDay ( ); ;/取日子值 voidvoid SetDate (intint year, intint month, intint day); ;/设置日期值下面是测试你所定义的日期类的程序:#include #include “date.h”voidmain() Date d1(1999, 1, 14);/用所给日期定义一个日期变量 Date d2;/定义一个具有缺省值的日期,缺省值为 1980 年 1 月 1 日 Date d3(d1);/用已有日期 x 构造一个新对象d2.SetDate(1999,3,13);cout “Date:“; cout d1.GetYear() . d1.GetMonth() . d1.GetDay() endl;cout “Date:“; cout d2.GetYear() . d2.GetMonth() . d2.GetDay() endl;cout “Date:“; cout d3.GetYear() . d3.GetMonth() . d3.GetDay() endl; 要求: (1)写出日期类的完整定义,其中,三个 Get 函数写成内联函数形式, SetDate 写成非内联函数形式。所有数据成员都定义为私有成员。注意构造函数 的三种形式。 (2)写出程序的运行结果8(3)修改程序,在日期类中定义日期的输出函数,这样,主程序就可以简化为:voidmain() Date d1(1999, 1, 14);/用所给日期定义一个日期变量 Date d2;/定义一个具有缺省值的日期,缺省值为 1980 年 1 月 1 日 Date d3(d1);/用已有日期 x 构造一个新对象d2.SetDate(1999,3,13);d1.Print(); d2.Print(); d3.Print(); 输出格式和上面一样。只需要写出类 Date 的修改部分。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号