问题 填空题

使用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,所以在判断前应该加上非运算。

多项选择题
选择题