C++期末考试试卷及参考答案 下载本文

内容发布更新时间 : 2024/10/2 10:42:16星期一 下面是文章的全部内容请认真阅读。

请写出下列问题答案: a) 第4 行起何作用?

答:

b) 第5-9行可否省去?并说明原因。答:

c) 第14行起何作用?答:

d) 此程序功能是什么?答:

e) 解释14行中&符号的意义?答:

七、请完成下面2 个运算符重载函数,并对程序最后一行分析错误原因并改正(本题 运算符重载函数各3分,分析错误原因并改正4分,共10分)

给定整数类: class Integer {

public:

void Set ( int ii=0 ) { i=ii; } Integer operator + ( int c );

Integer operator + (Integer & c); void Display() {cout<

inti; };

请完成上面2 个运算符重载函数,并以下面的主函数进行测试。

void main() {

Integer A, B,C;A.Set(20); C.Set(10); B=A+4;

B.Display(); B=A+C;

B.Display();

B=4+A; // 此行代码有误,请分析错误原因并改正 }

八、编程题。声明一个shape 抽象类,在此基础上派生出Rectangle 和Circle 类,二者都有GetArea ( ) 函数计算对象的面积,按下面的要求完成程序的编制工作。

( 1 ) Rectangle 类有m_Width, m_Height属性; ( 2 ) Circle 类有m_Radius属性;

( 3 ) 分别编写Rectangle 类和Circle 类带默认参数的构造函数;

( 4 ) 编写主函数对Rectangle、Circle类进行测试,使它们以统一的操作界面输出面积;

(提示:利用for循环进行输出)

(5)回答将Shape类声明为抽象类的方法及意义。(每小题2分,本题共10分)

答案和评分标准(A 卷):

一、是非题(每小题1.5分,共15分) 评分标准:选对者得1.5分,否则不得分

题号 1 2 √ 3 √ 4 × 5 × 6 × 7 √ 8 × 9 √ 10 √ 对/错 √ 二、填空题(每小题1. 5 分,共15 分)

评分标准:每题与参考答案相同者得1.5分,否则不得分。

1、字母数字下划线,字母或下划线 2、函数定义 函数声明 3、& 4、初始化 5、AB::bb 6、将一个标识符声明成某个数据类型的别 名

7、MicrosoftFoundationClasses 8、 iostream.h 9、hex 10、允许用户排除环境错误,继续运行程序

三、单选题(在备选答案中选出一个正确答案填入括号内,每小题2 分,共20 分) 评分标准:选对者得2 分,否则不得分。

题号 选项 1 D 2 A 3 D 4 A 5 D 6 A 7 C 8 B 9 B 10 B 四、根据下面各小题题目要求进行简单回答(第1 小题6 分,第2 小题3 分,第3 小题6 分,共15 分)评分标准:每题与参考答案的叙述含义相同者得分,否则酌情给分。

(1)a、派生类对象可以赋值给基类对象

b1 = d1; b、派生类的对象也可以初始化

基类对象的引用

B & bb=d1;c、派生类对象的地址也可以

赋给指向基类的指针

pb1 = & d1;

(2)错误为:void swap(float a ,float b );

改正方法为:voidswap(float & a ,float & b );

(3)运行结果为:B::act1() called.

B::act1() called. B::act1() called.

五、下面的程序共有17 行,程序的每行前面加上了行号。程序中变量num、i、temp、对象cout和函数func()的作用域范围分别是什么?在程序的下面用行号来回答。(每小题1 分,共10 分)

评分标准:答对者得1 分,否则不得分。作用域范围分别为:

num的作用域为从第2 行到第18 行。 i 的作用域为从第 7 行到第 14 行。temp的作用域为从第 10 行到第 13 行。