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

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

试卷代号:1008

座位号

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

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

2003年1月

题号 总分
分数

得 分 评卷人 一、单项选择题(毎小题2分,共20分)

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

  1. 下列的常量名中,( 〉是非法的。
  2. YEAR2002
  3. welcome_home
  4. zhang @mail
  5. _SIZE_2MB
  6. 在程序中,函数声明语句正确位置是( )
  7. 随便任何位置
  8. 不包含在另一函数中的任何位置
  9. 该函数使用前的任何位置
  10. 该函数使用前的任何位置,但不包含在另一函数中
  11. 在内存中所存储的含L个字符的一个字符串常量是().
  12. 一串相应的ASCII码值,占用L个字节
  13. 一串相应的ASCII码值,占用L+1个字节
  14. 一组相应的正整数,占用L个字节
  15. 一组相应的整数,占用2L个字节
  16. C+ +中正整数可以用十进制、八进制和十六进制三种方式来表示,负整数()o
  17. 同样可以用十进制、八进制和十六进制三种方式来表示
  18. 只能用十进制方式来表示
  19. 可用十进制和八进制方式来表示,而不能用十六进制方式来表示
  20. 可用十进制和十六进制方式来表示,而不能用八进制方式来表示
  21. C+ +中的实数可以写成不同表示形式,下列表示形式中()是正确的•
  22. 5. 4321 B.5.43E2.1

C. e5. 4321 D. 5. 43X1021

  1. 返回类型就是函数返回结果值的数据类型。返回类型可以是( )
  2. 除数组和类以外的任意数据类型
  3. 除数组和结构类型以外的任意数据类型
  4. 除数组类型以外的任意数据类型
  5. 除指针和引用类型以外的任意数据类型
  6. 引入内联函数的主要目的是()
  7. 缩短程序代码,少占用内存空间
  8. 既可以保证程序的可读性,又能提高程序的运行效率

Q占用内存空间少,执行速度快

D.使程序的结构比较清晰

  1. 重载函数是()
  2. 以函数参数来区分,而不用函数的返回值来区分不同的函数
  3. 以函数的返回值来区分,而不用函数参数来区分不同的函数
  4. 参数表完全相同而返回值类型不同的两个或多个同名函数
  5. 参数表和返回值类型都必须是不同的两个或多个同名函数
  6. 一个类的静态数据成员所表示的属性确切地说()。
  7. 是类的或对象的属性
  8. 只是对象的属性
  9. 只是类的属性
  10. 类和友元的属性
  11. 当保护继承时,基类的()在派生类中成为保护成员,不能通过派生类的对象来直 接访问该成员。

A.任何成员 B,公有成员和保护成员

  1. 保护成员和私有成员 D.私有成员

得分评卷人 二、填空題(毎小题2分,共20分)

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

题号一空项号 应有的内容
1—A,B
2—C,D
3—E
4—F
5—G,H
6—1
7—J,K
8—L
9—M
10—N
  1. 变量名是变量的标识,由 A组成,而且必须以B开头。
  2. 表达式中多操作符的操作顺序规则是:优先级_g__的先操作,若优先级相同,则应按 D决定先操作哪个。
  3. C+ +中的实数表示形式,一种是定点数形式,另一种是指数形式,如1. 23X102,,用指 数形式可以表示为E 0
  4. return语句指示系统结束当前函数的执行,并F .
  5. C++使用传送参数的机制来传递数组,并把所有的数组参数自动转为H 。
  6. 出现在函数参数中的const表示
  7. 有了函数原型,函数的作用域就不是从丄开始,而是从开始。
  8. 函数名重载是指同一作用域内的多个函数使用相同的函数名,这些同名函数通过它们 的L进行区分。
  9. 指针变量的值是一个内存的M .
  10. 在真正使用一个void指针时,需要将它丄为某种数据类型的指针。
得分 评卷人

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

说明:下面程序的每行前面加有行号,不完整部分有空项号,按程序功能要求,在下列表格 中对应的行——空项号右边填充程序中的应有的内容。

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

//

〃从键盘读入50个职工工资,并记录到一个数组中。

〃然后,计算职工工资平均值并调用函数bottom。计算工资最低值,并输出结果。

//

  1. # include<iostream. h>
  2. A :
  3. const mt employeeNum=50 ;

4.

  1. uoid mainO
  2. {
  3. float employeeWagesCemployeeNum]^ {0};
  4. int i$
  5. float bottom_Wages» sunv_Wages=O.
  6. for( B )

IL (

12- C ‘〃从键盘向数组元素输入数据

  1. sunvWages D 3
  2. }
  3. cout«”The average wages is”VV E «endl»
  4. bottonuWages = F ;
  5. cout<<“The bottomof wages: n«bottom_Wages«endl?
  6. }

