• u******* 加入了本站
  • 游客 下载了资源 LED 灯月亮灯 001 [高分辨率] 3d打印图纸stl文件
  • 游客 下载了资源 LED 灯月亮灯 001 [高分辨率] 3d打印图纸stl文件
  • 游客 购买了资源 国开学习网电大《☆电子商务法律与法规》形考任务四答案
  • 游客 下载了资源 国开电大《Flash动画制作》形考课程考核成品答案实训5:补间动画
  • 游客 购买了资源 国开电大《Flash动画制作》形考课程考核成品答案实训5:补间动画
  • 游客 下载了资源 国开电大《Flash动画制作》形考课程考核成品答案实训4:引导层和遮罩层的应用
  • 游客 购买了资源 国开电大《Flash动画制作》形考课程考核成品答案实训4:引导层和遮罩层的应用
  • 游客 下载了资源 国开电大《Flash动画制作》形考课程考核成品答案实训3:元件和库应用
  • 游客 下载了资源 国开电大《Flash动画制作》形考课程考核成品答案实训3:元件和库应用

电大试卷2002年7月1008面向对象程序设计

试卷代号:1008 座位号

中央广播电视大学2001-2002学年度第二学期“开放本科”期末考试(开)

计算机专业面向对象程序设计试题

2002年7月

得分 评卷人

一、是非题(每小题2分,共20分)

题号 . 总分
分数

说明:判断各小题说法的正确性扌在下列表格中对应的题号下填入是菲选择,若正确,则打

钩否则『打叉(X),

题号 1 2 3 4 5 6 7 8 9 10
是/否 L

L在程序中,变量定义语句可以出现在该变量使用前的任何位置口

£说明函数原型时,必须指明每个参数的类型和名字’以及返回值类型。

在内存中,一个字符常量或变量是以ASCII码值存储的,它可直接作为整数值参加运

4-头文件中只允存放着变量和常量,以及类的定义亡

If

5・指针变量可以在定义时初始化十但初始化的值只能是该指针类型所指对象的地址值或

NULL。

  1. 「用引用传递函数参数,将在函数作用域内建立变量或对象的副本普
  2. 基类中被说明为pri明说的成员,不允许其他的函数访问,但其派生类的成员函数可访

问,

&若类B某成员函数定义为另一个类A的友元,则该成员函数可以直接访问类A的所

有成员。

  1. 构造函数和析构函数都可能被定曳为虚函数。
  2. 模板旬以使程序对任何数据类型进行同样方式的处理.

(1008号)面向对象程序设计试题第1页(共12页)

得分评卷人-

二、填空题(共20分)

说明:按各小题的要求,在下列表格中对应的空项号右边填入相应的内容。

(1)下面程序的每行前面加有行号,它求一个数组元素之最小值。主程序中定义并初始化

了一个数组,然后,调用函数min()取得其最小值,最后,输出结果。填入程序中不完整部分的

应有的内容。(每项空项2分,共10分)

空项号 应有的内容
A
B
C
D
E

L A

  1. int min(int 口,int);
  2. woid mainO

4・{

  1. int ia[10]= {17,—2, — 13,6,4,7,23, —10,51,9};
  2. B ;

e

  1. iMin- of- Array=min (ia 10 );
  2. coutVV”Max of array:”VViMin一of ArrayVVendl;
  3. }

I

  1. int min (int array Hs int len)

11- {

  1. int iMin —0;
  2. for (int i = 0; C ; D )
  3. E );

15- return iMin;

16. }

(2)下面程序的每行前面加有行号,共15行。将程序中变量value、sum、j、对象cout和函

数print-funcO的作用域范围的起止行号分别填入下表中& (每项空项1分,共10分)

变量、对象或函数名称 作用域起始行号 作用域终止行号
value
sum
.

J

cout .1
print^func

1- # include<iostream. h>

