请使用菜单命令或直接使用VC6打开考生文件夹下的工程proj1。程序中位于每个//ERROR********found********下的语句行有错误,请加以更正,不得修该程序的其他部分。更正后程序的输出应该是:两点之间的距离为:7.5231 注意

admin2016-08-19  16

问题 请使用菜单命令或直接使用VC6打开考生文件夹下的工程proj1。程序中位于每个//ERROR********found********下的语句行有错误,请加以更正,不得修该程序的其他部分。更正后程序的输出应该是:两点之间的距离为:7.5231
    注意:只能修改每爪//ERROR********found********下的那一行,不要改动程序中的其他内容:
    1  #include
    2  #include
    3  using namespace std;
    4  class Point{
    5  private:
    6  double x,y;
    7  public:
    8  Point(double xx,double yy){x=xx;
    9    y=yy;
    10    }
    11    //ERROR  ******** found********
    12  double MyDistance(Point&a,Point&b);
    13    };
    14  double MyDistance(Point&a,Point&b){
    15    //ERROR ******** found********
    16  double dx=x-b.x;
    17    //ERROR ******** found********
    18  double dy=a.y=y;
    19    return sqrt(dx* dx+dy*dy);
    20    }
    21  int main()
    22  {
    23  Point p1(3.6,6.4),p2(8,0.3);
    24  double d=MyDistance(p1,p2);
    25    cout<<“两点之间的距离为:”<    26    return 0;
    27    }

选项

答案(1)friend double MyDistance(Point&a,Point&b); (2)double dx=a.x-b.x: (3)double dv=a.y-b.v;

解析 (1)主要考查考生对友元函数的掌握,由于MyDistance函数在类定义体外定义时,未加类名Point修饰作用域,可知MyDistance并不是类。Point的成员函数,但是声明是在Point定义体内部,所以应该是友元函数,另外函数MyDistance可以直接操作Point对象的成员变量,所以进一步确定是友元函数,使用friend关键字修饰。
    (2)主要考查考生对友元函数的掌握和成员变量的访问,在函数MyDistance中,为了计算a、b两点的距离,需要计算两个点的横纵坐标差值,所以需要访问a、b的横纵坐标,将a的横坐标减去b的横坐标,得到差值dx,再计算dy。
    (3)主要考查考生对友元函数的掌握和成员变量的访问,在函数MyDistance中,为了计算a、b两点的距离,需要计算两个点的横纵坐标差值,所以需要访问a、b的横纵坐标,将a的纵坐标减去b的纵坐标,得到差值dy,再与dx一起计算距离。
转载请注明原文地址:https://kaotiyun.com/show/LZNp777K
0

最新回复(0)