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

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

试卷代号:1008

座位号

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

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

2003年7月

题号 —- 总分
分数

一、单项选择题(每小题2分,共20分)

说明:题后给出一组答案,分别标识为A〜D,请从中选择出一个正确的答案,将其标识填 入括号中。

  1. 下列的常量名中,( 〉是非法的。
  2. PI
  3. 2002YEAR
  4. Li_Si
  5. _KINE〜2_5
  6. 在程序中,自动变量定义语句正确位置是( )。
  7. 随便任何位置
  8. 在所有函数之前
  9. 该变量使用前的任何位置
  10. 局部希围内该变量使用前的任何位置
  11. 在内存中所存储的含L个字符的一个字符串常量是( )«
  12. 一串相应的ASCII码值,占用L个字节
  13. 一串相应的ASCH码值,占用L+1个字节
  14. 一组相应的正整数,占用L个字节

3 一组相应的整数,占用2L个字节

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

  1. C++中整数可用十进制、八进制和十六进制三种方式来表示,但负整数( )。
  2. 不能用十六进制方式来表示,可用十进制和八进制方式来表示
  3. 不能用八进制方式来表示,可用十进制和十六进制方式来表示
  4. 既不能用八进制也不能用十六进制方式来表示
  5. 不能表示
  6. C++中的实数可以写成不同表示形式,下列表示形式中( )是正确的。
  7. 1. 234E5 B. 1. 234X106

C. E5 D. 3E4. 5

  1. 函数之间的调用是( )。
  2. 高层的函数调用低层的函数
  3. 低层的函数不能调用高层的函数
  4. 具有层次关系,不能随意进行相互调用
  5. 没有层次关系,函数之间完全可以随意进行相互调用
  6. 被非静态成员函数访问的类的数据成员( )o
  7. 可以是非静态数据成员也可以是静态数据成员
  8. 不可能是类的静态数据成员
  9. 只能是类的非静态数据成员
  10. 只能是类的静态数据成员
  11. 当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()就可以直接访

问类B的成员( )。

A.只能是公有成员

B-只能是保护成员

  1. 是除私有成员之外的任何成员
  2. 是任何成员
  3. 从一个基类派生出的各个类的对象之间( )。
  4. 共享所有数据员,还包含了由同一个基类生成的对象
  5. 共享部分数据成员,并包含了由同一个基类生成的对象
  6. 不共享任何数据成员,但包含了由同一个基类生成的对象
  7. 共享部分数据成员
  8. 在定义一个派生类时,若不显式说明是哪种继承方式,那么就默认为( )方式。

A.私有继承 B.非私有继承

C.保护继承 D.公有继承

<1008号)面向对象程序设计试题第2页(共14页)

——二、填空题(毎小题2分,共20分)

说明:下列各题有1一2处空项号,请在表格中对应的题号——空项号右边依次填写应有 的内容。

题号一空项号 应有的内容
1—A,B
2—C
3—D,E
4—F,G
5—H
6—1
7—J
8—K
9—L
10—M
  1. 表达式是由按照一定语法规则组成的符号序列,表达式加上构成表达式 语句。
  2. 大多数表达式都具有值,它是将操作符施加于操作数的计算结果。若表达式是一个— C_的函数调用,则它没有值。
  3. contnue语句的作用是结束D ,跳转到E处,继续执行下一次循环。
  4. 在函数定义中的参数称为_巨_,在调用函数的地方传递给被调函数的参数称为G
  5. 如果定义一个函数的返回类型为void,就表示该函数H
  6. 定义在_丄_之外的变量或常量为全局量,它可以在其后的所有地方使用。
  7. 当函数的参数是指针时,它的实在参数的值必须是一个
  8. 函数返回值类型带有const标记,表示不能将函数调用表达式作为亠_使用。
  9. C+ +编译器处理内联函数比较特殊;在遇到调用内联函数的地方会用_丄_来替换 函数的调用。
  10. 假定一个变量定义语句为”int x;”则定义一个指针变量p并初始化为x的地址的语 句为 M 。

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

说明:下面程序的每行前面加有行号,不完整部分有空项号,按程序功能要求,在下列表格

评卷人

三、程序填充题(每个空项2分,共16分)

 

中对应的行——空项号右边填充程序中的应有的内容。

//

行一•空项号 应有的内容
1—A
3—B
10—C
13—D
15—E
16—F
23—G
24—H

〃从键盘读入80名职工年龄,并记录到一个数组中。

//然后,计算职工年龄平均值并调用函数top()计算最高年龄值,并输出结果。

//

  1. A
  2. int top(int[], int);
  3. B enployeeNum=80 ;

3-

湘I

4.

  1. void main()
  2. { ‘
  3. int employeeAge[employeeNum];
  4. int i;
  5. int top_Age,sum_Age=0 ;
  6. for( C )
  7. (
  8. cin>>employeeAge[i];

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

睫 at?

  1. sum_Age D ;
  2. }
  3. cout«”The average Age is”VV E VVendl;
  4. F ;
  5. cout<<“The top of Age: ,f«top_Age<<endl;
  6. }