19.

  1. float bollom(float fAarray[Jt int len)
  2. (
  3. float fBottom=fAarraytO];
  4. for(int i=l; G )
  5. H ?
  6. return fBottom;
  7. }

得分I评卷人 四、编程題(共20分)

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

X3 I x5 x7 (― 1

sin x=x–+— +……(2宀)!

其中,工为弧度,取值范围:(一8,8),”为大于等于。的整数值。

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

  1. (本小题10分)利用上述近似值计算式,实现正弦函数sina的近似值计算,其中,a为角 度数,取值范0:L0°90°],要求误差小于给定值Delta= 0. 000001.

double sin^alpha_90(double dAlpha)

{〃下面是函数的实现

const double Delta=0.000001 ;

const double PI=3. 1415926;

double x, sio_d,sin_alpha;

int n=0 ;

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

siik_alpha=O; //siiualpha 用于保存累加和

sin_d— x; 〃sin_d用于保存当前累加项的值

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

}

  1. (本小题10分)根据下面所给的函数原型用递归算法实现第一小题正弦函数sina的近 似值计算。其中«的值为需要累加的项数减l.dAlpha的值为一个角度数。

double sin^alpha(int n, double dAlpha) j

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

当n=0时,取值为Xf

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

sin_alpha(.n’) = sin_alpha(.n—l’) +5(n)

其中:

5(n)

(―1)”xZb+1
(2n+D!

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

5(n)=5(n—1) *

(一 1)”/
2n(2n+l)

其中递归终止条件为队0)等于x

double sin_d(int n ,double x) 〃递归算法实现增量函数3(”)的绝对值

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

)

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

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

}

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

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

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

  1. # include<iostream. h>
  2. # include<math. h>
  3. double TriangleAreaO
  4. (
  5. int i;
  6. double dTArea;
  7. double * pds= new doubleC5j ;
  8. if(! pds)
  9. (
  10. cout<<Z” Error memory allocation!” <T<Cendl ?
  11. return—1 $
  12. }
  13. pdsEO] = Os
  14. for(i=l;i<4;i+ + )
  15. (
  16. cout<<nthe side is:”;
  17. cin»pdsCi];

1& pdsCOj + = pds[i]/2 ;

  1. }
  2. pds[4] = pds[0];
  3. for(i=l;i<4;i+ + )pds[0] * =(pds[4] — pds[i]);
  4. dTArea= sqrt( pds[01);
  5. deleteEjpds;

24.

return dTArea?

  1. }
  2. void mainO
  3. (
  4. double dAreai
  5. d Area = T riangle Area() >
  6. if(dArea== = — 1) cout«HThe program failed!,,«endl;
  7. else cout«HThe area of triangle is “VVdAreaVVendl,
  8. }

请写出下列问题答案,

  1. 第7行起何作用?(2分)

答:

  1. 第8—12行可否省去?并说明原因。(2分)

答:

  1. 第23行起何作用?(2分)

答:

  1. 此程序功能是什么?若对三次,rthe side is:”提示回答分别为3,4,5,请写出执行结果输 出的内容。(4分)

答:

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

# include<iostream. h>

const int STACK_SIZE= 501

class Stack (

public:

void Init()(top=Oj}

void Push(char newElem);

char PopO;

int DepthO{return tops)

bool EmptyO(return top= =0

void Print () const I

private j

char elem[STACK_SIZE]?

int top;

};

/養*#舞*h養業養h*養普x itet x )txx亲条** stack, cpp 旧^***餐案****»小驚*養弟 甘 include<iostream. h>

# include” stack. hM

void Stack!!Push(char newElem)

(

if( top = = STACK_SIZE)

(

cout«”\nStack is overfilled!”VVendl;

return;

}

elem^topj = newElem;

top+ + ;

}

char Stack: :PopO

(

if (! top)

(

cout«n\nStack is empty! !M«endlj

returnC! 0;

)

int ret=elemCtop—1];

top ;

return retj

)

void Stack ; I Print( ) const

