问答题 使用VC6打开 下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)定义类的私有变量a、b,请在注释//********1********后添加适当的语句。
(2)完成类的构造函数,对变量a、b赋值,缺省两个变量值为1,在注释//********2********之后添加语句。
(3)完成打印函数display(),打印出“a*b=c”格式的一个乘法算式,在注释//********3********之后添加语句。
(4)补充主函数,使得打印9×9的乘法口诀。在注释//********4********后添加语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include<iostream.h>
class CMyFormula
{
private:
//********1********
public:
//********2********
{
this->a=a;
this->b=b;
}
void set(int x, int y)
{
a=x;
b=y;
}
void display()
{
//********3********
}
};
int main()
{
CMyFormula formular(1,1);
for(int i=1;i<=9;i++)
{
//********4********
for (int j=1; j++)
{
formular, set (j, i);
formular.display();
cout < < " ";
}
cout < < endl;
}
return 0;
{
【正确答案】
【答案解析】(1)添加语句:int a,b;
(2)添加语句:CMyFormula(int a=1,int b=1)
(3)添加语句:cout < < a < < "*" < < b < < "=_" < < a*b;
(4)将“for(int j=1; j++)”补充完整为:for(int j=1;j<=i j++)
答案考生文件夹 [解析] 程序当中定义了类CMyFormula,含有a和b两个成员变量,一个构造函数,改变成员变量a和b的值得set(int x,int y)函数,打印a和b的乘积的display()函数。在主函数中定义了一个CMyFormula对象,然后不断改变该对象的a和b的值,然后调用display()显示,如此完成打印9×9的乘法口诀。
(1)第1个标识下完成CMyFormula类的私有变量a、b的定义,从函数set(int x,int y)的参数类型可以看出a和b均为int型变量,故第1个标识下应添加“int a,b;”。
(2)第2个标识下添加构造函数声明,完成对变量a、b赋值,该构造有两个参数a和b,且a和b缺省值为1,因此第2个标识下应添加“CMyFormula(int a=1,int b=1)”。
(3)打印函数display()在屏幕上打印出“a*b=c”格式的一个乘法算式,因此第3个标识下应添加“cout < < a < < "*" < < b < < "=" < < a*b;"0
(4)观察可知第4个标识下的for循环是死循环,j没有判断退出条件,会一直循环下去得不到想到的9×9的口诀表,外层循环变量i从1开始变化至9,循环9次,内部循环变量j应该从1变化到i,输出一行,j<=i,这样保证输出的是倒9×9口诀,因此第4个标识下应改为“for(int j=1;j<=i;j++)”。