2. int value ;

  1. void print_func();
  2. void main()
  3. {
  4. int num[5]H{2,5,7,10,15};
  5. int sum = 0;
  6. for(int j = 0;jV5;j + + ) sum + = numEjJ;
  7. value—sum
  8. print_func();
  9. }
  10. void print一func()
  11. (
  12. coutVV”The summation~ ^«value<<endll ;
  13. }

评卷人

三、简单编程题(共20分)

说明:根据各个小题程序功能要求,写岀函数的完整定义。

1.(本小题10分)写一个函数,找出给定字符串中大写字符(即’A,一N,)的个数(如字符 串wCapital_Letter_in_Stringw中大写字符的个数为3个)。函数的原型为:

int CalcCapitalCchar * str);

函数参数:str为所要处理的字符串;

函数返回值:所给字符串中大写字符的个数

int CalcCapitalCchar * str)

( 〃在下面写上程序的实现

  1. (本小题10分)设|x|<l. 0, n> = 0,用递归函数完成藉函数power (x,n)=xn运算。 函数的原型如下:

double power (double x,int n);

该函数完成xn的运算,并返回运算结果,其中|x|<l. 0,n> = 0.

double power (double xUnt n)

( //在下面写上程序的实现

hi

评卷人

四、问答题(本题共40分)

U1

说明:读懂各个小题程序,为了便于提问,程序的每行前面加有行号,请对所提的问题作出

准确的相应解答。

(1)(本小题10分)读懂如下程序:

L 甘 includeViostream. h> 2・ int CircleAreaO ;

  1. (

4-

double * pd=new double;

if(! pd)

6.

cout<<aError memory allocation!”VVendl; return 1;

7.

9.

10.

double& rd= * pd;

11-

coutVV”the radius is:”;

12.

cin»rd;

13.

14.

delete &rd;

15.

return 0;

16.

17.

void mainO

18.

19.

if (Circle Area ())

coutVV”the area of circle is”VVrd * rd * 3.14VVendl;

cout«KThe program failed!”VVendl;

20・

else

cout«aThe program successed!”VVendl;

22.

23.

请写出下列问题答案:

  1. 第4行起何作用?

答:

< ..

  1. 第5—9行可否省去?并说明原因。

答:

  1. 第14行起何作用?

答:

  1. 此程序功能是什么?

答:

  1. 若对“the radius is : ”提示从键盘上输入的一个实数为2.0,写出整个程序的输出结果。

答:

(2)(本小题15分)读懂如下程序:

4

f

1. # include Viostream. h>

2- class Paternity

  1. {
  2. private:
  3. static object-count;
  4. 〃…其他成员
  5. public:
  6. Paternity () {object-count+ + ;}
  7. 〜 Paternity () (objct-count ;}
  8. static int GetobjectCount() {return object-count;}

IL void func() {cout<<afunction in Paternity without parameter! \n”;}

12- virtual void func(char % str) {coutVV“class Paternity : “VVstrVVendl;}

c

I.

13. };

  1. class Children:public Paternity
  2. (

private:

17. 〃…其他成员

J

18- public:

  1. void funcO (cout<<afunction in Children withount parameter! \n”;}
  2. void func(int data){coutVV”class Children:”VVdataVVendl;}
  3. void func(char * str) {coutV〈”class Children: ^«str«endl ;}
  4. };
  5. int Paternity:: object-count=0 ;
  6. void main(int argc?char * argv口)
  7. {

26- Children son;

27. Paternity pPal —&son;

2& Paternity * pPa2 = new Paternity [^5 ]; ・

  1. coutVV”There areJ,<<Paternity: :GetobjectCount() VV”objects” VVendl;
  2. pPal->func(Hiw);

31- pPa2—>func(“Good!”);

  1. pPal~>func();

D

  1. delete npPa2;
  2. cout<<uThere arew<<Paternity :: GetobjectCount(X<Kobjectsw<<endl;
  3. }

请写出此程序执行所显示的结果。

(3)(本小题15分)读懂如下程序:

  1. / 泌****************** 文件 list, h ****************狡** /
  2. class List

3- (

4・ private:
5- int *_mem;

6. int 一length;
7. const int _max-length;
8. public:
9- List (int Max-length = 10) :一max_length (Max一length)

♦ ■■

10. {
11-

12.

_mem = new int[一max_length];

_length=0; •

13. } .
14. 〜List() {delete □一 mem; }
15. bool Insert(int index? int data);
16. int Delete(int i);
17- void PrintListO
18. void PrintList(char *);

1

19. bool IsEmptyO (return 一length==0;}
20. bool IsFulK) (return _length= = _mex_length;}
21. int GetLengthO (return -length;}
22. int GetMaxLengthO (return _mex_length;} 、
23. int operator]] (int i) (return 一mem[i];}
24- };

■3

25. / ******************* 文件 list, cpp **************** /
26. # include Viostream. h>
27- # include alist. h”
28. a

bool List: :Insert(int index, int data)

29. {
30. if (^-length—= ^max_length)return false;
31- if (index> length )index = – length;
32. 〃将从index开始的元素向后挪
33. for(int i=_length; i>index; i ) _mem[i] = _mem[i — l];
34. _length + + ;
35. mem [index] = data ;
36. return true;
37. }
38. int List: : Delete (int index)
39. {
40. if (index〉=—length)
41- {
42. coutVV’No, Can’t be deleted I <endl;
43. return 0;
44. }
45. int retData = _ mem [index];
46. 〃将从index+1开始的元素向前挪
47. for(int i=index+l; iV-length; i+ + )一mem[i —=
48. 1

-length——;

49. return retData ;
50. }
51- void List:: PrintListO
52. {

53- for(int i=O;i<_length; i + + )coutVV一mem[i]VV”“;

  1. cout«endl ;
  2. }

56< void List:: PrintList(char * str)

  1. {
  2. for(int i = 0; i<_length; i十+ )coutVV_mem

59* cout« — — w<<str«w-,length — w<<_length<<endl ;

60. }

6L / ************************ 文件 main, cpp ***************** /

  1. #include<iostream. h>

.

  1. #include “list, h”
  2. void main()
  3. {
  4. List A;
  5. ListB(16);

68- if (A. IsEmpty ( ) &&-B. IsEmptyO)

  1. coutVV”Lists are empty when initialized!”VVendl;
  2. else return ;

• •

mt i;

  1. for(i = 0; i<A. GetMaxLengthO ; i+ + )A・ Insert(i92 * i + 1);
  2. for(i = 0; i<B. GetMaxLengthO ; i + + )B. Insert(i,2 * i);
  3. if (A. IsFull()&&B. IsFull())cout «aLists are full J w«endl ;
  4. else cout VV“A or B List is not full!”VVendl;
  5. for(i = 0; i<(B. GetMaxLength())/2; i + + )B. Delete(0);

76. A. PrintList(KLIst_Aw);

  1. B. PrintList(^List_Bw) ;
  2. for(i = 0; iV(B・ GetMaxLength())/2;i+ + )B. Insert(0,AEi]);
  3. B. PrintListO ;
  4. }-

请写出此程序执行所显示的结果。

试卷代号:1008

中央广播电视大学2001-2002学年度第二学期“开放本科”期末考试

tn

计算机专业面向对象程序设计

试题答案及评分标准

(供参考) ,

2002年7月

一、是非题标准答案(每题2分,共20分)

n

.

题号 1 2 3 4 5 6 7 8 9’ 10 ■■
是/否 V X X X

J

X P – X

评分标准说明:每答对一小题得.2分,共20分。

二、填空题(共20分)

1-标准答案

空项号 应有的内容 ,
A “ # include Viostream. h> ,

i

B int iMin^of Array ;
C i < den
D i + + “
E if (iMin<arrayGJ)iMin=arrayEiZI; 、

评分标准说明:每填对一空项得2分,共10分。

L

评分标准说明:每填对一空项得1分,共10分。

变量、对象或函数名称 作用域起始行号 作用域终止行号
value 2 15
sum 7 11

1

j 8 11(8也对)
cout

1

1 15

print 一 func 3 15

2.标准答案.

-T

三、简单编程题。(共20分)

  1. 标准答案 int CalcCapital (char * str)

〃判断字符指针是否为空

if (str= —NULDreturn 0;

〃记录字符个数的变量

int num-of-capital = 0 ;

//依次检査各个字符,如果是大写字符,则计数加1

for(int i = 0; str[i];i+ + )

if (str[i]=str[i]V= 2) num-of_capital+ + ;.

〃返回大写字符个数

return num_of-capital ;

评分标准说明:本小题共1。分,具体评分要点如下

  1. 判断若字符指针为空,则返回0,占2分。
  2. 定义记录大写字符变量并初始化为0,占2分。
  3. 正确的循环条件和循环增量,占2分。循环的条件可以有多种。可以用循环变量从0到

strlen(str),也可以通过判断str[:订是否为0x0来判断是否到了字符串的结尾。

  1. 循环体占3分。其中,正确的判断条件表达式各占2分,大写字符计数占1分。
  2. 返回大写字符计数,占1分。
  3. 标准答案

double power (double x9int n)

〃检查参数是否合理,若不合理,给出错提示信息,并立即退出,返回一1.

if <(x> = l. 0| |x< = -1.0| |n<0)

cout V〈”Error!” Wendl ;

return —1 ;

〃递归算法求藉函数

if (n= =0)

return 1 ;

else

return x power (x?n—1);

•评分标准说明:本小题共10分,具体评分要点如下

  1. 参数合理性检査与处理,占2分。
  2. 判断递归结束条件的语句占4分,如果没有写或者根本不正确,扣4分,如果写了,但有 错误,则视情节轻重扣分:如果、==0,写成¥=0,或等,扣2分,但写成^<1?是正 确的。如果没有写return语句或者返回值不是1,扣2分。
  3. 递归调用语句占4分,如果递归语句逻辑不正确,扣3分,如果有语法错误,则适当扣 分°如果没有return语句,扣1分。, 四、问答题(共40分)

(1)标准答案

  1. 答:申请分配一个与double类型数据相应的内存空间。
  2. 答:不能省,若系统已无内存空间可分配,仍继续执行本程序可能发生破坏性后果。
  3. 答:释放相应于前面申请获准所占用内存空间。

■j

  1. 答:根据输入的半径计算圆的面积。

⑤答:执行结果输出内容为:

the radius is:2. 0

the area of ciricle is 12. 56

The program successedj

评分标准说明:本小题共10分,①一⑤各占2分。

(2)标准答案

3

执行结果输出内容为:

0

There are 6 objects*

class Children: Hi!

■ ■

r-

■ ■

class Paternity: Good!

■I

p

function in Paternity without parameter!

There are 1 objects.

评分标准说明:本小题共15分,输出每行信息占3分;

+

  1. 标准答案

执行结果输出内容为:

L • I

Lists are empty when initialized!

Lists are full!

13 5 7 9 11 13 15 17 1 –

19 List_A-length=10

16 18 20 22 24 26 28 30- List_B_length = 8
15 13 11 9 7 5 3 1 16 18 20 22 24 26 28. 30

I

评分标准说明:本小题共15分,输岀每行信息占3分。

资源下载
下载价格1
点点赞赏,手留余香 给TA打赏

AI创作

评论0

请先
支持多种货币
支持多种货币付款,满足您的付款需求
7天无忧退换
安心无忧购物,售后有保障
专业客服服务
百名资深客服7*24h在线服务
发货超时赔付
交易成功极速发货,专业水准保证时效性
显示验证码

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录