面向对象程序设计课程作业及答案.docx
面向对象程序设计课程作业及答案 面向对象程序设计课程作业及答案 中央电大理工部计算机教研室 作业1: 是非题 1. 头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。1. 错 2. 程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。4. 对 填空题 下面是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数组各元素的和,并输出结果。函数sum计算数组元素之和。填充程序中不完整的部分。 _A_ int sum(int ,int); void main() int ia5 = 2,3,6,8,10; B ; sumOfArray = sum(ia,5); cout data = newData; newNode->next = NULL; /插入到链表的结尾 if (head = NULL) head = newNode; else /寻找链表的最后一个节点 Node *tail = head; while(tail->next != NULL) tail = tail->next; /将新节点插入到最后 tail->next = newNode; return newNode; 作业2: 是非题 1. 在不同作用域中的变量可以同名。对 2. 派生类的成员函数可以直接访问基类的所有成员。2. 错 填空题 #include _A_; void main() int a6=2,4,8,6,9,14; int x1=_B_; /调用f1函数求出a中前4各元素之和。 int x2=f1(a,6); cout='a' && stri maxChar) maxChar = stri; return maxChar; 第二种: char MaxCharacter(char *str) if (str = NULL) return 0x0; char maxChar = 0x0; for(int i=0; i maxChar) maxChar = stri; return maxChar; 第三种: char MaxCharacter(char *str) if (str = NULL | str0 = 0x0) return 0x0; char maxChar = str0; for(int i=1; stri!= 0x0; i+) if (stri > maxChar) maxChar = stri; return maxChar; 第四种: char MaxCharacter(char *str) if (str = NULL | str0 = 0x0) return 0x0; char maxChar = str0; int i=1; while(stri != 0x0) if (stri > maxChar) maxChar = stri; i+; return maxChar; 作业4: 是非题 1. 函数重载既要求两函数参数对应的类型不同又要求参数个数不同。错 2. 在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征。错 填空题 #include class AA private: int a; int b; public: AA(int aa, int bb=10) _A_; /将aa的值赋给a _B_; /将bb的值赋给b _C_; _D_; ; int AA:f1() return a+b; int AA:f2() return a*b; void main() AA x(2,3), y(8); cout<<x.f1()<<' '<<y.f2()<<endl; 答案: A a=aa; B b=bb; C int f1(); D int f2(); 阅读理解题 三、下面的文件queue.h是一个队列类模板Queue的完整实现。在这个文件中首先定义了一个队列元素类模板QueueItem,然后在这个类的基础上定义了队列类模板Queue。在Queue 中使用链表存放队列的各个元素,front指针指向链表的第一个节点元素,back指针指向链表的最后一个节点元素,成员函数add()将一个新节点元素加入到队列结尾,remove()从队列开头删除一个节点元素。为方便起见,程序中加上了行号。阅读程序,根据程序后面的问题作出相应解答。 /*-/ /* 文件queue.h */ /*-/ template class Queue; /* 定义模板类QueueItem */ template class QueueItem public: QueueItem(const Type & elem):item(elem) QueueItem()