{

,if(! top)cout<<11 Stack is empty!”?

else cout«”stacks” ?

for(int i=top—lo> = 0;i ) cout«elem[订V

cout«endl;

}

/弗**普普晉號说離mxxx養贍弟養苏**養養诲魂琳条弗普 main, cpp ocacxx)(•%%餐鲁*汩He****%娜/

# include<iostream. h>

inclue”slack, h”

void mainO

(

Stack s;

char ch=’A*j

int i ;

s. InitO;

if(s. EmptyO) cout« M Stack is empty! n«endl j

cout«H\npushing 8 elements:11

for(i=0; i<8 ; i+ +)

(

cout«ch« n f,

s. Push(ch++);

}

cout«endl;

s. PrintOi

cout« w Poping elements :n

for(i=0ji<C5>i+ + ) cout«s. Pop()«”M > cout«endl;

cout«H Stack length=w«s. Depth。VVendh

cout« M /nPushing 1 elements: n«ch«endl|

s. Push(ch);

s. PrintO ;

cout«H\nPoping elements: “«endl; fQr(i=0;iV5;i+ + )coutVVs. Pop()«HM;

cout<<“Stack length=M«s. DepthC) <<lendl;

s, PnntO ;

}

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

试卷代号:1008

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

计算机专业面向对象程序设计试题答案及评分标准

(供参考)

2003年1月
一、单项选择题(毎小题2分.共20分)
LC 2.D 3.B 4.B 5. A
6.C 7.B 8. A 9.C 10. B
二、填空题(毎小题2分.共20分)
题号一空项号 应有的内容
1—A,B 字母、数字和下划线 字母或下划线
2—C»D 结合性
3—E 1. 23E23 或 1. 23e23
4—F 返回到调用该函数的地方继续运行
5—G, H 按地址 指针参数
6—I 在函数体中不能对这个参数做修改
7—J.K 函数定义 函数原型
8—L 不同的参数表
9—M 地址
10—N 强制转换

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

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

行一空顼号 应有的内容 –
2—A float bollom(float[], int)
10—B i=0 ? i<employeeNum ; i+ +
12—C cin> > employeeW ages[i]
13—D + — employeeWages[i]
15—E Sutik W ages/employeeN um
16—F botton(employeeWages»employeeNum)
23—G i<lenji+ +
24—H if( fBottom> fArray[i] fBottom=fArray[i3

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

IBK编程題(共20分)

1-C10分)[参考答案解法一]

do{

if(n%2 = ==0) sin^alpha + = sin^dj

else sirualpha— = sin^d;

n+ + 3

sin_d* =x* x/(2 * n* (2 * n+1));

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

为止

return sin^alpha;

[参考答案解法二〕

while(sin_d> = Delta)

(

if(n%2= =O)sin_alpha + =sin_di

else sin_alpha— = sin_d ;

n+ + ;

sin_d * =x * x/(2 * n * (2 * n+D);

}

return sin.alpha;

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

  1. 正确的循环条件和循环增量占2分。
  2. 循环体占6分。
  3. 返回结果占2分。

2. (10分)[参考答案]

double siivriKint n double x) 〃递归算法实现增量函数

(

i£(n= =0) return x;

else return sin_d(n—ltx) * x* x/(2 * n* (2 * n+D);

double sin_alpha(int n ,double dAlpha) 〃递归算法计算正弦函数

const double PI=3.1415926;

double x,d;

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

〃检査参数是否合理,若不合理,给岀错提示信息,并立即退出,返回一1。 if(nV0||x>PI/2)

(

cout« ” Error! “«endb

return— 1 ;

}

if(n= =0) return x;

else

(

d = sin_d(n,x);

if(n%2= =0)return sin_alpha(n— 1,dAlpha) + d;

else return sin_alpha(n— 1, dAlpha) — d ?

}

)

评分标准:本小题共10分,其中sin_d算法占5分,sin-alpha算法占5分。请酌情给分。

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

  1. 10 分

标准答案及评分标准:

  1. 答:申请分配相应于含有5个double类型数据的数组的内存空间。(2分)
  2. 答:不能省,若系统已无内存空间可分配,继续执行本程序可能发生破坏性后 果。(2分)
  3. 答:释放相应于前面申请获准所占用内存空间.(2分)
  4. 答:根据输入三边长计算三僻形的面积.(2分) 执行结果输出内容为:(2分)

the side is:3. 0

the side is:4. 0

the side is:5. 0

The area of triangle is 6. 0

  1. 标准答案(14分)

程序的输出应该是:

Stack is empty!

pushing 8 elements: A B C D E F G H stack: H G F E D C B A

Poping elements :H G F E D

Stack length=3

Pushing 1 elements:!

stack: I C B A

Poping elements:

I C B A

Stack is empty!!

Stack length=0

Stack is empty!

评分标准:输出共分4段,共14分,各占2,5,4和3分。

 

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

AI创作

评论0

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

社交账号快速登录

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