使用VC6打开考生文件夹下的工程test34_1,此工程包含一个源程序文件test34_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为: David 3123 1000 源程序文件test34_1.cpp清单如下: #include <iostream.h> #include <string.h> class person { public:char name[20];unsigned long id;float salary;void print(){cout<<name<<’ ’<<id<<’ ’<<salary<< /***************** found *****************/ } void main( ) {person p;person *ptr; /***************** found *****************/ptr=p; /***************** found *****************/strcpy("David",ptr->name);ptr->id=3123;ptr->salary=1000;ptr->print(); }
参考答案:
解析:(1)错误:} 正确:}; (2)错误:ptr=p; 正确:ptr=&p; (3)错误:strcpy("David",ptr>name); 正确:strcpy(ptr->name,"David"); (1)类定义的一般格式为: class<类名> { pubic: <数据成员或成员函数的说明> private: <数据成员或成员函数的说明> protected: <数据成员或成员函数的说明> }; 花括号表示类的声明范围,说明该类的成员,其后的分号表示类声明结束,类声明最后的分号是不可少的; (2)p为类person的对象,ptr为指向类person对象的指针,所以将p的值赋给ptr应该为ptr=&p,即ptr指向对象p; (3)strcpy()函数的一般形式为: strcpy(to,from); 该函数将from字符串中的内容复制到to字符串,所以将字符串“David”赋值给ptr所指对象的数据成员name的语句应该为: strcpy(ptr->name,"David")。