19.

20* int top(int iArrayO 4nt len)

  1. {
  2. int iTop = iArray[0];
  3. for( G )
  4. H ;
  5. return iTop;
  6. }
得分 评卷人

四、编程题(共20分)

说明:正弦函数corKr的近似值计算式如下:

conj:=l —^ + ― — —+

2! 4! 6!

I (_1)U
%)!

其中,工为弧度,取值范围:一8Vx,〈8)g为大于等于0的整数值。

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

1.(本小题10分)利用上述近似值计算式,实现余弦函数cona的近似值计算,其中,a为

角度数,取值范围要求误差小于给定值Delta=0. 000001 o

double con_alpha_90(double dAlpha)

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

const double Delta=0. 000001 ;

const double PI=3. 1415926;

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

double x, con„d»con_alpha;;

int n=0;

x=dAlpha*PI/18O5 〃角度单位转化成以弧度为单位

con_alpha = 0; //con_alpha 用于保存累加和

con_d = l? 〃con_d用于保存当前累加项的值

//请向下编写剩余代码,完善这个算法,它为一个do或while循环,以及一条return语 句。

2.〈本小题10分)根据下面所给的函数原型用递归算法实现上一小题余弦函数cona的近

似值计算。其中n的值为需要累加的项数减bdAlpha的值为一个角度数。 double con_alpha(int n, double dAlpha);

提示:可使用递归表示,即:

当n=0时,取值为1;

当n〉0时,取如下递归表达式:

con_alpha(n’) = con_alpha(.n ——1) +5(n)

其中:

况—

S3)也可用递归表示,即:

&沥= 33—1)*奈编

其中递归终止条件为3(。)等于1

double con_d(int n ,double x) //递归算法实现增量函数的绝对值

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

double con_alpha(int n ,double dAlpha) //递归算法计算余弦函数展开式中前n+1项

之和

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

密 封 线 内 不 要 答 题

Q甘I軟)旧8掀睫綴右悠曲驰赚衩回阀(哑802)

得分 评卷人

五、理解问答题(本题共24分)

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

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

  1. # include^iostream. h>
  2. double SectorAreaO
  3. {
  1. const float PI = 3. 14 ;
  2. double * pdr=new double(6);
  1. float * pfa=new
  2. if(! pdr| | ! pfa)
  1. {
  2. coError memory allocation! “V Vendl;
10. returnl;
11- }

12. doubled dRad= * pdr;

  1. float & fAng=pfa[0];
  2. cout<C<“the sector start is:”;
  1. cin>>pfa[l];
  2. cout<C<Hthe sector end is:M
  3. cin〉>pfa[2];
  4. if(pfa[2]> = pfa[lT)fAng=pfa[2] — pfa[]i];
  5. else fAng==pfa^l] — pfa[2];
  6. cout<<“the area of sector is” VVPI * dRad * dRad * fAng/360V Vendl;
  7. delete &dRad;
  8. delete[Jpfa;

23; return 0 ;

24. }

  1. void main()
  2. {
  3. if( Sector AreaC ))
  4. cout«”The program failed!”<<endl;
  5. else
  6. coutVV”The program successed! ”VVendl;
  7. }

请写岀下列问题答案:

  1. 第5行起何作用?

答:

  1. 第7-11行可否省去?并说明原因。

答:

  1. 第21-23行起何作用?

答:

  1. 此程序功能是什么?若对”the sector start is:”和”the sector end is:”提示回答分别为

40.0和70.0,写岀执行输出结果。

答:

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

/ ******************************** stack, h ******************************** class Stack {

public:

StackCint size=20);

〜Stack();

void PushCint newElem);

int Pop();

int DepthO (return top;}

bool EmptyO (return top= =0;)

bool FullO (return top— = stackSize;}

void PrintOconst;

private:

const int stackSize;

int * elem; int top;

};

/ ^**^**************************** stack, cpp *******************************

并 include<iostream. h>

# include” stack, h”

Stack:: Stack(int size) :stackSize(size)

{

elem==new int|2size]; 、

top=0;

}

Stack: : ~Stack()

(

deleteCJelem;

)

void STack: \ Push(int newElem)

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

if(FullO)

cuut<<MnStack is overfilled!!! 1,<<endh return;

}

elem^top] = newElem ;

top++ ;

}

int Stack: : Pop()

{

if(EmptyO)

{

cout<<“\nStack is empty! ! ! Top==”; return 0 j

int ret = elemLtop—1];

top ;

return ret;

)

void Stack’ I Print( ) const

{

if( ! top ) cout< V ” Stack is empty!”;

else cout< < stack:”;

for(int i = 0;i< = top —l;i+ + ) coutVVelem[i]VV” co utV Vendl;

}

/ ******************************** main, cpp *********************************

