1、国家二级 C+机试(操作题)模拟试卷 395及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modilcpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: 1 1 2 1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构, 错误的语句在 *error*的下面。 #include class TestClass *error* *error* const int j ; public: TestCiass() *error* static int i=0;
2、 couts; convert(S,res); couts; convert(S,res); coutres_正确答案:(正确答案:long si=10; *str=s10;先取个位数 while(s0) s=s100; 每次除以 100, *str=s10*s1+*str; 取除以 100后的个位数,str 增加 1位 s1=s1*10; )解析:解析:函数 convea(long s,long*str)的功能是从低位开始取出长整型变量 S中奇数位上的数,依次存放在 str中,即取 s的个位数、百位数、万位数,先取个位数,然后每次取奇数位的数相当于s每次除以 100后的个位数,因此可用循环来
3、实现。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)基类 Person完成打印功能,定义其中的打印函数为虚函数,请在注释*1*后添加适当的语句。 (2)类 Man继承于 Person,在构造函数中设置性别为l,请在注释*2*后添加适当的语句。 (3)类 Woman继承于 Person,在构造函数中设置性别为 0,请在注释*3*后添加适当的语句。 (4)实现函数 fun(),用于传递不同的类型,打印出性别,请在注释*4*后添加适当的语句。 输出的内容如
4、下: Sex=Man Sex=Woman 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include Class Person public: *1* void print()(); int sex; ; class Man:public Person public: Man() *2* void print() cout“Man”“Woman”_正确答案:(正确答案:(1)将“void print();”补充完整为: Vi rtual Void print(); (2)添加语句:sex=1; (3)添加语句:sex=0; (4)添加语句:void fun(Personp)解析:解析:在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类的成员函数实现各种输出操作。