问题 填空题

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

单项选择题
单项选择题