《面向对象程序设计》课程作业及答案

上传人:桔**** 文档编号:549135964 上传时间:2023-06-03 格式:DOC 页数:24 大小:64.50KB
返回 下载 相关 举报
《面向对象程序设计》课程作业及答案_第1页
第1页 / 共24页
《面向对象程序设计》课程作业及答案_第2页
第2页 / 共24页
《面向对象程序设计》课程作业及答案_第3页
第3页 / 共24页
《面向对象程序设计》课程作业及答案_第4页
第4页 / 共24页
《面向对象程序设计》课程作业及答案_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《《面向对象程序设计》课程作业及答案》由会员分享,可在线阅读,更多相关《《面向对象程序设计》课程作业及答案(24页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序设计课程作业及答案作业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 Sum of array: sumOf

2、Array endl;int sum(int array,int len)int iSum = 0;for(int i = 0; C ; D ) E ;return iSum; 答案:A#include Bint sumOfArray;Ci lenDi+EiSum += arrayi;阅读理解题 写出下列程序的运行结果: /file1.cpp static int i = 20; int x; static int g(int p) return i + p; void f(int v) x=g(v); /file2.cpp #include extern int x; void f(int)

3、; void main() int i=5; f(i); cout x; 回答以下问题: 1. 程序的运行结果是什么样的? 2. 为什么文件file2.cpp中要包含头文件? 3. 在函数main()中是否可以直接调用函数g()?为什么? 4. 如果把文件file1.cpp中的两个函数定义的位置换一下,程序是否正确?为什么? 5. 文件file1.cpp和file2.cpp中的变量i的作用域分别是怎样的?在程序中直接标出两个变量各自的作用域。 答案: 1. 程序的运行结果:25因为程序中需要利用cout对象进行输出,而cout是在C+标准I/O库iostream中定义的类ostream的一个对

4、象。2 在函数main()中不可以直接调用函数g(),因为g()是静态函数,只在它所在的文件内可见。3 如果把文件file1.cpp中的两个函数定义的位置换一下,程序不正确,因为C+规定所有使用的变量和函数需要先声明,后使用。在函数f中用到了函数g,所以函数f不能出现在函数g的定义或声明之前。文件file1.cpp中的变量i的作用域从它的定义开始到文件结束。File2.cpp中的变量i的作用域从它的定义开始到main函数结束。编程题 写一个函数,完成在链表末尾增加一个节点的操作。函数的原型为:Node * AddNode(Node * & head, int newData);其中,链表节点的

5、定义如下:struct Node int data;/存放数据Node * next;/指向链表中的下一个节点;函数参数:函数的第一个参数head指向链表的第一个节点,如果链表为空,则head的值为NULL。第二个参数newData为要插入的新节点中存放的数据。函数返回值:当成功地插入新的节点时,函数返回指向新节点的指针,否则,如果不能申请到内存空间,则返回NULL。Node * AddNode(Node *& head, int newData)/在这里写出函数的实现 答案: Node * AddNode(Node * &head, int newData) /申请新的节点空间 Node *

6、 newNode = new Node; if (newNode = NULL) return NULL; /填充新节点的内容 newNode-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. 在不同作用域中的变量

7、可以同名。对 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); coutx1 x2endl; int f1(int a, int n) int i,s=0; for(i=0;in;i+) s+=ai; return s; 答案: A int f1(int a, int n); B f1(a,4)改错题 1. 下面的函数将浮点型指针参数para所指向的值赋给一个局部指针变量pFloat所指向的

8、空间,然后输出*pFloat的值。#include void func(float * para) float * pFloat; pFloat = para; cout pFloat;错误为:_改正方法为:_答案错误为:没有给指针申请空间,就直接赋值改正的方法为:先为pFloat申请空间,再赋值。 2. 下列程序片段对二维数组的每个元素赋值unsigned short SomeArray54; for (int i = 1; i=5; i+) for (int j = 1; j=4; j+) SomeArrayij = i+j;错误为:_改正方法为:_答案错误为:访问数组元素的下标不对改正的

9、方法为: 将两个for循环的循环初始值改为0,循环结束条件分别改为i5和j=a & stri=z)num+; /返回数字字符个数 return num; 作业3:是非题 1. 函数的参数和返回值类型可以是简单数据类型,也可以是指针、引用、数组和类。3. 错 2. 如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。5. 对填空题 #include _A_; int f2(int* a, int n) _ B_; for(i=1;in;i+) if(maxai) max=ai; return max; void main() int bMM=3,12,6,20,9,7,34,50,25,66; _C_; /求出b4至b8 之间的最大值并赋给x1 _D_; /求出b0至b5 之间的最大值并赋给x2 coutx1 x2endl; 答案: A const int MM=10; B int i,max=a0; C int x1=f2(b+4, 5); D int x2=f2(b, 6);阅读理解题 二、 valarray是C+的标准模板库中的一个

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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