律 include<iostream. h> # inclue”stack. h” void mainO

Stack s(10); int i; cout<<“Pushing 10 elements:”;

£or(i=-0;i<10;i+ + )

cout«i«” s. Push(i);

cout<<“\nStack length—n«s. Depth()«endl; cout <<“\nstack full?”<<s. Ftdl()VVend» s. PrintO ;

cout<<C”\nPoping elements:M ;

for(i=0;i<12;i+ + ) cout«s. POpO«H ” cout V Vendl; cout<<“\nPushing 6 elements: M<<endl?

for(i=6;i>0;i )s. Push(i); cout<<“Stack length= “<<s. Depth。VVendl; s. Print。; cout<<*’\npushing 5 elements:H for(i=0;iV5;i+ + )

coutVViVV”

s. Push(i);

cout«”\nstack full?” VVs. Full() VVendl;

s. PrintO ;

}

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

S-

试卷代号:1。08

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

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

试题答案及评分标准

(供参考)

—、 2003年7月

单项选择题(每小题2分,共20分)

1. B 2. D 3. B 4. C 5. A

6. D 7. A 8. D 9. C 10. A

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

填空题(每小题2分,共20分)

题号一空项号 应有的内容
1—A,B 操作符和操作数 分号
2—C 没有返回值
3—D,E 当前一次循环 循环开始
4 一 F,G 形式参数 实在参数
5—H 没有返回值
6—I 任何函数(或所有函数)
7—J 地址(或内存地址)
8—K 左值
9—L 函数体中的代码
10—M int * p= &x;

评分标准:共20分,每题2分,填错一空则不得分。

三、程序填充题标准答案

行一空项号 应有的内容
1—A 埠 include<iostream. h>
3—B const int
10—C i— 0 ; i<employeeNum ;i+ +
13—D + = employeeAgeQi];
15—E sum Age/empIoyeeNum
,.16—F top Age= top(employeeAge? empIoyeeNum);
23—G int i=l ; iVlen ; i+ +
24—H ifGTopViArray[i]) iTop = iArrayQi]

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

四、编程题标准答案

  1. [参考答案解法一]

do{

if(n%2==0) con_alpha+ ~con_d;

else con_alpha~ =con_d;

n++ ;

con_d *==x*x/(2*n*(2*n—1));

}while(con_d> = Delta); 〃逐步逼近,直到一个累加项的值小于给定允许误差值

为止

return son„alpha ;

[参考答案解法二]

while(con_d> — Delta) {

if(n%2 = = 0)con_alpha 4- = con_d;

else con_alpha—=con_d;

n+ + ;

con„d 关—x * x/(2 * n * (2 * n— 1));

}

return con_alpha ;

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

  1. 正确的循环条件和循环增量占2分。
  2. 循环体占6分。
  3. 返回结果占2分。
  4. [参考答案]

double con_d(int n double x) 〃递归算法实现增量函数

{

if(n==0) return 1 ; ,

else return con_d(n—1) ,x)*x*x/(2*n*(2* n— 1));

double con_alpha(int n ,double dAlpha) 〃递归算法实现余弦函数

const double PI—3. 1415926;

double x,d;

x-dAlpha * PI/180; 〃角度单位转化成以弧度为单位

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

if(n<0| |x>PI/2)

{

coutV V”Error! ” V Vendl;

return— 1 ;

}

//递归算法计算

if(n==0) return 1 ;

else

{

d=con„d(n,x);

i£(n%2 — —0)return con_alpha(n—1,dAlpha) +d;

else return con_alpha(n~ 1,dAlpha) — dj

}

评分标准:本小题共10分,其中con_d算法占5分,con_alpha算法占5分。请酌情给分。

五、理解问答题(共24分)

  1. 10分,标遷答案及评分标准:
  2. 答:申请分配一个与double类型数据相应的内存空间,并赋予初始值为6。(2分)
  3. 答:不能省,若系统已无内存空间可分配,仍继续执行程序可能发生破坏性后果。

(2分)

  1. 答:分别释放相应于前面申请两类数据获准所占用动态内存空间。(2分)
  2. 答:根据输入的初始和终正角计算扇形区的面积。(2分)

执行输出结果为:(2分)

the sector start is:40. 0 the sector end is:70. 0

The area of sector is 9. 42

The program saccessed!

  1. 14分,标准答案及评分标准如下:

输出结果为:

Pushing 10 elementsO

Stack length= 10 stack full? 1

Stack:0 123

Poping elements: 9

3 2 10

Stack is empty! ! !

Top— —0

Stack is empty! ! !

Top = = 0

Pushing 6 elements:

Stack length = 6

Stack:6 5 4 3 2

Pushing 5 elements: 0

Stack is overfilled!! !

stack full? 1

Stack:6 5432

评分标准:共14分,输出共分6段,每段正确得2分,全对得14分。

 

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

AI创作

评论0

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

社交账号快速登录

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