c++程序设计实验、辅导习题答案(任务三) 下载本文

实 验 三

任务1:程序调试。求两个自然数间的自然数的和的while循环程序设计。

设计代码如下:(所显示的代码是已经修改错误后的)

(1)修改程序中的语法错误。

答:如图所示,“while (i<=m);”应该将“;”删除,因为分号将循环条件和循环体分割开来,使系统无法执行;“sum=sum+i;i++;”是循环语句中的循环体结构,一般需要以{}括起来。

Ps:长方形内“print”也应该改为“Add”,因为代码所定义的成员函数为Add。

精选

(2)从键盘输入1 100(回车),检验运行结果。 运行结果如下:

(3)在程序段,如果没有i++语句,会出现什么情况? 答:编译正确,运行时可以输入数字,但无法求和。 如下:

(4)当程序运行时,如输入10 2,结果如何?应该如何修改? 答:输入后,显示所求之和为0。 代码如下:

精选

(5)成员函数Add能否用访问控制符private来限定?

答:不能,如果用访问符private来限定,那么add将不可使用。

任务2:程序设计。应用while循环逐项求和。

定义一个类Addn_m,类中有整形私有数据n、m(m>n),除构造函数外还有成员函数add,此函数的功能是求1/n+1/(n+1)+...+1/m的和,请仿照任务1进行设计。 设计代码如下:

精选

任务3:程序设计。计算阶乘。

设计代码如下:(已修改)

精选

(1)调试程序,修改错误。

答:“Factorial(int a){n=a;}”应该定义为公有,不能定义为私有,否则编译时无法访问private在“Factorial”类中的申明。 (2)函数mult的访问控制可以定义为私有吗? 答:可以。

精选