问题 填空题

使用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();

答案

参考答案:
(A)错误:}
正确:};
(B)错误:ptr=p;
正确:ptr=&p;
(C)错误: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")。

单项选择题
单项选择题 C型题