使用VC6打开考生文件夹下的工程test38_1,此工程包含一个源程序文件test38_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为: 2 is a factor of 10 源程序文件test38_1.cpp清单如

admin2010-02-08  35

问题 使用VC6打开考生文件夹下的工程test38_1,此工程包含一个源程序文件test38_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:
   2 is a factor of 10
   源程序文件test38_1.cpp清单如下:
       #include <iostream.h>
       class myclass
       {
       /*****************  found  *****************/
         int n,d
       public:
         myclass(int i, int j){ n=i; d=j;  }
         friend int factor( myclass ob);
       };
       /*****************   found  *****************/
       int myclass::factor(myclass ob)
       {
       /*****************  found  *****************/
         if(ob.n%ob.d)
              return 1;
         else
              return 0;
       }
       void main()
       {
         myclass ob1(10,2),ob2(13,3);
         if(factor(ob1))
              cout<<"2 is a factor of 10\n";
         if(factor(ob2))
              cout<<"3 is not a factor of 13\n";
       }

选项

答案(1) 错误:int n,d 正确;int n,d; (2) 错误:int myclass::factor(myclass ob) 正确:int factor(myclass ob) (3) 错误:if(ob.n%ob.d) 正确:if(ob.n%ob.d))

解析 (1)主要考查考生对于变量定义的理解,同类型的变量定义中间使用逗号分开,同时可以进行初始化,但是在整个定义的结尾必须使用分号,这是C++的规定:
(2)主要考查考生是否掌握了友元函数的定义,友元是在类的内部声明,类的外部实现的一种特殊的函数,它可以访问类内的所有成员,不过在类外的实现和调用的时候均不需要使用作用域符号“::”限制:
(3)主要考查考生对于if条件语句的掌握,只有括号内的条件为真,即值为1时,才执行if后面的语句,根据题目要求应该执行的是对象ob1,即2可以整除10,所以应该定义函数factor的返回值为能整除返回1,否则为0,而能够整除即取余运算值为0,所以在判断前应该加上非运算。
转载请注明原文地址:https://kaotiyun.com/show/G7ID777K
0

随机试题
最新回复(0)