好文档 - 专业文书写作范文服务资料分享网站

《面向对象程序设计》期末考核试题样例及解答

天下 分享 时间: 加入收藏 我要投稿 点赞

case ’/’: if(b==0) {

cout<<\ exit(1); }

else return a/b;

default: cout<<\ exit(1); } }

功能:

2. IntNode* FindMax(IntNode *f) {

if(!f) return NULL; IntNode *p=f; f=f->next; while(f) {

if(f->data>p->data) p=f; f=f->next; }

return p; }

假定IntNode的类型定义为: struct IntNode {

int data; //结点值域 IntNode* next; //结点指针域 };

功能:

六、程序改错。请根据程序或函数模块的功能改写个别地方的错误(每小题6分,共6分)。

在下面的定义中,NODE是链表结点的结构,appendToList则是一函数,其功能是:在list所指向的链表的末尾添加一个新的值为x的结点,并返回表头指针。函数中有两处错误,指出错误所在行的行号并提出改正意见。 struct NODE{ int data; NODE *next; };

NODE* appendToList(NODE *list, int x){ //1行 NODE *p=new int; //2行 p->data=x; //3行 p->next=NULL; //4行

if(list==NULL) return p; //5行 NODE *p1=list; //6行 while(p1->next!=NULL) p1=p1->next; //7行 p1=p; //8行 return list; }

错误行的行号为______和________。

分别改正为______________和______________。

七、编程(每小题8分,2小题,共16分) 1. 编一程序求出满足不等式1?111?????5的最小n值并输出。 23n

2. 根据下面类中MaxMin 函数成员的原型和注释写出它的类外定义。 class AA { int* a; int n; int MS; public:

void InitAA(int aa[], int nn, int ms) {

if(nn>ms) {cout<<\ MS=ms; n=nn;

a=new int[MS];

for(int i=0; i

int MaxMin(int& x, int& y); //从数组a的前n个元素中求出 //最大值和最小值,并分别由引用参数x和y带回, //同时若n大于0则返回1,否则返回0。 };

试题参考解答:

一、单项选择

1. A 2. B 3. D 4. C 5. A 6. A 7. B 8. A 9. C 10. D 11. C 12. B 二、填空

1. C 2. 6 30 3. false (或0) 4. if 5. 10 19 6. 栈 7. 25 8. ple 9. 设计 实现 10. this 11. 构造函数 12. 1 13. 1 14. 成员函数 15. 虚基类

三、程序填充

1. (1) x<3 (或x<=2) (2) x%i==0

(3) i++ (或++i或i=i+1或i+=1) 2. (1) i

(2) table[i] (3) L=p

3. (1) top==ARRAY_SIZE-1 (或Depth()==ARRAY_SIZE) (2) top++(或++top) (3) newElem

四、写出程序或程序段的运行结果 1. 11 14 switch end. 2. year:4 month:5 day:3 3. Point:3 4 Text con!

Point with Text con! Point with Text des Text des! Point des!

五、指出程序或函数的功能

1. 以参数a和b为运算对象,以参数op为四则算术运算符,求出运算结果并返回。 2. 从表头指针f指向的、由IntNode类型的结点所构成的链表中查找出data域的值最大的结点并返回指向该结点的指针。

六、程序改错。请根据程序或函数模块的功能改写个别地方的错误。 错误行的行号: 2 8

分别改正为: NODE *p=new NODE; p1->next=p;

七、编程

#include void main() {

int i=0; double s=0;

while(s<5) s+=double(1)/++i; cout<<\ }

若采用for循环编写程序,则如下所示: #include void main() {

int i; double s=0;

for(i=1; s<5; i++) s+=1.0/i; cout<<\

//注意:此i-1的值为所求的n值 }

2.int AA::MaxMin(int& x, int& y) {

int mx,my; mx=my=a[0];

for(int i=1; imx) mx=a[i]; if(a[i]

x=mx; y=my;

if(n>0) return 1; else return 0; }

《面向对象程序设计》期末考核试题样例及解答

case’/’:if(b==0){cout<<\exit(1);}elsereturna/b;default:cout<<\
推荐度:
点击下载文档文档为doc格式
1eret94q3m0zdc523xwm17c19373ml00gnk
领取福利

微信扫码领取福利

微信扫码分享